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 1tVZ0w-009bBI-LR for pgsql-hackers@arkaria.postgresql.org; Wed, 08 Jan 2025 16:34:40 +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 1tVZ0v-003Ins-C0 for pgsql-hackers@arkaria.postgresql.org; Wed, 08 Jan 2025 16:34:37 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tVZ0t-003IkX-NN for pgsql-hackers@lists.postgresql.org; Wed, 08 Jan 2025 16:34:36 +0000 Received: from mail-yb1-xb2b.google.com ([2607:f8b0:4864:20::b2b]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tVZ0X-000Y3F-21 for pgsql-hackers@lists.postgresql.org; Wed, 08 Jan 2025 16:34:33 +0000 Received: by mail-yb1-xb2b.google.com with SMTP id 3f1490d57ef6-e455bf1f4d3so19013337276.2 for ; Wed, 08 Jan 2025 08:34:13 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1736354053; x=1736958853; 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=8SCi8+26aI1DJKgQeZyLJXzc4hNQQy7HEm5bHEomfaM=; b=lhdX1wDEJQuPmGyY3baz/rqXYwTtFZAv6tLJk7OLlkLBAbJhXRS47Z9Ta4UypsbE74 bAGN7154l0PB5GgAzLFgg2Lxqs2oNDhrutSJp7Jwypyiuy2CvlT/rJb48kiAgvXQkdHG a4Rjt7Dn8q1R7mn/MZcZQdJZTIDhkOgfdAMCO1qeHnBEMT27V2XK6l5+Owq4Ce0IwyC7 4PLl8w8thzuKPSAOHcPxBHH17u5q2gRTpFIBtVlTGSjwAdUk1V+bMIshdlQW19JKFzE2 gQeEl+4OS7NPcNBpuGvRE3tbEnIUXuS4jhtDXK/ovYq32ahQC7lAkAjgzaPL90HZchf1 5D6w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736354053; x=1736958853; 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=8SCi8+26aI1DJKgQeZyLJXzc4hNQQy7HEm5bHEomfaM=; b=tI2TNX/e2rN63StRfi4SkA0/aDNz7p9dCOANO3R8plS25M/zKEH4Rrd+/Pr8ErGXoY +CsTPMS0msmZWUdMmke1I5r1X2yAVW1TqLlvkNfrCV46rh4IpyHzRtuVGYG6wgulrpmg c8BGFvKEhkUfzIo17MldySj4ugQzszPT1KoYWhONcrowPkwt3ln+YPq9iVQQ9bKuq60m IdodRaQp2nsuZDjG9PY1fxobtLoM4DvJcWFh5csKx4WqW2pxBujb5ZY/CNacIJm7VmXU xjxXhPlEMEGAtLoCW3n5IaHjhzIiIpcCTniDThpSvsJ8PPCor2oVeVVhjKPxrhOsBSsz R+nA== X-Forwarded-Encrypted: i=1; AJvYcCWkHreUnx91L33iHOAFRPTB6fDzMKP2SQhDjtVFTwMIuKCXK/ve19sx0PXStacIh9bvn5PoKnuQjD9DTORK@lists.postgresql.org X-Gm-Message-State: AOJu0YwxvKVscEK/gfcHluNn141WiiwKsY1H9DT6h7r2g2UQR3hIwVhD xRA4hFrtlfodnQKP5lRbN+EQCgzujbZi3LjCQ7ifsDaQj35Aa666qn15domha3/Bub7cCODJqFJ ufaDiaLqCAIu6iWLoAyPwzSBxU8s= X-Gm-Gg: ASbGncv3DzrxJFPywfo929IIMZiQzUEVZ+pskdc+qgMSfMeyyKNxGMwtQn5RP1kOncl LKsKXifE9IdRg4nQ+P7nMPnVwxnVlpS6cMo++s0CtQjelSbKpV3bC2Xkac3cz0nZVfm98vZ0= X-Google-Smtp-Source: AGHT+IHZgDcmvIfeKu4Xg2WEsptD/aaO7iBSZTybrX4Ad+sOxIEJx7fvqpCKLt0cjiZzzMRSbLV0nZu93LzsMZq+F30= X-Received: by 2002:a05:690c:113:b0:6ee:4ce9:b33e with SMTP id 00721157ae682-6f5312252eamr26816297b3.12.1736354052978; Wed, 08 Jan 2025 08:34:12 -0800 (PST) MIME-Version: 1.0 References: <3chredgnjcmccym2kczawfih226b4ac6co7p6z4jeofevrcosi@mrsxkx2x2c65> <20241120201313.t4wbhld4ktgielaf@erthalion.local> In-Reply-To: From: Pavel Stehule Date: Wed, 8 Jan 2025 17:33:31 +0100 X-Gm-Features: AbW1kva9SycLv7p1jT5r0vTZmO8SIv_UgZWyTEXmSoekAasoXiHw8MGKySv_q18 Message-ID: Subject: Re: Re: proposal: schema variables To: jian he Cc: Dmitry Dolgov <9erthalion6@gmail.com>, Laurenz Albe , Erik Rijkers , Michael Paquier , Amit Kapila , DUVAL REMI , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000008953c9062b346e70" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000008953c9062b346e70 Content-Type: multipart/alternative; boundary="0000000000008953c8062b346e6e" --0000000000008953c8062b346e6e Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi st 8. 1. 2025 v 10:31 odes=C3=ADlatel jian he napsal: > hi. > > you forgot change > acldefault > should add > 'V' for SESSION VARIABLE > done > > > in doc/src/sgml/ddl.sgml > > maybe some examples () of session variables being > shadowed would be great. > > because doc/src/sgml/ref/create_variable.sgml said > > > Session variables can be shadowed by other identifiers= . > For details, see . > > > If I click the link, then in ddl.sgml, there is also a bunch of text > saying that variable will be shadowed > in some situations, but there are no simple examples to demonstrate that. > done > > > "Create an date session variable var1:" > maybe it should be rephrased as > "Create a session variable var1 as date data type?" > (i am not native english speaker) > changed to Create a session variable var1 of data type date > > ----------------------------------------------------------------------- > --- a/src/include/nodes/primnodes.h > +++ b/src/include/nodes/primnodes.h > @@ -379,7 +379,8 @@ typedef struct Param > Expr xpr; > ParamKind paramkind; /* kind of parameter. > See above */ > int paramid; /* numeric ID > for parameter */ > - Oid paramtype; /* pg_type OID > of parameter's datatype */ > + /* pg_type OID of parameter's datatype */ > + Oid paramtype > pg_node_attr(query_jumble_ignore); > > I think we need the above to make > select v2; > select v1; > normalized as one query. > Why do you think so? paramtype is PARAM_VARIABLE every time for all session variables. If we will ignore paramtype, then we cannot to decide SELECT v1 and SELECT $1 ----------------------------------------------------------------------- > when we create a new table, we do something like this: > DefineRelation > heap_create_with_catalog > GetNewRelFileNumber > GetNewOidWithIndex > > relation Oid uniqueness and variable uniqueness is the same thing. > If variable oid uniqueness problem ever reached, > at that moment, we should care more about relation oid uniqueness problem= ? > > and in GetNewRelFileNumber, we have comments: > "" > * As with GetNewOidWithIndex(), there is some theoretical risk of a race > * condition, but it doesn't seem worth worrying about. > """ > also comments in GetNewOidWithIndex > """ > * Note that we are effectively assuming that the table has a relatively > small > * number of entries (much less than 2^32) and there aren't very long run= s > of > * consecutive existing OIDs. This is a mostly reasonable assumption for > * system catalogs. > """ > that means pg_catalog.pg_variable.varcreate_lsn is not really necessary? > I don't think so. This is a different problem, and different use case (I think) oids will always be unique. Any system table has a unique index on the oid column. It is true for session variables too. The values of session variables are always in memory. The values of other database objects are primary in files. Postgres routines never hold database objects in memory longer than one command or one transaction. And in this time, the consistency of memory is protected by locks. When the system drops some database objects, then it drops related files too. Nothing similar is for session variables. It is a database object that is forever only in memory, I cannot verify the content against some file. varcreate_lsn is used instead. You can imagine scenario: session A: CREATE VARIABLE v1 AS int; -- variable v1 with oid 1 is created session B: LET v1 =3D 100; PREPARE p AS SELECT v1; session A: repeat bin n times: DROP VARIABLE v1; CREATE VARIABLE v1 AS numeric; session b: there is possibility so there will be variable with varid 1 EXECUTE p --> CRASH The plan of p will be replaced (due dependency), but without possibility to check against varcreate_lsn we will use wrong value - possibly with wrong type, surely with wrong content because related variables were dropped a long time ago. With varcreate_lsn I can detect that the stored value is obsolete (although it has the same id). ----------------------------------------------------------------------- > I think the latest patch for LET self assign ACL SELECT is not correct, > previously I also tried the same idea. > > test demo. > CREATE TYPE vartest_t1 AS (a int, b int); > CREATE VARIABLE var1 AS vartest_t1; > CREATE ROLE regress_var_test_role; > GRANT UPDATE ON VARIABLE var1 TO regress_var_test_role; > GRANT select ON table tenk1 TO regress_var_test_role; > SET ROLE TO regress_var_test_role; > > --both should fail > LET var1.a =3D var1.a + 10; > LET var1.a =3D (select * from (select count(*) from tenk1 where unique1 > =3D var1.a + 10)); > fixed + regress test > -------------------------------------------------------- > In today's version I changed GetSessionVariable API little bit. Now it returns only value and *isnull. GetSessionVariableWithTypeCheck is completely removed. Instead I add GetSessionVariableWithTypeid, but it is introduced in patch allow-parallel-execution-queries-with-session-variab.patch. It is not necessary before. I removed the field varid from structure SessionVariableValue (execnodes.h) because it was not used everywhere. Regards Pavel --0000000000008953c8062b346e6e Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi

st 8. 1. 2025 v=C2=A010:31 odes=C3=ADlatel jian he <= ;jian.univ= ersality@gmail.com> napsal:
hi.

you forgot change
<function>acldefault</function>
should add
'V' for <literal>SESSION VARIABLE</literal>

done
=C2=A0


in doc/src/sgml/ddl.sgml
<sect1 id=3D"ddl-session-variables">
maybe some examples (<programlisting>) of session variables being
shadowed would be great.

because doc/src/sgml/ref/create_variable.sgml said
=C2=A0 <note>
=C2=A0 =C2=A0<para>
=C2=A0 =C2=A0 Session variables can be <quote>shadowed</quote> = by other identifiers.
=C2=A0 =C2=A0 For details, see <xref linkend=3D"ddl-session-variabl= es"/>.
=C2=A0 =C2=A0</para>
=C2=A0 </note>
If I click the link, then in ddl.sgml, there is also a bunch of text
saying that variable will be shadowed
in some situations, but there are no simple examples to demonstrate that.

done


"Create an date session variable <literal>var1</literal>:&= quot;
maybe it should be rephrased as
"Create a session variable <literal>var1</literal> as date= data type?"
(i am not native english speaker)

chang= ed to

Create a session variable <literal>var= 1</literal> of data type date
=C2=A0

-----------------------------------------------------------------------
--- a/src/include/nodes/primnodes.h
+++ b/src/include/nodes/primnodes.h
@@ -379,7 +379,8 @@ typedef struct Param
=C2=A0 =C2=A0 =C2=A0 =C2=A0 Expr=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 x= pr;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 ParamKind=C2=A0 =C2=A0 =C2=A0 =C2=A0paramkind;= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 /* kind of parameter.
See above */
=C2=A0 =C2=A0 =C2=A0 =C2=A0 int=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0paramid;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 /* numeric ID
for parameter */
-=C2=A0 =C2=A0 =C2=A0 =C2=A0Oid=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0paramtype;=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 /* pg_type OID
of parameter's datatype */
+=C2=A0 =C2=A0 =C2=A0 =C2=A0/* pg_type OID of parameter's datatype */ +=C2=A0 =C2=A0 =C2=A0 =C2=A0Oid=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0paramtype
pg_node_attr(query_jumble_ignore);

I think we need the above to make
select v2;
select v1;
normalized as one query.

Why do you think so? paramtype is PARAM_VARIABLE every time for all sess= ion variables.

If we will ignore paramtype, then we cannot to decide SELECT v1 an= d SELECT $1


-----------------------------------------------------------------------
when we create a new table, we do something like this:
DefineRelation
heap_create_with_catalog
GetNewRelFileNumber
GetNewOidWithIndex

relation Oid uniqueness and variable uniqueness is the same thing.
If variable oid uniqueness problem ever reached,
at that moment, we should care more about relation oid uniqueness problem?<= br>
and in GetNewRelFileNumber, we have comments:
""
=C2=A0* As with GetNewOidWithIndex(), there is some theoretical risk of a r= ace
=C2=A0* condition, but it doesn't seem worth worrying about.
"""
also comments in GetNewOidWithIndex
"""
=C2=A0* Note that we are effectively assuming that the table has a relative= ly small
=C2=A0* number of entries (much less than 2^32) and there aren't very l= ong runs of
=C2=A0* consecutive existing OIDs.=C2=A0 This is a mostly reasonable assump= tion for
=C2=A0* system catalogs.
"""
that means pg_catalog.pg_variable.varcreate_lsn is not really necessary?

I don't think so.=C2=A0 This is a dif= ferent problem, and different use case (I think)

oids will always be unique. Any system table has a unique index on the o= id column. It is true for session variables too.

The values of session variables are always in memory. The values of othe= r database objects are primary in files. Postgres routines never hold datab= ase objects in memory longer than one command or one transaction. And in th= is time, the consistency of memory is protected by locks. When the system d= rops some database objects, then it drops related files too. Nothing simila= r is for session variables. It is a database object that is forever only in= memory, I cannot verify the content against some file. varcreate_lsn is us= ed instead.

You can imagine scenario:

session A:

CREATE VARIABLE = v1 AS int;
-- variable v1 with oid 1 is cre= ated

s= ession B:
LET v1 =3D 100;
PREPARE p AS SELECT v1;

session A:

repeat bin n times:
=C2=A0 DROP VARIABLE v1;
=C2=A0 CREATE VARIABLE v1 AS numeric;
session b:
there is possibility so there will be variable with varid 1

EXECUTE p --&= gt; CRASH

The plan of p will be replaced (due dependency), but without possibilit= y to check against varcreate_lsn we will use wrong value - possibly with wr= ong type, surely with wrong content because related variables were dropped = a long time ago. With varcreate_lsn I can detect that the stored value is o= bsolete (although it has the same id).
=

<= br>



-----------------------------------------------------------------------
I think the latest patch for LET self assign ACL SELECT is not correct,
previously I also tried the same idea.

test demo.
CREATE TYPE vartest_t1 AS (a int, b int);
CREATE VARIABLE var1 AS vartest_t1;
CREATE ROLE regress_var_test_role;
GRANT UPDATE ON VARIABLE var1 TO regress_var_test_role;
GRANT select ON table tenk1 TO regress_var_test_role;
SET ROLE TO regress_var_test_role;

--both should fail
LET var1.a =3D var1.a + 10;
LET var1.a =3D (select * from (select count(*) from tenk1 where unique1
=3D var1.a + 10));

fixed=C2=A0+ regress= test
--------------------------------------------------------

In toda= y's version I changed GetSessionVariable API little bit. Now it returns= only value and *isnull. GetSessionVariableWithTypeCheck is completely remo= ved. Instead I add
GetSessionVariableWithTy= peid, but it is introduced in patch allow-parallel-execution-queries-with-s= ession-variab.patch. It is not necessary before. I removed the field varid = from structure SessionVariableValue (execnodes.h) because it was not used e= verywhere.

Regards

Pavel



--0000000000008953c8062b346e6e-- --0000000000008953c9062b346e70 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250108-0022-pg_restore-A-variable.patch" Content-Disposition: attachment; filename="v20250108-0022-pg_restore-A-variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5o4aggy0 RnJvbSBjOGMxZDY5Y2FjNmFlNDI1MmE0NDZmNjkyYjhjNzhlYzA0MzY0ZmI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjEgSnVsIDIwMjQgMTc6MDQ6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIIDIy LzIyXSBwZ19yZXN0b3JlIC1BLCAtLXZhcmlhYmxlCgpwb3NzaWJpbGl0eSB0byByZXN0b3JlIHNl c3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IG5hbWUKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3Bn X3Jlc3RvcmUuc2dtbCB8IDExICsrKysrKysrKysrCiBzcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9y ZS5jICAgICB8ICA5ICsrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19yZXN0b3Jl LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dtbAppbmRleCBiOGIyN2UxNzE5 Li43YTNhNGVhYmUyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dtbApAQCAtMTA2LDYgKzEwNiwx NyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwv dmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48b3B0aW9u Pi1BIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXNzaW9uX3ZhcmlhYmxlPC9yZXBs YWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisgICAgICA8dGVybT48b3B0aW9uPi0tdmFyaWFibGU9 PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNlc3Npb25fdmFyaWFibGU8L3JlcGxhY2Vh YmxlPjwvb3B0aW9uPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAg ICAgICAgUmVzdG9yZSBhIG5hbWVkIHNlc3Npb24gdmFyaWFibGUgb25seS4gIE11bHRpcGxlIHNl c3Npb24gdmFyaWFibGVzIG1heQorICAgICAgICBiZSBzcGVjaWZpZWQgd2l0aCBtdWx0aXBsZSA8 b3B0aW9uPi1BPC9vcHRpb24+IHN3aXRjaGVzLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlz dGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50cnk+CiAgICAg ICA8dGVybT48b3B0aW9uPi1jPC9vcHRpb24+PC90ZXJtPgogICAgICAgPHRlcm0+PG9wdGlvbj4t LWNsZWFuPC9vcHRpb24+PC90ZXJtPgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jl c3RvcmUuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKaW5kZXggODhhZTM5ZDkzOC4u NTIxODBjOTdkOSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jlc3RvcmUuYworKysg Yi9zcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jCkBAIC0xMDYsNiArMTA2LDcgQEAgbWFpbihp bnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCXsidHJpZ2dlciIsIDEsIE5VTEwsICdUJ30sCiAJCXsi dXNlLWxpc3QiLCAxLCBOVUxMLCAnTCd9LAogCQl7InVzZXJuYW1lIiwgMSwgTlVMTCwgJ1UnfSwK KwkJeyJ2YXJpYWJsZSIsIDEsIE5VTEwsICdBJ30sCiAJCXsidmVyYm9zZSIsIDAsIE5VTEwsICd2 J30sCiAJCXsic2luZ2xlLXRyYW5zYWN0aW9uIiwgMCwgTlVMTCwgJzEnfSwKIApAQCAtMTU2LDcg KzE1Nyw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQl9CiAJfQogCi0Jd2hpbGUg KChjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgImFjQ2Q6ZWY6RjpoOkk6ajpsTDpuOk46T3A6 UDpSc1M6dDpUOlU6dndXeDEiLAorCXdoaWxlICgoYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3Ys ICJBOmFjQ2Q6ZWY6RjpoOkk6ajpsTDpuOk46T3A6UDpSc1M6dDpUOlU6dndXeDEiLAogCQkJCQkJ CWNtZG9wdHMsIE5VTEwpKSAhPSAtMSkKIAl7CiAJCXN3aXRjaCAoYykKQEAgLTE2NCw2ICsxNjUs MTEgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCQljYXNlICdhJzoJCQkvKiBEdW1w IGRhdGEgb25seSAqLwogCQkJCWRhdGFfb25seSA9IHRydWU7CiAJCQkJYnJlYWs7CisJCQljYXNl ICdBJzoJCQkvKiB2QXJpYWJsZSAqLworCQkJCW9wdHMtPnNlbFR5cGVzID0gMTsKKwkJCQlvcHRz LT5zZWxWYXJpYWJsZSA9IDE7CisJCQkJc2ltcGxlX3N0cmluZ19saXN0X2FwcGVuZCgmb3B0cy0+ dmFyaWFibGVOYW1lcywgb3B0YXJnKTsKKwkJCQlicmVhazsKIAkJCWNhc2UgJ2MnOgkJCS8qIGNs ZWFuIChpLmUuLCBkcm9wKSBzY2hlbWEgcHJpb3IgdG8gY3JlYXRlICovCiAJCQkJb3B0cy0+ZHJv cFNjaGVtYSA9IDE7CiAJCQkJYnJlYWs7CkBAIC00NjgsNiArNDc0LDcgQEAgdXNhZ2UoY29uc3Qg Y2hhciAqcHJvZ25hbWUpCiAKIAlwcmludGYoXygiXG5PcHRpb25zIGNvbnRyb2xsaW5nIHRoZSBy ZXN0b3JlOlxuIikpOwogCXByaW50ZihfKCIgIC1hLCAtLWRhdGEtb25seSAgICAgICAgICAgICAg cmVzdG9yZSBvbmx5IHRoZSBkYXRhLCBubyBzY2hlbWFcbiIpKTsKKwlwcmludGYoXygiICAtQSwg LS12YXJpYWJsZT1OQU1FICAgICAgICAgIHJlc3RvcmUgbmFtZWQgc2Vzc2lvbiB2YXJpYWJsZVxu IikpOwogCXByaW50ZihfKCIgIC1jLCAtLWNsZWFuICAgICAgICAgICAgICAgICAgY2xlYW4gKGRy b3ApIGRhdGFiYXNlIG9iamVjdHMgYmVmb3JlIHJlY3JlYXRpbmdcbiIpKTsKIAlwcmludGYoXygi ICAtQywgLS1jcmVhdGUgICAgICAgICAgICAgICAgIGNyZWF0ZSB0aGUgdGFyZ2V0IGRhdGFiYXNl XG4iKSk7CiAJcHJpbnRmKF8oIiAgLWUsIC0tZXhpdC1vbi1lcnJvciAgICAgICAgICBleGl0IG9u IGVycm9yLCBkZWZhdWx0IGlzIHRvIGNvbnRpbnVlXG4iKSk7Ci0tIAoyLjQ3LjEKCg== --0000000000008953c9062b346e70 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250108-0021-transactional-variables.patch" Content-Disposition: attachment; filename="v20250108-0021-transactional-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5o4agi11 RnJvbSAzNzdlMjkwMTlmZWVlNDAzODA1MjE4ZTRjNjZkMGEyNWI1NDczMmZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNToxMTozMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MjEvMjJdIHRyYW5zYWN0aW9uYWwgdmFyaWFibGVzCgpUaGlzIGNvbW1pdCBpbXBsZW1lbnRzIHRy YW5zYWN0aW9uYWwgdmFyaWFibGVzLiBUaGUgY29udGVudCBvZiB0cmFuc2FjdGlvbmFsCnNlc3Np b24gdmFyaWFibGVzIGlzIHNlbnNpdGl2ZSB0byB0cmFuc2FjdGlvbnMgYW5kIHN1YnRyYW5zYWN0 aW9ucy4gQW55CnRyYW5zYWN0aW9uYWwgdmFyaWFibGUgaG9sZHMgYSBoaXN0b3J5IG9mIHZhbHVl cyBuZWNlc3NhcnkgZm9yIHJldmVydC4gVGhpcyBoaXN0b3J5CmlzIGNsZWFuZWQgKHB1cmdlZCkg d2hlbiBhKSB3ZSByZWFkIHRoZSB2YXJpYWJsZSwgYikgd2hlbiB0aGUgdHJhbnNhY3Rpb24gaXMg ZmluaXNoZWQuCgpXZSBkb24ndCB0cnkgdG8gcHVyZ2UsIHdoZW4gdGhlIGxhc3QgbW9kaWZpY2F0 aW9uIG9mIGEgdmFyaWFibGUgaXMgZnJvbQpjdXJyZW50IHN1YnRyYW5zYWN0aW9uLCBvciB3aGVu IHB1cmdlIHdhcyBwcm9jZXNzZWQgaW4gY3VycmVudCBzdWJ0cmFuc2FjdGlvbi4KClRoaXMgcGF0 Y2ggaXMgYmFzZWQgb24gbXkgd29yayBmcm9tIEZlYiAyMDIwIGFuZCBpdCBpcyByZWxhdGVkIHRv IGRpc2N1c3Npb24KYWJvdXQgZmVhdHVyZXMgcmVsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxlcy4g Tm93LCB3aGVuIHRoZSBhbGwgZmVhdHVyZXMgYXJlCnNlcGFyYXRlZCB0byBpc29sYXRlZCBwYXRj aGVzIEkgY2FuIHJldml0YWxpemUgdGhpcyBwYXRjaCwgYmVjYXVzZSBpdCBkb2Vzbid0CmluY3Jl YXNlIGNvbXBsZXhpdHkgb2YgYmFzaWMgcGF0Y2hlcy4KClVubGlrZSBvdGhlciBwYXRjaGVzLCB0 aGlzIHBhdGNoIGlzIHdpdGhvdXQgYW55IHJldmlldyBhdCB0aGlzIG1vbWVudCAoRmViIDIwMjQp LApidXQgdGhlIGZlYXR1cmUgc2hvdWxkIGJlIGZ1bGx5IGZ1bmN0aW9uYWwgZm9yIHBlb3BsZSB3 aG8gYXJlIGludGVyZXN0ZWQgYWJvdXQKdGhpcyBmZWF0dXJlIChmb3IgdGVzdGluZykuCi0tLQog ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDEyICsKIGRv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAxMCArLQogc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDMwMSArKysrKysrKysr KysrKysrKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8 ICA1MCArLS0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8 ICAxMCArLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwg ICAxICsKIHNyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8ICAz NiArKysKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAg NCArLQogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgICA1 ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAgMyAr CiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDEgKwog c3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgICAgICAgICAgICB8ICAzNiArLS0KIC4u Li9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDEwMCArKysrKysK IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA1OCArKysr CiAxNiBmaWxlcyBjaGFuZ2VkLCA1ODcgaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbAppbmRleCA5YWIyNGRmNTI4Li40NTgyZWExNjQwIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApA QCAtOTg1OCw2ICs5ODU4LDE4IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVy YXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8L3Bh cmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48c3Ry dWN0ZmllbGQ+dmFyaXN0cmFuc2FjdDwvc3RydWN0ZmllbGQ+PC9lbnRyeT4KKyAgICAgIDxlbnRy eT48dHlwZT5ib29sZWFuPC90eXBlPjwvZW50cnk+CisgICAgICA8ZW50cnk+PC9lbnRyeT4KKyAg ICAgIDxlbnRyeT4KKyAgICAgICBUcnVlLCB3aGVuIHRoZSB2YXJpYWJsZSBpcyA8cXVvdGU+dHJh bnNhY3Rpb25hbDwvcXVvdGU+LiBJbiB0aGUgY2FzZQorICAgICAgIG9mIGEgdHJhbnNhY3Rpb24g cm9sbGJhY2ssIHRyYW5zYWN0aW9uYWwgdmFyaWFibGVzIGFyZSByZXNldCB0byB0aGUKKyAgICAg ICB2YWx1ZSB0aGV5IGhhZCB3aGVuIHRoZSB0cmFuc2FjdGlvbiBzdGFydGVkLiBUaGUgZGVmYXVs dCB2YWx1ZSBpcworICAgICAgIDxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPi4KKyAgICAgIDwvZW50 cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgogICAgICAgIDxz dHJ1Y3RmaWVsZD52YXJlb3hhY3Rpb248L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFyPC90eXBlPgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKaW5kZXggM2MzZTZkNTViNi4uMWFhZGQz Njc3ZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCkBAIC0yNiw3ICsyNiw3 IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9w c2lzPgotQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBbIElNTVVUQUJMRSBdIFZBUklB QkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1l PC9yZXBsYWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRh X3R5cGU8L3JlcGxhY2VhYmxlPiBbIENPTExBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KK0NSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVN UCB9IF0gWyB7IFRSQU5TQUNUSU9OQUwgfCBUUkFOU0FDVElPTiB9IF0gWyBJTU1VVEFCTEUgXSBW QVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCiAgICAgWyBOT1QgTlVMTCBdIFsgREVG QVVMVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGVmYXVsdF9leHByPC9yZXBsYWNl YWJsZT4gXSBbIHsgT04gQ09NTUlUIERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBd CiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CkBAIC00Nyw2ICs0NywxNCBAQCBDUkVB VEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFsgSU1NVVRBQkxFIF0gVkFSSUFCTEUgWyBJRiBO T1QgRVhJU1RTIF0gPHJlcGxhYwogICAgc2FtZSBhcyByZWd1bGFyIHZhcmlhYmxlcyBpbiBwcm9j ZWR1cmFsIGxhbmd1YWdlcy4KICAgPC9wYXJhPgogCisgIDxwYXJhPgorICAgV2hlbiBhIHNjaGVt YSB2YXJpYWJsZSBpcyBjcmVhdGVkIHdpdGggYQorICAgPGNvbW1hbmQ+Q1JFQVRFIFRSQU5TQUNU SU9OQUwgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQsIHRoZSB2YXJpYWJsZXMKKyAgIGNvbnRl bnQgY2hhbmdlcyBhcmUgdHJhbnNhY3Rpb25hbDogaW4gY2FzZSBvZiByb2xsYmFjaywgdGhleSBh cmUgcmVzZXQgdG8KKyAgIHRoZWlyIHZhbHVlIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRyYW5z YWN0aW9uIG9yIHRoZSBsYXRlc3Qgc3VidHJhbnNhY3Rpb24uCisgICBUaGUgdmFyaWFibGUgY29u dGVudCBpcyBvbmx5IGhvbGQgaW4gbWVtb3J5LCBhbmQgdGh1cyBpcyBub3QgcGVyc2lzdGVudC4K KyAgPC9wYXJhPgorCiAgIDxwYXJhPgogICAgU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHJldHJpZXZl ZCBieSB0aGUgPGNvbW1hbmQ+U0VMRUNUPC9jb21tYW5kPgogICAgY29tbWFuZC4gIFRoZWlyIHZh bHVlIGlzIHNldCB3aXRoIHRoZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMKaW5kZXggMGI2MDkzYTAwYi4uZmE0OWU3MjMzZCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtNDIsNiArNDIsNyBAQCBzdGF0aWMgT2JqZWN0QWRk cmVzcyBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQkJCQkJCSBib29s IGlmX25vdF9leGlzdHMsCiAJCQkJCQkJCQkgYm9vbCBub3RfbnVsbCwKIAkJCQkJCQkJCSBib29s IGlzX2ltbXV0YWJsZSwKKwkJCQkJCQkJCSBib29sIGlzX3RyYW5zYWN0LAogCQkJCQkJCQkJIE5v ZGUgKnZhckRlZmV4cHIsCiAJCQkJCQkJCQkgVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RF bmRBY3Rpb24pOwogCkBAIC01OSw2ICs2MCw3IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFy ICp2YXJOYW1lLAogCQkJCWJvb2wgaWZfbm90X2V4aXN0cywKIAkJCQlib29sIG5vdF9udWxsLAog CQkJCWJvb2wgaXNfaW1tdXRhYmxlLAorCQkJCWJvb2wgaXNfdHJhbnNhY3QsCiAJCQkJTm9kZSAq dmFyRGVmZXhwciwKIAkJCQlWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFyWGFjdEVuZEFjdGlvbikK IHsKQEAgLTEyMyw2ICsxMjUsNyBAQCBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFt ZSwKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjb2xsYXRpb24gLSAxXSA9IE9iamVjdElk R2V0RGF0dW0odmFyQ29sbGF0aW9uKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJub3Ru dWxsIC0gMV0gPSBCb29sR2V0RGF0dW0obm90X251bGwpOwogCXZhbHVlc1tBbnVtX3BnX3Zhcmlh YmxlX3ZhcmlzaW1tdXRhYmxlIC0gMV0gPSBCb29sR2V0RGF0dW0oaXNfaW1tdXRhYmxlKTsKKwl2 YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJpc3RyYW5zYWN0IC0gMV0gPSBCb29sR2V0RGF0dW0o aXNfdHJhbnNhY3QpOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnhhY3RlbmRhY3Rpb24g LSAxXSA9IENoYXJHZXREYXR1bSh2YXJYYWN0RW5kQWN0aW9uKTsKIAogCWlmICh2YXJEZWZleHBy KQpAQCAtMjY3LDYgKzI3MCw3IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwg Q3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0 cywKIAkJCQkJCQkgICBzdG10LT5ub3RfbnVsbCwKIAkJCQkJCQkgICBzdG10LT5pc19pbW11dGFi bGUsCisJCQkJCQkJICAgc3RtdC0+aXNfdHJhbnNhY3QsCiAJCQkJCQkJICAgY29va2VkX2RlZmF1 bHQsCiAJCQkJCQkJICAgc3RtdC0+WGFjdEVuZEFjdGlvbik7CiAKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCAyNTU1OTc1MTk3Li5lYTYzYTQwZjZmIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC01NSw2ICs1NSwxOSBAQCB0eXBl ZGVmIHN0cnVjdCBTVmFyaWFibGVYQWN0RHJvcEl0ZW0KIGludAkJc2Vzc2lvbl92YXJpYWJsZXNf dXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgPQogCQkJCQkJCQlTRVNTSU9OVkFSSUFCTEVfVVNFX0ZF TkNFX0NPTlRFWFRfR1VBUkRfTk9ORTsKIAorLyoKKyAqIFVzZWQgZm9yIHRyYW5zYWN0aW9uYWwg dmFyaWFibGVzLiBIb2xkcyBwcmV2IHZlcnNpb24uCisgKi8KK3R5cGVkZWYgc3RydWN0IFByZXZW YWx1ZQoreworCURhdHVtCQl2YWx1ZTsKKwlib29sCQlpc251bGw7CisKKwlTdWJUcmFuc2FjdGlv bklkIG1vZGlmeV9zdWJpZDsKKworCXN0cnVjdCBQcmV2VmFsdWUgKnByZXZfdmFsdWU7Cit9IFBy ZXZWYWx1ZTsKKwogLyoKICAqIFRoZSB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHN0 b3JlZCBpbiB0aGUgYmFja2VuZCdzIHByaXZhdGUgbWVtb3J5CiAgKiBpbiB0aGUgZGVkaWNhdGVk IG1lbW9yeSBjb250ZXh0IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgaW4gYmluYXJ5IGZvcm1hdC4K QEAgLTc2LDYgKzg5LDI1IEBAIHR5cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKIAlib29sCQlp c251bGw7CiAJRGF0dW0JCXZhbHVlOwogCisJLyoKKwkgKiBXZSBkb24ndCBuZWVkIHN0YWNrIHZl cnNpb25zIG1vZGlmaWVkIGluIHNhbWUgc3VidHJhbnNhY3Rpb24uCisJICogVXNlZCBieSB0cmFu c2FjdGlvbmFsIHZhcmlhYmxlcyBvbmx5LiBUaGUgdmFsdWUgb2YgdHJhbnNhY3Rpb25hbAorCSAq IHZhcmlhYmxlIGNhbiBiZSByZXR1cm5lZCBpbW1lZGlhdGVseSB3aGVuIG1vZGlmeV9zdWJpZCBp cyBzYW1lCisJICogbGlrZSBjdXJyZW50IHN1YmlkLgorCSAqLworCVN1YlRyYW5zYWN0aW9uSWQg bW9kaWZ5X3N1YmlkOworCisJLyoKKwkgKiBXaGVuIHRoZSBtb2RpZnlfc3ViaWQgaXMgZGlmZmVy ZW50IHRoYW4gY3VycmVudCBzdWJpZCwgdGhlbgorCSAqIHdlIG5lZWQgdG8gcmVjaGVjayB2ZXJz aW9ucyBhbmQgdGhyb3cgdmVyc2lvbnMgcmVsYXRlZCB0bworCSAqIHJldmVydGVkIHRyYW5zYWN0 aW9ucy4gV2hlbiBwdXJnZV9zdWJpZCBpcyBzYW1lIGxpa2UgY3VycmVudCBzdWJpZAorCSAqIHdl IGNhbiByZXR1cm4gdGhlIHZhbHVlIG9mIHRyYW5zYWN0aW9uIHZhcmlhYmxlIHdpdGhvdXQgdGhp cworCSAqIHJlY2hlY2suCisJICovCisJU3ViVHJhbnNhY3Rpb25JZCBwdXJnZV9zdWJpZDsKKwor CVByZXZWYWx1ZSAgKnByZXZfdmFsdWU7CisKIAlPaWQJCQl0eXBpZDsKIAlpbnQxNgkJdHlwbGVu OwogCWJvb2wJCXR5cGJ5dmFsOwpAQCAtOTQsNiArMTI2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU1Zh cmlhYmxlRGF0YQogCiAJYm9vbAkJbm90X251bGw7CiAJYm9vbAkJaXNfaW1tdXRhYmxlOworCWJv b2wJCWlzX3RyYW5zYWN0OwogCiAJYm9vbAkJcmVzZXRfYXRfZW94OwogCkBAIC0xMzMsNiArMTY2 LDkgQEAgc3RhdGljIGJvb2wgbmVlZHNfdmFsaWRhdGlvbiA9IGZhbHNlOwogICovCiBzdGF0aWMg Ym9vbCBoYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKIAor LyogdHJ1ZSwgd2hlbiB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcyB3YXMgbW9kaWZpZWQgKi8KK3N0 YXRpYyBib29sIGhhc19tb2RpZmllZF90cmFuc2FjdGlvbmFsX3ZhcmlhYmxlcyA9IGZhbHNlOwor CiAvKgogICogVGhlIGNvbnRlbnQgb2YgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3Qg cmVtb3ZlZCBpbW1lZGlhdGVseS4gIElmCiAgKiBwb3NzaWJsZSwgd2UgZG8gdGhhdCBhdCB0aGUg ZW5kIG9mIHRoZSB0cmFuc2FjdGlvbi4gIEJ1dCB3ZSBjYW5ub3QgZG8gdGhhdApAQCAtMTQ4LDYg KzE4NCw3IEBAIHN0YXRpYyBMaXN0ICp4YWN0X2Ryb3BfaXRlbXMgPSBOSUw7CiAKIHN0YXRpYyB2 b2lkIHJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCk7CiBzdGF0 aWMgdm9pZCB1bnJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCk7 CitzdGF0aWMgYm9vbCBwdXJnZV9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyKTsKIAog LyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBzZXNzaW9uIHZhcmlhYmxlIGludmFsaWRhdGlv bi4KQEAgLTMwMCw4ICszMzcsMjUgQEAgdW5yZWdpc3Rlcl9zZXNzaW9uX3ZhcmlhYmxlX3hhY3Rf ZHJvcChPaWQgdmFyaWQpCiAgKiBSZWxlYXNlIHN0b3JlZCB2YWx1ZSwgZnJlZSBtZW1vcnkKICAq Lwogc3RhdGljIHZvaWQKLWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShTVmFyaWFibGUgc3Zh cikKK2ZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShTVmFyaWFibGUgc3ZhciwgYm9vbCBkZWVw X2ZyZWUpCiB7CisJaWYgKGRlZXBfZnJlZSkKKwl7CisJCVByZXZWYWx1ZSAqcHJldl92YWx1ZSA9 IHN2YXItPnByZXZfdmFsdWU7CisJCVByZXZWYWx1ZSAqbmV4dF92YWx1ZTsKKworCQl3aGlsZSAo cHJldl92YWx1ZSkKKwkJeworCQkJaWYgKCFzdmFyLT50eXBieXZhbCkKKwkJCQlwZnJlZShEYXR1 bUdldFBvaW50ZXIocHJldl92YWx1ZS0+dmFsdWUpKTsKKworCQkJbmV4dF92YWx1ZSA9IHByZXZf dmFsdWUtPnByZXZfdmFsdWU7CisJCQlwZnJlZShwcmV2X3ZhbHVlKTsKKworCQkJcHJldl92YWx1 ZSA9IG5leHRfdmFsdWU7CisJCX0KKwl9CisKIAkvKiBjbGVhbiB0aGUgY3VycmVudCB2YWx1ZSAq LwogCWlmICghc3Zhci0+aXNudWxsKQogCXsKQEAgLTM5OCw3ICs0NTIsNyBAQCByZW1vdmVfaW52 YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhib29sIGF0RU9YKQogCQkJewogCQkJCU9pZAkJCXZhcmlk ID0gc3Zhci0+dmFyaWQ7CiAKLQkJCQlmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3Zhcik7 CisJCQkJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIsIHRydWUpOwogCQkJCWhhc2hf c2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsKIAkJCQlzdmFy ID0gTlVMTDsKIAkJCX0KQEAgLTQzNCw2ICs0ODgsOTQgQEAgcmVtb3ZlX3Nlc3Npb25fdmFyaWFi bGVzX3dpdGhfcmVzZXRfYXRfZW94KHZvaWQpCiAJaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dpdGhf cmVzZXRfYXRfZW94ID0gZmFsc2U7CiB9CiAKKy8qCisgKiByZW1vdmUgcHJldiB2YWx1ZXMgYXQg ZW94CisgKi8KK3N0YXRpYyB2b2lkCityZW1vdmVfcHJldl92YWx1ZXNfYXRfZW94KGJvb2wgaXND b21taXQpCit7CisJSEFTSF9TRVFfU1RBVFVTIHN0YXR1czsKKwlTVmFyaWFibGUJc3ZhcjsKKwor CWlmICghc2Vzc2lvbnZhcnMpCisJCXJldHVybjsKKworCS8qIGxlYXZlIHF1Y2tseSwgd2hlbiB0 aGVyZSBhcmUgbm90IHRoYXQgdmFyaWFibGVzICovCisJaWYgKCFoYXNfbW9kaWZpZWRfdHJhbnNh Y3Rpb25hbF92YXJpYWJsZXMpCisJCXJldHVybjsKKworCWhhc2hfc2VxX2luaXQoJnN0YXR1cywg c2Vzc2lvbnZhcnMpOworCXdoaWxlICgoc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VxX3NlYXJj aCgmc3RhdHVzKSkgIT0gTlVMTCkKKwl7CisJCWlmIChzdmFyLT5pc190cmFuc2FjdCAmJiBzdmFy LT5tb2RpZnlfc3ViaWQgIT0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQpCisJCXsKKwkJCWlmIChp c0NvbW1pdCkKKwkJCXsKKwkJCQlpZiAocHVyZ2Vfc2Vzc2lvbl92YXJpYWJsZShzdmFyKSkKKwkJ CQl7CisJCQkJCVByZXZWYWx1ZSAqcHJldl92YWx1ZSA9IHN2YXItPnByZXZfdmFsdWU7CisKKwkJ CQkJd2hpbGUgKHByZXZfdmFsdWUpCisJCQkJCXsKKwkJCQkJCVByZXZWYWx1ZSAqY3VycmVudF9w diA9IHByZXZfdmFsdWU7CisKKwkJCQkJCWlmICghc3Zhci0+dHlwYnl2YWwgJiYgIWN1cnJlbnRf cHYtPmlzbnVsbCkKKwkJCQkJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIoY3VycmVudF9wdi0+dmFs dWUpKTsKKworCQkJCQkJcHJldl92YWx1ZSA9IGN1cnJlbnRfcHYtPnByZXZfdmFsdWU7CisJCQkJ CQlwZnJlZShjdXJyZW50X3B2KTsKKwkJCQkJfQorCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJ CQloYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnN2YXItPnZhcmlkLCBIQVNIX1JFTU9WRSwgTlVM TCk7CisJCQkJCXN2YXIgPSBOVUxMOworCQkJCX0KKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlQ cmV2VmFsdWUgKnByZXZfdmFsdWUgPSBzdmFyLT5wcmV2X3ZhbHVlOworCisJCQkJd2hpbGUgKHBy ZXZfdmFsdWUpCisJCQkJeworCQkJCQlQcmV2VmFsdWUgKmN1cnJlbnRfcHYgPSBwcmV2X3ZhbHVl OworCisJCQkJCWlmIChjdXJyZW50X3B2LT5tb2RpZnlfc3ViaWQgPT0gSW52YWxpZFN1YlRyYW5z YWN0aW9uSWQpCisJCQkJCQlicmVhazsKKworCQkJCQlpZiAoIXN2YXItPnR5cGJ5dmFsICYmICFj dXJyZW50X3B2LT5pc251bGwpCisJCQkJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIoY3VycmVudF9w di0+dmFsdWUpKTsKKworCQkJCQlwcmV2X3ZhbHVlID0gY3VycmVudF9wdi0+cHJldl92YWx1ZTsK KwkJCQkJcGZyZWUoY3VycmVudF9wdik7CisJCQkJfQorCisJCQkJaWYgKHByZXZfdmFsdWUpCisJ CQkJeworCQkJCQlzdmFyLT52YWx1ZSA9IHByZXZfdmFsdWUtPnZhbHVlOworCQkJCQlzdmFyLT5p c251bGwgPSBwcmV2X3ZhbHVlLT5pc251bGw7CisKKwkJCQkJcGZyZWUocHJldl92YWx1ZSk7CisJ CQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCWhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmc3Zh ci0+dmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsKKwkJCQkJc3ZhciA9IE5VTEw7CisJCQkJfQor CQkJfQorCisJCQkvKiB3aGVuIHN2YXIgaXMgc3RpbGwgdmFsaWQgKG5vdCByZW1vdmVkIGZyb20g c2Vzc2lvbnZhcnMgKi8KKwkJCWlmIChzdmFyKQorCQkJeworCQkJCXN2YXItPm1vZGlmeV9zdWJp ZCA9IEludmFsaWRTdWJUcmFuc2FjdGlvbklkOworCQkJCXN2YXItPnByZXZfdmFsdWUgPSBOVUxM OworCQkJfQorCQl9CisJfQorCisJaGFzX21vZGlmaWVkX3RyYW5zYWN0aW9uYWxfdmFyaWFibGVz ID0gZmFsc2U7Cit9CisKIC8qCiAgICogUGVyZm9ybSBPTiBDT01NSVQgRFJPUCBmb3IgdGVtcG9y YXJ5IHNlc3Npb24gdmFyaWFibGVzLAogICAqIGFuZCByZW1vdmUgYWxsIGRyb3BwZWQgdmFyaWFi bGVzIGZyb20gbWVtb3J5LgpAQCAtNDgxLDYgKzYyMyw4IEBAIEF0UHJlRU9YYWN0X1Nlc3Npb25W YXJpYWJsZXMoYm9vbCBpc0NvbW1pdCkKIAkJcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJs ZXModHJ1ZSk7CiAJfQogCisJcmVtb3ZlX3ByZXZfdmFsdWVzX2F0X2VveChpc0NvbW1pdCk7CisK IAkvKgogCSAqIFdlIGhhdmUgdG8gY2xlYW4geGFjdF9kcm9wX2l0ZW1zLiBBbGwgcmVsYXRlZCB2 YXJpYWJsZXMgYXJlIGRyb3BwZWQKIAkgKiBub3csIG9yIGxvc3QgaW5zaWRlIGFib3J0ZWQgdHJh bnNhY3Rpb24uCkBAIC02MjYsNiArNzcwLDcgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFy aWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlzX3dyaXRlKQogCiAJc3Zhci0+bm90X251bGwg PSB2YXJmb3JtLT52YXJub3RudWxsOwogCXN2YXItPmlzX2ltbXV0YWJsZSA9IHZhcmZvcm0tPnZh cmlzaW1tdXRhYmxlOworCXN2YXItPmlzX3RyYW5zYWN0ID0gdmFyZm9ybS0+dmFyaXN0cmFuc2Fj dDsKIAogCXN2YXItPmlzX2RvbWFpbiA9IChnZXRfdHlwdHlwZSh2YXJmb3JtLT52YXJ0eXBlKSA9 PSBUWVBUWVBFX0RPTUFJTik7CiAJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKQEAg LTY1MSw2ICs3OTYsMTcgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3Zhciwg T2lkIHZhcmlkLCBib29sIGlzX3dyaXRlKQogCXN2YXItPmlzbnVsbCA9IHRydWU7CiAJc3Zhci0+ dmFsdWUgPSAoRGF0dW0pIDA7CiAKKwlpZiAoc3Zhci0+aXNfdHJhbnNhY3QpCisJeworCQlzdmFy LT5tb2RpZnlfc3ViaWQgPSBHZXRDdXJyZW50U3ViVHJhbnNhY3Rpb25JZCgpOworCQloYXNfbW9k aWZpZWRfdHJhbnNhY3Rpb25hbF92YXJpYWJsZXMgPSB0cnVlOworCX0KKwllbHNlCisJCXN2YXIt Pm1vZGlmeV9zdWJpZCA9IEludmFsaWRTdWJUcmFuc2FjdGlvbklkOworCisJc3Zhci0+cHVyZ2Vf c3ViaWQgPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKKwlzdmFyLT5wcmV2X3ZhbHVlID0gTlVM TDsKKwogCXN2YXItPmlzX3ZhbGlkID0gdHJ1ZTsKIAogCXN2YXItPmhhc2h2YWx1ZSA9IEdldFN5 c0NhY2hlSGFzaFZhbHVlMShWQVJJQUJMRU9JRCwKQEAgLTY4NCw2ICs4NDAsNjkgQEAgc2V0dXBf c2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlzX3dyaXRl KQogCVJlbGVhc2VTeXNDYWNoZSh0dXApOwogfQogCisvKgorICogVHJ5IHRvIHJlbW92ZSBhbGwg cHJldmlvdXMgdmVyc2lvbnMgcmVsYXRlZCB0byByZXZlcnRlZCB0cmFuc2FjdGlvbnMuCisgKiBS ZXR1cm5zIHRydWUsIHdoZW4gdmFsaWQgdmVyc2lvbiB3YXMgZm91bmQuCisgKi8KK3N0YXRpYyBi b29sCitwdXJnZV9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyKQoreworCVN1YlRyYW5z YWN0aW9uSWQgY3VycmVudF9zdWJpZDsKKwlQcmV2VmFsdWUJICAgKnByZXZfdmFsdWU7CisJYm9v bAkJCWZvdW5kID0gdHJ1ZTsKKworCUFzc2VydChzdmFyLT5pc190cmFuc2FjdCk7CisKKwlpZiAo c3Zhci0+bW9kaWZ5X3N1YmlkID09IEludmFsaWRTdWJUcmFuc2FjdGlvbklkKQorCQlyZXR1cm4g dHJ1ZTsKKworCWN1cnJlbnRfc3ViaWQgPSBHZXRDdXJyZW50U3ViVHJhbnNhY3Rpb25JZCgpOwor CisJaWYgKHN2YXItPm1vZGlmeV9zdWJpZCA9PSBjdXJyZW50X3N1YmlkKQorCQlyZXR1cm4gdHJ1 ZTsKKworCWlmIChzdmFyLT5wdXJnZV9zdWJpZCA9PSBjdXJyZW50X3N1YmlkKQorCQlyZXR1cm4g dHJ1ZTsKKworCWlmIChTdWJUcmFuc2FjdGlvbklzQWN0aXZlKHN2YXItPm1vZGlmeV9zdWJpZCkp CisJeworCQlzdmFyLT5wdXJnZV9zdWJpZCA9IGN1cnJlbnRfc3ViaWQ7CisJCXJldHVybiB0cnVl OworCX0KKworCXByZXZfdmFsdWUgPSBzdmFyLT5wcmV2X3ZhbHVlOworCisJd2hpbGUgKHByZXZf dmFsdWUpCisJeworCQlQcmV2VmFsdWUgKmN1cnJlbnRfcHYgPSBwcmV2X3ZhbHVlOworCisJCWlm IChjdXJyZW50X3B2LT5tb2RpZnlfc3ViaWQgPT0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQgfHwK KwkJCVN1YlRyYW5zYWN0aW9uSXNBY3RpdmUoY3VycmVudF9wdi0+bW9kaWZ5X3N1YmlkKSkKKwkJ eworCQkJc3Zhci0+dmFsdWUgPSBjdXJyZW50X3B2LT52YWx1ZTsKKwkJCXN2YXItPmlzbnVsbCA9 IGN1cnJlbnRfcHYtPmlzbnVsbDsKKwkJCXN2YXItPm1vZGlmeV9zdWJpZCA9IGN1cnJlbnRfcHYt Pm1vZGlmeV9zdWJpZDsKKworCQkJcHJldl92YWx1ZSA9IGN1cnJlbnRfcHYtPnByZXZfdmFsdWU7 CisJCQlwZnJlZShjdXJyZW50X3B2KTsKKworCQkJZm91bmQgPSB0cnVlOworCQkJYnJlYWs7CisJ CX0KKworCQlpZiAoIXN2YXItPnR5cGJ5dmFsICYmICFjdXJyZW50X3B2LT5pc251bGwpCisJCQlw ZnJlZShEYXR1bUdldFBvaW50ZXIoY3VycmVudF9wdi0+dmFsdWUpKTsKKworCQlwcmV2X3ZhbHVl ID0gY3VycmVudF9wdi0+cHJldl92YWx1ZTsKKwkJcGZyZWUoY3VycmVudF9wdik7CisJfQorCisJ c3Zhci0+cHJldl92YWx1ZSA9IHByZXZfdmFsdWU7CisJc3Zhci0+cHVyZ2Vfc3ViaWQgPSBjdXJy ZW50X3N1YmlkOworCisJcmV0dXJuIGZvdW5kOworfQorCiAvKgogICogQXNzaWduIGEgbmV3IHZh bHVlIHRvIHRoZSBzZXNzaW9uIHZhcmlhYmxlLiAgSXQgaXMgY29waWVkIHRvCiAgKiBTVmFyaWFi bGVNZW1vcnlDb250ZXh0IGlmIG5lY2Vzc2FyeS4KQEAgLTY5Niw2ICs5MTUsMTAgQEAgc2V0X3Nl c3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkK IAlEYXR1bQkJbmV3dmFsOwogCVNWYXJpYWJsZURhdGEgbG9jc3ZhciwKIAkJCSAgICpfc3ZhcjsK KwlTdWJUcmFuc2FjdGlvbklkIGN1cnJlbnRfc3ViaWQgPSBHZXRDdXJyZW50U3ViVHJhbnNhY3Rp b25JZCgpOworCVN1YlRyYW5zYWN0aW9uSWQgcHJldl9wdXJnZV9zdWJpZCA9IEludmFsaWRTdWJU cmFuc2FjdGlvbklkOworCWJvb2wJCXNhdmVfcHJldl92YWx1ZTsKKwlQcmV2VmFsdWUgICpwcmV2 X3ZhbHVlOwogCiAJQXNzZXJ0KHN2YXIpOwogCUFzc2VydCghaXNudWxsIHx8IHZhbHVlID09IChE YXR1bSkgMCk7CkBAIC03MzEsNiArOTU0LDIxIEBAIHNldF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJp YWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAJZWxzZQogCQlfc3ZhciA9IHN2 YXI7CiAKKwlpZiAoX3N2YXItPmlzX3RyYW5zYWN0ICYmIF9zdmFyLT5jcmVhdGVfbHNuID09IHN2 YXItPmNyZWF0ZV9sc24pCisJeworCQlBc3NlcnQoc3Zhci0+dHlwaWQgPT0gX3N2YXItPnR5cGlk KTsKKwkJQXNzZXJ0KHN2YXItPnR5cGJ5dmFsID09IF9zdmFyLT50eXBieXZhbCk7CisJCUFzc2Vy dChzdmFyLT50eXBsZW4gPT0gX3N2YXItPnR5cGxlbik7CisKKwkJc2F2ZV9wcmV2X3ZhbHVlID0g c3Zhci0+bW9kaWZ5X3N1YmlkICE9IGN1cnJlbnRfc3ViaWQ7CisJCXByZXZfdmFsdWUgPSBzdmFy LT5wcmV2X3ZhbHVlOworCX0KKwllbHNlCisJeworCQlzYXZlX3ByZXZfdmFsdWUgPSBmYWxzZTsK KwkJcHJldl92YWx1ZSA9IE5VTEw7CisJfQorCiAJaWYgKCFpc251bGwpCiAJewogCQlNZW1vcnlD b250ZXh0IG9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhTVmFyaWFibGVNZW1vcnlDb250 ZXh0KTsKQEAgLTc0Miw3ICs5ODAsMzcgQEAgc2V0X3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxl IHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAllbHNlCiAJCW5ld3ZhbCA9IHZhbHVl OwogCi0JZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIpOworCWlmIChzYXZlX3ByZXZf dmFsdWUpCisJeworCQl2b2xhdGlsZSBQcmV2VmFsdWUgKm5ld19wcmV2X3ZhbHVlOworCisJCVBH X1RSWSgpOworCQl7CisJCQluZXdfcHJldl92YWx1ZSA9IE1lbW9yeUNvbnRleHRBbGxvYyhTVmFy aWFibGVNZW1vcnlDb250ZXh0LAorCQkJCQkJCQkJCQkJc2l6ZW9mKFByZXZWYWx1ZSkpOworCQl9 CisJCVBHX0NBVENIKCk7CisJCXsKKwkJCS8qIHJlbGVhc2UgbWVtIGZyb20gcGVyc2lzdGVudCBj b250ZW50ICovCisJCQlpZiAobmV3dmFsICE9IHZhbHVlKQorCQkJCXBmcmVlKERhdHVtR2V0UG9p bnRlcihuZXd2YWwpKTsKKwkJCVBHX1JFX1RIUk9XKCk7CisJCX0KKwkJUEdfRU5EX1RSWSgpOwor CisJCW5ld19wcmV2X3ZhbHVlLT52YWx1ZSA9IHN2YXItPnZhbHVlOworCQluZXdfcHJldl92YWx1 ZS0+aXNudWxsID0gc3Zhci0+aXNudWxsOworCQluZXdfcHJldl92YWx1ZS0+bW9kaWZ5X3N1Ymlk ID0gc3Zhci0+bW9kaWZ5X3N1YmlkOworCQluZXdfcHJldl92YWx1ZS0+cHJldl92YWx1ZSA9IHBy ZXZfdmFsdWU7CisKKwkJcHJldl92YWx1ZSA9IChQcmV2VmFsdWUgKikgbmV3X3ByZXZfdmFsdWU7 CisJCXByZXZfcHVyZ2Vfc3ViaWQgPSBzdmFyLT5wdXJnZV9zdWJpZDsKKworCQloYXNfbW9kaWZp ZWRfdHJhbnNhY3Rpb25hbF92YXJpYWJsZXMgPSB0cnVlOworCisJfQorCWVsc2UKKwkJZnJlZV9z ZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIsIHByZXZfdmFsdWUgPT0gTlVMTCk7CiAKIAllbG9n KERFQlVHMSwgInNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBuZXcgdmFs dWUiLAogCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFj ZShzdmFyLT52YXJpZCkpLApAQCAtNzU1LDYgKzEwMjMsOSBAQCBzZXRfc2Vzc2lvbl92YXJpYWJs ZShTVmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQogCiAJc3Zhci0+dmFs dWUgPSBuZXd2YWw7CiAJc3Zhci0+aXNudWxsID0gaXNudWxsOworCXN2YXItPm1vZGlmeV9zdWJp ZCA9IGN1cnJlbnRfc3ViaWQ7CisJc3Zhci0+cHVyZ2Vfc3ViaWQgPSBwcmV2X3B1cmdlX3N1Ymlk OworCXN2YXItPnByZXZfdmFsdWUgPSBwcmV2X3ZhbHVlOwogCiAJLyogZG9uJ3QgYWxsb3cgbW9y ZSBjaGFuZ2VzIG9mIHZhbHVlIHdoZW4gdmFyaWFibGUgaXMgSU1NVVRBQkxFICovCiAJaWYgKHN2 YXItPmlzX2ltbXV0YWJsZSkKQEAgLTg1Niw2ICsxMTI3LDggQEAgZ2V0X3Nlc3Npb25fdmFyaWFi bGUoT2lkIHZhcmlkKQogCWVsc2UKIAkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKIAorcmVpbml0 OgorCiAJLyoKIAkgKiBGb3JjZSBzZXR1cCBmb3Igbm90IHlldCBpbml0aWFsaXplZCB2YXJpYWJs ZXMgb3IgdmFyaWFibGVzIHRoYXQgY2Fubm90CiAJICogYmUgdmFsaWRhdGVkLgpAQCAtODg4LDYg KzExNjEsMjggQEAgZ2V0X3Nlc3Npb25fdmFyaWFibGUoT2lkIHZhcmlkKQogCQkJIHZhcmlkKTsK IAl9CiAKKwkvKgorCSAqIFRyYW5zYWN0aW9uYWwgdmFyaWFibGVzIHNob3VsZCBiZSBwdXJnZWQg YmVmb3JlIChyZW1vdmUKKwkgKiB2ZXJzaW9ucyBjcmVhdGVkIGJ5IHBvc3NpYmx5IHJldmVydGVk IHN1YnRyYW5zYWN0aW9ucykuCisJICovCisJaWYgKHN2YXItPmlzX3RyYW5zYWN0ICYmCisJCXN2 YXItPm1vZGlmeV9zdWJpZCAhPSBHZXRDdXJyZW50U3ViVHJhbnNhY3Rpb25JZCgpICYmCisJCXN2 YXItPm1vZGlmeV9zdWJpZCAhPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZCkKKwl7CisJCWlmICgh cHVyZ2Vfc2Vzc2lvbl92YXJpYWJsZShzdmFyKSkKKwkJeworCQkJLyogZm9yY2UgcmVpbml0ICov CisJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCisJCQkvKgorCQkJICogSW4gbmV4dCBpdGVy YXRpb24gbW9kaWZ5X3N1YmlkIHNob3VsZCBiZQorCQkJICogSW52YWxpZFN1YlRyYW5zYWN0aW9u SWQgb3IgY3VycmVudCBzdWJpZCwKKwkJCSAqIHNvIHRoZXJlIGlzIG5vdCByaXNrIG9mIGluZmlu aXR5IGN5Y2xlLgorCQkJICovCisJCQlnb3RvIHJlaW5pdDsKKwkJfQorCX0KKwogCS8qIGVuc3Vy ZSB0aGUgcmV0dXJuZWQgZGF0YSBpcyBzdGlsbCBvZiB0aGUgY29ycmVjdCBkb21haW4gKi8KIAlp ZiAoc3Zhci0+aXNfZG9tYWluKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGJmN2NhM2Y1MWMuLmFmYjE1 MWIzYWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNjY3LDcgKzY2Nyw3IEBAIHN0YXRpYyBOb2RlICptYWtl UmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpx dWVyeSk7CiAJCQkJanNvbl9vYmplY3RfY29uc3RydWN0b3JfbnVsbF9jbGF1c2Vfb3B0CiAJCQkJ anNvbl9hcnJheV9jb25zdHJ1Y3Rvcl9udWxsX2NsYXVzZV9vcHQKIAotJXR5cGUgPGJvb2xlYW4+ CQlPcHROb3ROdWxsIE9wdEltbXV0YWJsZQorJXR5cGUgPGJvb2xlYW4+CQlPcHROb3ROdWxsIE9w dEltbXV0YWJsZSBPcHRUcmFuc2FjdGlvbmFsCiAKIC8qCiAgKiBOb24ta2V5d29yZCB0b2tlbiB0 eXBlcy4gIFRoZXNlIGFyZSBoYXJkLXdpcmVkIGludG8gdGhlICJmbGV4IiBsZXhlci4KQEAgLTc3 Miw3ICs3NzIsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAq cmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCVNVQlNDUklQVElPTiBTVUJT VFJJTkcgU1VQUE9SVCBTWU1NRVRSSUMgU1lTSUQgU1lTVEVNX1AgU1lTVEVNX1VTRVIKIAogCVRB QkxFIFRBQkxFUyBUQUJMRVNBTVBMRSBUQUJMRVNQQUNFIFRBUkdFVCBURU1QIFRFTVBMQVRFIFRF TVBPUkFSWSBURVhUX1AgVEhFTgotCVRJRVMgVElNRSBUSU1FU1RBTVAgVE8gVFJBSUxJTkcgVFJB TlNBQ1RJT04gVFJBTlNGT1JNCisJVElFUyBUSU1FIFRJTUVTVEFNUCBUTyBUUkFJTElORyBUUkFO U0FDVElPTiBUUkFOU0FDVElPTkFMIFRSQU5TRk9STQogCVRSRUFUIFRSSUdHRVIgVFJJTSBUUlVF X1AKIAlUUlVOQ0FURSBUUlVTVEVEIFRZUEVfUCBUWVBFU19QCiAKQEAgLTUyMzksMzEgKzUyMzks MzMgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToKICAqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K IAogQ3JlYXRlU2Vzc2lvblZhclN0bXQ6Ci0JCQlDUkVBVEUgT3B0VGVtcCBPcHRJbW11dGFibGUg VkFSSUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVz ZSBPcHROb3ROdWxsIE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KKwkJ CUNSRUFURSBPcHRUZW1wIE9wdFRyYW5zYWN0aW9uYWwgT3B0SW1tdXRhYmxlIFZBUklBQkxFIHF1 YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0Tm90TnVs bCBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCiAJCQkJewogCQkJCQlD cmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsK LQkJCQkJJDUtPnJlbHBlcnNpc3RlbmNlID0gJDI7Ci0JCQkJCW4tPmlzX2ltbXV0YWJsZSA9ICQz OwotCQkJCQluLT52YXJpYWJsZSA9ICQ1OwotCQkJCQluLT50eXBlTmFtZSA9ICQ3OwotCQkJCQlu LT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDg7Ci0JCQkJCW4tPm5vdF9udWxsID0g JDk7Ci0JCQkJCW4tPmRlZmV4cHIgPSAkMTA7Ci0JCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTE7 CisJCQkJCSQ2LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOworCQkJCQluLT5pc19pbW11dGFibGUgPSAk NDsKKwkJCQkJbi0+aXNfdHJhbnNhY3QgPSAkMzsKKwkJCQkJbi0+dmFyaWFibGUgPSAkNjsKKwkJ CQkJbi0+dHlwZU5hbWUgPSAkODsKKwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNl ICopICQ5OworCQkJCQluLT5ub3RfbnVsbCA9ICQxMDsKKwkJCQkJbi0+ZGVmZXhwciA9ICQxMTsK KwkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMjsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZh bHNlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgT3B0VGVtcCBP cHRJbW11dGFibGUgVkFSSUFCTEUgSUZfUCBOT1QgRVhJU1RTIHF1YWxpZmllZF9uYW1lIG9wdF9h cyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0Tm90TnVsbCBPcHRTZXNzaW9uVmFyRGVm RXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQl8IENSRUFURSBPcHRUZW1wIE9wdFRyYW5zYWN0 aW9uYWwgT3B0SW1tdXRhYmxlIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFt ZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdE5vdE51bGwgT3B0U2Vzc2lv blZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lv blZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7Ci0JCQkJCSQ4LT5y ZWxwZXJzaXN0ZW5jZSA9ICQyOwotCQkJCQluLT5pc19pbW11dGFibGUgPSAkMzsKLQkJCQkJbi0+ dmFyaWFibGUgPSAkODsKLQkJCQkJbi0+dHlwZU5hbWUgPSAkMTA7Ci0JCQkJCW4tPmNvbGxDbGF1 c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkMTE7Ci0JCQkJCW4tPm5vdF9udWxsID0gJDEyOwotCQkJ CQluLT5kZWZleHByID0gJDEzOwotCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDE0OworCQkJCQkk OS0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+aXNfaW1tdXRhYmxlID0gJDQ7CisJCQkJ CW4tPmlzX3RyYW5zYWN0ID0gJDM7CisJCQkJCW4tPnZhcmlhYmxlID0gJDk7CisJCQkJCW4tPnR5 cGVOYW1lID0gJDExOworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDEy OworCQkJCQluLT5ub3RfbnVsbCA9ICQxMzsKKwkJCQkJbi0+ZGVmZXhwciA9ICQxNDsKKwkJCQkJ bi0+WGFjdEVuZEFjdGlvbiA9ICQxNTsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IHRydWU7CiAJ CQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CkBAIC01MjkxLDYgKzUyOTMsMTIgQEAgT3B0SW1t dXRhYmxlOiBJTU1VVEFCTEUJCQkJCQkJCXsgJCQgPSB0cnVlOyB9CiAJCQl8IC8qIEVNUFRZICov CQkJCQkJCXsgJCQgPSBmYWxzZTsgfQogCQk7CiAKK09wdFRyYW5zYWN0aW9uYWw6CisJCQlUUkFO U0FDVElPTgkJCQkJCQkJeyAkJCA9IHRydWU7IH0KKwkJCXwgVFJBTlNBQ1RJT05BTAkJCQkJCQl7 ICQkID0gdHJ1ZTsgfQorCQkJfCAvKiBFTVBUWSAqLwkJCQkJCQl7ICQkID0gZmFsc2U7IH0KKwkJ OworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKiBBTFRFUiBFWFRFTlNJT04gbmFtZSBV UERBVEUgWyBUTyB2ZXJzaW9uIF0KQEAgLTE4MDk4LDYgKzE4MTA2LDcgQEAgdW5yZXNlcnZlZF9r ZXl3b3JkOgogCQkJfCBURVhUX1AKIAkJCXwgVElFUwogCQkJfCBUUkFOU0FDVElPTgorCQkJfCBU UkFOU0FDVElPTkFMCiAJCQl8IFRSQU5TRk9STQogCQkJfCBUUklHR0VSCiAJCQl8IFRSVU5DQVRF CkBAIC0xODc0Niw2ICsxODc1NSw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgVElNRVNU QU1QCiAJCQl8IFRSQUlMSU5HCiAJCQl8IFRSQU5TQUNUSU9OCisJCQl8IFRSQU5TQUNUSU9OQUwK IAkJCXwgVFJBTlNGT1JNCiAJCQl8IFRSRUFUCiAJCQl8IFRSSUdHRVIKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4 IGI0YzYxZGExODguLjQ2ZmIyOGMxYzggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNTQ0Miw2ICs1NDQyLDcg QEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaW50CQkJaV92YXJjb2xsYXRpb247CiAJ aW50CQkJaV92YXJub3RudWxsOwogCWludAkJCWlfdmFyaXNpbW11dGFibGU7CisJaW50CQkJaV92 YXJpc3RyYW5zYWN0OwogCWludAkJCWlfdmFyYWNsOwogCWludAkJCWlfYWNsZGVmYXVsdDsKIAlp bnQJCQlpLApAQCAtNTQ2Niw2ICs1NDY3LDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQp CiAJCQkJCSAgIiAgICAgICBFTkQgQVMgdmFyY29sbGF0aW9uLFxuIgogCQkJCQkgICIgICAgICAg di52YXJub3RudWxsLFxuIgogCQkJCQkgICIgICAgICAgdi52YXJpc2ltbXV0YWJsZSxcbiIKKwkJ CQkJICAiICAgICAgIHYudmFyaXN0cmFuc2FjdCxcbiIKIAkJCQkJICAiICAgICAgIHBnX2NhdGFs b2cucGdfZ2V0X2V4cHIodi52YXJkZWZleHByLDApIGFzIHZhcmRlZmV4cHIsXG4iCiAJCQkJCSAg IiAgICAgICB2LnZhcm93bmVyLCB2LnZhcmFjbCxcbiIKIAkJCQkJICAiICAgICAgIGFjbGRlZmF1 bHQoJ1YnLCB2LnZhcm93bmVyKSBBUyBhY2xkZWZhdWx0XG4iCkBAIC01NDg4LDYgKzU0OTAsNyBA QCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAlpX3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJl cihyZXMsICJ2YXJjb2xsYXRpb24iKTsKIAlpX3Zhcm5vdG51bGwgPSBQUWZudW1iZXIocmVzLCAi dmFybm90bnVsbCIpOwogCWlfdmFyaXNpbW11dGFibGUgPSBQUWZudW1iZXIocmVzLCAidmFyaXNp bW11dGFibGUiKTsKKwlpX3ZhcmlzdHJhbnNhY3QgPSBQUWZudW1iZXIocmVzLCAidmFyaXN0cmFu c2FjdCIpOwogCiAJaV92YXJvd25lciA9IFBRZm51bWJlcihyZXMsICJ2YXJvd25lciIpOwogCWlf dmFyYWNsID0gUFFmbnVtYmVyKHJlcywgInZhcmFjbCIpOwpAQCAtNTUxNiw2ICs1NTE5LDcgQEAg Z2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJCXZhcmluZm9baV0udmFyY29sbGF0aW9uID0g YXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmNvbGxhdGlvbikpOwogCQl2YXJpbmZvW2ld LnZhcm5vdG51bGwgPSAqKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zhcm5vdG51bGwpKSA9PSAndCc7 CiAJCXZhcmluZm9baV0udmFyaXNpbW11dGFibGUgPSAqKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zh cmlzaW1tdXRhYmxlKSkgPT0gJ3QnOworCQl2YXJpbmZvW2ldLnZhcmlzdHJhbnNhY3QgPSAqKFBR Z2V0dmFsdWUocmVzLCBpLCBpX3ZhcmlzdHJhbnNhY3QpKSA9PSAndCc7CiAKIAkJdmFyaW5mb1tp XS5kYWNsLmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJhY2wpKTsKIAkJ dmFyaW5mb1tpXS5kYWNsLmFjbGRlZmF1bHQgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGks IGlfYWNsZGVmYXVsdCkpOwpAQCAtNTU2Myw2ICs1NTY3LDcgQEAgZHVtcFZhcmlhYmxlKEFyY2hp dmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAljb25zdCBjaGFyICp2YXJk ZWZleHByOwogCWNvbnN0IGNoYXIgKnZhcnhhY3RlbmRhY3Rpb247CiAJY29uc3QgY2hhciAqdmFy aXNpbW11dGFibGU7CisJY29uc3QgY2hhciAqdmFyaXN0cmFuc2FjdDsKIAlPaWQJCQl2YXJjb2xs YXRpb247CiAJYm9vbAkJdmFybm90bnVsbDsKIApAQCAtNTU4MCwxMiArNTU4NSwxMyBAQCBkdW1w VmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCXZh cmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKIAl2YXJub3RudWxsID0gdmFyaW5m by0+dmFybm90bnVsbDsKIAl2YXJpc2ltbXV0YWJsZSA9IHZhcmluZm8tPnZhcmlzaW1tdXRhYmxl ID8gIklNTVVUQUJMRSAiIDogIiI7CisJdmFyaXN0cmFuc2FjdCA9IHZhcmluZm8tPnZhcmlzdHJh bnNhY3QgPyAiVFJBTlNBQ1RJT05BTCAiIDogIiI7CiAKIAlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxx LCAiRFJPUCBWQVJJQUJMRSAlcztcbiIsCiAJCQkJCSAgcXVhbHZhcm5hbWUpOwogCi0JYXBwZW5k UFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgJXNWQVJJQUJMRSAlcyBBUyAlcyIsCi0JCQkJCSAg dmFyaXNpbW11dGFibGUsIHF1YWx2YXJuYW1lLCB2YXJ0eXBuYW1lKTsKKwlhcHBlbmRQUUV4cEJ1 ZmZlcihxdWVyeSwgIkNSRUFURSAlcyVzVkFSSUFCTEUgJXMgQVMgJXMiLAorCQkJCQkgIHZhcmlz dHJhbnNhY3QsIHZhcmlzaW1tdXRhYmxlLCBxdWFsdmFybmFtZSwgdmFydHlwbmFtZSk7CiAKIAlp ZiAoT2lkSXNWYWxpZCh2YXJjb2xsYXRpb24pKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDA1NjI0OTdm MzQuLmYzZTk4MjNjOGMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysr IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNzI3LDYgKzcyNyw3IEBAIHR5cGVkZWYg c3RydWN0IF9WYXJpYWJsZUluZm8KIAljb25zdCBjaGFyICpyb2xuYW1lOwkJLyogbmFtZSBvZiBv d25lciwgb3IgZW1wdHkgc3RyaW5nICovCiAJYm9vbAkJdmFybm90bnVsbDsKIAlib29sCQl2YXJp c2ltbXV0YWJsZTsKKwlib29sCQl2YXJpc3RyYW5zYWN0OwogfSBWYXJpYWJsZUluZm87CiAKIC8q CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4v cGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IDFiYmE2OGU2YWUuLjAzNDQwYTQyMzAgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4v cGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC00MDc3LDYgKzQwNzcsNDIgQEAgbXkgJXRlc3Rz ID0gKAogCQl9LAogCX0sCiAKKwknQ1JFQVRFIFRSQU5TQUNUSU9OQUwgVkFSSUFCTEUgdGVzdF92 YXJpYWJsZScgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0Y2hfYWxsICAgID0+ICdD UkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVhdGVfc3Fs ICAgPT4gJ0NSRUFURSBUUkFOU0FDVElPTkFMIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTgg QVMgaW50ZWdlcicsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBUUkFOU0FDVElPTkFM IFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTggQVMgaW50ZWdlcjtcRS94bSwKKwkJbGlrZSA9 PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rp b25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90 ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0s CisJfSwKKworCSdDUkVBVEUgVFJBTlNBQ1RJT05BTCBJTU1VVEFCTEUgVkFSSUFCTEUgdGVzdF92 YXJpYWJsZScgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0Y2hfYWxsICAgID0+ICdD UkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVhdGVfc3Fs ICAgPT4gJ0NSRUFURSBUUkFOU0FDVElPTkFMIElNTVVUQUJMRSBWQVJJQUJMRSBkdW1wX3Rlc3Qu dmFyaWFibGU5IEFTIGludGVnZXInLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgVFJB TlNBQ1RJT05BTCBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlOSBBUyBpbnRl Z2VyO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3Nj aGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4g eworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3Vy ZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NSRUFURSBWSUVXIHRlc3RfdmlldycgPT4g ewogCQljcmVhdGVfb3JkZXIgPT4gNjEsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBWSUVXIGR1 bXBfdGVzdC50ZXN0X3ZpZXcKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggNzRlMWJjNTU3OC4uYjY4MWI1MGNlYyAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMKQEAgLTUyNTAsNyArNTI1MCw3IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0 dGVybiwgYm9vbCB2ZXJib3NlKQogCVBRRXhwQnVmZmVyRGF0YSBidWY7CiAJUEdyZXN1bHQgICAq cmVzOwogCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7Ci0Jc3RhdGljIGNvbnN0IGJv b2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCXN0YXRpYyBj b25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZX07CiAKIAlpZiAocHNldC5zdmVyc2lvbiA8IDE4MDAwMCkKIAl7CkBAIC01MjczLDYgKzUyNzMs NyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJ CQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZCh2LnZhcm93bmVyKSBhcyBcIiVzXCIs XG4iCiAJCQkJCSAgIiAgTk9UIHYudmFybm90bnVsbCBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAg Tk9UIHYudmFyaXNpbW11dGFibGUgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIHYudmFyaXN0cmFu c2FjdCBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcih2LnZh cmRlZmV4cHIsIDApIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBDQVNFIHYudmFyeGFjdGVuZGFj dGlvblxuIgogCQkJCQkgICIgICAgV0hFTiAnZCcgVEhFTiAnT04gQ09NTUlUIERST1AnXG4iCkBA IC01Mjg1LDYgKzUyODYsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJv b2wgdmVyYm9zZSkKIAkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIiksCiAJCQkJCSAgZ2V0dGV4 dF9ub29wKCJOdWxsYWJsZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiTXV0YWJsZSIpLAorCQkJ CQkgIGdldHRleHRfbm9vcCgiVHJhbnNhY3Rpb25hbCIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgi RGVmYXVsdCIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9u IikpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggZDY4MzhhZTNjMS4uZDM0N2IyZDI3ZSAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4v cHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMTMwNSw2ICsxMzA1LDggQEAgc3RhdGljIGNvbnN0 IHBnc3FsX3RoaW5nX3Qgd29yZHNfYWZ0ZXJfY3JlYXRlW10gPSB7CiAJCQkJCQkJCQkJCQkJCQkJ CQkJICogVEFCTEUgLi4uICovCiAJeyJURVhUIFNFQVJDSCIsIE5VTEwsIE5VTEwsIE5VTEx9LAog CXsiVFJBTlNGT1JNIiwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgVEhJTkdfTk9fQUxURVJ9LAor CXsiVFJBTlNBQ1RJT05BTCIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIFRISU5HX05PX0RST1Ag fCBUSElOR19OT19BTFRFUn0sIC8qIGZvciBDUkVBVEUgVFJBTlNBQ1RJT05BTAorCQkJCQkJCQkJ CQkJCQkJCQkJCQkqIFZBUklBQkxFIC4uLiAqLwogCXsiVFJJR0dFUiIsICJTRUxFQ1QgdGduYW1l IEZST00gcGdfY2F0YWxvZy5wZ190cmlnZ2VyIFdIRVJFIHRnbmFtZSBMSUtFICclcycgQU5EIE5P VCB0Z2lzaW50ZXJuYWwifSwKIAl7IlRZUEUiLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rf b2ZfZGF0YXR5cGVzfSwKIAl7IlVOSVFVRSIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIFRISU5H X05PX0RST1AgfCBUSElOR19OT19BTFRFUn0sIC8qIGZvciBDUkVBVEUgVU5JUVVFCkBAIC0zOTYy LDggKzM5NjQsMTEgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJfQog LyogQ1JFQVRFIFZBUklBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBz byB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+ IHdpdGggQVMgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiVFJBTlNBQ1RJT058VFJB TlNBQ1RJT05BTCIpKQorCQlDT01QTEVURV9XSVRIKCJJTU1VVEFCTEUiLCAiVkFSSUFCTEUiKTsK IAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpIHx8 CiAJCQkgVGFpbE1hdGNoZXMoIlRFTVB8VEVNUE9SQVJZIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkp IHx8CisJCQkgVGFpbE1hdGNoZXMoIlRSQU5TQUNUSU9OfFRSQU5TQUNUSU9OQUwiLCAiVkFSSUFC TEUiLCBNYXRjaEFueSkgfHwKIAkJCSBUYWlsTWF0Y2hlcygiSU1NVVRBQkxFIiwgIlZBUklBQkxF IiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJBUyIpOwogCWVsc2UgaWYgKFRhaWxNYXRj aGVzKCJWQVJJQUJMRSIsIE1hdGNoQW55LCAiQVMiKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUu aAppbmRleCBjZjIxZTA0MjZhLi40NTRiYjI5NzA5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJs ZS5oCkBAIC02Miw2ICs2Miw5IEBAIENBVEFMT0cocGdfdmFyaWFibGUsOTIyMixWYXJpYWJsZVJl bGF0aW9uSWQpCiAJLyogZG9uJ3QgYWxsb3cgY2hhbmdlcyAqLwogCWJvb2wJCXZhcmlzaW1tdXRh YmxlIEJLSV9ERUZBVUxUKGYpOwogCisJLyogc3VwcG9ydHMgdHJhbnNhY3Rpb25zICovCisJYm9v bAkJdmFyaXN0cmFuc2FjdCBCS0lfREVGQVVMVChmKTsKKwogCS8qIGFjdGlvbiBvbiB0cmFuc2Fj dGlvbiBlbmQgKi8KIAljaGFyCQl2YXJ4YWN0ZW5kYWN0aW9uIEJLSV9ERUZBVUxUKG4pOwogCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggOTkwY2ViYmYwOC4uYjc0NDBhMDYxYiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaApAQCAtMzQ5MSw2ICszNDkxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRl U2Vzc2lvblZhclN0bXQKIAlib29sCQlpZl9ub3RfZXhpc3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0 IGFscmVhZHkgZXhpc3RzICovCiAJYm9vbAkJbm90X251bGw7CQkvKiBkaXNhbGxvdyBudWxscyAq LwogCWJvb2wJCWlzX2ltbXV0YWJsZTsJLyogZG9uJ3QgYWxsb3cgY2hhbmdlcyAqLworCWJvb2wJ CWlzX3RyYW5zYWN0OwkvKiBzdXBwb3J0cyB0cmFuc2FjdGlvbnMgKi8KIAlOb2RlCSAgICpkZWZl eHByOwkJLyogZGVmYXVsdCBleHByZXNzaW9uICovCiAJY2hhcgkJWGFjdEVuZEFjdGlvbjsJLyog b24gdHJhbnNhY3Rpb24gZW5kIGFjdGlvbiAqLwogfSBDcmVhdGVTZXNzaW9uVmFyU3RtdDsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNl ci9rd2xpc3QuaAppbmRleCA2Zjg0ZmVmZDUyLi40ZjFjMGViNTM2IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5o CkBAIC00NTUsNiArNDU1LDcgQEAgUEdfS0VZV09SRCgidGltZXN0YW1wIiwgVElNRVNUQU1QLCBD T0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidG8iLCBUTywgUkVTRVJW RURfS0VZV09SRCwgQVNfTEFCRUwpCiBQR19LRVlXT1JEKCJ0cmFpbGluZyIsIFRSQUlMSU5HLCBS RVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidHJhbnNhY3Rpb24iLCBU UkFOU0FDVElPTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgi dHJhbnNhY3Rpb25hbCIsIFRSQU5TQUNUSU9OQUwsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9M QUJFTCkKIFBHX0tFWVdPUkQoInRyYW5zZm9ybSIsIFRSQU5TRk9STSwgVU5SRVNFUlZFRF9LRVlX T1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidHJlYXQiLCBUUkVBVCwgQ09MX05BTUVfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInRyaWdnZXIiLCBUUklHR0VSLCBVTlJFU0VS VkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3BzcWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRl eCBlMTYzNWY2ODZjLi5kYTlmNGE3MDMwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQK QEAgLTU5MzUsMjAgKzU5MzUsMjAgQEAgQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25l cjsKIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBD b2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwg RGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8IEFjY2VzcyBwcml2aWxlZ2VzIHwg RGVzY3JpcHRpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8 IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAg IFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IE51bGxh YmxlIHwgTXV0YWJsZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQor IHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCBmICAgICAgICAgICAgIHwgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgCiAo MSByb3cpCiAKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsKIENPTU1F TlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CiBcZFYrIHZhcjEKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVt YSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIg ICAgICAgICAgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAg ICAgIHwgICBEZXNjcmlwdGlvbiAgICAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCi0g cHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192 YXJpYWJsZV9vd25lciB8IHQgICAgICAgIHwgdCAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFi bGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCi0gICAgICAgIHwgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwg ICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNz X3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwg TmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAg ICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0IHwgVHJh bnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMg ICAgICAgICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0tKy0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFy eWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQg ICAgICAgfCBmICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNv bWUgZGVzY3JpcHRpb24KKyAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdy ZXNzX3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAog RFJPUCBWQVJJQUJMRSB2YXIxOwpAQCAtNjQxNiw5ICs2NDE2LDkgQEAgTGlzdCBvZiBzY2hlbWFz CiAoMCByb3dzKQogCiBcZFYgIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8 IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQg fCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxh dGlvbiB8IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgVHJhbnNhY3Rpb25hbCB8IERlZmF1 bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4s IGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02NTkxLDkgKzY1OTEs OSBAQCBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5pbnN0YQogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1 Y2guZXZlbnQudHJpZ2dlciIKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0 ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBcZFYg Im5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwg VHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8 IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0 aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBUcmFuc2FjdGlvbmFsIHwgRGVmYXVs dCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2Fpbiwg YnV0IHdpdGggY3VycmVudCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9u cy4KQEAgLTY3MzAsOSArNjczMCw5IEBAIExpc3Qgb2YgdGV4dCBzZWFyY2ggdGVtcGxhdGVzCiAo MCByb3dzKQogCiBcZFYgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlh YmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZh cmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxs YWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0t LS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2No ZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJs ZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAor LS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgZGF0YWJhc2UgYW5kIGRv dHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDU2NWZiNWRhNmUuLjAyN2I1MDAyMjMgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBA IC0yNTkxLDMgKzI1OTEsMTAzIEBAIFNFTEVDVCB2YXIxOwogTEVUIHZhcjEgPSAzMDsKIEVSUk9S OiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQog RFJPUCBWQVJJQUJMRSB2YXIxOworLS0gdGVzdCB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcworQ1JF QVRFIFRSQU5TQUNUSU9OIFZBUklBQkxFIHR2IEFTIGludCBERUZBVUxUIDA7CitCRUdJTjsKKyAg TEVUIHR2ID0gMTAwOworICBTRUxFQ1QgdHY7CisgdHYgIAorLS0tLS0KKyAxMDAKKygxIHJvdykK KworUk9MTEJBQ0s7CitTRUxFQ1QgdHY7CisgdHYgCistLS0tCisgIDAKKygxIHJvdykKKworTEVU IHR2ID0gMTAwOworQkVHSU47CisgIExFVCB0diA9IDEwMDA7CitDT01NSVQ7CitTRUxFQ1QgdHY7 CisgIHR2ICAKKy0tLS0tLQorIDEwMDAKKygxIHJvdykKKworQkVHSU47CisgIExFVCB0diA9IDA7 CisgIFNFTEVDVCB0djsKKyB0diAKKy0tLS0KKyAgMAorKDEgcm93KQorCitST0xMQkFDSzsKK1NF TEVDVCB0djsKKyAgdHYgIAorLS0tLS0tCisgMTAwMAorKDEgcm93KQorCistLSB0ZXN0IHN1YnRy YW5zYWN0aW9ucworQkVHSU47CisgIExFVCB0diA9IDE7CitTQVZFUE9JTlQgeDE7CisgIExFVCB0 diA9IDI7CitTQVZFUE9JTlQgeDI7CisgIExFVCB0diA9IDM7CitST0xMQkFDSyBUTyB4MjsKKyAg U0VMRUNUIHR2OworIHR2IAorLS0tLQorICAyCisoMSByb3cpCisKKyAgTEVUIHR2ID0gMTA7CitS T0xMQkFDSyBUTyB4MTsKKyAgU0VMRUNUIHR2OworIHR2IAorLS0tLQorICAxCisoMSByb3cpCisK K1JPTExCQUNLOworU0VMRUNUIHR2OworICB0diAgCistLS0tLS0KKyAxMDAwCisoMSByb3cpCisK K0JFR0lOOworICBMRVQgdHYgPSAxOworU0FWRVBPSU5UIHgxOworICBMRVQgdHYgPSAyOworU0FW RVBPSU5UIHgyOworICBMRVQgdHYgPSAzOworUk9MTEJBQ0sgVE8geDI7CisgIFNFTEVDVCB0djsK KyB0diAKKy0tLS0KKyAgMgorKDEgcm93KQorCisgIExFVCB0diA9IDEwOworUk9MTEJBQ0sgVE8g eDE7CisgIFNFTEVDVCB0djsKKyB0diAKKy0tLS0KKyAgMQorKDEgcm93KQorCitDT01NSVQ7CitT RUxFQ1QgdHY7CisgdHYgCistLS0tCisgIDEKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB0djsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCA4YTEyMmFl YjFlLi42MTkxMTE3ZTA4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsCkBAIC0xODA4LDMgKzE4MDgsNjEgQEAgU0VMRUNUIHZhcjE7CiBMRVQgdmFyMSA9IDMw OwogCiBEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHRlc3QgdHJhbnNhY3Rpb25hbCB2YXJpYWJs ZXMKK0NSRUFURSBUUkFOU0FDVElPTiBWQVJJQUJMRSB0diBBUyBpbnQgREVGQVVMVCAwOworCitC RUdJTjsKKyAgTEVUIHR2ID0gMTAwOworICBTRUxFQ1QgdHY7CitST0xMQkFDSzsKKworU0VMRUNU IHR2OworCitMRVQgdHYgPSAxMDA7CitCRUdJTjsKKyAgTEVUIHR2ID0gMTAwMDsKK0NPTU1JVDsK KworU0VMRUNUIHR2OworCitCRUdJTjsKKyAgTEVUIHR2ID0gMDsKKyAgU0VMRUNUIHR2OworUk9M TEJBQ0s7CisKK1NFTEVDVCB0djsKKworLS0gdGVzdCBzdWJ0cmFuc2FjdGlvbnMKKworQkVHSU47 CisgIExFVCB0diA9IDE7CitTQVZFUE9JTlQgeDE7CisgIExFVCB0diA9IDI7CitTQVZFUE9JTlQg eDI7CisgIExFVCB0diA9IDM7CitST0xMQkFDSyBUTyB4MjsKKyAgU0VMRUNUIHR2OworICBMRVQg dHYgPSAxMDsKK1JPTExCQUNLIFRPIHgxOworICBTRUxFQ1QgdHY7CitST0xMQkFDSzsKKworU0VM RUNUIHR2OworCitCRUdJTjsKKyAgTEVUIHR2ID0gMTsKK1NBVkVQT0lOVCB4MTsKKyAgTEVUIHR2 ID0gMjsKK1NBVkVQT0lOVCB4MjsKKyAgTEVUIHR2ID0gMzsKK1JPTExCQUNLIFRPIHgyOworICBT RUxFQ1QgdHY7CisgIExFVCB0diA9IDEwOworUk9MTEJBQ0sgVE8geDE7CisgIFNFTEVDVCB0djsK K0NPTU1JVDsKKworU0VMRUNUIHR2OworCitEUk9QIFZBUklBQkxFIHR2OwotLSAKMi40Ny4xCgo= --0000000000008953c9062b346e70 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250108-0019-expression-with-session-variables-can-be-inlined.patch" Content-Disposition: attachment; filename="v20250108-0019-expression-with-session-variables-can-be-inlined.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5o4agij3 RnJvbSBhNmY2NTk4NjZiODI3MGVjMzQzZmQ4YmYzNmFmOTA2ZDZjNjRkOWI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMjA6MzU6MzggKzAxMDAKU3ViamVjdDogW1BBVENIIDE5 LzIyXSBleHByZXNzaW9uIHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGlubGluZWQKClRo ZXJlIGlzIG5vdCBhbiByZWFzb24gd2h5IHNlc3Npb24gdmFyaWFibGVzIHNob3VsZCB0byBibG9j ayBpbmxpbmluZy4KKG9mIFNRTCBmdW5jdGlvbnMpLiBJIGNhbiBpbWFnaW5lIHNvbWUgdXNlIGNh c2VzIGxpa2Ugd3JhcHBpbmcsIGFuZAppbmxpbmluZyBzaWduaWZpY2FudGx5IHJlZHVjZXMgYW4g b3ZlcmhlYWQgb2YgU1FMIGZ1bmN0aW9ucy4KLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRp bC9jbGF1c2VzLmMgICAgICAgICAgfCAzNyArKysrKysrKysrKysrKy0tLS0tCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAgNyArKy0tCiAyIGZpbGVzIGNo YW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL2NsYXVzZXMuYwppbmRleCA2YTc2NGNjZDhkLi43NmEwNzkxOTljIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKKysrIGIvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCkBAIC00NzQxLDggKzQ3NDEsNyBAQCBpbmxpbmVfZnVu Y3Rpb24oT2lkIGZ1bmNpZCwgT2lkIHJlc3VsdF90eXBlLCBPaWQgcmVzdWx0X2NvbGxpZCwKIAkJ cXVlcnl0cmVlLT5saW1pdE9mZnNldCB8fAogCQlxdWVyeXRyZWUtPmxpbWl0Q291bnQgfHwKIAkJ cXVlcnl0cmVlLT5zZXRPcGVyYXRpb25zIHx8Ci0JCShsaXN0X2xlbmd0aChxdWVyeXRyZWUtPnRh cmdldExpc3QpICE9IDEpIHx8Ci0JCXF1ZXJ5dHJlZS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKKwkJ KGxpc3RfbGVuZ3RoKHF1ZXJ5dHJlZS0+dGFyZ2V0TGlzdCkgIT0gMSkpCiAJCWdvdG8gZmFpbDsK IAogCS8qIElmIHRoZSBmdW5jdGlvbiByZXN1bHQgaXMgY29tcG9zaXRlLCByZXNvbHZlIGl0ICov CkBAIC00OTQ2LDIxICs0OTQ1LDM5IEBAIHN1YnN0aXR1dGVfYWN0dWFsX3BhcmFtZXRlcnNfbXV0 YXRvcihOb2RlICpub2RlLAogewogCWlmIChub2RlID09IE5VTEwpCiAJCXJldHVybiBOVUxMOwor CisKKwkvKgorCSAqIFNRTCBmdW5jdGlvbnMgY2FuIGNvbnRhaW4gdHdvIGRpZmZlcmVudCBraW5k IG9mIHBhcmFtcy4gVGhlIG5vZGVzIHdpdGgKKwkgKiBwYXJhbWtpbmQgUEFSQU1fRVhURVJOIGFy ZSByZWxhdGVkIHRvIGZ1bmN0aW9uJ3MgYXJndW1lbnRzIChhbmQgc2hvdWxkCisJICogYmUgcmVw bGFjZWQgaW4gdGhpcyBzdGVwKSwgYmVjYXVzZSB0aGlzIGlzIGhvdyB3ZSBhcHBseSB0aGUgZnVu Y3Rpb24ncworCSAqIGFyZ3VtZW50cyBmb3IgYW4gZXhwcmVzc2lvbi4KKwkgKgorCSAqIFRoZSBu b2RlcyB3aXRoIHBhcmFta2luZCBQQVJBTV9WQVJJQUJMRSBhcmUgcmVsYXRlZCB0byB1c2FnZSBv ZiBzZXNzaW9uCisJICogdmFyaWFibGVzLiBUaGUgdmFsdWVzIG9mIHNlc3Npb24gdmFyaWFibGVz IGFyZSBub3QgcGFzc2VkIHRvIGV4cHJlc3Npb24KKwkgKiBieSBleHByZXNzaW9uIGFyZ3VtZW50 cywgc28gaXQgc2hvdWxkIG5vdCBiZSByZXBsYWNlZCBoZXJlIGJ5CisJICogZnVuY3Rpb24ncyBh cmd1bWVudHMuCisJICovCiAJaWYgKElzQShub2RlLCBQYXJhbSkpCiAJewogCQlQYXJhbQkgICAq cGFyYW0gPSAoUGFyYW0gKikgbm9kZTsKIAotCQlpZiAocGFyYW0tPnBhcmFta2luZCAhPSBQQVJB TV9FWFRFUk4pCisJCWlmIChwYXJhbS0+cGFyYW1raW5kICE9IFBBUkFNX0VYVEVSTiAmJgorCQkJ cGFyYW0tPnBhcmFta2luZCAhPSBQQVJBTV9WQVJJQUJMRSkKIAkJCWVsb2coRVJST1IsICJ1bmV4 cGVjdGVkIHBhcmFta2luZDogJWQiLCAoaW50KSBwYXJhbS0+cGFyYW1raW5kKTsKLQkJaWYgKHBh cmFtLT5wYXJhbWlkIDw9IDAgfHwgcGFyYW0tPnBhcmFtaWQgPiBjb250ZXh0LT5uYXJncykKLQkJ CWVsb2coRVJST1IsICJpbnZhbGlkIHBhcmFtaWQ6ICVkIiwgcGFyYW0tPnBhcmFtaWQpOwogCi0J CS8qIENvdW50IHVzYWdlIG9mIHBhcmFtZXRlciAqLwotCQljb250ZXh0LT51c2Vjb3VudHNbcGFy YW0tPnBhcmFtaWQgLSAxXSsrOworCQlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9FWFRF Uk4pCisJCXsKKwkJCWlmIChwYXJhbS0+cGFyYW1pZCA8PSAwIHx8IHBhcmFtLT5wYXJhbWlkID4g Y29udGV4dC0+bmFyZ3MpCisJCQkJZWxvZyhFUlJPUiwgImludmFsaWQgcGFyYW1pZDogJWQiLCBw YXJhbS0+cGFyYW1pZCk7CiAKLQkJLyogU2VsZWN0IHRoZSBhcHByb3ByaWF0ZSBhY3R1YWwgYXJn IGFuZCByZXBsYWNlIHRoZSBQYXJhbSB3aXRoIGl0ICovCi0JCS8qIFdlIGRvbid0IG5lZWQgdG8g Y29weSBhdCB0aGlzIHRpbWUgKGl0J2xsIGdldCBkb25lIGxhdGVyKSAqLwotCQlyZXR1cm4gbGlz dF9udGgoY29udGV4dC0+YXJncywgcGFyYW0tPnBhcmFtaWQgLSAxKTsKKwkJCS8qIENvdW50IHVz YWdlIG9mIHBhcmFtZXRlciAqLworCQkJY29udGV4dC0+dXNlY291bnRzW3BhcmFtLT5wYXJhbWlk IC0gMV0rKzsKKworCQkJLyogU2VsZWN0IHRoZSBhcHByb3ByaWF0ZSBhY3R1YWwgYXJnIGFuZCBy ZXBsYWNlIHRoZSBQYXJhbSB3aXRoIGl0ICovCisJCQkvKiBXZSBkb24ndCBuZWVkIHRvIGNvcHkg YXQgdGhpcyB0aW1lIChpdCdsbCBnZXQgZG9uZSBsYXRlcikgKi8KKwkJCXJldHVybiBsaXN0X250 aChjb250ZXh0LT5hcmdzLCBwYXJhbS0+cGFyYW1pZCAtIDEpOworCQl9CiAJfQogCXJldHVybiBl eHByZXNzaW9uX3RyZWVfbXV0YXRvcihub2RlLCBzdWJzdGl0dXRlX2FjdHVhbF9wYXJhbWV0ZXJz X211dGF0b3IsIGNvbnRleHQpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dAppbmRleCA3MDg2MzBhZTJhLi43NjM4ZTFhNDc3IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtNDgw LDcgKzQ4MCw2IEBAIFNFTEVDVCB2YXIxOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Ig c2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBTRUxFQ1Qgc3FsZngoMjApOwogRVJST1I6ICBwZXJtaXNz aW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCi1DT05URVhUOiAgU1FMIGZ1bmN0 aW9uICJzcWxmeCIgc3RhdGVtZW50IDEKIFNFTEVDVCBwbHBnc3FsZngoMjApOwogRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBDT05URVhUOiAgUEwv cGdTUUwgZnVuY3Rpb24gcGxwZ3NxbGZ4KGludGVnZXIpIGxpbmUgMSBhdCBSRVRVUk4KQEAgLTU4 NywxMCArNTg2LDEwIEBAIFNFTEVDVCBzcWxmeDEoc3FsZngyKCdIZWxsbycpKTsKIAogLS0gaW5s aW5pbmcgaXMgYmxvY2tlZAogRVhQTEFJTiAoQ09TVFMgT0ZGLCBWRVJCT1NFKSBTRUxFQ1Qgc3Fs ZngxKHNxbGZ4MignSGVsbG8nKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgUmVzdWx0Ci0gICBPdXRwdXQ6IHNxbGZ4MShzcWxmeDIoJ0hlbGxvJzo6Y2hhcmFj dGVyIHZhcnlpbmcpKQorICAgT3V0cHV0OiAoKHZhcjEgfHwgJywgJzo6dGV4dCkgfHwgKCh2YXIy IHx8ICcsICc6OnRleHQpIHx8ICdIZWxsbyc6OnRleHQpKQogKDIgcm93cykKIAogRFJPUCBGVU5D VElPTiBzcWxmeDEodmFyY2hhcik7Ci0tIAoyLjQ3LjEKCg== --0000000000008953c9062b346e70 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250108-0020-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Disposition: attachment; filename="v20250108-0020-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5o4agic2 RnJvbSA2MmE0Zjg5ZDBjZTVhZjkyNDI5MjU3NjdiNTI1NGJlMGNhYzg3ZWViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNToxMDozOSArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MjAvMjJdIHRoaXMgcGF0Y2ggY2hhbmdlcyBlcnJvciBtZXNzYWdlICJjb2x1bW4gZG9lc24ndCBl eGlzdCIKIHRvIG1lc3NhZ2UgImNvbHVtbiBvciB2YXJpYWJsZSBkb2Vzbid0IGV4aXN0IgoKVGhl IGVycm9yIG1lc3NhZ2Ugd2lsbCBiZSBtb3JlIGNvcnJlY3QuIFRvZGF5LCBtaXNzaW5nIFBML3Bn U1FMIHZhcmlhYmxlIGNhbiBiZSByZXBvcnRlZC4gVGhlIGNoYW5nZSBoYXMKaW1wYWN0IG9uIGxv dCBvZiByZWdyZXNzIHRlc3RzIG5vdCBkaXJlY3RseSByZWxhdGVkIHRvIHNlc3Npb24gdmFyaWFi bGVzLCBhbmQgdGhlbiBpdCBpcyBkaXN0cmlidXRlZCBhcyBzZXBhcmF0ZSBwYXRjaAotLS0KIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICAyICstCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYyAgICAgICAgICAgfCAyNCArKysrKysrKysr Ky0tLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jICAgICAgICAgICAgIHwgIDgg KysrLS0KIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmggICAgICAgICAgICAgICB8ICAy ICsrCiBzcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9hcnJheS5vdXQgfCAgMiAr LQogLi4uL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfcmVjb3JkLm91dCAgIHwgIDQgKy0t CiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQgfCAgMiArLQog c3JjL3BsL3RjbC9leHBlY3RlZC9wbHRjbF9xdWVyaWVzLm91dCAgICAgICAgIHwgMTIgKysrLS0t LQogLi4uL2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgIDQgKy0t CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dCAgICAgfCAzMiArKysr KysrKystLS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dCAgICAg ICAgICAgfCAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcnJvcnMub3V0ICAgICAg ICAgIHwgIDggKystLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQgICAgICAg ICAgICB8IDEyICsrKy0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91 dCAgICAgICB8ICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251bWVyb2xvZ3kub3V0 ICAgICAgfCAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wbHBnc3FsLm91dCAgICAg ICAgIHwgMTIgKysrLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAg ICAgICAgIHwgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAg ICAgICB8ICAyICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQg ICAgfCAgNiArKy0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RyYW5zYWN0aW9ucy5vdXQg ICAgfCAgNCArLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0ICAgICAgICAg ICB8ICAyICstCiAyMSBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCA2MyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCAzYTkwNGU1YzI1Li4wMDQxNjZkZDUw IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTUyNiw3ICs1MjYsNyBAQCB0cmFuc2Zvcm1J bmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKICAqIHBy aW50ZWQuICBXaGVuIHdlIGFyZSBpbiBhbiBleHByZXNzaW9uIHdoZXJlIHNlc3Npb24gdmFyaWFi bGVzIGNhbm5vdCBiZQogICogdXNlZCwgd2UgcmFpc2UgdGhlIGZpcnN0IGZvcm0gb2YgZXJyb3Ig bWVzc2FnZS4KICAqLwotc3RhdGljIGJvb2wKK2Jvb2wKIGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lv bl92YXJpYWJsZXMoUGFyc2VFeHByS2luZCBwX2V4cHJfa2luZCkKIHsKIAlib29sCQlyZXN1bHQg PSBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5j IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKaW5kZXggODY1YTEyZDhiNy4u Yzg3YjQyYmFkMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9u LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKQEAgLTI3LDYgKzI3 LDcgQEAKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJub2Rlcy9ub2Rl RnVuY3MuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfZW5yLmgiCisjaW5jbHVkZSAicGFyc2Vy L3BhcnNlX2V4cHIuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfcmVsYXRpb24uaCIKICNpbmNs dWRlICJwYXJzZXIvcGFyc2VfdHlwZS5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZXRyZWUuaCIK QEAgLTM3MzAsNiArMzczMSwxOSBAQCBlcnJvck1pc3NpbmdSVEUoUGFyc2VTdGF0ZSAqcHN0YXRl LCBSYW5nZVZhciAqcmVsYXRpb24pCiAJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHJl bGF0aW9uLT5sb2NhdGlvbikpKTsKIH0KIAorLyoKKyAqIHNldCBtZXNzYWdlICJjb2x1bW4gZG9l cyBub3QgZXhpc3QiIG9yICJjb2x1bW4gb3IgdmFyaWFibGUgZG9lcyBub3QgZXhpc3QiCisgKiBp biBkZXBlbmRlbmN5IGlmIGV4cHJlc3Npb24gY29udGV4dCBhbGxvd3Mgc2Vzc2lvbiB2YXJpYWJs ZXMuCisgKi8KK3N0YXRpYyBpbnQKK2NvbHVtbl9vcl92YXJpYWJsZV9kb2VzX25vdF9leGlzdHMo UGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBjaGFyICpjb2xuYW1lKQoreworCWlmIChleHByX2tp bmRfYWxsb3dzX3Nlc3Npb25fdmFyaWFibGVzKHBzdGF0ZS0+cF9leHByX2tpbmQpKQorCQlyZXR1 cm4gZXJybXNnKCJjb2x1bW4gb3IgdmFyaWFibGUgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY29s bmFtZSk7CisJZWxzZQorCQlyZXR1cm4gZXJybXNnKCJjb2x1bW4gXCIlc1wiIGRvZXMgbm90IGV4 aXN0IiwgY29sbmFtZSk7Cit9CisKIC8qCiAgKiBHZW5lcmF0ZSBhIHN1aXRhYmxlIGVycm9yIGFi b3V0IGEgbWlzc2luZyBjb2x1bW4uCiAgKgpAQCAtMzc2NCw3ICszNzc4LDcgQEAgZXJyb3JNaXNz aW5nQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRF RklORURfQ09MVU1OKSwKIAkJCQkJIHJlbG5hbWUgPwogCQkJCQkgZXJybXNnKCJjb2x1bW4gJXMu JXMgZG9lcyBub3QgZXhpc3QiLCByZWxuYW1lLCBjb2xuYW1lKSA6Ci0JCQkJCSBlcnJtc2coImNv bHVtbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjb2xuYW1lKSwKKwkJCQkJIGNvbHVtbl9vcl92 YXJpYWJsZV9kb2VzX25vdF9leGlzdHMocHN0YXRlLCBjb2xuYW1lKSwKIAkJCQkJIGVycmRldGFp bCgiVGhlcmUgYXJlIGNvbHVtbnMgbmFtZWQgXCIlc1wiLCBidXQgdGhleSBhcmUgaW4gdGFibGVz IHRoYXQgY2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LiIs CiAJCQkJCQkJICAgY29sbmFtZSksCiAJCQkJCSAhcmVsbmFtZSA/IGVycmhpbnQoIlRyeSB1c2lu ZyBhIHRhYmxlLXF1YWxpZmllZCBuYW1lLiIpIDogMCwKQEAgLTM3NzQsNyArMzc4OCw3IEBAIGVy cm9yTWlzc2luZ0NvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9VTkRFRklORURfQ09MVU1OKSwKIAkJCQkgcmVsbmFtZSA/CiAJCQkJIGVycm1zZygiY29sdW1u ICVzLiVzIGRvZXMgbm90IGV4aXN0IiwgcmVsbmFtZSwgY29sbmFtZSkgOgotCQkJCSBlcnJtc2co ImNvbHVtbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjb2xuYW1lKSwKKwkJCQkgY29sdW1uX29y X3ZhcmlhYmxlX2RvZXNfbm90X2V4aXN0cyhwc3RhdGUsIGNvbG5hbWUpLAogCQkJCSBlcnJkZXRh aWwoIlRoZXJlIGlzIGEgY29sdW1uIG5hbWVkIFwiJXNcIiBpbiB0YWJsZSBcIiVzXCIsIGJ1dCBp dCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnkuIiwKIAkJ CQkJCSAgIGNvbG5hbWUsIHN0YXRlLT5yZXhhY3QxLT5lcmVmLT5hbGlhc25hbWUpLAogCQkJCSBy dGVfdmlzaWJsZV9pZl9sYXRlcmFsKHBzdGF0ZSwgc3RhdGUtPnJleGFjdDEpID8KQEAgLTM3OTIs MTQgKzM4MDYsMTQgQEAgZXJyb3JNaXNzaW5nQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJ CQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwKIAkJCQkJIHJlbG5hbWUgPwog CQkJCQkgZXJybXNnKCJjb2x1bW4gJXMuJXMgZG9lcyBub3QgZXhpc3QiLCByZWxuYW1lLCBjb2xu YW1lKSA6Ci0JCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjb2xu YW1lKSwKKwkJCQkJIGNvbHVtbl9vcl92YXJpYWJsZV9kb2VzX25vdF9leGlzdHMocHN0YXRlLCBj b2xuYW1lKSwKIAkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwog CQkvKiBIYW5kbGUgY2FzZSB3aGVyZSB3ZSBoYXZlIGEgc2luZ2xlIGFsdGVybmF0aXZlIHNwZWxs aW5nIHRvIG9mZmVyICovCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9V TkRFRklORURfQ09MVU1OKSwKIAkJCQkgcmVsbmFtZSA/CiAJCQkJIGVycm1zZygiY29sdW1uICVz LiVzIGRvZXMgbm90IGV4aXN0IiwgcmVsbmFtZSwgY29sbmFtZSkgOgotCQkJCSBlcnJtc2coImNv bHVtbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjb2xuYW1lKSwKKwkJCQkgY29sdW1uX29yX3Zh cmlhYmxlX2RvZXNfbm90X2V4aXN0cyhwc3RhdGUsIGNvbG5hbWUpLAogCQkJCSBlcnJoaW50KCJQ ZXJoYXBzIHlvdSBtZWFudCB0byByZWZlcmVuY2UgdGhlIGNvbHVtbiBcIiVzLiVzXCIuIiwKIAkJ CQkJCSBzdGF0ZS0+cmZpcnN0LT5lcmVmLT5hbGlhc25hbWUsCiAJCQkJCQkgc3RyVmFsKGxpc3Rf bnRoKHN0YXRlLT5yZmlyc3QtPmVyZWYtPmNvbG5hbWVzLApAQCAtMzgxMyw3ICszODI3LDcgQEAg ZXJyb3JNaXNzaW5nQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkoZXJyY29kZShFUlJD T0RFX1VOREVGSU5FRF9DT0xVTU4pLAogCQkJCSByZWxuYW1lID8KIAkJCQkgZXJybXNnKCJjb2x1 bW4gJXMuJXMgZG9lcyBub3QgZXhpc3QiLCByZWxuYW1lLCBjb2xuYW1lKSA6Ci0JCQkJIGVycm1z ZygiY29sdW1uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNvbG5hbWUpLAorCQkJCSBjb2x1bW5f b3JfdmFyaWFibGVfZG9lc19ub3RfZXhpc3RzKHBzdGF0ZSwgY29sbmFtZSksCiAJCQkJIGVycmhp bnQoIlBlcmhhcHMgeW91IG1lYW50IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uIFwiJXMuJXNcIiBv ciB0aGUgY29sdW1uIFwiJXMuJXNcIi4iLAogCQkJCQkJIHN0YXRlLT5yZmlyc3QtPmVyZWYtPmFs aWFzbmFtZSwKIAkJCQkJCSBzdHJWYWwobGlzdF9udGgoc3RhdGUtPnJmaXJzdC0+ZXJlZi0+Y29s bmFtZXMsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKaW5kZXggMzAwZWEzNDg3OC4uMzQwMmVl ODZkZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwpAQCAtNzc5LDcgKzc3OSw5IEBAIHRy YW5zZm9ybUFzc2lnbm1lbnRJbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQlpZiAo IXR5cHJlbGlkKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RB VEFUWVBFX01JU01BVENIKSwKLQkJCQkJCSBlcnJtc2coImNhbm5vdCBhc3NpZ24gdG8gZmllbGQg XCIlc1wiIG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVzZSBpdHMgdHlwZSAlcyBpcyBub3QgYSBjb21w b3NpdGUgdHlwZSIsCisJCQkJCQkgZXJybXNnKGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJp YWJsZXMocHN0YXRlLT5wX2V4cHJfa2luZCkgPworCQkJCQkJCQkgImNhbm5vdCBhc3NpZ24gdG8g ZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBvciB2YXJpYWJsZSBcIiVzXCIgYmVjYXVzZSBpdHMgdHlw ZSAlcyBpcyBub3QgYSBjb21wb3NpdGUgdHlwZSIgOgorCQkJCQkJCQkgImNhbm5vdCBhc3NpZ24g dG8gZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVzZSBpdHMgdHlwZSAlcyBpcyBu b3QgYSBjb21wb3NpdGUgdHlwZSIsCiAJCQkJCQkJCXN0clZhbChuKSwgdGFyZ2V0TmFtZSwKIAkJ CQkJCQkJZm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZUlkKSksCiAJCQkJCQkgcGFyc2VyX2VycnBv c2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CkBAIC03ODgsNyArNzkwLDkgQEAgdHJhbnNmb3Jt QXNzaWdubWVudEluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCWlmIChhdHRudW0g PT0gSW52YWxpZEF0dHJOdW1iZXIpCiAJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCShlcnJjb2Rl KEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCi0JCQkJCQkgZXJybXNnKCJjYW5ub3QgYXNzaWdu IHRvIGZpZWxkIFwiJXNcIiBvZiBjb2x1bW4gXCIlc1wiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3Vj aCBjb2x1bW4gaW4gZGF0YSB0eXBlICVzIiwKKwkJCQkJCSBlcnJtc2coZXhwcl9raW5kX2FsbG93 c19zZXNzaW9uX3ZhcmlhYmxlcyhwc3RhdGUtPnBfZXhwcl9raW5kKSA/CisJCQkJCQkJCSAiY2Fu bm90IGFzc2lnbiB0byBmaWVsZCBcIiVzXCIgb2YgY29sdW1uIG9yIHZhcmlhYmxlIFwiJXNcIiBi ZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSAlcyIgOgorCQkJCQkJ CQkgImNhbm5vdCBhc3NpZ24gdG8gZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVz ZSB0aGVyZSBpcyBubyBzdWNoIGNvbHVtbiBpbiBkYXRhIHR5cGUgJXMiLAogCQkJCQkJCQlzdHJW YWwobiksIHRhcmdldE5hbWUsCiAJCQkJCQkJCWZvcm1hdF90eXBlX2JlKHRhcmdldFR5cGVJZCkp LAogCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCBiL3NyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZV9leHByLmgKaW5kZXggNWJkZTQzNzU4ZC4uNzFlYzIxM2Y4OCAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2VfZXhwci5oCkBAIC0yNCw0ICsyNCw2IEBAIGV4dGVybiBOb2RlICp0cmFuc2Zvcm1FeHBy KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgUGFyc2VFeHByS2luZCBleHByS2luCiAK IGV4dGVybiBjb25zdCBjaGFyICpQYXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5kIGV4cHJL aW5kKTsKIAorZXh0ZXJuIGJvb2wgZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3ZhcmlhYmxlcyhQ YXJzZUV4cHJLaW5kIHBfZXhwcl9raW5kKTsKKwogI2VuZGlmCQkJCQkJCS8qIFBBUlNFX0VYUFJf SCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfYXJy YXkub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfYXJyYXkub3V0Cmlu ZGV4IGFkNjBlMGU4YmUuLmMxYWI5ZmQ3ZWQgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3Ny Yy9leHBlY3RlZC9wbHBnc3FsX2FycmF5Lm91dAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhw ZWN0ZWQvcGxwZ3NxbF9hcnJheS5vdXQKQEAgLTQxLDcgKzQxLDcgQEAgTk9USUNFOiAgYSA9IHsi KCwxMSkifSwgYVsxXS5pID0gMTEKIC0tIHBlcmhhcHMgdGhpcyBvdWdodCB0byB3b3JrLCBidXQg Zm9yIG5vdyBpdCBkb2Vzbid0OgogZG8gJCQgZGVjbGFyZSBhIGNvbXBsZXhbXTsKIGJlZ2luIGFb MToyXS5pIDo9IGFycmF5WzExLDEyXTsgcmFpc2Ugbm90aWNlICdhID0gJScsIGE7IGVuZCQkOwot RVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJpIiBvZiBjb2x1bW4gImEiIGJlY2F1c2Ug aXRzIHR5cGUgY29tcGxleFtdIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlCitFUlJPUjogIGNhbm5v dCBhc3NpZ24gdG8gZmllbGQgImkiIG9mIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgYmVjYXVzZSBp dHMgdHlwZSBjb21wbGV4W10gaXMgbm90IGEgY29tcG9zaXRlIHR5cGUKIExJTkUgMTogYVsxOjJd LmkgOj0gYXJyYXlbMTEsMTJdCiAgICAgICAgIF4KIFFVRVJZOiAgYVsxOjJdLmkgOj0gYXJyYXlb MTEsMTJdCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9y ZWNvcmQub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfcmVjb3JkLm91 dAppbmRleCA2OTc0YzhmNGE0Li4zOTcwYWM3MjFjIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9yZWNvcmQub3V0CisrKyBiL3NyYy9wbC9wbHBnc3FsL3Ny Yy9leHBlY3RlZC9wbHBnc3FsX3JlY29yZC5vdXQKQEAgLTEzNSw3ICsxMzUsNyBAQCBFUlJPUjog IHJlY29yZCAiYyIgaGFzIG5vIGZpZWxkICJ4IgogQ09OVEVYVDogIFBML3BnU1FMIGFzc2lnbm1l bnQgImMueC5xMSA9IDEiCiBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5l IDEgYXQgYXNzaWdubWVudAogZG8gJCQgZGVjbGFyZSBjIG5lc3RlZF9pbnQ4czsgYmVnaW4gYy5j Mi54ID0gMTsgZW5kICQkOwotRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBj b2x1bW4gImMiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3 b19pbnQ4cworRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gb3Ig dmFyaWFibGUgImMiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBl IHR3b19pbnQ4cwogTElORSAxOiBjLmMyLnggPSAxCiAgICAgICAgIF4KIFFVRVJZOiAgYy5jMi54 ID0gMQpAQCAtMTU3LDcgKzE1Nyw3IEBAIEVSUk9SOiAgcmVjb3JkICJjIiBoYXMgbm8gZmllbGQg IngiCiBDT05URVhUOiAgUEwvcGdTUUwgYXNzaWdubWVudCAiYi5jLngucTEgPSAxIgogUEwvcGdT UUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IGFzc2lnbm1lbnQKIGRvICQk IDw8Yj4+IGRlY2xhcmUgYyBuZXN0ZWRfaW50OHM7IGJlZ2luIGIuYy5jMi54ID0gMTsgZW5kICQk OwotRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gImIiIGJlY2F1 c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3b19pbnQ4cworRVJST1I6 ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gb3IgdmFyaWFibGUgImIiIGJl Y2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3b19pbnQ4cwogTElO RSAxOiBiLmMuYzIueCA9IDEKICAgICAgICAgXgogUVVFUlk6ICBiLmMuYzIueCA9IDEKZGlmZiAt LWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFi bGUub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJp YWJsZS5vdXQKaW5kZXggZWNhYzY0ZmNmYi4uOGJkMmIzOThiZCAxMDA2NDQKLS0tIGEvc3JjL3Bs L3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKKysrIGIv c3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQK QEAgLTIzMiw3ICsyMzIsNyBAQCBTRVQgUk9MRSBUTyBERUZBVUxUOwogU0VUIFJPTEUgVE8gcmVn cmVzc192YXJfZXhlY19yb2xlOwogLS0gc2hvdWxkIGZhaWwsIGJ1dCBub3QgY3Jhc2gKIFNFTEVD VCB2YXJfcmVhZF9mdW5jKCk7Ci1FUlJPUjogIGNvbHVtbiAicGxwZ3NxbF9zdl92YXIxIiBkb2Vz IG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInBscGdzcWxfc3ZfdmFyMSIg ZG9lcyBub3QgZXhpc3QKIExJTkUgMTogcGxwZ3NxbF9zdl92YXIxCiAgICAgICAgIF4KIFFVRVJZ OiAgcGxwZ3NxbF9zdl92YXIxCmRpZmYgLS1naXQgYS9zcmMvcGwvdGNsL2V4cGVjdGVkL3BsdGNs X3F1ZXJpZXMub3V0IGIvc3JjL3BsL3RjbC9leHBlY3RlZC9wbHRjbF9xdWVyaWVzLm91dAppbmRl eCAzNWNjNmU2MmFhLi40OTdjZDM4MTg5IDEwMDY0NAotLS0gYS9zcmMvcGwvdGNsL2V4cGVjdGVk L3BsdGNsX3F1ZXJpZXMub3V0CisrKyBiL3NyYy9wbC90Y2wvZXhwZWN0ZWQvcGx0Y2xfcXVlcmll cy5vdXQKQEAgLTQ1MCwxMiArNDUwLDEyIEBAIENPTlRFWFQ6ICB3aGlsZSBleGVjdXRpbmcKICJf X1BMVGNsX3Byb2NfdGNsX2V2YWxfdGV4dCBzcGlfcHJlcGFyZVwgYVwgXCJiXCBce1wiIgogaW4g UEwvVGNsIGZ1bmN0aW9uIHRjbF9ldmFsKHRleHQpCiBzZWxlY3QgdGNsX2Vycm9yX2hhbmRsaW5n X3Rlc3QoJHRjbCRzcGlfcHJlcGFyZSAic2VsZWN0IG1vbyIgW10kdGNsJCk7Ci0gICAgICAgdGNs X2Vycm9yX2hhbmRsaW5nX3Rlc3QgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSBTUUxTVEFURTogNDI3MDMgICAgICAgICAgICAgICAgICAgICArCi0gY29u ZGl0aW9uOiB1bmRlZmluZWRfY29sdW1uICAgICAgICAgKwotIGN1cnNvcl9wb3NpdGlvbjogOCAg ICAgICAgICAgICAgICAgICsKLSBtZXNzYWdlOiBjb2x1bW4gIm1vbyIgZG9lcyBub3QgZXhpc3Qr CisgICAgICAgICAgICAgdGNsX2Vycm9yX2hhbmRsaW5nX3Rlc3QgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTUUxTVEFU RTogNDI3MDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgY29uZGl0aW9uOiB1 bmRlZmluZWRfY29sdW1uICAgICAgICAgICAgICAgICAgICAgKworIGN1cnNvcl9wb3NpdGlvbjog OCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyBtZXNzYWdlOiBjb2x1bW4gb3IgdmFy aWFibGUgIm1vbyIgZG9lcyBub3QgZXhpc3QrCiAgc3RhdGVtZW50OiBzZWxlY3QgbW9vCiAoMSBy b3cpCiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZh cmlhYmxlLm91dCBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxl Lm91dAppbmRleCBlOWEyNTRiY2QxLi5kODg0OGQ1NTVjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9p c29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKKysrIGIvc3JjL3Rlc3QvaXNv bGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CkBAIC0xMCw3ICsxMCw3IEBAIHRl c3QKIAogc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOwogc3RlcCB2YWw6IFNFTEVDVCBt eXZhcjsKLUVSUk9SOiAgY29sdW1uICJteXZhciIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29s dW1uIG9yIHZhcmlhYmxlICJteXZhciIgZG9lcyBub3QgZXhpc3QKIAogc3RhcnRpbmcgcGVybXV0 YXRpb246IGxldCB2YWwgczEgZHJvcCB2YWwgc3IxCiBzdGVwIGxldDogTEVUIG15dmFyID0gJ3Rl c3QnOwpAQCAtMjMsNyArMjMsNyBAQCB0ZXN0CiBzdGVwIHMxOiBCRUdJTjsKIHN0ZXAgZHJvcDog RFJPUCBWQVJJQUJMRSBteXZhcjsKIHN0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7Ci1FUlJPUjogIGNv bHVtbiAibXl2YXIiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAi bXl2YXIiIGRvZXMgbm90IGV4aXN0CiBzdGVwIHNyMTogUk9MTEJBQ0s7CiAKIHN0YXJ0aW5nIHBl cm11dGF0aW9uOiBsZXQgdmFsIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFsCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvYWx0ZXJfdGFibGUub3V0CmluZGV4IDEyODUyYWE2MTIuLmQ2ZWI1MWUyY2Yg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJfdGFibGUub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJfdGFibGUub3V0CkBAIC0xMjk1LDE5 ICsxMjk1LDE5IEBAIHNlbGVjdCAqIGZyb20gYXRhY2MxOwogKDEgcm93KQogCiBzZWxlY3QgKiBm cm9tIGF0YWNjMSBvcmRlciBieSBhOwotRVJST1I6ICBjb2x1bW4gImEiIGRvZXMgbm90IGV4aXN0 CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTog c2VsZWN0ICogZnJvbSBhdGFjYzEgb3JkZXIgYnkgYTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgogc2VsZWN0ICogZnJvbSBhdGFjYzEgb3JkZXIgYnkgIi4uLi4uLi4u cGcuZHJvcHBlZC4xLi4uLi4uLi4iOwotRVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBl ZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAi Li4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2Vs ZWN0ICogZnJvbSBhdGFjYzEgb3JkZXIgYnkgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4i Li4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIHNlbGVjdCAqIGZy b20gYXRhY2MxIGdyb3VwIGJ5IGE7Ci1FUlJPUjogIGNvbHVtbiAiYSIgZG9lcyBub3QgZXhpc3QK K0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBz ZWxlY3QgKiBmcm9tIGF0YWNjMSBncm91cCBieSBhOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBncm91cCBieSAiLi4uLi4uLi5w Zy5kcm9wcGVkLjEuLi4uLi4uLiI7Ci1FUlJPUjogIGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVk LjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICIu Li4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxl Y3QgKiBmcm9tIGF0YWNjMSBncm91cCBieSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIu Li4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogc2VsZWN0IGF0YWNj MS4qIGZyb20gYXRhY2MxOwpAQCAtMTMxNyw3ICsxMzE3LDcgQEAgc2VsZWN0IGF0YWNjMS4qIGZy b20gYXRhY2MxOwogKDEgcm93KQogCiBzZWxlY3QgYSBmcm9tIGF0YWNjMTsKLUVSUk9SOiAgY29s dW1uICJhIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImEiIGRv ZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBhIGZyb20gYXRhY2MxOwogICAgICAgICAgICAg ICAgXgogc2VsZWN0IGF0YWNjMS5hIGZyb20gYXRhY2MxOwpAQCAtMTMzMSwxNSArMTMzMSwxNSBA QCBzZWxlY3QgYixjLGQgZnJvbSBhdGFjYzE7CiAoMSByb3cpCiAKIHNlbGVjdCBhLGIsYyxkIGZy b20gYXRhY2MxOwotRVJST1I6ICBjb2x1bW4gImEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNv bHVtbiBvciB2YXJpYWJsZSAiYSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGEsYixj LGQgZnJvbSBhdGFjYzE7CiAgICAgICAgICAgICAgICBeCiBzZWxlY3QgKiBmcm9tIGF0YWNjMSB3 aGVyZSBhID0gMTsKLUVSUk9SOiAgY29sdW1uICJhIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBj b2x1bW4gb3IgdmFyaWFibGUgImEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCAqIGZy b20gYXRhY2MxIHdoZXJlIGEgPSAxOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCiBzZWxlY3QgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGZyb20gYXRhY2MxOwot RVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4 aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4u Li4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0ICIuLi4uLi4uLnBnLmRyb3BwZWQu MS4uLi4uLi4uIiBmcm9tIGF0YWNjMTsKICAgICAgICAgICAgICAgIF4KIHNlbGVjdCBhdGFjYzEu Ii4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGZyb20gYXRhY2MxOwpAQCAtMTM0NywxMSAr MTM0NywxMSBAQCBFUlJPUjogIGNvbHVtbiBhdGFjYzEuLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4u Li4uLiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgYXRhY2MxLiIuLi4uLi4uLnBnLmRy b3BwZWQuMS4uLi4uLi4uIiBmcm9tIGF0YWNjMTsKICAgICAgICAgICAgICAgIF4KIHNlbGVjdCAi Li4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIsYixjLGQgZnJvbSBhdGFjYzE7Ci1FUlJPUjog IGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKK0VS Uk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBk b2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4u Li4iLGIsYyxkIGZyb20gYXRhY2MxOwogICAgICAgICAgICAgICAgXgogc2VsZWN0ICogZnJvbSBh dGFjYzEgd2hlcmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iID0gMTsKLUVSUk9SOiAg Y29sdW1uICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAorRVJS T1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRv ZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCAqIGZyb20gYXRhY2MxIHdoZXJlICIuLi4uLi4u LnBnLmRyb3BwZWQuMS4uLi4uLi4uIiA9IC4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCiAtLSBVUERBVEVzCkBAIC0xMzYwLDcgKzEzNjAsNyBAQCBFUlJPUjogIGNvbHVt biAiYSIgb2YgcmVsYXRpb24gImF0YWNjMSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogdXBkYXRl IGF0YWNjMSBzZXQgYSA9IDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIHVwZGF0ZSBh dGFjYzEgc2V0IGIgPSAyIHdoZXJlIGEgPSAzOwotRVJST1I6ICBjb2x1bW4gImEiIGRvZXMgbm90 IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgZG9lcyBub3QgZXhpc3QKIExJ TkUgMTogdXBkYXRlIGF0YWNjMSBzZXQgYiA9IDIgd2hlcmUgYSA9IDM7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KIHVwZGF0ZSBhdGFjYzEgc2V0ICIuLi4uLi4uLnBn LmRyb3BwZWQuMS4uLi4uLi4uIiA9IDM7CkBAIC0xMzY4LDcgKzEzNjgsNyBAQCBFUlJPUjogIGNv bHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgb2YgcmVsYXRpb24gImF0YWNjMSIg ZG9lcyBub3QgZXhpcwogTElORSAxOiB1cGRhdGUgYXRhY2MxIHNldCAiLi4uLi4uLi5wZy5kcm9w cGVkLjEuLi4uLi4uLiIgPSAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICBeCiB1cGRhdGUg YXRhY2MxIHNldCBiID0gMiB3aGVyZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgPSAz OwotRVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90 IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEu Li4uLi4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogdXBkYXRlIGF0YWNjMSBzZXQgYiA9IDIg d2hlcmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iLi4uCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIElOU0VSVHMKQEAgLTE0MTYsMTEgKzE0MTYsMTEg QEAgTElORSAxOiBpbnNlcnQgaW50byBhdGFjYzEgKCIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4u Li4uIixiLGMsZCkgdmEuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBERUxF VEVzCiBkZWxldGUgZnJvbSBhdGFjYzEgd2hlcmUgYSA9IDM7Ci1FUlJPUjogIGNvbHVtbiAiYSIg ZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2VzIG5vdCBl eGlzdAogTElORSAxOiBkZWxldGUgZnJvbSBhdGFjYzEgd2hlcmUgYSA9IDM7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCiBkZWxldGUgZnJvbSBhdGFjYzEgd2hlcmUgIi4uLi4u Li4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iID0gMzsKLUVSUk9SOiAgY29sdW1uICIuLi4uLi4uLnBn LmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFy aWFibGUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CiBMSU5F IDE6IGRlbGV0ZSBmcm9tIGF0YWNjMSB3aGVyZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4u LiIgPSAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogZGVsZXRlIGZyb20g YXRhY2MxOwpAQCAtMTcwNiw3ICsxNzA2LDcgQEAgc2VsZWN0IGYxIGZyb20gYzE7CiAKIGFsdGVy IHRhYmxlIGMxIGRyb3AgY29sdW1uIGYxOwogc2VsZWN0IGYxIGZyb20gYzE7Ci1FUlJPUjogIGNv bHVtbiAiZjEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEi IGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBmMSBmcm9tIGMxOwogICAgICAgICAgICAg ICAgXgogSElOVDogIFBlcmhhcHMgeW91IG1lYW50IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uICJj MS5mMiIuCkBAIC0xNzIwLDcgKzE3MjAsNyBAQCBFUlJPUjogIGNhbm5vdCBkcm9wIGluaGVyaXRl ZCBjb2x1bW4gImYxIgogYWx0ZXIgdGFibGUgcDEgZHJvcCBjb2x1bW4gZjE7CiAtLSBjMS5mMSBp cyBkcm9wcGVkIG5vdywgc2luY2UgdGhlcmUgaXMgbm8gbG9jYWwgZGVmaW5pdGlvbiBmb3IgaXQK IHNlbGVjdCBmMSBmcm9tIGMxOwotRVJST1I6ICBjb2x1bW4gImYxIiBkb2VzIG5vdCBleGlzdAor RVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImYxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBz ZWxlY3QgZjEgZnJvbSBjMTsKICAgICAgICAgICAgICAgIF4KIEhJTlQ6ICBQZXJoYXBzIHlvdSBt ZWFudCB0byByZWZlcmVuY2UgdGhlIGNvbHVtbiAiYzEuZjIiLgpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2NvcHkyLm91dAppbmRleCA2NGVhMzNhZWFlLi42ODc0ZjVhZTBkIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2NvcHkyLm91dApAQCAtMTYwLDcgKzE2MCw3IEBAIExJTkUgMTogQ09QWSB4IFRPIHN0 ZG91dCBXSEVSRSBhID0gMTsKIENPUFkgeCBmcm9tIHN0ZGluIFdIRVJFIGEgPSA1MDAwNDsKIENP UFkgeCBmcm9tIHN0ZGluIFdIRVJFIGEgPiA2MDAwMzsKIENPUFkgeCBmcm9tIHN0ZGluIFdIRVJF IGYgPiA2MDAwMzsKLUVSUk9SOiAgY29sdW1uICJmIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBj b2x1bW4gb3IgdmFyaWFibGUgImYiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IENPUFkgeCBmcm9t IHN0ZGluIFdIRVJFIGYgPiA2MDAwMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgogQ09QWSB4IGZyb20gc3RkaW4gV0hFUkUgYSA9IG1heCh4LmIpOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcnJvcnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9lcnJvcnMub3V0CmluZGV4IDhjNTI3NDc0ZGEuLmU1M2FlNDUxZGYgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3JzLm91dAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2Vycm9ycy5vdXQKQEAgLTI3LDcgKzI3LDcgQEAgTElORSAxOiBzZWxlY3Qg KiBmcm9tIG5vbmVzdWNoOwogICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIGJhZCBuYW1lIGlu IHRhcmdldCBsaXN0CiBzZWxlY3Qgbm9uZXN1Y2ggZnJvbSBwZ19kYXRhYmFzZTsKLUVSUk9SOiAg Y29sdW1uICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlh YmxlICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IG5vbmVzdWNoIGZy b20gcGdfZGF0YWJhc2U7CiAgICAgICAgICAgICAgICBeCiAtLSBlbXB0eSBkaXN0aW5jdCBsaXN0 IGlzbid0IE9LCkBAIC0zNywxNyArMzcsMTcgQEAgTElORSAxOiBzZWxlY3QgZGlzdGluY3QgZnJv bSBwZ19kYXRhYmFzZTsKICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIGJhZCBhdHRyaWJ1 dGUgbmFtZSBvbiBsaHMgb2Ygb3BlcmF0b3IKIHNlbGVjdCAqIGZyb20gcGdfZGF0YWJhc2Ugd2hl cmUgbm9uZXN1Y2ggPSBwZ19kYXRhYmFzZS5kYXRuYW1lOwotRVJST1I6ICBjb2x1bW4gIm5vbmVz dWNoIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIm5vbmVzdWNo IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgKiBmcm9tIHBnX2RhdGFiYXNlIHdoZXJl IG5vbmVzdWNoID0gcGdfZGF0YWJhc2UuZGF0bmEuLi4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCiAtLSBiYWQgYXR0cmlidXRlIG5hbWUgb24gcmhzIG9mIG9wZXJh dG9yCiBzZWxlY3QgKiBmcm9tIHBnX2RhdGFiYXNlIHdoZXJlIHBnX2RhdGFiYXNlLmRhdG5hbWUg PSBub25lc3VjaDsKLUVSUk9SOiAgY29sdW1uICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKK0VS Uk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKIExJTkUg MTogLi4uZWN0ICogZnJvbSBwZ19kYXRhYmFzZSB3aGVyZSBwZ19kYXRhYmFzZS5kYXRuYW1lID0g bm9uZXN1Y2g7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KIC0tIGJhZCBhdHRyaWJ1dGUgbmFtZSBpbiBzZWxlY3QgZGlzdGlu Y3Qgb24KIHNlbGVjdCBkaXN0aW5jdCBvbiAoZm9vYmFyKSAqIGZyb20gcGdfZGF0YWJhc2U7Ci1F UlJPUjogIGNvbHVtbiAiZm9vYmFyIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3Ig dmFyaWFibGUgImZvb2JhciIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGRpc3RpbmN0 IG9uIChmb29iYXIpICogZnJvbSBwZ19kYXRhYmFzZTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCiAtLSBncm91cGluZyB3aXRoIEZPUiBVUERBVEUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pv aW4ub3V0CmluZGV4IDA3OWZjZjQ2ZjAuLmE2ZTcxMDVhY2MgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9qb2luLm91dApAQCAtNjM5NywxMyArNjM5NywxMyBAQCBMSU5FIDE6IHNlbGVjdCB0Mi51dW5p cXVlMSBmcm9tCiBISU5UOiAgUGVyaGFwcyB5b3UgbWVhbnQgdG8gcmVmZXJlbmNlIHRoZSBjb2x1 bW4gInQyLnVuaXF1ZTEiLgogc2VsZWN0IHV1bmlxdWUxIGZyb20KICAgdGVuazEgdDEgam9pbiB0 ZW5rMiB0MiBvbiB0MS50d28gPSB0Mi50d287IC0tIGVycm9yLCBzdWdnZXN0IGJvdGggYXQgb25j ZQotRVJST1I6ICBjb2x1bW4gInV1bmlxdWUxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1 bW4gb3IgdmFyaWFibGUgInV1bmlxdWUxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3Qg dXVuaXF1ZTEgZnJvbQogICAgICAgICAgICAgICAgXgogSElOVDogIFBlcmhhcHMgeW91IG1lYW50 IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uICJ0MS51bmlxdWUxIiBvciB0aGUgY29sdW1uICJ0Mi51 bmlxdWUxIi4KIHNlbGVjdCBjdGlkIGZyb20KICAgdGVuazEgdDEgam9pbiB0ZW5rMiB0MiBvbiB0 MS50d28gPSB0Mi50d287IC0tIGVycm9yLCBuZWVkIHF1YWxpZmljYXRpb24KLUVSUk9SOiAgY29s dW1uICJjdGlkIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImN0 aWQiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBjdGlkIGZyb20KICAgICAgICAgICAg ICAgIF4KIERFVEFJTDogIFRoZXJlIGFyZSBjb2x1bW5zIG5hbWVkICJjdGlkIiwgYnV0IHRoZXkg YXJlIGluIHRhYmxlcyB0aGF0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9m IHRoZSBxdWVyeS4KQEAgLTc1MDAsNyArNzUwMCw3IEBAIGxhdGVyYWwgKHNlbGVjdCAqIGZyb20g aW50OF90YmwgdDEsCiAKIC0tIHRlc3Qgc29tZSBlcnJvciBjYXNlcyB3aGVyZSBMQVRFUkFMIHNo b3VsZCBoYXZlIGJlZW4gdXNlZCBidXQgd2Fzbid0CiBzZWxlY3QgZjEsZyBmcm9tIGludDRfdGJs IGEsIChzZWxlY3QgZjEgYXMgZykgc3M7Ci1FUlJPUjogIGNvbHVtbiAiZjEiIGRvZXMgbm90IGV4 aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEiIGRvZXMgbm90IGV4aXN0CiBMSU5F IDE6IHNlbGVjdCBmMSxnIGZyb20gaW50NF90YmwgYSwgKHNlbGVjdCBmMSBhcyBnKSBzczsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRo ZXJlIGlzIGEgY29sdW1uIG5hbWVkICJmMSIgaW4gdGFibGUgImEiLCBidXQgaXQgY2Fubm90IGJl IHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpAQCAtNzUxMiw3ICs3NTEy LDcgQEAgTElORSAxOiBzZWxlY3QgZjEsZyBmcm9tIGludDRfdGJsIGEsIChzZWxlY3QgYS5mMSBh cyBnKSBzczsKIERFVEFJTDogIFRoZXJlIGlzIGFuIGVudHJ5IGZvciB0YWJsZSAiYSIsIGJ1dCBp dCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnkuCiBISU5U OiAgVG8gcmVmZXJlbmNlIHRoYXQgdGFibGUsIHlvdSBtdXN0IG1hcmsgdGhpcyBzdWJxdWVyeSB3 aXRoIExBVEVSQUwuCiBzZWxlY3QgZjEsZyBmcm9tIGludDRfdGJsIGEgY3Jvc3Mgam9pbiAoc2Vs ZWN0IGYxIGFzIGcpIHNzOwotRVJST1I6ICBjb2x1bW4gImYxIiBkb2VzIG5vdCBleGlzdAorRVJS T1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImYxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxl Y3QgZjEsZyBmcm9tIGludDRfdGJsIGEgY3Jvc3Mgam9pbiAoc2VsZWN0IGYxIGFzIGcpIHNzOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K IERFVEFJTDogIFRoZXJlIGlzIGEgY29sdW1uIG5hbWVkICJmMSIgaW4gdGFibGUgImEiLCBidXQg aXQgY2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpAQCAt NzU0OSw3ICs3NTQ5LDcgQEAgTElORSAxOiBzZWxlY3QgMSBmcm9tIHRlbmsxIGEsIGxhdGVyYWwg KHNlbGVjdCBtYXgoYS51bmlxdWUxKSBmcm9tIGkuLi4KIGNyZWF0ZSB0ZW1wIHRhYmxlIHh4MSBh cyBzZWxlY3QgZjEgYXMgeDEsIC1mMSBhcyB4MiBmcm9tIGludDRfdGJsOwogLS0gZXJyb3IsIGNh bid0IGRvIHRoaXM6CiB1cGRhdGUgeHgxIHNldCB4MiA9IGYxIGZyb20gKHNlbGVjdCAqIGZyb20g aW50NF90Ymwgd2hlcmUgZjEgPSB4MSkgc3M7Ci1FUlJPUjogIGNvbHVtbiAieDEiIGRvZXMgbm90 IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAieDEiIGRvZXMgbm90IGV4aXN0CiBM SU5FIDE6IC4uLiBzZXQgeDIgPSBmMSBmcm9tIChzZWxlY3QgKiBmcm9tIGludDRfdGJsIHdoZXJl IGYxID0geDEpIHNzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoZXJlIGlzIGEgY29sdW1uIG5hbWVk ICJ4MSIgaW4gdGFibGUgInh4MSIsIGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRo aXMgcGFydCBvZiB0aGUgcXVlcnkuCkBAIC03NTY5LDcgKzc1NjksNyBAQCB1cGRhdGUgeHgxIHNl dCB4MiA9IGYxIGZyb20geHgxLCBsYXRlcmFsIChzZWxlY3QgKiBmcm9tIGludDRfdGJsIHdoZXJl IGYxID0geDEpCiBFUlJPUjogIHRhYmxlIG5hbWUgInh4MSIgc3BlY2lmaWVkIG1vcmUgdGhhbiBv bmNlCiAtLSBhbHNvIGVycm9yczoKIGRlbGV0ZSBmcm9tIHh4MSB1c2luZyAoc2VsZWN0ICogZnJv bSBpbnQ0X3RibCB3aGVyZSBmMSA9IHgxKSBzczsKLUVSUk9SOiAgY29sdW1uICJ4MSIgZG9lcyBu b3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ4MSIgZG9lcyBub3QgZXhpc3QK IExJTkUgMTogLi4udGUgZnJvbSB4eDEgdXNpbmcgKHNlbGVjdCAqIGZyb20gaW50NF90Ymwgd2hl cmUgZjEgPSB4MSkgc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUgaXMgYSBjb2x1bW4gbmFt ZWQgIngxIiBpbiB0YWJsZSAieHgxIiwgYnV0IGl0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20g dGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvbmFtZXNwYWNlLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNl Lm91dAppbmRleCBkYmJkYTcyZDM5Li5kOTg3OTNmOTJhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL25hbWVzcGFjZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9uYW1lc3BhY2Uub3V0CkBAIC0yMyw3ICsyMyw3IEBAIEJFR0lOOwogU0VUIHNlYXJjaF9w YXRoIHRvIHB1YmxpYywgdGVzdF9uc19zY2hlbWFfMTsKIENSRUFURSBTQ0hFTUEgdGVzdF9uc19z Y2hlbWFfMgogICAgICAgIENSRUFURSBWSUVXIGFiY192aWV3IEFTIFNFTEVDVCBjIEZST00gYWJj OwotRVJST1I6ICBjb2x1bW4gImMiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2 YXJpYWJsZSAiYyIgZG9lcyBub3QgZXhpc3QKIExJTkUgMjogICAgICAgIENSRUFURSBWSUVXIGFi Y192aWV3IEFTIFNFTEVDVCBjIEZST00gYWJjOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KIENPTU1JVDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvbnVtZXJvbG9neS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251 bWVyb2xvZ3kub3V0CmluZGV4IDllMjMxNjZmZWQuLjY3MjAxMmUxNDYgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbnVtZXJvbG9neS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dApAQCAtMzE0LDcgKzMxNCw3IEBAIE5PVElDRTog IGkgPSAxMDAyCiBOT1RJQ0U6ICBpID0gMTAwMwogLS0gZXJyb3IgY2FzZXMKIFNFTEVDVCBfMTAw OwotRVJST1I6ICBjb2x1bW4gIl8xMDAiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBv ciB2YXJpYWJsZSAiXzEwMCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogU0VMRUNUIF8xMDA7CiAg ICAgICAgICAgICAgICBeCiBTRUxFQ1QgMTAwXzsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcGxwZ3NxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BscGdz cWwub3V0CmluZGV4IDBhNjk0NTU4MWIuLjVjNTk5YmEzMTIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcGxwZ3NxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wbHBnc3FsLm91dApAQCAtMjU5OCw3ICsyNTk4LDcgQEAgZW5kOyAkJCBsYW5ndWFnZSBw bHBnc3FsOwogLS0gc2hvdWxkIGZhaWw6IFNRTFNUQVRFIGFuZCBTUUxFUlJNIGFyZSBvbmx5IGlu IGRlZmluZWQgRVhDRVBUSU9OCiAtLSBibG9ja3MKIHNlbGVjdCBleGNwdF90ZXN0MSgpOwotRVJS T1I6ICBjb2x1bW4gInNxbHN0YXRlIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3Ig dmFyaWFibGUgInNxbHN0YXRlIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzcWxzdGF0ZQogICAg ICAgICBeCiBRVUVSWTogIHNxbHN0YXRlCkBAIC0yNjEzLDcgKzI2MTMsNyBAQCBiZWdpbgogZW5k OyAkJCBsYW5ndWFnZSBwbHBnc3FsOwogLS0gc2hvdWxkIGZhaWwKIHNlbGVjdCBleGNwdF90ZXN0 MigpOwotRVJST1I6ICBjb2x1bW4gInNxbHN0YXRlIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBj b2x1bW4gb3IgdmFyaWFibGUgInNxbHN0YXRlIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzcWxz dGF0ZQogICAgICAgICBeCiBRVUVSWTogIHNxbHN0YXRlCkBAIC00Njc1LDcgKzQ2NzUsNyBAQCBC RUdJTgogICAgICAgICBSQUlTRSBOT1RJQ0UgJyUsICUnLCByLnJvb21ubywgci5jb21tZW50Owog ICAgIEVORCBMT09QOwogRU5EJCQ7Ci1FUlJPUjogIGNvbHVtbiAiZm9vIiBkb2VzIG5vdCBleGlz dAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImZvbyIgZG9lcyBub3QgZXhpc3QKIExJTkUg MTogU0VMRUNUIHJ0cmltKHJvb21ubykgQVMgcm9vbW5vLCBmb28gRlJPTSBSb29tIE9SREVSIEJZ IHJvb21uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogUVVF Ulk6ICBTRUxFQ1QgcnRyaW0ocm9vbW5vKSBBUyByb29tbm8sIGZvbyBGUk9NIFJvb20gT1JERVIg Qlkgcm9vbW5vCkBAIC00NzE3LDcgKzQ3MTcsNyBAQCBiZWdpbgogICByYWlzZSBub3RpY2UgJ3gg PSAlJywgeDsKIGVuZDsKICQkOwotRVJST1I6ICBjb2x1bW4gIngiIGRvZXMgbm90IGV4aXN0CitF UlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAieCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogeCAr IDEKICAgICAgICAgXgogUVVFUlk6ICB4ICsgMQpAQCAtNDcyOSw3ICs0NzI5LDcgQEAgYmVnaW4K ICAgcmFpc2Ugbm90aWNlICd4ID0gJSwgeSA9ICUnLCB4LCB5OwogZW5kOwogJCQ7Ci1FUlJPUjog IGNvbHVtbiAieCIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ4 IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiB4ICsgMQogICAgICAgICBeCiBRVUVSWTogIHggKyAx CkBAIC01NzY5LDcgKzU3NjksNyBAQCBBTFRFUiBUQUJMRSBhbHRlcl90YWJsZV91bmRlcl90cmFu c2l0aW9uX3RhYmxlcwogICBEUk9QIGNvbHVtbiBuYW1lOwogVVBEQVRFIGFsdGVyX3RhYmxlX3Vu ZGVyX3RyYW5zaXRpb25fdGFibGVzCiAgIFNFVCBpZCA9IGlkOwotRVJST1I6ICBjb2x1bW4gIm5h bWUiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAibmFtZSIgZG9l cyBub3QgZXhpc3QKIExJTkUgMTogKFNFTEVDVCBzdHJpbmdfYWdnKGlkIHx8ICc9JyB8fCBuYW1l LCAnLCcpIEZST00gZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CiBRVUVSWTogIChTRUxFQ1Qgc3RyaW5nX2FnZyhpZCB8fCAnPScgfHwgbmFtZSwgJywnKSBGUk9N IGQpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRleCA3N2E3YmY0NWM4Li5lMTYzNWY2 ODZjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKQEAgLTIxNCw3ICsyMTQsNyBAQCBz ZWxlY3QgJDE6OmludCBhcyBjb2wgXGJpbmQgMSBcZyBcYmluZCAyIFxnCiAtLSBlcnJvcnMKIC0t IHBhcnNlIGVycm9yCiBTRUxFQ1QgZm9vIFxiaW5kIFxnCi1FUlJPUjogIGNvbHVtbiAiZm9vIiBk b2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImZvbyIgZG9lcyBub3Qg ZXhpc3QKIExJTkUgMTogU0VMRUNUIGZvbyAKICAgICAgICAgICAgICAgIF4KIC0tIHRjb3AgZXJy b3IKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggMzAxNGQwNDdmZS4uNzM3OGY5 NWIxNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTExOTEsNyArMTE5MSw3 IEBAIGRyb3AgcnVsZSBydWxlc19mb29ydWxlIG9uIHJ1bGVzX2ZvbzsKIC0tIHRoaXMgc2hvdWxk IGZhaWwgYmVjYXVzZSBmMSBpcyBub3QgZXhwb3NlZCBmb3IgdW5xdWFsaWZpZWQgcmVmZXJlbmNl OgogY3JlYXRlIHJ1bGUgcnVsZXNfZm9vcnVsZSBhcyBvbiBpbnNlcnQgdG8gcnVsZXNfZm9vIHdo ZXJlIGYxIDwgMTAwCiBkbyBpbnN0ZWFkIGluc2VydCBpbnRvIHJ1bGVzX2ZvbzIgdmFsdWVzIChm MSk7Ci1FUlJPUjogIGNvbHVtbiAiZjEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBv ciB2YXJpYWJsZSAiZjEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDI6IGRvIGluc3RlYWQgaW5zZXJ0 IGludG8gcnVsZXNfZm9vMiB2YWx1ZXMgKGYxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUgYXJlIGNvbHVtbnMgbmFt ZWQgImYxIiwgYnV0IHRoZXkgYXJlIGluIHRhYmxlcyB0aGF0IGNhbm5vdCBiZSByZWZlcmVuY2Vk IGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggNzYzOGUxYTQ3Ny4uNTY1ZmI1ZGE2ZSAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQK QEAgLTgxMSw3ICs4MTEsNyBAQCBFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInZhcjEiIGRvZXNu J3QgZXhpc3QKIExJTkUgMTogTEVUIHZhcjEgPSBwaSgpOwogICAgICAgICAgICAgXgogU0VMRUNU IHZhcjE7Ci1FUlJPUjogIGNvbHVtbiAidmFyMSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29s dW1uIG9yIHZhcmlhYmxlICJ2YXIxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1QgdmFy MTsKICAgICAgICAgICAgICAgIF4KIC0tIHNob3VsZCBiZSBvawpAQCAtMTAzMCw3ICsxMDMwLDcg QEAgU0VMRUNUIHYxOwogCiAtLSBzaG91bGQgZmFpbCwgYXR0cmlidXRlIGRvZXNuJ3QgZXhpc3QK IExFVCB2MS54ID0gMTA7Ci1FUlJPUjogIGNhbm5vdCBhc3NpZ24gdG8gZmllbGQgIngiIG9mIGNv bHVtbiAidjEiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHQx CitFUlJPUjogIGNhbm5vdCBhc3NpZ24gdG8gZmllbGQgIngiIG9mIGNvbHVtbiBvciB2YXJpYWJs ZSAidjEiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHQxCiBM SU5FIDE6IExFVCB2MS54ID0gMTA7CiAgICAgICAgICAgICBeCiAtLSBzaG91bGQgZmFpbCwgZG9u J3QgYWxsb3cgbXVsdGkgY29sdW1uIHF1ZXJ5CkBAIC0xNzUwLDcgKzE3NTAsNyBAQCBCRUdJTjsK IERST1AgVkFSSUFCTEUgdmFyMTsKIC0tIHNob3VsZCBmYWlsCiBTRUxFQ1QgdmFyMTsKLUVSUk9S OiAgY29sdW1uICJ2YXIxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFi bGUgInZhcjEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IFNFTEVDVCB2YXIxOwogICAgICAgICAg ICAgICAgXgogUk9MTEJBQ0s7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3RyYW5zYWN0aW9ucy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RyYW5zYWN0aW9u cy5vdXQKaW5kZXggN2Y1NzU3ZTg5Yy4uYjA1YjE2ZDk0YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvdHJhbnNhY3Rpb25zLm91dApAQCAtMjU2LDcgKzI1Niw3IEBAIFNFTEVDVCAqIEZS T00gdHJhbnNfYmFyYmF6OwktLSBzaG91bGQgaGF2ZSAxCiBCRUdJTjsKIAlTQVZFUE9JTlQgb25l OwogCQlTRUxFQ1QgdHJhbnNfZm9vOwotRVJST1I6ICBjb2x1bW4gInRyYW5zX2ZvbyIgZG9lcyBu b3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ0cmFuc19mb28iIGRvZXMgbm90 IGV4aXN0CiBMSU5FIDE6IFNFTEVDVCB0cmFuc19mb287CiAgICAgICAgICAgICAgICBeCiAJUk9M TEJBQ0sgVE8gU0FWRVBPSU5UIG9uZTsKQEAgLTMwNSw3ICszMDUsNyBAQCBCRUdJTjsKIAlTQVZF UE9JTlQgb25lOwogCQlJTlNFUlQgSU5UTyBzYXZlcG9pbnRzIFZBTFVFUyAoNSk7CiAJCVNFTEVD VCB0cmFuc19mb287Ci1FUlJPUjogIGNvbHVtbiAidHJhbnNfZm9vIiBkb2VzIG5vdCBleGlzdAor RVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInRyYW5zX2ZvbyIgZG9lcyBub3QgZXhpc3QKIExJ TkUgMTogU0VMRUNUIHRyYW5zX2ZvbzsKICAgICAgICAgICAgICAgIF4KIENPTU1JVDsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC91bmlvbi5vdXQKaW5kZXggY2FhOGZlNzBhMC4uMWQzNDQ3ZTg0ZCAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91bmlvbi5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC91bmlvbi5vdXQKQEAgLTkzOSw3ICs5MzksNyBAQCBPUkRFUiBC WSBxMixxMTsKIAogLS0gVGhpcyBzaG91bGQgZmFpbCwgYmVjYXVzZSBxMiBpc24ndCBhIG5hbWUg b2YgYW4gRVhDRVBUIG91dHB1dCBjb2x1bW4KIFNFTEVDVCBxMSBGUk9NIGludDhfdGJsIEVYQ0VQ VCBTRUxFQ1QgcTIgRlJPTSBpbnQ4X3RibCBPUkRFUiBCWSBxMiBMSU1JVCAxOwotRVJST1I6ICBj b2x1bW4gInEyIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInEy IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiAuLi4gaW50OF90YmwgRVhDRVBUIFNFTEVDVCBxMiBG Uk9NIGludDhfdGJsIE9SREVSIEJZIHEyIExJTUlUIDEuLi4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBERVRBSUw6ICBUaGVy ZSBpcyBhIGNvbHVtbiBuYW1lZCAicTIiIGluIHRhYmxlICIqU0VMRUNUKiAyIiwgYnV0IGl0IGNh bm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KLS0gCjIuNDcu MQoK --0000000000008953c9062b346e70 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250108-0018-plpgsql-implementation-for-LET-statement.patch" Content-Disposition: attachment; filename="v20250108-0018-plpgsql-implementation-for-LET-statement.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5o4agis4 RnJvbSBiZDE2NDY4OTRjMWVjOGYyN2FjNjhiNzIxNjhmZDQ0ZGYwMjRlOTAwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDg6NTY6MTcgKzAxMDAKU3ViamVjdDogW1BBVENIIDE4 LzIyXSBwbHBnc3FsIGltcGxlbWVudGF0aW9uIGZvciBMRVQgc3RhdGVtZW50CgpQTHBnU1FMIGFs bG93cyB0byBjYWxsIGV4cHJlc3Npb24gZXhlY3V0b3IgZGlyZWN0bHkgKGZvciBzaW1wbGUgZXhw cmVzc2lvbikuClRoaXMgcG9zc2liaWxpdHkgc3Ryb25nbHkgcmVkdWNlcyBvdmVyaGVhZCByZWxh dGVkIHRvIGV4ZWN1dGlvbi4gUmVpbXBsZW1lbnRhdGlvbgpvZiBMRVQgc3RhdGVtZW50IChpbnNp ZGUgUExwZ1NRTCkgYWxsb3dzIHRvIHVzZSB0aGlzIHBvc3NpYmlsaXR5LCBhbmQgc3Ryb25nbHkK aW5jcmVhc2UgcGVyZm9ybWFuY2U6CgpDUkVBVEUgVkFSSUFCTEUgc3ZhciBpbnQ7CgpETyAkJApC RUdJTgogIEZPUiBpIElOIDEuLjEwMDAwCiAgTE9PUAogICAgTEVUIHN2YXIgPSBpOwogIEVORCBM T09QOwpFTkQ7CiQkOwoKRnJvbSAxMjBtcyB0byA4bXMgKHdpdGggYXNzZXJ0aW9ucykgKHRoaXMg aXMgYmVzdCBjYXNlLCBidXQgd2l0aG91dCBpdCwgdGhlIExFVCBzdGF0ZW1lbnQKY2FuIGJlIGJv dHRsZSBuZWNrKS4KCkFuIGFsdGVybmF0aXZlIGNhbiBiZSByZWltcGxlbWVudGF0aW9uIG9mIExF VCBzdGF0ZW1lbnQgaW5zaWRlIGV4cHJlc3Npb24KZXhlY3V0b3IsIGFuZCB0aGVuIFNRTCBMRVQg Y29tbWFuZCBjYW4gYmUgZXhlY3V0ZWQgaW4gc2ltcGxlIGV4cHJlc3Npb24KZXhlY3V0aW9uLCBi dXQgdGhpcyBpbmNyZWFzZSBhbiBjb21wbGV4aXR5IG9mIGV4ZWN1dG9yLCBidXQgc3RpbGwgdGhl CmJlbmVmaXRzIGlzIG9ubHkgaW5zaWRlIHBscGdzcWwsIHNvIGl0IGlzIGJldHRlciB0byB0aGlz IG9wdGltaXphdGlvbgppbnNpZGUgcGxwZ3NxbC4KLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAxNiArKysrKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L3NwaS5jICAgICAgICAgICAgICAgICAgICB8ICAzICsKIHNyYy9iYWNrZW5kL3BhcnNlci9hbmFs eXplLmMgICAgICAgICAgICAgICAgICB8IDEyICsrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl ci5jICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o ICAgICAgICAgICAgICAgIHwgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oICAgICAg ICAgICAgICAgICAgIHwgIDQgKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgICAgICAg ICAgICAgICAgICB8IDU2ICsrKysrKysrKysrKysrKysrKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9w bF9mdW5jcy5jICAgICAgICAgICAgICAgICB8IDI0ICsrKysrKysrCiBzcmMvcGwvcGxwZ3NxbC9z cmMvcGxfZ3JhbS55ICAgICAgICAgICAgICAgICAgfCAyOCArKysrKysrKystCiBzcmMvcGwvcGxw Z3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3dsaXN0LmggICAgICAgfCAgMSArCiBzcmMvcGwvcGxwZ3Nx bC9zcmMvcGxfdW5yZXNlcnZlZF9rd2xpc3QuaCAgICAgfCAgMSArCiBzcmMvcGwvcGxwZ3NxbC9z cmMvcGxwZ3NxbC5oICAgICAgICAgICAgICAgICAgfCAxMiArKysrCiAuLi4vcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAgNiArLQogc3JjL3Rvb2xzL3BnaW5kZW50 L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgIDEgKwogMTYgZmlsZXMgY2hhbmdlZCwgMTcx IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5jCmluZGV4IDIxMGQ1NWI5ZTQuLjI1NTU5NzUxOTcgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTk1Niw2ICs5NTYsMjIgQEAgU2V0U2Vzc2lv blZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQogCXNldF9zZXNz aW9uX3ZhcmlhYmxlKHN2YXIsIHZhbHVlLCBpc051bGwpOwogfQogCisvKgorICogV3JhcHBlciBh cm91bmQgU2V0U2Vzc2lvblZhcmlhYmxlIHdpdGggcGVybWlzc2lvbiBjaGVja3MuCisgKi8KK3Zv aWQKK1NldFNlc3Npb25WYXJpYWJsZVdpdGhTZWN1cml0eUNoZWNrKE9pZCB2YXJpZCwgRGF0dW0g dmFsdWUsIGJvb2wgaXNOdWxsKQoreworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisKKwkvKiBpcyB0 aGUgY2FsbGVyIGFsbG93ZWQgdG8gdXBkYXRlIHRoZSBzZXNzaW9uIHZhcmlhYmxlPyAqLworCWFj bHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCBHZXRV c2VySWQoKSwgQUNMX1VQREFURSk7CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJ YWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfVkFSSUFCTEUsIGdldF9zZXNzaW9uX3Zh cmlhYmxlX25hbWUodmFyaWQpKTsKKworCVNldFNlc3Npb25WYXJpYWJsZSh2YXJpZCwgdmFsdWUs IGlzTnVsbCk7Cit9CisKIC8qCiAgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFsdWUgc3RvcmVk IGluIGEgdmFyaWFibGUuCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3Nw aS5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKaW5kZXggNGNlNmJjNWYyOS4uZTUyZDhj YzEzYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivc3BpLmMKQEAgLTI5OTksNiArMjk5OSw5IEBAIF9TUElfZXJyb3JfY2Fs bGJhY2sodm9pZCAqYXJnKQogCQkJY2FzZSBSQVdfUEFSU0VfUExQR1NRTF9BU1NJR04zOgogCQkJ CWVycmNvbnRleHQoIlBML3BnU1FMIGFzc2lnbm1lbnQgXCIlc1wiIiwgcXVlcnkpOwogCQkJCWJy ZWFrOworCQkJY2FzZSBSQVdfUEFSU0VfUExQR1NRTF9MRVQ6CisJCQkJZXJyY29udGV4dCgiTEVU IHN0YXRlbWVudCBcIiVzXCIiLCBxdWVyeSk7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJ CWVycmNvbnRleHQoIlNRTCBzdGF0ZW1lbnQgXCIlc1wiIiwgcXVlcnkpOwogCQkJCWJyZWFrOwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9hbmFseXplLmMKaW5kZXggYjhkZjE2ZTRmMC4uMGY5MWVjODljNyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jCkBAIC0yMDEzLDYgKzIwMTMsMTggQEAgdHJhbnNmb3JtTGV0U3RtdChQYXJzZVN0YXRl ICpwc3RhdGUsIExldFN0bXQgKnN0bXQpCiAKIAlzdG10LT5xdWVyeSA9IChOb2RlICopIHF1ZXJ5 OwogCisJLyoKKwkgKiBJbnNpZGUgUEwvcGdTUUwgd2UgZG9uJ3Qgd2FudCB0byBleGVjdXRlIExF VCBzdGF0ZW1lbnQgYXMgdXRpbGl0eQorCSAqIGNvbW1hbmQsIGJlY2F1c2UgaXQgZGlzYWxsb3cg dG8gZXhlY3V0ZSBleHByZXNzaW9uIGFzIHNpbXBsZQorCSAqIGV4cHJlc3Npb24uIFNvIGZvciBQ TC9wZ1NRTCB3ZSBoYXZlIGV4dHJhIHBhdGgsIGFuZCB3ZSByZXR1cm4gU0VMRUNULgorCSAqIFRo ZW4gaXQgY2FuIGJlIGV4ZWN1dGVkIGJ5IGV4ZWNfZXZhbF9leHByLiBSZXN1bHQgaXMgZGlycmVj dGx5IGFzc2lnbmVkCisJICogdG8gdGFyZ2V0IHNlc3Npb24gdmFyaWFibGUgaW5zaWRlIFBML3Bn U1FMIExFVCBzdGF0ZW1lbnQgaGFuZGxlci4gVGhpcworCSAqIGlzIGV4dHJhIGNvZGUsIGV4dHJh IHBhdGgsIGJ1dCBwb3NzaWJpbGl0eSB0byBnZXQgZmFzdGVyIGV4ZWN1dGlvbiBpcworCSAqIHRv byBhdHRyYWN0aXZlLgorCSAqLworCWlmIChzdG10LT5wbHBnc3FsX21vZGUpCisJCXJldHVybiBx dWVyeTsKKwogCS8qIHJlcHJlc2VudCB0aGUgY29tbWFuZCBhcyBhIHV0aWxpdHkgUXVlcnkgKi8K IAlyZXN1bHQgPSBtYWtlTm9kZShRdWVyeSk7CiAJcmVzdWx0LT5jb21tYW5kVHlwZSA9IENNRF9V VElMSVRZOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYTU5ZjY4NTBiNy4uYmY3Y2EzZjUxYyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CkBAIC04MTYsNiArODE2LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2Vs ZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0b2tlbgkJ TU9ERV9QTFBHU1FMX0FTU0lHTjEKICV0b2tlbgkJTU9ERV9QTFBHU1FMX0FTU0lHTjIKICV0b2tl bgkJTU9ERV9QTFBHU1FMX0FTU0lHTjMKKyV0b2tlbgkJTU9ERV9QTFBHU1FMX0xFVAogCiAKIC8q IFByZWNlZGVuY2U6IGxvd2VzdCB0byBoaWdoZXN0ICovCkBAIC05NDcsNiArOTQ4LDEzIEBAIHBh cnNlX3RvcGxldmVsOgogCQkJCXBnX3l5Z2V0X2V4dHJhKHl5c2Nhbm5lciktPnBhcnNldHJlZSA9 CiAJCQkJCWxpc3RfbWFrZTEobWFrZVJhd1N0bXQoKE5vZGUgKikgbiwgQDIpKTsKIAkJCX0KKwkJ CXwgTU9ERV9QTFBHU1FMX0xFVCBMZXRTdG10CisJCQl7CisJCQkJTGV0U3RtdCAqbiA9IChMZXRT dG10ICopICQyOworCQkJCW4tPnBscGdzcWxfbW9kZSA9IHRydWU7CisJCQkJcGdfeXlnZXRfZXh0 cmEoeXlzY2FubmVyKS0+cGFyc2V0cmVlID0KKwkJCQkJbGlzdF9tYWtlMShtYWtlUmF3U3RtdCgo Tm9kZSAqKSBuLCAwKSk7CisJCQl9CiAJCTsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZXIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZXIuYwppbmRleCAzM2Ew NDA1MDZiLi44ODcyMTJhZWZkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vy LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlci5jCkBAIC02Miw2ICs2Miw3IEBAIHJh d19wYXJzZXIoY29uc3QgY2hhciAqc3RyLCBSYXdQYXJzZU1vZGUgbW9kZSkKIAkJCVtSQVdfUEFS U0VfUExQR1NRTF9BU1NJR04xXSA9IE1PREVfUExQR1NRTF9BU1NJR04xLAogCQkJW1JBV19QQVJT RV9QTFBHU1FMX0FTU0lHTjJdID0gTU9ERV9QTFBHU1FMX0FTU0lHTjIsCiAJCQlbUkFXX1BBUlNF X1BMUEdTUUxfQVNTSUdOM10gPSBNT0RFX1BMUEdTUUxfQVNTSUdOMywKKwkJCVtSQVdfUEFSU0Vf UExQR1NRTF9MRVRdID0gTU9ERV9QTFBHU1FMX0xFVCwKIAkJfTsKIAogCQl5eWV4dHJhLmhhdmVf bG9va2FoZWFkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApp bmRleCAzODYzMzBjNjljLi5jYzc1ZWY3ZTE2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oCkBAIC0yOCw2ICsyOCw3IEBAIGV4dGVybiB2b2lkIEF0RU9TdWJYYWN0X1Nl c3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCwgU3ViVHJhbnNhY3Rpb25JZCBteVN1YmlkCiAJ CQkJCQkJCQkJIFN1YlRyYW5zYWN0aW9uSWQgcGFyZW50U3ViaWQpOwogCiBleHRlcm4gdm9pZCBT ZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpOwor ZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlV2l0aFNlY3VyaXR5Q2hlY2soT2lkIHZhcmlk LCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpOwogZXh0ZXJuIERhdHVtIEdldFNlc3Npb25WYXJp YWJsZShPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCk7CiBleHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZh cmlhYmxlV2l0aFR5cGVpZChPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCwgT2lkICp0eXBpZCk7CiAK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCAxYTdmNDQzY2U3Li45OTBjZWJiZjA4IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oCkBAIC0yMTI0LDYgKzIxMjQsOCBAQCB0eXBlZGVmIHN0cnVjdCBMZXRT dG10CiAJTm9kZVRhZwkJdHlwZTsKIAlMaXN0CSAgICp0YXJnZXQ7CQkJLyogdGFyZ2V0IHZhcmlh YmxlICovCiAJTm9kZQkgICAqcXVlcnk7CQkJLyogc291cmNlIGV4cHJlc3Npb24gKi8KKwlib29s CQlwbHBnc3FsX21vZGU7CS8qIHRydWUsIHdoZW4gY29tbWFuZCB3aWxsIGJlIGV4ZWN1dGVkCisJ CQkJCQkJCSAqIChwYXJzZWQpIGJ5IHBscGdzcWwgcnVudGltZSAqLwogCVBhcnNlTG9jCWxvY2F0 aW9uOwogfSBMZXRTdG10OwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vy LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VyLmgKaW5kZXggMzUwMTk2Y2Q2NC4uYzhkNWU4 ZGJmOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oCisrKyBiL3NyYy9p bmNsdWRlL3BhcnNlci9wYXJzZXIuaApAQCAtMzMsNiArMzMsOSBAQAogICogUkFXX1BBUlNFX1BM UEdTUUxfQVNTSUdObjogcGFyc2UgYSBQTC9wZ1NRTCBhc3NpZ25tZW50IHN0YXRlbWVudCwKICAq IGFuZCByZXR1cm4gYSBvbmUtZWxlbWVudCBMaXN0IGNvbnRhaW5pbmcgYSBSYXdTdG10IG5vZGUu ICAibiIKICAqIGdpdmVzIHRoZSBudW1iZXIgb2YgZG90dGVkIG5hbWVzIGNvbXByaXNpbmcgdGhl IHRhcmdldCBDb2x1bW5SZWYuCisgKgorICogUkFXX1BBUlNFX1BMUEdTUUxfTEVUOiBwYXJzZSBh IExFVCBzdGF0ZW1lbnQsIGFuZCByZXR1cm4gYQorICogb25lLWVsZW1lbnQgTGlzdCBjb250YWlu aW5nIGEgUmF3U3RtdCBub2RlLgogICovCiB0eXBlZGVmIGVudW0KIHsKQEAgLTQyLDYgKzQ1LDcg QEAgdHlwZWRlZiBlbnVtCiAJUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOMSwKIAlSQVdfUEFSU0Vf UExQR1NRTF9BU1NJR04yLAogCVJBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjMsCisJUkFXX1BBUlNF X1BMUEdTUUxfTEVULAogfSBSYXdQYXJzZU1vZGU7CiAKIC8qIFZhbHVlcyBmb3IgdGhlIGJhY2tz bGFzaF9xdW90ZSBHVUMgKi8KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVj LmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IGU1YjBkYTA0ZTMuLjJiOTJm YjVlZWEgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKKysrIGIvc3Jj L3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgImFj Y2Vzcy90dXBjb252ZXJ0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNFeHByLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Iv c3BpLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvdHN0b3JlUmVjZWl2ZXIuaCIKQEAgLTMyMyw2ICsz MjQsOCBAQCBzdGF0aWMgaW50CWV4ZWNfc3RtdF9jb21taXQoUExwZ1NRTF9leGVjc3RhdGUgKmVz dGF0ZSwKIAkJCQkJCQkgUExwZ1NRTF9zdG10X2NvbW1pdCAqc3RtdCk7CiBzdGF0aWMgaW50CWV4 ZWNfc3RtdF9yb2xsYmFjayhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAogCQkJCQkJCSAgIFBM cGdTUUxfc3RtdF9yb2xsYmFjayAqc3RtdCk7CitzdGF0aWMgaW50CWV4ZWNfc3RtdF9sZXQoUExw Z1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwKKwkJCQkJCSAgUExwZ1NRTF9zdG10X2xldCAqbGV0KTsK IAogc3RhdGljIHZvaWQgcGxwZ3NxbF9lc3RhdGVfc2V0dXAoUExwZ1NRTF9leGVjc3RhdGUgKmVz dGF0ZSwKIAkJCQkJCQkJIFBMcGdTUUxfZnVuY3Rpb24gKmZ1bmMsCkBAIC0yMTE2LDYgKzIxMTks MTAgQEAgZXhlY19zdG10cyhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBMaXN0ICpzdG10cykK IAkJCQlyYyA9IGV4ZWNfc3RtdF9yb2xsYmFjayhlc3RhdGUsIChQTHBnU1FMX3N0bXRfcm9sbGJh Y2sgKikgc3RtdCk7CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgUExQR1NRTF9TVE1UX0xFVDoKKwkJ CQlyYyA9IGV4ZWNfc3RtdF9sZXQoZXN0YXRlLCAoUExwZ1NRTF9zdG10X2xldCAqKSBzdG10KTsK KwkJCQlicmVhazsKKwogCQkJZGVmYXVsdDoKIAkJCQkvKiBwb2ludCBlcnJfc3RtdCB0byBwYXJl bnQsIHNpbmNlIHRoaXMgb25lIHNlZW1zIGNvcnJ1cHQgKi8KIAkJCQllc3RhdGUtPmVycl9zdG10 ID0gc2F2ZV9lc3RtdDsKQEAgLTQ5OTksNiArNTAwNiw1NSBAQCBleGVjX3N0bXRfcm9sbGJhY2so UExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwgUExwZ1NRTF9zdG10X3JvbGxiYWNrICpzdG10KQog CXJldHVybiBQTFBHU1FMX1JDX09LOwogfQogCisvKiAtLS0tLS0tLS0tCisgKiBleGVjX3N0bXRf bGV0CQkJRXZhbHVhdGUgYW4gZXhwcmVzc2lvbiBhbmQKKyAqCQkJCQlwdXQgdGhlIHJlc3VsdCBp bnRvIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqIC0tLS0tLS0tLS0KKyAqLworc3RhdGljIGludAor ZXhlY19zdG10X2xldChQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBQTHBnU1FMX3N0bXRfbGV0 ICpzdG10KQoreworCWJvb2wJCWlzTnVsbDsKKwlPaWQJCQl2YWx0eXBlOworCWludDMyCQl2YWx0 eXBtb2Q7CisJRGF0dW0JCXZhbHVlOworCU9pZAkJCXZhcmlkOworCisJTGlzdAkgICAqcGxhbnNv dXJjZXM7CisJQ2FjaGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZTsKKworCXZhbHVlID0gZXhlY19l dmFsX2V4cHIoZXN0YXRlLAorCQkJCQkJICAgc3RtdC0+ZXhwciwKKwkJCQkJCSAgICZpc051bGws CisJCQkJCQkgICAmdmFsdHlwZSwKKwkJCQkJCSAgICZ2YWx0eXBtb2QpOworCisJLyoKKwkgKiBP aWQgb2YgdGFyZ2V0IHNlc3Npb24gdmFyaWFibGUgaXMgc3RvcmVkIGluIFF1ZXJ5IHN0cnVjdHVy ZS4gSXQgaXMKKwkgKiBzYWZlciB0byByZWFkIHRoaXMgdmFsdWUgZGlyZWN0bHkgZnJvbSB0aGUg cGxhbiB0aGFuIHRvIGhvbGQgdGhpcyB2YWx1ZQorCSAqIGluIHRoZSBwbHBnc3FsIGNvbnRleHQs IGJlY2F1c2UgaXQncyBub3QgbmVjZXNzYXJ5IHRvIGhhbmRsZQorCSAqIGludmFsaWRhdGlvbiBv ZiB0aGUgY2FjaGVkIHZhbHVlLiBOZXh0IG9wZXJhdGlvbnMgYXJlIHJlYWQgb25seSB3aXRob3V0 CisJICogYW55IGFsbG9jYXRpb25zLCBzbyB3ZSBjYW4gZXhwZWN0IHRoYXQgcmV0cmlldmluZyB2 YXJpZCBmcm9tIFF1ZXJ5CisJICogc2hvdWxkIGJlIGZhc3QuCisJICovCisJcGxhbnNvdXJjZXMg PSBTUElfcGxhbl9nZXRfcGxhbl9zb3VyY2VzKHN0bXQtPmV4cHItPnBsYW4pOworCWlmIChsaXN0 X2xlbmd0aChwbGFuc291cmNlcykgIT0gMSkKKwkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgbGVu Z3RoIG9mIHBsYW5zb3VyY2VzIG9mIHF1ZXJ5IGZvciBMRVQgc3RhdGVtZW50Iik7CisKKwlwbGFu c291cmNlID0gKENhY2hlZFBsYW5Tb3VyY2UgKikgbGluaXRpYWwocGxhbnNvdXJjZXMpOworCWlm IChsaXN0X2xlbmd0aChwbGFuc291cmNlLT5xdWVyeV9saXN0KSAhPSAxKQorCQllbG9nKEVSUk9S LCAidW5leHBlY3RlZCBsZW5ndGggb2YgcGxhbnNvdXJjZSBvZiBxdWVyeSBmb3IgTEVUIHN0YXRl bWVudCIpOworCisJdmFyaWQgPSBsaW5pdGlhbF9ub2RlKFF1ZXJ5LCBwbGFuc291cmNlLT5xdWVy eV9saXN0KS0+cmVzdWx0VmFyaWFibGU7CisJaWYgKCFPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJZWxv ZyhFUlJPUiwgIm9pZCBvZiB0YXJnZXQgc2Vzc2lvbiB2YXJpYWJsZSBpcyBub3QgdmFsaWQiKTsK KworCVNldFNlc3Npb25WYXJpYWJsZVdpdGhTZWN1cml0eUNoZWNrKHZhcmlkLCB2YWx1ZSwgaXNO dWxsKTsKKwlleGVjX2V2YWxfY2xlYW51cChlc3RhdGUpOworCisJcmV0dXJuIFBMUEdTUUxfUkNf T0s7Cit9CisKIC8qIC0tLS0tLS0tLS0KICAqIGV4ZWNfYXNzaWduX2V4cHIJCQlQdXQgYW4gZXhw cmVzc2lvbidzIHJlc3VsdCBpbnRvIGEgdmFyaWFibGUuCiAgKiAtLS0tLS0tLS0tCmRpZmYgLS1n aXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZnVuY3MuYyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9w bF9mdW5jcy5jCmluZGV4IDhjODI3ZmU1Y2MuLmY3NDhkZjA0OGMgMTAwNjQ0Ci0tLSBhL3NyYy9w bC9wbHBnc3FsL3NyYy9wbF9mdW5jcy5jCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9mdW5j cy5jCkBAIC0yODgsNiArMjg4LDggQEAgcGxwZ3NxbF9zdG10X3R5cGVuYW1lKFBMcGdTUUxfc3Rt dCAqc3RtdCkKIAkJCXJldHVybiAiQ09NTUlUIjsKIAkJY2FzZSBQTFBHU1FMX1NUTVRfUk9MTEJB Q0s6CiAJCQlyZXR1cm4gIlJPTExCQUNLIjsKKwkJY2FzZSBQTFBHU1FMX1NUTVRfTEVUOgorCQkJ cmV0dXJuICJMRVQiOwogCX0KIAogCXJldHVybiAidW5rbm93biI7CkBAIC0zNzAsNiArMzcyLDcg QEAgc3RhdGljIHZvaWQgZnJlZV9wZXJmb3JtKFBMcGdTUUxfc3RtdF9wZXJmb3JtICpzdG10KTsK IHN0YXRpYyB2b2lkIGZyZWVfY2FsbChQTHBnU1FMX3N0bXRfY2FsbCAqc3RtdCk7CiBzdGF0aWMg dm9pZCBmcmVlX2NvbW1pdChQTHBnU1FMX3N0bXRfY29tbWl0ICpzdG10KTsKIHN0YXRpYyB2b2lk IGZyZWVfcm9sbGJhY2soUExwZ1NRTF9zdG10X3JvbGxiYWNrICpzdG10KTsKK3N0YXRpYyB2b2lk IGZyZWVfbGV0KFBMcGdTUUxfc3RtdF9sZXQgKnN0bXQpOwogc3RhdGljIHZvaWQgZnJlZV9leHBy KFBMcGdTUUxfZXhwciAqZXhwcik7CiAKIApAQCAtNDU5LDYgKzQ2Miw5IEBAIGZyZWVfc3RtdChQ THBnU1FMX3N0bXQgKnN0bXQpCiAJCWNhc2UgUExQR1NRTF9TVE1UX1JPTExCQUNLOgogCQkJZnJl ZV9yb2xsYmFjaygoUExwZ1NRTF9zdG10X3JvbGxiYWNrICopIHN0bXQpOwogCQkJYnJlYWs7CisJ CWNhc2UgUExQR1NRTF9TVE1UX0xFVDoKKwkJCWZyZWVfbGV0KChQTHBnU1FMX3N0bXRfbGV0ICop IHN0bXQpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25p emVkIGNtZF90eXBlOiAlZCIsIHN0bXQtPmNtZF90eXBlKTsKIAkJCWJyZWFrOwpAQCAtNzEzLDYg KzcxOSwxMiBAQCBmcmVlX2dldGRpYWcoUExwZ1NRTF9zdG10X2dldGRpYWcgKnN0bXQpCiB7CiB9 CiAKK3N0YXRpYyB2b2lkCitmcmVlX2xldChQTHBnU1FMX3N0bXRfbGV0ICpzdG10KQoreworCWZy ZWVfZXhwcihzdG10LT5leHByKTsKK30KKwogc3RhdGljIHZvaWQKIGZyZWVfZXhwcihQTHBnU1FM X2V4cHIgKmV4cHIpCiB7CkBAIC04MTUsNiArODI3LDcgQEAgc3RhdGljIHZvaWQgZHVtcF9wZXJm b3JtKFBMcGdTUUxfc3RtdF9wZXJmb3JtICpzdG10KTsKIHN0YXRpYyB2b2lkIGR1bXBfY2FsbChQ THBnU1FMX3N0bXRfY2FsbCAqc3RtdCk7CiBzdGF0aWMgdm9pZCBkdW1wX2NvbW1pdChQTHBnU1FM X3N0bXRfY29tbWl0ICpzdG10KTsKIHN0YXRpYyB2b2lkIGR1bXBfcm9sbGJhY2soUExwZ1NRTF9z dG10X3JvbGxiYWNrICpzdG10KTsKK3N0YXRpYyB2b2lkIGR1bXBfbGV0KFBMcGdTUUxfc3RtdF9s ZXQgKnN0bXQpOwogc3RhdGljIHZvaWQgZHVtcF9leHByKFBMcGdTUUxfZXhwciAqZXhwcik7CiAK IApAQCAtOTE0LDYgKzkyNyw5IEBAIGR1bXBfc3RtdChQTHBnU1FMX3N0bXQgKnN0bXQpCiAJCWNh c2UgUExQR1NRTF9TVE1UX1JPTExCQUNLOgogCQkJZHVtcF9yb2xsYmFjaygoUExwZ1NRTF9zdG10 X3JvbGxiYWNrICopIHN0bXQpOwogCQkJYnJlYWs7CisJCWNhc2UgUExQR1NRTF9TVE1UX0xFVDoK KwkJCWR1bXBfbGV0KChQTHBnU1FMX3N0bXRfbGV0ICopIHN0bXQpOworCQkJYnJlYWs7CiAJCWRl ZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIGNtZF90eXBlOiAlZCIsIHN0bXQt PmNtZF90eXBlKTsKIAkJCWJyZWFrOwpAQCAtMTU5MCw2ICsxNjA2LDE0IEBAIGR1bXBfZ2V0ZGlh ZyhQTHBnU1FMX3N0bXRfZ2V0ZGlhZyAqc3RtdCkKIAlwcmludGYoIlxuIik7CiB9CiAKK3N0YXRp YyB2b2lkCitkdW1wX2xldChQTHBnU1FMX3N0bXRfbGV0ICpzdG10KQoreworCWR1bXBfaW5kKCk7 CisJZHVtcF9leHByKHN0bXQtPmV4cHIpOworCXByaW50ZigiXG4iKTsKK30KKwogc3RhdGljIHZv aWQKIGR1bXBfZXhwcihQTHBnU1FMX2V4cHIgKmV4cHIpCiB7CmRpZmYgLS1naXQgYS9zcmMvcGwv cGxwZ3NxbC9zcmMvcGxfZ3JhbS55IGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2dyYW0ueQppbmRl eCA5NzgzMDYzMjU4Li5mMDljYzU5N2RlIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMv cGxfZ3JhbS55CisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkKQEAgLTIwMCw3ICsy MDAsNyBAQCBzdGF0aWMJdm9pZAkJCWNoZWNrX3JhaXNlX3BhcmFtZXRlcnMoUExwZ1NRTF9zdG10 X3JhaXNlICpzdG10KTsKICV0eXBlIDxzdG10PglzdG10X3JldHVybiBzdG10X3JhaXNlIHN0bXRf YXNzZXJ0IHN0bXRfZXhlY3NxbAogJXR5cGUgPHN0bXQ+CXN0bXRfZHluZXhlY3V0ZSBzdG10X2Zv ciBzdG10X3BlcmZvcm0gc3RtdF9jYWxsIHN0bXRfZ2V0ZGlhZwogJXR5cGUgPHN0bXQ+CXN0bXRf b3BlbiBzdG10X2ZldGNoIHN0bXRfbW92ZSBzdG10X2Nsb3NlIHN0bXRfbnVsbAotJXR5cGUgPHN0 bXQ+CXN0bXRfY29tbWl0IHN0bXRfcm9sbGJhY2sKKyV0eXBlIDxzdG10PglzdG10X2NvbW1pdCBz dG10X3JvbGxiYWNrIHN0bXRfbGV0CiAldHlwZSA8c3RtdD4Jc3RtdF9jYXNlIHN0bXRfZm9yZWFj aF9hCiAKICV0eXBlIDxsaXN0Pglwcm9jX2V4Y2VwdGlvbnMKQEAgLTMwNyw2ICszMDcsNyBAQCBz dGF0aWMJdm9pZAkJCWNoZWNrX3JhaXNlX3BhcmFtZXRlcnMoUExwZ1NRTF9zdG10X3JhaXNlICpz dG10KTsKICV0b2tlbiA8a2V5d29yZD4JS19JTlRPCiAldG9rZW4gPGtleXdvcmQ+CUtfSVMKICV0 b2tlbiA8a2V5d29yZD4JS19MQVNUCisldG9rZW4gPGtleXdvcmQ+CUtfTEVUCiAldG9rZW4gPGtl eXdvcmQ+CUtfTE9HCiAldG9rZW4gPGtleXdvcmQ+CUtfTE9PUAogJXRva2VuIDxrZXl3b3JkPglL X01FUkdFCkBAIC04NzYsNiArODc3LDggQEAgcHJvY19zdG10CQk6IHBsX2Jsb2NrICc7JwogCQkJ CQkJeyAkJCA9ICQxOyB9CiAJCQkJfCBzdG10X3JvbGxiYWNrCiAJCQkJCQl7ICQkID0gJDE7IH0K KwkJCQl8IHN0bXRfbGV0CisJCQkJCQl7ICQkID0gJDE7IH0KIAkJCQk7CiAKIHN0bXRfcGVyZm9y bQk6IEtfUEVSRk9STQpAQCAtOTkyLDYgKzk5NSwyOSBAQCBzdG10X2Fzc2lnbgkJOiBUX0RBVFVN CiAJCQkJCX0KIAkJCQk7CiAKK3N0bXRfbGV0CQk6IEtfTEVUCisJCQkJCXsKKwkJCQkJCVBMcGdT UUxfc3RtdF9sZXQgKm5ldzsKKwkJCQkJCVJhd1BhcnNlTW9kZSBwbW9kZTsKKworCQkJCQkJcG1v ZGUgPSBSQVdfUEFSU0VfUExQR1NRTF9MRVQ7CisKKwkJCQkJCW5ldyA9IHBhbGxvYzAoc2l6ZW9m KFBMcGdTUUxfc3RtdF9sZXQpKTsKKwkJCQkJCW5ldy0+Y21kX3R5cGUgPSBQTFBHU1FMX1NUTVRf TEVUOworCQkJCQkJbmV3LT5saW5lbm8gICA9IHBscGdzcWxfbG9jYXRpb25fdG9fbGluZW5vKEAx KTsKKwkJCQkJCW5ldy0+c3RtdGlkID0gKytwbHBnc3FsX2N1cnJfY29tcGlsZS0+bnN0YXRlbWVu dHM7CisKKwkJCQkJCS8qIHB1c2ggYmFjayB0aGUgaGVhZCBuYW1lIHRvIGluY2x1ZGUgaXQgaW4g dGhlIHN0bXQgKi8KKwkJCQkJCXBscGdzcWxfcHVzaF9iYWNrX3Rva2VuKEtfTEVUKTsKKwkJCQkJ CW5ldy0+ZXhwciA9IHJlYWRfc3FsX2NvbnN0cnVjdCgnOycsIDAsIDAsICI7IiwKKwkJCQkJCQkJ CQkJCQkgICBwbW9kZSwKKwkJCQkJCQkJCQkJCQkgICBmYWxzZSwgdHJ1ZSwKKwkJCQkJCQkJCQkJ CQkgICBOVUxMLCBOVUxMKTsKKworCQkJCQkJJCQgPSAoUExwZ1NRTF9zdG10ICopbmV3OworCQkJ CQl9CisJCQkJOworCiBzdG10X2dldGRpYWcJOiBLX0dFVCBnZXRkaWFnX2FyZWFfb3B0IEtfRElB R05PU1RJQ1MgZ2V0ZGlhZ19saXN0ICc7JwogCQkJCQl7CiAJCQkJCQlQTHBnU1FMX3N0bXRfZ2V0 ZGlhZyAqbmV3OwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX3Jlc2VydmVkX2t3 bGlzdC5oIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX3Jlc2VydmVkX2t3bGlzdC5oCmluZGV4IGNl N2IwYzlkMzMuLmUyNjZiZDFjYzQgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9y ZXNlcnZlZF9rd2xpc3QuaAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3ds aXN0LmgKQEAgLTQwLDYgKzQwLDcgQEAgUEdfS0VZV09SRCgiZnJvbSIsIEtfRlJPTSkKIFBHX0tF WVdPUkQoImlmIiwgS19JRikKIFBHX0tFWVdPUkQoImluIiwgS19JTikKIFBHX0tFWVdPUkQoImlu dG8iLCBLX0lOVE8pCitQR19LRVlXT1JEKCJsZXQiLCBLX0xFVCkKIFBHX0tFWVdPUkQoImxvb3Ai LCBLX0xPT1ApCiBQR19LRVlXT1JEKCJub3QiLCBLX05PVCkKIFBHX0tFWVdPUkQoIm51bGwiLCBL X05VTEwpCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfdW5yZXNlcnZlZF9rd2xp c3QuaCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF91bnJlc2VydmVkX2t3bGlzdC5oCmluZGV4IDk4 Zjk5ZWM0NzAuLmVkMTRmZDg2YzMgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF91 bnJlc2VydmVkX2t3bGlzdC5oCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF91bnJlc2VydmVk X2t3bGlzdC5oCkBAIC02OSw2ICs2OSw3IEBAIFBHX0tFWVdPUkQoImluZm8iLCBLX0lORk8pCiBQ R19LRVlXT1JEKCJpbnNlcnQiLCBLX0lOU0VSVCkKIFBHX0tFWVdPUkQoImlzIiwgS19JUykKIFBH X0tFWVdPUkQoImxhc3QiLCBLX0xBU1QpCitQR19LRVlXT1JEKCJsZXQiLCBLX0xFVCkKIFBHX0tF WVdPUkQoImxvZyIsIEtfTE9HKQogUEdfS0VZV09SRCgibWVyZ2UiLCBLX01FUkdFKQogUEdfS0VZ V09SRCgibWVzc2FnZSIsIEtfTUVTU0FHRSkKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3Ny Yy9wbHBnc3FsLmggYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxwZ3NxbC5oCmluZGV4IGQwMGI5Y2Uw ZGEuLjYwMWM1ZTU5MjIgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbHBnc3FsLmgK KysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BscGdzcWwuaApAQCAtMTI4LDYgKzEyOCw3IEBAIHR5 cGVkZWYgZW51bSBQTHBnU1FMX3N0bXRfdHlwZQogCVBMUEdTUUxfU1RNVF9DQUxMLAogCVBMUEdT UUxfU1RNVF9DT01NSVQsCiAJUExQR1NRTF9TVE1UX1JPTExCQUNLLAorCVBMUEdTUUxfU1RNVF9M RVQsCiB9IFBMcGdTUUxfc3RtdF90eXBlOwogCiAvKgpAQCAtNTIwLDYgKzUyMSwxNyBAQCB0eXBl ZGVmIHN0cnVjdCBQTHBnU1FMX3N0bXRfYXNzaWduCiAJUExwZ1NRTF9leHByICpleHByOwogfSBQ THBnU1FMX3N0bXRfYXNzaWduOwogCisvKgorICogTGV0IHN0YXRlbWVudAorICovCit0eXBlZGVm IHN0cnVjdCBQTHBnU1FMX3N0bXRfbGV0Cit7CisJUExwZ1NRTF9zdG10X3R5cGUgY21kX3R5cGU7 CisJaW50CQkJbGluZW5vOworCXVuc2lnbmVkIGludCBzdG10aWQ7CisJUExwZ1NRTF9leHByICpl eHByOworfSBQTHBnU1FMX3N0bXRfbGV0OworCiAvKgogICogUEVSRk9STSBzdGF0ZW1lbnQKICAq LwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApp bmRleCBmNzdmM2I4MDY2Li43MDg2MzBhZTJhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTEyOSw4ICsxMTI5LDcgQEAgRVJST1I6 ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBDT05URVhUOiAg UEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFJBSVNFCiBETyAk JCBCRUdJTiBMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7IEVORCAkJDsKIEVSUk9SOiAgcGVybWlz c2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQotQ09OVEVYVDogIFNRTCBzdGF0 ZW1lbnQgIkxFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMCIKLVBML3BnU1FMIGZ1bmN0aW9uIGlubGlu ZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBTUUwgc3RhdGVtZW50CitDT05URVhUOiAgUEwvcGdTUUwg ZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IExFVAogU0VUIFJPTEUgVE8gREVG QVVMVDsKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rf cm9sZTsKIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKQEAgLTExNzQsOCArMTE3 Myw3IEBAIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFy MQogQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBh dCBSQUlTRQogRE8gJCQgQkVHSU4gTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwOyBFTkQgJCQ7CiBF UlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKLUNPTlRF WFQ6ICBTUUwgc3RhdGVtZW50ICJMRVQgdmFyMS5hID0gdmFyMS5hICsgMTAiCi1QTC9wZ1NRTCBm dW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgU1FMIHN0YXRlbWVudAorQ09OVEVY VDogIFBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBMRVQKIFNF VCBST0xFIFRPIERFRkFVTFQ7CiBEUk9QIFZBUklBQkxFIHZhcjE7CiBEUk9QIFRBQkxFIHZhcnRl c3R0YWI7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3Ny Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IDRkYjIwY2IyNjcuLjIyZTMwOWMx NDggMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3Ny Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0xODk0LDYgKzE4OTQsNyBAQCBQTHBn U1FMX3N0bXRfZm9ycQogUExwZ1NRTF9zdG10X2ZvcnMKIFBMcGdTUUxfc3RtdF9nZXRkaWFnCiBQ THBnU1FMX3N0bXRfaWYKK1BMcGdTUUxfc3RtdF9sZXQKIFBMcGdTUUxfc3RtdF9sb29wCiBQTHBn U1FMX3N0bXRfb3BlbgogUExwZ1NRTF9zdG10X3BlcmZvcm0KLS0gCjIuNDcuMQoK --0000000000008953c9062b346e70 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250108-0017-allow-parallel-execution-queries-with-session-variab.patch" Content-Disposition: attachment; filename="v20250108-0017-allow-parallel-execution-queries-with-session-variab.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5o4agj05 RnJvbSA3ZTc0NThlMWVjMzMxMDE0MTg5NTYwZTJmNmQ5ZTFiZmY4MmM1YTU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowODoxNyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTcvMjJdIGFsbG93IHBhcmFsbGVsIGV4ZWN1dGlvbiBxdWVyaWVzIHdpdGggc2Vzc2lvbiB2YXJp YWJsZXMKCi0tLQogZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgICA2IC0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8 ICAyMyArKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICAgICAgICB8 ICAyMCArKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jICAgICAgICAgICB8 IDE0NyArKysrKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVz ZXMuYyAgICAgICAgICB8ICAxOCArLS0KIHNyYy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMgICAgICAg ICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmggICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaCAgICAg ICAgICAgICAgIHwgICA0ICsKIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oICAgICAgICAg ICAgICAgICB8ICAgMSArCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQgICAgfCAgMTIgKy0KIDEwIGZpbGVzIGNoYW5nZWQsIDIwNiBpbnNlcnRpb25zKCspLCAyOSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCmluZGV4IDY4M2RlZGU2YWQuLjFjZTlhYmY4NmYgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9w YXJhbGxlbC5zZ21sCkBAIC01MTUsMTIgKzUxNSw2IEBAIEVYUExBSU4gU0VMRUNUICogRlJPTSBw Z2JlbmNoX2FjY291bnRzIFdIRVJFIGZpbGxlciBMSUtFICcleCUnOwogICAgICAgICBQbGFuIG5v ZGVzIHRoYXQgcmVmZXJlbmNlIGEgY29ycmVsYXRlZCA8bGl0ZXJhbD5TdWJQbGFuPC9saXRlcmFs Pi4KICAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgotCi0gICAgPGxpc3RpdGVtPgotICAg ICAgPHBhcmE+Ci0gICAgICAgIFBsYW4gbm9kZXMgdGhhdCB1c2UgYSBzZXNzaW9uIHZhcmlhYmxl LgotICAgICAgPC9wYXJhPgotICAgIDwvbGlzdGl0ZW0+CiAgIDwvaXRlbWl6ZWRsaXN0PgogCiAg PHNlY3QyIGlkPSJwYXJhbGxlbC1sYWJlbGluZyI+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9u X3ZhcmlhYmxlLmMKaW5kZXggNGYyODRjYzNhOC4uMjEwZDU1YjllNCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtOTk5LDYgKzk5OSwyOSBAQCBHZXRTZXNzaW9u VmFyaWFibGUoT2lkIHZhcmlkLCBib29sICppc051bGwpCiAJcmV0dXJuIGNvcHlfc2Vzc2lvbl92 YXJpYWJsZV92YWx1ZShzdmFyLCBpc051bGwpOwogfQogCisvKgorICogUmV0dXJucyBhIGNvcHkg b2YgdGhlIHZhbHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIChpbiB0aGUgY3VycmVudCBtZW1v cnkKKyAqIGNvbnRleHQpIHBsdXMgdHlwaWQgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUuIFRoZSBj YWxsZXIgaXMgcmVzcG9uc2libGUgZm9yCisgKiBwZXJtaXNzaW9uIGNoZWNrcy4KKyAqLworRGF0 dW0KK0dldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlaWQoT2lkIHZhcmlkLCBib29sICppc051bGws IE9pZCAqdHlwaWQpCit7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwlzdmFyID0gZ2V0X3Nlc3Npb25f dmFyaWFibGUodmFyaWQpOworCisJKnR5cGlkID0gc3Zhci0+dHlwaWQ7CisKKwkvKgorCSAqIEFs dGhvdWdoICJzdmFyIiBpcyBmcmVzaGx5IHZhbGlkYXRlZCBpbiB0aGlzIHBvaW50LCBzdmFyLT5p c192YWxpZCBjYW4KKwkgKiBiZSBmYWxzZSwgaWYgYW4gaW52YWxpZGF0aW9uIG1lc3NhZ2Ugd2Fz IHByb2Nlc3NlZCBkdXJpbmcgdGhlIGRvbWFpbiBjaGVjay4KKwkgKiBCdXQgdGhlIHZhcmlhYmxl IGFuZCBhbGwgaXRzIGRlcGVuZGVuY2llcyBhcmUgbG9ja2VkIG5vdywgc28gd2UgZG9uJ3QgbmVl ZAorCSAqIHRvIHJlcGVhdCB0aGUgdmFsaWRhdGlvbi4KKwkgKi8KKwlyZXR1cm4gY29weV9zZXNz aW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIsIGlzTnVsbCk7Cit9CisKIC8qCiAgKiBBc3NpZ24gdGhl IHJlc3VsdCBvZiB0aGUgZXZhbHVhdGVkIGV4cHJlc3Npb24gdG8gdGhlIHNlc3Npb24gdmFyaWFi bGUKICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKaW5kZXggYmI0ZTdiZjA2ZS4uNjFjYmIwMTkw OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYworKysgYi9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCkBAIC0yMTAsNyArMjEwLDE5IEBAIHN0YW5kYXJk X0V4ZWN1dG9yU3RhcnQoUXVlcnlEZXNjICpxdWVyeURlc2MsIGludCBlZmxhZ3MpCiAJICogICAg YmUgY2hhbmdlZCBpbnNpZGUgcXVlcnkgZXhlY3V0aW9uIHRpbWUsIGFuZCB0aGVuIGEgcmVmZXJl bmNlIHRvCiAJICogICAgcHJldmlvdXNseSByZXR1cm5lZCB2YWx1ZSBjYW4gYmUgY29ycnVwdGVk KS4KIAkgKi8KLQlpZiAocXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykK KwlpZiAocXVlcnlEZXNjLT5udW1fc2Vzc2lvbl92YXJpYWJsZXMgPiAwKQorCXsKKwkJLyoKKwkJ ICogV2hlbiBhIHBhcmFsbGVsIHF1ZXJ5IG5lZWRzIHRvIGFjY2VzcyBxdWVyeSBwYXJhbWV0ZXJz IChpbmNsdWRpbmcKKwkJICogcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlcyksIHRoZW4gcmVsYXRl ZCBzZXNzaW9uIHZhcmlhYmxlcyBhcmUKKwkJICogcmVzdG9yZWQgKGRlc2VyaWFsaXplZCkgaW4g cXVlcnlEZXNjIGFscmVhZHkuIFNvIGp1c3QgcHVzaCBwb2ludGVyCisJCSAqIG9mIHRoaXMgYXJy YXkgdG8gZXhlY3V0b3IncyBlc3RhdGUuCisJCSAqLworCQlBc3NlcnQoSXNQYXJhbGxlbFdvcmtl cigpKTsKKwkJZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlcyA9IHF1ZXJ5RGVzYy0+c2Vzc2lv bl92YXJpYWJsZXM7CisJCWVzdGF0ZS0+ZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gcXVlcnlE ZXNjLT5udW1fc2Vzc2lvbl92YXJpYWJsZXM7CisJfQorCWVsc2UgaWYgKHF1ZXJ5RGVzYy0+cGxh bm5lZHN0bXQtPnNlc3Npb25WYXJpYWJsZXMpCiAJewogCQlpbnQJCQluU2Vzc2lvblZhcmlhYmxl czsKIAkJaW50CQkJaSA9IDA7CkBAIC0yNDksOSArMjYxLDkgQEAgc3RhbmRhcmRfRXhlY3V0b3JT dGFydChRdWVyeURlc2MgKnF1ZXJ5RGVzYywgaW50IGVmbGFncykKIAkJCQkJCQkJICAgZ2V0X3Nl c3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOwogCQkJfQogCi0JCQllc3RhdGUtPmVzX3Nlc3Np b25fdmFyaWFibGVzW2ldLnZhbHVlID0KLQkJCQlHZXRTZXNzaW9uVmFyaWFibGUodmFyaWQsCi0J CQkJCQkJCSAgICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ldLmlzbnVsbCk7CisJCQll c3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ldLnZhbHVlID0gR2V0U2Vzc2lvblZhcmlhYmxl V2l0aFR5cGVpZCh2YXJpZCwKKwkJCQkJCQkJCQkJCSAgICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFy aWFibGVzW2ldLmlzbnVsbCwKKwkJCQkJCQkJCQkJCSAgICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFy aWFibGVzW2ldLnR5cGlkKTsKIAogCQkJaSsrOwogCQl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJh bGxlbC5jCmluZGV4IGZmNGQ5ZGQxYmIuLjgzZTAzOTFhNDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNQYXJhbGxlbC5jCkBAIC0xMiw4ICsxMiw5IEBACiAgKiB3b3JrZXJzIGFuZCBlbnN1cmluZyB0 aGF0IHRoZWlyIHN0YXRlIGdlbmVyYWxseSBtYXRjaGVzIHRoYXQgb2YgdGhlCiAgKiBsZWFkZXI7 IHNlZSBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9SRUFETUUucGFyYWxsZWwgZm9yIGRldGFp bHMuCiAgKiBIb3dldmVyLCB3ZSBtdXN0IHNhdmUgYW5kIHJlc3RvcmUgcmVsZXZhbnQgZXhlY3V0 b3Igc3RhdGUsIHN1Y2ggYXMKLSAqIGFueSBQYXJhbUxpc3RJbmZvIGFzc29jaWF0ZWQgd2l0aCB0 aGUgcXVlcnksIGJ1ZmZlci9XQUwgdXNhZ2UgaW5mbywgYW5kCi0gKiB0aGUgYWN0dWFsIHBsYW4g dG8gYmUgcGFzc2VkIGRvd24gdG8gdGhlIHdvcmtlci4KKyAqIGFueSBQYXJhbUxpc3RJbmZvIGFz c29jaWF0ZWQgd2l0aCB0aGUgcXVlcnksIGJ1ZmZlci9XQUwgdXNhZ2UgaW5mbywKKyAqIHNlc3Np b24gdmFyaWFibGVzIGJ1ZmZlciwgYW5kIHRoZSBhY3R1YWwgcGxhbiB0byBiZSBwYXNzZWQgZG93 biB0bworICogdGhlIHdvcmtlci4KICAqCiAgKiBJREVOVElGSUNBVElPTgogICoJICBzcmMvYmFj a2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYwpAQCAtNjQsNiArNjUsNyBAQAogI2RlZmluZSBQ QVJBTExFTF9LRVlfUVVFUllfVEVYVAkJVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAwMDAwMDA4KQog I2RlZmluZSBQQVJBTExFTF9LRVlfSklUX0lOU1RSVU1FTlRBVElPTiBVSU5UNjRDT05TVCgweEUw MDAwMDAwMDAwMDAwMDkpCiAjZGVmaW5lIFBBUkFMTEVMX0tFWV9XQUxfVVNBR0UJCQlVSU5UNjRD T05TVCgweEUwMDAwMDAwMDAwMDAwMEEpCisjZGVmaW5lIFBBUkFMTEVMX0tFWV9TRVNTSU9OX1ZB UklBQkxFUwlVSU5UNjRDT05TVCgweEUwMDAwMDAwMDAwMDAwMEIpCiAKICNkZWZpbmUgUEFSQUxM RUxfVFVQTEVfUVVFVUVfU0laRQkJNjU1MzYKIApAQCAtMTM4LDYgKzE0MCwxMiBAQCBzdGF0aWMg Ym9vbCBFeGVjUGFyYWxsZWxSZXRyaWV2ZUluc3RydW1lbnRhdGlvbihQbGFuU3RhdGUgKnBsYW5z dGF0ZSwKIC8qIEhlbHBlciBmdW5jdGlvbiB0aGF0IHJ1bnMgaW4gdGhlIHBhcmFsbGVsIHdvcmtl ci4gKi8KIHN0YXRpYyBEZXN0UmVjZWl2ZXIgKkV4ZWNQYXJhbGxlbEdldFJlY2VpdmVyKGRzbV9z ZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYyk7CiAKKy8qIEhlbHBlciBmdW5jdGlvbnMgdGhhdCBj YW4gcGFzcyB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgKi8KK3N0YXRpYyBTaXplIEVzdGlt YXRlU2Vzc2lvblZhcmlhYmxlcyhFU3RhdGUgKmVzdGF0ZSk7CitzdGF0aWMgdm9pZCBTZXJpYWxp emVTZXNzaW9uVmFyaWFibGVzKEVTdGF0ZSAqZXN0YXRlLCBjaGFyICoqc3RhcnRfYWRkcmVzcyk7 CitzdGF0aWMgU2Vzc2lvblZhcmlhYmxlVmFsdWUgKlJlc3RvcmVTZXNzaW9uVmFyaWFibGVzKGNo YXIgKipzdGFydF9hZGRyZXNzLAorCQkJCQkJCQkJCQkJCSBpbnQgKm51bV9zZXNzaW9uX3Zhcmlh Ymxlcyk7CisKIC8qCiAgKiBDcmVhdGUgYSBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIHRo ZSBwbGFuIHRvIGJlIHNlbnQgdG8gZWFjaCB3b3JrZXIuCiAgKi8KQEAgLTU5Niw2ICs2MDQsNyBA QCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgRVN0YXRlICplc3Rh dGUsCiAJY2hhcgkgICAqcHN0bXRfZGF0YTsKIAljaGFyCSAgICpwc3RtdF9zcGFjZTsKIAljaGFy CSAgICpwYXJhbWxpc3RpbmZvX3NwYWNlOworCWNoYXIJICAgKnNlc3Npb25fdmFyaWFibGVzX3Nw YWNlOwogCUJ1ZmZlclVzYWdlICpidWZ1c2FnZV9zcGFjZTsKIAlXYWxVc2FnZSAgICp3YWx1c2Fn ZV9zcGFjZTsKIAlTaGFyZWRFeGVjdXRvckluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudGF0aW9u ID0gTlVMTDsKQEAgLTYwNSw2ICs2MTQsNyBAQCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3Rh dGUgKnBsYW5zdGF0ZSwgRVN0YXRlICplc3RhdGUsCiAJaW50CQkJaW5zdHJ1bWVudGF0aW9uX2xl biA9IDA7CiAJaW50CQkJaml0X2luc3RydW1lbnRhdGlvbl9sZW4gPSAwOwogCWludAkJCWluc3Ry dW1lbnRfb2Zmc2V0ID0gMDsKKwlpbnQJCQlzZXNzaW9uX3ZhcmlhYmxlc19sZW4gPSAwOwogCVNp emUJCWRzYV9taW5zaXplID0gZHNhX21pbmltdW1fc2l6ZSgpOwogCWNoYXIJICAgKnF1ZXJ5X3N0 cmluZzsKIAlpbnQJCQlxdWVyeV9sZW47CkBAIC02NjAsNiArNjcwLDExIEBAIEV4ZWNJbml0UGFy YWxsZWxQbGFuKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAlzaG1fdG9j X2VzdGltYXRlX2NodW5rKCZwY3h0LT5lc3RpbWF0b3IsIHBhcmFtbGlzdGluZm9fbGVuKTsKIAlz aG1fdG9jX2VzdGltYXRlX2tleXMoJnBjeHQtPmVzdGltYXRvciwgMSk7CiAKKwkvKiBFc3RpbWF0 ZSBzcGFjZSBmb3Igc2VyaWFsaXplZCBzZXNzaW9uIHZhcmlhYmxlcy4gKi8KKwlzZXNzaW9uX3Zh cmlhYmxlc19sZW4gPSBFc3RpbWF0ZVNlc3Npb25WYXJpYWJsZXMoZXN0YXRlKTsKKwlzaG1fdG9j X2VzdGltYXRlX2NodW5rKCZwY3h0LT5lc3RpbWF0b3IsIHNlc3Npb25fdmFyaWFibGVzX2xlbik7 CisJc2htX3RvY19lc3RpbWF0ZV9rZXlzKCZwY3h0LT5lc3RpbWF0b3IsIDEpOworCiAJLyoKIAkg KiBFc3RpbWF0ZSBzcGFjZSBmb3IgQnVmZmVyVXNhZ2UuCiAJICoKQEAgLTc2MSw2ICs3NzYsMTEg QEAgRXhlY0luaXRQYXJhbGxlbFBsYW4oUGxhblN0YXRlICpwbGFuc3RhdGUsIEVTdGF0ZSAqZXN0 YXRlLAogCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgUEFSQUxMRUxfS0VZX1BBUkFNTElTVElO Rk8sIHBhcmFtbGlzdGluZm9fc3BhY2UpOwogCVNlcmlhbGl6ZVBhcmFtTGlzdChlc3RhdGUtPmVz X3BhcmFtX2xpc3RfaW5mbywgJnBhcmFtbGlzdGluZm9fc3BhY2UpOwogCisJLyogU3RvcmUgc2Vy aWFsaXplZCBzZXNzaW9uIHZhcmlhYmxlcy4gKi8KKwlzZXNzaW9uX3ZhcmlhYmxlc19zcGFjZSA9 IHNobV90b2NfYWxsb2NhdGUocGN4dC0+dG9jLCBzZXNzaW9uX3ZhcmlhYmxlc19sZW4pOworCXNo bV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgUEFSQUxMRUxfS0VZX1NFU1NJT05fVkFSSUFCTEVTLCBz ZXNzaW9uX3ZhcmlhYmxlc19zcGFjZSk7CisJU2VyaWFsaXplU2Vzc2lvblZhcmlhYmxlcyhlc3Rh dGUsICZzZXNzaW9uX3ZhcmlhYmxlc19zcGFjZSk7CisKIAkvKiBBbGxvY2F0ZSBzcGFjZSBmb3Ig ZWFjaCB3b3JrZXIncyBCdWZmZXJVc2FnZTsgbm8gbmVlZCB0byBpbml0aWFsaXplLiAqLwogCWJ1 ZnVzYWdlX3NwYWNlID0gc2htX3RvY19hbGxvY2F0ZShwY3h0LT50b2MsCiAJCQkJCQkJCQkgIG11 bF9zaXplKHNpemVvZihCdWZmZXJVc2FnZSksIHBjeHQtPm53b3JrZXJzKSk7CkBAIC0xNDExLDYg KzE0MzEsNyBAQCBQYXJhbGxlbFF1ZXJ5TWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0 b2MpCiAJU2hhcmVkSml0SW5zdHJ1bWVudGF0aW9uICpqaXRfaW5zdHJ1bWVudGF0aW9uOwogCWlu dAkJCWluc3RydW1lbnRfb3B0aW9ucyA9IDA7CiAJdm9pZAkgICAqYXJlYV9zcGFjZTsKKwljaGFy CSAgICpzZXNzaW9udmFyaWFibGVfc3BhY2U7CiAJZHNhX2FyZWEgICAqYXJlYTsKIAlQYXJhbGxl bFdvcmtlckNvbnRleHQgcHdjeHQ7CiAKQEAgLTE0MzYsNiArMTQ1NywxNCBAQCBQYXJhbGxlbFF1 ZXJ5TWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJYXJlYV9zcGFjZSA9IHNo bV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX0RTQSwgZmFsc2UpOwogCWFyZWEgPSBkc2Ff YXR0YWNoX2luX3BsYWNlKGFyZWFfc3BhY2UsIHNlZyk7CiAKKwkvKiBSZWNvbnN0cnVjdCBzZXNz aW9uIHZhcmlhYmxlcy4gKi8KKwlzZXNzaW9udmFyaWFibGVfc3BhY2UgPSBzaG1fdG9jX2xvb2t1 cCh0b2MsCisJCQkJCQkJCQkJICAgUEFSQUxMRUxfS0VZX1NFU1NJT05fVkFSSUFCTEVTLAorCQkJ CQkJCQkJCSAgIGZhbHNlKTsKKwlxdWVyeURlc2MtPnNlc3Npb25fdmFyaWFibGVzID0KKwkJUmVz dG9yZVNlc3Npb25WYXJpYWJsZXMoJnNlc3Npb252YXJpYWJsZV9zcGFjZSwKKwkJCQkJCQkJJnF1 ZXJ5RGVzYy0+bnVtX3Nlc3Npb25fdmFyaWFibGVzKTsKKwogCS8qIFN0YXJ0IHVwIHRoZSBleGVj dXRvciAqLwogCXF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPmppdEZsYWdzID0gZnBlcy0+aml0X2Zs YWdzOwogCUV4ZWN1dG9yU3RhcnQocXVlcnlEZXNjLCBmcGVzLT5lZmxhZ3MpOwpAQCAtMTUwMywz ICsxNTMyLDExNyBAQCBQYXJhbGxlbFF1ZXJ5TWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9j ICp0b2MpCiAJRnJlZVF1ZXJ5RGVzYyhxdWVyeURlc2MpOwogCXJlY2VpdmVyLT5yRGVzdHJveShy ZWNlaXZlcik7CiB9CisKKy8qCisgKiBFc3RpbWF0ZSB0aGUgYW1vdW50IG9mIHNwYWNlIHJlcXVp cmVkIHRvIHNlcmlhbGl6ZSBhIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK3N0YXRpYyBTaXplCitF c3RpbWF0ZVNlc3Npb25WYXJpYWJsZXMoRVN0YXRlICplc3RhdGUpCit7CisJaW50CQkJaTsKKwlT aXplCQlzeiA9IHNpemVvZihpbnQpOworCisJaWYgKGVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJs ZXMgPT0gTlVMTCkKKwkJcmV0dXJuIHN6OworCisJZm9yIChpID0gMDsgaSA8IGVzdGF0ZS0+ZXNf bnVtX3Nlc3Npb25fdmFyaWFibGVzOyBpKyspCisJeworCQlTZXNzaW9uVmFyaWFibGVWYWx1ZSAq c3ZhcnZhbDsKKwkJT2lkCQkJdHlwZU9pZDsKKwkJaW50MTYJCXR5cExlbjsKKwkJYm9vbAkJdHlw QnlWYWw7CisKKwkJc3ZhcnZhbCA9ICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ldOwor CisJCXR5cGVPaWQgPSBzdmFydmFsLT50eXBpZDsKKworCQlzeiA9IGFkZF9zaXplKHN6LCBzaXpl b2YoT2lkKSk7IC8qIHNwYWNlIGZvciB0eXBlIE9JRCAqLworCisJCS8qIHNwYWNlIGZvciBkYXR1 bS9pc251bGwgKi8KKwkJQXNzZXJ0KE9pZElzVmFsaWQodHlwZU9pZCkpOworCQlnZXRfdHlwbGVu Ynl2YWwodHlwZU9pZCwgJnR5cExlbiwgJnR5cEJ5VmFsKTsKKworCQlzeiA9IGFkZF9zaXplKHN6 LAorCQkJCQkgIGRhdHVtRXN0aW1hdGVTcGFjZShzdmFydmFsLT52YWx1ZSwgc3ZhcnZhbC0+aXNu dWxsLCB0eXBCeVZhbCwgdHlwTGVuKSk7CisJfQorCisJcmV0dXJuIHN6OworfQorCisvKgorICog U2VyaWFsaXplIGEgc2Vzc2lvbiB2YXJpYWJsZXMgYnVmZmVyIGludG8gY2FsbGVyLXByb3ZpZGVk IHN0b3JhZ2UuCisgKgorICogV2Ugd3JpdGUgdGhlIG51bWJlciBvZiBwYXJhbWV0ZXJzIGZpcnN0 LCBhcyBhIDQtYnl0ZSBpbnRlZ2VyLCBhbmQgdGhlbgorICogd3JpdGUgZGV0YWlscyBmb3IgZWFj aCBwYXJhbWV0ZXIgaW4gdHVybi4gIFRoZSBkZXRhaWxzIGZvciBlYWNoIHBhcmFtZXRlcgorICog Y29uc2lzdCBvZiBhIDQtYnl0ZSB0eXBlIE9JRCwgYW5kIHRoZW4gdGhlIGRhdHVtIGFzIHNlcmlh bGl6ZWQgYnkKKyAqIGRhdHVtU2VyaWFsaXplKCkuICBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxl IGZvciBlbnN1cmluZyB0aGF0IHRoZXJlIGlzCisgKiBlbm91Z2ggc3RvcmFnZSB0byBzdG9yZSB0 aGUgbnVtYmVyIG9mIGJ5dGVzIHRoYXQgd2lsbCBiZSB3cml0dGVuOyB1c2UKKyAqIEVzdGltYXRl U2Vzc2lvblZhcmlhYmxlcyB0byBmaW5kIG91dCBob3cgbWFueSB3aWxsIGJlIG5lZWRlZC4KKyAq ICpzdGFydF9hZGRyZXNzIGlzIHVwZGF0ZWQgdG8gcG9pbnQgdG8gdGhlIGJ5dGUgaW1tZWRpYXRl bHkgZm9sbG93aW5nIHRob3NlCisgKiB3cml0dGVuLgorICoKKyAqIFJlc3RvcmVTZXNzaW9uVmFy aWFibGVzIGNhbiBiZSB1c2VkIHRvIHJlY3JlYXRlIGEgc2Vzc2lvbiB2YXJpYWJsZSBidWZmZXIK KyAqIGJhc2VkIG9uIHRoZSBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uOworICovCitzdGF0aWMg dm9pZAorU2VyaWFsaXplU2Vzc2lvblZhcmlhYmxlcyhFU3RhdGUgKmVzdGF0ZSwgY2hhciAqKnN0 YXJ0X2FkZHJlc3MpCit7CisJaW50CQkJbnBhcmFtczsKKwlpbnQJCQlpOworCisJLyogV3JpdGUg bnVtYmVyIG9mIHBhcmFtZXRlcnMuICovCisJbnBhcmFtcyA9IGVzdGF0ZS0+ZXNfbnVtX3Nlc3Np b25fdmFyaWFibGVzOworCW1lbWNweSgqc3RhcnRfYWRkcmVzcywgJm5wYXJhbXMsIHNpemVvZihp bnQpKTsKKwkqc3RhcnRfYWRkcmVzcyArPSBzaXplb2YoaW50KTsKKworCS8qIFdyaXRlIGVhY2gg cGFyYW1ldGVyIGluIHR1cm4uICovCisJZm9yIChpID0gMDsgaSA8IG5wYXJhbXM7IGkrKykKKwl7 CisJCVNlc3Npb25WYXJpYWJsZVZhbHVlICpzdmFydmFsOworCQlPaWQJCQl0eXBlT2lkOworCQlp bnQxNgkJdHlwTGVuOworCQlib29sCQl0eXBCeVZhbDsKKworCQlzdmFydmFsID0gJmVzdGF0ZS0+ ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV07CisJCXR5cGVPaWQgPSBzdmFydmFsLT50eXBpZDsKKwor CQkvKiBXcml0ZSB0eXBlIE9JRC4gKi8KKwkJbWVtY3B5KCpzdGFydF9hZGRyZXNzLCAmdHlwZU9p ZCwgc2l6ZW9mKE9pZCkpOworCQkqc3RhcnRfYWRkcmVzcyArPSBzaXplb2YoT2lkKTsKKworCQlB c3NlcnQoT2lkSXNWYWxpZCh0eXBlT2lkKSk7CisJCWdldF90eXBsZW5ieXZhbCh0eXBlT2lkLCAm dHlwTGVuLCAmdHlwQnlWYWwpOworCisJCWRhdHVtU2VyaWFsaXplKHN2YXJ2YWwtPnZhbHVlLCBz dmFydmFsLT5pc251bGwsIHR5cEJ5VmFsLCB0eXBMZW4sCisJCQkJCSAgIHN0YXJ0X2FkZHJlc3Mp OworCX0KK30KKworc3RhdGljIFNlc3Npb25WYXJpYWJsZVZhbHVlICoKK1Jlc3RvcmVTZXNzaW9u VmFyaWFibGVzKGNoYXIgKipzdGFydF9hZGRyZXNzLCBpbnQgKm51bV9zZXNzaW9uX3ZhcmlhYmxl cykKK3sKKwlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqc2Vzc2lvbl92YXJpYWJsZXM7CisJaW50CQkJ aTsKKwlpbnQJCQlucGFyYW1zOworCisJbWVtY3B5KCZucGFyYW1zLCAqc3RhcnRfYWRkcmVzcywg c2l6ZW9mKGludCkpOworCSpzdGFydF9hZGRyZXNzICs9IHNpemVvZihpbnQpOworCisJKm51bV9z ZXNzaW9uX3ZhcmlhYmxlcyA9IG5wYXJhbXM7CisJc2Vzc2lvbl92YXJpYWJsZXMgPSAoU2Vzc2lv blZhcmlhYmxlVmFsdWUgKikKKwkJcGFsbG9jKG5wYXJhbXMgKiBzaXplb2YoU2Vzc2lvblZhcmlh YmxlVmFsdWUpKTsKKworCWZvciAoaSA9IDA7IGkgPCBucGFyYW1zOyBpKyspCisJeworCQlTZXNz aW9uVmFyaWFibGVWYWx1ZSAqc3ZhcnZhbCA9ICZzZXNzaW9uX3ZhcmlhYmxlc1tpXTsKKworCQkv KiBSZWFkIHR5cGUgT0lELiAqLworCQltZW1jcHkoJnN2YXJ2YWwtPnR5cGlkLCAqc3RhcnRfYWRk cmVzcywgc2l6ZW9mKE9pZCkpOworCQkqc3RhcnRfYWRkcmVzcyArPSBzaXplb2YoT2lkKTsKKwor CQkvKiBSZWFkIGRhdHVtL2lzbnVsbC4gKi8KKwkJc3ZhcnZhbC0+dmFsdWUgPSBkYXR1bVJlc3Rv cmUoc3RhcnRfYWRkcmVzcywgJnN2YXJ2YWwtPmlzbnVsbCk7CisJfQorCisJcmV0dXJuIHNlc3Np b25fdmFyaWFibGVzOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwv Y2xhdXNlcy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCmluZGV4IDJi YzNiMWY1MjAuLjZhNzY0Y2NkOGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91 dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMK QEAgLTkyMywyNSArOTIzLDE5IEBAIG1heF9wYXJhbGxlbF9oYXphcmRfd2Fsa2VyKE5vZGUgKm5v ZGUsIG1heF9wYXJhbGxlbF9oYXphcmRfY29udGV4dCAqY29udGV4dCkKIAogCS8qCiAJICogV2Ug Y2FuJ3QgcGFzcyBQYXJhbXMgdG8gd29ya2VycyBhdCB0aGUgbW9tZW50IGVpdGhlciwgc28gdGhl eSBhcmUgYWxzbwotCSAqIHBhcmFsbGVsLXJlc3RyaWN0ZWQsIHVubGVzcyB0aGV5IGFyZSBQQVJB TV9FWFRFUk4gUGFyYW1zIG9yIGFyZQotCSAqIFBBUkFNX0VYRUMgUGFyYW1zIGxpc3RlZCBpbiBz YWZlX3BhcmFtX2lkcywgbWVhbmluZyB0aGV5IGNvdWxkIGJlCi0JICogZWl0aGVyIGdlbmVyYXRl ZCB3aXRoaW4gd29ya2VycyBvciBjYW4gYmUgY29tcHV0ZWQgYnkgdGhlIGxlYWRlciBhbmQKLQkg KiB0aGVuIHRoZWlyIHZhbHVlIGNhbiBiZSBwYXNzZWQgdG8gd29ya2Vycy4KKwkgKiBwYXJhbGxl bC1yZXN0cmljdGVkLCB1bmxlc3MgdGhleSBhcmUgUEFSQU1fRVhURVJOIG9yIFBBUkFNX1ZBUklB QkxFCisJICogUGFyYW1zIG9yIGFyZSBQQVJBTV9FWEVDIFBhcmFtcyBsaXN0ZWQgaW4gc2FmZV9w YXJhbV9pZHMsIG1lYW5pbmcgdGhleQorCSAqIGNvdWxkIGJlIGVpdGhlciBnZW5lcmF0ZWQgd2l0 aGluIHdvcmtlcnMgb3IgY2FuIGJlIGNvbXB1dGVkIGJ5IHRoZQorCSAqIGxlYWRlciBhbmQgdGhl biB0aGVpciB2YWx1ZSBjYW4gYmUgcGFzc2VkIHRvIHdvcmtlcnMuCiAJICovCiAJZWxzZSBpZiAo SXNBKG5vZGUsIFBhcmFtKSkKIAl7CiAJCVBhcmFtCSAgICpwYXJhbSA9IChQYXJhbSAqKSBub2Rl OwogCi0JCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX0VYVEVSTikKKwkJaWYgKHBhcmFt LT5wYXJhbWtpbmQgPT0gUEFSQU1fRVhURVJOIHx8CisJCQlwYXJhbS0+cGFyYW1raW5kID09IFBB UkFNX1ZBUklBQkxFKQogCQkJcmV0dXJuIGZhbHNlOwogCi0JCS8qIHdlIGRvbid0IHN1cHBvcnQg cGFzc2luZyBzZXNzaW9uIHZhcmlhYmxlcyB0byB3b3JrZXJzICovCi0JCWlmIChwYXJhbS0+cGFy YW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQotCQl7Ci0JCQlpZiAobWF4X3BhcmFsbGVsX2hhemFy ZF90ZXN0KFBST1BBUkFMTEVMX1JFU1RSSUNURUQsIGNvbnRleHQpKQotCQkJCXJldHVybiB0cnVl OwotCQl9Ci0KIAkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhFQyB8fAogCQkJIWxp c3RfbWVtYmVyX2ludChjb250ZXh0LT5zYWZlX3BhcmFtX2lkcywgcGFyYW0tPnBhcmFtaWQpKQog CQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3BxdWVyeS5jIGIvc3JjL2JhY2tlbmQv dGNvcC9wcXVlcnkuYwppbmRleCA2ZjIyNDk2MzA1Li42ZjliZDdjOGIwIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC90Y29wL3BxdWVyeS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMK QEAgLTg2LDYgKzg2LDkgQEAgQ3JlYXRlUXVlcnlEZXNjKFBsYW5uZWRTdG10ICpwbGFubmVkc3Rt dCwKIAlxZC0+cXVlcnlFbnYgPSBxdWVyeUVudjsKIAlxZC0+aW5zdHJ1bWVudF9vcHRpb25zID0g aW5zdHJ1bWVudF9vcHRpb25zOwkvKiBpbnN0cnVtZW50YXRpb24gd2FudGVkPyAqLwogCisJcWQt Pm51bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IDA7CisJcWQtPnNlc3Npb25fdmFyaWFibGVzID0gTlVM TDsKKwogCS8qIG51bGwgdGhlc2UgZmllbGRzIHVudGlsIHNldCBieSBFeGVjdXRvclN0YXJ0ICov CiAJcWQtPnR1cERlc2MgPSBOVUxMOwogCXFkLT5lc3RhdGUgPSBOVUxMOwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmluZGV4IDc3NGIzOWYyZjkuLjM4NjMzMGM2OWMgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAorKysgYi9z cmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKQEAgLTI5LDYgKzI5LDcgQEAg ZXh0ZXJuIHZvaWQgQXRFT1N1YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0LCBT dWJUcmFuc2FjdGlvbklkIG15U3ViaWQKIAogZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxl KE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsKIGV4dGVybiBEYXR1bSBHZXRT ZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBib29sICppc051bGwpOworZXh0ZXJuIERhdHVtIEdl dFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlaWQoT2lkIHZhcmlkLCBib29sICppc051bGwsIE9pZCAq dHlwaWQpOwogCiBleHRlcm4gdm9pZCBFeGVjdXRlTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUs IExldFN0bXQgKnN0bXQsIFBhcmFtTGlzdEluZm8gcGFyYW1zLAogCQkJCQkJICAgUXVlcnlFbnZp cm9ubWVudCAqcXVlcnlFbnYsIFF1ZXJ5Q29tcGxldGlvbiAqcWMpOwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNk ZXNjLmgKaW5kZXggODZkYjNkYzhkMC4uNGUwZmEzZWE0MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjZGVz Yy5oCkBAIC01MSw2ICs1MSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBRdWVyeURlc2MKIAkvKiBUaGlz IGZpZWxkIGlzIHNldCBieSBFeGVjdXRlUGxhbiAqLwogCWJvb2wJCWFscmVhZHlfZXhlY3V0ZWQ7 CS8qIHRydWUgaWYgcHJldmlvdXNseSBleGVjdXRlZCAqLwogCisJLyogcmVmZXJlbmNlIHRvIHNl c3Npb24gdmFyaWFibGVzIGJ1ZmZlciAqLworCWludAkJCW51bV9zZXNzaW9uX3ZhcmlhYmxlczsK KwlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqc2Vzc2lvbl92YXJpYWJsZXM7CisKIAkvKiBUaGlzIGlz IGFsd2F5cyBzZXQgTlVMTCBieSB0aGUgY29yZSBzeXN0ZW0sIGJ1dCBwbHVnaW5zIGNhbiBjaGFu Z2UgaXQgKi8KIAlzdHJ1Y3QgSW5zdHJ1bWVudGF0aW9uICp0b3RhbHRpbWU7CS8qIHRvdGFsIHRp bWUgc3BlbnQgaW4gRXhlY3V0b3JSdW4gKi8KIH0gUXVlcnlEZXNjOwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMu aAppbmRleCA4MzY0YTEwOWUzLi40MWE0NDE4MzRiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9u b2Rlcy9leGVjbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAt NjIzLDYgKzYyMyw3IEBAIHR5cGVkZWYgc3RydWN0IEFzeW5jUmVxdWVzdAogICovCiB0eXBlZGVm IHN0cnVjdCBTZXNzaW9uVmFyaWFibGVWYWx1ZQogeworCU9pZAkJCXR5cGlkOwogCWJvb2wJCWlz bnVsbDsKIAlEYXR1bQkJdmFsdWU7CiB9IFNlc3Npb25WYXJpYWJsZVZhbHVlOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCBiNWFiMDU4 NDBhLi5mNzdmM2I4MDY2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dApAQCAtMTI4NCwxMiArMTI4NCwxNCBAQCBTRUxFQ1QgY291bnQoKikg RlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87CiAKIC0tIHBhcmFsbGVsIGV4ZWN1dGlv biBpcyBub3Qgc3VwcG9ydGVkIHlldAogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQo KikgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87Ci0gICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEFnZ3JlZ2F0ZQotICAgLT4gIFNlcSBT Y2FuIG9uIHN2YXJfdGVzdAotICAgICAgICAgRmlsdGVyOiAoKGEgJSAxMCkgPSB6ZXJvKQotKDMg cm93cykKKyAgIC0+ICBHYXRoZXIKKyAgICAgICAgIFdvcmtlcnMgUGxhbm5lZDogMgorICAgICAg ICAgLT4gIFBhcmFsbGVsIFNlcSBTY2FuIG9uIHN2YXJfdGVzdAorICAgICAgICAgICAgICAgRmls dGVyOiAoKGEgJSAxMCkgPSB6ZXJvKQorKDUgcm93cykKIAogTEVUIHplcm8gPSAoU0VMRUNUIGNv dW50KCopIEZST00gc3Zhcl90ZXN0KTsKIC0tIHJlc3VsdCBzaG91bGQgYmUgMTAwMAotLSAKMi40 Ny4xCgo= --0000000000008953c9062b346e70 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250108-0016-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Disposition: attachment; filename="v20250108-0016-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5o4agj96 RnJvbSBmYjgxZmFiZGIwMmU2MTJmOGE0NGRhMmUwNzdmZTI5NDk5ZWVjN2IyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowNzowMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTYvMjJdIGFsbG93IHJlYWQgYW4gdmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBkaXJlY3RseSBm cm9tCiBleHByZXNzaW9uIGV4ZWN1dG9yCgpUaGUgZXhwcmVzc2lvbiBleGVjdXRvciBjYW4gYmUg Y2FsbGVkIGRpcmVjdGx5IChub3QgaW5zaWRlIHF1ZXJ5IGV4ZWN1dG9yKQp3aGVuIGV4cHJlc3Np b24gaXMgZXZhbHVhdGVkIGFzIHNpbXBsZSBleHByZXNzaW9uIGluIHBscGdzcWwgb3Igd2hlbiBl eHByZXNzaW9uCmlzIGFuIGFyZ3VtZW50IG9mIENBTEwgb3IgRVhFQ1VURSBzdGF0ZW1lbnRzLiBG b3IgdGhlc2UgY2FzZXMgd2UgbmVlZCB0byBhbGxvdyBkaXJlY3QKYWNjZXNzIHRvIGNvbnRlbnQg b2Ygc2Vzc2lvbiB2YXJpYWJsZXMgZnJvbSBleGVjdXRvci4gV2UgY2FuIGRvIGl0LCBiZWNhdXNl CndlIGtub3cgc28gdGhlIGV4cHJlc3Npb24gaXMgbm90IGV2YWx1YXRlZCB1bmRlciBxdWVyeSBh bmQgY2Fubm90IGJlCmV2YWx1YXRlZCBpbnNpZGUgcGFyYWxsZWwgd29ya2VyLgoKVGhpcyBwYXRj aCBlbmFibGVzIHNlc3Npb24gdmFyaWFibGVzIGZvciBzaW1wbGUgZXhwcmVzc2lvbiBldmFsdWF0 aW9uLgoKVGhpcyBwYXRjaCBlbmFibGVzIHVzYWdlIHNlc3Npb24gdmFyaWFibGVzIGluIGFyZ3Vt ZW50cyBvZiBDQUxMIHN0bXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jICAg ICAgICAgICAgICAgIHwgMTAgLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jICAg ICAgICAgICAgICAgfCA4NSArKysrKysrKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9leGVjdXRv ci9leGVjRXhwckludGVycC5jICAgICAgICAgfCAxNCArKysKIHNyYy9iYWNrZW5kL2ppdC9sbHZt L2xsdm1qaXRfZXhwci5jICAgICAgICAgICB8ICA2ICsrCiBzcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jICAgICAgICAgICAgICAgICAgfCAxMCAtLS0KIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4 ZWNFeHByLmggICAgICAgICAgICAgICB8IDExICsrLQogLi4uL3NyYy9leHBlY3RlZC9wbHBnc3Fs X3Nlc3Npb25fdmFyaWFibGUub3V0IHwgIDMgKy0KIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVj LmMgICAgICAgICAgICAgICAgICB8ICAzICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQgICAgfCA0MSArKysrLS0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nl c3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDEyICstLQogMTAgZmlsZXMgY2hhbmdlZCwgMTI1IGlu c2VydGlvbnMoKyksIDcwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3ByZXBhcmUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwppbmRleCA0 ZWEyYmZlYTRlLi43MGYwMzA5OTk5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9w cmVwYXJlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCkBAIC0zMzgsMTYg KzMzOCw2IEBAIEV2YWx1YXRlUGFyYW1zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUHJlcGFyZWRTdGF0 ZW1lbnQgKnBzdG10LCBMaXN0ICpwYXJhbXMsCiAJCWkrKzsKIAl9CiAKLQkvKgotCSAqIFRoZSBh cmd1bWVudHMgb2YgRVhFQ1VURSBhcmUgZXZhbHVhdGVkIGJ5IGEgZGlyZWN0IGV4cHJlc3Npb24K LQkgKiBleGVjdXRvciBjYWxsLiAgVGhpcyBtb2RlIGRvZXNuJ3Qgc3VwcG9ydCBzZXNzaW9uIHZh cmlhYmxlcyB5ZXQuCi0JICogSXQgd2lsbCBiZSBlbmFibGVkIGxhdGVyLgotCSAqLwotCWlmIChw c3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcykKLQkJZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJy Y29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJIGVycm1zZygic2Vzc2lv biB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudCIpKSk7Ci0KIAkvKiBQcmVw YXJlIHRoZSBleHByZXNzaW9ucyBmb3IgZXhlY3V0aW9uICovCiAJZXhwcnN0YXRlcyA9IEV4ZWNQ cmVwYXJlRXhwckxpc3QocGFyYW1zLCBlc3RhdGUpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpp bmRleCAxMzM0ODQyMzk5Li5iY2I0MjVlYTMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVj dXRvci9leGVjRXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKQEAg LTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFjY2Vzcy5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9u X3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY0V4cHIuaCIKICNpbmNsdWRlICJl eGVjdXRvci9ub2RlU3VicGxhbi5oIgpAQCAtMTAwOCwyMiArMTAwOSw3NCBAQCBFeGVjSW5pdEV4 cHJSZWMoRXhwciAqbm9kZSwgRXhwclN0YXRlICpzdGF0ZSwKIAkJCQkJCQkJZXNfbnVtX3Nlc3Np b25fdmFyaWFibGVzID0gc3RhdGUtPnBhcmVudC0+c3RhdGUtPmVzX251bV9zZXNzaW9uX3Zhcmlh YmxlczsKIAkJCQkJCQl9CiAKLQkJCQkJCQlBc3NlcnQoZXNfc2Vzc2lvbl92YXJpYWJsZXMpOwot Ci0JCQkJCQkJLyogcGFyYW1ldGVyIHNhbml0eSBjaGVja3MgKi8KLQkJCQkJCQlpZiAocGFyYW0t PnBhcmFtaWQgPj0gZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzKQotCQkJCQkJCQllbG9nKEVSUk9S LCAicGFyYW1pZCBvZiBQQVJBTV9WQVJJQUJMRSBwYXJhbSBpcyBvdXQgb2YgcmFuZ2UiKTsKLQot CQkJCQkJCXZhciA9ICZlc19zZXNzaW9uX3ZhcmlhYmxlc1twYXJhbS0+cGFyYW1pZF07Ci0KLQkJ CQkJCQkvKgotCQkJCQkJCSAqIEluIHRoaXMgY2FzZSwgcGFzcyB0aGUgdmFsdWUgbGlrZSBhCi0J CQkJCQkJICogY29uc3RhbnQuCi0JCQkJCQkJICovCi0JCQkJCQkJc2NyYXRjaC5vcGNvZGUgPSBF RU9QX0NPTlNUOwotCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZhbC52YWx1ZSA9IHZhci0+dmFsdWU7 Ci0JCQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFsLmlzbnVsbCA9IHZhci0+aXNudWxsOwotCQkJCQkJ CUV4cHJFdmFsUHVzaFN0ZXAoc3RhdGUsICZzY3JhdGNoKTsKKwkJCQkJCQlpZiAoZXNfc2Vzc2lv bl92YXJpYWJsZXMpCisJCQkJCQkJeworCQkJCQkJCQkvKgorCQkJCQkJCQkgKiBUaGlzIHBhdGgg aXMgdXNlZCB3aGVuIGV4cHJlc3Npb24gaXMKKwkJCQkJCQkJICogZXZhbHVhdGVkIGluc2lkZSBx dWVyeSBldmFsdWF0aW9uLiBGb3IKKwkJCQkJCQkJICogZW5zdXJpbmcgb2YgaW1tdXRhYmlsaXR5 IG9mIHNlc3Npb24gdmFyaWFibGUKKwkJCQkJCQkJICogaW5zaWRlIHF1ZXJ5IHdlIHVzZSBzcGVj aWFsIGJ1ZmZlciB3aXRoIGNvcHkKKwkJCQkJCQkJICogb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxl cy4gVGhpcyBtZXRob2QgaGVscHMKKwkJCQkJCQkJICogd2l0aCBwYXJhbGxlbCBleGVjdXRpb24g dG9vLgorCQkJCQkJCQkgKi8KKworCQkJCQkJCQkvKiBwYXJhbWV0ZXIgc2FuaXR5IGNoZWNrcyAq LworCQkJCQkJCQlpZiAocGFyYW0tPnBhcmFtaWQgPj0gZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVz KQorCQkJCQkJCQkJZWxvZyhFUlJPUiwgInBhcmFtaWQgb2YgUEFSQU1fVkFSSUFCTEUgcGFyYW0g aXMgb3V0IG9mIHJhbmdlIik7CisKKwkJCQkJCQkJdmFyID0gJmVzX3Nlc3Npb25fdmFyaWFibGVz W3BhcmFtLT5wYXJhbWlkXTsKKworCQkJCQkJCQkvKgorCQkJCQkJCQkgKiBJbiB0aGlzIGNhc2Us IHBhc3MgdGhlIHZhbHVlIGxpa2UgYQorCQkJCQkJCQkgKiBjb25zdGFudC4KKwkJCQkJCQkJICov CisJCQkJCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9DT05TVDsKKwkJCQkJCQkJc2NyYXRjaC5k LmNvbnN0dmFsLnZhbHVlID0gdmFyLT52YWx1ZTsKKwkJCQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFs LmlzbnVsbCA9IHZhci0+aXNudWxsOworCQkJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAm c2NyYXRjaCk7CisJCQkJCQkJfQorCQkJCQkJCWVsc2UKKwkJCQkJCQl7CisJCQkJCQkJCU9pZAkJ CXZhcmlkID0gcGFyYW0tPnBhcmFtdmFyaWQ7CisKKwkJCQkJCQkJQXNzZXJ0KCFJc1BhcmFsbGVs V29ya2VyKCkpOworCisJCQkJCQkJCS8qCisJCQkJCQkJCSAqIEluIHNvbWUgY2FzZXMgKHBscGdz cWwncyBzaW1wbGUgZXhwcmVzc2lvbgorCQkJCQkJCQkgKiBldmFsdWF0aW9uIG9yIGV2YWx1YXRp b24gb2YgQ0FMTCBhcmd1bWVudHMpLAorCQkJCQkJCQkgKiB0aGUgZXhwcmVzc2lvbiBleGVjdXRv ciBpcyBjYWxsZWQgZGlyZWN0bHkuCisJCQkJCQkJCSAqIFdlIGNhbiBhbGxvdyBkaXJlY3QgYWNj ZXNzIHRvIHNlc3Npb24KKwkJCQkJCQkJICogdmFyaWFibGVzIChjb3B5IG9ubHkpLCBiZWNhdXNl IHdlIGtub3csIHNvCisJCQkJCQkJCSAqIG91dHNpZGUgaXMgbm90IGFueSBxdWVyeSAoYW5kIGV4 cHJlc3Npb24KKwkJCQkJCQkJICogY2Fubm90IGJlIGV4ZWN1dGVkIHBhcmFsbGVsKS4KKwkJCQkJ CQkJICoKKwkJCQkJCQkJICogSW4gdGhpcyBjYXNlIHdlIHNob3VsZCB0byBkbyBhY2xjaGVjaywK KwkJCQkJCQkJICogYmVjYXVzZSB1c3VhbCBhY2xjaGVjayBmcm9tCisJCQkJCQkJCSAqIHN0YW5k YXJkX0V4ZWN1dG9yU3RhcnQgaXMgbm90IGV4ZWN1dGVkIGluCisJCQkJCQkJCSAqIHRoaXMgY2Fz ZS4gRm9ydHVuYXRlbHkgaXQgaXMganVzdCBvbmNlIHBlcgorCQkJCQkJCQkgKiB0cmFuc2FjdGlv bi4KKwkJCQkJCQkJICoKKwkJCQkJCQkJICogRG9uJ3QgZG8gcGVybWlzc2lvbiBjaGVjaywgd2hl biB2YXJpYWJsZSBpcworCQkJCQkJCQkgKiB1c2VkIGxpa2UgYmFzZSBub2RlIGZvciBhc3NpZ25t ZW50IGluZGlyZWN0aW9uLgorCQkJCQkJCQkgKi8KKwkJCQkJCQkJaWYgKCFwYXJhbS0+cGFyYW1i YXNlbm9kZSkKKwkJCQkJCQkJeworCQkJCQkJCQkJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKworCQkJ CQkJCQkJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKAorCQkJCQkJCQkJCQkJCSAgVmFyaWFi bGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCQkJCQkgIEdldFVzZXJJZCgpLCBBQ0xfU0VM RUNUKTsKKworCQkJCQkJCQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCQkJCQkJ CQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsCisJCQkJCQkJCQkJCQkJICAgT0JKRUNUX1ZBUklB QkxFLAorCQkJCQkJCQkJCQkJCSAgIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKTsK KwkJCQkJCQkJfQorCisJCQkJCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9QQVJBTV9WQVJJQUJM RTsKKwkJCQkJCQkJc2NyYXRjaC5kLnZwYXJhbS52YXJpZCA9IHZhcmlkOworCQkJCQkJCQlFeHBy RXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisJCQkJCQkJfQogCQkJCQkJfQogCQkJCQkJ YnJlYWs7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJw LmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCmluZGV4IGIyYzAwYTBh MWIuLmJmZGE3NGRjZTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBy SW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAt NTksNiArNTksNyBAQAogI2luY2x1ZGUgImFjY2Vzcy9oZWFwdG9hc3QuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXF1ZW5jZS5oIgorI2luY2x1 ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVj RXhwci5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL25vZGVTdWJwbGFuLmgiCiAjaW5jbHVkZSAiZnVu Y2FwaS5oIgpAQCAtNTEyLDYgKzUxMyw3IEBAIEV4ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3Rh dGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwgYm9vbCAqaXNudWxsKQogCQkmJkNBU0VfRUVPUF9Q QVJBTV9FWEVDLAogCQkmJkNBU0VfRUVPUF9QQVJBTV9FWFRFUk4sCiAJCSYmQ0FTRV9FRU9QX1BB UkFNX0NBTExCQUNLLAorCQkmJkNBU0VfRUVPUF9QQVJBTV9WQVJJQUJMRSwKIAkJJiZDQVNFX0VF T1BfUEFSQU1fU0VULAogCQkmJkNBU0VfRUVPUF9DQVNFX1RFU1RWQUwsCiAJCSYmQ0FTRV9FRU9Q X01BS0VfUkVBRE9OTFksCkBAIC0xMTYxLDYgKzExNjMsMTggQEAgRXhlY0ludGVycEV4cHIoRXhw clN0YXRlICpzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0LCBib29sICppc251bGwpCiAJCQlF RU9fTkVYVCgpOwogCQl9CiAKKwkJRUVPX0NBU0UoRUVPUF9QQVJBTV9WQVJJQUJMRSkKKwkJewor CQkJLyoKKwkJCSAqIERpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSAod2l0aG91dCBi dWZmZXJpbmcpLiBCZWNhdXNlCisJCQkgKiByZXR1cm5lZCB2YWx1ZSBjYW4gYmUgdXNlZCAod2l0 aG91dCBhbiBhc3NpZ25lbWVudCkgYWZ0ZXIgdGhlCisJCQkgKiByZWZlcmVuY2VkIHNlc3Npb24g dmFyaWFibGVzIGlzIHVwZGF0ZWQsIHdlIGhhdmUgdG8gdXNlIGFuIGNvcHkKKwkJCSAqIG9mIHN0 b3JlZCB2YWx1ZSBldmVyeSB0aW1lLgorCQkJICovCisJCQkqb3AtPnJlc3ZhbHVlID0gR2V0U2Vz c2lvblZhcmlhYmxlKG9wLT5kLnZwYXJhbS52YXJpZCwgb3AtPnJlc251bGwpOworCQkJRUVPX05F WFQoKTsKKwkJfQorCiAJCUVFT19DQVNFKEVFT1BfUEFSQU1fU0VUKQogCQl7CiAJCQkvKiBvdXQg b2YgbGluZSwgdW5saWtlbHkgdG8gbWF0dGVyIHBlcmZvcm1hbmNlLXdpc2UgKi8KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jIGIvc3JjL2JhY2tlbmQvaml0 L2xsdm0vbGx2bWppdF9leHByLmMKaW5kZXggNmM0OTE1ZTM3My4uMGI3M2M1ZjM1NCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMKKysrIGIvc3JjL2JhY2tl bmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMKQEAgLTExMzYsNiArMTEzNiwxMiBAQCBsbHZtX2Nv bXBpbGVfZXhwcihFeHByU3RhdGUgKnN0YXRlKQogCQkJCQlicmVhazsKIAkJCQl9CiAKKwkJCWNh c2UgRUVPUF9QQVJBTV9WQVJJQUJMRToKKwkJCQlidWlsZF9FdmFsWEZ1bmMoYiwgbW9kLCAiRXhl Y0V2YWxQYXJhbVZhcmlhYmxlIiwKKwkJCQkJCQkJdl9zdGF0ZSwgb3AsIHZfZWNvbnRleHQpOwor CQkJCUxMVk1CdWlsZEJyKGIsIG9wYmxvY2tzW29wbm8gKyAxXSk7CisJCQkJYnJlYWs7CisKIAkJ CWNhc2UgRUVPUF9QQVJBTV9TRVQ6CiAJCQkJYnVpbGRfRXZhbFhGdW5jKGIsIG1vZCwgIkV4ZWNF dmFsUGFyYW1TZXQiLAogCQkJCQkJCQl2X3N0YXRlLCBvcCwgdl9lY29udGV4dCk7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2Fu YWx5emUuYwppbmRleCBhMDM4NjBkNGI4Li5iOGRmMTZlNGYwIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMK QEAgLTM0NjksMTYgKzM0NjksNiBAQCB0cmFuc2Zvcm1DYWxsU3RtdChQYXJzZVN0YXRlICpwc3Rh dGUsIENhbGxTdG10ICpzdG10KQogCQkJCQkJCSB0cnVlLAogCQkJCQkJCSBzdG10LT5mdW5jY2Fs bC0+bG9jYXRpb24pOwogCi0JLyoKLQkgKiBUaGUgYXJndW1lbnRzIG9mIENBTEwgc3RhdGVtZW50 IGFyZSBldmFsdWF0ZWQgYnkgYSBkaXJlY3QgZXhwcmVzc2lvbgotCSAqIGV4ZWN1dG9yIGNhbGwu ICBUaGlzIHBhdGggaXMgdW5zdXBwb3J0ZWQgeWV0LCBzbyBibG9jayBpdC4gIEl0IHdpbGwgYmUK LQkgKiBlbmFibGVkIGxhdGVyLgotCSAqLwotCWlmIChwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlh YmxlcykKLQkJZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRCksCi0JCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNl ZCBhcyBhbiBhcmd1bWVudCIpKSk7Ci0KIAlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwg bm9kZSk7CiAKIAlmZXhwciA9IGNhc3ROb2RlKEZ1bmNFeHByLCBub2RlKTsKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9l eGVjRXhwci5oCmluZGV4IDgwMTllNTQ5MGUuLmZhZGNkZTFlZDYgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhl Y0V4cHIuaApAQCAtMTU2LDEwICsxNTYsMTEgQEAgdHlwZWRlZiBlbnVtIEV4cHJFdmFsT3AKIAlF RU9QX0JPT0xURVNUX0lTX0ZBTFNFLAogCUVFT1BfQk9PTFRFU1RfSVNfTk9UX0ZBTFNFLAogCi0J LyogZXZhbHVhdGUgUEFSQU1fRVhFQy9FWFRFUk4gcGFyYW1ldGVycyAqLworCS8qIGV2YWx1YXRl IFBBUkFNX0VYRUMvRVhURVJOL1ZBUklBQkxFIHBhcmFtZXRlcnMgKi8KIAlFRU9QX1BBUkFNX0VY RUMsCiAJRUVPUF9QQVJBTV9FWFRFUk4sCiAJRUVPUF9QQVJBTV9DQUxMQkFDSywKKwlFRU9QX1BB UkFNX1ZBUklBQkxFLAogCS8qIHNldCBQQVJBTV9FWEVDIHZhbHVlICovCiAJRUVPUF9QQVJBTV9T RVQsCiAKQEAgLTQxMCw2ICs0MTEsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgRXhwckV2YWxTdGVwCiAJ CQlPaWQJCQlwYXJhbXR5cGU7CS8qIE9JRCBvZiBwYXJhbWV0ZXIncyBkYXRhdHlwZSAqLwogCQl9 CQkJY3BhcmFtOwogCisJCS8qIGZvciBFRU9QX1BBUkFNX1ZBUklBQkxFICovCisJCXN0cnVjdAor CQl7CisJCQlPaWQJCQl2YXJpZDsJCS8qIE9JRCBvZiBhc3NpZ25lZCB2YXJpYWJsZSAqLworCQl9 CQkJdnBhcmFtOworCiAJCS8qIGZvciBFRU9QX0NBU0VfVEVTVFZBTC9ET01BSU5fVEVTVFZBTCAq LwogCQlzdHJ1Y3QKIAkJewpAQCAtODMyLDYgKzgzOSw4IEBAIGV4dGVybiB2b2lkIEV4ZWNFdmFs UGFyYW1TZXQoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKIAkJCQkJCQkgRXhw ckNvbnRleHQgKmVjb250ZXh0KTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFsUGFyYW1FeHRlcm4oRXhw clN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKIAkJCQkJCQkJRXhwckNvbnRleHQgKmVj b250ZXh0KTsKK2V4dGVybiB2b2lkIEV4ZWNFdmFsUGFyYW1WYXJpYWJsZShFeHByU3RhdGUgKnN0 YXRlLCBFeHByRXZhbFN0ZXAgKm9wLAorCQkJCQkJCQkgIEV4cHJDb250ZXh0ICplY29udGV4dCk7 CiBleHRlcm4gdm9pZCBFeGVjRXZhbENvZXJjZVZpYUlPU2FmZShFeHByU3RhdGUgKnN0YXRlLCBF eHByRXZhbFN0ZXAgKm9wKTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFsU1FMVmFsdWVGdW5jdGlvbihF eHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFs Q3VycmVudE9mRXhwcihFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKTsKZGlmZiAt LWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFi bGUub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJp YWJsZS5vdXQKaW5kZXggYTY1MjNmN2FmZS4uZWNhYzY0ZmNmYiAxMDA2NDQKLS0tIGEvc3JjL3Bs L3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKKysrIGIv c3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQK QEAgLTIxMSw4ICsyMTEsNyBAQCBTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CiAt LSBzaG91bGQgZmFpbAogU0VMRUNUIHZhcl9yZWFkX2Z1bmMoKTsKIEVSUk9SOiAgcGVybWlzc2lv biBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgcGxwZ3NxbF9zdl92YXIxCi1DT05URVhUOiAg UEwvcGdTUUwgZXhwcmVzc2lvbiAicGxwZ3NxbF9zdl92YXIxIgotUEwvcGdTUUwgZnVuY3Rpb24g dmFyX3JlYWRfZnVuYygpIGxpbmUgMyBhdCBSQUlTRQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0 aW9uIHZhcl9yZWFkX2Z1bmMoKSBsaW5lIDMgYXQgUkFJU0UKIFNFVCBST0xFIFRPIERFRkFVTFQ7 CiBTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOwogR1JBTlQgU0VMRUNUIE9OIFZB UklBQkxFIHBscGdzcWxfc3ZfdmFyMSBUTyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKZGlmZiAt LWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMv cGxfZXhlYy5jCmluZGV4IDNmOTAxY2Q4ZmMuLmU1YjBkYTA0ZTMgMTAwNjQ0Ci0tLSBhL3NyYy9w bC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMu YwpAQCAtODA5OSw4ICs4MDk5LDcgQEAgZXhlY19pc19zaW1wbGVfcXVlcnkoUExwZ1NRTF9leHBy ICpleHByKQogCQlxdWVyeS0+c29ydENsYXVzZSB8fAogCQlxdWVyeS0+bGltaXRPZmZzZXQgfHwK IAkJcXVlcnktPmxpbWl0Q291bnQgfHwKLQkJcXVlcnktPnNldE9wZXJhdGlvbnMgfHwKLQkJcXVl cnktPmhhc1Nlc3Npb25WYXJpYWJsZXMpCisJCXF1ZXJ5LT5zZXRPcGVyYXRpb25zKQogCQlyZXR1 cm4gZmFsc2U7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzLm91dAppbmRleCAwOWJiNGIyZmIyLi5iNWFiMDU4NDBhIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtNDgzLDggKzQ4 Myw3IEBAIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFy MQogQ09OVEVYVDogIFNRTCBmdW5jdGlvbiAic3FsZngiIHN0YXRlbWVudCAxCiBTRUxFQ1QgcGxw Z3NxbGZ4KDIwKTsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFi bGUgdmFyMQotQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gIiQxICsgdmFyMSIKLVBML3Bn U1FMIGZ1bmN0aW9uIHBscGdzcWxmeChpbnRlZ2VyKSBsaW5lIDEgYXQgUkVUVVJOCitDT05URVhU OiAgUEwvcGdTUUwgZnVuY3Rpb24gcGxwZ3NxbGZ4KGludGVnZXIpIGxpbmUgMSBhdCBSRVRVUk4K IC0tIHNob3VsZCBiZSBvawogU0VMRUNUIHNxbGZ4X3NkKDIwKTsKICBzcWxmeF9zZCAKQEAgLTc4 MCwyNyArNzc5LDI4IEBAICQkOwogTk9USUNFOiAgcmVzdWx0IGFycmF5OiB7MSwyLDMsNCw1LDYs Nyw4LDksMTB9CiBEUk9QIFZBUklBQkxFIHZhcjE7CiBEUk9QIFZBUklBQkxFIHZhcjI7Ci0tLSBD QUxMIHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVkIHlldAotLS0gcmVxdWlyZXMgZGlyZWN0IGFj Y2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorLS0gQ0FM TCBzdGF0ZW1lbnQgaXMgc3VwcG9ydGVkCiBDUkVBVEUgVkFSSUFCTEUgdiBpbnQ7CitMRVQgdiA9 IDE7CiBDUkVBVEUgUFJPQ0VEVVJFIHAoYXJnIGludCkgQVMgJCQgQkVHSU4gUkFJU0UgTk9USUNF ICclJywgYXJnOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKLS0tIHNob3VsZCBub3QgY3Jhc2gg KGJ1dCBpcyBub3Qgc3VwcG9ydGVkIHlldCkKKy0tIHNob3VsZCB0byB3b3JrCiBDQUxMIHAodik7 Ci1FUlJPUjogIHNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQK K05PVElDRTogIDEKIERPICQkIEJFR0lOIENBTEwgcCh2KTsgRU5EICQkOwotRVJST1I6ICBzZXNz aW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50Ci1DT05URVhUOiAgU1FM IHN0YXRlbWVudCAiQ0FMTCBwKHYpIgotUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxv Y2sgbGluZSAxIGF0IENBTEwKK05PVElDRTogIDEKIERST1AgUFJPQ0VEVVJFIHAoaW50KTsKIERS T1AgVkFSSUFCTEUgdjsKLS0tIEVYRUNVVEUgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0 Ci0tLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHBy ZXNzaW9uIGV4ZWN1dG9yCistLSBFWEVDVVRFIHN0YXRlbWVudAogQ1JFQVRFIFZBUklBQkxFIHYg aW50OwogTEVUIHYgPSAyMDsKIFBSRVBBUkUgcHRlc3QoaW50KSBBUyBTRUxFQ1QgJDE7Ci0tLSBz aG91bGQgZmFpbAorLS0gc2hvdWxkIGJlIG9rCiBFWEVDVVRFIHB0ZXN0KHYpOwotRVJST1I6ICBz ZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50CisgP2NvbHVtbj8g CistLS0tLS0tLS0tCisgICAgICAgMjAKKygxIHJvdykKKwogREVBTExPQ0FURSBwdGVzdDsKIERS T1AgVkFSSUFCTEUgdjsKIC0tIHRlc3Qgc2VhcmNoIHBhdGgKQEAgLTExMjMsMTIgKzExMjMsMTAg QEAgTEVUIHZhcjEuYSA9IChTRUxFQ1QgKiBGUk9NIChTRUxFQ1QgY291bnQoKikgRlJPTSB2YXJ0 ZXN0dGFiIFdIRVJFIHhjb2wgPSB2YXIxLmEKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9y IHNlc3Npb24gdmFyaWFibGUgdmFyMQogRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFy MTsgRU5EICQkOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJs ZSB2YXIxCi1DT05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAidmFyMSIKLVBML3BnU1FMIGZ1 bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQorQ09OVEVYVDogIFBML3Bn U1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQogRE8gJCQgQkVH SU4gUkFJU0UgTk9USUNFICclJywgdmFyMS5hOyBFTkQgJCQ7CiBFUlJPUjogIHBlcm1pc3Npb24g ZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKLUNPTlRFWFQ6ICBQTC9wZ1NRTCBleHBy ZXNzaW9uICJ2YXIxLmEiCi1QTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5l IDEgYXQgUkFJU0UKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9j ayBsaW5lIDEgYXQgUkFJU0UKIERPICQkIEJFR0lOIExFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsg RU5EICQkOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2 YXIxCiBDT05URVhUOiAgU1FMIHN0YXRlbWVudCAiTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwIgpA QCAtMTE3MCwxMiArMTE2OCwxMCBAQCBMRVQgdmFyMS5hID0gKFNFTEVDVCAqIEZST00gKFNFTEVD VCBjb3VudCgqKSBGUk9NIHZhcnRlc3R0YWIgV0hFUkUgeGNvbCA9IHZhcjEuYQogRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBETyAkJCBCRUdJTiBS QUlTRSBOT1RJQ0UgJyUnLCB2YXIxOyBFTkQgJCQ7CiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVk IGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKLUNPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9u ICJ2YXIxIgotUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFJB SVNFCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAx IGF0IFJBSVNFCiBETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxLmE7IEVORCAkJDsK IEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQotQ09O VEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gInZhcjEuYSIKLVBML3BnU1FMIGZ1bmN0aW9uIGlu bGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0 aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQogRE8gJCQgQkVHSU4gTEVUIHZh cjEuYSA9IHZhcjEuYSArIDEwOyBFTkQgJCQ7CiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZv ciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKIENPTlRFWFQ6ICBTUUwgc3RhdGVtZW50ICJMRVQgdmFy MS5hID0gdmFyMS5hICsgMTAiCkBAIC0yMDgwLDggKzIwNzYsNyBAQCAkJDsKIEVSUk9SOiAgc2Vz c2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIG5vdCB1c2VkIGluc2lkZSB2YXJpYWJsZSBm ZW5jZQogREVUQUlMOiAgVGhlcmUgaXMgYSByaXNrIG9mIHVud2FudGVkIHVzYWdlIG9mIHNlc3Np b24gdmFyaWFibGUuCiBISU5UOiAgVXNlIHZhcmlhYmxlIGZlbmNlICJWQVJJQUJMRSh2YXJuYW1l KSBmb3IgYWNjZXNzIHRvIHZhcmlhYmxlIi4KLUNPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9u ICJ2YXIxIgotUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSA0IGF0IFJB SVNFCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSA0 IGF0IFJBSVNFCiAtLSBzaG91bGQgYmUgb2sKIFNFTEVDVCBWQVJJQUJMRSh2YXIxKSwgVkFSSUFC TEUodmFyMSk7CiAgdmFyMSB8IHZhcjEgCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwKaW5kZXggYjgzZjJhNmJiYi4uOGExMjJhZWIxZSAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtNTQ4LDEzICs1NDgsMTQgQEAgJCQ7 CiBEUk9QIFZBUklBQkxFIHZhcjE7CiBEUk9QIFZBUklBQkxFIHZhcjI7CiAKLS0tIENBTEwgc3Rh dGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0Ci0tLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRv IHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCistLSBDQUxMIHN0YXRl bWVudCBpcyBzdXBwb3J0ZWQKIENSRUFURSBWQVJJQUJMRSB2IGludDsKIAorTEVUIHYgPSAxOwor CiBDUkVBVEUgUFJPQ0VEVVJFIHAoYXJnIGludCkgQVMgJCQgQkVHSU4gUkFJU0UgTk9USUNFICcl JywgYXJnOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKIAotLS0gc2hvdWxkIG5vdCBjcmFzaCAo YnV0IGlzIG5vdCBzdXBwb3J0ZWQgeWV0KQorLS0gc2hvdWxkIHRvIHdvcmsKIENBTEwgcCh2KTsK IAogRE8gJCQgQkVHSU4gQ0FMTCBwKHYpOyBFTkQgJCQ7CkBAIC01NjIsMTMgKzU2MywxMiBAQCBE TyAkJCBCRUdJTiBDQUxMIHAodik7IEVORCAkJDsKIERST1AgUFJPQ0VEVVJFIHAoaW50KTsKIERS T1AgVkFSSUFCTEUgdjsKIAotLS0gRVhFQ1VURSBzdGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRlZCB5 ZXQKLS0tIHJlcXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIGV4 cHJlc3Npb24gZXhlY3V0b3IKKy0tIEVYRUNVVEUgc3RhdGVtZW50CiBDUkVBVEUgVkFSSUFCTEUg diBpbnQ7CiBMRVQgdiA9IDIwOwogUFJFUEFSRSBwdGVzdChpbnQpIEFTIFNFTEVDVCAkMTsKIAot LS0gc2hvdWxkIGZhaWwKKy0tIHNob3VsZCBiZSBvawogRVhFQ1VURSBwdGVzdCh2KTsKIAogREVB TExPQ0FURSBwdGVzdDsKLS0gCjIuNDcuMQoK --0000000000008953c9062b346e70 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250108-0015-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Disposition: attachment; filename="v20250108-0015-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5o4agjg7 RnJvbSBiYWVlNGY1NDg0NjY4ODEzODcxZmU0ODZkMTYzNjBkNzU0Y2QyZjFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowNTowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTUvMjJdIEltcGxlbWVudGF0aW9uIG9mIE5PVCBOVUxMIGFuZCBJTU1VVEFCTEUgY2xhdXNlcwoK QWxtb3N0IHRyaXZpYWwgcGF0Y2ggLSBwc3FsLCBwZ19kdW1wIHN1cHBvcnQKLS0tCiBkb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMjAgKysrCiBkb2Mvc3Jj L3NnbWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIGRvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAzMiArKystCiBzcmMvYmFj a2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDggKwogc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgIDY5ICsrKysrKysrLQogc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDQxICsrKy0tCiBz cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgICAgfCAgMTkgKystCiBz cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3Jj L2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgIDM2ICsrKysrCiBz cmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIHNy Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAxMiArLQogc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAgMzYgKystLS0KIC4uLi9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDE0NSArKysrKysrKysr KysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8 IDEyMiArKysrKysrKysrKysrKysKIDE2IGZpbGVzIGNoYW5nZWQsIDUxOCBpbnNlcnRpb25zKCsp LCA0MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGU4NjNjYjkxMGUuLjlhYjI0ZGY1 MjggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9jYXRhbG9ncy5zZ21sCkBAIC05ODQxLDYgKzk4NDEsMjYgQEAgU0NSQU0tU0hBLTI1NiQ8 cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFj ZWFibGU+JmwKIAogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+dmFybm90bnVsbDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUcnVlIGlmIHRoZSBzZXNzaW9uIHZhcmlhYmxl IGRvZXNuJ3QgYWxsb3cgbnVsbCB2YWx1ZXMuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGZhbHNlLgor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJpc2ltbXV0YWJsZTwvc3RydWN0ZmllbGQ+ IDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICBUcnVlIGlmIHRoZSB2YXJpYWJsZSBpcyA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFi bGUtaW1tdXRhYmxlIj5pbW11dGFibGU8L2xpbms+IChjYW5ub3QgYmUgbW9kaWZpZWQpLgorICAg ICAgIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGZhbHNlLgorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD52YXJlb3hhY3Rpb248L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFyPC90eXBlPgogICAgICAg IDxzdHJ1Y3RmaWVsZD52YXJ4YWN0ZW5kYWN0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2hhcjwv dHlwZT4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3BscGdzcWwuc2dtbCBiL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKaW5kZXggYmZiZmY5 YWI3NC4uZTcwNGUwNWE5OSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCkBAIC02MDQ0LDcgKzYwNDQsOCBAQCAkJCBM QU5HVUFHRSBwbHBnc3FsIFNUUklDVCBJTU1VVEFCTEU7CiAgICAgIFlvdSBjYW4gY29uc2lkZXIg dHJhbnNsYXRpbmcgYW4gT3JhY2xlIHBhY2thZ2UgaW50byBhIHNjaGVtYSBpbgogICAgICA8cHJv ZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+LiAgUGFja2FnZSBmdW5jdGlvbnMgYW5k IHByb2NlZHVyZXMKICAgICAgd291bGQgdGhlbiBiZWNvbWUgZnVuY3Rpb25zIGFuZCBwcm9jZWR1 cmVzIGluIHRoYXQgc2NoZW1hLCBhbmQgcGFja2FnZQotICAgICB2YXJpYWJsZXMgY291bGQgYmUg dHJhbnNsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxlcyBpbiB0aGF0IHNjaGVtYS4KKyAgICAgdmFy aWFibGVzIGNvdWxkIGJlIHRyYW5zbGF0ZWQgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgb3IgaW1tdXRh YmxlIHNlc3Npb24KKyAgICAgdmFyaWFibGVzIGluIHRoYXQgc2NoZW1hLgogICAgICAoc2VlIDx4 cmVmIGxpbmtlbmQ9ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyIvPikuCiAgICAgPC9wYXJhPgogICAg PC9zZWN0Mz4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNn bWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCmluZGV4IGU0ZDg4NTFj Y2IuLjNjM2U2ZDU1YjYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zhcmlh YmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAt MjYsOCArMjYsOCBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAogIDxyZWZzeW5vcHNpc2Rp dj4KIDxzeW5vcHNpcz4KLUNSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUg WyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlw ZTwvcmVwbGFjZWFibGU+IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQotICAgIFsgREVGQVVMVCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT4gXSBbIHsgT04gQ09NTUlU IERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBdCitDUkVBVEUgWyB7IFRFTVBPUkFS WSB8IFRFTVAgfSBdIFsgSU1NVVRBQkxFIF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IFsgQ09M TEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJs ZT4gXQorICAgIFsgTk9UIE5VTEwgXSBbIERFRkFVTFQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+IF0gWyB7IE9OIENPTU1JVCBEUk9QIHwg T04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIH0gXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lz ZGl2PgogIDxyZWZzZWN0MT4KQEAgLTY1LDYgKzY1LDIyIEBAIENSRUFURSBbIHsgVEVNUE9SQVJZ IHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwCiAKICAgPHZhcmlhYmxlbGlzdD4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0 ZXZhcmlhYmxlLWltbXV0YWJsZSI+CisgICAgPHRlcm0+PGxpdGVyYWw+SU1NVVRBQkxFPC9saXRl cmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIGFzc2ln bmVkIHZhbHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBub3QgYmUgY2hhbmdlZC4KKyAg ICAgIE9ubHkgaWYgdGhlIHNlc3Npb24gdmFyaWFibGUgZG9lc24ndCBoYXZlIGEgZGVmYXVsdCB2 YWx1ZSwgYSBzaW5nbGUKKyAgICAgIGluaXRpYWxpemF0aW9uIGlzIGFsbG93ZWQgdXNpbmcgdGhl IDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4gT25jZQorICAgICAgZG9uZSwgbm8gZnVy dGhlciBjaGFuZ2UgaXMgYWxsb3dlZCB1bnRpbCBlbmQgb2YgdHJhbnNhY3Rpb24KKyAgICAgIGlm IHRoZSBzZXNzaW9uIHZhcmlhYmxlIHdhcyBjcmVhdGVkIHdpdGggY2xhdXNlIDxsaXRlcmFsPk9O IFRSQU5TQUNUSU9OCisgICAgICBFTkQgUkVTRVQ8L2xpdGVyYWw+LCBvciB1bnRpbCByZXNldCBv ZiBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMgYnkKKyAgICAgIDxjb21tYW5kPkRJU0NBUkQgVkFSSUFC TEVTPC9jb21tYW5kPiwgb3IgdW50aWwgcmVzZXQgb2YgYWxsIHNlc3Npb24KKyAgICAgIG9iamVj dHMgYnkgY29tbWFuZCA8Y29tbWFuZD5ESVNDQVJEIEFMTDwvY29tbWFuZD4uCisgICAgIDwvcGFy YT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50 cnkgIGlkPSJzcWwtY3JlYXRldmFyaWFibGUtaWYtbm90LWV4aXN0cyI+CiAgICAgPHRlcm0+PGxp dGVyYWw+SUYgTk9UIEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpAQCAt MTA1LDYgKzEyMSwxOCBAQCBDUkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxF IFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icAogICAgIDwvbGlzdGl0ZW0+ CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZh cmlhYmxlLW5vdC1udWxsIj4KKyAgICA8dGVybT48bGl0ZXJhbD5OT1QgTlVMTDwvbGl0ZXJhbD48 L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSA8bGl0ZXJhbD5O T1QgTlVMTDwvbGl0ZXJhbD4gY2xhdXNlIGZvcmJpZHMgc2V0dGluZyB0aGUgc2Vzc2lvbgorICAg ICAgdmFyaWFibGUgdG8gYSBudWxsIHZhbHVlLiBBIHNlc3Npb24gdmFyaWFibGUgY3JlYXRlZCBh cyBOT1QgTlVMTAorICAgICAgc2hvdWxkIG5vdCB0byBoYXZlIGEgZGVjbGFyZWQgZGVmYXVsdCB2 YWx1ZSwgYW5kIGlmIHRoZSB2YXJpYWJsZQorICAgICAgaGFzIG5vdCBhc3NpZ25lZCB2YWx1ZSwg dGhlbiB0aGUgcmVhZGluZyBvZiB0aGlzIHZhcmlhYmxlIGZhaWxzLgorICAgICA8L3BhcmE+Cisg ICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5IGlk PSJzcWwtY3JlYXRldmFyaWFibGUtZGVmYXVsdCI+CiAgICAgPHRlcm0+PGxpdGVyYWw+REVGQVVM VCA8cmVwbGFjZWFibGU+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+PC90ZXJt PgogICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFy aWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCA4ZmJhNGNj NDkzLi4wYjYwOTNhMDBiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Zhcmlh YmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCkBAIC00MCw2ICs0 MCw4IEBAIHN0YXRpYyBPYmplY3RBZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2 YXJOYW1lLAogCQkJCQkJCQkJIE9pZCB2YXJPd25lciwKIAkJCQkJCQkJCSBPaWQgdmFyQ29sbGF0 aW9uLAogCQkJCQkJCQkJIGJvb2wgaWZfbm90X2V4aXN0cywKKwkJCQkJCQkJCSBib29sIG5vdF9u dWxsLAorCQkJCQkJCQkJIGJvb2wgaXNfaW1tdXRhYmxlLAogCQkJCQkJCQkJIE5vZGUgKnZhckRl ZmV4cHIsCiAJCQkJCQkJCQkgVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RFbmRBY3Rpb24p OwogCkBAIC01NSw2ICs1Nyw4IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1l LAogCQkJCU9pZCB2YXJPd25lciwKIAkJCQlPaWQgdmFyQ29sbGF0aW9uLAogCQkJCWJvb2wgaWZf bm90X2V4aXN0cywKKwkJCQlib29sIG5vdF9udWxsLAorCQkJCWJvb2wgaXNfaW1tdXRhYmxlLAog CQkJCU5vZGUgKnZhckRlZmV4cHIsCiAJCQkJVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RF bmRBY3Rpb24pCiB7CkBAIC0xMTcsNiArMTIxLDggQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNo YXIgKnZhck5hbWUsCiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFydHlwbW9kIC0gMV0gPSBJ bnQzMkdldERhdHVtKHZhclR5cG1vZCk7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyb3du ZXIgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyT3duZXIpOwogCXZhbHVlc1tBbnVtX3BnX3Zh cmlhYmxlX3ZhcmNvbGxhdGlvbiAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJDb2xsYXRpb24p OworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5vdG51bGwgLSAxXSA9IEJvb2xHZXREYXR1 bShub3RfbnVsbCk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyaXNpbW11dGFibGUgLSAx XSA9IEJvb2xHZXREYXR1bShpc19pbW11dGFibGUpOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxl X3ZhcnhhY3RlbmRhY3Rpb24gLSAxXSA9IENoYXJHZXREYXR1bSh2YXJYYWN0RW5kQWN0aW9uKTsK IAogCWlmICh2YXJEZWZleHByKQpAQCAtMjU5LDYgKzI2NSw4IEBAIENyZWF0ZVZhcmlhYmxlKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQkJICAg dmFyb3duZXIsCiAJCQkJCQkJICAgY29sbGF0aW9uLAogCQkJCQkJCSAgIHN0bXQtPmlmX25vdF9l eGlzdHMsCisJCQkJCQkJICAgc3RtdC0+bm90X251bGwsCisJCQkJCQkJICAgc3RtdC0+aXNfaW1t dXRhYmxlLAogCQkJCQkJCSAgIGNvb2tlZF9kZWZhdWx0LAogCQkJCQkJCSAgIHN0bXQtPlhhY3RF bmRBY3Rpb24pOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXgg ZDI3YjNkNjM3Ni4uNGYyODRjYzNhOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwpAQCAtOTIsNiArOTIsOSBAQCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVEYXRhCiAJ dm9pZAkgICAqZG9tYWluX2NoZWNrX2V4dHJhOwogCUxvY2FsVHJhbnNhY3Rpb25JZCBkb21haW5f Y2hlY2tfZXh0cmFfbHhpZDsKIAorCWJvb2wJCW5vdF9udWxsOworCWJvb2wJCWlzX2ltbXV0YWJs ZTsKKwogCWJvb2wJCXJlc2V0X2F0X2VveDsKIAogCS8qCkBAIC0xMTAsNiArMTEzLDkgQEAgdHlw ZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlRGF0YQogCWJvb2wJCWlzX3ZhbGlkOwogCiAJdWludDMyCQlo YXNodmFsdWU7CQkvKiB1c2VkIGZvciBwYWlyaW5nIHNpbnZhbCBtZXNzYWdlICovCisKKwkvKiB0 cnVlLCB3aGVuIHRoZSB2YWx1ZSBpcyBhbHJlYWR5IHNldCwgYW5kIGNhbm5vdCBiZSBjaGFuZ2Vk IG1vcmUgKi8KKwlib29sCQlwcm90ZWN0X3ZhbHVlOwogfSBTVmFyaWFibGVEYXRhOwogCiB0eXBl ZGVmIFNWYXJpYWJsZURhdGEgKlNWYXJpYWJsZTsKQEAgLTU3MSw2ICs1NzcsMjMgQEAgZXZhbF9h c3NpZ25fZGVmZXhwcihTVmFyaWFibGUgc3ZhciwgSGVhcFR1cGxlIHR1cCkKIAogCQkJTWVtb3J5 Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7CiAJCX0KKwkJZWxzZQorCQl7CisJCQkvKgorCQkJICog UmFpc2UgYW4gZXJyb3IgaWYgdGhpcyBpcyBhIE5PVCBOVUxMIHZhcmlhYmxlIGJ1dCB0aGUgcmVz dWx0IG9mCisJCQkgKiBERUZBVUxUIGV4cHJlc3Npb24gaXMgTlVMTC4KKwkJCSAqLworCQkJaWYg KHN2YXItPm5vdF9udWxsKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJD T0RFX05VTExfVkFMVUVfTk9UX0FMTE9XRUQpLAorCQkJCQkJIGVycm1zZygibnVsbCB2YWx1ZSBp cyBub3QgYWxsb3dlZCBmb3IgTk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIiLAor CQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNl KHN2YXItPnZhcmlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoc3Zhci0+ dmFyaWQpKSwKKwkJCQkJCSBlcnJkZXRhaWwoIlRoZSByZXN1bHQgb2YgREVGQVVMVCBleHByZXNz aW9uIGlzIE5VTEwuIikpKTsKKwkJfQorCisJCWlmIChzdmFyLT5pc19pbW11dGFibGUpCisJCQlz dmFyLT5wcm90ZWN0X3ZhbHVlID0gdHJ1ZTsKIAogCQlGcmVlRXhlY3V0b3JTdGF0ZShlc3RhdGUp OwogCX0KQEAgLTYwMSw2ICs2MjQsOSBAQCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJs ZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3JpdGUpCiAKIAlnZXRfdHlwbGVuYnl2YWwoc3Zh ci0+dHlwaWQsICZzdmFyLT50eXBsZW4sICZzdmFyLT50eXBieXZhbCk7CiAKKwlzdmFyLT5ub3Rf bnVsbCA9IHZhcmZvcm0tPnZhcm5vdG51bGw7CisJc3Zhci0+aXNfaW1tdXRhYmxlID0gdmFyZm9y bS0+dmFyaXNpbW11dGFibGU7CisKIAlzdmFyLT5pc19kb21haW4gPSAoZ2V0X3R5cHR5cGUodmFy Zm9ybS0+dmFydHlwZSkgPT0gVFlQVFlQRV9ET01BSU4pOwogCXN2YXItPmRvbWFpbl9jaGVja19l eHRyYSA9IE5VTEw7CiAJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQgPSBJbnZhbGlkTG9j YWxUcmFuc2FjdGlvbklkOwpAQCAtNjMwLDkgKzY1NiwzMSBAQCBzZXR1cF9zZXNzaW9uX3Zhcmlh YmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3JpdGUpCiAJc3Zhci0+aGFz aHZhbHVlID0gR2V0U3lzQ2FjaGVIYXNoVmFsdWUxKFZBUklBQkxFT0lELAogCQkJCQkJCQkJCQlP YmplY3RJZEdldERhdHVtKHZhcmlkKSk7CiAKLQlpZiAoIWlzX3dyaXRlKQorCXN2YXItPnByb3Rl Y3RfdmFsdWUgPSBmYWxzZTsKKworCS8qCisJICogV2hlbiB0aGUgdmFyaWFibGUgaXMgbWFya2Vk IGFzIElNTVVUQUJMRSwgd2UgcHJlZmVyIHRvIGV2YWx1YXRlCisJICogcG9zc2libGUgREVGQVVM VCBiZWZvcmUgd3JpdGUgb3AuIEluIHRoaXMgY2FzZSB3ZSB3YW50IHRvIHByb3RlY3QKKwkgKiBk ZWZhdWx0IHZhbHVlIGFnYWluc3QgYW55IG92ZXJ3cml0ZS4KKwkgKi8KKwlpZiAoIWlzX3dyaXRl IHx8CisJCXN2YXItPmlzX2ltbXV0YWJsZSkKKwl7CiAJCWV2YWxfYXNzaWduX2RlZmV4cHIoc3Zh ciwgdHVwKTsKIAorCQkvKgorCQkgKiBSYWlzZSBhbiBlcnJvciBpZiB0aGlzIGlzIGEgTk9UIE5V TEwgdmFyaWFibGUgd2l0aG91dCBkZWZhdWx0CisJCSAqIGV4cHJlc3Npb24uCisJCSAqLworCQlp ZiAoc3Zhci0+aXNudWxsICYmIHN2YXItPm5vdF9udWxsKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJKGVycmNvZGUoRVJSQ09ERV9OVUxMX1ZBTFVFX05PVF9BTExPV0VEKSwKKwkJCQkJIGVycm1z ZygibnVsbCB2YWx1ZSBpcyBub3QgYWxsb3dlZCBmb3IgTk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJs ZSBcIiVzLiVzXCIiLAorCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KHZhcmlkKSksCisJCQkJCSBlcnJkZXRhaWwoIlRoZSBzZXNzaW9uIHZhcmlhYmxlIHdhcyBub3Qg aW5pdGlhbGl6ZWQgeWV0LiIpKSk7CisJfQorCiAJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CiB9CiAK QEAgLTY1Miw2ICs3MDAsMjEgQEAgc2V0X3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIs IERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAlBc3NlcnQoc3Zhcik7CiAJQXNzZXJ0KCFpc251 bGwgfHwgdmFsdWUgPT0gKERhdHVtKSAwKTsKIAorCWlmIChzdmFyLT5wcm90ZWN0X3ZhbHVlKQor CQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRVJST1JfSU5fQVNTSUdOTUVO VCksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgaXMgZGVjbGFyZWQg SU1NVVRBQkxFIiwKKwkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWUoc3Zhci0+dmFyaWQpKSkpOworCisJLyogZG9uJ3QgYWxsb3cgYXNzaWdubWVudCBvZiBudWxs IHRvIE5PVCBOVUxMIHZhcmlhYmxlICovCisJaWYgKGlzbnVsbCAmJiBzdmFyLT5ub3RfbnVsbCkK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX05VTExfVkFMVUVfTk9UX0FM TE9XRUQpLAorCQkJCSBlcnJtc2coIm51bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5PVCBO VUxMIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIiwKKwkJCQkJCWdldF9uYW1lc3BhY2VfbmFt ZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJCQkJCWdl dF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoc3Zhci0+dmFyaWQpKSkpOworCiAJLyoKIAkgKiBVc2Ug dHlwYnl2YWwsIHR5cGJ5bGVuIGZyb20gc2Vzc2lvbiB2YXJpYWJsZSBvbmx5IHdoZW4gdGhleSBh cmUKIAkgKiB0cnVzdHdvcnRoeSAodGhlIGludmFsaWRhdGlvbiBtZXNzYWdlIHdhcyBub3QgYWNj ZXB0ZWQgZm9yIHRoaXMKQEAgLTY5Miw2ICs3NTUsMTAgQEAgc2V0X3Nlc3Npb25fdmFyaWFibGUo U1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAogCXN2YXItPnZhbHVl ID0gbmV3dmFsOwogCXN2YXItPmlzbnVsbCA9IGlzbnVsbDsKKworCS8qIGRvbid0IGFsbG93IG1v cmUgY2hhbmdlcyBvZiB2YWx1ZSB3aGVuIHZhcmlhYmxlIGlzIElNTVVUQUJMRSAqLworCWlmIChz dmFyLT5pc19pbW11dGFibGUpCisJCXN2YXItPnByb3RlY3RfdmFsdWUgPSB0cnVlOwogfQogCiAv KgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKaW5kZXggODQxZDlmOGRmZC4uYTU5ZjY4NTBiNyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBA IC02NjcsNiArNjY3LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNo YXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJCQlqc29uX29iamVj dF9jb25zdHJ1Y3Rvcl9udWxsX2NsYXVzZV9vcHQKIAkJCQlqc29uX2FycmF5X2NvbnN0cnVjdG9y X251bGxfY2xhdXNlX29wdAogCisldHlwZSA8Ym9vbGVhbj4JCU9wdE5vdE51bGwgT3B0SW1tdXRh YmxlCiAKIC8qCiAgKiBOb24ta2V5d29yZCB0b2tlbiB0eXBlcy4gIFRoZXNlIGFyZSBoYXJkLXdp cmVkIGludG8gdGhlICJmbGV4IiBsZXhlci4KQEAgLTUyMzAsMjcgKzUyMzEsMzEgQEAgY3JlYXRl X2V4dGVuc2lvbl9vcHRfaXRlbToKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogQ3JlYXRlU2Vz c2lvblZhclN0bXQ6Ci0JCQlDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBv cHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdFNlc3Npb25WYXJEZWZFeHByIFhh Y3RFbmRBY3Rpb25PcHRpb24KKwkJCUNSRUFURSBPcHRUZW1wIE9wdEltbXV0YWJsZSBWQVJJQUJM RSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdE5v dE51bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJ CQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3Rt dCk7Ci0JCQkJCSQ0LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOwotCQkJCQluLT52YXJpYWJsZSA9ICQ0 OwotCQkJCQluLT50eXBlTmFtZSA9ICQ2OwotCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVD bGF1c2UgKikgJDc7Ci0JCQkJCW4tPmRlZmV4cHIgPSAkODsKLQkJCQkJbi0+WGFjdEVuZEFjdGlv biA9ICQ5OworCQkJCQkkNS0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+aXNfaW1tdXRh YmxlID0gJDM7CisJCQkJCW4tPnZhcmlhYmxlID0gJDU7CisJCQkJCW4tPnR5cGVOYW1lID0gJDc7 CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkODsKKwkJCQkJbi0+bm90 X251bGwgPSAkOTsKKwkJCQkJbi0+ZGVmZXhwciA9ICQxMDsKKwkJCQkJbi0+WGFjdEVuZEFjdGlv biA9ICQxMTsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2Rl ICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBJRl9QIE5PVCBFWElT VFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHRT ZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQl8IENSRUFURSBPcHRUZW1w IE9wdEltbXV0YWJsZSBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0 X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHROb3ROdWxsIE9wdFNlc3Npb25WYXJE ZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KIAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJT dG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOwotCQkJCQkkNy0+cmVscGVy c2lzdGVuY2UgPSAkMjsKLQkJCQkJbi0+dmFyaWFibGUgPSAkNzsKLQkJCQkJbi0+dHlwZU5hbWUg PSAkOTsKLQkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQxMDsKLQkJCQkJ bi0+ZGVmZXhwciA9ICQxMTsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMjsKKwkJCQkJJDgt PnJlbHBlcnNpc3RlbmNlID0gJDI7CisJCQkJCW4tPmlzX2ltbXV0YWJsZSA9ICQzOworCQkJCQlu LT52YXJpYWJsZSA9ICQ4OworCQkJCQluLT50eXBlTmFtZSA9ICQxMDsKKwkJCQkJbi0+Y29sbENs YXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQxMTsKKwkJCQkJbi0+bm90X251bGwgPSAkMTI7CisJ CQkJCW4tPmRlZmV4cHIgPSAkMTM7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTQ7CiAJCQkJ CW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQpA QCAtNTI3MCw2ICs1Mjc1LDE0IEBAIFhhY3RFbmRBY3Rpb25PcHRpb246ICBPTiBDT01NSVQgRFJP UAkJCQl7ICQkID0gVkFSSUFCTEVfWEFDVEVORF9EUk9QOyB9CiAJCTsKIAogCitPcHROb3ROdWxs OiBOT1QgTlVMTF9QCQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCAvKiBFTVBUWSAqLwkJCQkJ CQl7ICQkID0gZmFsc2U7IH0KKwkJOworCitPcHRJbW11dGFibGU6IElNTVVUQUJMRQkJCQkJCQkJ eyAkJCA9IHRydWU7IH0KKwkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAkJCA9IGZhbHNlOyB9CisJ CTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgRVhURU5TSU9OIG5hbWUg VVBEQVRFIFsgVE8gdmVyc2lvbiBdCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBhNmMzM2QyZWRlLi5iNGM2MWRh MTg4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmMKQEAgLTU0NDAsNiArNTQ0MCw4IEBAIGdldFZhcmlhYmxlcyhBcmNo aXZlICpmb3V0KQogCWludAkJCWlfdmFyeGFjdGVuZGFjdGlvbjsKIAlpbnQJCQlpX3Zhcm93bmVy OwogCWludAkJCWlfdmFyY29sbGF0aW9uOworCWludAkJCWlfdmFybm90bnVsbDsKKwlpbnQJCQlp X3ZhcmlzaW1tdXRhYmxlOwogCWludAkJCWlfdmFyYWNsOwogCWludAkJCWlfYWNsZGVmYXVsdDsK IAlpbnQJCQlpLApAQCAtNTQ2Miw2ICs1NDY0LDggQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZv dXQpCiAJCQkJCSAgIiAgICAgICAgICAgIFRIRU4gdi52YXJjb2xsYXRpb25cbiIKIAkJCQkJICAi ICAgICAgICAgICAgRUxTRSAwXG4iCiAJCQkJCSAgIiAgICAgICBFTkQgQVMgdmFyY29sbGF0aW9u LFxuIgorCQkJCQkgICIgICAgICAgdi52YXJub3RudWxsLFxuIgorCQkJCQkgICIgICAgICAgdi52 YXJpc2ltbXV0YWJsZSxcbiIKIAkJCQkJICAiICAgICAgIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIo di52YXJkZWZleHByLDApIGFzIHZhcmRlZmV4cHIsXG4iCiAJCQkJCSAgIiAgICAgICB2LnZhcm93 bmVyLCB2LnZhcmFjbCxcbiIKIAkJCQkJICAiICAgICAgIGFjbGRlZmF1bHQoJ1YnLCB2LnZhcm93 bmVyKSBBUyBhY2xkZWZhdWx0XG4iCkBAIC01NDgyLDYgKzU0ODYsOCBAQCBnZXRWYXJpYWJsZXMo QXJjaGl2ZSAqZm91dCkKIAlpX3ZhcmRlZmV4cHIgPSBQUWZudW1iZXIocmVzLCAidmFyZGVmZXhw ciIpOwogCWlfdmFyeGFjdGVuZGFjdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJ4YWN0ZW5kYWN0 aW9uIik7CiAJaV92YXJjb2xsYXRpb24gPSBQUWZudW1iZXIocmVzLCAidmFyY29sbGF0aW9uIik7 CisJaV92YXJub3RudWxsID0gUFFmbnVtYmVyKHJlcywgInZhcm5vdG51bGwiKTsKKwlpX3Zhcmlz aW1tdXRhYmxlID0gUFFmbnVtYmVyKHJlcywgInZhcmlzaW1tdXRhYmxlIik7CiAKIAlpX3Zhcm93 bmVyID0gUFFmbnVtYmVyKHJlcywgInZhcm93bmVyIik7CiAJaV92YXJhY2wgPSBQUWZudW1iZXIo cmVzLCAidmFyYWNsIik7CkBAIC01NTA4LDYgKzU1MTQsOCBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2 ZSAqZm91dCkKIAkJCXBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJ4YWN0ZW5kYWN0 aW9uKSk7CiAKIAkJdmFyaW5mb1tpXS52YXJjb2xsYXRpb24gPSBhdG9vaWQoUFFnZXR2YWx1ZShy ZXMsIGksIGlfdmFyY29sbGF0aW9uKSk7CisJCXZhcmluZm9baV0udmFybm90bnVsbCA9ICooUFFn ZXR2YWx1ZShyZXMsIGksIGlfdmFybm90bnVsbCkpID09ICd0JzsKKwkJdmFyaW5mb1tpXS52YXJp c2ltbXV0YWJsZSA9ICooUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyaXNpbW11dGFibGUpKSA9PSAn dCc7CiAKIAkJdmFyaW5mb1tpXS5kYWNsLmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywg aSwgaV92YXJhY2wpKTsKIAkJdmFyaW5mb1tpXS5kYWNsLmFjbGRlZmF1bHQgPSBwZ19zdHJkdXAo UFFnZXR2YWx1ZShyZXMsIGksIGlfYWNsZGVmYXVsdCkpOwpAQCAtNTU1NCw3ICs1NTYyLDkgQEAg ZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykK IAljb25zdCBjaGFyICp2YXJ0eXBuYW1lOwogCWNvbnN0IGNoYXIgKnZhcmRlZmV4cHI7CiAJY29u c3QgY2hhciAqdmFyeGFjdGVuZGFjdGlvbjsKKwljb25zdCBjaGFyICp2YXJpc2ltbXV0YWJsZTsK IAlPaWQJCQl2YXJjb2xsYXRpb247CisJYm9vbAkJdmFybm90bnVsbDsKIAogCS8qIHNraXAgaWYg bm90IHRvIGJlIGR1bXBlZCAqLwogCWlmICghdmFyaW5mby0+ZG9iai5kdW1wIHx8ICFkb3B0LT5k dW1wU2NoZW1hKQpAQCAtNTU2OCwxMiArNTU3OCwxNCBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAq Zm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCXZhcmRlZmV4cHIgPSB2YXJpbmZv LT52YXJkZWZleHByOwogCXZhcnhhY3RlbmRhY3Rpb24gPSB2YXJpbmZvLT52YXJ4YWN0ZW5kYWN0 aW9uOwogCXZhcmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKKwl2YXJub3RudWxs ID0gdmFyaW5mby0+dmFybm90bnVsbDsKKwl2YXJpc2ltbXV0YWJsZSA9IHZhcmluZm8tPnZhcmlz aW1tdXRhYmxlID8gIklNTVVUQUJMRSAiIDogIiI7CiAKIAlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxx LCAiRFJPUCBWQVJJQUJMRSAlcztcbiIsCiAJCQkJCSAgcXVhbHZhcm5hbWUpOwogCi0JYXBwZW5k UFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgVkFSSUFCTEUgJXMgQVMgJXMiLAotCQkJCQkgIHF1 YWx2YXJuYW1lLCB2YXJ0eXBuYW1lKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFU RSAlc1ZBUklBQkxFICVzIEFTICVzIiwKKwkJCQkJICB2YXJpc2ltbXV0YWJsZSwgcXVhbHZhcm5h bWUsIHZhcnR5cG5hbWUpOwogCiAJaWYgKE9pZElzVmFsaWQodmFyY29sbGF0aW9uKSkKIAl7CkBA IC01NTg1LDYgKzU1OTcsOSBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFy aWFibGVJbmZvICp2YXJpbmZvKQogCQkJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY29sbCkp OwogCX0KIAorCWlmICh2YXJub3RudWxsKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiBO T1QgTlVMTCIpOworCiAJaWYgKHZhcmRlZmV4cHIpCiAJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5 LCAiIERFRkFVTFQgJXMiLAogCQkJCQkJICB2YXJkZWZleHByKTsKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDI2 MTM3MDBlMTkuLjA1NjI0OTdmMzQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNzI1LDYgKzcyNSw4IEBAIHR5 cGVkZWYgc3RydWN0IF9WYXJpYWJsZUluZm8KIAljaGFyCSAgICppbml0cnZhcmFjbDsKIAlPaWQJ CQl2YXJjb2xsYXRpb247CiAJY29uc3QgY2hhciAqcm9sbmFtZTsJCS8qIG5hbWUgb2Ygb3duZXIs IG9yIGVtcHR5IHN0cmluZyAqLworCWJvb2wJCXZhcm5vdG51bGw7CisJYm9vbAkJdmFyaXNpbW11 dGFibGU7CiB9IFZhcmlhYmxlSW5mbzsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVt cC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKaW5k ZXggZmNmNjg5NjZiMC4uMWJiYTY4ZTZhZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3Qv MDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAg LTQwNDEsNiArNDA0MSw0MiBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdDUkVBVEUg SU1NVVRBQkxFIFZBUklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+ IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9v cmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxF IGR1bXBfdGVzdC52YXJpYWJsZTUgQVMgaW50ZWdlcicsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlc UUNSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlNSBBUyBpbnRlZ2Vy O1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVt YV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4gewor CQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1l bnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCisJJ0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdGVz dF92YXJpYWJsZSBOT1QgTlVMTCBERUZBVUxUJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAor CQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIg PT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSBkdW1w X3Rlc3QudmFyaWFibGU3IEFTIGludGVnZXIgTk9UIE5VTEwgREVGQVVMVCAxMCcsCisJCXJlZ2V4 cCA9PiBxci9eCisJCQlcUUNSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlh YmxlNyBBUyBpbnRlZ2VyIE5PVCBOVUxMIERFRkFVTFQgMTA7XEUveG0sCisJCWxpa2UgPT4gewor CQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3By ZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9z Y2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0s CisKIAknQ1JFQVRFIFZJRVcgdGVzdF92aWV3JyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA2MSwK IAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFZJRVcgZHVtcF90ZXN0LnRlc3RfdmlldwpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpp bmRleCAyOTBkYzYyNGZlLi43NGUxYmM1NTc4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVz Y3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtNTI1MCw3ICs1MjUwLDcg QEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJUFFF eHBCdWZmZXJEYXRhIGJ1ZjsKIAlQR3Jlc3VsdCAgICpyZXM7CiAJcHJpbnRRdWVyeU9wdCBteW9w dCA9IHBzZXQucG9wdDsKLQlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0g e2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlfTsKIAogCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTgwMDAwKQogCXsKQEAgLTUy NzEsNiArNTI3MSw4IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2 ZXJib3NlKQogCQkJCQkgICIgIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdf Y29sbGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlwZSBidFxuIgogCQkJCQkgICIgICBXSEVSRSBj Lm9pZCA9IHYudmFyY29sbGF0aW9uIEFORCBidC5vaWQgPSB2LnZhcnR5cGUgQU5EIHYudmFyY29s bGF0aW9uIDw+IGJ0LnR5cGNvbGxhdGlvbikgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIHBnX2Nh dGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFyb3duZXIpIGFzIFwiJXNcIixcbiIKKwkJCQkJICAi ICBOT1Qgdi52YXJub3RudWxsIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBOT1Qgdi52YXJpc2lt bXV0YWJsZSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcih2 LnZhcmRlZmV4cHIsIDApIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBDQVNFIHYudmFyeGFjdGVu ZGFjdGlvblxuIgogCQkJCQkgICIgICAgV0hFTiAnZCcgVEhFTiAnT04gQ09NTUlUIERST1AnXG4i CkBAIC01MjgxLDYgKzUyODMsOCBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4s IGJvb2wgdmVyYm9zZSkKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlR5cGUiKSwKIAkJCQkJICBnZXR0 ZXh0X25vb3AoIkNvbGxhdGlvbiIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSwKKwkJ CQkJICBnZXR0ZXh0X25vb3AoIk51bGxhYmxlIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJNdXRh YmxlIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJEZWZhdWx0IiksCiAJCQkJCSAgZ2V0dGV4dF9u b29wKCJUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24iKSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpp bmRleCAyNDlmNjE4NzhkLi5kNjgzOGFlM2MxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0x MjczLDYgKzEyNzMsOCBAQCBzdGF0aWMgY29uc3QgcGdzcWxfdGhpbmdfdCB3b3Jkc19hZnRlcl9j cmVhdGVbXSA9IHsKIAl7IkZPUkVJR04gVEFCTEUiLCBOVUxMLCBOVUxMLCBOVUxMfSwKIAl7IkZV TkNUSU9OIiwgTlVMTCwgTlVMTCwgUXVlcnlfZm9yX2xpc3Rfb2ZfZnVuY3Rpb25zfSwKIAl7IkdS T1VQIiwgUXVlcnlfZm9yX2xpc3Rfb2Zfcm9sZXN9LAorCXsiSU1NVVRBQkxFIFZBUklBQkxFIiwg TlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgVEhJTkdfTk9fRFJPUCB8IFRISU5HX05PX0FMVEVSfSwg LyogZm9yIENSRUFURSBJTU1VVEFCTEUKKwkJCQkJCQkJCQkJCQkJCQkJCQkJCSAqIFZBUklBQkxF IC4uLiAqLwogCXsiSU5ERVgiLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2ZfaW5kZXhl c30sCiAJeyJMQU5HVUFHRSIsIFF1ZXJ5X2Zvcl9saXN0X29mX2xhbmd1YWdlc30sCiAJeyJMQVJH RSBPQkpFQ1QiLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBUSElOR19OT19DUkVBVEUgfCBUSElO R19OT19EUk9QfSwKQEAgLTM2MDgsNyArMzYxMCw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGlu dCBwYXR0ZXJuX2lkLAogLyogQ1JFQVRFIFRBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVB VEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSAiQ1JFQVRFIFRF TVAvVEVNUE9SQVJZIiB3aXRoIHRoZSBwb3NzaWJsZSB0ZW1wIG9iamVjdHMgKi8KIAllbHNlIGlm IChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlRFTVB8VEVNUE9SQVJZIikpCi0JCUNPTVBMRVRFX1dJ VEgoIlNFUVVFTkNFIiwgIlRBQkxFIiwgIlZBUklBQkxFIiwgIlZJRVciKTsKKwkJQ09NUExFVEVf V0lUSCgiSU1NVVRBQkxFIFZBUklBQkxFIiwgIlNFUVVFTkNFIiwgIlRBQkxFIiwgIlZBUklBQkxF IiwKKwkJCQkJICAiVklFVyIpOwogCS8qIENvbXBsZXRlICJDUkVBVEUgVU5MT0dHRUQiIHdpdGgg VEFCTEUgb3IgU0VRVUVOQ0UgKi8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlVO TE9HR0VEIikpCiAJCUNPTVBMRVRFX1dJVEgoIlRBQkxFIiwgIlNFUVVFTkNFIik7CkBAIC0zOTYw LDcgKzM5NjMsOCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIC8qIENS RUFURSBWQVJJQUJMRSAtLS0gaXMgYWxsb3dlZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNl IFRhaWxNYXRjaGVzICovCiAJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRo IEFTICovCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJWQVJJQUJMRSIsIE1hdGNo QW55KSB8fAotCQkJIFRhaWxNYXRjaGVzKCJURU1QfFRFTVBPUkFSWSIsICJWQVJJQUJMRSIsIE1h dGNoQW55KSkKKwkJCSBUYWlsTWF0Y2hlcygiVEVNUHxURU1QT1JBUlkiLCAiVkFSSUFCTEUiLCBN YXRjaEFueSkgfHwKKwkJCSBUYWlsTWF0Y2hlcygiSU1NVVRBQkxFIiwgIlZBUklBQkxFIiwgTWF0 Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJBUyIpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJW QVJJQUJMRSIsIE1hdGNoQW55LCAiQVMiKSkKIAkJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxF IDxuYW1lPiB3aXRoIEFTIHR5cGVzICovCkBAIC00NjIwLDYgKzQ2MjQsMTAgQEAgbWF0Y2hfcHJl dmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkZST00i LCAiU0VSVkVSIiwgTWF0Y2hBbnksICJJTlRPIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRI KCJPUFRJT05TICgiKTsKIAorLyogSU1NVVRBQkxFIC0tIGNhbiBiZSBleHBlbmQgdG8gSU1NVVRB QkxFIFZBUklBQkxFICovCisJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJJTU1VVEFC TEUiKSkKKwkJQ09NUExFVEVfV0lUSCgiVkFSSUFCTEUiKTsKKwogLyogSU5TRVJUIC0tLSBjYW4g YmUgaW5zaWRlIEVYUExBSU4sIFJVTEUsIGV0YyAqLwogCS8qIENvbXBsZXRlIE5PVCBNQVRDSEVE IFRIRU4gSU5TRVJUICovCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIk5PVCIsICJNQVRDSEVEIiwg IlRIRU4iLCAiSU5TRVJUIikpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Zh cmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXggMDlkZDQ0 YTQ0ZS4uY2YyMWUwNDI2YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJp YWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaApAQCAtNTYsNiAr NTYsMTIgQEAgQ0FUQUxPRyhwZ192YXJpYWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkKIAkv KiB0eXBtb2QgZm9yIHZhcmlhYmxlJ3MgdHlwZSAqLwogCWludDMyCQl2YXJ0eXBtb2QgQktJX0RF RkFVTFQoLTEpOwogCisJLyogZG9uJ3QgYWxsb3cgTlVMTCAqLworCWJvb2wJCXZhcm5vdG51bGwg QktJX0RFRkFVTFQoZik7CisKKwkvKiBkb24ndCBhbGxvdyBjaGFuZ2VzICovCisJYm9vbAkJdmFy aXNpbW11dGFibGUgQktJX0RFRkFVTFQoZik7CisKIAkvKiBhY3Rpb24gb24gdHJhbnNhY3Rpb24g ZW5kICovCiAJY2hhcgkJdmFyeGFjdGVuZGFjdGlvbiBCS0lfREVGQVVMVChuKTsKIApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oCmluZGV4IGFjYzdkNzNmYjguLjFhN2Y0NDNjZTcgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmgKQEAgLTM0ODcsNiArMzQ4Nyw4IEBAIHR5cGVkZWYgc3RydWN0IENyZWF0ZVNlc3Np b25WYXJTdG10CiAJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkvKiB0aGUgdHlwZSBvZiB2YXJpYWJs ZSAqLwogCUNvbGxhdGVDbGF1c2UgKmNvbGxDbGF1c2U7CiAJYm9vbAkJaWZfbm90X2V4aXN0czsJ LyogZG8gbm90aGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cyAqLworCWJvb2wJCW5vdF9udWxsOwkJ LyogZGlzYWxsb3cgbnVsbHMgKi8KKwlib29sCQlpc19pbW11dGFibGU7CS8qIGRvbid0IGFsbG93 IGNoYW5nZXMgKi8KIAlOb2RlCSAgICpkZWZleHByOwkJLyogZGVmYXVsdCBleHByZXNzaW9uICov CiAJY2hhcgkJWGFjdEVuZEFjdGlvbjsJLyogb24gdHJhbnNhY3Rpb24gZW5kIGFjdGlvbiAqLwog fSBDcmVhdGVTZXNzaW9uVmFyU3RtdDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CmluZGV4 IGJjN2I2MGE5N2UuLjc3YTdiZjQ1YzggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dApA QCAtNTkzNSwyMCArNTkzNSwyMCBAQCBDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVy OwogU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIHZhcmNoYXIgQ09MTEFURSAiQyI7CiBcZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFy aWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwg ICAgICAgICBPd25lciAgICAgICAgICB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rp b24gfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAg ICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2 YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24g fCAgICAgICAgIE93bmVyICAgICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8 IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRp b24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQor IHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogR1JBTlQg U0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOwogQ09NTUVOVCBPTiBWQVJJQUJMRSB2 YXIxIElTICdzb21lIGRlc2NyaXB0aW9uJzsKIFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAg ICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgRGVmYXVsdCB8IFRyYW5z YWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAg ICAgICAgICAgICAgICB8ICAgRGVzY3JpcHRpb24gICAgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQotIHB1YmxpYyB8IHZh cjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXIgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJs ZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgotICAg ICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVn cmVzc192YXJpYWJsZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1l IHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAg IHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlv biB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAg RGVzY3JpcHRpb24gICAgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8 IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVf b3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVy K3wgc29tZSBkZXNjcmlwdGlvbgorICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAg fCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJs ZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIERST1AgVkFSSUFC TEUgdmFyMTsKQEAgLTY0MTYsOSArNjQxNiw5IEBAIExpc3Qgb2Ygc2NoZW1hcwogKDAgcm93cykK IAogXGRWICJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBP d25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0t LS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8 IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24g CistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQog CiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY1 OTEsOSArNjU5MSw5IEBAIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQg bmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmluc3RhCiBcZHkgIm5vLnN1Y2guc2No ZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRv byBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJp Z2dlciIKIFxkViAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8 IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBh Y3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUg fCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFu c2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggY3VycmVudCBkYXRhYmFz ZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY3MzAsOSArNjczMCw5IEBA IExpc3Qgb2YgdGV4dCBzZWFyY2ggdGVtcGxhdGVzCiAoMCByb3dzKQogCiBcZFYgcmVncmVzc2lv bi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBD b2xsYXRpb24gfCBPd25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0t LS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRp b24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFs IGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0 ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCBmYTk2MzA0MDAyLi4wOWJiNGIyZmIyIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAt MjQ1MiwzICsyNDUyLDE0OCBAQCBTRUxFQ1QgdmFyMTsKIAogRFJPUCBWQVJJQUJMRSB2YXIxOwog RFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7CistLSB0ZXN0IE5PVCBOVUxMCistLSBzaG91bGQg YmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBOT1QgTlVMTDsKKy0tIHNob3VsZCB0 byBmYWlsCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBpcyBub3QgYWxsb3dlZCBm b3IgTk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiCitERVRBSUw6ICBUaGUg c2Vzc2lvbiB2YXJpYWJsZSB3YXMgbm90IGluaXRpYWxpemVkIHlldC4KKy0tc2hvdWxkIGJlIG9r CitMRVQgdmFyMSA9IDEwOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygx IHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyBpbnQgTk9UIE5VTEwgREVGQVVMVCAwOworLS1zaG91bGQgYmUgb2sKK1NF TEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKKy0tIHNob3VsZCBi ZSBvaworTEVUIHZhcjEgPSAxMDsKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEw CisoMSByb3cpCisKK0RJU0NBUkQgVkFSSUFCTEVTOworLS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2 YXIxID0gTlVMTDsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBpcyBub3QgYWxsb3dlZCBmb3IgTk9UIE5V TEwgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiCitEUk9QIFZBUklBQkxFIHZhcjE7Cist LSB0ZXN0IE5PVCBOVUxMCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkK K1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSRVRVUk4gTlVMTDsKK0VORDsKKyQkIExBTkdV QUdFIHBscGdzcWw7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgTk9UIE5VTEwgREVGQVVM VCB2YXJ0ZXN0X2Z4KCk7CistLSBzaG91bGQgdG8gZmFpbAorU0VMRUNUIHZhcjE7CitFUlJPUjog IG51bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5PVCBOVUxMIHNlc3Npb24gdmFyaWFibGUg InB1YmxpYy52YXIxIgorREVUQUlMOiAgVGhlIHJlc3VsdCBvZiBERUZBVUxUIGV4cHJlc3Npb24g aXMgTlVMTC4KK0RJU0NBUkQgVkFSSUFCTEVTOworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9 IDEwOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworQ1JF QVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFydGVzdF9meCgpCitSRVRVUk5TIGludCBBUyAkJAor QkVHSU4KKyAgUkVUVVJOIDA7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworRElTQ0FSRCBW QVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0K KyAgICAwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gdmFy dGVzdF9meCgpOworLS0gdGVzdCBJTU1VVEJMRQorQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSB2 YXIxIEFTIGludDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0t LQorICAgICAKKygxIHJvdykKKworLS0gZmlyc3Qgd3JpdGUgc2hvdWxkIG9rCistLSBzaG91bGQg YmUgb2sKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsKK0VS Uk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJM RQorRElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7Cist LSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAi cHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQorRElTQ0FSRCBWQVJJQUJMRVM7Cist LSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAgCisoMSBy b3cpCisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSBOVUxMOworLS0gc2hvdWxkIGZhaWwK K0xFVCB2YXIxID0gMjA7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBp cyBkZWNsYXJlZCBJTU1VVEFCTEUKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBJTU1VVEFC TEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgREVGQVVMVCAxMDsKKy0tIGRvbid0IGFsbG93IGNoYW5n ZSB3aGVuIHZhcmlhYmxlIGhhcyBERUZBVUxUIHZhbHVlCistLSBzaG91bGQgdG8gZmFpbAorTEVU IHZhcjEgPSAyMDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRl Y2xhcmVkIElNTVVUQUJMRQorRElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sKK1NF TEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKKy0tIHNob3VsZCBm YWlsCitMRVQgdmFyMSA9IDIwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFy MSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBzaG91bGQg YmUgb2sKK0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdmFyMSBBUyBJTlQgTk9UIE5VTEwgREVG QVVMVCAxMDsKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDEwOworRVJST1I6ICBzZXNz aW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitMRVQgdmFy MSA9IDIwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFy ZWQgSU1NVVRBQkxFCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0t LS0KKyAgIDEwCisoMSByb3cpCisKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDMwOwor RVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRB QkxFCitEUk9QIFZBUklBQkxFIHZhcjE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwKaW5kZXggZjY2OTViOGQ3OS4uYjgzZjJhNmJiYiAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtMTY4NiwzICsxNjg2LDEyNSBAQCBT RUxFQ1QgdmFyMTsKIAogRFJPUCBWQVJJQUJMRSB2YXIxOwogRFJPUCBGVU5DVElPTiB2YXJ0ZXN0 X2Z4KCk7CisKKy0tIHRlc3QgTk9UIE5VTEwKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgaW50IE5PVCBOVUxMOworLS0gc2hvdWxkIHRvIGZhaWwKK1NFTEVDVCB2YXIx OworCistLXNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsKK1NFTEVDVCB2YXIxOworCitEUk9Q IFZBUklBQkxFIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIFZBUklBQkxFIHZhcjEg QVMgaW50IE5PVCBOVUxMIERFRkFVTFQgMDsKKworLS1zaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIx OworCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CitTRUxFQ1QgdmFyMTsKKworRElT Q0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IE5VTEw7CisK K0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gdGVzdCBOT1QgTlVMTAorQ1JFQVRFIE9SIFJFUExB Q0UgRlVOQ1RJT04gdmFydGVzdF9meCgpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgUkVU VVJOIE5VTEw7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyBpbnQgTk9UIE5VTEwgREVGQVVMVCB2YXJ0ZXN0X2Z4KCk7CisKKy0tIHNob3VsZCB0 byBmYWlsCitTRUxFQ1QgdmFyMTsKKworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCBi ZSBvaworTEVUIHZhcjEgPSAxMDsKK1NFTEVDVCB2YXIxOworCitDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSRVRVUk4g MDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworCist LSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9Q IEZVTkNUSU9OIHZhcnRlc3RfZngoKTsKKworLS0gdGVzdCBJTU1VVEJMRQorQ1JFQVRFIElNTVVU QUJMRSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFy MTsKKy0tIGZpcnN0IHdyaXRlIHNob3VsZCBvaworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9 IDEwOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMjA7CisKK0RJU0NBUkQgVkFSSUFCTEVT OworCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgZmFpbAorTEVU IHZhcjEgPSAyMDsKKworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCBiZSBvaworU0VM RUNUIHZhcjE7CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gTlVMTDsKKy0tIHNob3VsZCBm YWlsCitMRVQgdmFyMSA9IDIwOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKK0NSRUFURSBJTU1V VEFCTEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgREVGQVVMVCAxMDsKKworLS0gZG9uJ3QgYWxsb3cg Y2hhbmdlIHdoZW4gdmFyaWFibGUgaGFzIERFRkFVTFQgdmFsdWUKKy0tIHNob3VsZCB0byBmYWls CitMRVQgdmFyMSA9IDIwOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxkIGJlIG9r CitTRUxFQ1QgdmFyMTsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDIwOworCitEUk9QIFZB UklBQkxFIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJM RSB2YXIxIEFTIElOVCBOT1QgTlVMTCBERUZBVUxUIDEwOworCistLSBzaG91bGQgdG8gZmFpbAor TEVUIHZhcjEgPSAxMDsKK0xFVCB2YXIxID0gMjA7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNU IHZhcjE7CisKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDMwOworCitEUk9QIFZBUklB QkxFIHZhcjE7Ci0tIAoyLjQ3LjEKCg== --0000000000008953c9062b346e70 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250108-0014-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Disposition: attachment; filename="v20250108-0014-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5o4agjm8 RnJvbSA5OWUxNGE3ZTlkMDg0ZmNjMDJkYTM0MWFmNDlhODUwYTdhYTJkOGIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMzo1MyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTQvMjJdIEltcGxlbWVudGF0aW9uIG9mIERFRkFVTFQgY2xhdXNlIC0gZGVmYXVsdCBleHByZXNz aW9ucwogZm9yIHNlc3Npb24gdmFyaWFibGVzCgpXaGVuIHRoZSBldmFsdWF0aW9uIG9mIGRlZmF1 bHQgZXhwcmVzc2lvbiBmYWlscywgd2UgcmVtb3ZlIHJlbGF0ZWQgZW50cnkgZnJvbSBzZXNzaW9u dmFycwpoYXNoIHRhYmxlLiBUaGVuIHNlc3Npb252YXJzIGNhbiBjb250YWluIG9ubHkgc3VjZXNz ZnVsbHkgaW5pdGlhbGl6ZWQgdmFsdWVzLiBUaGVuIHdlIGRvbid0Cm5lZWQgc3BlY2lhbCBmbGFn IGZvciBiYWRseSBpbml0aWFsaXplZCBzZXNzaW9uIHZhcmlhYmxlcy4KLS0tCiBkb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgOCArKwogZG9jL3NyYy9zZ21s L2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYgKystLQogZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgMjEgKysrLS0KIGRvYy9zcmMvc2dt bC9yZWYvZGlzY2FyZC5zZ21sICAgICAgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAyNyArKysrKysKIHNyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDg3ICsrKysrKysrKysrKysrKysr Ky0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8IDE1ICsr Ky0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyAgICAgICAgICAgICAgICB8ICAyICsK IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICA0ICsKIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDE0ICsrKwogc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9w Z19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgMzYgKysrKysrKysKIHNyYy9i aW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgMyArCiBzcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2Vfbm9kZS5oICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAzNiArKysrLS0tLQogLi4uL3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgNjMgKysrKysrKysrKysrKysKIHNy Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDQ4ICsrKysrKysr KysKIDIwIGZpbGVzIGNoYW5nZWQsIDM1MCBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sCmluZGV4IDIwZmM1ZDYwY2YuLmU4NjNjYjkxMGUgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s CkBAIC05ODczLDYgKzk4NzMsMTQgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0 ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwv cGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+dmFyZGVmZXhwcjwvc3RydWN0ZmllbGQ+IDx0eXBlPnBnX25v ZGVfdHJlZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBp bnRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgdmFyaWFibGUgZGVmYXVsdCB2YWx1ZQorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91 cD4KICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9z cmMvc2dtbC9kZGwuc2dtbAppbmRleCAxNDMzZjAzM2Q3Li5iNjBkOTc0OTZjIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC01 MzgwLDE0ICs1MzgwLDE0IEBAIFNFTEVDVCBjdXJyZW50X3VzZXJfaWQ7CiAKICAgIDxwYXJhPgog ICAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbG9jYWwgdG8gdGhlIGN1cnJl bnQgc2Vzc2lvbi4gUmV0cmlldmluZwotICAgIGEgdmFyaWFibGUncyB2YWx1ZSByZXR1cm5zIGEg PGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4sIHVubGVzcyBpdHMgdmFsdWUgaGFzCi0gICAgYmVlbiBz ZXQgdG8gc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB1c2luZyB0aGUKLSAg ICA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUg bm90IHRyYW5zYWN0aW9uYWw6Ci0gICAgYW55IGNoYW5nZXMgbWFkZSB0byB0aGUgdmFsdWUgb2Yg YSBzZXNzaW9uIHZhcmlhYmxlIGluIGEgdHJhbnNhY3Rpb24gd29uJ3QKLSAgICBiZSB1bmRvbmUg aWYgdGhlIHRyYW5zYWN0aW9uIGlzIHJvbGxlZCBiYWNrIChqdXN0IGxpa2UgdmFyaWFibGVzIGlu Ci0gICAgcHJvY2VkdXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lvbiB2YXJpYWJsZXMgdGhlbXNlbHZl cyBjYW4gYmUgcGVyc2lzdGVudAotICAgIG9yIHRlbXBvcmFyeSwgYnV0IHRoZWlyIHZhbHVlcyBh cmUgbmVpdGhlciBwZXJzaXN0ZW50IG5vciBzaGFyZWQgKGxpa2UgdGhlCi0gICAgY29udGVudCBv ZiB0ZW1wb3JhcnkgdGFibGVzKS4KKyAgICBhIHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBhIDxs aXRlcmFsPk5VTEw8L2xpdGVyYWw+IG9yIGEgZGVmYXVsdCB2YWx1ZSwKKyAgICB1bmxlc3MgaXRz IHZhbHVlIGhhcyAgYmVlbiBzZXQgdG8gc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQgc2Vz c2lvbgorICAgIHVzaW5nIHRoZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuICBTZXNz aW9uIHZhcmlhYmxlcyBhcmUgbm90CisgICAgdHJhbnNhY3Rpb25hbDogYW55IGNoYW5nZXMgbWFk ZSB0byB0aGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGluCisgICAgYSB0cmFuc2FjdGlv biB3b24ndCBiZSB1bmRvbmUgaWYgdGhlIHRyYW5zYWN0aW9uIGlzIHJvbGxlZCBiYWNrIChqdXN0 IGxpa2UKKyAgICB2YXJpYWJsZXMgaW4gcHJvY2VkdXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lvbiB2 YXJpYWJsZXMgdGhlbXNlbHZlcyBjYW4gYmUKKyAgICBwZXJzaXN0ZW50IG9yIHRlbXBvcmFyeSwg YnV0IHRoZWlyIHZhbHVlcyBhcmUgbmVpdGhlciBwZXJzaXN0ZW50IG5vciBzaGFyZWQKKyAgICAo bGlrZSB0aGUgY29udGVudCBvZiB0ZW1wb3JhcnkgdGFibGVzKS4KICAgIDwvcGFyYT4KIAogICAg PHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCBjODlhNjVmYjU1 Li5lNGQ4ODUxY2NiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJs ZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTI3 LDcgKzI3LDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2Pgog PHN5bm9wc2lzPgogQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElG IE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFj ZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9y ZXBsYWNlYWJsZT4gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2xs YXRpb248L3JlcGxhY2VhYmxlPiBdCi0gICAgWyB7IE9OIENPTU1JVCBEUk9QIHwgT04gVFJBTlNB Q1RJT04gRU5EIFJFU0VUIH0gXQorICAgIFsgREVGQVVMVCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT4gXSBbIHsgT04gQ09NTUlUIERST1Ag fCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBdCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3Bz aXNkaXY+CiAgPHJlZnNlY3QxPgpAQCAtNDEsMTAgKzQxLDEwIEBAIENSRUFURSBbIHsgVEVNUE9S QVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNs YXNzPSJwCiAKICAgPHBhcmE+CiAgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlz IGxvY2FsIHRvIHRoZSBjdXJyZW50IHNlc3Npb24uICBSZXRyaWV2aW5nCi0gICBhIHNlc3Npb24g dmFyaWFibGUncyB2YWx1ZSByZXR1cm5zIE5VTEwsIHVubGVzcyBpdHMgdmFsdWUgaXMgc2V0IHRv Ci0gICBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBzZXNzaW9uIHdpdGggYSA8Y29tbWFu ZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuCi0gICBUaGUgY29udGVudCBvZiBhIHNlc3Npb24gdmFy aWFibGUgaXMgbm90IHRyYW5zYWN0aW9uYWwuIFRoaXMgaXMgdGhlIHNhbWUgYXMKLSAgIHJlZ3Vs YXIgdmFyaWFibGVzIGluIHByb2NlZHVyYWwgbGFuZ3VhZ2VzLgorICAgYSBzZXNzaW9uIHZhcmlh YmxlJ3MgdmFsdWUgcmV0dXJucyBOVUxMIG9yIGEgZGVmYXVsdCB2YWx1ZSwgdW5sZXNzIGl0cyB2 YWx1ZQorICAgaXMgc2V0IHRvIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50IHNlc3Npb24g d2l0aCBhIDxjb21tYW5kPkxFVDwvY29tbWFuZD4KKyAgIGNvbW1hbmQuICBUaGUgY29udGVudCBv ZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbm90IHRyYW5zYWN0aW9uYWwuICBUaGlzIGlzIHRoZQor ICAgc2FtZSBhcyByZWd1bGFyIHZhcmlhYmxlcyBpbiBwcm9jZWR1cmFsIGxhbmd1YWdlcy4KICAg PC9wYXJhPgogCiAgIDxwYXJhPgpAQCAtMTA1LDYgKzEwNSwxNyBAQCBDUkVBVEUgWyB7IFRFTVBP UkFSWSB8IFRFTVAgfSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBj bGFzcz0icAogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxp c3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLWRlZmF1bHQiPgorICAgIDx0ZXJtPjxsaXRl cmFsPkRFRkFVTFQgPHJlcGxhY2VhYmxlPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+PC9saXRl cmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIDxsaXRl cmFsPkRFRkFVTFQ8L2xpdGVyYWw+IGNsYXVzZSBjYW4gYmUgdXNlZCB0byBhc3NpZ24gYSBkZWZh dWx0CisgICAgICB2YWx1ZSB0byBhIHNlc3Npb24gdmFyaWFibGUuIFRoaXMgZXhwcmVzc2lvbiBp cyBldmFsdWF0ZWQgd2hlbiB0aGUgc2Vzc2lvbgorICAgICAgdmFyaWFibGUgaXMgZmlyc3QgYWNj ZXNzZWQgZm9yIHJlYWRpbmcgYW5kIGhhZCBub3QgeWV0IGJlZW4gYXNzaWduZWQgYSB2YWx1ZS4K KyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAg PHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLW9uLWNvbW1pdC1kcm9wIj4KICAg ICA8dGVybT48bGl0ZXJhbD5PTiBDT01NSVQgRFJPUDwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxp c3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwgYi9kb2Mv c3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbAppbmRleCA2MWI5NjdmOWM5Li42YjBjYjk1MDM0IDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2Rpc2NhcmQuc2dtbApAQCAtNzEsNyArNzEsOCBAQCBESVNDQVJEIHsgQUxMIHwgUExB TlMgfCBTRVFVRU5DRVMgfCBURU1QT1JBUlkgfCBURU1QIHwgVkFSSUFCTEVTIH0KICAgICA8bGlz dGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgUmVzZXRzIHRoZSB2YWx1ZSBvZiBhbGwgc2Vzc2lv biB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUKLSAgICAgIGlzIGxhdGVyIHJldXNlZCwgaXQgaXMg cmUtaW5pdGlhbGl6ZWQgdG8gPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4uCisgICAgICBpcyBsYXRl ciByZXVzZWQsIGl0IGlzIHJlLWluaXRpYWxpemVkIHRvIGVpdGhlcgorICAgICAgPGxpdGVyYWw+ TlVMTDwvbGl0ZXJhbD4gb3IgaXRzIGRlZmF1bHQgdmFsdWUuCiAgICAgIDwvcGFyYT4KICAgICA8 L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMK aW5kZXggMDBjOTBlYTZmZC4uOGZiYTRjYzQ5MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUu YwpAQCAtMjQsNiArMjQsOSBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNp bmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAibWlzY2FkbWlu LmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2NvZXJjZS5oIgorI2luY2x1ZGUgInBhcnNlci9w YXJzZV9jb2xsYXRlLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2V4cHIuaCIKICNpbmNsdWRl ICJwYXJzZXIvcGFyc2VfdHlwZS5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5j bHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCkBAIC0zNyw2ICs0MCw3IEBAIHN0YXRpYyBPYmplY3RB ZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCQkJCQkJCQkJIE9p ZCB2YXJPd25lciwKIAkJCQkJCQkJCSBPaWQgdmFyQ29sbGF0aW9uLAogCQkJCQkJCQkJIGJvb2wg aWZfbm90X2V4aXN0cywKKwkJCQkJCQkJCSBOb2RlICp2YXJEZWZleHByLAogCQkJCQkJCQkJIFZh cmlhYmxlWGFjdEVuZEFjdGlvbiB2YXJYYWN0RW5kQWN0aW9uKTsKIAogCkBAIC01MSw2ICs1NSw3 IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCQkJCU9pZCB2YXJPd25l ciwKIAkJCQlPaWQgdmFyQ29sbGF0aW9uLAogCQkJCWJvb2wgaWZfbm90X2V4aXN0cywKKwkJCQlO b2RlICp2YXJEZWZleHByLAogCQkJCVZhcmlhYmxlWGFjdEVuZEFjdGlvbiB2YXJYYWN0RW5kQWN0 aW9uKQogewogCUFjbAkJICAgKnZhcmFjbDsKQEAgLTExNCw2ICsxMTksMTEgQEAgY3JlYXRlX3Zh cmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFy Y29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxhdGlvbik7CiAJdmFsdWVz W0FudW1fcGdfdmFyaWFibGVfdmFyeGFjdGVuZGFjdGlvbiAtIDFdID0gQ2hhckdldERhdHVtKHZh clhhY3RFbmRBY3Rpb24pOwogCisJaWYgKHZhckRlZmV4cHIpCisJCXZhbHVlc1tBbnVtX3BnX3Zh cmlhYmxlX3ZhcmRlZmV4cHIgLSAxXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0obm9kZVRvU3RyaW5n KHZhckRlZmV4cHIpKTsKKwllbHNlCisJCW51bGxzW0FudW1fcGdfdmFyaWFibGVfdmFyZGVmZXhw ciAtIDFdID0gdHJ1ZTsKKwogCXZhcmFjbCA9IGdldF91c2VyX2RlZmF1bHRfYWNsKE9CSkVDVF9W QVJJQUJMRSwgdmFyT3duZXIsCiAJCQkJCQkJCSAgdmFyTmFtZXNwYWNlKTsKIAlpZiAodmFyYWNs ICE9IE5VTEwpCkBAIC0xNTAsNiArMTYwLDExIEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFy ICp2YXJOYW1lLAogCXJlY29yZF9vYmplY3RfYWRkcmVzc19kZXBlbmRlbmNpZXMoJm15c2VsZiwg YWRkcnMsIERFUEVOREVOQ1lfTk9STUFMKTsKIAlmcmVlX29iamVjdF9hZGRyZXNzZXMoYWRkcnMp OwogCisJLyogZGVwZW5kZW5jeSBvbiBkZWZhdWx0IGV4cHIgKi8KKwlpZiAodmFyRGVmZXhwcikK KwkJcmVjb3JkRGVwZW5kZW5jeU9uRXhwcigmbXlzZWxmLCAoTm9kZSAqKSB2YXJEZWZleHByLAor CQkJCQkJCSAgIE5JTCwgREVQRU5ERU5DWV9OT1JNQUwpOworCiAJLyogZGVwZW5kZW5jeSBvbiBv d25lciAqLwogCXJlY29yZERlcGVuZGVuY3lPbk93bmVyKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFy aWQsIHZhck93bmVyKTsKIApAQCAtMTg1LDYgKzIwMCw3IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJT2lkCQkJY29sbGF0 aW9uOwogCU9pZAkJCXR5cGNvbGxhdGlvbjsKIAlPYmplY3RBZGRyZXNzIHZhcmlhYmxlOworCU5v ZGUJICAgKmNvb2tlZF9kZWZhdWx0ID0gTlVMTDsKIAogCS8qIGNoZWNrIGNvbnNpc3RlbmN5IG9m IGFyZ3VtZW50cyAqLwogCWlmIChzdG10LT5YYWN0RW5kQWN0aW9uID09IFZBUklBQkxFX1hBQ1RF TkRfRFJPUApAQCAtMjI2LDYgKzI0MiwxNiBAQCBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpw c3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCQkJCQkJZm9ybWF0X3R5cGVfYmUo dHlwaWQpKSwKIAkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgc3RtdC0+Y29sbENsYXVz ZS0+bG9jYXRpb24pKSk7CiAKKwlpZiAoc3RtdC0+ZGVmZXhwcikKKwl7CisJCWNvb2tlZF9kZWZh dWx0ID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIHN0bXQtPmRlZmV4cHIsCisJCQkJCQkJCQkgICBF WFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVCk7CisKKwkJY29va2VkX2RlZmF1bHQgPSBjb2VyY2Vf dG9fc3BlY2lmaWNfdHlwZShwc3RhdGUsCisJCQkJCQkJCQkJCQkgY29va2VkX2RlZmF1bHQsIHR5 cGlkLCAiREVGQVVMVCIpOworCQlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgY29va2Vk X2RlZmF1bHQpOworCX0KKwogCXZhcmlhYmxlID0gY3JlYXRlX3ZhcmlhYmxlKHN0bXQtPnZhcmlh YmxlLT5yZWxuYW1lLAogCQkJCQkJCSAgIG5hbWVzcGFjZWlkLAogCQkJCQkJCSAgIHR5cGlkLApA QCAtMjMzLDYgKzI1OSw3IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3Jl YXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQkJICAgdmFyb3duZXIsCiAJCQkJCQkJICAg Y29sbGF0aW9uLAogCQkJCQkJCSAgIHN0bXQtPmlmX25vdF9leGlzdHMsCisJCQkJCQkJICAgY29v a2VkX2RlZmF1bHQsCiAJCQkJCQkJICAgc3RtdC0+WGFjdEVuZEFjdGlvbik7CiAKIAllbG9nKERF QlVHMSwgInJlY29yZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgKG9pZDolZCkgd2FzIGNy ZWF0ZWQgaW4gcGdfdmFyaWFibGUiLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5jCmluZGV4IDQ1ZTQzMWE1NDYuLmQyN2IzZDYzNzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJleGVjdXRvci9z dmFyaWFibGVSZWNlaXZlci5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJtaXNj YWRtaW4uaCIKKyNpbmNsdWRlICJvcHRpbWl6ZXIvb3B0aW1pemVyLmgiCiAjaW5jbHVkZSAicmV3 cml0ZS9yZXdyaXRlSGFuZGxlci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgogI2luY2x1 ZGUgInN0b3JhZ2UvcHJvYy5oIgpAQCAtNTE4LDExICs1MTksNjggQEAgQXRFT1N1YlhhY3RfU2Vz c2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0LAogCX0KIH0KIAorLyoKKyAqIGV2YWx1YXRlIGFu IGV4cHJlc3Npb24KKyAqLworc3RhdGljIHZvaWQKK2V2YWxfYXNzaWduX2RlZmV4cHIoU1Zhcmlh YmxlIHN2YXIsIEhlYXBUdXBsZSB0dXApCit7CisJRGF0dW0JCWRlZmV4cHJfdmFsdWU7CisJYm9v bAkJaXNudWxsOworCisJQXNzZXJ0KHN2YXIpOworCUFzc2VydChzdmFyLT5pc192YWxpZCk7CisJ QXNzZXJ0KEhlYXBUdXBsZUlzVmFsaWQodHVwKSk7CisKKwlkZWZleHByX3ZhbHVlID0gU3lzQ2Fj aGVHZXRBdHRyKFZBUklBQkxFT0lELAorCQkJCQkJCQkJdHVwLAorCQkJCQkJCQkJQW51bV9wZ192 YXJpYWJsZV92YXJkZWZleHByLAorCQkJCQkJCQkJJmlzbnVsbCk7CisKKwlpZiAoIWlzbnVsbCkK Kwl7CisJCUVTdGF0ZQkgICAqZXN0YXRlOworCQlFeHByU3RhdGUgICpkZWZleHByczsKKwkJRXhw cgkgICAqZGVmZXhwcjsKKwkJY2hhcgkgICAqZGVmZXhwcl9zdHI7CisJCURhdHVtCQl2YWx1ZTsK KwkJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CisKKwkJZXN0YXRlID0gQ3JlYXRlRXhlY3V0b3JTdGF0 ZSgpOworCisJCWRlZmV4cHJfc3RyID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkZWZleHByX3ZhbHVl KTsKKwkJZGVmZXhwciA9IChFeHByICopIHN0cmluZ1RvTm9kZShkZWZleHByX3N0cik7CisKKwkJ b2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGVzdGF0ZS0+ZXNfcXVlcnlfY3h0KTsKKwor CQlkZWZleHByID0gZXhwcmVzc2lvbl9wbGFubmVyKChFeHByICopIGRlZmV4cHIpOworCQlkZWZl eHBycyA9IEV4ZWNJbml0RXhwcihkZWZleHByLCBOVUxMKTsKKworCQl2YWx1ZSA9IEV4ZWNFdmFs RXhwclN3aXRjaENvbnRleHQoZGVmZXhwcnMsCisJCQkJCQkJCQkJICBHZXRQZXJUdXBsZUV4cHJD b250ZXh0KGVzdGF0ZSksCisJCQkJCQkJCQkJICAmaXNudWxsKTsKKworCQlNZW1vcnlDb250ZXh0 U3dpdGNoVG8ob2xkY3h0KTsKKworCQlpZiAoIWlzbnVsbCkKKwkJeworCQkJb2xkY3h0ID0gTWVt b3J5Q29udGV4dFN3aXRjaFRvKFNWYXJpYWJsZU1lbW9yeUNvbnRleHQpOworCisJCQlzdmFyLT52 YWx1ZSA9IGRhdHVtQ29weSh2YWx1ZSwgc3Zhci0+dHlwYnl2YWwsIHN2YXItPnR5cGxlbik7CisJ CQlzdmFyLT5pc251bGwgPSBmYWxzZTsKKworCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4 dCk7CisJCX0KKworCQlGcmVlRXhlY3V0b3JTdGF0ZShlc3RhdGUpOworCX0KK30KKwogLyoKICAq IEluaXRpYWxpemUgYXR0cmlidXRlcyBjYWNoZWQgaW4gInN2YXIiCiAgKi8KIHN0YXRpYyB2b2lk Ci1zZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQpCitzZXR1 cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3Jp dGUpCiB7CiAJSGVhcFR1cGxlCXR1cDsKIAlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CkBAIC01 NzIsNiArNjMwLDkgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lk IHZhcmlkKQogCXN2YXItPmhhc2h2YWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZhbHVlMShWQVJJQUJM RU9JRCwKIAkJCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOwogCisJaWYgKCFpc193 cml0ZSkKKwkJZXZhbF9hc3NpZ25fZGVmZXhwcihzdmFyLCB0dXApOworCiAJUmVsZWFzZVN5c0Nh Y2hlKHR1cCk7CiB9CiAKQEAgLTYwMSw3ICs2NjIsNyBAQCBzZXRfc2Vzc2lvbl92YXJpYWJsZShT VmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQogCSAqLwogCWlmICghc3Zh ci0+aXNfdmFsaWQpCiAJewotCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKCZsb2NzdmFyLCBzdmFy LT52YXJpZCk7CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoJmxvY3N2YXIsIHN2YXItPnZhcmlk LCBmYWxzZSk7CiAJCV9zdmFyID0gJmxvY3N2YXI7CiAJfQogCWVsc2UKQEAgLTczNCw3ICs3OTUs MjUgQEAgZ2V0X3Nlc3Npb25fdmFyaWFibGUoT2lkIHZhcmlkKQogCSAqLwogCWlmICghc3Zhci0+ aXNfdmFsaWQpCiAJewotCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIsIHZhcmlkKTsKKwkJ LyogaW4gdGhpcyBjYXNlIHdlIHdhbnQgdG8gdXNlIGRlZmV4cCBpZiBpdCBpcyBkZWZpbmVkICov CisJCVBHX1RSWSgpOworCQl7CisJCQkvKgorCQkJICogSW4gdGhpcyBjYXNlLCB0aGUgc2V0dXAg Y2FuIGV4ZWN1dGUgZGVmYXVsdCBleHByZXNzaW9uLiBXaGVuCisJCQkgKiB0aGUgZXhlY3V0aW9u IG9mIGRlZmF1bHQgZXhwcmVzc2lvbiBmYWlscywgdGhlbiB3ZSBuZWVkIHRvCisJCQkgKiByZW1v dmUgZW50cnkgZnJvbSBzZXNzaW9uIHZhcnMuCisJCQkgKi8KKwkJCXNldHVwX3Nlc3Npb25fdmFy aWFibGUoc3ZhciwgdmFyaWQsIGZhbHNlKTsKKwkJfQorCQlQR19DQVRDSCgpOworCQl7CisJCQkv KiB0aGlzIGVudHJ5IGNhbm5vdCBiZSB2YWxpZCwgcmVtb3ZlIGZyb20gc2Vzc2lvbnZhcnMgKi8K KwkJCWhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsK KworCQkJLyogcHJvcGFnYXRlIHRoZSBlcnJvciAqLworCQkJUEdfUkVfVEhST1coKTsKKwkJfQor CQlQR19FTkRfVFJZKCk7CiAKIAkJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZhcmlhYmxlIFwiJXMu JXNcIiAob2lkOiV1KSBoYXMgYXNzaWduZWQgZW50cnkgaW4gbWVtb3J5IChlbWl0dGVkIGJ5IFJF QUQpIiwKIAkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNw YWNlKHZhcmlkKSksCkBAIC03OTgsNyArODc3LDcgQEAgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2 YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQogCiAJaWYgKCFmb3VuZCkKIAl7Ci0JCXNl dHVwX3Nlc3Npb25fdmFyaWFibGUoc3ZhciwgdmFyaWQpOworCQlzZXR1cF9zZXNzaW9uX3Zhcmlh YmxlKHN2YXIsIHZhcmlkLCB0cnVlKTsKIAogCQllbG9nKERFQlVHMSwgInNlc3Npb24gdmFyaWFi bGUgXCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBhc3NpZ25lZCBlbnRyeSBpbiBtZW1vcnkgKGVtaXR0 ZWQgYnkgV1JJVEUpIiwKIAkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFi bGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA4M2NmOTFkM2VmLi44 NDFkOWY4ZGZkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTYzNyw2ICs2MzcsNyBAQCBzdGF0aWMgTm9kZSAq bWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9k ZSAqcXVlcnkpOwogJXR5cGUgPHBhcnRib3VuZHNwZWM+IFBhcnRpdGlvbkJvdW5kU3BlYwogJXR5 cGUgPGxpc3Q+CQloYXNoX3BhcnRib3VuZAogJXR5cGUgPGRlZmVsdD4JCWhhc2hfcGFydGJvdW5k X2VsZW0KKyV0eXBlIDxub2RlPgkJT3B0U2Vzc2lvblZhckRlZkV4cHIKIAogJXR5cGUgPG5vZGU+ CWpzb25fZm9ybWF0X2NsYXVzZQogCQkJCWpzb25fZm9ybWF0X2NsYXVzZV9vcHQKQEAgLTUyMjks MzAgKzUyMzAsMzYgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToKICAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KIAogQ3JlYXRlU2Vzc2lvblZhclN0bXQ6Ci0JCQlDUkVBVEUgT3B0VGVtcCBWQVJJ QUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIFhh Y3RFbmRBY3Rpb25PcHRpb24KKwkJCUNSRUFURSBPcHRUZW1wIFZBUklBQkxFIHF1YWxpZmllZF9u YW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0U2Vzc2lvblZhckRlZkV4 cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQg Km4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7CiAJCQkJCSQ0LT5yZWxwZXJzaXN0 ZW5jZSA9ICQyOwogCQkJCQluLT52YXJpYWJsZSA9ICQ0OwogCQkJCQluLT50eXBlTmFtZSA9ICQ2 OwogCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDc7Ci0JCQkJCW4tPlhh Y3RFbmRBY3Rpb24gPSAkODsKKwkJCQkJbi0+ZGVmZXhwciA9ICQ4OworCQkJCQluLT5YYWN0RW5k QWN0aW9uID0gJDk7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSBmYWxzZTsKIAkJCQkJJCQgPSAo Tm9kZSAqKSBuOwogCQkJCX0KLQkJCXwgQ1JFQVRFIE9wdFRlbXAgVkFSSUFCTEUgSUZfUCBOT1Qg RVhJU1RTIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2Ug WGFjdEVuZEFjdGlvbk9wdGlvbgorCQkJfCBDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBJRl9QIE5P VCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVz ZSBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCiAJCQkJewogCQkJCQlD cmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsK IAkJCQkJJDctPnJlbHBlcnNpc3RlbmNlID0gJDI7CiAJCQkJCW4tPnZhcmlhYmxlID0gJDc7CiAJ CQkJCW4tPnR5cGVOYW1lID0gJDk7CiAJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVz ZSAqKSAkMTA7Ci0JCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTE7CisJCQkJCW4tPmRlZmV4cHIg PSAkMTE7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTI7CiAJCQkJCW4tPmlmX25vdF9leGlz dHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQogCQk7CiAKK09wdFNlc3Np b25WYXJEZWZFeHByOiBERUZBVUxUIGJfZXhwcgkJCQkJeyAkJCA9ICQyOyB9CisJCQl8IC8qIEVN UFRZICovCQkJCQkJCXsgJCQgPSBOVUxMOyB9CisJCTsKKwogLyoKICAqIFRlbXBvcmFyeSBzZXNz aW9uIHZhcmlhYmxlcyBjYW4gYmUgZHJvcHBlZCBvbiBzdWNjZXNzZnVsCiAgKiB0cmFuc2FjdGlv biBlbmQgbGlrZSB0YWJsZXMuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf YWdnLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKaW5kZXggNDczN2IwNGQxNy4u NTRiNzY1YzhlYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwpAQCAtNDg4LDYgKzQ4OCw3IEBAIGNo ZWNrX2FnZ2xldmVsc19hbmRfY29uc3RyYWludHMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpl eHByKQogCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNl IEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgorCQljYXNlIEVYUFJfS0lORF9WQVJJQUJMRV9E RUZBVUxUOgogCiAJCQlpZiAoaXNBZ2cpCiAJCQkJZXJyID0gXygiYWdncmVnYXRlIGZ1bmN0aW9u cyBhcmUgbm90IGFsbG93ZWQgaW4gREVGQVVMVCBleHByZXNzaW9ucyIpOwpAQCAtOTM3LDYgKzkz OCw3IEBAIHRyYW5zZm9ybVdpbmRvd0Z1bmNDYWxsKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93 RnVuYyAqd2Z1bmMsCiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6 CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX1ZB UklBQkxFX0RFRkFVTFQ6CiAJCQllcnIgPSBfKCJ3aW5kb3cgZnVuY3Rpb25zIGFyZSBub3QgYWxs b3dlZCBpbiBERUZBVUxUIGV4cHJlc3Npb25zIik7CiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJ TkRfSU5ERVhfRVhQUkVTU0lPTjoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IDFmNTUwY2Qw NGQuLjNhOTA0ZTVjMjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHBy LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtNTg4LDYgKzU4OCw3 IEBAIGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMoUGFyc2VFeHByS2luZCBwX2V4 cHJfa2luZCkKIAkJY2FzZSBFWFBSX0tJTkRfSk9JTl9VU0lORzoKIAkJY2FzZSBFWFBSX0tJTkRf Q1lDTEVfTUFSSzoKIAkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJY2FzZSBFWFBS X0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCXJlc3VsdCA9IGZhbHNlOwogCQkJYnJlYWs7CiAJ fQpAQCAtNjczLDYgKzY3NCw3IEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3Rh dGUsIENvbHVtblJlZiAqY3JlZikKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKIAkJY2Fz ZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKIAkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoK KwkJY2FzZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCS8qIG9rYXkgKi8KIAkJCWJy ZWFrOwogCkBAIC0yMTQ2LDYgKzIxNDgsNyBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUg KnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9D T0xVTU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKKwkJY2Fz ZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCWVyciA9IF8oImNhbm5vdCB1c2Ugc3Vi cXVlcnkgaW4gREVGQVVMVCBleHByZXNzaW9uIik7CiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJ TkRfSU5ERVhfRVhQUkVTU0lPTjoKQEAgLTM0OTgsNiArMzUwMSw3IEBAIFBhcnNlRXhwcktpbmRO YW1lKFBhcnNlRXhwcktpbmQgZXhwcktpbmQpCiAJCQlyZXR1cm4gIkNIRUNLIjsKIAkJY2FzZSBF WFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFV TFQ6CisJCWNhc2UgRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQ6CiAJCQlyZXR1cm4gIkRFRkFV TFQiOwogCQljYXNlIEVYUFJfS0lORF9JTkRFWF9FWFBSRVNTSU9OOgogCQkJcmV0dXJuICJpbmRl eCBleHByZXNzaW9uIjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5j LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCmluZGV4IGRjMjVmNmRjZDAuLmQ5 ZjE1YzI2MTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwpAQCAtMjYyMCw2ICsyNjIwLDcgQEAg Y2hlY2tfc3JmX2NhbGxfcGxhY2VtZW50KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbGFzdF9z cmYsIGludCBsb2NhdGlvbikKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVG QVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJ TkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCWVyciA9IF8oInNldC1yZXR1cm5pbmcgZnVuY3Rpb25z IGFyZSBub3QgYWxsb3dlZCBpbiBERUZBVUxUIGV4cHJlc3Npb25zIik7CiAJCQlicmVhazsKIAkJ Y2FzZSBFWFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lPTjoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IGYyZjM3Nzlj NjcuLmE2YzMzZDJlZGUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysr IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNTQzNiw2ICs1NDM2LDcgQEAgZ2V0VmFy aWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaW50CQkJaV92YXJuYW1lc3BhY2U7CiAJaW50CQkJaV92 YXJ0eXBlOwogCWludAkJCWlfdmFydHlwbmFtZTsKKwlpbnQJCQlpX3ZhcmRlZmV4cHI7CiAJaW50 CQkJaV92YXJ4YWN0ZW5kYWN0aW9uOwogCWludAkJCWlfdmFyb3duZXI7CiAJaW50CQkJaV92YXJj b2xsYXRpb247CkBAIC01NDYxLDYgKzU0NjIsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91 dCkKIAkJCQkJICAiICAgICAgICAgICAgVEhFTiB2LnZhcmNvbGxhdGlvblxuIgogCQkJCQkgICIg ICAgICAgICAgICBFTFNFIDBcbiIKIAkJCQkJICAiICAgICAgIEVORCBBUyB2YXJjb2xsYXRpb24s XG4iCisJCQkJCSAgIiAgICAgICBwZ19jYXRhbG9nLnBnX2dldF9leHByKHYudmFyZGVmZXhwciww KSBhcyB2YXJkZWZleHByLFxuIgogCQkJCQkgICIgICAgICAgdi52YXJvd25lciwgdi52YXJhY2ws XG4iCiAJCQkJCSAgIiAgICAgICBhY2xkZWZhdWx0KCdWJywgdi52YXJvd25lcikgQVMgYWNsZGVm YXVsdFxuIgogCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfdmFyaWFibGUgdlxuIgpAQCAtNTQ3 Nyw2ICs1NDc5LDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaV92YXJuYW1lc3Bh Y2UgPSBQUWZudW1iZXIocmVzLCAidmFybmFtZXNwYWNlIik7CiAJaV92YXJ0eXBlID0gUFFmbnVt YmVyKHJlcywgInZhcnR5cGUiKTsKIAlpX3ZhcnR5cG5hbWUgPSBQUWZudW1iZXIocmVzLCAidmFy dHlwbmFtZSIpOworCWlfdmFyZGVmZXhwciA9IFBRZm51bWJlcihyZXMsICJ2YXJkZWZleHByIik7 CiAJaV92YXJ4YWN0ZW5kYWN0aW9uID0gUFFmbnVtYmVyKHJlcywgInZhcnhhY3RlbmRhY3Rpb24i KTsKIAlpX3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRpb24iKTsKIApA QCAtNTUxMiw2ICs1NTE1LDExIEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCQl2YXJp bmZvW2ldLmRhY2wuaW5pdHByaXZzID0gTlVMTDsKIAkJdmFyaW5mb1tpXS5yb2xuYW1lID0gZ2V0 Um9sZU5hbWUoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyb3duZXIpKTsKIAorCQlpZiAoUFFnZXRp c251bGwocmVzLCBpLCBpX3ZhcmRlZmV4cHIpKQorCQkJdmFyaW5mb1tpXS52YXJkZWZleHByID0g TlVMTDsKKwkJZWxzZQorCQkJdmFyaW5mb1tpXS52YXJkZWZleHByID0gcGdfc3RyZHVwKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3ZhcmRlZmV4cHIpKTsKKwogCQkvKiBkbyBub3QgdHJ5IHRvIGR1bXAg QUNMIGlmIG5vIEFDTCBleGlzdHMgKi8KIAkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGksIGlfdmFy YWNsKSkKIAkJCXZhcmluZm9baV0uZG9iai5jb21wb25lbnRzIHw9IERVTVBfQ09NUE9ORU5UX0FD TDsKQEAgLTU1NDQsNiArNTU1Miw3IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25z dCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJUFFFeHBCdWZmZXIgcXVlcnk7CiAJY2hhcgkgICAq cXVhbHZhcm5hbWU7CiAJY29uc3QgY2hhciAqdmFydHlwbmFtZTsKKwljb25zdCBjaGFyICp2YXJk ZWZleHByOwogCWNvbnN0IGNoYXIgKnZhcnhhY3RlbmRhY3Rpb247CiAJT2lkCQkJdmFyY29sbGF0 aW9uOwogCkBAIC01NTU2LDYgKzU1NjUsNyBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwg Y29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCiAJcXVhbHZhcm5hbWUgPSBwZ19zdHJkdXAo Zm10UXVhbGlmaWVkRHVtcGFibGUodmFyaW5mbykpOwogCXZhcnR5cG5hbWUgPSB2YXJpbmZvLT52 YXJ0eXBuYW1lOworCXZhcmRlZmV4cHIgPSB2YXJpbmZvLT52YXJkZWZleHByOwogCXZhcnhhY3Rl bmRhY3Rpb24gPSB2YXJpbmZvLT52YXJ4YWN0ZW5kYWN0aW9uOwogCXZhcmNvbGxhdGlvbiA9IHZh cmluZm8tPnZhcmNvbGxhdGlvbjsKIApAQCAtNTU3NSw2ICs1NTg1LDEwIEBAIGR1bXBWYXJpYWJs ZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJCQkJCQkJICBm bXRRdWFsaWZpZWREdW1wYWJsZShjb2xsKSk7CiAJfQogCisJaWYgKHZhcmRlZmV4cHIpCisJCWFw cGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIERFRkFVTFQgJXMiLAorCQkJCQkJICB2YXJkZWZleHBy KTsKKwogCWlmIChzdHJjbXAodmFyeGFjdGVuZGFjdGlvbiwgInIiKSA9PSAwKQogCQlhcHBlbmRQ UUV4cEJ1ZmZlcihxdWVyeSwgIiBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQiKTsKIApkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmgKaW5kZXggYTlhYzcwZDc2MS4uMjYxMzcwMGUxOSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC03MTcsNiAr NzE3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1ZhcmlhYmxlSW5mbwogCUR1bXBhYmxlQWNsIGRhY2w7 CiAJT2lkCQkJdmFydHlwZTsKIAljaGFyCSAgICp2YXJ0eXBuYW1lOworCWNoYXIJICAgKnZhcmRl ZmV4cHI7CiAJY2hhcgkgICAqdmFyeGFjdGVuZGFjdGlvbjsKIAljaGFyCSAgICp2YXJhY2w7CiAJ Y2hhcgkgICAqcnZhcmFjbDsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19k dW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggN2IwY2MyYzVk OS4uZmNmNjg5NjZiMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAu cGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTQwMDUsNiArNDAw NSw0MiBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdDUkVBVEUgVkFSSUFCTEUgdGVz dF92YXJpYWJsZSBERUZBVUxUJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9h bGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJ CWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTMgQVMg aW50ZWdlciBERUZBVUxUIDEwOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBWQVJJ QUJMRSBkdW1wX3Rlc3QudmFyaWFibGUzIEFTIGludGVnZXIgREVGQVVMVCAxMDtcRS94bSwKKwkJ bGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJ CXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVf ZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEs CisJCX0sCisJfSwKKworCSdDUkVBVEUgVkFSSUFCTEUgdGVzdF92YXJpYWJsZSBERUZBVUxUIE9O IFRSQU5TQUNUSU9OIEVORCBSRVNFVCcgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0 Y2hfYWxsICAgID0+ICdDUkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYx LAorCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU0 IEFTIGludGVnZXIgREVGQVVMVCAxMCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQnLAorCQlyZWdl eHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlNCBBUyBp bnRlZ2VyIERFRkFVTFQgMTAgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUO1xFL3htLAorCQlsaWtl ID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2Vj dGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1w X3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJ fSwKKwl9LAorCiAJJ0NSRUFURSBWSUVXIHRlc3RfdmlldycgPT4gewogCQljcmVhdGVfb3JkZXIg PT4gNjEsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBWSUVXIGR1bXBfdGVzdC50ZXN0X3ZpZXcK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMKaW5kZXggM2Y3NDM2NzZjYS4uMjkwZGM2MjRmZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTUyNTAsNyAr NTI1MCw3IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3Nl KQogCVBRRXhwQnVmZmVyRGF0YSBidWY7CiAJUEdyZXN1bHQgICAqcmVzOwogCXByaW50UXVlcnlP cHQgbXlvcHQgPSBwc2V0LnBvcHQ7Ci0Jc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVt bnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07 CiAKIAlpZiAocHNldC5zdmVyc2lvbiA8IDE4MDAwMCkKIAl7CkBAIC01MjcxLDYgKzUyNzEsNyBA QCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJ ICAiICAoU0VMRUNUIGMuY29sbG5hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGxhdGlvbiBjLCBw Z19jYXRhbG9nLnBnX3R5cGUgYnRcbiIKIAkJCQkJICAiICAgV0hFUkUgYy5vaWQgPSB2LnZhcmNv bGxhdGlvbiBBTkQgYnQub2lkID0gdi52YXJ0eXBlIEFORCB2LnZhcmNvbGxhdGlvbiA8PiBidC50 eXBjb2xsYXRpb24pIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91 c2VyYnlpZCh2LnZhcm93bmVyKSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5w Z19nZXRfZXhwcih2LnZhcmRlZmV4cHIsIDApIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBDQVNF IHYudmFyeGFjdGVuZGFjdGlvblxuIgogCQkJCQkgICIgICAgV0hFTiAnZCcgVEhFTiAnT04gQ09N TUlUIERST1AnXG4iCiAJCQkJCSAgIiAgICBXSEVOICdyJyBUSEVOICdPTiBUUkFOU0FDVElPTiBF TkQgUkVTRVQnXG4iCkBAIC01MjgwLDYgKzUyODEsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNo YXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlR5cGUiKSwK IAkJCQkJICBnZXR0ZXh0X25vb3AoIkNvbGxhdGlvbiIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgi T3duZXIiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIkRlZmF1bHQiKSwKIAkJCQkJICBnZXR0ZXh0 X25vb3AoIlRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiIpKTsKIAogCWlmICh2ZXJib3NlKQpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ192YXJpYWJsZS5oCmluZGV4IDAwOGYyZWU3YzEuLjA5ZGQ0NGE0NGUgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKQEAgLTY4LDYgKzY4LDkgQEAgQ0FUQUxPRyhwZ192YXJp YWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkKIAkvKiBhY2Nlc3MgcGVybWlzc2lvbnMgKi8K IAlhY2xpdGVtCQl2YXJhY2xbMV0gQktJX0RFRkFVTFQoX251bGxfKTsKIAorCS8qIGxpc3Qgb2Yg ZXhwcmVzc2lvbiB0cmVlcyBmb3IgdmFyaWFibGUgZGVmYXVsdCAoTlVMTCBpZiBub25lKSAqLwor CXBnX25vZGVfdHJlZSB2YXJkZWZleHByIEJLSV9ERUZBVUxUKF9udWxsXyk7CisKICNlbmRpZgog fSBGb3JtRGF0YV9wZ192YXJpYWJsZTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGVjNGEx NmFlYTIuLmFjYzdkNzNmYjggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTM0ODcsNiArMzQ4 Nyw3IEBAIHR5cGVkZWYgc3RydWN0IENyZWF0ZVNlc3Npb25WYXJTdG10CiAJVHlwZU5hbWUgICAq dHlwZU5hbWU7CQkvKiB0aGUgdHlwZSBvZiB2YXJpYWJsZSAqLwogCUNvbGxhdGVDbGF1c2UgKmNv bGxDbGF1c2U7CiAJYm9vbAkJaWZfbm90X2V4aXN0czsJLyogZG8gbm90aGluZyBpZiBpdCBhbHJl YWR5IGV4aXN0cyAqLworCU5vZGUJICAgKmRlZmV4cHI7CQkvKiBkZWZhdWx0IGV4cHJlc3Npb24g Ki8KIAljaGFyCQlYYWN0RW5kQWN0aW9uOwkvKiBvbiB0cmFuc2FjdGlvbiBlbmQgYWN0aW9uICov CiB9IENyZWF0ZVNlc3Npb25WYXJTdG10OwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJz ZXIvcGFyc2Vfbm9kZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAppbmRleCA4 YjU1Zjg0MGQxLi4zNmY5OWM4OGVlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAgLTg0LDYg Kzg0LDcgQEAgdHlwZWRlZiBlbnVtIFBhcnNlRXhwcktpbmQKIAlFWFBSX0tJTkRfQ1lDTEVfTUFS SywJCS8qIGN5Y2xlIG1hcmsgdmFsdWUgKi8KIAlFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVCwJLyog UEwvcGdTUUwgYXNzaWdubWVudCB0YXJnZXQgKi8KIAlFWFBSX0tJTkRfTEVUX1RBUkdFVCwJCS8q IExFVCB0YXJnZXQgKi8KKwlFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVCwgLyogZGVmYXVsdCB2 YWx1ZSBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAqLwogfSBQYXJzZUV4cHJLaW5kOwogCiAKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3BzcWwub3V0CmluZGV4IDYxMDc3YTUyYjEuLmJjN2I2MGE5N2UgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wc3FsLm91dApAQCAtNTkzNSwyMCArNTkzNSwyMCBAQCBDUkVBVEUg Uk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwogU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJs ZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXIgQ09MTEFURSAiQyI7CiBc ZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBl ICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBUcmFuc2FjdGlv bmFsIGVuZCBhY3Rpb24gfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAotLS0tLS0t LS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAg ICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEg fCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAg ICAgICAgIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8IEFjY2VzcyBwcml2 aWxlZ2VzIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHB1 YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFy aWFibGVfb3duZXIgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgfCAKICgxIHJvdykKIAogR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEg VE8gUFVCTElDOwogQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIGRlc2NyaXB0aW9u JzsKIFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2No ZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25l ciAgICAgICAgICB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFj Y2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAgRGVzY3JpcHRpb24gICAgCi0tLS0t LS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCi0gcHVi bGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJp YWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KLSAgICAg ICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJs ZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8 IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBEZWZhdWx0IHwgVHJhbnNhY3Rp b25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAg ICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgcHVibGljIHwgdmFyMSB8 IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8 ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293 bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCisgICAgICAg IHwgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNz X3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogRFJP UCBWQVJJQUJMRSB2YXIxOwpAQCAtNjQxNiw5ICs2NDE2LDkgQEAgTGlzdCBvZiBzY2hlbWFzCiAo MCByb3dzKQogCiBcZFYgIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24g fCBPd25lciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFt ZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVu ZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2Fpbiwg YnV0IHdpdGggZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY1OTEsOSArNjU5MSw5 IEBAIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8u c3VjaC5zY2hlbWEiLiJuby5zdWNoLmluc3RhCiBcZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC5ldmVudC50cmlnZ2VyIgogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRl ZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIFxkViAi bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9u IHwgT3duZXIgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5h bWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4s IGJ1dCB3aXRoIGN1cnJlbnQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlv bnMuCkBAIC02NzMwLDkgKzY3MzAsOSBAQCBMaXN0IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRlcwog KDAgcm93cykKIAogXGRWIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJp YWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hl bWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgVHJhbnNhY3Rpb25hbCBlbmQg YWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVy IHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSst LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgZGF0YWJhc2UgYW5k IGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDQ5NjdkZWM4MWEuLmZhOTYzMDQwMDIg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMu b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CkBAIC0yMzg5LDMgKzIzODksNjYgQEAgU0VMRUNUIHZhcjEgSVMgTlVMTDsKICgxIHJvdykKIAog RFJPUCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFydGVzdF9m eCgpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNFICd2YXJ0ZXN0X2Z4 IGV4ZWN1dGVkJzsKKyAgUkVUVVJOIDA7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgaW50IERFRkFVTFQgdmFydGVzdF9meCgpOworLS0gdmFydGVz dF9meCBzaG91bGQgYmUgcHJvdGVjdGVkIGJ5IGRlcCwgc2hvdWxkIGZhaWwKK0RST1AgRlVOQ1RJ T04gdmFydGVzdF9meCgpOworRVJST1I6ICBjYW5ub3QgZHJvcCBmdW5jdGlvbiB2YXJ0ZXN0X2Z4 KCkgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgc2Vzc2lvbiB2 YXJpYWJsZSB2YXIxIGRlcGVuZHMgb24gZnVuY3Rpb24gdmFydGVzdF9meCgpCitISU5UOiAgVXNl IERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorLS0g c2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKK05PVElDRTogIHZhcnRlc3RfZnggZXhlY3V0ZWQK KyB2YXIxIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCistLSB0aGUgZGVmZXhwciBzaG91bGQg YmUgZXZhbHVhdGVkIG9ubHkgb25jZQorU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAg IDAKKygxIHJvdykKKworRElTQ0FSRCBWQVJJQUJMRVM7CistLSBpbiB0aGlzIGNhc2UsIHRoZSBk ZWZleHByIHNob3VsZCBub3QgYmUgZXZhbHVhdGVkCitMRVQgdmFyMSA9IDEwMDsKK1NFTEVDVCB2 YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK0RJU0NBUkQgVkFSSUFCTEVT OworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFydGVzdF9meCgpCitSRVRVUk5TIGludCBB UyAkJAorQkVHSU4KKyAgUkFJU0UgRVhDRVBUSU9OICd2YXJ0ZXN0X2Z4IGlzIGV4ZWN1dGluZyc7 CisgIFJFVFVSTiAwOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKy0tIHNob3VsZCB0byBm YWlsLCBidXQgbm90IHRvIGNyYXNoCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgdmFydGVzdF9meCBp cyBleGVjdXRpbmcKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiB2YXJ0ZXN0X2Z4KCkgbGlu ZSAzIGF0IFJBSVNFCistLSBhZ2FpbgorU0VMRUNUIHZhcjE7CitFUlJPUjogIHZhcnRlc3RfZngg aXMgZXhlY3V0aW5nCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gdmFydGVzdF9meCgpIGxp bmUgMyBhdCBSQUlTRQorLS0gYnV0IHdlIGNhbiB3cml0ZQorTEVUIHZhcjEgPSAxMDA7CitTRUxF Q1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxF IHZhcjE7CitEUk9QIEZVTkNUSU9OIHZhcnRlc3RfZngoKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCAyNDE3NTFhMjVhLi5mNjY5NWI4ZDc5IDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xNjM4LDMgKzE2 MzgsNTEgQEAgUk9MTEJBQ0s7CiBTRUxFQ1QgdmFyMSBJUyBOVUxMOwogCiBEUk9QIFZBUklBQkxF IHZhcjE7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVUVVJO UyBpbnQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAndmFydGVzdF9meCBleGVjdXRlZCc7 CisgIFJFVFVSTiAwOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgaW50IERFRkFVTFQgdmFydGVzdF9meCgpOworCistLSB2YXJ0ZXN0X2Z4IHNo b3VsZCBiZSBwcm90ZWN0ZWQgYnkgZGVwLCBzaG91bGQgZmFpbAorRFJPUCBGVU5DVElPTiB2YXJ0 ZXN0X2Z4KCk7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKKy0tIHRoZSBkZWZl eHByIHNob3VsZCBiZSBldmFsdWF0ZWQgb25seSBvbmNlCitTRUxFQ1QgdmFyMTsKKworRElTQ0FS RCBWQVJJQUJMRVM7CisKKy0tIGluIHRoaXMgY2FzZSwgdGhlIGRlZmV4cHIgc2hvdWxkIG5vdCBi ZSBldmFsdWF0ZWQKK0xFVCB2YXIxID0gMTAwOworU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQgVkFS SUFCTEVTOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVS TlMgaW50IEFTICQkCitCRUdJTgorICBSQUlTRSBFWENFUFRJT04gJ3ZhcnRlc3RfZnggaXMgZXhl Y3V0aW5nJzsKKyAgUkVUVVJOIDA7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCistLSBz aG91bGQgdG8gZmFpbCwgYnV0IG5vdCB0byBjcmFzaAorU0VMRUNUIHZhcjE7CisKKy0tIGFnYWlu CitTRUxFQ1QgdmFyMTsKKworLS0gYnV0IHdlIGNhbiB3cml0ZQorTEVUIHZhcjEgPSAxMDA7CitT RUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiB2YXJ0ZXN0 X2Z4KCk7Ci0tIAoyLjQ3LjEKCg== --0000000000008953c9062b346e70 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250108-0013-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Disposition: attachment; filename="v20250108-0013-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5o4agjt9 RnJvbSA5ZTMyNWU5NGM1NGQ1YmEyNmE1MjA4MjU1MjRkNjFhOGI5YTAyOTA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMjoxMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTMvMjJdIEltcGxlbWVudGF0aW9uIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCBjbGF1c2UKClRo aXMgaXMgc2ltcGxlIHBhdGNoIC0ganVzdCBhZGQgc3BlY2lhbCBmbGFnIHRvIHNlc3Npb24gdmFy aWFibGUgbWVtb3J5IGVudHJ5LgpUaGUgZW50cmllcyB3aXRoIGFjdGl2ZSB0aGlzIGZsYWcgYXJl IHJlbW92ZWQgZnJvbSBzZXNzaW9udmFycyBoYXNoIHRhYmxlCmF0IHRyYW5zYWN0aW9uIGVuZC4g VGhlICJUUkFOU0FDVElPTiBFTkQiIGlzIHN5bm9ueW1zIGZvciAiQ09NTUlUIFJPTExCQUNLIgpi dXQgdGhlICJUUkFOU0FDVElPTiBFTkQiIGlzIG1vcmUgaWxsdXN0cmF0aXZlIGFuZCBsZXNzIGNv bmZ1c2luZyB0aGVuICJDT01NSVQgUk9MTEJBQ0siLgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAzICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAxMyArKysrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgNTEgKysrKysrKysrKysrKysrKysrKwogc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgMTEgKysrKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgMTggKysrKysrKwogc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgIDEgKwogLi4uL2lzb2xhdGlvbi9l eHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgIDQgKy0KIC4uLi9pc29sYXRpb24vc3Bl Y3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICA0ICstCiAuLi4vcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAzNCArKysrKysrKysrKysrCiBzcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyMCArKysrKysrKwogMTMgZmls ZXMgY2hhbmdlZCwgMTU4IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bAppbmRleCBmNjUxYWQ5MGIxLi4yMGZjNWQ2MGNmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtOTg0NSw3 ICs5ODQ1LDggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3Vu dCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT4KICAgICAg IDxwYXJhPgogICAgICAgIEFjdGlvbiBwZXJmb3JtZWQgYXQgZW5kIG9mIHRyYW5zYWN0aW9uOgot ICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0gbm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRl cmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLgorICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0g bm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRlcmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLAorICAg ICAgIDxsaXRlcmFsPnI8L2xpdGVyYWw+ID0gcmVzZXQgdGhlIHZhcmlhYmxlIHRvIGl0cyBkZWZh dWx0IHZhbHVlLgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCBhODhlMDE3NWJlLi5jODlhNjVmYjU1IDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTI3LDcgKzI3LDcgQEAgUG9z dGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgogQ1JF QVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBD T0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2Vh YmxlPiBdCi0gICAgWyBPTiBDT01NSVQgRFJPUCBdCisgICAgWyB7IE9OIENPTU1JVCBEUk9QIHwg T04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIH0gXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lz ZGl2PgogIDxyZWZzZWN0MT4KQEAgLTExNyw2ICsxMTcsMTcgQEAgQ1JFQVRFIFsgeyBURU1QT1JB UlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xh c3M9InAKICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0 ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1vbi10cmFuc2FjdGlvbi1lbmQtcmVzZXQiPgor ICAgIDx0ZXJtPjxsaXRlcmFsPk9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDwvbGl0ZXJhbD48L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSA8bGl0ZXJhbD5PTiBU UkFOU0FDVElPTiBFTkQgUkVTRVQ8L2xpdGVyYWw+IGNsYXVzZSBjYXVzZXMgdGhlIHNlc3Npb24K KyAgICAgIHZhcmlhYmxlIHRvIGJlIHJlc2V0IHRvIGl0cyBkZWZhdWx0IHZhbHVlIHdoZW4gdGhl IHRyYW5zYWN0aW9uIGlzIGNvbW1pdHRlZAorICAgICAgb3Igcm9sbGVkIGJhY2suCisgICAgIDwv cGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgPC92YXJpYWJs ZWxpc3Q+CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5jCmluZGV4IGE2YmJlY2Y0ZTIuLjQ1ZTQzMWE1NDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTkxLDYgKzkxLDggQEAgdHlwZWRlZiBzdHJ1Y3QgU1Zhcmlh YmxlRGF0YQogCXZvaWQJICAgKmRvbWFpbl9jaGVja19leHRyYTsKIAlMb2NhbFRyYW5zYWN0aW9u SWQgZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQ7CiAKKwlib29sCQlyZXNldF9hdF9lb3g7CisKIAkv KgogCSAqIFRvcCBsZXZlbCBsb2NhbCB0cmFuc2FjdGlvbiBpZCBvZiB0aGUgbGFzdCB0cmFuc2Fj dGlvbiB0aGF0IGRyb3BwZWQgdGhlCiAJICogdmFyaWFibGUsIGlmIGFueS4gIFdlIG5lZWQgdGhp cyBpbmZvcm1hdGlvbiB0byBhdm9pZCBmcmVlaW5nIG1lbW9yeSBmb3IKQEAgLTExOCw2ICsxMjAs MTIgQEAgc3RhdGljIE1lbW9yeUNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9IE5VTEw7 CiAvKiBiZWNvbWVzIHRydWUgd2hlbiB3ZSByZWNlaXZlIGEgc2ludmFsIG1lc3NhZ2UgKi8KIHN0 YXRpYyBib29sIG5lZWRzX3ZhbGlkYXRpb24gPSBmYWxzZTsKIAorLyoKKyAqIHRydWUsIHdoZW4g c29tZSB1c2VkIHNlc3Npb24gdmFyaWFibGUgaGFzIE9OIENPTU1JVCBEUk9QCisgKiBvciBPTiBU UkFOU0FDVElPTiBFTkQgUkVTRVQgY2xhdXNlcworICovCitzdGF0aWMgYm9vbCBoYXNfc2Vzc2lv bl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKKwogLyoKICAqIFRoZSBjb250 ZW50IG9mIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaXMgbm90IHJlbW92ZWQgaW1tZWRpYXRl bHkuICBJZgogICogcG9zc2libGUsIHdlIGRvIHRoYXQgYXQgdGhlIGVuZCBvZiB0aGUgdHJhbnNh Y3Rpb24uICBCdXQgd2UgY2Fubm90IGRvIHRoYXQKQEAgLTM5Myw2ICs0MDEsMzIgQEAgcmVtb3Zl X2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoYm9vbCBhdEVPWCkKIAl9CiB9CiAKKy8qCisgKiBy ZW1vdmUgZW50cmllcyBtYXJrZWQgYXMgInJlc2V0X2F0X2VveCIKKyAqLworc3RhdGljIHZvaWQK K3JlbW92ZV9zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCh2b2lkKQoreworCUhB U0hfU0VRX1NUQVRVUyBzdGF0dXM7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwlpZiAoIXNlc3Npb252 YXJzKQorCQlyZXR1cm47CisKKwkvKiBsZWF2ZSBxdWNrbHksIHdoZW4gdGhlcmUgYXJlIG5vdCB0 aGF0IHZhcmlhYmxlcyAqLworCWlmICghaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dpdGhfcmVzZXRf YXRfZW94KQorCQlyZXR1cm47CisKKwloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJz KTsKKwl3aGlsZSAoKHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1cykp ICE9IE5VTEwpCisJeworCQlpZiAoc3Zhci0+cmVzZXRfYXRfZW94KQorCQkJaGFzaF9zZWFyY2go c2Vzc2lvbnZhcnMsICZzdmFyLT52YXJpZCwgSEFTSF9SRU1PVkUsIE5VTEwpOworCX0KKworCWhh c19zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCA9IGZhbHNlOworfQorCiAvKgog ICAqIFBlcmZvcm0gT04gQ09NTUlUIERST1AgZm9yIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxl cywKICAgKiBhbmQgcmVtb3ZlIGFsbCBkcm9wcGVkIHZhcmlhYmxlcyBmcm9tIG1lbW9yeS4KQEAg LTQwMCw2ICs0MzQsOCBAQCByZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhib29sIGF0 RU9YKQogdm9pZAogQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0KQog eworCXJlbW92ZV9zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCgpOworCiAJaWYg KGlzQ29tbWl0KQogCXsKIAkJaWYgKHhhY3RfZHJvcF9pdGVtcykKQEAgLTUxMSw2ICs1NDcsMjEg QEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkKQogCXN2 YXItPmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7CiAJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJh X2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOwogCisJLyoKKwkgKiBXZSBkb24ndCBu ZWVkIHRvIGV4cGxpY2l0bHkgcmVzZXQgdmFyaWFibGVzIG1hcmtlZCBPTiBDT01NSVQgRFJPUC4g SXQKKwkgKiBjYW4gYmUgZG9uZSBieSBzaW52YWwgbWVzc2FnZSBwcm9jZXNzaW5nLiBCdXQgdGhp cyBwcm9jZXNzaW5nIGNhbiBiZQorCSAqIHBvc3Rwb25lZCBkdWUgYWJvcnRlZCB0cmFuc2FjdGlv bi4gT24gc2Vjb25kIGhhbmQgdGhlcmUgaXMgbm90IGEKKwkgKiByZWFzb24sIHdoeSBkb24ndCBk byBpdCBhdCB0cmFuc2FjdGlvbiBlbmQgaW1tZWRpYXRlbHkuCisJICovCisJaWYgKHZhcmZvcm0t PnZhcnhhY3RlbmRhY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9SRVNFVCB8fAorCQl2YXJmb3Jt LT52YXJ4YWN0ZW5kYWN0aW9uID09IFZBUklBQkxFX1hBQ1RFTkRfRFJPUCkKKwl7CisJCXN2YXIt PnJlc2V0X2F0X2VveCA9IHRydWU7CisJCWhhc19zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0 X2F0X2VveCA9IHRydWU7CisJfQorCWVsc2UKKwkJc3Zhci0+cmVzZXRfYXRfZW94ID0gZmFsc2U7 CisKIAlzdmFyLT5kcm9wX2x4aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKIAogCXN2YXItPmlz bnVsbCA9IHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA3YzA4OTU0OWI0Li44M2NmOTFkM2VmIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKQEAgLTUyNTgsNiArNTI1OCw3IEBAIENyZWF0ZVNlc3Npb25WYXJTdG10OgogICog dHJhbnNhY3Rpb24gZW5kIGxpa2UgdGFibGVzLgogICovCiBYYWN0RW5kQWN0aW9uT3B0aW9uOiAg T04gQ09NTUlUIERST1AJCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfRFJPUDsgfQorCQkJfCBP TiBUUkFOU0FDVElPTiBFTkRfUCBSRVNFVAkJCXsgJCQgPSBWQVJJQUJMRV9YQUNURU5EX1JFU0VU OyB9CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfTk9PUDsg fQogCQk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDllMzJjNDc4NDEuLmYyZjM3NzljNjcgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYwpAQCAtNTQzNiw2ICs1NDM2LDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJ aW50CQkJaV92YXJuYW1lc3BhY2U7CiAJaW50CQkJaV92YXJ0eXBlOwogCWludAkJCWlfdmFydHlw bmFtZTsKKwlpbnQJCQlpX3ZhcnhhY3RlbmRhY3Rpb247CiAJaW50CQkJaV92YXJvd25lcjsKIAlp bnQJCQlpX3ZhcmNvbGxhdGlvbjsKIAlpbnQJCQlpX3ZhcmFjbDsKQEAgLTU0NTMsNiArNTQ1NCw3 IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCS8qIGdldCB0aGUgdmFyaWFibGVzIGlu IGN1cnJlbnQgZGF0YWJhc2UgKi8KIAlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKIAkJCQkJICAi U0VMRUNUIHYudGFibGVvaWQsIHYub2lkLCB2LnZhcm5hbWUsXG4iCisJCQkJCSAgIiAgICAgICB2 LnZhcnhhY3RlbmRhY3Rpb24sXG4iCiAJCQkJCSAgIiAgICAgICB2LnZhcm5hbWVzcGFjZSwgdi52 YXJ0eXBlLFxuIgogCQkJCQkgICIgICAgICAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZSh2LnZhcnR5 cGUsIHYudmFydHlwbW9kKSBhcyB2YXJ0eXBuYW1lLFxuIgogCQkJCQkgICIgICAgICAgQ0FTRSBX SEVOIHYudmFyY29sbGF0aW9uIDw+IHQudHlwY29sbGF0aW9uICIKQEAgLTU0NzUsNiArNTQ3Nyw3 IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCWlfdmFybmFtZXNwYWNlID0gUFFmbnVt YmVyKHJlcywgInZhcm5hbWVzcGFjZSIpOwogCWlfdmFydHlwZSA9IFBRZm51bWJlcihyZXMsICJ2 YXJ0eXBlIik7CiAJaV92YXJ0eXBuYW1lID0gUFFmbnVtYmVyKHJlcywgInZhcnR5cG5hbWUiKTsK KwlpX3ZhcnhhY3RlbmRhY3Rpb24gPSBQUWZudW1iZXIocmVzLCAidmFyeGFjdGVuZGFjdGlvbiIp OwogCWlfdmFyY29sbGF0aW9uID0gUFFmbnVtYmVyKHJlcywgInZhcmNvbGxhdGlvbiIpOwogCiAJ aV92YXJvd25lciA9IFBRZm51bWJlcihyZXMsICJ2YXJvd25lciIpOwpAQCAtNTQ5OCw2ICs1NTAx LDkgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAKIAkJdmFyaW5mb1tpXS52YXJ0eXBl ID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcnR5cGUpKTsKIAkJdmFyaW5mb1tpXS52 YXJ0eXBuYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcnR5cG5hbWUpKTsK KwkJdmFyaW5mb1tpXS52YXJ4YWN0ZW5kYWN0aW9uID0KKwkJCXBnX3N0cmR1cChQUWdldHZhbHVl KHJlcywgaSwgaV92YXJ4YWN0ZW5kYWN0aW9uKSk7CisKIAkJdmFyaW5mb1tpXS52YXJjb2xsYXRp b24gPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyY29sbGF0aW9uKSk7CiAKIAkJdmFy aW5mb1tpXS5kYWNsLmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJhY2wp KTsKQEAgLTU1MzgsNiArNTU0NCw3IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25z dCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJUFFFeHBCdWZmZXIgcXVlcnk7CiAJY2hhcgkgICAq cXVhbHZhcm5hbWU7CiAJY29uc3QgY2hhciAqdmFydHlwbmFtZTsKKwljb25zdCBjaGFyICp2YXJ4 YWN0ZW5kYWN0aW9uOwogCU9pZAkJCXZhcmNvbGxhdGlvbjsKIAogCS8qIHNraXAgaWYgbm90IHRv IGJlIGR1bXBlZCAqLwpAQCAtNTU0OSw2ICs1NTU2LDcgQEAgZHVtcFZhcmlhYmxlKEFyY2hpdmUg KmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAogCXF1YWx2YXJuYW1lID0gcGdf c3RyZHVwKGZtdFF1YWxpZmllZER1bXBhYmxlKHZhcmluZm8pKTsKIAl2YXJ0eXBuYW1lID0gdmFy aW5mby0+dmFydHlwbmFtZTsKKwl2YXJ4YWN0ZW5kYWN0aW9uID0gdmFyaW5mby0+dmFyeGFjdGVu ZGFjdGlvbjsKIAl2YXJjb2xsYXRpb24gPSB2YXJpbmZvLT52YXJjb2xsYXRpb247CiAKIAlhcHBl bmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJPUCBWQVJJQUJMRSAlcztcbiIsCkBAIC01NTY3LDYgKzU1 NzUsOSBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2 YXJpbmZvKQogCQkJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY29sbCkpOwogCX0KIAorCWlm IChzdHJjbXAodmFyeGFjdGVuZGFjdGlvbiwgInIiKSA9PSAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZl cihxdWVyeSwgIiBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQiKTsKKwogCWFwcGVuZFBRRXhwQnVm ZmVyKHF1ZXJ5LCAiO1xuIik7CiAKIAlpZiAodmFyaW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01Q T05FTlRfREVGSU5JVElPTikKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgg Yi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDhhNjJiNWI0MTIuLmE5YWM3MGQ3NjEg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuaApAQCAtNzE3LDYgKzcxNyw3IEBAIHR5cGVkZWYgc3RydWN0IF9WYXJpYWJs ZUluZm8KIAlEdW1wYWJsZUFjbCBkYWNsOwogCU9pZAkJCXZhcnR5cGU7CiAJY2hhcgkgICAqdmFy dHlwbmFtZTsKKwljaGFyCSAgICp2YXJ4YWN0ZW5kYWN0aW9uOwogCWNoYXIJICAgKnZhcmFjbDsK IAljaGFyCSAgICpydmFyYWNsOwogCWNoYXIJICAgKmluaXR2YXJhY2w7CmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9w Z19kdW1wLnBsCmluZGV4IDY0MjNlN2I5ZDIuLjdiMGNjMmM1ZDkgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9w Z19kdW1wLnBsCkBAIC0zOTg3LDYgKzM5ODcsMjQgQEAgbXkgJXRlc3RzID0gKAogCQl9LAogCX0s CiAKKwknQ1JFQVRFIFZBUklBQkxFIHRlc3RfdmFyaWFibGUgT04gVFJBTlNBQ1RJT04gRU5EIFJF U0VUJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFU RSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9 PiAnQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTIgQVMgaW50ZWdlciBPTiBUUkFO U0FDVElPTiBFTkQgUkVTRVQ7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFZBUklB QkxFIGR1bXBfdGVzdC52YXJpYWJsZTIgQVMgaW50ZWdlciBPTiBUUkFOU0FDVElPTiBFTkQgUkVT RVQ7XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2No ZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7 CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJl bWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKIAknQ1JFQVRFIFZJRVcgdGVzdF92aWV3JyA9PiB7 CiAJCWNyZWF0ZV9vcmRlciA9PiA2MSwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFZJRVcgZHVt cF90ZXN0LnRlc3RfdmlldwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9z cmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBkNmQzMGU3M2VlLi4zZjc0MzY3NmNhIDEwMDY0 NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3Jp YmUuYwpAQCAtNTI3Myw2ICs1MjczLDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0 ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQo di52YXJvd25lcikgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIENBU0Ugdi52YXJ4YWN0ZW5kYWN0 aW9uXG4iCiAJCQkJCSAgIiAgICBXSEVOICdkJyBUSEVOICdPTiBDT01NSVQgRFJPUCdcbiIKKwkJ CQkJICAiICAgIFdIRU4gJ3InIFRIRU4gJ09OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCdcbiIKIAkJ CQkJICAiICBFTkQgYXMgXCIlc1wiXG4iLAogCQkJCQkgIGdldHRleHRfbm9vcCgiU2NoZW1hIiks CiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgK aW5kZXggMGZjNjcyYmMyYi4uMDA4ZjJlZTdjMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUu aApAQCAtNzUsNiArNzUsNyBAQCB0eXBlZGVmIGVudW0gVmFyaWFibGVYYWN0RW5kQWN0aW9uCiB7 CiAJVkFSSUFCTEVfWEFDVEVORF9OT09QID0gJ24nLAkvKiBOT09QICovCiAJVkFSSUFCTEVfWEFD VEVORF9EUk9QID0gJ2QnLAkvKiBPTiBDT01NSVQgRFJPUCAqLworCVZBUklBQkxFX1hBQ1RFTkRf UkVTRVQgPSAncicsCS8qIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCAqLwogfQkJCVZhcmlhYmxl WGFjdEVuZEFjdGlvbjsKIAogLyogLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0IGIvc3JjL3Rlc3QvaXNv bGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CmluZGV4IGE2MDk3OTdkYzUuLmU5 YTI1NGJjZDEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9u LXZhcmlhYmxlLm91dAorKysgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12 YXJpYWJsZS5vdXQKQEAgLTg2LDExICs4NiwxMiBAQCBteXZhcgogCiBzdGVwIHNyMTogUk9MTEJB Q0s7CiAKLXN0YXJ0aW5nIHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgb19jX2QgY3JlYXRl NCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQorc3RhcnRpbmcgcGVy bXV0YXRpb246IGNyZWF0ZTMgbGV0MyBzMyBvX2NfZCBvX2VveF9yIGNyZWF0ZTQgbGV0NCBkcm9w NCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgY2xlYW4gc3RhdGUKIHN0ZXAgY3JlYXRlMzogQ1JF QVRFIFZBUklBQkxFIG15dmFyMyBBUyB0ZXh0Owogc3RlcCBsZXQzOiBMRVQgbXl2YXIzID0gJ3Rl c3QnOwogc3RlcCBzMzogQkVHSU47CiBzdGVwIG9fY19kOiBDUkVBVEUgVEVNUCBWQVJJQUJMRSBt eXZhcl9vX2NfZCBBUyB0ZXh0IE9OIENPTU1JVCBEUk9QOworc3RlcCBvX2VveF9yOiBDUkVBVEUg VkFSSUFCTEUgbXl2YXJfb19lb3hfciBBUyB0ZXh0IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDsg TEVUIG15dmFyX29fZW94X3IgPSAndGVzdCc7CiBzdGVwIGNyZWF0ZTQ6IENSRUFURSBWQVJJQUJM RSBteXZhcjQgQVMgdGV4dDsKIHN0ZXAgbGV0NDogTEVUIG15dmFyNCA9ICd0ZXN0JzsKIHN0ZXAg ZHJvcDQ6IERST1AgVkFSSUFCTEUgbXl2YXI0OwpAQCAtMTAzLDYgKzEwNCw3IEBAIHQKIAogc3Rl cCBkaXNjYXJkOiBESVNDQVJEIFZBUklBQkxFUzsKIHN0ZXAgc2MzOiBDT01NSVQ7CitzdGVwIGNs ZWFuOiBEUk9QIFZBUklBQkxFIG15dmFyX29fZW94X3I7CiBzdGVwIHN0YXRlOiBTRUxFQ1QgdmFy bmFtZSBGUk9NIHBnX3ZhcmlhYmxlOwogdmFybmFtZQogLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYyBiL3NyYy90ZXN0L2lz b2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKaW5kZXggNDVlNjVkNDA4NS4uNWQw ODljOGE0ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFy aWFibGUuc3BlYworKysgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJs ZS5zcGVjCkBAIC0yNSwxMiArMjUsMTQgQEAgc2Vzc2lvbiBzMwogc3RlcCBzMwkJCXsgQkVHSU47 IH0KIHN0ZXAgbGV0MwkJeyBMRVQgbXl2YXIzID0gJ3Rlc3QnOyB9CiBzdGVwIG9fY19kCQl7IENS RUFURSBURU1QIFZBUklBQkxFIG15dmFyX29fY19kIEFTIHRleHQgT04gQ09NTUlUIERST1A7IH0K K3N0ZXAgb19lb3hfcgl7IENSRUFURSBWQVJJQUJMRSBteXZhcl9vX2VveF9yIEFTIHRleHQgT04g VFJBTlNBQ1RJT04gRU5EIFJFU0VUOyBMRVQgbXl2YXJfb19lb3hfciA9ICd0ZXN0JzsgfQogc3Rl cCBjcmVhdGU0CXsgQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0OyB9CiBzdGVwIGxldDQJ CXsgTEVUIG15dmFyNCA9ICd0ZXN0JzsgfQogc3RlcCBkcm9wNAkJeyBEUk9QIFZBUklBQkxFIG15 dmFyNDsgfQogc3RlcCBpbnZhbDMJCXsgU0VMRUNUIENPVU5UKCopID49IDAgRlJPTSBwZ19mb3Jl aWduX3RhYmxlOyB9CiBzdGVwIGRpc2NhcmQJeyBESVNDQVJEIFZBUklBQkxFUzsgfQogc3RlcCBz YzMJCXsgQ09NTUlUOyB9CitzdGVwIGNsZWFuCQl7IERST1AgVkFSSUFCTEUgbXl2YXJfb19lb3hf cjsgfQogc3RlcCBzdGF0ZQkJeyBTRUxFQ1QgdmFybmFtZSBGUk9NIHBnX3ZhcmlhYmxlOyB9CiAK IHNlc3Npb24gczQKQEAgLTQ4LDQgKzUwLDQgQEAgcGVybXV0YXRpb24gbGV0IHZhbCBkYmcgZHJv cCBjcmVhdGUgZGJnIHZhbAogIyBjYWxsaW5nIHRoZSBkYmcgc3RlcCBhZnRlciB0aGUgY29uY3Vy cmVudCBkcm9wCiBwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFs IHNyMQogIyB0ZXN0IGZvciBESVNDQVJEIEFMTCB3aGVuIGFsbCBpbnRlcm5hbCBxdWV1ZXMgaGF2 ZSBhY3Rpb25zIHJlZ2lzdGVyZWQKLXBlcm11dGF0aW9uIGNyZWF0ZTMgbGV0MyBzMyBvX2NfZCBj cmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0YXRlCitwZXJtdXRh dGlvbiBjcmVhdGUzIGxldDMgczMgb19jX2Qgb19lb3hfciBjcmVhdGU0IGxldDQgZHJvcDQgZHJv cDMgaW52YWwzIGRpc2NhcmQgc2MzIGNsZWFuIHN0YXRlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDE0ZGI5MWY5MGEuLjQ5NjdkZWM4 MWEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJs ZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMu b3V0CkBAIC0yMzU1LDMgKzIzNTUsMzcgQEAgU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lv bl92YXJpYWJsZXMoKTsKICAgICAgMAogKDEgcm93KQogCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUOworQkVHSU47CisgIExFVCB2YXIxID0gMTAw OworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitDT01N SVQ7CistLSBzaG91bGQgYmUgTlVMTDsKK1NFTEVDVCB2YXIxIElTIE5VTEw7CisgP2NvbHVtbj8g CistLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitCRUdJTjsKKyAgTEVUIHZhcjEgPSAxMDA7Cisg IFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK1JPTExCQUNL OworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxIElTIE5VTEw7CisgP2NvbHVtbj8gCist LS0tLS0tLS0tCisgdAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggNjhkY2I3MWYxNy4uMjQxNzUx YTI1YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAt MTYxOCwzICsxNjE4LDIzIEBAIENPTU1JVDsKIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Zhcmlh YmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CiAtLSBzaG91bGQgYmUgemVybwogU0VMRUNUIGNv dW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgaW50IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDsKKworQkVHSU47CisgIExFVCB2YXIx ID0gMTAwOworICBTRUxFQ1QgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIE5VTEw7CitT RUxFQ1QgdmFyMSBJUyBOVUxMOworCitCRUdJTjsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVD VCB2YXIxOworUk9MTEJBQ0s7CisKKy0tIHNob3VsZCBiZSBOVUxMCitTRUxFQ1QgdmFyMSBJUyBO VUxMOworCitEUk9QIFZBUklBQkxFIHZhcjE7Ci0tIAoyLjQ3LjEKCg== --0000000000008953c9062b346e70 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250108-0012-implementation-of-temporary-session-variables.patch" Content-Disposition: attachment; filename="v20250108-0012-implementation-of-temporary-session-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5o4agk010 RnJvbSBmNTllM2IwNzViMmU3ODEwNmYxZmY3ZGI5NjMyYzBjODkzZTU3MzI4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMDoyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTIvMjJdIGltcGxlbWVudGF0aW9uIG9mIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlcwoKVGhl IHRlbXBvcmFyeSB2YXJpYWJsZXMgYXJlIGNyZWF0ZWQgaW5zaWRlIHRlbXAgc2NoZW1hIGFuZCB0 aGV5IGFyZSBkcm9wcGVkIGJ5IGRyb3BwaW5nCnRoaXMgc2NoZW1hLiBGb3IgY29uc2lzdGVuY3kg d2l0aCB0ZW1wIHRhYmxlcywgdGhlIENSRUFURSBURU1QIFZBUklBQkxFIGNvbW1hbmQgc3VwcG9y dHMKT04gQ09NTUlUIERST1AgY2xhdXNlLiBUaGUgdGVtcG9yYXJ5IHZhcmlhYmxlcyB3aXRoIHRo aXMgY2xhdXNlIGFyZSBjb2xsZWN0ZWQgaW4geGFjdF9kcm9wX2l0ZW1zCmxpc3QuIFRoaXMgbGlz dCBzaG91bGQgYmUgY2FyZWZ1bGx5IG1haW50YWluZWQgYW5kIGNhbiBjb250YWluIG9ubHkgdmFs aWQgZW50cmllcyAobm90CnlldCBkcm9wcGVkKS4gRnJvbSB0aGlzIHJlYXNvbnMgbm93IHRoZSBz dWJjb21taXQgYW5kIHN1YmFib3J0aW5nIGhhdmUgdG8gYmUgaGFuZGxlZC4KLS0tCiBkb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTAgKwogZG9jL3NyYy9z Z21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBkb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAgMTUgKy0KIHNyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hhY3QuYyAgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgMjcgKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAyMTggKysrKysrKysrKysrKysrKyst CiBzcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IHNyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgICAgICAgICAgICAgICAgICB8ICAgNCArLQog c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDMwICsrLQog c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgICAgICAgICAgIHwgIDIyICstCiBz cmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKy0KIHNy Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAgNSArLQogc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgICA5ICsKIHNyYy9p bmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgNiArLQogc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNs dWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2luY2x1 ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmggICAgICAgICAgIHwgICAyICstCiAuLi4vaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0ICAgfCAgIDMgKy0KIC4uLi9pc29sYXRp b24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICAgMyArLQogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAgICAgICAgIHwgIDM2ICstLQogLi4uL3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMTIwICsrKysrKysrKysKIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA2NiArKysrKysKIHNy Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgMSArCiAyMyBm aWxlcyBjaGFuZ2VkLCA1NDQgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbAppbmRleCA2N2U2NDU5MjUwLi5mNjUxYWQ5MGIxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtOTgz OSw2ICs5ODM5LDE2IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24g Y291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8L3BhcmE+PC9l bnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPnZhcnhhY3RlbmRhY3Rpb248L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFyPC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgQWN0aW9uIHBlcmZvcm1l ZCBhdCBlbmQgb2YgdHJhbnNhY3Rpb246CisgICAgICAgPGxpdGVyYWw+bjwvbGl0ZXJhbD4gPSBu byBhY3Rpb24sIDxsaXRlcmFsPmQ8L2xpdGVyYWw+ID0gZHJvcCB0aGUgdmFyaWFibGUuCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CiAgICAgICAgPHN0cnVjdGZpZWxkPnZhcmNvbGxhdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBl Pm9pZDwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMv c2dtbC9kZGwuc2dtbAppbmRleCA1YzU4MWVlMTQzLi4xNDMzZjAzM2Q3IDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC01Mzg1 LDkgKzUzODUsOSBAQCBTRUxFQ1QgY3VycmVudF91c2VyX2lkOwogICAgIDxjb21tYW5kPkxFVDwv Y29tbWFuZD4gY29tbWFuZC4gIFNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgdHJhbnNhY3Rpb25h bDoKICAgICBhbnkgY2hhbmdlcyBtYWRlIHRvIHRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFi bGUgaW4gYSB0cmFuc2FjdGlvbiB3b24ndAogICAgIGJlIHVuZG9uZSBpZiB0aGUgdHJhbnNhY3Rp b24gaXMgcm9sbGVkIGJhY2sgKGp1c3QgbGlrZSB2YXJpYWJsZXMgaW4KLSAgICBwcm9jZWR1cmFs IGxhbmd1YWdlcykuICBTZXNzaW9uIHZhcmlhYmxlcyB0aGVtc2VsdmVzIGFyZSBwZXJzaXN0ZW50 LCBidXQKLSAgICB0aGVpciB2YWx1ZXMgYXJlIG5laXRoZXIgcGVyc2lzdGVudCBub3Igc2hhcmVk IChsaWtlIHRoZSBjb250ZW50IG9mCi0gICAgdGVtcG9yYXJ5IHRhYmxlcykuCisgICAgcHJvY2Vk dXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lvbiB2YXJpYWJsZXMgdGhlbXNlbHZlcyBjYW4gYmUgcGVy c2lzdGVudAorICAgIG9yIHRlbXBvcmFyeSwgYnV0IHRoZWlyIHZhbHVlcyBhcmUgbmVpdGhlciBw ZXJzaXN0ZW50IG5vciBzaGFyZWQgKGxpa2UgdGhlCisgICAgY29udGVudCBvZiB0ZW1wb3Jhcnkg dGFibGVzKS4KICAgIDwvcGFyYT4KIAogICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFy aWFibGUuc2dtbAppbmRleCBjZDlmZjYzOTc1Li5hODhlMDE3NWJlIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTI2LDcgKzI2LDggQEAgUG9zdGdyZVNRTCBkb2N1bWVu dGF0aW9uCiAKICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+Ci1DUkVBVEUgVkFSSUFCTEUg WyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlw ZTwvcmVwbGFjZWFibGU+IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQorQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0g XSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCisgICAgWyBPTiBDT01NSVQgRFJP UCBdCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CiAgPHJlZnNlY3QxPgpAQCAtMTA0 LDYgKzEwNSwxOCBAQCBDUkVBVEUgVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYgogICAgIDwvbGlzdGl0ZW0+CiAg ICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlh YmxlLW9uLWNvbW1pdC1kcm9wIj4KKyAgICA8dGVybT48bGl0ZXJhbD5PTiBDT01NSVQgRFJPUDwv bGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSA8 bGl0ZXJhbD5PTiBDT01NSVQgRFJPUDwvbGl0ZXJhbD4gY2xhdXNlIHNwZWNpZmllcyB0aGUgYmVo YXZpb3VyIG9mIGEKKyAgICAgIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlIGF0IHRyYW5zYWN0 aW9uIGNvbW1pdC4gV2l0aCB0aGlzIGNsYXVzZSwgdGhlCisgICAgICBzZXNzaW9uIHZhcmlhYmxl IGlzIGRyb3BwZWQgYXQgY29tbWl0IHRpbWUuIFRoZSBjbGF1c2UgaXMgb25seSBhbGxvd2VkCisg ICAgICBmb3IgdGVtcG9yYXJ5IHZhcmlhYmxlcy4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0 ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICA8L3ZhcmlhYmxlbGlzdD4KICA8L3JlZnNlY3Qx PgogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMKaW5kZXggZDMzMWFiOTBkNy4uNjE2ODQxNWY4 YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3QuYwpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1 ZGUgImNhdGFsb2cvcGdfZW51bS5oIgogI2luY2x1ZGUgImNhdGFsb2cvc3RvcmFnZS5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlY21kcy5oIgogI2luY2x1ZGUgImNvbW1h bmRzL3RyaWdnZXIuaCIKICNpbmNsdWRlICJjb21tb24vcGdfcHJuZy5oIgpAQCAtMjMxNiw2ICsy MzE3LDkgQEAgQ29tbWl0VHJhbnNhY3Rpb24odm9pZCkKIAkgKi8KIAlzbWdyRG9QZW5kaW5nU3lu Y3ModHJ1ZSwgaXNfcGFyYWxsZWxfd29ya2VyKTsKIAorCS8qIHJlbW92ZSB2YWx1ZXMgb2YgZHJv cHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBmcm9tIG1lbW9yeSAqLworCUF0UHJlRU9YYWN0X1Nlc3Np b25WYXJpYWJsZXModHJ1ZSk7CisKIAkvKiBjbG9zZSBsYXJnZSBvYmplY3RzIGJlZm9yZSBsb3dl ci1sZXZlbCBjbGVhbnVwICovCiAJQXRFT1hhY3RfTGFyZ2VPYmplY3QodHJ1ZSk7CiAKQEAgLTI5 MTIsNiArMjkxNiw3IEBAIEFib3J0VHJhbnNhY3Rpb24odm9pZCkKIAlBdEFib3J0X1BvcnRhbHMo KTsKIAlzbWdyRG9QZW5kaW5nU3luY3MoZmFsc2UsIGlzX3BhcmFsbGVsX3dvcmtlcik7CiAJQXRF T1hhY3RfTGFyZ2VPYmplY3QoZmFsc2UpOworCUF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMo ZmFsc2UpOwogCUF0QWJvcnRfTm90aWZ5KCk7CiAJQXRFT1hhY3RfUmVsYXRpb25NYXAoZmFsc2Us IGlzX3BhcmFsbGVsX3dvcmtlcik7CiAJQXRBYm9ydF9Ud29waGFzZSgpOwpAQCAtNTE3Nyw2ICs1 MTgyLDggQEAgQ29tbWl0U3ViVHJhbnNhY3Rpb24odm9pZCkKIAlBdEVPU3ViWGFjdF9TUEkodHJ1 ZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCk7CiAJQXRFT1N1YlhhY3Rfb25fY29tbWl0X2FjdGlvbnMo dHJ1ZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCwKIAkJCQkJCQkJICBzLT5wYXJlbnQtPnN1YlRyYW5z YWN0aW9uSWQpOworCUF0RU9TdWJYYWN0X1Nlc3Npb25WYXJpYWJsZXModHJ1ZSwgcy0+c3ViVHJh bnNhY3Rpb25JZCwKKwkJCQkJCQkJIHMtPnBhcmVudC0+c3ViVHJhbnNhY3Rpb25JZCk7CiAJQXRF T1N1YlhhY3RfTmFtZXNwYWNlKHRydWUsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCiAJCQkJCQkgIHMt PnBhcmVudC0+c3ViVHJhbnNhY3Rpb25JZCk7CiAJQXRFT1N1YlhhY3RfRmlsZXModHJ1ZSwgcy0+ c3ViVHJhbnNhY3Rpb25JZCwKQEAgLTUzNDIsNiArNTM0OSw4IEBAIEFib3J0U3ViVHJhbnNhY3Rp b24odm9pZCkKIAkJQXRFT1N1YlhhY3RfU1BJKGZhbHNlLCBzLT5zdWJUcmFuc2FjdGlvbklkKTsK IAkJQXRFT1N1YlhhY3Rfb25fY29tbWl0X2FjdGlvbnMoZmFsc2UsIHMtPnN1YlRyYW5zYWN0aW9u SWQsCiAJCQkJCQkJCQkgIHMtPnBhcmVudC0+c3ViVHJhbnNhY3Rpb25JZCk7CisJCUF0RU9TdWJY YWN0X1Nlc3Npb25WYXJpYWJsZXMoZmFsc2UsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCisJCQkJCQkJ CQkgcy0+cGFyZW50LT5zdWJUcmFuc2FjdGlvbklkKTsKIAkJQXRFT1N1YlhhY3RfTmFtZXNwYWNl KGZhbHNlLCBzLT5zdWJUcmFuc2FjdGlvbklkLAogCQkJCQkJCSAgcy0+cGFyZW50LT5zdWJUcmFu c2FjdGlvbklkKTsKIAkJQXRFT1N1YlhhY3RfRmlsZXMoZmFsc2UsIHMtPnN1YlRyYW5zYWN0aW9u SWQsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMv YmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKaW5kZXggZDY3MmQyYTljYi4uMDBjOTBlYTZm ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtMzYsNyArMzYsOCBAQCBzdGF0aWMg T2JqZWN0QWRkcmVzcyBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQkJ CQkJCSBpbnQzMiB2YXJUeXBtb2QsCiAJCQkJCQkJCQkgT2lkIHZhck93bmVyLAogCQkJCQkJCQkJ IE9pZCB2YXJDb2xsYXRpb24sCi0JCQkJCQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzKTsKKwkJCQkJ CQkJCSBib29sIGlmX25vdF9leGlzdHMsCisJCQkJCQkJCQkgVmFyaWFibGVYYWN0RW5kQWN0aW9u IHZhclhhY3RFbmRBY3Rpb24pOwogCiAKIC8qCkBAIC00OSw3ICs1MCw4IEBAIGNyZWF0ZV92YXJp YWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCQkJCWludDMyIHZhclR5cG1vZCwKIAkJCQlPaWQg dmFyT3duZXIsCiAJCQkJT2lkIHZhckNvbGxhdGlvbiwKLQkJCQlib29sIGlmX25vdF9leGlzdHMp CisJCQkJYm9vbCBpZl9ub3RfZXhpc3RzLAorCQkJCVZhcmlhYmxlWGFjdEVuZEFjdGlvbiB2YXJY YWN0RW5kQWN0aW9uKQogewogCUFjbAkJICAgKnZhcmFjbDsKIAlOYW1lRGF0YQl2YXJuYW1lOwpA QCAtMTEwLDYgKzExMiw3IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAog CXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnR5cG1vZCAtIDFdID0gSW50MzJHZXREYXR1bSh2 YXJUeXBtb2QpOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zhcm93bmVyIC0gMV0gPSBPYmpl Y3RJZEdldERhdHVtKHZhck93bmVyKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjb2xs YXRpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyQ29sbGF0aW9uKTsKKwl2YWx1ZXNbQW51 bV9wZ192YXJpYWJsZV92YXJ4YWN0ZW5kYWN0aW9uIC0gMV0gPSBDaGFyR2V0RGF0dW0odmFyWGFj dEVuZEFjdGlvbik7CiAKIAl2YXJhY2wgPSBnZXRfdXNlcl9kZWZhdWx0X2FjbChPQkpFQ1RfVkFS SUFCTEUsIHZhck93bmVyLAogCQkJCQkJCQkgIHZhck5hbWVzcGFjZSk7CkBAIC0xODMsNiArMTg2 LDEzIEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZh clN0bXQgKnN0bXQpCiAJT2lkCQkJdHlwY29sbGF0aW9uOwogCU9iamVjdEFkZHJlc3MgdmFyaWFi bGU7CiAKKwkvKiBjaGVjayBjb25zaXN0ZW5jeSBvZiBhcmd1bWVudHMgKi8KKwlpZiAoc3RtdC0+ WGFjdEVuZEFjdGlvbiA9PSBWQVJJQUJMRV9YQUNURU5EX0RST1AKKwkJJiYgc3RtdC0+dmFyaWFi bGUtPnJlbHBlcnNpc3RlbmNlICE9IFJFTFBFUlNJU1RFTkNFX1RFTVApCisJCWVyZXBvcnQoRVJS T1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJ CQkgZXJybXNnKCJPTiBDT01NSVQgRFJPUCBjYW4gb25seSBiZSB1c2VkIG9uIHRlbXBvcmFyeSB2 YXJpYWJsZXMiKSkpOworCiAJbmFtZXNwYWNlaWQgPQogCQlSYW5nZVZhckdldEFuZENoZWNrQ3Jl YXRpb25OYW1lc3BhY2Uoc3RtdC0+dmFyaWFibGUsIE5vTG9jaywgTlVMTCk7CiAKQEAgLTIyMiwx MSArMjMyLDE3IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vz c2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQkJICAgdHlwbW9kLAogCQkJCQkJCSAgIHZhcm93bmVy LAogCQkJCQkJCSAgIGNvbGxhdGlvbiwKLQkJCQkJCQkgICBzdG10LT5pZl9ub3RfZXhpc3RzKTsK KwkJCQkJCQkgICBzdG10LT5pZl9ub3RfZXhpc3RzLAorCQkJCQkJCSAgIHN0bXQtPlhhY3RFbmRB Y3Rpb24pOwogCiAJZWxvZyhERUJVRzEsICJyZWNvcmQgZm9yIHNlc3Npb24gdmFyaWFibGUgXCIl c1wiIChvaWQ6JWQpIHdhcyBjcmVhdGVkIGluIHBnX3ZhcmlhYmxlIiwKIAkJIHN0bXQtPnZhcmlh YmxlLT5yZWxuYW1lLCB2YXJpYWJsZS5vYmplY3RJZCk7CiAKKwkvKiB3ZSB3YW50IFNlc3Npb25W YXJpYWJsZUNyZWF0ZVBvc3Rwcm9jZXNzIHRvIHNlZSB0aGUgY2F0YWxvZyBjaGFuZ2VzLiAqLwor CUNvbW1hbmRDb3VudGVySW5jcmVtZW50KCk7CisKKwlTZXNzaW9uVmFyaWFibGVDcmVhdGVQb3N0 cHJvY2Vzcyh2YXJpYWJsZS5vYmplY3RJZCwgc3RtdC0+WGFjdEVuZEFjdGlvbik7CisKIAlyZXR1 cm4gdmFyaWFibGU7CiB9CiAKQEAgLTIzOSw2ICsyNTUsNyBAQCBEcm9wVmFyaWFibGVCeUlkKE9p ZCB2YXJpZCkKIHsKIAlSZWxhdGlvbglyZWw7CiAJSGVhcFR1cGxlCXR1cDsKKwljaGFyCQlYYWN0 RW5kQWN0aW9uOwogCiAJcmVsID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9uSWQsIFJvd0V4 Y2x1c2l2ZUxvY2spOwogCkBAIC0yNDcsNiArMjY0LDggQEAgRHJvcFZhcmlhYmxlQnlJZChPaWQg dmFyaWQpCiAJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCiAJCWVsb2coRVJST1IsICJjYWNo ZSBsb29rdXAgZmFpbGVkIGZvciB2YXJpYWJsZSAldSIsIHZhcmlkKTsKIAorCVhhY3RFbmRBY3Rp b24gPSAoKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApKS0+dmFyeGFjdGVuZGFjdGlv bjsKKwogCUNhdGFsb2dUdXBsZURlbGV0ZShyZWwsICZ0dXAtPnRfc2VsZik7CiAKIAlSZWxlYXNl U3lzQ2FjaGUodHVwKTsKQEAgLTI1NCw1ICsyNzMsNSBAQCBEcm9wVmFyaWFibGVCeUlkKE9pZCB2 YXJpZCkKIAl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCiAJLyogZG8gdGhl IG5lY2Vzc2FyeSBjbGVhbnVwIGluIGxvY2FsIG1lbW9yeSwgaWYgbmVlZGVkICovCi0JU2Vzc2lv blZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKHZhcmlkKTsKKwlTZXNzaW9uVmFyaWFibGVEcm9wUG9z dHByb2Nlc3ModmFyaWQsIFhhY3RFbmRBY3Rpb24pOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5jCmluZGV4IDdjMTU5ODYwYjQuLmE2YmJlY2Y0ZTIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTE2LDYgKzE2LDggQEAKIAogI2luY2x1 ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgorI2lu Y2x1ZGUgImNhdGFsb2cvZGVwZW5kZW5jeS5oIgorI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNl LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4 ZWN1dG9yL3NwaS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCkBA IC0zMiw2ICszNCwxOSBAQAogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKICNpbmNsdWRlICJ1 dGlscy9zeXNjYWNoZS5oIgogCit0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVYQWN0RHJvcEl0ZW0K K3sKKwlPaWQJCQl2YXJpZDsJCQkvKiB2YXJpZCBvZiBzZXNzaW9uIHZhcmlhYmxlICovCisKKwkv KgorCSAqIGNyZWF0aW5nX3N1YmlkIGlzIHRoZSBJRCBvZiB0aGUgY3JlYXRpbmcgc3VieGFjdC4g SWYgdGhlIGFjdGlvbiB3YXMKKwkgKiB1bnJlZ2lzdGVyZWQgZHVyaW5nIHRoZSBjdXJyZW50IHRy YW5zYWN0aW9uLCBkZWxldGluZ19zdWJpZCBpcyB0aGUgSUQKKwkgKiBvZiB0aGUgZGVsZXRpbmcg c3VieGFjdCwgb3RoZXJ3aXNlIEludmFsaWRTdWJUcmFuc2FjdGlvbklkLgorCSAqLworCVN1YlRy YW5zYWN0aW9uSWQgY3JlYXRpbmdfc3ViaWQ7CisJU3ViVHJhbnNhY3Rpb25JZCBkZWxldGluZ19z dWJpZDsKK30gU1ZhcmlhYmxlWEFjdERyb3BJdGVtOworCiAvKgogICogVGhlIHNlc3Npb24gdmFy aWFibGVzIHVzZSBmZW5jZSBjb250ZXh0IGFsbG93IHRvIHNwZWNpZnkKICAqIHRoZSBjb250ZXh0 cyB3aGVyZSB1c2luZyBzZXNzaW9uIHZhcmlhYmxlIGZlbmNlcyBhcmUgcmVxdWlyZWQuCkBAIC0x MDQsMTMgKzExOSwyMSBAQCBzdGF0aWMgTWVtb3J5Q29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250 ZXh0ID0gTlVMTDsKIHN0YXRpYyBib29sIG5lZWRzX3ZhbGlkYXRpb24gPSBmYWxzZTsKIAogLyoK LSAqIFRoZSBjb250ZW50IG9mIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaXMgbm90IHJlbW92 ZWQgaW1tZWRpYXRlbHkuICBXZSBkbwotICogdGhhdCBpbiB0aGUgbmV4dCB0cmFuc2FjdGlvbiB0 aGF0IHJlYWRzIG9yIHdyaXRlcyBhIHNlc3Npb24gdmFyaWFibGUuCi0gKiAidmFsaWRhdGVkX2x4 aWQiIHN0b3JlcyB0aGUgdHJhbnNhY3Rpb24gdGhhdCBwZXJmb3JtZWQgc2FpZCB2YWxpZGF0aW9u LCBzbwotICogdGhhdCB3ZSBjYW4gYXZvaWQgcmVwZWF0aW5nIHRoZSBlZmZvcnQuCisgKiBUaGUg Y29udGVudCBvZiBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdCByZW1vdmVkIGltbWVk aWF0ZWx5LiAgSWYKKyAqIHBvc3NpYmxlLCB3ZSBkbyB0aGF0IGF0IHRoZSBlbmQgb2YgdGhlIHRy YW5zYWN0aW9uLiAgQnV0IHdlIGNhbm5vdCBkbyB0aGF0CisgKiBpZiB0aGUgdHJhbnNhY3Rpb24g YWJvcnRlZCwgYmVjYXVzZSB3ZSBsb3N0IGFjY2VzcyB0byB0aGUgc3lzdGVtIGNhdGFsb2cuCisg KiBJbiB0aGF0IGNhc2UsIHdlIGNsZWFuIHVwIGluIHRoZSBuZXh0IHRyYW5zYWN0aW9uIHRoYXQg cmVhZHMgb3Igd3JpdGVzIGEKKyAqIHNlc3Npb24gdmFyaWFibGUuICAidmFsaWRhdGVkX2x4aWQi IHN0b3JlcyB0aGUgdHJhbnNhY3Rpb24gdGhhdCBwZXJmb3JtZWQKKyAqIHNhaWQgdmFsaWRhdGlv biwgc28gdGhhdCB3ZSBjYW4gYXZvaWQgcmVwZWF0aW5nIHRoZSBlZmZvcnQuCiAgKi8KIHN0YXRp YyBMb2NhbFRyYW5zYWN0aW9uSWQgdmFsaWRhdGVkX2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2Fj dGlvbklkOwogCisvKiBsaXN0IGhvbGRzIGZpZWxkcyBvZiBTVmFyaWFibGVYQWN0RHJvcEl0ZW0g dHlwZSAqLworc3RhdGljIExpc3QgKnhhY3RfZHJvcF9pdGVtcyA9IE5JTDsKKworc3RhdGljIHZv aWQgcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKTsKK3N0YXRp YyB2b2lkIHVucmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKTsK KwogLyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBzZXNzaW9uIHZhcmlhYmxlIGludmFsaWRh dGlvbi4KICAqLwpAQCAtMTQ3LDE2ICsxNzAsNDUgQEAgcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJh Y2soRGF0dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKIAl9CiB9CiAKKy8q CisgKiBEbyB0aGUgbmVjZXNzYXJ5IHdvcmsgdG8gc2V0dXAgbG9jYWwgbWVtb3J5IG1hbmFnZW1l bnQgb2YgYSBuZXcKKyAqIHZhcmlhYmxlLgorICoKKyAqIENhbGxlciBzaG91bGQgYWxyZWFkeSBo YXZlIGNyZWF0ZWQgdGhlIG5lY2Vzc2FyeSBlbnRyeSBpbiBjYXRhbG9nCisgKiBhbmQgbWFkZSB0 aGVtIHZpc2libGUuCisgKi8KK3ZvaWQKK1Nlc3Npb25WYXJpYWJsZUNyZWF0ZVBvc3Rwcm9jZXNz KE9pZCB2YXJpZCwgY2hhciBYYWN0RW5kQWN0aW9uKQoreworCS8qCisJICogRm9yIHRlbXBvcmFy eSB2YXJpYWJsZXMsIHdlIG5lZWQgdG8gY3JlYXRlIGEgbmV3IGVuZCBvZiB4YWN0IGFjdGlvbiB0 bworCSAqIGVuc3VyZSBkZWxldGlvbiBmcm9tIGNhdGFsb2cuCisJICovCisJaWYgKFhhY3RFbmRB Y3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9EUk9QKQorCXsKKwkJQXNzZXJ0KGlzVGVtcE5hbWVz cGFjZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSk7CisKKwkJcmVnaXN0 ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AodmFyaWQpOworCX0KK30KKwogLyoKICAqIEhh bmRsZSB0aGUgbG9jYWwgbWVtb3J5IGNsZWFudXAgZm9yIGEgRFJPUCBWQVJJQUJMRSBjb21tYW5k LgogICoKICAqIENhbGxlciBzaG91bGQgdGFrZSBjYXJlIG9mIHJlbW92aW5nIHRoZSBwZ192YXJp YWJsZSBlbnRyeSBmaXJzdC4KICAqLwogdm9pZAotU2Vzc2lvblZhcmlhYmxlRHJvcFBvc3Rwcm9j ZXNzKE9pZCB2YXJpZCkKK1Nlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQs IGNoYXIgWGFjdEVuZEFjdGlvbikKIHsKIAlBc3NlcnQoTG9jYWxUcmFuc2FjdGlvbklkSXNWYWxp ZChNeVByb2MtPnZ4aWQubHhpZCkpOwogCisJaWYgKFhhY3RFbmRBY3Rpb24gPT0gVkFSSUFCTEVf WEFDVEVORF9EUk9QKQorCXsKKwkJQXNzZXJ0KGlzVGVtcE5hbWVzcGFjZShnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSk7CisKKwkJdW5yZWdpc3Rlcl9zZXNzaW9uX3Zhcmlh YmxlX3hhY3RfZHJvcCh2YXJpZCk7CisJfQorCiAJaWYgKHNlc3Npb252YXJzKQogCXsKIAkJYm9v bAkJZm91bmQ7CkBAIC0xNzgsNiArMjMwLDU3IEBAIFNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJv Y2VzcyhPaWQgdmFyaWQpCiAJfQogfQogCisvKgorICogUmVnaXN0cmF0aW9uIG9mIGFjdGlvbnMg dG8gYmUgZXhlY3V0ZWQgb24gc2Vzc2lvbiB2YXJpYWJsZXMgYXQgdHJhbnNhY3Rpb24KKyAqIGVu ZCB0aW1lLiBXZSB3YW50IHRvIGRyb3AgdGVtcG9yYXJ5IHNlc3Npb24gdmFyaWFibGVzIHdpdGgg Y2xhdXNlIE9OIENPTU1JVAorICogRFJPUC4KKyAqLworCisvKgorICogUmVnaXN0ZXIgYSBzZXNz aW9uIHZhcmlhYmxlIHhhY3QgYWN0aW9uLgorICovCitzdGF0aWMgdm9pZAorcmVnaXN0ZXJfc2Vz c2lvbl92YXJpYWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKQoreworCVNWYXJpYWJsZVhBY3REcm9w SXRlbSAqeGFjdF9haTsKKwlNZW1vcnlDb250ZXh0IG9sZGN4dDsKKworCW9sZGN4dCA9IE1lbW9y eUNvbnRleHRTd2l0Y2hUbyhDYWNoZU1lbW9yeUNvbnRleHQpOworCisJeGFjdF9haSA9IChTVmFy aWFibGVYQWN0RHJvcEl0ZW0gKikKKwkJcGFsbG9jKHNpemVvZihTVmFyaWFibGVYQWN0RHJvcEl0 ZW0pKTsKKworCXhhY3RfYWktPnZhcmlkID0gdmFyaWQ7CisKKwl4YWN0X2FpLT5jcmVhdGluZ19z dWJpZCA9IEdldEN1cnJlbnRTdWJUcmFuc2FjdGlvbklkKCk7CisJeGFjdF9haS0+ZGVsZXRpbmdf c3ViaWQgPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKKworCXhhY3RfZHJvcF9pdGVtcyA9IGxj b25zKHhhY3RfYWksIHhhY3RfZHJvcF9pdGVtcyk7CisKKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8o b2xkY3h0KTsKK30KKworLyoKKyAqIFVucmVnaXN0ZXIgYW4gaWQgb2YgYSBnaXZlbiBzZXNzaW9u IHZhcmlhYmxlIGZyb20gZHJvcCBsaXN0LiBJbiB0aGlzCisgKiBtb21lbnQsIHRoZSBhY3Rpb24g aXMganVzdCBtYXJrZWQgYXMgZGVsZXRlZCBieSBzZXR0aW5nIGRlbGV0aW5nX3N1YmlkLiBUaGUK KyAqIGNhbGxpbmcgZXZlbiBtaWdodCBiZSByb2xsYmFja2VkLCBpbiB3aGljaCBjYXNlIHdlIHNo b3VsZCBub3QgbG9zZSB0aGlzCisgKiBhY3Rpb24uCisgKi8KK3N0YXRpYyB2b2lkCit1bnJlZ2lz dGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCkKK3sKKwlMaXN0Q2VsbCAg ICpsOworCisJZm9yZWFjaChsLCB4YWN0X2Ryb3BfaXRlbXMpCisJeworCQlTVmFyaWFibGVYQWN0 RHJvcEl0ZW0gKnhhY3RfYWkgPQorCQkJKFNWYXJpYWJsZVhBY3REcm9wSXRlbSAqKSBsZmlyc3Qo bCk7CisKKwkJaWYgKHhhY3RfYWktPnZhcmlkID09IHZhcmlkKQorCQkJeGFjdF9haS0+ZGVsZXRp bmdfc3ViaWQgPSBHZXRDdXJyZW50U3ViVHJhbnNhY3Rpb25JZCgpOworCX0KK30KKwogLyoKICAq IFJlbGVhc2Ugc3RvcmVkIHZhbHVlLCBmcmVlIG1lbW9yeQogICovCkBAIC0yMzAsOSArMzMzLDEx IEBAIGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoU1ZhcmlhYmxlIHN2YXIpCiAvKgogICogQ2hl Y2sgYWxsIHBvdGVudGlhbGx5IGludmFsaWQgc2Vzc2lvbiB2YXJpYWJsZSBkYXRhIGluIGxvY2Fs IG1lbW9yeSBhbmQgZnJlZQogICogdGhlIG1lbW9yeSBmb3IgYWxsIGludmFsaWQgb25lcy4gIFRo aXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJlZm9yZSBhbnkgcmVhZCBvcgotICogd3JpdGUgb2YgYSBz ZXNzaW9uIHZhcmlhYmxlLiAgRnJlZWluZyBvZiBhIHZhcmlhYmxlJ3MgbWVtb3J5IGlzIHBvc3Rw b25lZCBpZgotICogdGhlIHZhcmlhYmxlIGhhcyBiZWVuIGRyb3BwZWQgYnkgdGhlIGN1cnJlbnQg dHJhbnNhY3Rpb24sIHNpbmNlIHRoYXQKLSAqIG9wZXJhdGlvbiBjb3VsZCBzdGlsbCBiZSByb2xs ZWQgYmFjay4KKyAqIHdyaXRlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBvciB3aGVuIHRoZSB0cmFu c2FjdGlvbiBlbmRzLiAgQXQgdGhlIGVuZCBvZiBhCisgKiB0cmFuc2FjdGlvbiAoYXRFT1ggaXMg dHJ1ZSkgd2UgY2FuIGRpc2NhcmQgYWxsIGludmFsaWQgdmFyaWFibGVzLiAgSW5zaWRlIGEKKyAq IHRyYW5zYWN0aW9uIChhdEVPWCBpcyBmYWxzZSkgd2UgcG9zdHBvbmUgZnJlZWluZyBhIHZhcmlh YmxlJ3MgbWVtb3J5IGlmIHRoZQorICogdmFyaWFibGUgaGFzIGJlZW4gZHJvcHBlZCBieSB0aGUg Y3VycmVudCB0cmFuc2FjdGlvbiwgc2luY2UgdGhhdCBvcGVyYXRpb24KKyAqIGNvdWxkIHN0aWxs IGJlIHJvbGxlZCBiYWNrLgogICoKICAqIEl0IGlzIHBvc3NpYmxlIHRoYXQgd2UgcmVjZWl2ZSBh IGNhY2hlIGludmFsaWRhdGlvbiBtZXNzYWdlIHdoaWxlCiAgKiByZW1vdmVfaW52YWxpZF9zZXNz aW9uX3ZhcmlhYmxlcygpIGlzIGV4ZWN1dGluZywgc28gd2UgY2Fubm90IGd1YXJhbnRlZSB0aGF0 CkBAIC0yNDAsNyArMzQ1LDcgQEAgaXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChTVmFyaWFibGUg c3ZhcikKICAqIGRvbmUuICBIb3dldmVyLCB3ZSBjYW4gZ3VhcmFudGVlIHRoYXQgYWxsIGVudHJp ZXMgZ2V0IGNoZWNrZWQgb25jZS4KICAqLwogc3RhdGljIHZvaWQKLXJlbW92ZV9pbnZhbGlkX3Nl c3Npb25fdmFyaWFibGVzKHZvaWQpCityZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhi b29sIGF0RU9YKQogewogCUhBU0hfU0VRX1NUQVRVUyBzdGF0dXM7CiAJU1ZhcmlhYmxlCXN2YXI7 CkBAIC0yNjcsNyArMzcyLDcgQEAgcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXModm9p ZCkKIAl7CiAJCWlmICghc3Zhci0+aXNfdmFsaWQpCiAJCXsKLQkJCWlmIChzdmFyLT5kcm9wX2x4 aWQgPT0gTXlQcm9jLT52eGlkLmx4aWQpCisJCQlpZiAoIWF0RU9YICYmIHN2YXItPmRyb3BfbHhp ZCA9PSBNeVByb2MtPnZ4aWQubHhpZCkKIAkJCXsKIAkJCQkvKiB0cnkgYWdhaW4gaW4gdGhlIG5l eHQgdHJhbnNhY3Rpb24gKi8KIAkJCQluZWVkc192YWxpZGF0aW9uID0gdHJ1ZTsKQEAgLTI4OCw2 ICszOTMsOTUgQEAgcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXModm9pZCkKIAl9CiB9 CiAKKy8qCisgICogUGVyZm9ybSBPTiBDT01NSVQgRFJPUCBmb3IgdGVtcG9yYXJ5IHNlc3Npb24g dmFyaWFibGVzLAorICAqIGFuZCByZW1vdmUgYWxsIGRyb3BwZWQgdmFyaWFibGVzIGZyb20gbWVt b3J5LgorICovCit2b2lkCitBdFByZUVPWGFjdF9TZXNzaW9uVmFyaWFibGVzKGJvb2wgaXNDb21t aXQpCit7CisJaWYgKGlzQ29tbWl0KQorCXsKKwkJaWYgKHhhY3RfZHJvcF9pdGVtcykKKwkJewor CQkJTGlzdENlbGwgICAqbDsKKworCQkJZm9yZWFjaChsLCB4YWN0X2Ryb3BfaXRlbXMpCisJCQl7 CisJCQkJU1ZhcmlhYmxlWEFjdERyb3BJdGVtICp4YWN0X2FpID0KKwkJCQkJKFNWYXJpYWJsZVhB Y3REcm9wSXRlbSAqKSBsZmlyc3QobCk7CisKKwkJCQkvKiBpdGVyYXRlIG9ubHkgb3ZlciBlbnRy aWVzIHRoYXQgYXJlIHN0aWxsIHBlbmRpbmcgKi8KKwkJCQlpZiAoeGFjdF9haS0+ZGVsZXRpbmdf c3ViaWQgPT0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQpCisJCQkJeworCQkJCQlPYmplY3RBZGRy ZXNzIG9iamVjdDsKKworCQkJCQlvYmplY3QuY2xhc3NJZCA9IFZhcmlhYmxlUmVsYXRpb25JZDsK KwkJCQkJb2JqZWN0Lm9iamVjdElkID0geGFjdF9haS0+dmFyaWQ7CisJCQkJCW9iamVjdC5vYmpl Y3RTdWJJZCA9IDA7CisKKwkJCQkJLyoKKwkJCQkJICogU2luY2UgdGhpcyBpcyBhbiBhdXRvbWF0 aWMgZHJvcCwgcmF0aGVyIHRoYW4gb25lCisJCQkJCSAqIGRpcmVjdGx5IGluaXRpYXRlZCBieSB0 aGUgdXNlciwgd2UgcGFzcyB0aGUKKwkJCQkJICogUEVSRk9STV9ERUxFVElPTl9JTlRFUk5BTCBm bGFnLgorCQkJCQkgKi8KKwkJCQkJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZhcmlhYmxlIChvaWQ6 JXUpIHdpbGwgYmUgZGVsZXRlZCAoZm9yY2VkIGJ5IE9OIENPTU1JVCBEUk9QIGNsYXVzZSkiLAor CQkJCQkJIHhhY3RfYWktPnZhcmlkKTsKKworCQkJCQlwZXJmb3JtRGVsZXRpb24oJm9iamVjdCwg RFJPUF9DQVNDQURFLAorCQkJCQkJCQkJUEVSRk9STV9ERUxFVElPTl9JTlRFUk5BTCB8CisJCQkJ CQkJCQlQRVJGT1JNX0RFTEVUSU9OX1FVSUVUTFkpOworCQkJCX0KKwkJCX0KKwkJfQorCisJCXJl bW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKHRydWUpOworCX0KKworCS8qCisJICogV2Ug aGF2ZSB0byBjbGVhbiB4YWN0X2Ryb3BfaXRlbXMuIEFsbCByZWxhdGVkIHZhcmlhYmxlcyBhcmUg ZHJvcHBlZAorCSAqIG5vdywgb3IgbG9zdCBpbnNpZGUgYWJvcnRlZCB0cmFuc2FjdGlvbi4KKwkg Ki8KKwlsaXN0X2ZyZWVfZGVlcCh4YWN0X2Ryb3BfaXRlbXMpOworCXhhY3RfZHJvcF9pdGVtcyA9 IE5VTEw7Cit9CisKKy8qCisgKiBQb3N0LXN1YmNvbW1pdCBvciBwb3N0LXN1YmFib3J0IGNsZWFu dXAgb2YgeGFjdCBkcm9wIGxpc3QuCisgKgorICogRHVyaW5nIHN1YmFib3J0LCB3ZSBjYW4gaW1t ZWRpYXRlbHkgcmVtb3ZlIGVudHJpZXMgY3JlYXRlZCBkdXJpbmcgdGhpcworICogc3VidHJhbnNh Y3Rpb24uIER1cmluZyBzdWJjb21taXQsIGp1c3QgdHJhbnNmZXIgZW50cmllcyBtYXJrZWQgZHVy aW5nCisgKiB0aGlzIHN1YnRyYW5zYWN0aW9uIGFzIGJlaW5nIHRoZSBwYXJlbnQncyByZXNwb25z aWJpbGl0eS4KKyAqLwordm9pZAorQXRFT1N1YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlz Q29tbWl0LAorCQkJCQkJCSBTdWJUcmFuc2FjdGlvbklkIG15U3ViaWQsCisJCQkJCQkJIFN1YlRy YW5zYWN0aW9uSWQgcGFyZW50U3ViaWQpCit7CisJTGlzdENlbGwgICAqY3VyX2l0ZW07CisKKwlm b3JlYWNoKGN1cl9pdGVtLCB4YWN0X2Ryb3BfaXRlbXMpCisJeworCQlTVmFyaWFibGVYQWN0RHJv cEl0ZW0gKnhhY3RfYWkgPQorCQkJKFNWYXJpYWJsZVhBY3REcm9wSXRlbSAqKSBsZmlyc3QoY3Vy X2l0ZW0pOworCisJCWlmICghaXNDb21taXQgJiYgeGFjdF9haS0+Y3JlYXRpbmdfc3ViaWQgPT0g bXlTdWJpZCkKKwkJeworCQkJLyogY3VyX2l0ZW0gbXVzdCBiZSByZW1vdmVkICovCisJCQl4YWN0 X2Ryb3BfaXRlbXMgPSBmb3JlYWNoX2RlbGV0ZV9jdXJyZW50KHhhY3RfZHJvcF9pdGVtcywgY3Vy X2l0ZW0pOworCQkJcGZyZWUoeGFjdF9haSk7CisJCX0KKwkJZWxzZQorCQl7CisJCQkvKiBjdXJf aXRlbSBtdXN0IGJlIHByZXNlcnZlZCAqLworCQkJaWYgKHhhY3RfYWktPmNyZWF0aW5nX3N1Ymlk ID09IG15U3ViaWQpCisJCQkJeGFjdF9haS0+Y3JlYXRpbmdfc3ViaWQgPSBwYXJlbnRTdWJpZDsK KwkJCWlmICh4YWN0X2FpLT5kZWxldGluZ19zdWJpZCA9PSBteVN1YmlkKQorCQkJCXhhY3RfYWkt PmRlbGV0aW5nX3N1YmlkID0gaXNDb21taXQgPyBwYXJlbnRTdWJpZCA6IEludmFsaWRTdWJUcmFu c2FjdGlvbklkOworCQl9CisJfQorfQorCiAvKgogICogSW5pdGlhbGl6ZSBhdHRyaWJ1dGVzIGNh Y2hlZCBpbiAic3ZhciIKICAqLwpAQCAtNDQ2LDcgKzY0MCw3IEBAIGdldF9zZXNzaW9uX3Zhcmlh YmxlKE9pZCB2YXJpZCkKIAkJdmFsaWRhdGVkX2x4aWQgIT0gTXlQcm9jLT52eGlkLmx4aWQpCiAJ ewogCQkvKiBmcmVlIHRoZSBtZW1vcnkgZnJvbSBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzICov Ci0JCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKCk7CisJCXJlbW92ZV9pbnZhbGlk X3Nlc3Npb25fdmFyaWFibGVzKGZhbHNlKTsKIAogCQkvKiBkb24ndCByZXBlYXQgdGhlIGFib3Zl IHN0ZXAgaW4gdGhlIHNhbWUgdHJhbnNhY3Rpb24gKi8KIAkJdmFsaWRhdGVkX2x4aWQgPSBNeVBy b2MtPnZ4aWQubHhpZDsKQEAgLTU0Miw3ICs3MzYsNyBAQCBTZXRTZXNzaW9uVmFyaWFibGUoT2lk IHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpCiAJCXZhbGlkYXRlZF9seGlkICE9IE15 UHJvYy0+dnhpZC5seGlkKQogCXsKIAkJLyogZnJlZSB0aGUgbWVtb3J5IGZyb20gZHJvcHBlZCBz ZXNzaW9uIHZhcmlhYmxlcyAqLwotCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcygp OworCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhmYWxzZSk7CiAKIAkJLyogZG9u J3QgcmVwZWF0IHRoZSBhYm92ZSBzdGVwIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uICovCiAJCXZh bGlkYXRlZF9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy92aWV3LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMKaW5kZXggNmYw MzAxNTU1ZS4uNmJlZjlhMjYxMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmll dy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYwpAQCAtNDg0LDcgKzQ4NCw3IEBA IERlZmluZVZpZXcoVmlld1N0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAogCSAq LwogCXZpZXcgPSBjb3B5T2JqZWN0KHN0bXQtPnZpZXcpOwkvKiBkb24ndCBjb3JydXB0IG9yaWdp bmFsIGNvbW1hbmQgKi8KIAlpZiAodmlldy0+cmVscGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVO Q0VfUEVSTUFORU5UCi0JCSYmIGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbih2aWV3UGFyc2UpKQor CQkmJiBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0KHZpZXdQYXJzZSkpCiAJewogCQl2aWV3LT5yZWxw ZXJzaXN0ZW5jZSA9IFJFTFBFUlNJU1RFTkNFX1RFTVA7CiAJCWVyZXBvcnQoTk9USUNFLApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9hbmFseXplLmMKaW5kZXggM2U5ODE0YWQ5Zi4uYTAzODYwZDRiOCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6 ZS5jCkBAIC0zMzg5LDEwICszMzg5LDEwIEBAIHRyYW5zZm9ybUNyZWF0ZVRhYmxlQXNTdG10KFBh cnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlVGFibGVBc1N0bXQgKnN0bXQpCiAJCSAqIGNyZWF0aW9u IHF1ZXJ5LiBJdCB3b3VsZCBiZSBoYXJkIHRvIHJlZnJlc2ggZGF0YSBvciBpbmNyZW1lbnRhbGx5 CiAJCSAqIG1haW50YWluIGl0IGlmIGEgc291cmNlIGRpc2FwcGVhcmVkLgogCQkgKi8KLQkJaWYg KGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbihxdWVyeSkpCisJCWlmIChpc1F1ZXJ5VXNpbmdUZW1w T2JqZWN0KHF1ZXJ5KSkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVf RkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkJIGVycm1zZygibWF0ZXJpYWxpemVkIHZpZXdz IG11c3Qgbm90IHVzZSB0ZW1wb3JhcnkgdGFibGVzIG9yIHZpZXdzIikpKTsKKwkJCQkJIGVycm1z ZygibWF0ZXJpYWxpemVkIHZpZXdzIG11c3Qgbm90IHVzZSB0ZW1wb3JhcnkgdGFibGVzLCB2aWV3 cyBvciBzZXNzaW9uIHZhcmlhYmxlcyIpKSk7CiAKIAkJLyoKIAkJICogQSBtYXRlcmlhbGl6ZWQg dmlldyB3b3VsZCBlaXRoZXIgbmVlZCB0byBzYXZlIHBhcmFtZXRlcnMgZm9yIHVzZSBpbgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKaW5kZXggNmJiYWQxNTRjYi4uN2MwODk1NDliNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC00NjUs NiArNDY1LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJl bG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxpdmFsPgkgT3B0VGVt cAogJXR5cGUgPGl2YWw+CSBPcHROb0xvZwogJXR5cGUgPG9uY29tbWl0PiBPbkNvbW1pdE9wdGlv bgorJXR5cGUgPGl2YWw+CSBYYWN0RW5kQWN0aW9uT3B0aW9uCiAKICV0eXBlIDxpdmFsPglmb3Jf bG9ja2luZ19zdHJlbmd0aAogJXR5cGUgPG5vZGU+CWZvcl9sb2NraW5nX2l0ZW0KQEAgLTUyMjgs MjYgKzUyMjksMzkgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToKICAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KIAogQ3JlYXRlU2Vzc2lvblZhclN0bXQ6Ci0JCQlDUkVBVEUgVkFSSUFCTEUgcXVh bGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZQorCQkJQ1JFQVRF IE9wdFRlbXAgVkFSSUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xs YXRlX2NsYXVzZSBYYWN0RW5kQWN0aW9uT3B0aW9uCiAJCQkJewogCQkJCQlDcmVhdGVTZXNzaW9u VmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsKLQkJCQkJbi0+dmFy aWFibGUgPSAkMzsKLQkJCQkJbi0+dHlwZU5hbWUgPSAkNTsKLQkJCQkJbi0+Y29sbENsYXVzZSA9 IChDb2xsYXRlQ2xhdXNlICopICQ2OworCQkJCQkkNC0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJ CQkJbi0+dmFyaWFibGUgPSAkNDsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkNjsKKwkJCQkJbi0+Y29s bENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ3OworCQkJCQluLT5YYWN0RW5kQWN0aW9uID0g JDg7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBu OwogCQkJCX0KLQkJCXwgQ1JFQVRFIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRf bmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlCisJCQl8IENSRUFURSBPcHRU ZW1wIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5h bWUgb3B0X2NvbGxhdGVfY2xhdXNlIFhhY3RFbmRBY3Rpb25PcHRpb24KIAkJCQl7CiAJCQkJCUNy ZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOwot CQkJCQluLT52YXJpYWJsZSA9ICQ2OwotCQkJCQluLT50eXBlTmFtZSA9ICQ4OwotCQkJCQluLT5j b2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDk7CisJCQkJCSQ3LT5yZWxwZXJzaXN0ZW5j ZSA9ICQyOworCQkJCQluLT52YXJpYWJsZSA9ICQ3OworCQkJCQluLT50eXBlTmFtZSA9ICQ5Owor CQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDEwOworCQkJCQluLT5YYWN0 RW5kQWN0aW9uID0gJDExOwogCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gdHJ1ZTsKIAkJCQkJJCQg PSAoTm9kZSAqKSBuOwogCQkJCX0KIAkJOwogCisvKgorICogVGVtcG9yYXJ5IHNlc3Npb24gdmFy aWFibGVzIGNhbiBiZSBkcm9wcGVkIG9uIHN1Y2Nlc3NmdWwKKyAqIHRyYW5zYWN0aW9uIGVuZCBs aWtlIHRhYmxlcy4KKyAqLworWGFjdEVuZEFjdGlvbk9wdGlvbjogIE9OIENPTU1JVCBEUk9QCQkJ CXsgJCQgPSBWQVJJQUJMRV9YQUNURU5EX0RST1A7IH0KKwkJCXwgLypFTVBUWSovCQkJCQkJCQl7 ICQkID0gVkFSSUFCTEVfWEFDVEVORF9OT09QOyB9CisJCTsKKworCiAvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKICAqCiAgKiBBTFRFUiBFWFRFTlNJT04gbmFtZSBVUERBVEUgWyBUTyB2ZXJzaW9uIF0K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKaW5kZXggOTJhMDRlMzVkZi4uODY1YTEyZDhi NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKQEAgLTEwMSw3ICsxMDEsNyBAQCBz dGF0aWMgdm9pZCBleHBhbmRUdXBsZURlc2MoVHVwbGVEZXNjIHR1cGRlc2MsIEFsaWFzICplcmVm LAogc3RhdGljIGludAlzcGVjaWFsQXR0TnVtKGNvbnN0IGNoYXIgKmF0dG5hbWUpOwogc3RhdGlj IGJvb2wgcnRlX3Zpc2libGVfaWZfbGF0ZXJhbChQYXJzZVN0YXRlICpwc3RhdGUsIFJhbmdlVGJs RW50cnkgKnJ0ZSk7CiBzdGF0aWMgYm9vbCBydGVfdmlzaWJsZV9pZl9xdWFsaWZpZWQoUGFyc2VT dGF0ZSAqcHN0YXRlLCBSYW5nZVRibEVudHJ5ICpydGUpOwotc3RhdGljIGJvb2wgaXNRdWVyeVVz aW5nVGVtcFJlbGF0aW9uX3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KTsKK3N0YXRp YyBib29sIGlzUXVlcnlVc2luZ1RlbXBPYmplY3Rfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNv bnRleHQpOwogCiAKIC8qCkBAIC0zODk2LDEzICszODk2LDEzIEBAIHJ0ZV92aXNpYmxlX2lmX3F1 YWxpZmllZChQYXJzZVN0YXRlICpwc3RhdGUsIFJhbmdlVGJsRW50cnkgKnJ0ZSkKICAqIHRoZSBx dWVyeSBpcyBhIHRlbXBvcmFyeSByZWxhdGlvbiAodGFibGUsIHZpZXcsIG9yIG1hdGVyaWFsaXpl ZCB2aWV3KS4KICAqLwogYm9vbAotaXNRdWVyeVVzaW5nVGVtcFJlbGF0aW9uKFF1ZXJ5ICpxdWVy eSkKK2lzUXVlcnlVc2luZ1RlbXBPYmplY3QoUXVlcnkgKnF1ZXJ5KQogewotCXJldHVybiBpc1F1 ZXJ5VXNpbmdUZW1wUmVsYXRpb25fd2Fsa2VyKChOb2RlICopIHF1ZXJ5LCBOVUxMKTsKKwlyZXR1 cm4gaXNRdWVyeVVzaW5nVGVtcE9iamVjdF93YWxrZXIoKE5vZGUgKikgcXVlcnksIE5VTEwpOwog fQogCiBzdGF0aWMgYm9vbAotaXNRdWVyeVVzaW5nVGVtcFJlbGF0aW9uX3dhbGtlcihOb2RlICpu b2RlLCB2b2lkICpjb250ZXh0KQoraXNRdWVyeVVzaW5nVGVtcE9iamVjdF93YWxrZXIoTm9kZSAq bm9kZSwgdm9pZCAqY29udGV4dCkKIHsKIAlpZiAobm9kZSA9PSBOVUxMKQogCQlyZXR1cm4gZmFs c2U7CkBAIC0zOTI4LDEzICszOTI4LDIzIEBAIGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbl93YWxr ZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKIAkJfQogCiAJCXJldHVybiBxdWVyeV90cmVl X3dhbGtlcihxdWVyeSwKLQkJCQkJCQkJIGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbl93YWxrZXIs CisJCQkJCQkJCSBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0X3dhbGtlciwKIAkJCQkJCQkJIGNvbnRl eHQsCiAJCQkJCQkJCSBRVFdfSUdOT1JFX0pPSU5BTElBU0VTKTsKIAl9CisJZWxzZSBpZiAoSXNB KG5vZGUsIFBhcmFtKSkKKwl7CisJCVBhcmFtCSAgICpwID0gKFBhcmFtICopIG5vZGU7CisKKwkJ aWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJeworCQkJaWYgKGlzQW55VGVt cE5hbWVzcGFjZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UocC0+cGFyYW12YXJpZCkp KQorCQkJCXJldHVybiB0cnVlOworCQl9CisJfQogCiAJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93 YWxrZXIobm9kZSwKLQkJCQkJCQkJICBpc1F1ZXJ5VXNpbmdUZW1wUmVsYXRpb25fd2Fsa2VyLAor CQkJCQkJCQkgIGlzUXVlcnlVc2luZ1RlbXBPYmplY3Rfd2Fsa2VyLAogCQkJCQkJCQkgIGNvbnRl eHQpOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4v cHNxbC9kZXNjcmliZS5jCmluZGV4IDU1NDZiZjkxZTIuLmQ2ZDMwZTczZWUgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBA IC01MjUwLDcgKzUyNTAsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJv b2wgdmVyYm9zZSkKIAlQUUV4cEJ1ZmZlckRhdGEgYnVmOwogCVBHcmVzdWx0ICAgKnJlczsKIAlw cmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OwotCXN0YXRpYyBjb25zdCBib29sIHRyYW5z bGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZSwgZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKIAog CWlmIChwc2V0LnN2ZXJzaW9uIDwgMTgwMDAwKQogCXsKQEAgLTUyNzAsMTIgKzUyNzAsMTYgQEAg bGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAg IiAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZSh2LnZhcnR5cGUsIHYudmFydHlwbW9kKSBhcyBcIiVz XCIsXG4iCiAJCQkJCSAgIiAgKFNFTEVDVCBjLmNvbGxuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19j b2xsYXRpb24gYywgcGdfY2F0YWxvZy5wZ190eXBlIGJ0XG4iCiAJCQkJCSAgIiAgIFdIRVJFIGMu b2lkID0gdi52YXJjb2xsYXRpb24gQU5EIGJ0Lm9pZCA9IHYudmFydHlwZSBBTkQgdi52YXJjb2xs YXRpb24gPD4gYnQudHlwY29sbGF0aW9uKSBhcyBcIiVzXCIsXG4iCi0JCQkJCSAgIiAgcGdfY2F0 YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wiXG4iLAorCQkJCQkgICIg IHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFyb3duZXIpIGFzIFwiJXNcIixcbiIKKwkJ CQkJICAiICBDQVNFIHYudmFyeGFjdGVuZGFjdGlvblxuIgorCQkJCQkgICIgICAgV0hFTiAnZCcg VEhFTiAnT04gQ09NTUlUIERST1AnXG4iCisJCQkJCSAgIiAgRU5EIGFzIFwiJXNcIlxuIiwKIAkJ CQkJICBnZXR0ZXh0X25vb3AoIlNjaGVtYSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiTmFtZSIp LAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiQ29s bGF0aW9uIiksCi0JCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpKTsKKwkJCQkJICBnZXR0ZXh0 X25vb3AoIk93bmVyIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJUcmFuc2FjdGlvbmFsIGVuZCBh Y3Rpb24iKSk7CiAKIAlpZiAodmVyYm9zZSkKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXgg ZTNjODMwNTI3ZS4uMjQ5ZjYxODc4ZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMzYwOCw3 ICszNjA4LDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAvKiBDUkVB VEUgVEFCTEUgLS0tIGlzIGFsbG93ZWQgaW5zaWRlIENSRUFURSBTQ0hFTUEsIHNvIHVzZSBUYWls TWF0Y2hlcyAqLwogCS8qIENvbXBsZXRlICJDUkVBVEUgVEVNUC9URU1QT1JBUlkiIHdpdGggdGhl IHBvc3NpYmxlIHRlbXAgb2JqZWN0cyAqLwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUi LCAiVEVNUHxURU1QT1JBUlkiKSkKLQkJQ09NUExFVEVfV0lUSCgiU0VRVUVOQ0UiLCAiVEFCTEUi LCAiVklFVyIpOworCQlDT01QTEVURV9XSVRIKCJTRVFVRU5DRSIsICJUQUJMRSIsICJWQVJJQUJM RSIsICJWSUVXIik7CiAJLyogQ29tcGxldGUgIkNSRUFURSBVTkxPR0dFRCIgd2l0aCBUQUJMRSBv ciBTRVFVRU5DRSAqLwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAiVU5MT0dHRUQi KSkKIAkJQ09NUExFVEVfV0lUSCgiVEFCTEUiLCAiU0VRVUVOQ0UiKTsKQEAgLTM5NTksNyArMzk1 OSw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCX0KIC8qIENSRUFU RSBWQVJJQUJMRSAtLS0gaXMgYWxsb3dlZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNlIFRh aWxNYXRjaGVzICovCiAJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRoIEFT ICovCi0JZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJWQVJJQUJMRSIsIE1hdGNoQW55 KSkKKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkp IHx8CisJCQkgVGFpbE1hdGNoZXMoIlRFTVB8VEVNUE9SQVJZIiwgIlZBUklBQkxFIiwgTWF0Y2hB bnkpKQogCQlDT01QTEVURV9XSVRIKCJBUyIpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJ QUJMRSIsIE1hdGNoQW55LCAiQVMiKSkKIAkJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxu YW1lPiB3aXRoIEFTIHR5cGVzICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXggNWI0 NWJlNWFmYS4uMGZjNjcyYmMyYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192 YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaApAQCAtNTYs NiArNTYsOSBAQCBDQVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQog CS8qIHR5cG1vZCBmb3IgdmFyaWFibGUncyB0eXBlICovCiAJaW50MzIJCXZhcnR5cG1vZCBCS0lf REVGQVVMVCgtMSk7CiAKKwkvKiBhY3Rpb24gb24gdHJhbnNhY3Rpb24gZW5kICovCisJY2hhcgkJ dmFyeGFjdGVuZGFjdGlvbiBCS0lfREVGQVVMVChuKTsKKwogCS8qIHZhcmlhYmxlIGNvbGxhdGlv biAqLwogCU9pZAkJCXZhcmNvbGxhdGlvbiBCS0lfREVGQVVMVCgwKSBCS0lfTE9PS1VQX09QVChw Z19jb2xsYXRpb24pOwogCkBAIC02OCw2ICs3MSwxMiBAQCBDQVRBTE9HKHBnX3ZhcmlhYmxlLDky MjIsVmFyaWFibGVSZWxhdGlvbklkKQogI2VuZGlmCiB9IEZvcm1EYXRhX3BnX3ZhcmlhYmxlOwog Cit0eXBlZGVmIGVudW0gVmFyaWFibGVYYWN0RW5kQWN0aW9uCit7CisJVkFSSUFCTEVfWEFDVEVO RF9OT09QID0gJ24nLAkvKiBOT09QICovCisJVkFSSUFCTEVfWEFDVEVORF9EUk9QID0gJ2QnLAkv KiBPTiBDT01NSVQgRFJPUCAqLworfQkJCVZhcmlhYmxlWGFjdEVuZEFjdGlvbjsKKwogLyogLS0t LS0tLS0tLS0tLS0tLQogICoJCUZvcm1fcGdfdmFyaWFibGUgY29ycmVzcG9uZHMgdG8gYSBwb2lu dGVyIHRvIGEgdHVwbGUgd2l0aAogICoJCXRoZSBmb3JtYXQgb2YgdGhlIHBnX3ZhcmlhYmxlIHJl bGF0aW9uLgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmluZGV4IGU1OGE1 YTAxMTAuLjc3NGIzOWYyZjkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmgKQEAgLTIxLDcgKzIxLDExIEBACiAjaW5jbHVkZSAidGNvcC9jbWR0YWcuaCIKICNpbmNsdWRl ICJ1dGlscy9xdWVyeWVudmlyb25tZW50LmgiCiAKLWV4dGVybiB2b2lkIFNlc3Npb25WYXJpYWJs ZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQpOworZXh0ZXJuIHZvaWQgU2Vzc2lvblZhcmlhYmxl Q3JlYXRlUG9zdHByb2Nlc3MoT2lkIHZhcmlkLCBjaGFyIFhhY3RFbmRBY3Rpb24pOworZXh0ZXJu IHZvaWQgU2Vzc2lvblZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKE9pZCB2YXJpZCwgY2hhciBYYWN0 RW5kQWN0aW9uKTsKK2V4dGVybiB2b2lkIEF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9v bCBpc0NvbW1pdCk7CitleHRlcm4gdm9pZCBBdEVPU3ViWGFjdF9TZXNzaW9uVmFyaWFibGVzKGJv b2wgaXNDb21taXQsIFN1YlRyYW5zYWN0aW9uSWQgbXlTdWJpZCwKKwkJCQkJCQkJCQkgU3ViVHJh bnNhY3Rpb25JZCBwYXJlbnRTdWJpZCk7CiAKIGV4dGVybiB2b2lkIFNldFNlc3Npb25WYXJpYWJs ZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCk7CiBleHRlcm4gRGF0dW0gR2V0 U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsKTsKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaAppbmRleCBmODhlZGMwZDQxLi5lYzRhMTZhZWEyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o CkBAIC0zNDg3LDYgKzM0ODcsNyBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVTZXNzaW9uVmFyU3Rt dAogCVR5cGVOYW1lICAgKnR5cGVOYW1lOwkJLyogdGhlIHR5cGUgb2YgdmFyaWFibGUgKi8KIAlD b2xsYXRlQ2xhdXNlICpjb2xsQ2xhdXNlOwogCWJvb2wJCWlmX25vdF9leGlzdHM7CS8qIGRvIG5v dGhpbmcgaWYgaXQgYWxyZWFkeSBleGlzdHMgKi8KKwljaGFyCQlYYWN0RW5kQWN0aW9uOwkvKiBv biB0cmFuc2FjdGlvbiBlbmQgYWN0aW9uICovCiB9IENyZWF0ZVNlc3Npb25WYXJTdG10OwogCiAK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUv bm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggOTQ2NmIzMTE3MS4uMzJiN2E0MzNhMiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMv cHJpbW5vZGVzLmgKQEAgLTUxLDcgKzUxLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgQWxpYXMKIAlMaXN0 CSAgICpjb2xuYW1lczsJCS8qIG9wdGlvbmFsIGxpc3Qgb2YgY29sdW1uIGFsaWFzZXMgKi8KIH0g QWxpYXM7CiAKLS8qIFdoYXQgdG8gZG8gYXQgY29tbWl0IHRpbWUgZm9yIHRlbXBvcmFyeSByZWxh dGlvbnMgKi8KKy8qCisgKiBXaGF0IHRvIGRvIGF0IGNvbW1pdCB0aW1lIGZvciB0ZW1wb3Jhcnkg cmVsYXRpb25zIG9yIHNlc3Npb24gdmFyaWFibGVzLgorICovCiB0eXBlZGVmIGVudW0gT25Db21t aXRBY3Rpb24KIHsKIAlPTkNPTU1JVF9OT09QLAkJCQkvKiBObyBPTiBDT01NSVQgY2xhdXNlIChk byBub3RoaW5nKSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0 aW9uLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaAppbmRleCBkZjZmZDU1 NTBkLi5iZTBkMGFiZmZlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcmVs YXRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaApAQCAtMTI2 LDYgKzEyNiw2IEBAIGV4dGVybiBpbnQJYXR0bmFtZUF0dE51bShSZWxhdGlvbiByZCwgY29uc3Qg Y2hhciAqYXR0bmFtZSwgYm9vbCBzeXNDb2xPSyk7CiBleHRlcm4gY29uc3QgTmFtZURhdGEgKmF0 dG51bUF0dE5hbWUoUmVsYXRpb24gcmQsIGludCBhdHRpZCk7CiBleHRlcm4gT2lkCWF0dG51bVR5 cGVJZChSZWxhdGlvbiByZCwgaW50IGF0dGlkKTsKIGV4dGVybiBPaWQJYXR0bnVtQ29sbGF0aW9u SWQoUmVsYXRpb24gcmQsIGludCBhdHRpZCk7Ci1leHRlcm4gYm9vbCBpc1F1ZXJ5VXNpbmdUZW1w UmVsYXRpb24oUXVlcnkgKnF1ZXJ5KTsKK2V4dGVybiBib29sIGlzUXVlcnlVc2luZ1RlbXBPYmpl Y3QoUXVlcnkgKnF1ZXJ5KTsKIAogI2VuZGlmCQkJCQkJCS8qIFBBUlNFX1JFTEFUSU9OX0ggKi8K ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxl Lm91dCBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApp bmRleCAwYTU1NzlkYzdjLi5hNjA5Nzk3ZGM1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRp b24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9u L2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CkBAIC04NiwxMCArODYsMTEgQEAgbXl2YXIK IAogc3RlcCBzcjE6IFJPTExCQUNLOwogCi1zdGFydGluZyBwZXJtdXRhdGlvbjogY3JlYXRlMyBs ZXQzIHMzIGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUK K3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgb19jX2QgY3JlYXRlNCBsZXQ0 IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQogc3RlcCBjcmVhdGUzOiBDUkVB VEUgVkFSSUFCTEUgbXl2YXIzIEFTIHRleHQ7CiBzdGVwIGxldDM6IExFVCBteXZhcjMgPSAndGVz dCc7CiBzdGVwIHMzOiBCRUdJTjsKK3N0ZXAgb19jX2Q6IENSRUFURSBURU1QIFZBUklBQkxFIG15 dmFyX29fY19kIEFTIHRleHQgT04gQ09NTUlUIERST1A7CiBzdGVwIGNyZWF0ZTQ6IENSRUFURSBW QVJJQUJMRSBteXZhcjQgQVMgdGV4dDsKIHN0ZXAgbGV0NDogTEVUIG15dmFyNCA9ICd0ZXN0JzsK IHN0ZXAgZHJvcDQ6IERST1AgVkFSSUFCTEUgbXl2YXI0OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv aXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYyBiL3NyYy90ZXN0L2lzb2xhdGlv bi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKaW5kZXggYzg2NGZlZTQwMC4uNDVlNjVkNDA4 NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUu c3BlYworKysgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVj CkBAIC0yNCw2ICsyNCw3IEBAIHN0ZXAgY3JlYXRlCQl7IENSRUFURSBWQVJJQUJMRSBteXZhciBB UyB0ZXh0OyB9CiBzZXNzaW9uIHMzCiBzdGVwIHMzCQkJeyBCRUdJTjsgfQogc3RlcCBsZXQzCQl7 IExFVCBteXZhcjMgPSAndGVzdCc7IH0KK3N0ZXAgb19jX2QJCXsgQ1JFQVRFIFRFTVAgVkFSSUFC TEUgbXl2YXJfb19jX2QgQVMgdGV4dCBPTiBDT01NSVQgRFJPUDsgfQogc3RlcCBjcmVhdGU0CXsg Q1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0OyB9CiBzdGVwIGxldDQJCXsgTEVUIG15dmFy NCA9ICd0ZXN0JzsgfQogc3RlcCBkcm9wNAkJeyBEUk9QIFZBUklBQkxFIG15dmFyNDsgfQpAQCAt NDcsNCArNDgsNCBAQCBwZXJtdXRhdGlvbiBsZXQgdmFsIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFs CiAjIGNhbGxpbmcgdGhlIGRiZyBzdGVwIGFmdGVyIHRoZSBjb25jdXJyZW50IGRyb3AKIHBlcm11 dGF0aW9uIGxldCB2YWwgczEgZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwgc3IxCiAjIHRlc3QgZm9y IERJU0NBUkQgQUxMIHdoZW4gYWxsIGludGVybmFsIHF1ZXVlcyBoYXZlIGFjdGlvbnMgcmVnaXN0 ZXJlZAotcGVybXV0YXRpb24gY3JlYXRlMyBsZXQzIHMzIGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9w MyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKK3Blcm11dGF0aW9uIGNyZWF0ZTMgbGV0MyBzMyBv X2NfZCBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0YXRlCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRleCA4OGUyMTE5NDcxLi42MTA3N2E1MmIxIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKQEAgLTU5MzUsMjAgKzU5MzUsMjAgQEAgQ1JF QVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFy aWFibGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMi OwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwg Q29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IEFjY2VzcyBwcml2aWxlZ2VzIHwg RGVzY3JpcHRpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tCi0gcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwg cmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2 YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24g fCAgICAgICAgIE93bmVyICAgICAgICAgIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNj ZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBwdWJs aWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3Zhcmlh YmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg fCAKICgxIHJvdykKIAogR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOwog Q09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIGRlc2NyaXB0aW9uJzsKIFxkVisgdmFy MQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAg ICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCAgICAgICAgICAgICAg ICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAot LS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIg dmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCByZWdyZXNzX3Zh cmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9u Ci0gICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAg ICAgICAgICAgICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2No ZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25l ciAgICAgICAgICB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFj Y2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAgRGVzY3JpcHRpb24gICAgCistLS0t LS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgcHVi bGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJp YWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KKyAgICAg ICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJs ZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIERST1AgVkFSSUFC TEUgdmFyMTsKQEAgLTY0MTYsOSArNjQxNiw5IEBAIExpc3Qgb2Ygc2NoZW1hcwogKDAgcm93cykK IAogXGRWICJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMK LSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAotLS0tLS0tLS0rLS0t LS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBP d25lciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykK IAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02 NTkxLDkgKzY1OTEsOSBAQCBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVk IG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5pbnN0YQogXGR5ICJuby5zdWNoLnNj aGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0 b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRy aWdnZXIiCiBcZFYgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAg ICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24g fCBPd25lciAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUg fCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCist LS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBjdXJyZW50IGRhdGFi YXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpAQCAtNjczMCw5ICs2NzMwLDkg QEAgTGlzdCBvZiB0ZXh0IHNlYXJjaCB0ZW1wbGF0ZXMKICgwIHJvd3MpCiAKIFxkViByZWdyZXNz aW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICBMaXN0 IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIg Ci0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8 IENvbGxhdGlvbiB8IE93bmVyIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0r LS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBk b3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCAxMWYyMDQyNmQzLi4xNGRiOTFmOTBhIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApA QCAtMjIzNSwzICsyMjM1LDEyMyBAQCBTRUxFQ1QgdmFyMTsKIAogREVBTExPQ0FURSBwMTsKIERS T1AgVkFSSUFCTEUgdmFyMTsKKy0tIHRlbXBvcmFyeSB2YXJpYWJsZXMKK0NSRUFURSBURU1QIFZB UklBQkxFIHZhcjEgQVMgaW50OworLS0gdGhpcyB2aWV3IHNob3VsZCBiZSB0ZW1wb3JhcnkKK0NS RUFURSBWSUVXIHZhcl90ZXN0X3ZpZXcgQVMgU0VMRUNUIHZhcjE7CitOT1RJQ0U6ICB2aWV3ICJ2 YXJfdGVzdF92aWV3IiB3aWxsIGJlIGEgdGVtcG9yYXJ5IHZpZXcKK0RST1AgVkFSSUFCTEUgdmFy MSBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byB2aWV3IHZhcl90ZXN0X3ZpZXcK K0JFR0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJP UDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAg MTAwCisoMSByb3cpCisKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQo KikgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworIGNvdW50IAorLS0t LS0tLQorICAgICAwCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQo KikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAw CisoMSByb3cpCisKK0JFR0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBP TiBDT01NSVQgRFJPUDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEg CistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIHplcm8K K1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7 CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIHplcm8K K1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCist LS0tLS0tCisgICAgIDAKKygxIHJvdykKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxF IHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgRFJPUCBW QVJJQUJMRSB2YXIxOworQ09NTUlUOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgY291bnQgCistLS0t LS0tCisgICAgIDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAK KygxIHJvdykKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9O IENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOwor Uk9MTEJBQ0s7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfdmFy aWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAor KDEgcm93KQorCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vz c2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitC RUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7 CisgIExFVCB2YXIxID0gMTAwOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFy MTsKKyAgUk9MTEJBQ0sgVE8gczE7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAg MTAwCisoMSByb3cpCisKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQo KikgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworIGNvdW50IAorLS0t LS0tLQorICAgICAwCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQo KikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAw CisoMSByb3cpCisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFy aWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApp bmRleCBiODQxZDU5ZmQ4Li42OGRjYjcxZjE3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xMzEyLDYgKzEzMTIsNyBAQCBCRUdJTjsKICAgRFJPUCBW QVJJQUJMRSB2YXIxOwogICBTRUxFQ1QgdmFyMjsKIFJPTExCQUNLOworCiAtLSBzaG91bGQgYmUg b2sKIFNFTEVDVCB2YXIxOwogCkBAIC0xNTUyLDMgKzE1NTMsNjggQEAgU0VMRUNUIHZhcjE7CiAK 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 ZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggNzIzNjBhMTdmYi4uNGRiMjBjYjI2NyAxMDA2NDQKLS0t IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKQEAgLTI4MDcsNiArMjgwNyw3IEBAIFN1cHBvcnRSZXF1ZXN0V0Z1 bmNNb25vdG9uaWMKIFNWYXJpYWJsZQogU1ZhcmlhYmxlRGF0YQogU1ZhcmlhYmxlU3RhdGUKK1NW YXJpYWJsZVhBY3REcm9wSXRlbQogU3luCiBTeW5jT3BzCiBTeW5jUmVwQ29uZmlnRGF0YQotLSAK Mi40Ny4xCgo= --0000000000008953c9062b346e70 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250108-0010-EXPLAIN-LET-support.patch" Content-Disposition: attachment; filename="v20250108-0010-EXPLAIN-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5o4agkg12 RnJvbSBkOWEyZTFmY2VmOGRlMGQ5ZDFhZDZiYzIyMDBlYTdmNGNmOGExYjc4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMjEgTWF5IDIwMjQgMTg6Mjg6MDcgKzAyMDAKU3ViamVjdDogW1BBVENIIDEw LzIyXSBFWFBMQUlOIExFVCBzdXBwb3J0CgpFbmhhbmNpbmcgRXhwbGFpbk9uZVBsYW4gaXMgbmVj ZXNzYXJ5IHRvIGJlIEVYUExBSU4gQU5BTFlaRSBMRVQgZnVsbHkgd29ya2FibGUuCkluIHRoaXMg Y2FzZSB3ZSB3YW50IHRvIGJlIHJlc3VsdCBvZiBxdWVyeSBvciBleHByZXNzaW9uIHdyaXR0ZW4g dG8gdGFyZ2V0IHZhcmlhYmxlLgotLS0KIGRvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sICAg ICAgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMgICAg ICAgICAgICAgICAgfCAzMSArKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJl cGFyZS5jICAgICAgICAgICAgICAgIHwgIDUgKystCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 ICAgICAgICAgICAgICAgICAgICAgfCAgMyArLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFp bi5oICAgICAgICAgICAgICAgIHwgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzLm91dCAgICB8IDQwICsrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDIxICsrKysrKysrKysKIDcgZmlsZXMg Y2hhbmdlZCwgOTcgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2V4cGxhaW4uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5z Z21sCmluZGV4IDYzNjFhMTRlNjUuLjQyOTI2MTViNDQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvZXhwbGFpbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sCkBA IC05OCw3ICs5OCw4IEBAIEVYUExBSU4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5vcHRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgXSA8cmVwCiAgICAgPGNvbW1hbmQ+SU5T RVJUPC9jb21tYW5kPiwgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwKICAgICA8Y29tbWFuZD5E RUxFVEU8L2NvbW1hbmQ+LCA8Y29tbWFuZD5NRVJHRTwvY29tbWFuZD4sCiAgICAgPGNvbW1hbmQ+ Q1JFQVRFIFRBQkxFIEFTPC9jb21tYW5kPiwKLSAgICBvciA8Y29tbWFuZD5FWEVDVVRFPC9jb21t YW5kPiBzdGF0ZW1lbnQKKyAgICA8Y29tbWFuZD5FWEVDVVRFPC9jb21tYW5kPiwKKyAgICBvciA8 Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IHN0YXRlbWVudAogICAgIHdpdGhvdXQgbGV0dGluZyB0aGUg Y29tbWFuZCBhZmZlY3QgeW91ciBkYXRhLCB1c2UgdGhpcyBhcHByb2FjaDoKIDxwcm9ncmFtbGlz dGluZz4KIEJFR0lOOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IGMyNGU2NmY4MmUuLmE2MDhm ODFlZjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYworKysgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKQEAgLTE4LDYgKzE4LDcgQEAKICNpbmNsdWRl ICJjb21tYW5kcy9jcmVhdGVhcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL3ByZXBhcmUuaCIKKyNpbmNsdWRlICJleGVjdXRvci9zdmFyaWFibGVS ZWNlaXZlci5oIgogI2luY2x1ZGUgImZvcmVpZ24vZmR3YXBpLmgiCiAjaW5jbHVkZSAiaml0L2pp dC5oIgogI2luY2x1ZGUgImxpYnBxL3BxZm9ybWF0LmgiCkBAIC01MTksOCArNTIwLDkgQEAgc3Rh bmRhcmRfRXhwbGFpbk9uZVF1ZXJ5KFF1ZXJ5ICpxdWVyeSwgaW50IGN1cnNvck9wdGlvbnMsCiAJ fQogCiAJLyogcnVuIGl0IChpZiBuZWVkZWQpIGFuZCBwcm9kdWNlIG91dHB1dCAqLwotCUV4cGxh aW5PbmVQbGFuKHBsYW4sIGludG8sIGVzLCBxdWVyeVN0cmluZywgcGFyYW1zLCBxdWVyeUVudiwK LQkJCQkgICAmcGxhbmR1cmF0aW9uLCAoZXMtPmJ1ZmZlcnMgPyAmYnVmdXNhZ2UgOiBOVUxMKSwK KwlFeHBsYWluT25lUGxhbihwbGFuLCBpbnRvLCBxdWVyeS0+cmVzdWx0VmFyaWFibGUsIGVzLCBx dWVyeVN0cmluZywKKwkJCQkgICBwYXJhbXMsIHF1ZXJ5RW52LCAmcGxhbmR1cmF0aW9uLAorCQkJ CSAgIChlcy0+YnVmZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwpLAogCQkJCSAgIGVzLT5tZW1vcnkg PyAmbWVtX2NvdW50ZXJzIDogTlVMTCk7CiB9CiAKQEAgLTYxOCw2ICs2MjAsMjUgQEAgRXhwbGFp bk9uZVV0aWxpdHkoTm9kZSAqdXRpbGl0eVN0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxhaW5T dGF0ZSAqZXMsCiAJCWVsc2UKIAkJCUV4cGxhaW5EdW1teUdyb3VwKCJOb3RpZnkiLCBOVUxMLCBl cyk7CiAJfQorCWVsc2UgaWYgKElzQSh1dGlsaXR5U3RtdCwgTGV0U3RtdCkpCisJeworCQlMZXRT dG10ICAgICpsZXRzdG10ID0gKExldFN0bXQgKikgdXRpbGl0eVN0bXQ7CisJCUxpc3QJICAgKnJl d3JpdHRlbjsKKwkJUXVlcnkJICAgKnF1ZXJ5OworCisJCWlmIChlcy0+Zm9ybWF0ID09IEVYUExB SU5fRk9STUFUX1RFWFQpCisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGVzLT5zdHIsICJTRVQg U0VTU0lPTiBWQVJJQUJMRVxuIik7CisJCWVsc2UKKwkJCUV4cGxhaW5EdW1teUdyb3VwKCJTZXQg U2Vzc2lvbiBWYXJpYWJsZSIsIE5VTEwsIGVzKTsKKworCQlyZXdyaXR0ZW4gPSBRdWVyeVJld3Jp dGUoY2FzdE5vZGUoUXVlcnksIGNvcHlPYmplY3QobGV0c3RtdC0+cXVlcnkpKSk7CisKKwkJQXNz ZXJ0KGxpc3RfbGVuZ3RoKHJld3JpdHRlbikgPT0gMSk7CisJCXF1ZXJ5ID0gbGluaXRpYWxfbm9k ZShRdWVyeSwgcmV3cml0dGVuKTsKKwkJRXhwbGFpbk9uZVF1ZXJ5KHF1ZXJ5LAorCQkJCQkJQ1VS U09SX09QVF9QQVJBTExFTF9PSywgTlVMTCwgZXMsCisJCQkJCQlwc3RhdGUsIHBhcmFtcyk7CisJ fQogCWVsc2UKIAl7CiAJCWlmIChlcy0+Zm9ybWF0ID09IEVYUExBSU5fRk9STUFUX1RFWFQpCkBA IC02NDEsOCArNjYyLDggQEAgRXhwbGFpbk9uZVV0aWxpdHkoTm9kZSAqdXRpbGl0eVN0bXQsIElu dG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAgKiB0byBjYWxsIGl0LgogICovCiB2 b2lkCi1FeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxhbm5lZHN0bXQsIEludG9DbGF1c2Ug KmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCi0JCQkgICBjb25zdCBjaGFyICpxdWVyeVN0cmluZywg UGFyYW1MaXN0SW5mbyBwYXJhbXMsCitFeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxhbm5l ZHN0bXQsIEludG9DbGF1c2UgKmludG8sIE9pZCB0YXJnZXR2YXIsCisJCQkgICBFeHBsYWluU3Rh dGUgKmVzLCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywgUGFyYW1MaXN0SW5mbyBwYXJhbXMsCiAJ CQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwgY29uc3QgaW5zdHJfdGltZSAqcGxhbmR1 cmF0aW9uLAogCQkJICAgY29uc3QgQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlLAogCQkJICAgY29uc3Qg TWVtb3J5Q29udGV4dENvdW50ZXJzICptZW1fY291bnRlcnMpCkBAIC02OTEsNiArNzEyLDggQEAg RXhwbGFpbk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBJbnRvQ2xhdXNlICppbnRv LCBFeHBsYWluU3RhdGUgKmVzLAogCSAqLwogCWlmIChpbnRvKQogCQlkZXN0ID0gQ3JlYXRlSW50 b1JlbERlc3RSZWNlaXZlcihpbnRvKTsKKwllbHNlIGlmIChPaWRJc1ZhbGlkKHRhcmdldHZhcikp CisJCWRlc3QgPSBDcmVhdGVWYXJpYWJsZURlc3RSZWNlaXZlcih0YXJnZXR2YXIpOwogCWVsc2Ug aWYgKGVzLT5zZXJpYWxpemUgIT0gRVhQTEFJTl9TRVJJQUxJWkVfTk9ORSkKIAkJZGVzdCA9IENy ZWF0ZUV4cGxhaW5TZXJpYWxpemVEZXN0UmVjZWl2ZXIoZXMpOwogCWVsc2UKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3By ZXBhcmUuYwppbmRleCA5MDJiMDIyZjljLi40ZWEyYmZlYTRlIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFy ZS5jCkBAIC02NjQsOCArNjY0LDkgQEAgRXhwbGFpbkV4ZWN1dGVRdWVyeShFeGVjdXRlU3RtdCAq ZXhlY3N0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJCVBsYW5uZWRT dG10ICpwc3RtdCA9IGxmaXJzdF9ub2RlKFBsYW5uZWRTdG10LCBwKTsKIAogCQlpZiAocHN0bXQt PmNvbW1hbmRUeXBlICE9IENNRF9VVElMSVRZKQotCQkJRXhwbGFpbk9uZVBsYW4ocHN0bXQsIGlu dG8sIGVzLCBxdWVyeV9zdHJpbmcsIHBhcmFtTEksIHBzdGF0ZS0+cF9xdWVyeUVudiwKLQkJCQkJ CSAgICZwbGFuZHVyYXRpb24sIChlcy0+YnVmZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwpLAorCQkJ RXhwbGFpbk9uZVBsYW4ocHN0bXQsIGludG8sIEludmFsaWRPaWQsIGVzLCBxdWVyeV9zdHJpbmcs IHBhcmFtTEksCisJCQkJCQkgICBwc3RhdGUtPnBfcXVlcnlFbnYsICZwbGFuZHVyYXRpb24sCisJ CQkJCQkgICAoZXMtPmJ1ZmZlcnMgPyAmYnVmdXNhZ2UgOiBOVUxMKSwKIAkJCQkJCSAgIGVzLT5t ZW1vcnkgPyAmbWVtX2NvdW50ZXJzIDogTlVMTCk7CiAJCWVsc2UKIAkJCUV4cGxhaW5PbmVVdGls aXR5KHBzdG10LT51dGlsaXR5U3RtdCwgaW50bywgZXMsIHBzdGF0ZSwgcGFyYW1MSSk7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQppbmRleCA2NzRlOGFmMjU2Li4zYmU5YTJkZDJkIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTEyMTI5 LDcgKzEyMTI5LDggQEAgRXhwbGFpbmFibGVTdG10OgogCQkJfCBDcmVhdGVBc1N0bXQKIAkJCXwg Q3JlYXRlTWF0Vmlld1N0bXQKIAkJCXwgUmVmcmVzaE1hdFZpZXdTdG10Ci0JCQl8IEV4ZWN1dGVT dG10CQkJCQkvKiBieSBkZWZhdWx0IGFsbCBhcmUgJCQ9JDEgKi8KKwkJCXwgRXhlY3V0ZVN0bXQK KwkJCXwgTGV0U3RtdAkJCQkJCS8qIGJ5IGRlZmF1bHQgYWxsIGFyZSAkJD0kMSAqLwogCQk7CiAK IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv ZXhwbGFpbi5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFpbi5oCmluZGV4IGVhNzQxOTk1 MWYuLmRlMjFmZTk3ZDAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2V4cGxhaW4u aAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9leHBsYWluLmgKQEAgLTEwMyw3ICsxMDMsOCBA QCBleHRlcm4gdm9pZCBFeHBsYWluT25lVXRpbGl0eShOb2RlICp1dGlsaXR5U3RtdCwgSW50b0Ns YXVzZSAqaW50bywKIAkJCQkJCQkgIEV4cGxhaW5TdGF0ZSAqZXMsIFBhcnNlU3RhdGUgKnBzdGF0 ZSwKIAkJCQkJCQkgIFBhcmFtTGlzdEluZm8gcGFyYW1zKTsKIAotZXh0ZXJuIHZvaWQgRXhwbGFp bk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBJbnRvQ2xhdXNlICppbnRvLAorZXh0 ZXJuIHZvaWQgRXhwbGFpbk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LAorCQkJCQkJ ICAgSW50b0NsYXVzZSAqaW50bywgT2lkIHRhcmdldHZhciwKIAkJCQkJCSAgIEV4cGxhaW5TdGF0 ZSAqZXMsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAogCQkJCQkJICAgUGFyYW1MaXN0SW5mbyBw YXJhbXMsIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LAogCQkJCQkJICAgY29uc3QgaW5zdHJf dGltZSAqcGxhbmR1cmF0aW9uLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dAppbmRleCA5MGVlYzI3YTQzLi43N2E2NjU2NGVjIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMjExOCwz ICsyMTE4LDQzIEBAIE5PVElDRTogIDIwIHQKIFNFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVu Y2VfY29udGV4dF9ndWFyZCBUTyBERUZBVUxUOwogRFJPUCBWQVJJQUJMRSB2YXIxOwogRFJPUCBU QUJMRSB2YXJ0ZXN0X3RhYjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBiaWdpbnQ7CitDUkVBVEUg VEFCTEUgdmFyX3RhYl90ZXN0X3RhYmxlKGEgaW50KTsKK0lOU0VSVCBJTlRPIHZhcl90YWJfdGVz dF90YWJsZSBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsKK1ZBQ1VVTSBBTkFM WVpFIHZhcl90YWJfdGVzdF90YWJsZTsKK0VYUExBSU4gKENPU1RTIE9GRikgTEVUIHZhcjEgPSAo U0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKyAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTRVQgU0VTU0lPTiBWQVJJQUJMRQorIFJlc3VsdAor ICAgSW5pdFBsYW4gMQorICAgICAtPiAgQWdncmVnYXRlCisgICAgICAgICAgIC0+ICBTZXEgU2Nh biBvbiB2YXJfdGFiX3Rlc3RfdGFibGUKKyg1IHJvd3MpCisKKy0tIHNob3VsZCBiZSBOVUxMCitT RUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAgIAorKDEgcm93KQorCitFWFBMQUlOIChD T1NUUyBPRkYsIFRJTUlORyBPRkYsIEFOQUxZWkUsIFNVTU1BUlkgT0ZGLCBCVUZGRVJTIE9GRikg TEVUIHZhcjEgPSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNFVCBTRVNTSU9OIFZBUklBQkxFCisgUmVz dWx0IChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICBJbml0UGxhbiAxCisgICAgIC0+ICBBZ2dy ZWdhdGUgKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKKyAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9u IHZhcl90YWJfdGVzdF90YWJsZSAoYWN0dWFsIHJvd3M9MTAgbG9vcHM9MSkKKyg1IHJvd3MpCisK Ky0tIHNob3VsZCBiZSAxMAorU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygx IHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJfdGFiX3Rlc3RfdGFi bGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggMzMw YjBlNThmOC4uMjZlYzhkODkyMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFy aWFibGVzLnNxbApAQCAtMTQ3NCwzICsxNDc0LDI0IEBAIFNFVCBzZXNzaW9uX3ZhcmlhYmxlc191 c2VfZmVuY2VfY29udGV4dF9ndWFyZCBUTyBERUZBVUxUOwogCiBEUk9QIFZBUklBQkxFIHZhcjE7 CiBEUk9QIFRBQkxFIHZhcnRlc3RfdGFiMTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgYmlnaW50 OworCitDUkVBVEUgVEFCTEUgdmFyX3RhYl90ZXN0X3RhYmxlKGEgaW50KTsKKworSU5TRVJUIElO VE8gdmFyX3RhYl90ZXN0X3RhYmxlIFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAp OworCitWQUNVVU0gQU5BTFlaRSB2YXJfdGFiX3Rlc3RfdGFibGU7CisKK0VYUExBSU4gKENPU1RT IE9GRikgTEVUIHZhcjEgPSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxl KTsKKworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxOworCitFWFBMQUlOIChDT1NUUyBP RkYsIFRJTUlORyBPRkYsIEFOQUxZWkUsIFNVTU1BUlkgT0ZGLCBCVUZGRVJTIE9GRikgTEVUIHZh cjEgPSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKworLS0gc2hv dWxkIGJlIDEwCitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJM RSB2YXJfdGFiX3Rlc3RfdGFibGU7Ci0tIAoyLjQ3LjEKCg== --0000000000008953c9062b346e70 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250108-0011-PREPARE-LET-support.patch" Content-Disposition: attachment; filename="v20250108-0011-PREPARE-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5o4agk811 RnJvbSBjYTQ5MzI1YzM1MzI0YWFjNzI0MDNiZWE4YjRhODUzMTVkYzAyZmVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMDk6NDQ6NTggKzAxMDAKU3ViamVjdDogW1BBVENIIDEx LzIyXSBQUkVQQVJFIExFVCBzdXBwb3J0CgpJbiBjdXJyZW50IGNvZGUgYmFzZSBpdCByZXF1aXJl cyBqdXN0IHNtYWxsIGNoYW5nZXMgaW4gcGFyc2VyLiBJdCBpcyBuaWNlCnRvIGhhdmUgdG8gaGF2 ZSBwb3NzaWJpbGl0eSB0byB1c2UgcHJlcGFyZWQgTEVUIHN0YXRlbWVudHMgbWFpbmx5IGR1ZSBy ZWR1Y3Rpb24Kb2Ygc2VjdXJpdHkgcmlza3MgKFNRTCBpbmplY3Rpb24pLCBhbmQgaW1wbGVtZW50 YXRpb24gaXMgYWxtb3N0IGNoZWFwLgoKRXhwbGljaXQgcHJlcGFyaW5nIGlzIG5vdCBuZWNlc3Np dHkgZm9yIHN1cHBvcnQgb2YgTEVUIHN0YXRlbWVudHMgaW4gUEwsIGJlY2F1c2UKUEwgdXNlcyBT UEkgZm9yIHF1ZXJ5IGV4ZWN1dGlvbiwgYnV0IGl0IGlzIG5pY2UgdG8gaGF2ZSB0aGlzIHBvc3Np YmlsaXR5IChjb21wbGV0ZW5lZXMsIC4uLikKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUu c2dtbCAgICAgICAgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAg ICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jdGUu YyAgICAgICAgICAgICAgICB8ICA3ICsrCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMg ICAgICAgICAgICAgICAgfCAgNCArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXMub3V0ICAgIHwgODEgKysrKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgNTcgKysrKysrKysrKysrKwogNiBmaWxlcyBj aGFuZ2VkLCAxNDkgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcHJlcGFyZS5z Z21sCmluZGV4IDhlZTk0MzlmNjEuLjQ1ZDcyYjFkNTIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvcHJlcGFyZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcHJlcGFyZS5zZ21sCkBA IC0xMTYsOCArMTE2LDggQEAgUFJFUEFSRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUgY2xhc3MKICAgICA8bGlzdGl0ZW0+ CiAgICAgIDxwYXJhPgogICAgICAgQW55IDxjb21tYW5kPlNFTEVDVDwvY29tbWFuZD4sIDxjb21t YW5kPklOU0VSVDwvY29tbWFuZD4sIDxjb21tYW5kPlVQREFURTwvY29tbWFuZD4sCi0gICAgICA8 Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+LCA8Y29tbWFuZD5NRVJHRTwvY29tbWFuZD4sIG9yIDxj b21tYW5kPlZBTFVFUzwvY29tbWFuZD4KLSAgICAgIHN0YXRlbWVudC4KKyAgICAgIDxjb21tYW5k PkRFTEVURTwvY29tbWFuZD4sIDxjb21tYW5kPk1FUkdFPC9jb21tYW5kPiwgPGNvbW1hbmQ+VkFM VUVTPC9jb21tYW5kPiwKKyAgICAgIG9yIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gc3RhdGVtZW50 LgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKaW5kZXggM2JlOWEyZGQyZC4uNmJiYWQxNTRjYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0xMjE2 MCw3ICsxMjE2MCw4IEBAIFByZXBhcmFibGVTdG10OgogCQkJfCBJbnNlcnRTdG10CiAJCQl8IFVw ZGF0ZVN0bXQKIAkJCXwgRGVsZXRlU3RtdAotCQkJfCBNZXJnZVN0bXQJCQkJCQkvKiBieSBkZWZh dWx0IGFsbCBhcmUgJCQ9JDEgKi8KKwkJCXwgTWVyZ2VTdG10CisJCQl8IExldFN0bXQJCQkJCQkv KiBieSBkZWZhdWx0IGFsbCBhcmUgJCQ9JDEgKi8KIAkJOwogCiAvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jdGUuYyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9jdGUuYwppbmRleCA3OTY3MzYyMWM5Li5jNjI3NjFlNGVhIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKKysrIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2N0ZS5jCkBAIC0xMjYsNiArMTI2LDEzIEBAIHRyYW5zZm9ybVdpdGhDbGF1 c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaXRoQ2xhdXNlICp3aXRoQ2xhdXNlKQogCQlDb21tb25U YWJsZUV4cHIgKmN0ZSA9IChDb21tb25UYWJsZUV4cHIgKikgbGZpcnN0KGxjKTsKIAkJTGlzdENl bGwgICAqcmVzdDsKIAorCQkvKiBMRVQgaXMgYWxsb3dlZCBieSBwYXJzZXIsIGJ1dCBub3Qgc3Vw cG9ydGVkLiBSZWplY3QgZm9yIG5vdyAqLworCQlpZiAoSXNBKGN0ZS0+Y3RlcXVlcnksIExldFN0 bXQpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRCksCisJCQkJCWVycm1zZygiTEVUIG5vdCBzdXBwb3J0ZWQgaW4gV0lUSCBxdWVy eSIpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjdGUtPmxvY2F0aW9uKSk7CisK IAkJZm9yX2VhY2hfY2VsbChyZXN0LCB3aXRoQ2xhdXNlLT5jdGVzLCBsbmV4dCh3aXRoQ2xhdXNl LT5jdGVzLCBsYykpCiAJCXsKIAkJCUNvbW1vblRhYmxlRXhwciAqY3RlMiA9IChDb21tb25UYWJs ZUV4cHIgKikgbGZpcnN0KHJlc3QpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IGQ3OGNlZjM2 YWQuLmUzYzgzMDUyN2UgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4u YworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTQ2NjAsOSArNDY2MCw5 IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCWVsc2UgaWYgKFRhaWxN YXRjaGVzKCJWQUxVRVMiKSAmJiAhVGFpbE1hdGNoZXMoIkRFRkFVTFQiLCAiVkFMVUVTIikpCiAJ CUNPTVBMRVRFX1dJVEgoIigiKTsKIAotLyogTEVUICovCisvKiBMRVQsIEVYUExBSU4gTEVULCBQ UkVQQVJFIExFVCAqLwogCS8qIElmIHByZXYuIHdvcmQgaXMgTEVUIHN1Z2dlc3QgYSBsaXN0IG9m IHZhcmlhYmxlcyAqLwotCWVsc2UgaWYgKE1hdGNoZXMoIkxFVCIpKQorCWVsc2UgaWYgKFRhaWxN YXRjaGVzKCJMRVQiKSkKIAkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xp c3Rfb2ZfdmFyaWFibGVzKTsKIAkvKiBDb21wbGV0ZSBMRVQgPHZhcmlhYmxlPiB3aXRoICI9IiAq LwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJMRVQiLCBNYXRjaEFueSkpCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDc3YTY2NTY0ZWMu LjExZjIwNDI2ZDMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXMub3V0CkBAIC05NDAsOSArOTQwLDkgQEAgRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIy OwogLS0gdGhlIExFVCBzdGF0ZW1lbnQgc2hvdWxkIGJlIGRpc2FsbG93ZWQgaW4gQ1RFCiBDUkVB VEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CiBXSVRIIHggQVMgKExFVCB2YXIxID0gMTAwKSBTRUxF Q1QgKiBGUk9NIHg7Ci1FUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICJMRVQiCitFUlJP UjogIExFVCBub3Qgc3VwcG9ydGVkIGluIFdJVEggcXVlcnkKIExJTkUgMTogV0lUSCB4IEFTIChM RVQgdmFyMSA9IDEwMCkgU0VMRUNUICogRlJPTSB4OwotICAgICAgICAgICAgICAgICAgIF4KKyAg ICAgICAgICAgICBeCiAtLSBzaG91bGQgYmUgb2sKIExFVCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVz KDEsIDEpOwogLS0gc2hvdWxkIGZhaWwKQEAgLTIxNTYsNSArMjE1Niw4MiBAQCBTRUxFQ1QgdmFy MTsKICAgIDEwCiAoMSByb3cpCiAKK1NFVCBwbGFuX2NhY2hlX21vZGUgVE8gZm9yY2VfZ2VuZXJp Y19wbGFuOworUFJFUEFSRSBwMSBBUyBMRVQgdmFyMSA9IChTRUxFQ1QgY291bnQoKikgRlJPTSB2 YXJfdGFiX3Rlc3RfdGFibGUpOworTEVUIHZhcjEgPSBOVUxMOworRVhQTEFJTiAoQ09TVFMgT0ZG KSBFWEVDVVRFIHAxOworICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNF VCBTRVNTSU9OIFZBUklBQkxFCisgUmVzdWx0CisgICBJbml0UGxhbiAxCisgICAgIC0+ICBBZ2dy ZWdhdGUKKyAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHZhcl90YWJfdGVzdF90YWJsZQorKDUg cm93cykKKworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0K KyAgICAgCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRiwgVElNSU5HIE9GRiwgQU5BTFla RSwgU1VNTUFSWSBPRkYsIEJVRkZFUlMgT0ZGKSBFWEVDVVRFIHAxOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgU0VUIFNFU1NJT04gVkFSSUFCTEUKKyBSZXN1bHQgKGFjdHVhbCBy b3dzPTEgbG9vcHM9MSkKKyAgIEluaXRQbGFuIDEKKyAgICAgLT4gIEFnZ3JlZ2F0ZSAoYWN0dWFs IHJvd3M9MSBsb29wcz0xKQorICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gdmFyX3RhYl90ZXN0 X3RhYmxlIChhY3R1YWwgcm93cz0xMCBsb29wcz0xKQorKDUgcm93cykKKworLS0gc2hvdWxkIGJl IDEwCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitTRVQg cGxhbl9jYWNoZV9tb2RlIFRPIERFRkFVTFQ7CitERUFMTE9DQVRFIHAxOwogRFJPUCBWQVJJQUJM RSB2YXIxOwogRFJPUCBUQUJMRSB2YXJfdGFiX3Rlc3RfdGFibGU7CitDUkVBVEUgVkFSSUFCTEUg dmFyMSBudW1lcmljOworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBmb3JjZV9nZW5lcmljX3BsYW47 CitQUkVQQVJFIHAxKG51bWVyaWMpIEFTIExFVCB2YXIxID0gJDE7CitQUkVQQVJFIHAyIEFTIFNF TEVDVCB2YXIxOworRVhFQ1VURSBwMShwaSgpICsgMTAwKTsKK0VYRUNVVEUgcDI7CisgICAgICB2 YXIxICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0KKyAxMDMuMTQxNTkyNjUzNTkKKygxIHJvdykK KworLS0gcHJlcGFyZWQgcGxhbiBjYWNoZSBpbnZhbGlkYXRpb24gdGVzdAorRFJPUCBWQVJJQUJM RSB2YXIxOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgbnVtZXJpYzsKKy0tIHNob3VsZCBiZSBOVUxM CitFWEVDVVRFIHAyOworIHZhcjEgCistLS0tLS0KKyAgICAgCisoMSByb3cpCisKK0RFQUxMT0NB VEUgcDE7CitERUFMTE9DQVRFIHAyOworRFJPUCBWQVJJQUJMRSB2YXIxOworU0VUIHBsYW5fY2Fj aGVfbW9kZSBUTyBmb3JjZV9nZW5lcmljX3BsYW47CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1l cmljW107CitQUkVQQVJFIHAxKGludCwgbnVtZXJpYykgQVMgTEVUIHZhcjFbJDFdID0gJDI7CitM RVQgdmFyMSA9ICd7fSc6Om51bWVyaWNbXTsKK0VYRUNVVEUgcDEoMSwgMTAuMik7CitFWEVDVVRF IHAxKDIsIDEwLjMpOworU0VMRUNUIHZhcjE7CisgICAgdmFyMSAgICAgCistLS0tLS0tLS0tLS0t CisgezEwLjIsMTAuM30KKygxIHJvdykKKworREVBTExPQ0FURSBwMTsKK0RST1AgVkFSSUFCTEUg dmFyMTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCAy NmVjOGQ4OTIxLi5iODQxZDU5ZmQ4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9z ZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsCkBAIC0xNDkzLDUgKzE0OTMsNjIgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGLCBU SU1JTkcgT0ZGLCBBTkFMWVpFLCBTVU1NQVJZIE9GRiwgQlVGRkVSUyBPRkYpIExFVCB2YXIxID0g KFMKIC0tIHNob3VsZCBiZSAxMAogU0VMRUNUIHZhcjE7CiAKK1NFVCBwbGFuX2NhY2hlX21vZGUg VE8gZm9yY2VfZ2VuZXJpY19wbGFuOworCitQUkVQQVJFIHAxIEFTIExFVCB2YXIxID0gKFNFTEVD VCBjb3VudCgqKSBGUk9NIHZhcl90YWJfdGVzdF90YWJsZSk7CisKK0xFVCB2YXIxID0gTlVMTDsK KworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHAxOworCistLSBzaG91bGQgYmUgTlVMTAor U0VMRUNUIHZhcjE7CisKK0VYUExBSU4gKENPU1RTIE9GRiwgVElNSU5HIE9GRiwgQU5BTFlaRSwg U1VNTUFSWSBPRkYsIEJVRkZFUlMgT0ZGKSBFWEVDVVRFIHAxOworCistLSBzaG91bGQgYmUgMTAK K1NFTEVDVCB2YXIxOworCitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIERFRkFVTFQ7CisKK0RFQUxM T0NBVEUgcDE7CisKIERST1AgVkFSSUFCTEUgdmFyMTsKIERST1AgVEFCTEUgdmFyX3RhYl90ZXN0 X3RhYmxlOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1lcmljOworCitTRVQgcGxhbl9jYWNo ZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKKworUFJFUEFSRSBwMShudW1lcmljKSBBUyBM RVQgdmFyMSA9ICQxOworUFJFUEFSRSBwMiBBUyBTRUxFQ1QgdmFyMTsKKworRVhFQ1VURSBwMShw aSgpICsgMTAwKTsKK0VYRUNVVEUgcDI7CisKKy0tIHByZXBhcmVkIHBsYW4gY2FjaGUgaW52YWxp ZGF0aW9uIHRlc3QKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIG51 bWVyaWM7CisKKy0tIHNob3VsZCBiZSBOVUxMCitFWEVDVVRFIHAyOworCitERUFMTE9DQVRFIHAx OworREVBTExPQ0FURSBwMjsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCitTRVQgcGxhbl9jYWNo ZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgbnVt ZXJpY1tdOworCitQUkVQQVJFIHAxKGludCwgbnVtZXJpYykgQVMgTEVUIHZhcjFbJDFdID0gJDI7 CisKK0xFVCB2YXIxID0gJ3t9Jzo6bnVtZXJpY1tdOworRVhFQ1VURSBwMSgxLCAxMC4yKTsKK0VY RUNVVEUgcDEoMiwgMTAuMyk7CisKK1NFTEVDVCB2YXIxOworCitERUFMTE9DQVRFIHAxOworRFJP UCBWQVJJQUJMRSB2YXIxOwotLSAKMi40Ny4xCgo= --0000000000008953c9062b346e70 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250108-0008-variable-fence-syntax-support-and-variable-fence-usa.patch" Content-Disposition: attachment; filename="v20250108-0008-variable-fence-syntax-support-and-variable-fence-usa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5o4agku14 RnJvbSAzMDJiZjhjZjI0OWEzZjIxNjZkYzdkMDlhOTM3ZjIxOTJiMTdiOWJmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMTkgTm92IDIwMjQgMDg6MTQ6NTMgKzAxMDAKU3ViamVjdDogW1BBVENIIDA4 LzIyXSB2YXJpYWJsZSBmZW5jZSBzeW50YXggc3VwcG9ydCBhbmQgdmFyaWFibGUgZmVuY2UgdXNh Z2UKIGd1YXJkIHN1cHBvcnQKCnRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGNvbmNlcHQgb2YgdmFy aWFibGUgZmVuY2UgLSBzeW50YXggZm9yIHZhcmlhYmxlCnJlZmVyZW5jZSBgVkFSSUFCTEUodmFy bmFtZSlgIHRoYXQgaXMgbm90IGluIGNvbGxpc2lvbiB3aXRoIGNvbHVtbiByZWZlcmVuY2UuCldo ZW4gdmFyaWFibGUgZmVuY2UgdXNhZ2UgZ3VhcmQgd2FybmluZyBpcyBhY3RpdmUsIHRoZW4gdXNh Z2UgdmFyaWFibGUKd2l0aG91dCB2YXJpYWJsZSBmZW5jZSBpbiB0aGUgY2FzZSwgd2hlcmUgdGhl cmUgY2FuIGJlIGNvbHVtbiByZWZlcmVuY2VzLAp0aGUgdGhlIHdhcm5pbmcgaXMgcmFpc2VkLgoK aW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB2YXJpYWJsZSBmZW5jZQotLS0KIGRvYy9zcmMvc2dt bC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8IDY1ICsrKysrKysrKysrKysrKysK IGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8IDE1ICsrKysK IHNyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICA2ICsrCiBz cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAyOCArKysrKyst CiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCA3NCArKysr KysrKysrKysrKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgICAgICAg ICAgICAgfCAgNyArKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAg ICAgIHwgMTIgKystCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyAgICAgICAg ICAgfCAgOSArKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBs ZSB8ICAxICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8 IDEwICsrKwogc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwg IDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCAgICAgICAgICAgICAgIHwgIDEg KwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgNTkgKysr KysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwg ICAgfCA0MSArKysrKysrKysrCiAxNCBmaWxlcyBjaGFuZ2VkLCAzMjMgaW5zZXJ0aW9ucygrKSwg NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9k b2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggMTAxMjI0YmNjMC4uNWI5OWY3ZmM0NSAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jb25m aWcuc2dtbApAQCAtMTA4NjcsNiArMTA4NjcsNzEgQEAgREVUQUlMOiAgU2Vzc2lvbiB2YXJpYWJs ZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJvdXRpbmUncyB2YXJpYWJsZXMgYW5kIHIK ICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0 ZW50cnkgaWQ9Imd1Yy1zZXNzaW9uLXZhcmlhYmxlcy11c2UtZmVuY2Utd2FybmluZy1ndWFyZCIg eHJlZmxhYmVsPSJzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZCI+Cisg ICAgICA8dGVybT48dmFybmFtZT5zZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19n dWFyZDwvdmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4K KyAgICAgICA8cHJpbWFyeT48dmFybmFtZT5zZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2Fy bmluZ19ndWFyZDwvdmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8L3ByaW1hcnk+Cisg ICAgICA8L2luZGV4dGVybT4KKyAgICAgIDwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAg IDxwYXJhPgorICAgICAgIFdoZW4gb24sIGEgd2FybmluZyBpcyByYWlzZWQgd2hlbiBhIHNlc3Np b24gdmFyaWFibGUgaWRlbnRpZmllciBpcyB1c2VkCisgICAgICAgaW5zaWRlIGEgcXVlcnkgd2l0 aG91dCB2YXJpYWJsZSBmZW5jZS4gVGhlIGRlZmF1bHQgaXMgPGxpdGVyYWw+b2ZmPC9saXRlcmFs Pi4KKyAgICAgICBUaGUgd2FybmluZyBpcyByYWlzZWQgb25seSB3aGVuIHZhcmlhYmxlIGlzIHVz ZWQgaW4gcGxhY2VzLCB3aGVyZSBhbgorICAgICAgIGNvbGxpc2lvbnMgd2l0aCBjb2x1bW4gbmFt ZXMgaXMgcG9zc2libGUuCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVEFCTEUgZm9vKGEgaW50 KTsKK0lOU0VSVCBJTlRPIGZvbyBWQUxVRVMoMTApOworQ1JFQVRFIFZBUklBQkxFIGIgaW50Owor TEVUIGIgPSAxMDA7CitTRUxFQ1QgYSwgYiBGUk9NIGZvbzsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisK KzxzY3JlZW4+CisgYSAgfCAgYiAgCistLS0tKy0tLS0tCisgMTAgfCAxMDAKKygxIHJvdykKKzwv c2NyZWVuPgorCis8cHJvZ3JhbWxpc3Rpbmc+CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2Zl bmNlX3dhcm5pbmdfZ3VhcmQgVE8gb247CitTRUxFQ1QgYSwgYiBGUk9NIGZvbzsKKzwvcHJvZ3Jh bWxpc3Rpbmc+CisKKzxzY3JlZW4+CitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJpYWJsZSAiYiIgaXMg bm90IHVzZWQgaW5zaWRlIHZhcmlhYmxlIGZlbmNlCitMSU5FIDE6IFNFTEVDVCBhLCBiIEZST00g Zm9vOworICAgICAgICAgICAgICAgICAgXgorREVUQUlMOiAgVGhlIGNvbGxpc2lvbiBvZiBzZXNz aW9uIHZhcmlhYmxlJyBuYW1lcyBhbmQgY29sdW1uIG5hbWVzIGlzIHBvc3NpYmxlLgorIGEgIHwg IGIgIAorLS0tLSstLS0tLQorIDEwIHwgMTAwCisoMSByb3cpCis8L3NjcmVlbj4KKworPHByb2dy YW1saXN0aW5nPgorU0VMRUNUIGEsIFZBUklBQkxFKGIpIEZST00gZm9vOworPC9wcm9ncmFtbGlz dGluZz4KKworPHNjcmVlbj4KKyBhICB8ICBiICAKKy0tLS0rLS0tLS0KKyAxMCB8IDEwMAorKDEg cm93KQorPC9zY3JlZW4+CisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAg IFRoaXMgZmVhdHVyZSBjYW4gc2lnbmlmaWNhbnRseSBpbmNyZWFzZSBsb2cgc2l6ZSwgc28gaXQn cyBkaXNhYmxlZCBieQorICAgICAgICBkZWZhdWx0LiBVbmxlc3MgYW5vdGhlciBjb2xsaXNpb24g cmVzb2x1dGlvbiB0ZWNobmlxdWUgaXMgdXNlZAorICAgICAgICAoZGVkaWNhdGVkIHNjaGVtYSBv ciB1c2luZyBwcmVmaXhlcyBsaWtlIDxsaXRlcmFsPl88L2xpdGVyYWw+KSwKKyAgICAgICAgdGhl IHVzZSBvZiB2YXJpYWJsZSBmZW5jZSBzeW50YXggaXMgc3Ryb25nbHkgcmVjb21tZW5kZWQsIGFu ZCB0aGlzCisgICAgICAgIHdhcm5pbmcgc2hvdWxkIGJlIGVuYWJsZWQuCisgICAgICAgPC9wYXJh PgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxp c3RlbnRyeSBpZD0iZ3VjLXN0YW5kYXJkLWNvbmZvcm1pbmctc3RyaW5ncyIgeHJlZmxhYmVsPSJz dGFuZGFyZF9jb25mb3JtaW5nX3N0cmluZ3MiPgogICAgICAgPHRlcm0+PHZhcm5hbWU+c3RhbmRh cmRfY29uZm9ybWluZ19zdHJpbmdzPC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCiAg ICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PnN0cmluZ3M8L3ByaW1hcnk+PHNlY29uZGFyeT5zdGFu ZGFyZCBjb25mb3JtaW5nPC9zZWNvbmRhcnk+PC9pbmRleHRlcm0+CmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggMWRlZTBhYzI4 ZC4uYTU2NjQ2MDRlNiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTQyOSw2ICs1NDI5LDIxIEBAIFNFTEVDVCBuYW1lIEZS T00gZm9vOwogICAgIDxsaXRlcmFsPnNjaGVtYS52YXJpYWJsZTwvbGl0ZXJhbD4uIEl0IGlzIHN0 cm9uZ2x5IHJlY29tbWVuZGVkIHRvIHJlbmFtZQogICAgIHNoYWRvd2VkIHZhcmlhYmxlcyBvciB1 c2UgcXVhbGlmaWVkIG5hbWVzIGFsd2F5cy4KICAgIDwvcGFyYT4KKworICAgPHBhcmE+PGZpcnN0 dGVybT5WYXJpYWJsZSBmZW5jZTwvZmlyc3R0ZXJtPiBpcyBzcGVjaWFsIHN5bnRheCBmb3Igc2Vz c2lvbgorICAgIHZhcmlhYmxlIGlkZW50aWZpZXIuIE9ubHkgbmFtZSBvciBxdWFsaWZpZWQgbmFt ZSBjYW4gYmUgdXNlZCBpbnNpZGUgdGhlCisgICAgdmFyaWFibGUgZmVuY2UsIGFuZCB0aGlzIG5h bWUgaXMgdXNlZCBhcyBvbmx5IHNlc3Npb24gdmFyaWFibGUgaWRlbnRpZmllci4KKzxwcm9ncmFt bGlzdGluZz4KK1NFTEVDVCBWQVJJQUJMRShjdXJyZW50X3VzZXJfaWQpOworPC9wcm9ncmFtbGlz dGluZz4KKyAgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFdoZW4gdGhlcmUgaXMgYSByaXNrIG9m IHBvc3NpYmxlIGNvbGxpc2lvbnMgYmV0d2VlbiB2YXJpYWJsZSBpZGVudGlmaWVycworICAgYW5k IGNvbHVtbiBuYW1lcywgdGhlbiB1c2luZyB2YXJpYWJsZSBmZW5jZSBzeW50YXggY2FuIGJlIHJl Y29tbWVuZGVkLgorICAgVXNhZ2Ugc2Vzc2lvbiB2YXJpYWJsZSB3aXRob3V0IHZhcmlhYmxlIGZl bmNlIGNhbiBiZSBkZXRlY3RlZCBieQorICAgd2FybmluZyA8eHJlZiBsaW5rZW5kPSJndWMtc2Vz c2lvbi12YXJpYWJsZXMtdXNlLWZlbmNlLXdhcm5pbmctZ3VhcmQiLz4uCisgIDwvcGFyYT4KICAg PC9zZWN0MT4KIAogIDxzZWN0MSBpZD0iZGRsLW90aGVycyI+CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmlu ZGV4IDU2YThmZTVkNzQuLjM3YjkxZTUwNzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVz L25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC0xNjYy LDYgKzE2NjIsOSBAQCBleHByTG9jYXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJY2FzZSBUX1Bh cmFtUmVmOgogCQkJbG9jID0gKChjb25zdCBQYXJhbVJlZiAqKSBleHByKS0+bG9jYXRpb247CiAJ CQlicmVhazsKKwkJY2FzZSBUX1ZhcmlhYmxlRmVuY2U6CisJCQlsb2MgPSAoKGNvbnN0IFZhcmlh YmxlRmVuY2UgKikgZXhwciktPmxvY2F0aW9uOworCQkJYnJlYWs7CiAJCWNhc2UgVF9BX0NvbnN0 OgogCQkJbG9jID0gKChjb25zdCBBX0NvbnN0ICopIGV4cHIpLT5sb2NhdGlvbjsKIAkJCWJyZWFr OwpAQCAtNDY4MSw2ICs0Njg0LDkgQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChO b2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRf VmFyaWFibGVGZW5jZToKKwkJCS8qIHdlIGFzc3VtZSB0aGUgZmllbGRzIGNvbnRhaW4gbm90aGlu ZyBpbnRlcmVzdGluZyAqLworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAi dW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLAogCQkJCSAoaW50KSBub2RlVGFnKG5vZGUpKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CmluZGV4IDdlNzE1OGFjMDkuLjY3NGU4YWYyNTYgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAt NTE3LDcgKzUxNyw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFy ICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8bm9kZT4JZGVm X2FyZyBjb2x1bW5FbGVtIHdoZXJlX2NsYXVzZSB3aGVyZV9vcl9jdXJyZW50X2NsYXVzZQogCQkJ CWFfZXhwciBiX2V4cHIgY19leHByIEFleHByQ29uc3QgaW5kaXJlY3Rpb25fZWwgb3B0X3NsaWNl X2JvdW5kCiAJCQkJY29sdW1ucmVmIGluX2V4cHIgaGF2aW5nX2NsYXVzZSBmdW5jX3RhYmxlIHht bHRhYmxlIGFycmF5X2V4cHIKLQkJCQlPcHRXaGVyZUNsYXVzZSBvcGVyYXRvcl9kZWZfYXJnCisJ CQkJT3B0V2hlcmVDbGF1c2Ugb3BlcmF0b3JfZGVmX2FyZyB2YXJpYWJsZV9mZW5jZQogJXR5cGUg PGxpc3Q+CW9wdF9jb2x1bW5fYW5kX3BlcmlvZF9saXN0CiAldHlwZSA8bGlzdD4Jcm93c2Zyb21f aXRlbSByb3dzZnJvbV9saXN0IG9wdF9jb2xfZGVmX2xpc3QKICV0eXBlIDxib29sZWFuPiBvcHRf b3JkaW5hbGl0eSBvcHRfd2l0aG91dF9vdmVybGFwcwpAQCAtODc0LDcgKzg3NCw3IEBAIHN0YXRp YyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlh c2VzLCBOb2RlICpxdWVyeSk7CiAgKi8KICVub25hc3NvYwlVTkJPVU5ERUQgTkVTVEVEIC8qIGlk ZWFsbHkgd291bGQgaGF2ZSBzYW1lIHByZWNlZGVuY2UgYXMgSURFTlQgKi8KICVub25hc3NvYwlJ REVOVCBQQVJUSVRJT04gUkFOR0UgUk9XUyBHUk9VUFMgUFJFQ0VESU5HIEZPTExPV0lORyBDVUJF IFJPTExVUAotCQkJU0VUIEtFWVMgT0JKRUNUX1AgU0NBTEFSIFZBTFVFX1AgV0lUSCBXSVRIT1VU IFBBVEgKKwkJCVNFVCBLRVlTIE9CSkVDVF9QIFNDQUxBUiBWQUxVRV9QIFdJVEggV0lUSE9VVCBQ QVRIIFZBUklBQkxFCiAlbGVmdAkJT3AgT1BFUkFUT1IJCS8qIG11bHRpLWNoYXJhY3RlciBvcHMg YW5kIHVzZXItZGVmaW5lZCBvcGVyYXRvcnMgKi8KICVsZWZ0CQknKycgJy0nCiAlbGVmdAkJJyon ICcvJyAnJScKQEAgLTE1NTkzLDYgKzE1NTkzLDE5IEBAIGNfZXhwcjoJCWNvbHVtbnJlZgkJCQkJ CQkJeyAkJCA9ICQxOyB9CiAJCQkJCWVsc2UKIAkJCQkJCSQkID0gJDI7CiAJCQkJfQorCQkJfCB2 YXJpYWJsZV9mZW5jZSBvcHRfaW5kaXJlY3Rpb24KKwkJCQl7CisJCQkJCWlmICgkMikKKwkJCQkJ eworCQkJCQkJQV9JbmRpcmVjdGlvbiAqbiA9IG1ha2VOb2RlKEFfSW5kaXJlY3Rpb24pOworCisJ CQkJCQluLT5hcmcgPSAoTm9kZSAqKSAkMTsKKwkJCQkJCW4tPmluZGlyZWN0aW9uID0gY2hlY2tf aW5kaXJlY3Rpb24oJDIsIHl5c2Nhbm5lcik7CisJCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJ CX0KKwkJCQkJZWxzZQorCQkJCQkJJCQgPSAkMTsKKwkJCQl9CiAJCQl8IGNhc2VfZXhwcgogCQkJ CXsgJCQgPSAkMTsgfQogCQkJfCBmdW5jX2V4cHIKQEAgLTE2OTc5LDYgKzE2OTkyLDE3IEBAIGNh c2VfYXJnOglhX2V4cHIJCQkJCQkJCQl7ICQkID0gJDE7IH0KIAkJCXwgLypFTVBUWSovCQkJCQkJ CQl7ICQkID0gTlVMTDsgfQogCQk7CiAKK3ZhcmlhYmxlX2ZlbmNlOgorCQkJVkFSSUFCTEUgJygn IGFueV9uYW1lICcpJworCQkJCXsKKwkJCQkJVmFyaWFibGVGZW5jZSAqdmYgPSBtYWtlTm9kZShW YXJpYWJsZUZlbmNlKTsKKworCQkJCQl2Zi0+dmFybmFtZSA9ICQzOworCQkJCQl2Zi0+bG9jYXRp b24gPSBAMzsKKwkJCQkJJCQgPSAoTm9kZSAqKSB2ZjsKKwkJCQl9CisJCTsKKwogY29sdW1ucmVm OglDb2xJZAogCQkJCXsKIAkJCQkJJCQgPSBtYWtlQ29sdW1uUmVmKCQxLCBOSUwsIEAxLCB5eXNj YW5uZXIpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggYjNjNTFhZjhjZi4uMWY1NTBjZDA0 ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC00Niw2ICs0Niw3IEBACiAvKiBHVUMgcGFy YW1ldGVycyAqLwogYm9vbAkJVHJhbnNmb3JtX251bGxfZXF1YWxzID0gZmFsc2U7CiBib29sCQlz ZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyA9IGZhbHNlOworYm9vbAkJc2Vzc2lv bl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQgPSBmYWxzZTsKIAogCiBzdGF0aWMg Tm9kZSAqdHJhbnNmb3JtRXhwclJlY3Vyc2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHBy KTsKQEAgLTgxLDYgKzgyLDcgQEAgc3RhdGljIE5vZGUgKnRyYW5zZm9ybVdob2xlUm93UmVmKFBh cnNlU3RhdGUgKnBzdGF0ZSwKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1JbmRpcmVjdGlvbihQYXJz ZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCk7CiBzdGF0aWMgTm9kZSAqdHJhbnNm b3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBlQ2FzdCAqdGMpOwogc3RhdGljIE5v ZGUgKnRyYW5zZm9ybUNvbGxhdGVDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2xsYXRlQ2xh dXNlICpjKTsKK3N0YXRpYyBOb2RlICp0cmFuc2Zvcm1WYXJpYWJsZUZlbmNlKFBhcnNlU3RhdGUg KnBzdGF0ZSwgVmFyaWFibGVGZW5jZSAqdmYpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUpzb25P YmplY3RDb25zdHJ1Y3RvcihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCUpzb25PYmpl Y3RDb25zdHJ1Y3RvciAqY3Rvcik7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSnNvbkFycmF5Q29u c3RydWN0b3IoUGFyc2VTdGF0ZSAqcHN0YXRlLApAQCAtMTEyLDcgKzExNCw3IEBAIHN0YXRpYyBO b2RlICptYWtlX251bGx0ZXN0X2Zyb21fZGlzdGluY3QoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJ CQkJCQkJCSBBX0V4cHIgKmRpc3RpbmN0YSwgTm9kZSAqYXJnKTsKIHN0YXRpYyBOb2RlICptYWtl UGFyYW1TZXNzaW9uVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJICBPaWQg dmFyaWQsIE9pZCB0eXBpZCwgaW50MzIgdHlwbW9kLCBPaWQgY29sbGlkLAotCQkJCQkJCQkJICBj aGFyICphdHRybmFtZSwgaW50IGxvY2F0aW9uKTsKKwkJCQkJCQkJCSAgY2hhciAqYXR0cm5hbWUs IGJvb2wgZmVuY2VkLCBpbnQgbG9jYXRpb24pOwogCiAKIC8qCkBAIC0zNzcsNiArMzc5LDEwIEBA IHRyYW5zZm9ybUV4cHJSZWN1cnNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcikKIAkJ CXJlc3VsdCA9IHRyYW5zZm9ybUpzb25GdW5jRXhwcihwc3RhdGUsIChKc29uRnVuY0V4cHIgKikg ZXhwcik7CiAJCQlicmVhazsKIAorCQljYXNlIFRfVmFyaWFibGVGZW5jZToKKwkJCXJlc3VsdCA9 IHRyYW5zZm9ybVZhcmlhYmxlRmVuY2UocHN0YXRlLCAoVmFyaWFibGVGZW5jZSAqKSBleHByKTsK KwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQkvKiBzaG91bGQgbm90IHJlYWNoIGhlcmUgKi8K IAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsIChpbnQpIG5vZGVU YWcoZXhwcikpOwpAQCAtMTAyOCw3ICsxMDM0LDIwIEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJz ZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAogCQkJCW5vZGUgPSBtYWtlUGFyYW1T ZXNzaW9uVmFyaWFibGUocHN0YXRlLAogCQkJCQkJCQkJCQkJdmFyaWQsIHR5cGlkLCB0eXBtb2Qs IGNvbGxpZCwKLQkJCQkJCQkJCQkJCWF0dHJuYW1lLCBjcmVmLT5sb2NhdGlvbik7CisJCQkJCQkJ CQkJCQlhdHRybmFtZSwgZmFsc2UsIGNyZWYtPmxvY2F0aW9uKTsKKworCQkJCS8qCisJCQkJICog VGhlIHZhcmlhYmxlIGlzIG5vdCBpbnNpZGUgdmFyaWFibGUncyBmZW5jZSwgc28gcmFpc2Ugd2Fy bmluZworCQkJCSAqIHdoZW4gdmFyaWFibGUgZmVuY2UgZ3VhcmQgaXMgYWN0aXZlIGFuZCB0aGUg cXVlcnkgaGFzIEZST00KKwkJCQkgKiBjbGF1c2UuCisJCQkJICovCisJCQkJaWYgKHNlc3Npb25f dmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkICYmIHBzdGF0ZS0+cF9ydGFibGUpCisJ CQkJCWVyZXBvcnQoV0FSTklORywKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0FNQklHVU9VU19D T0xVTU4pLAorCQkJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGlzIG5vdCB1 c2VkIGluc2lkZSB2YXJpYWJsZSBmZW5jZSIsCisJCQkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKGNy ZWYtPmZpZWxkcykpLAorCQkJCQkJCSBlcnJkZXRhaWwoIlRoZSBjb2xsaXNpb24gb2Ygc2Vzc2lv biB2YXJpYWJsZScgbmFtZXMgYW5kIGNvbHVtbiBuYW1lcyBpcyBwb3NzaWJsZS4iKSwKKwkJCQkJ CQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgY3JlZi0+bG9jYXRpb24pKSk7CiAJCQl9CiAJ CX0KIAl9CkBAIC0xMDcxLDcgKzEwOTAsNyBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiBzdGF0aWMgTm9kZSAqCiBtYWtlUGFyYW1TZXNz aW9uVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJIE9pZCB2YXJpZCwgT2lkIHR5 cGlkLCBpbnQzMiB0eXBtb2QsIE9pZCBjb2xsaWQsCi0JCQkJCQkgY2hhciAqYXR0cm5hbWUsIGlu dCBsb2NhdGlvbikKKwkJCQkJCSBjaGFyICphdHRybmFtZSwgYm9vbCBmZW5jZWQsIGludCBsb2Nh dGlvbikKIHsKIAlQYXJhbQkgICAqcGFyYW07CiAKQEAgLTEwNzksNiArMTA5OCw3IEBAIG1ha2VQ YXJhbVNlc3Npb25WYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsCiAKIAlwYXJhbS0+cGFyYW1r aW5kID0gUEFSQU1fVkFSSUFCTEU7CiAJcGFyYW0tPnBhcmFtdmFyaWQgPSB2YXJpZDsKKwlwYXJh bS0+cGFyYW12YXJmZW5jZWQgPSBmZW5jZWQ7CiAJcGFyYW0tPnBhcmFtdHlwZSA9IHR5cGlkOwog CXBhcmFtLT5wYXJhbXR5cG1vZCA9IHR5cG1vZDsKIAlwYXJhbS0+cGFyYW1jb2xsaWQgPSBjb2xs aWQ7CkBAIC0xMTU3LDYgKzExNzcsNTQgQEAgdHJhbnNmb3JtUGFyYW1SZWYoUGFyc2VTdGF0ZSAq cHN0YXRlLCBQYXJhbVJlZiAqcHJlZikKIAlyZXR1cm4gcmVzdWx0OwogfQogCitzdGF0aWMgTm9k ZSAqCit0cmFuc2Zvcm1WYXJpYWJsZUZlbmNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgVmFyaWFibGVG ZW5jZSAqdmYpCit7CisJTm9kZQkgICAqcmVzdWx0OworCU9pZAkJCXZhcmlkID0gSW52YWxpZE9p ZDsKKwljaGFyCSAgICphdHRybmFtZSA9IE5VTEw7CisJYm9vbAkJbm90X3VuaXF1ZTsKKworCS8q IFZhcmlhYmxlRmVuY2UgY2FuIGJlIHVzZWQgb25seSBpbiBjb250ZXh0IHdoZW4gdmFyaWFibGVz IGFyZSBzdXBwb3J0ZWQgKi8KKwlpZiAoIWV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJs ZXMocHN0YXRlLT5wX2V4cHJfa2luZCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkoZXJyY29kZShF UlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlh YmxlIHJlZmVyZW5jZSBpcyBub3Qgc3VwcG9ydGVkIGhlcmUiKSwKKwkJCSBwYXJzZXJfZXJycG9z aXRpb24ocHN0YXRlLCB2Zi0+bG9jYXRpb24pKSk7CisKKwkvKiB0YWtlcyBhbiBBY2Nlc3NTaGFy ZUxvY2sgb24gdGhlIHNlc3Npb24gdmFyaWFibGUgKi8KKwl2YXJpZCA9IElkZW50aWZ5VmFyaWFi bGUodmYtPnZhcm5hbWUsICZhdHRybmFtZSwgJm5vdF91bmlxdWUsIGZhbHNlKTsKKworCWlmIChu b3RfdW5pcXVlKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfQU1CSUdV T1VTX1BBUkFNRVRFUiksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSByZWZlcmVuY2Ug XCIlc1wiIGlzIGFtYmlndW91cyIsCisJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKHZmLT52YXJuYW1l KSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHZmLT5sb2NhdGlvbikpKTsKKwor CWlmIChPaWRJc1ZhbGlkKHZhcmlkKSkKKwl7CisJCU9pZAkJCXR5cGlkOworCQlpbnQzMgkJdHlw bW9kOworCQlPaWQJCQljb2xsaWQ7CisKKwkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBt b2RfY29sbGlkKHZhcmlkLCAmdHlwaWQsICZ0eXBtb2QsCisJCQkJCQkJCQkJCQkmY29sbGlkKTsK KworCQlyZXN1bHQgPSBtYWtlUGFyYW1TZXNzaW9uVmFyaWFibGUocHN0YXRlLAorCQkJCQkJCQkJ CXZhcmlkLCB0eXBpZCwgdHlwbW9kLCBjb2xsaWQsCisJCQkJCQkJCQkJYXR0cm5hbWUsIHRydWUs IHZmLT5sb2NhdGlvbik7CisJfQorCWVsc2UKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29k ZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFi bGUgXCIlc1wiIGRvZXNuJ3QgZXhpc3QiLAorCQkJCQkJTmFtZUxpc3RUb1N0cmluZyh2Zi0+dmFy bmFtZSkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCB2Zi0+bG9jYXRpb24pKSk7 CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAvKiBUZXN0IHdoZXRoZXIgYW4gYV9leHByIGlzIGEg cGxhaW4gTlVMTCBjb25zdGFudCBvciBub3QgKi8KIHN0YXRpYyBib29sCiBleHBySXNOdWxsQ29u c3RhbnQoTm9kZSAqYXJnKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Rh cmdldC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCmluZGV4IDkzOTE1MDMx YmUuLjMwMGVhMzQ4NzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTIwMzQsNiAr MjAzNCwxMyBAQCBGaWd1cmVDb2xuYW1lSW50ZXJuYWwoTm9kZSAqbm9kZSwgY2hhciAqKm5hbWUp CiAJCQkJCQkgKGludCkgKChKc29uRnVuY0V4cHIgKikgbm9kZSktPm9wKTsKIAkJCX0KIAkJCWJy ZWFrOworCQljYXNlIFRfVmFyaWFibGVGZW5jZToKKwkJCXsKKwkJCQkvKiByZXR1cm4gbGFzdCBm aWVsZCBuYW1lICovCisJCQkJKm5hbWUgPSBzdHJWYWwobGxhc3QoKChWYXJpYWJsZUZlbmNlICop IG5vZGUpLT52YXJuYW1lKSk7CisJCQkJcmV0dXJuIDI7CisJCQl9CisJCQlicmVhazsKIAkJZGVm YXVsdDoKIAkJCWJyZWFrOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9y dWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCA4ZDNk M2M5Yzc1Li5lYmI0MWUzYjVlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVs ZXV0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCkBAIC04NjMw LDggKzg2MzAsMTYgQEAgZ2V0X3BhcmFtZXRlcihQYXJhbSAqcGFyYW0sIGRlcGFyc2VfY29udGV4 dCAqY29udGV4dCkKIAkvKiB0cmFuc2xhdGUgcGFyYW12YXJpZCB0byBzZXNzaW9uIHZhcmlhYmxl IG5hbWUgKi8KIAlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKIAl7Ci0J CWFwcGVuZFN0cmluZ0luZm8oY29udGV4dC0+YnVmLCAiJXMiLAotCQkJCQkJIGdlbmVyYXRlX3Nl c3Npb25fdmFyaWFibGVfbmFtZShwYXJhbS0+cGFyYW12YXJpZCkpOworCQlpZiAocGFyYW0tPnBh cmFtdmFyZmVuY2VkKQorCQl7CisJCQlhcHBlbmRTdHJpbmdJbmZvKGNvbnRleHQtPmJ1ZiwgIlZB UklBQkxFKCVzKSIsCisJCQkJCQkJIGdlbmVyYXRlX3Nlc3Npb25fdmFyaWFibGVfbmFtZShwYXJh bS0+cGFyYW12YXJpZCkpOworCQl9CisJCWVsc2UKKwkJeworCQkJYXBwZW5kU3RyaW5nSW5mbyhj b250ZXh0LT5idWYsICIlcyIsCisJCQkJCQkJIGdlbmVyYXRlX3Nlc3Npb25fdmFyaWFibGVfbmFt ZShwYXJhbS0+cGFyYW12YXJpZCkpOworCQl9CiAJCXJldHVybjsKIAl9CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv bWlzYy9ndWNfdGFibGVzLmMKaW5kZXggNjQ3ZmExZjY0Yy4uZTA0NDRhN2I1MSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTE2MTQsNiArMTYxNCwxNSBAQCBzdHJ1Y3QgY29u ZmlnX2Jvb2wgQ29uZmlndXJlTmFtZXNCb29sW10gPQogCQlmYWxzZSwKIAkJTlVMTCwgTlVMTCwg TlVMTAogCX0sCisJeworCQl7InNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1 YXJkIiwgUEdDX1VTRVJTRVQsIENMSUVOVF9DT05OX1NUQVRFTUVOVCwKKwkJCWdldHRleHRfbm9v cCgiUmFpc2UgYSB3YXJuaW5nIHdoZW4gdmFyaWFibGUgaXMgbm90IHVzZWQgaW5zaWRlIHZhcmlh YmxlIGZlbmNlLiIpLAorCQkJTlVMTAorCQl9LAorCQkmc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2Zl bmNlX3dhcm5pbmdfZ3VhcmQsCisJCWZhbHNlLAorCQlOVUxMLCBOVUxMLCBOVUxMCisJfSwKIAl7 CiAJCXsiZGVmYXVsdF90cmFuc2FjdGlvbl9yZWFkX29ubHkiLCBQR0NfVVNFUlNFVCwgQ0xJRU5U X0NPTk5fU1RBVEVNRU5ULAogCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRoZSBkZWZhdWx0IHJlYWQt b25seSBzdGF0dXMgb2YgbmV3IHRyYW5zYWN0aW9ucy4iKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSBiL3NyYy9iYWNrZW5kL3V0aWxz L21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQppbmRleCAyNGNkNmEyY2Y1Li4xNWQ2YjMxMmUx IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1w bGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBA IC03MTgsNiArNzE4LDcgQEAgYXV0b3ZhY3V1bV93b3JrZXJfc2xvdHMgPSAxNgkjIGF1dG92YWN1 dW0gd29ya2VyIHNsb3RzIHRvIGFsbG9jYXRlCiAjZGVmYXVsdF90cmFuc2FjdGlvbl9kZWZlcnJh YmxlID0gb2ZmCiAjc2Vzc2lvbl9yZXBsaWNhdGlvbl9yb2xlID0gJ29yaWdpbicKICNzZXNzaW9u X3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyA9IG9mZgorI3Nlc3Npb25fdmFyaWFibGVzX3Vz ZV9mZW5jZV93YXJuaW5nX2d1YXJkID0gb2ZmCiAjc3RhdGVtZW50X3RpbWVvdXQgPSAwCQkJCSMg aW4gbWlsbGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCiAjdHJhbnNhY3Rpb25fdGltZW91dCA9IDAJ CQkjIGluIG1pbGxpc2Vjb25kcywgMCBpcyBkaXNhYmxlZAogI2xvY2tfdGltZW91dCA9IDAJCQkJ IyBpbiBtaWxsaXNlY29uZHMsIDAgaXMgZGlzYWJsZWQKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRl eCA5MzI0MWJkNTViLi5mODhlZGMwZDQxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0zMTIs NiArMzEyLDE2IEBAIHR5cGVkZWYgc3RydWN0IFBhcmFtUmVmCiAJUGFyc2VMb2MJbG9jYXRpb247 CQkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLwogfSBQYXJhbVJlZjsKIAor LyoKKyAqIFZhcmlhYmxlRmVuY2UgLSBlbnN1cmUgc28gZmllbGRzIHdpbGwgYmUgaW50ZXJwcmV0 dGVkIGFzIGEgdmFyaWFibGUKKyAqLwordHlwZWRlZiBzdHJ1Y3QgVmFyaWFibGVGZW5jZQorewor CU5vZGVUYWcJCXR5cGU7CisJTGlzdAkgICAqdmFybmFtZTsJCS8qIHZhcmlhYmxlIG5hbWUgKFN0 cmluZyBub2RlcykgKi8KKwlQYXJzZUxvYwlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0aW9uLCBv ciAtMSBpZiB1bmtub3duICovCit9IFZhcmlhYmxlRmVuY2U7CisKIC8qCiAgKiBBX0V4cHIgLSBp bmZpeCwgcHJlZml4LCBhbmQgcG9zdGZpeCBleHByZXNzaW9ucwogICovCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rl cy5oCmluZGV4IGMxMWQxOTVmMTguLjk0NjZiMzExNzEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L25vZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBA IC0zOTQsNiArMzk0LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUGFyYW0KIAkgKiBwYXJhbSBpcyB1c2Vk IGp1c3QgZm9yIGV4ZWN1dGlvbiBvZiBVUERBVEUgb3BlcmF0aW9uLgogCSAqLwogCWJvb2wJCXBh cmFtYmFzZW5vZGU7CisJLyogdHJ1ZSB3aGVuIHZhcmlhYmxlIGlzIHVzZWQgaW5zaWRlIGFuIGZl bmNlICovCisJYm9vbAkJcGFyYW12YXJmZW5jZWQ7CiAJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0x IGlmIHVua25vd24gKi8KIAlQYXJzZUxvYwlsb2NhdGlvbjsKIH0gUGFyYW07CmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3Bh cnNlX2V4cHIuaAppbmRleCBkMjIwOTA3MDE4Li41YmRlNDM3NThkIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9leHByLmgKQEAgLTE4LDYgKzE4LDcgQEAKIC8qIEdVQyBwYXJhbWV0ZXJzICovCiBleHRlcm4g UEdETExJTVBPUlQgYm9vbCBUcmFuc2Zvcm1fbnVsbF9lcXVhbHM7CiBleHRlcm4gUEdETExJTVBP UlQgYm9vbCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZzsKK2V4dGVybiBQR0RM TElNUE9SVCBib29sIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkOwog CiBleHRlcm4gTm9kZSAqdHJhbnNmb3JtRXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4 cHIsIFBhcnNlRXhwcktpbmQgZXhwcktpbmQpOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDdjMzUwYWQ1ZWYuLjlhYzA4YTE0ZTAg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMu b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CkBAIC0xOTY5LDMgKzE5NjksNjIgQEAgU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93 YXJuaW5nIFRPIG9mZjsKIERST1AgVEFCTEUgcHVibGljLnh4dGFiOwogRFJPUCBTQ0hFTUEgeHh0 YWIgQ0FTQ0FERTsKIE5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSB4 eHRhYi5hdmFyCistLSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1 YXJkCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb247CitTRVQg c2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQgVE8gb247CitDUkVBVEUg U0NIRU1BIHRlc3R2YXI7CitTRVQgc2VhcmNoX3BhdGggVE8gJ3Rlc3R2YXInOworQ1JFQVRFIFZB UklBQkxFIGEgQVMgaW50OworTEVUIGEgPSAxMDsKK0NSRUFURSBUQUJMRSB0ZXN0X3RhYmxlKGEg aW50LCBiIGludCk7CitJTlNFUlQgSU5UTyB0ZXN0X3RhYmxlIFZBTFVFUygyMCwgMjApOworLS0g bm8gd2FybmluZworU0VMRUNUIGE7CisgYSAgCistLS0tCisgMTAKKygxIHJvdykKKworLS0gd2Fy bmluZyB2YXJpYWJsZSBpcyBzaGFkb3dlZAorU0VMRUNUIGEsIGIgRlJPTSB0ZXN0X3RhYmxlOwor V0FSTklORzogIHNlc3Npb24gdmFyaWFibGUgImEiIGlzIHNoYWRvd2VkCitMSU5FIDE6IFNFTEVD VCBhLCBiIEZST00gdGVzdF90YWJsZTsKKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIFNlc3Np b24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5lJ3MgdmFyaWFi bGVzIGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUgbmFtZS4KKyBhICB8IGIg IAorLS0tLSstLS0tCisgMjAgfCAyMAorKDEgcm93KQorCistLSBubyB3YXJuaW5nCitTRUxFQ1Qg dmFyaWFibGUoYSkgRlJPTSB0ZXN0X3RhYmxlOworIGEgIAorLS0tLQorIDEwCisoMSByb3cpCisK K0FMVEVSIFRBQkxFIHRlc3RfdGFibGUgRFJPUCBDT0xVTU4gYTsKKy0tIHdhcm5pbmcgLSB2YXJp YWJsZSBmZW5jZSBpcyBub3QgdXNlZAorU0VMRUNUIGEsIGIgRlJPTSB0ZXN0X3RhYmxlOworV0FS TklORzogIHNlc3Npb24gdmFyaWFibGUgImEiIGlzIG5vdCB1c2VkIGluc2lkZSB2YXJpYWJsZSBm ZW5jZQorTElORSAxOiBTRUxFQ1QgYSwgYiBGUk9NIHRlc3RfdGFibGU7CisgICAgICAgICAgICAg ICBeCitERVRBSUw6ICBUaGUgY29sbGlzaW9uIG9mIHNlc3Npb24gdmFyaWFibGUnIG5hbWVzIGFu ZCBjb2x1bW4gbmFtZXMgaXMgcG9zc2libGUuCisgYSAgfCBiICAKKy0tLS0rLS0tLQorIDEwIHwg MjAKKygxIHJvdykKKworLS0gbm8gd2FybmluZworU0VMRUNUIHZhcmlhYmxlKGEpLCBiIEZST00g dGVzdF90YWJsZTsKKyBhICB8IGIgIAorLS0tLSstLS0tCisgMTAgfCAyMAorKDEgcm93KQorCitE Uk9QIFZBUklBQkxFIGE7CitEUk9QIFRBQkxFIHRlc3RfdGFibGU7CitEUk9QIFNDSEVNQSB0ZXN0 dmFyOworU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIERFRkFVTFQ7 CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQgVE8gREVGQVVM VDsKK1NFVCBzZWFyY2hfcGF0aCBUTyBERUZBVUxUOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsCmluZGV4IDY4YmU0MTViZjIuLmM1NDIwMTgzZDkgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTEzNjAsMyArMTM2MCw0 NCBAQCBTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOwogCiBE Uk9QIFRBQkxFIHB1YmxpYy54eHRhYjsKIERST1AgU0NIRU1BIHh4dGFiIENBU0NBREU7CisKKy0t IHRlc3Qgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQKK1NFVCBzZXNz aW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKK1NFVCBzZXNzaW9uX3Zhcmlh Ymxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZCBUTyBvbjsKKworQ1JFQVRFIFNDSEVNQSB0ZXN0 dmFyOworCitTRVQgc2VhcmNoX3BhdGggVE8gJ3Rlc3R2YXInOworCitDUkVBVEUgVkFSSUFCTEUg YSBBUyBpbnQ7CitMRVQgYSA9IDEwOworCitDUkVBVEUgVEFCTEUgdGVzdF90YWJsZShhIGludCwg YiBpbnQpOworCitJTlNFUlQgSU5UTyB0ZXN0X3RhYmxlIFZBTFVFUygyMCwgMjApOworCistLSBu byB3YXJuaW5nCitTRUxFQ1QgYTsKKworLS0gd2FybmluZyB2YXJpYWJsZSBpcyBzaGFkb3dlZAor U0VMRUNUIGEsIGIgRlJPTSB0ZXN0X3RhYmxlOworCistLSBubyB3YXJuaW5nCitTRUxFQ1QgdmFy aWFibGUoYSkgRlJPTSB0ZXN0X3RhYmxlOworCitBTFRFUiBUQUJMRSB0ZXN0X3RhYmxlIERST1Ag Q09MVU1OIGE7CisKKy0tIHdhcm5pbmcgLSB2YXJpYWJsZSBmZW5jZSBpcyBub3QgdXNlZAorU0VM RUNUIGEsIGIgRlJPTSB0ZXN0X3RhYmxlOworCistLSBubyB3YXJuaW5nCitTRUxFQ1QgdmFyaWFi bGUoYSksIGIgRlJPTSB0ZXN0X3RhYmxlOworCitEUk9QIFZBUklBQkxFIGE7CitEUk9QIFRBQkxF IHRlc3RfdGFibGU7CisKK0RST1AgU0NIRU1BIHRlc3R2YXI7CisKK1NFVCBzZXNzaW9uX3Zhcmlh Ymxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBERUZBVUxUOworU0VUIHNlc3Npb25fdmFyaWFibGVz X3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkIFRPIERFRkFVTFQ7CitTRVQgc2VhcmNoX3BhdGggVE8g REVGQVVMVDsKLS0gCjIuNDcuMQoK --0000000000008953c9062b346e70 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250108-0009-dynamic-check-of-usage-of-session-variable-fences.patch" Content-Disposition: attachment; filename="v20250108-0009-dynamic-check-of-usage-of-session-variable-fences.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5o4agkm13 RnJvbSA4MWM1NzA1NGFmZmMzZTY4NDc5ZGY0NWExM2IzZDM4ODUyZjIxODk2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTMgRGVjIDIwMjQgMDY6Mjg6NDUgKzAxMDAKU3ViamVjdDogW1BBVENIIDA5 LzIyXSBkeW5hbWljIGNoZWNrIG9mIHVzYWdlIG9mIHNlc3Npb24gdmFyaWFibGUgZmVuY2VzCgpU aGlzIHBhdGNoIGFsbG93cyB0byBzcGVjaWZ5IGR5bmFtaWMgY29udGV4dCB3aGVyZSBmZW5jaW5n Cm9mIHNlc3Npb24gdmFyaWFibGVzIGlzIHJlcXVpcmVkLiBQb3NzaWJsZSBjb250ZXh0cyBhcmUK bm9uZSwgbm9zcGkgb3IgYWxsLiBXaXRoIHRoaXMgY2hlY2sgaXMgcG9zc2libGUgdG8gZm9yY2UK dmFyaWFibGUgZmVuY2luZyBvdXRzaWRlIHN0b3JlZCBwcm9jZWR1cmVzLgotLS0KIGRvYy9zcmMv c2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8IDU2ICsrKysrKysrKysrKwog ZG9jL3NyYy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNy Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDMzICsrKysrKysK IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8ICA0ICsKIHNy Yy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jICAgICAgICAgICAgICAgICAgICB8ICA4ICsrCiBzcmMv YmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyAgICAgICAgICAgfCAxOSArKysrCiBzcmMv YmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgfCAgMSArCiBzcmMvaW5j bHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggICAgICAgfCAxNiArKysrCiBzcmMvaW5j bHVkZS9leGVjdXRvci9zcGkuaCAgICAgICAgICAgICAgICAgICAgfCAgMSArCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCA5MCArKysrKysrKysrKysrKysr KysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCA3MyAr KysrKysrKysrKysrKysKIDExIGZpbGVzIGNoYW5nZWQsIDMwMyBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3Ny Yy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4IDViOTlmN2ZjNDUuLjFjYWMxY2MyZTYgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNn bWwKQEAgLTEwODY3LDYgKzEwODY3LDYyIEBAIERFVEFJTDogIFNlc3Npb24gdmFyaWFibGVzIGNh biBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5lJ3MgdmFyaWFibGVzIGFuZCByCiAgICAg ICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICA8dmFybGlzdGVudHJ5 IGlkPSJndWMtc2Vzc2lvbi12YXJpYWJsZXMtdXNlLWZlbmNlLWNvbnRleHQtZ3VhcmQiIHhyZWZs YWJlbD0ic2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQiPgorICAgICAg PHRlcm0+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQ8 L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKKyAgICAgIDxpbmRleHRlcm0+CisgICAg ICAgPHByaW1hcnk+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRf Z3VhcmQ8L3Zhcm5hbWU+IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAg PC9pbmRleHRlcm0+CisgICAgICA8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFy YT4KKyAgICAgICBXaGVuIG9uLCBhbiBlcnJvciBpcyByYWlzZWQgd2hlbiBhIHNlc3Npb24gdmFy aWFibGUgaWRlbnRpZmllciBpcyB1c2VkCisgICAgICAgaW5zaWRlIGEgcXVlcnkgd2l0aG91dCB2 YXJpYWJsZSBmZW5jZSBpbiBjaG9vc2VkIGNvbnRleHQuIFRoZSBkZWZhdWx0CisgICAgICAgaXMg PGxpdGVyYWw+bm9uZTwvbGl0ZXJhbD4uIFRoZSBlcnJvciBpcyByYWlzZWQgb25seSB3aGVuIHZh cmlhYmxlIGlzCisgICAgICAgdXNlZCBpbiBwbGFjZXMsIHdoZXJlIGFuIGNvbGxpc2lvbnMgd2l0 aCBjb2x1bW4gbmFtZXMgaXMgcG9zc2libGUgKGFuZAorICAgICAgIHdoZW4gdmFyaWFibGUgZmVu Y2VzIGFyZSBwb3NzaWJsZSkuIFRoZSBhbGxvd2VkIHZhbHVlcyBvZgorICAgICAgIDx2YXJuYW1l PnNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkPC92YXJuYW1lPiBhcmUK KyAgICAgICA8bGl0ZXJhbD5ub25lPC9saXRlcmFsPiAoYWxsb3cgdXNpbmcgc2Vzc2lvbiB2YXJp YWJsZXMgd2l0aG91dAorICAgICAgIHZhcmlhYmxlJ3MgZmVuY2VzIGFsd2F5cyksIDxsaXRlcmFs PmFsbDwvbGl0ZXJhbD4gKHJlcXVpcmVzIHZhcmlhYmxlCisgICAgICAgZmVuY2luZyBldmVyeXdo ZXJlKSwgYW5kIDxsaXRlcmFsPm5vc3BpPC9saXRlcmFsPiAocmVxdWlyZXMgdmFyaWFibGUKKyAg ICAgICBmZW5jaW5nIG91dHNpZGUgU1BJIGNvbnRleHRzIChvdXRzaWRlIHN0b3JlZCBwcm9jZWR1 cmVzKS4KKzxwcm9ncmFtbGlzdGluZz4KK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vf Y29udGV4dF9ndWFyZCBUTyAnbm9zcGknOworQ1JFQVRFIFZBUklBQkxFIGEgaW50OworCitMRVQg YSA9IDEwOworRE8gJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnYSA9ICUnLCBhOworRU5EOwor JCQ7CisKK1NFTEVDVCBhOworU0VMRUNUIFZBUklBQkxFKHMpOworPC9wcm9ncmFtbGlzdGluZz4K KworPHNjcmVlbj4KK05PVElDRTogIGEgPSAxMAorCitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUg InB1YmxpYy5hIiBpcyBub3QgdXNlZCBpbnNpZGUgdmFyaWFibGUgZmVuY2UKK0RFVEFJTDogIFRo ZXJlIGlzIGEgcmlzayBvZiB1bndhbnRlZCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlLgorSElO VDogIFVzZSB2YXJpYWJsZSBmZW5jZSAiVkFSSUFCTEUodmFybmFtZSkgZm9yIGFjY2VzcyB0byB2 YXJpYWJsZSIuCisKK1NFTEVDVCB2YXJpYWJsZShhKTsKKyBhICAKKy0tLS0KKyAxMAorKDEgcm93 KQorPC9zY3JlZW4+CisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFdo ZW4geW91IGFmcmFpZCBhYm91dCB1bndhbnRlZCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlcywg c2V0CisgICAgICAgIHRoaXMgZmVhdHVyZSB0byA8bGl0ZXJhbD5hbGw8L2xpdGVyYWw+IG9yIG1p bmltYWx5IHRvCisgICAgICAgIDxsaXRlcmFsPm5vc3BpPC9saXRlcmFsPi4KKyAgICAgICA8L3Bh cmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFy bGlzdGVudHJ5IGlkPSJndWMtc2Vzc2lvbi12YXJpYWJsZXMtdXNlLWZlbmNlLXdhcm5pbmctZ3Vh cmQiIHhyZWZsYWJlbD0ic2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQi PgogICAgICAgPHRlcm0+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5p bmdfZ3VhcmQ8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKICAgICAgIDxpbmRleHRl cm0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRs LnNnbWwKaW5kZXggYTU2NjQ2MDRlNi4uNWM1ODFlZTE0MyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTQ0Miw3ICs1NDQy LDggQEAgU0VMRUNUIFZBUklBQkxFKGN1cnJlbnRfdXNlcl9pZCk7CiAgICBXaGVuIHRoZXJlIGlz IGEgcmlzayBvZiBwb3NzaWJsZSBjb2xsaXNpb25zIGJldHdlZW4gdmFyaWFibGUgaWRlbnRpZmll cnMKICAgIGFuZCBjb2x1bW4gbmFtZXMsIHRoZW4gdXNpbmcgdmFyaWFibGUgZmVuY2Ugc3ludGF4 IGNhbiBiZSByZWNvbW1lbmRlZC4KICAgIFVzYWdlIHNlc3Npb24gdmFyaWFibGUgd2l0aG91dCB2 YXJpYWJsZSBmZW5jZSBjYW4gYmUgZGV0ZWN0ZWQgYnkKLSAgIHdhcm5pbmcgPHhyZWYgbGlua2Vu ZD0iZ3VjLXNlc3Npb24tdmFyaWFibGVzLXVzZS1mZW5jZS13YXJuaW5nLWd1YXJkIi8+LgorICAg d2FybmluZyA8eHJlZiBsaW5rZW5kPSJndWMtc2Vzc2lvbi12YXJpYWJsZXMtdXNlLWZlbmNlLXdh cm5pbmctZ3VhcmQiLz4KKyAgIG9yIGJ5IGNoZWNrIDx4cmVmIGxpbmtlbmQ9Imd1Yy1zZXNzaW9u LXZhcmlhYmxlcy11c2UtZmVuY2UtY29udGV4dC1ndWFyZCIvPi4KICAgPC9wYXJhPgogICA8L3Nl Y3QxPgogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXggNGEyOWVk NmUwYy4uN2MxNTk4NjBiNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUu YwpAQCAtMTcsNiArMTcsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFi bGUuaCIKKyNpbmNsdWRlICJleGVjdXRvci9zcGkuaCIKICNpbmNsdWRlICJleGVjdXRvci9zdmFy aWFibGVSZWNlaXZlci5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJtaXNjYWRt aW4uaCIKQEAgLTMxLDYgKzMyLDEzIEBACiAjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgogI2lu Y2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAKKy8qCisgKiBUaGUgc2Vzc2lvbiB2YXJpYWJsZXMg dXNlIGZlbmNlIGNvbnRleHQgYWxsb3cgdG8gc3BlY2lmeQorICogdGhlIGNvbnRleHRzIHdoZXJl IHVzaW5nIHNlc3Npb24gdmFyaWFibGUgZmVuY2VzIGFyZSByZXF1aXJlZC4KKyAqLworaW50CQlz ZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZCA9CisJCQkJCQkJCVNFU1NJ T05WQVJJQUJMRV9VU0VfRkVOQ0VfQ09OVEVYVF9HVUFSRF9OT05FOworCiAvKgogICogVGhlIHZh bHVlcyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgc3RvcmVkIGluIHRoZSBiYWNrZW5kJ3MgcHJp dmF0ZSBtZW1vcnkKICAqIGluIHRoZSBkZWRpY2F0ZWQgbWVtb3J5IGNvbnRleHQgU1ZhcmlhYmxl TWVtb3J5Q29udGV4dCBpbiBiaW5hcnkgZm9ybWF0LgpAQCAtNzkwLDMgKzc5OCwyOCBAQCBSZXNl dFNlc3Npb25WYXJpYWJsZXModm9pZCkKIAlpZiAoU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCAhPSBO VUxMKQogCQlNZW1vcnlDb250ZXh0UmVzZXQoU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCk7CiB9CisK Ky8qCisgKiBSYWlzZSBlcnJvciB3aGVuIHVuZmVuY2VkIHZhcmlhYmxlIGlzIHVzZWQgaW4gd3Jv bmcgY29udGV4dC4KKyAqIFRoaXMgY2hlY2sgYWxsb3dzIHRvIGZvcmNlIHNlc3Npb24gdmFyaWFi bGUgZmVuY2luZyBvdXRzaWRlCisgKiBzdG9yZWQgcHJvY2VkdXJlcyBlbnZpcm9ubWVudC4KKyAq Lwordm9pZAorU2Vzc2lvblZhcmlhYmxlc1VzZUZlbmNlQ29udGV4dENoZWNrKE9pZCB2YXJpZCwg Ym9vbCBpc19mZW5jZWQpCit7CisJaWYgKGlzX2ZlbmNlZCkKKwkJcmV0dXJuOworCisJaWYgKCgo c2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgPT0KKwkJCVNFU1NJT05W QVJJQUJMRV9VU0VfRkVOQ0VfQ09OVEVYVF9HVUFSRF9BTEwpICYmICFpc19mZW5jZWQpIHx8CisJ CSgoc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgPT0KKwkJCVNFU1NJ T05WQVJJQUJMRV9VU0VfRkVOQ0VfQ09OVEVYVF9HVUFSRF9OT1NQSSkgJiYKKwkJCQkhU1BJX2lu c2lkZV9zcGlfY29udGV4dCgpKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJD T0RFX0lOVkFMSURfQ09MVU1OX1JFRkVSRU5DRSksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJp YWJsZSBcIiVzLiVzXCIgaXMgbm90IHVzZWQgaW5zaWRlIHZhcmlhYmxlIGZlbmNlIiwKKwkJCQkg Z2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkp LAorCQkJCSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSksCisJCQkJIGVycmRldGFp bCgiVGhlcmUgaXMgYSByaXNrIG9mIHVud2FudGVkIHVzYWdlIG9mIHNlc3Npb24gdmFyaWFibGUu IiksCisJCQkJIGVycmhpbnQoIlVzZSB2YXJpYWJsZSBmZW5jZSBcIlZBUklBQkxFKHZhcm5hbWUp IGZvciBhY2Nlc3MgdG8gdmFyaWFibGVcIi4iKSkpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0V4cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMK aW5kZXggNzU0MWI1YWFjNy4uMTMzNDg0MjM5OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCkBA IC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhY2Nlc3MuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNp bmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Iv ZXhlY0V4cHIuaCIKICNpbmNsdWRlICJleGVjdXRvci9ub2RlU3VicGxhbi5oIgogI2luY2x1ZGUg ImZ1bmNhcGkuaCIKQEAgLTk5OCw2ICs5OTksOSBAQCBFeGVjSW5pdEV4cHJSZWMoRXhwciAqbm9k ZSwgRXhwclN0YXRlICpzdGF0ZSwKIAkJCQkJCQlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqZXNfc2Vz c2lvbl92YXJpYWJsZXMgPSBOVUxMOwogCQkJCQkJCVNlc3Npb25WYXJpYWJsZVZhbHVlICp2YXI7 CiAKKwkJCQkJCQlTZXNzaW9uVmFyaWFibGVzVXNlRmVuY2VDb250ZXh0Q2hlY2socGFyYW0tPnBh cmFtdmFyaWQsCisJCQkJCQkJCQkJCQkJCQkJIHBhcmFtLT5wYXJhbXZhcmZlbmNlZCk7CisKIAkJ CQkJCQlpZiAoc3RhdGUtPnBhcmVudCAmJiBzdGF0ZS0+cGFyZW50LT5zdGF0ZSkKIAkJCQkJCQl7 CiAJCQkJCQkJCWVzX3Nlc3Npb25fdmFyaWFibGVzID0gc3RhdGUtPnBhcmVudC0+c3RhdGUtPmVz X3Nlc3Npb25fdmFyaWFibGVzOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3Bp LmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYwppbmRleCBlY2IyZTRjY2FhLi40Y2U2YmM1 ZjI5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9zcGkuYwpAQCAtNTkwLDYgKzU5MCwxNCBAQCBTUElfaW5zaWRlX25vbmF0 b21pY19jb250ZXh0KHZvaWQpCiAJcmV0dXJuIHRydWU7CiB9CiAKKy8qCisgKiBBcmUgd2UgZXhl Y3V0ZWQgaW5zaWRlIGEgU1BJPworICovCitib29sCitTUElfaW5zaWRlX3NwaV9jb250ZXh0KHZv aWQpCit7CisJcmV0dXJuIChfU1BJX2N1cnJlbnQgIT0gTlVMTCk7Cit9CiAKIC8qIFBhcnNlLCBw bGFuLCBhbmQgZXhlY3V0ZSBhIHF1ZXJ5IHN0cmluZyAqLwogaW50CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2Mv Z3VjX3RhYmxlcy5jCmluZGV4IGUwNDQ0YTdiNTEuLjI0Njc0ODAwYWMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L21pc2MvZ3VjX3RhYmxlcy5jCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9z dG9yYWdlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMuaCIKICNpbmNsdWRlICJjb21tYW5k cy9ldmVudF90cmlnZ2VyLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5o IgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJjb21tYW5kcy90 cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdXNlci5oIgpAQCAtNDIzLDYgKzQyNCwxMyBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvbmZpZ19lbnVtX2VudHJ5IGRlYnVnX2xvZ2ljYWxfcmVw bGljYXRpb25fc3RyZWFtaW5nX29wdGlvbgogCXtOVUxMLCAwLCBmYWxzZX0KIH07CiAKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgY29uZmlnX2VudW1fZW50cnkgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2Zl bmNlX2NvbnRleHRfZ3VhcmRfb3B0aW9uc1tdID0geworCXsibm9uZSIsIFNFU1NJT05WQVJJQUJM RV9VU0VfRkVOQ0VfQ09OVEVYVF9HVUFSRF9OT05FLCBmYWxzZX0sCisJeyJhbGwiLCBTRVNTSU9O VkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfQUxMLCBmYWxzZX0sCisJeyJub3NwaSIs IFNFU1NJT05WQVJJQUJMRV9VU0VfRkVOQ0VfQ09OVEVYVF9HVUFSRF9OT1NQSSwgZmFsc2V9LAor CXtOVUxMLCAwLCBmYWxzZX0KK307CisKIFN0YXRpY0Fzc2VydERlY2wobGVuZ3Rob2Yoc3NsX3By b3RvY29sX3ZlcnNpb25zX2luZm8pID09IChQR19UTFMxXzNfVkVSU0lPTiArIDIpLAogCQkJCSAi YXJyYXkgbGVuZ3RoIG1pc21hdGNoIik7CiAKQEAgLTUyNTMsNiArNTI2MSwxNyBAQCBzdHJ1Y3Qg Y29uZmlnX2VudW0gQ29uZmlndXJlTmFtZXNFbnVtW10gPQogCQlOVUxMLCBOVUxMLCBOVUxMCiAJ fSwKIAorCXsKKwkJeyJzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZCIs IFBHQ19VU0VSU0VULCBDTElFTlRfQ09OTl9TVEFURU1FTlQsCisJCQlnZXR0ZXh0X25vb3AoIkNo b29zZXMgdGhlIGNvbnRleHQgd2hlcmUgc2Vzc2lvbiB2YXJpYWJsZXMgc2hvdWxkIGJlIHVzZWQg aW5zaWRlIGZlbmNlLiIpLAorCQkJTlVMTAorCQl9LAorCQkmc2Vzc2lvbl92YXJpYWJsZXNfdXNl X2ZlbmNlX2NvbnRleHRfZ3VhcmQsCisJCVNFU1NJT05WQVJJQUJMRV9VU0VfRkVOQ0VfQ09OVEVY VF9HVUFSRF9OT05FLCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZF9v cHRpb25zLAorCQlOVUxMLCBOVUxMLCBOVUxMCisJfSwKKworCiAJLyogRW5kLW9mLWxpc3QgbWFy a2VyICovCiAJewogCQl7TlVMTCwgMCwgMCwgTlVMTCwgTlVMTH0sIE5VTEwsIDAsIE5VTEwsIE5V TEwsIE5VTEwsIE5VTEwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdy ZXNxbC5jb25mLnNhbXBsZSBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25m LnNhbXBsZQppbmRleCAxNWQ2YjMxMmUxLi5iNmI2OGZiYWQ0IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBAIC03MTksNiArNzE5LDcgQEAgYXV0 b3ZhY3V1bV93b3JrZXJfc2xvdHMgPSAxNgkjIGF1dG92YWN1dW0gd29ya2VyIHNsb3RzIHRvIGFs bG9jYXRlCiAjc2Vzc2lvbl9yZXBsaWNhdGlvbl9yb2xlID0gJ29yaWdpbicKICNzZXNzaW9uX3Zh cmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyA9IG9mZgogI3Nlc3Npb25fdmFyaWFibGVzX3VzZV9m ZW5jZV93YXJuaW5nX2d1YXJkID0gb2ZmCisjc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2Nv bnRleHRfZ3VhcmQgPSAnbm9uZScKICNzdGF0ZW1lbnRfdGltZW91dCA9IDAJCQkJIyBpbiBtaWxs aXNlY29uZHMsIDAgaXMgZGlzYWJsZWQKICN0cmFuc2FjdGlvbl90aW1lb3V0ID0gMAkJCSMgaW4g bWlsbGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCiAjbG9ja190aW1lb3V0ID0gMAkJCQkjIGluIG1p bGxpc2Vjb25kcywgMCBpcyBkaXNhYmxlZApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5oCmluZGV4IGQzY2M3OWI1NjAuLmU1OGE1YTAxMTAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmgKQEAgLTMwLDUgKzMwLDIxIEBAIGV4dGVybiB2b2lkIEV4ZWN1 dGVMZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCwgUGFyYW1MaXN0SW5m byBwYXJhCiAJCQkJCQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwgUXVlcnlDb21wbGV0 aW9uICpxYyk7CiAKIGV4dGVybiB2b2lkIFJlc2V0U2Vzc2lvblZhcmlhYmxlcyh2b2lkKTsKK2V4 dGVybiB2b2lkIFNlc3Npb25WYXJpYWJsZXNVc2VGZW5jZUNvbnRleHRDaGVjayhPaWQgdmFyaWQs IGJvb2wgaXNfZmVuY2VkKTsKKworLyoKKyAqIFNwZWNpZnkgdGhlIGR5bmFtaWMgY29udGV4dCB3 aGVyZSB2YXJpYWJsZSBmZW5jZSBpcyByZXF1aXJlZAorICovCit0eXBlZGVmIGVudW0gU2Vzc2lv blZhcmlhYmxlc1VzZUZlbmNlQ29udGV4dEd1YXJkCit7CisJLyogRGlzYWJsZSBmZW5jZSB1c2Fn ZSBjb250ZXh0IGd1YXJkICovCisJU0VTU0lPTlZBUklBQkxFX1VTRV9GRU5DRV9DT05URVhUX0dV QVJEX05PTkUsCisJLyogRW5hYmxlIGZlbmNlIHVzYWdlIGNvbnRleHQgZ3VhcmQgZXZlcnl3aGVy ZSAqLworCVNFU1NJT05WQVJJQUJMRV9VU0VfRkVOQ0VfQ09OVEVYVF9HVUFSRF9BTEwsCisJLyog RW5hYmxlIGZlbmNlIHVzYWdlIGNvbnRleHQgZ3VhcmQgd2hlbiBTUEkgaXMgbm90IHVzZWQgKi8K KwlTRVNTSU9OVkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfTk9TUEksCit9IFNlc3Np b25WYXJpYWJsZXNVc2VGZW5jZUNvbnRleHRHdWFyZDsKKworZXh0ZXJuIFBHRExMSU1QT1JUIGlu dCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZDsKIAogI2VuZGlmCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9zcGkuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1 dG9yL3NwaS5oCmluZGV4IGQwNjRkMWE5YjcuLjQ2OTBhOTVmMzkgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2V4ZWN1dG9yL3NwaS5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3NwaS5oCkBA IC0yMDMsNSArMjAzLDYgQEAgZXh0ZXJuIHZvaWQgU1BJX3JvbGxiYWNrX2FuZF9jaGFpbih2b2lk KTsKIGV4dGVybiB2b2lkIEF0RU9YYWN0X1NQSShib29sIGlzQ29tbWl0KTsKIGV4dGVybiB2b2lk IEF0RU9TdWJYYWN0X1NQSShib29sIGlzQ29tbWl0LCBTdWJUcmFuc2FjdGlvbklkIG15U3ViaWQp OwogZXh0ZXJuIGJvb2wgU1BJX2luc2lkZV9ub25hdG9taWNfY29udGV4dCh2b2lkKTsKK2V4dGVy biBib29sIFNQSV9pbnNpZGVfc3BpX2NvbnRleHQodm9pZCk7CiAKICNlbmRpZgkJCQkJCQkvKiBT UElfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz Lm91dAppbmRleCA5YWMwOGExNGUwLi45MGVlYzI3YTQzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMjAyOCwzICsyMDI4LDkzIEBA IERST1AgU0NIRU1BIHRlc3R2YXI7CiBTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dh cm5pbmcgVE8gREVGQVVMVDsKIFNFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2Fybmlu Z19ndWFyZCBUTyBERUZBVUxUOwogU0VUIHNlYXJjaF9wYXRoIFRPIERFRkFVTFQ7CistLSB0ZXN0 IHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkCitDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVEFCTEUgdmFydGVzdF90YWIxKGEgaW50KTsKK0xFVCB2 YXIxID0gMjA7CitJTlNFUlQgSU5UTyB2YXJ0ZXN0X3RhYjEgVkFMVUVTKDIwKTsKK1NFVCBzZXNz aW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZCBUTyAnbm9uZSc7CistLSBzaG91 bGQgYmUgb2sKK1NFTEVDVCB2YXIxLCBWQVJJQUJMRSh2YXIxKTsKKyB2YXIxIHwgdmFyMSAKKy0t LS0tLSstLS0tLS0KKyAgIDIwIHwgICAyMAorKDEgcm93KQorCitETyAkJAorREVDTEFSRSB0IGlu dDsKK0JFR0lOCisgIFNFTEVDVCBhIEZST00gdmFydGVzdF90YWIxIFdIRVJFIGEgPSB2YXIxIElO VE8gdDsKKyAgUkFJU0UgTk9USUNFICclICUnLCB2YXIxLCB2YXIxID0gdDsKKyAgU0VMRUNUIGEg RlJPTSB2YXJ0ZXN0X3RhYjEgV0hFUkUgYSA9IFZBUklBQkxFKHZhcjEpIElOVE8gdDsKKyAgUkFJ U0UgTk9USUNFICclICUnLCBWQVJJQUJMRSh2YXIxKSwgVkFSSUFCTEUodmFyMSkgPSB0OworRU5E OworJCQ7CitOT1RJQ0U6ICAyMCB0CitOT1RJQ0U6ICAyMCB0CitTRVQgc2Vzc2lvbl92YXJpYWJs ZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgVE8gJ2FsbCc7CistLSBzaG91bGQgZmFpbAorU0VM RUNUIHZhcjEsIFZBUklBQkxFKHZhcjEpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJs aWMudmFyMSIgaXMgbm90IHVzZWQgaW5zaWRlIHZhcmlhYmxlIGZlbmNlCitERVRBSUw6ICBUaGVy ZSBpcyBhIHJpc2sgb2YgdW53YW50ZWQgdXNhZ2Ugb2Ygc2Vzc2lvbiB2YXJpYWJsZS4KK0hJTlQ6 ICBVc2UgdmFyaWFibGUgZmVuY2UgIlZBUklBQkxFKHZhcm5hbWUpIGZvciBhY2Nlc3MgdG8gdmFy aWFibGUiLgorLS0gc2hvdWxkIGZhaWwKK0RPICQkCitERUNMQVJFIHQgaW50OworQkVHSU4KKyAg U0VMRUNUIGEgRlJPTSB2YXJ0ZXN0X3RhYjEgV0hFUkUgYSA9IHZhcjEgSU5UTyB0OworRU5EOwor JCQ7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBub3QgdXNlZCBp bnNpZGUgdmFyaWFibGUgZmVuY2UKK0RFVEFJTDogIFRoZXJlIGlzIGEgcmlzayBvZiB1bndhbnRl ZCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlLgorSElOVDogIFVzZSB2YXJpYWJsZSBmZW5jZSAi VkFSSUFCTEUodmFybmFtZSkgZm9yIGFjY2VzcyB0byB2YXJpYWJsZSIuCitDT05URVhUOiAgU1FM IHN0YXRlbWVudCAiU0VMRUNUIGEgRlJPTSB2YXJ0ZXN0X3RhYjEgV0hFUkUgYSA9IHZhcjEiCitQ TC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDQgYXQgU1FMIHN0YXRlbWVu dAorLS0gc2hvdWxkIGZhaWwKK0RPICQkCitERUNMQVJFIHQgaW50IERFRkFVTFQgMjA7CitCRUdJ TgorICBSQUlTRSBOT1RJQ0UgJyUgJScsIHZhcjEsIHZhcjEgPSB0OworRU5EOworJCQ7CitFUlJP UjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBub3QgdXNlZCBpbnNpZGUgdmFy aWFibGUgZmVuY2UKK0RFVEFJTDogIFRoZXJlIGlzIGEgcmlzayBvZiB1bndhbnRlZCB1c2FnZSBv ZiBzZXNzaW9uIHZhcmlhYmxlLgorSElOVDogIFVzZSB2YXJpYWJsZSBmZW5jZSAiVkFSSUFCTEUo dmFybmFtZSkgZm9yIGFjY2VzcyB0byB2YXJpYWJsZSIuCitDT05URVhUOiAgUEwvcGdTUUwgZXhw cmVzc2lvbiAidmFyMSIKK1BML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUg NCBhdCBSQUlTRQorLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgVkFSSUFCTEUodmFyMSksIFZBUklB QkxFKHZhcjEpOworIHZhcjEgfCB2YXIxIAorLS0tLS0tKy0tLS0tLQorICAgMjAgfCAgIDIwCiso MSByb3cpCisKK0RPICQkCitERUNMQVJFIHQgaW50OworQkVHSU4KKyAgU0VMRUNUIGEgRlJPTSB2 YXJ0ZXN0X3RhYjEgV0hFUkUgYSA9IFZBUklBQkxFKHZhcjEpIElOVE8gdDsKKyAgUkFJU0UgTk9U SUNFICclICUnLCBWQVJJQUJMRSh2YXIxKSwgVkFSSUFCTEUodmFyMSkgPSB0OworRU5EOworJCQ7 CitOT1RJQ0U6ICAyMCB0CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRf Z3VhcmQgVE8gJ25vc3BpJzsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyMSwgVkFSSUFCTEUo dmFyMSk7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBub3QgdXNl ZCBpbnNpZGUgdmFyaWFibGUgZmVuY2UKK0RFVEFJTDogIFRoZXJlIGlzIGEgcmlzayBvZiB1bndh bnRlZCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlLgorSElOVDogIFVzZSB2YXJpYWJsZSBmZW5j ZSAiVkFSSUFCTEUodmFybmFtZSkgZm9yIGFjY2VzcyB0byB2YXJpYWJsZSIuCistLSBzaG91bGQg YmUgb2sKK0RPICQkCitERUNMQVJFIHQgaW50OworQkVHSU4KKyAgU0VMRUNUIGEgRlJPTSB2YXJ0 ZXN0X3RhYjEgV0hFUkUgYSA9IHZhcjEgSU5UTyB0OworICBSQUlTRSBOT1RJQ0UgJyUgJScsIHZh cjEsIHZhcjEgPSB0OworICBTRUxFQ1QgYSBGUk9NIHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gVkFS SUFCTEUodmFyMSkgSU5UTyB0OworICBSQUlTRSBOT1RJQ0UgJyUgJScsIFZBUklBQkxFKHZhcjEp LCBWQVJJQUJMRSh2YXIxKSA9IHQ7CitFTkQ7CiskJDsKK05PVElDRTogIDIwIHQKK05PVElDRTog IDIwIHQKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZCBUTyBE RUZBVUxUOworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJ0ZXN0X3RhYjE7CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggYzU0MjAxODNk OS4uMzMwYjBlNThmOCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz LnNxbApAQCAtMTQwMSwzICsxNDAxLDc2IEBAIERST1AgU0NIRU1BIHRlc3R2YXI7CiBTRVQgc2Vz c2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gREVGQVVMVDsKIFNFVCBzZXNzaW9u X3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZCBUTyBERUZBVUxUOwogU0VUIHNlYXJj aF9wYXRoIFRPIERFRkFVTFQ7CisKKy0tIHRlc3Qgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNl X2NvbnRleHRfZ3VhcmQKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBUQUJM RSB2YXJ0ZXN0X3RhYjEoYSBpbnQpOworCitMRVQgdmFyMSA9IDIwOworSU5TRVJUIElOVE8gdmFy dGVzdF90YWIxIFZBTFVFUygyMCk7CisKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vf Y29udGV4dF9ndWFyZCBUTyAnbm9uZSc7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjEs IFZBUklBQkxFKHZhcjEpOworRE8gJCQKK0RFQ0xBUkUgdCBpbnQ7CitCRUdJTgorICBTRUxFQ1Qg YSBGUk9NIHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gdmFyMSBJTlRPIHQ7CisgIFJBSVNFIE5PVElD RSAnJSAlJywgdmFyMSwgdmFyMSA9IHQ7CisgIFNFTEVDVCBhIEZST00gdmFydGVzdF90YWIxIFdI RVJFIGEgPSBWQVJJQUJMRSh2YXIxKSBJTlRPIHQ7CisgIFJBSVNFIE5PVElDRSAnJSAlJywgVkFS SUFCTEUodmFyMSksIFZBUklBQkxFKHZhcjEpID0gdDsKK0VORDsKKyQkOworCitTRVQgc2Vzc2lv bl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgVE8gJ2FsbCc7CisKKy0tIHNob3Vs ZCBmYWlsCitTRUxFQ1QgdmFyMSwgVkFSSUFCTEUodmFyMSk7CisKKy0tIHNob3VsZCBmYWlsCitE TyAkJAorREVDTEFSRSB0IGludDsKK0JFR0lOCisgIFNFTEVDVCBhIEZST00gdmFydGVzdF90YWIx IFdIRVJFIGEgPSB2YXIxIElOVE8gdDsKK0VORDsKKyQkOworCistLSBzaG91bGQgZmFpbAorRE8g JCQKK0RFQ0xBUkUgdCBpbnQgREVGQVVMVCAyMDsKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJSAl JywgdmFyMSwgdmFyMSA9IHQ7CitFTkQ7CiskJDsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1Qg VkFSSUFCTEUodmFyMSksIFZBUklBQkxFKHZhcjEpOworRE8gJCQKK0RFQ0xBUkUgdCBpbnQ7CitC RUdJTgorICBTRUxFQ1QgYSBGUk9NIHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gVkFSSUFCTEUodmFy MSkgSU5UTyB0OworICBSQUlTRSBOT1RJQ0UgJyUgJScsIFZBUklBQkxFKHZhcjEpLCBWQVJJQUJM RSh2YXIxKSA9IHQ7CitFTkQ7CiskJDsKKworU0VUIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5j ZV9jb250ZXh0X2d1YXJkIFRPICdub3NwaSc7CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFy MSwgVkFSSUFCTEUodmFyMSk7CisKKy0tIHNob3VsZCBiZSBvaworRE8gJCQKK0RFQ0xBUkUgdCBp bnQ7CitCRUdJTgorICBTRUxFQ1QgYSBGUk9NIHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gdmFyMSBJ TlRPIHQ7CisgIFJBSVNFIE5PVElDRSAnJSAlJywgdmFyMSwgdmFyMSA9IHQ7CisgIFNFTEVDVCBh IEZST00gdmFydGVzdF90YWIxIFdIRVJFIGEgPSBWQVJJQUJMRSh2YXIxKSBJTlRPIHQ7CisgIFJB SVNFIE5PVElDRSAnJSAlJywgVkFSSUFCTEUodmFyMSksIFZBUklBQkxFKHZhcjEpID0gdDsKK0VO RDsKKyQkOworCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQg VE8gREVGQVVMVDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJ0ZXN0X3Rh YjE7Ci0tIAoyLjQ3LjEKCg== --0000000000008953c9062b346e70 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250108-0006-plpgsql-tests.patch" Content-Disposition: attachment; filename="v20250108-0006-plpgsql-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5o4agl816 RnJvbSA4MTZjZWViYjU1ZGY1MDQxNTgwN2UyYmE0YzM2MzhhYTEwYmNmZWI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNDowNjowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDYvMjJdIHBscGdzcWwgdGVzdHMKCi0tLQogc3JjL3BsL3BscGdzcWwvc3JjL01ha2VmaWxlICAg ICAgICAgICAgICAgICAgIHwgICAzICstCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lv bl92YXJpYWJsZS5vdXQgfCAzODIgKysrKysrKysrKysrKysrKysrCiBzcmMvcGwvcGxwZ3NxbC9z cmMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL3NyYy9zcWwvcGxwZ3Nx bF9zZXNzaW9uX3ZhcmlhYmxlLnNxbCAgICAgIHwgMjg5ICsrKysrKysrKysrKysKIDQgZmlsZXMg Y2hhbmdlZCwgNjc0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxl Lm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9z ZXNzaW9uX3ZhcmlhYmxlLnNxbAoKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9NYWtl ZmlsZSBiL3NyYy9wbC9wbHBnc3FsL3NyYy9NYWtlZmlsZQppbmRleCA2M2NiOTZmYWUzLi5iYmNh ZTI3ZDQyIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUKKysrIGIvc3Jj L3BsL3BscGdzcWwvc3JjL01ha2VmaWxlCkBAIC0zNSw3ICszNSw4IEBAIFJFR1JFU1NfT1BUUyA9 IC0tZGJuYW1lPSQoUExfVEVTVERCKQogUkVHUkVTUyA9IHBscGdzcWxfYXJyYXkgcGxwZ3NxbF9j YWNoZSBwbHBnc3FsX2NhbGwgcGxwZ3NxbF9jb250cm9sIFwKIAlwbHBnc3FsX2NvcHkgcGxwZ3Nx bF9kb21haW4gcGxwZ3NxbF9taXNjIFwKIAlwbHBnc3FsX3JlY29yZCBwbHBnc3FsX3NpbXBsZSBw bHBnc3FsX3RyYW5zYWN0aW9uIFwKLQlwbHBnc3FsX3RyYXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdz cWxfdmFycHJvcHMKKwlwbHBnc3FsX3RyYXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdzcWxfdmFycHJv cHMgXAorCXBscGdzcWxfc2Vzc2lvbl92YXJpYWJsZQogCiAjIHdoZXJlIHRvIGZpbmQgZ2VuX2tl eXdvcmRsaXN0LnBsIGFuZCBzdWJzaWRpYXJ5IGZpbGVzCiBUT09MU0RJUiA9ICQodG9wX3NyY2Rp cikvc3JjL3Rvb2xzCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxw Z3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9w bHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAuLmFiNzc5OTAwNTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGwvcGxwZ3NxbC9z cmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dApAQCAtMCwwICsxLDM4MiBA QAorLS0gdGVzdCBvZiBzZXNzaW9uIHZhcmlhYmxlcworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxf c3ZfdmFyIEFTIG51bWVyaWM7CitMRVQgcGxwZ3NxbF9zdl92YXIgPSBwaSgpOworLS0gcGFzc2lu ZyBwYXJhbWV0ZXJzIHRvIERPIGJsb2NrCitETyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNFICd2 YWx1ZSBvZiBzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwbHBnc3FsX3N2X3ZhcjsKK0VORDsKKyQk OworTk9USUNFOiAgdmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpcyAzLjE0MTU5MjY1MzU4OTc5 CistLSBwYXNzaW5nIG91dHB1dCBmcm9tIERPIGJsb2NrOworRE8gJCQKK0JFR0lOCisgIExFVCBw bHBnc3FsX3N2X3ZhciA9IDIgKiBwaSgpOworRU5ECiskJDsKK1NFTEVDVCBwbHBnc3FsX3N2X3Zh ciBBUyAicGlfbXVsdGlwbHlfMiI7CisgIHBpX211bHRpcGx5XzIgICAKKy0tLS0tLS0tLS0tLS0t LS0tLQorIDYuMjgzMTg1MzA3MTc5NTkKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSBwbHBnc3Fs X3N2X3ZhcjsKKy0tIHRlc3QgYWNjZXNzIGZyb20gUEwvcGdTUUwKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBB UyBudW1lcmljOworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMyBBUyB2YXJjaGFyOwor Q1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gd3JpdGVyX2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFT ICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTA7CisgIExFVCBwbHBnc3FsX3N2 X3ZhcjIgPSBwaSgpOworICAtLSB2ZXJ5IGxvbmcgdmFsdWUKKyAgTEVUIHBscGdzcWxfc3ZfdmFy MyA9IGZvcm1hdCgnKCVzKScsIHJlcGVhdCgnKicsIDEwMDAwKSk7CitFTkQ7CiskJCBMQU5HVUFH RSBwbHBnc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdXBkYXRlcl9mdW5jKCkKK1JF VFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IHBscGdzcWxf c3ZfdmFyMSArIDEwMDsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IHBscGdzcWxfc3ZfdmFyMiAr IDEwMDAwMDAwMDAwMDsKKyAgLS0gdmVyeSBsb25nIHZhbHVlCisgIExFVCBwbHBnc3FsX3N2X3Zh cjMgPSBwbHBnc3FsX3N2X3ZhcjMgfHwgZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcqJywgMTAwMDAp KTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElP TiByZWFkZXJfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElD RSAndmFyMSA9ICUnLCBwbHBnc3FsX3N2X3ZhcjE7CisgIFJBSVNFIE5PVElDRSAndmFyMiA9ICUn LCBwbHBnc3FsX3N2X3ZhcjI7CisgIFJBSVNFIE5PVElDRSAnbGVuZ3RoIG9mIHZhcjMgPSAlJywg bGVuZ3RoKHBscGdzcWxfc3ZfdmFyMyk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworLS0g ZXhlY3V0ZSBpbiBhIHRyYW5zYWN0aW9uCitCRUdJTjsKK1NFTEVDVCB3cml0ZXJfZnVuYygpOwor IHdyaXRlcl9mdW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcmVhZGVy X2Z1bmMoKTsKK05PVElDRTogIHZhcjEgPSAxMAorTk9USUNFOiAgdmFyMiA9IDMuMTQxNTkyNjUz NTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMTAwMDIKKyByZWFkZXJfZnVuYyAKKy0t LS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHVwZGF0ZXJfZnVuYygpOworIHVwZGF0 ZXJfZnVuYyAKKy0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJfZnVu YygpOworTk9USUNFOiAgdmFyMSA9IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAwMy4x NDE1OTI2NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorIHJlYWRlcl9m dW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitFTkQ7CistLSBleGVjdXRlIG91dHNp ZGUgb2YgYSB0cmFuc2FjdGlvbgorU0VMRUNUIHdyaXRlcl9mdW5jKCk7Cisgd3JpdGVyX2Z1bmMg CistLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJfZnVuYygpOworTk9U SUNFOiAgdmFyMSA9IDEwCitOT1RJQ0U6ICB2YXIyID0gMy4xNDE1OTI2NTM1ODk3OQorTk9USUNF OiAgbGVuZ3RoIG9mIHZhcjMgPSAxMDAwMgorIHJlYWRlcl9mdW5jIAorLS0tLS0tLS0tLS0tLQor IAorKDEgcm93KQorCitTRUxFQ1QgdXBkYXRlcl9mdW5jKCk7CisgdXBkYXRlcl9mdW5jIAorLS0t LS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHJlYWRlcl9mdW5jKCk7CitOT1RJQ0U6 ICB2YXIxID0gMTEwCitOT1RJQ0U6ICB2YXIyID0gMTAwMDAwMDAwMDAzLjE0MTU5MjY1MzU4OTc5 CitOT1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDIwMDA0CisgcmVhZGVyX2Z1bmMgCistLS0tLS0t LS0tLS0tCisgCisoMSByb3cpCisKKy0tIGV4ZWN1dGUgaW5zaWRlIGEgUEwvcGdTUUwgYmxvY2sK K0RPICQkCitCRUdJTgorICBQRVJGT1JNIHdyaXRlcl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVy X2Z1bmMoKTsKKyAgUEVSRk9STSB1cGRhdGVyX2Z1bmMoKTsKKyAgUEVSRk9STSByZWFkZXJfZnVu YygpOworRU5EOworJCQ7CitOT1RJQ0U6ICB2YXIxID0gMTAKK05PVElDRTogIHZhcjIgPSAzLjE0 MTU5MjY1MzU4OTc5CitOT1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDEwMDAyCitOT1RJQ0U6ICB2 YXIxID0gMTEwCitOT1RJQ0U6ICB2YXIyID0gMTAwMDAwMDAwMDAzLjE0MTU5MjY1MzU4OTc5CitO T1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDIwMDA0CistLSBwbGFuIGNhY2hlcyBzaG91bGQgYmUg Y29ycmVjdGx5IGludmFsaWRhdGVkCitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSwgcGxw Z3NxbF9zdl92YXIyLCBwbHBnc3FsX3N2X3ZhcjM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9z dl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjIgQVMgbnVtZXJp YzsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjMgQVMgdmFyY2hhcjsKKy0tIHNob3Vs ZCB3b3JrIGFnYWluCitETyAkJAorQkVHSU4KKyAgUEVSRk9STSB3cml0ZXJfZnVuYygpOworICBQ RVJGT1JNIHJlYWRlcl9mdW5jKCk7CisgIFBFUkZPUk0gdXBkYXRlcl9mdW5jKCk7CisgIFBFUkZP Uk0gcmVhZGVyX2Z1bmMoKTsKK0VORDsKKyQkOworTk9USUNFOiAgdmFyMSA9IDEwCitOT1RJQ0U6 ICB2YXIyID0gMy4xNDE1OTI2NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAxMDAw MgorTk9USUNFOiAgdmFyMSA9IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAwMy4xNDE1 OTI2NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorRFJPUCBWQVJJQUJM RSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworRFJP UCBGVU5DVElPTiB3cml0ZXJfZnVuYzsKK0RST1AgRlVOQ1RJT04gcmVhZGVyX2Z1bmM7CitEUk9Q IEZVTkNUSU9OIHVwZGF0ZXJfZnVuYzsKKy0tIGFub3RoZXIgY2hlY2sgb2YgY29ycmVjdCBwbGFu IGNhY2hlIGludmFsaWRhdGlvbgorQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBp bnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIGludFtdOworQ1JFQVRFIE9S IFJFUExBQ0UgRlVOQ1RJT04gdGVzdF9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorREVDTEFS RSB2IGludFtdIERFRkFVTFQgJ3t9JzsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAx OworICB2W3BscGdzcWxfc3ZfdmFyMV0gPSAxMDA7CisgIFJBSVNFIE5PVElDRSAnJScsIHY7Cisg IExFVCBwbHBnc3FsX3N2X3ZhcjIgPSB2OworICBMRVQgcGxwZ3NxbF9zdl92YXIyW3BscGdzcWxf c3ZfdmFyMV0gPSAtMTsKKyAgUkFJU0UgTk9USUNFICclJywgcGxwZ3NxbF9zdl92YXIyOworRU5E OworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK1NFTEVDVCB0ZXN0X2Z1bmMoKTsKK05PVElDRTogIHsx MDB9CitOT1RJQ0U6ICB7LTF9CisgdGVzdF9mdW5jIAorLS0tLS0tLS0tLS0KKyAKKygxIHJvdykK KworRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMjsKK0NSRUFU RSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdz cWxfc3ZfdmFyMiBBUyBpbnRbXTsKK1NFTEVDVCB0ZXN0X2Z1bmMoKTsKK05PVElDRTogIHsxMDB9 CitOT1RJQ0U6ICB7LTF9CisgdGVzdF9mdW5jIAorLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKwor RFJPUCBGVU5DVElPTiB0ZXN0X2Z1bmMoKTsKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIx LCBwbHBnc3FsX3N2X3ZhcjI7CistLSBjaGVjayBzZWN1cmUgYWNjZXNzCitDUkVBVEUgUk9MRSBy ZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfcmVhZGVyX3Jv bGU7CitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CitHUkFOVCBBTEwgT04gU0NI RU1BIHB1YmxpYyBUTyByZWdyZXNzX3Zhcl9vd25lcl9yb2xlLCByZWdyZXNzX3Zhcl9yZWFkZXJf cm9sZSwgcmVncmVzc192YXJfZXhlY19yb2xlOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3du ZXJfcm9sZTsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworTEVUIHBs cGdzcWxfc3ZfdmFyMSA9IDEwOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFVCBST0xFIFRPIHJl Z3Jlc3NfdmFyX3JlYWRlcl9yb2xlOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFyX3Jl YWRfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJScs IHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWwgU0VDVVJJVFkgREVG SU5FUjsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9leGVj X3JvbGU7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcl9yZWFkX2Z1bmMoKTsKK0VSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgcGxwZ3NxbF9zdl92YXIxCitD T05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAicGxwZ3NxbF9zdl92YXIxIgorUEwvcGdTUUwg ZnVuY3Rpb24gdmFyX3JlYWRfZnVuYygpIGxpbmUgMyBhdCBSQUlTRQorU0VUIFJPTEUgVE8gREVG QVVMVDsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CitHUkFOVCBTRUxFQ1Qg T04gVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIFRPIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlOwor U0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsK Ky0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcl9yZWFkX2Z1bmMoKTsKK05PVElDRTogIDEwCisg dmFyX3JlYWRfZnVuYyAKKy0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRVQgUk9MRSBU TyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0RST1AgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIxOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFVCBST0xFIFRP IHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKy0tIHNob3VsZCBmYWlsLCBidXQgbm90IGNyYXNoCitT RUxFQ1QgdmFyX3JlYWRfZnVuYygpOworRVJST1I6ICBjb2x1bW4gInBscGdzcWxfc3ZfdmFyMSIg ZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogcGxwZ3NxbF9zdl92YXIxCisgICAgICAgIF4KK1FVRVJZ OiAgcGxwZ3NxbF9zdl92YXIxCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gdmFyX3JlYWRf ZnVuYygpIGxpbmUgMyBhdCBSQUlTRQorU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgRlVOQ1RJ T04gdmFyX3JlYWRfZnVuYzsKK1JFVk9LRSBBTEwgT04gU0NIRU1BIHB1YmxpYyBGUk9NIHJlZ3Jl c3NfdmFyX293bmVyX3JvbGUsIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlLCByZWdyZXNzX3Zhcl9l eGVjX3JvbGU7CitEUk9QIFJPTEUgcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0RST1AgUk9MRSBy ZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9leGVjX3JvbGU7 CistLSByZXR1cm5zIHVwZGF0ZWQgdmFsdWUKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3Zh cjEgQVMgaW50OworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9pbnQoaW50KQor UkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBDT0FMRVND RShwbHBnc3FsX3N2X3ZhcjEgKyAkMSwgJDEpOworICBSRVRVUk4gcGxwZ3NxbF9zdl92YXIxOwor RU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK1NFTEVDVCBpbmNfdmFyX2ludCgxKTsKKyBpbmNf dmFyX2ludCAKKy0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMQorKDEgcm93KQorCitTRUxFQ1Qg aW5jX3Zhcl9pbnQoMSk7CisgaW5jX3Zhcl9pbnQgCistLS0tLS0tLS0tLS0tCisgICAgICAgICAg IDIKKygxIHJvdykKKworU0VMRUNUIGluY192YXJfaW50KDEpOworIGluY192YXJfaW50IAorLS0t LS0tLS0tLS0tLQorICAgICAgICAgICAzCisoMSByb3cpCisKK1NFTEVDVCBpbmNfdmFyX2ludCgx KSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsKKyBpbmNfdmFyX2ludCAKKy0tLS0tLS0tLS0t LS0KKyAgICAgICAgICAgNAorICAgICAgICAgICA1CisgICAgICAgICAgIDYKKyAgICAgICAgICAg NworICAgICAgICAgICA4CisgICAgICAgICAgIDkKKyAgICAgICAgICAxMAorICAgICAgICAgIDEx CisgICAgICAgICAgMTIKKyAgICAgICAgICAxMworKDEwIHJvd3MpCisKK0NSRUFURSBWQVJJQUJM RSBwbHBnc3FsX3N2X3ZhcjIgQVMgbnVtZXJpYzsKK0xFVCBwbHBnc3FsX3N2X3ZhcjIgPSAwLjA7 CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBpbmNfdmFyX251bShudW1lcmljKQorUkVUVVJO UyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjIgPSBDT0FMRVNDRShwbHBn c3FsX3N2X3ZhcjIgKyAkMSwgJDEpOworICBSRVRVUk4gcGxwZ3NxbF9zdl92YXIyOworRU5EOwor JCQgTEFOR1VBR0UgcGxwZ3NxbDsKK1NFTEVDVCBpbmNfdmFyX251bSgxLjApOworIGluY192YXJf bnVtIAorLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAxCisoMSByb3cpCisKK1NFTEVDVCBpbmNf dmFyX251bSgxLjApOworIGluY192YXJfbnVtIAorLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAy CisoMSByb3cpCisKK1NFTEVDVCBpbmNfdmFyX251bSgxLjApOworIGluY192YXJfbnVtIAorLS0t LS0tLS0tLS0tLQorICAgICAgICAgICAzCisoMSByb3cpCisKK1NFTEVDVCBpbmNfdmFyX251bSgx LjApIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworIGluY192YXJfbnVtIAorLS0tLS0tLS0t LS0tLQorICAgICAgICAgICA0CisgICAgICAgICAgIDUKKyAgICAgICAgICAgNgorICAgICAgICAg ICA3CisgICAgICAgICAgIDgKKyAgICAgICAgICAgOQorICAgICAgICAgIDEwCisgICAgICAgICAg MTEKKyAgICAgICAgICAxMgorICAgICAgICAgIDEzCisoMTAgcm93cykKKworRFJPUCBWQVJJQUJM RSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMjsKK0RST1AgRlVOQ1RJT04gaW5jX3Zh cl9pbnQ7CitEUk9QIEZVTkNUSU9OIGluY192YXJfbnVtOworLS0gcGxwZ3NxbCB2YXJpYWJsZXMg YXJlIHByZWZlcnJlZCBhZ2FpbnN0IHNlc3Npb24gdmFyaWFibGVzCitDUkVBVEUgVkFSSUFCTEUg cGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0RPICQkCis8PG15YmxvY2s+PgorREVDTEFSRSBwbHBn c3FsX3N2X3ZhcjEgaW50OworQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IDEwMDsKKwor ICBwbHBnc3FsX3N2X3ZhcjEgOj0gMTAwMDsKKworICAtLSBwcmludCAxMDA7CisgIFJBSVNFIE5P VElDRSAnc2Vzc2lvbiB2YXJpYWJsZSBpcyAlJywgcHVibGljLnBscGdzcWxfc3ZfdmFyMTsKKwor ICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElDRSAncGxwZ3NxbCB2YXJpYWJsZSBpcyAlJywg bXlibG9jay5wbHBnc3FsX3N2X3ZhcjE7CisKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJ Q0UgJ3ZhcmlhYmxlIGlzICUnLCBwbHBnc3FsX3N2X3ZhcjE7CitFTkQ7CiskJDsKK05PVElDRTog IHNlc3Npb24gdmFyaWFibGUgaXMgMTAwCitOT1RJQ0U6ICBwbHBnc3FsIHZhcmlhYmxlIGlzIDEw MDAKK05PVElDRTogIHZhcmlhYmxlIGlzIDEwMDAKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92 YXIxOworLS0gdGhlIHZhbHVlIHNob3VsZCBub3QgYmUgY29ycnVwdGVkCitDUkVBVEUgVkFSSUFC TEUgcGxwZ3NxbF9zdl92IHRleHQ7CitMRVQgcGxwZ3NxbF9zdl92ID0gJ2FiYyc7CitDUkVBVEUg RlVOQ1RJT04gZmZ1bmMoKQorUkVUVVJOUyB0ZXh0IEFTICQkCitCRUdJTgorICBSRVRVUk4gZ2Z1 bmMocGxwZ3NxbF9zdl92KTsKK0VORAorJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBGVU5D VElPTiBnZnVuYyh0IHRleHQpCitSRVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBn c3FsX3N2X3YgPSAnQk9PTSEnOworICBSRVRVUk4gdDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdz cWw7CitzZWxlY3QgZmZ1bmMoKTsKKyBmZnVuYyAKKy0tLS0tLS0KKyBhYmMKKygxIHJvdykKKwor RFJPUCBGVU5DVElPTiBmZnVuYygpOworRFJPUCBGVU5DVElPTiBnZnVuYyh0ZXh0KTsKK0RST1Ag VkFSSUFCTEUgcGxwZ3NxbF9zdl92OwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL21l c29uLmJ1aWxkIGIvc3JjL3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxkCmluZGV4IDMzYzQ5YWMy NWQuLjFkMDFkMWMyNjIgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9tZXNvbi5idWls ZAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVpbGQKQEAgLTg4LDYgKzg4LDcgQEAg dGVzdHMgKz0gewogICAgICAgJ3BscGdzcWxfdHJhcCcsCiAgICAgICAncGxwZ3NxbF90cmlnZ2Vy JywKICAgICAgICdwbHBnc3FsX3ZhcnByb3BzJywKKyAgICAgICdwbHBnc3FsX3Nlc3Npb25fdmFy aWFibGUnLAogICAgIF0sCiAgIH0sCiB9CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMv c3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvc3Fs L3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMC4uYTNjYzI2NGNmMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wbC9wbHBnc3Fs L3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbApAQCAtMCwwICsxLDI4OSBAQAor LS0gdGVzdCBvZiBzZXNzaW9uIHZhcmlhYmxlcworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3Zf dmFyIEFTIG51bWVyaWM7CisKK0xFVCBwbHBnc3FsX3N2X3ZhciA9IHBpKCk7CisKKy0tIHBhc3Np bmcgcGFyYW1ldGVycyB0byBETyBibG9jaworRE8gJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAn dmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXI7CitFTkQ7Cisk JDsKKworLS0gcGFzc2luZyBvdXRwdXQgZnJvbSBETyBibG9jazsKK0RPICQkCitCRUdJTgorICBM RVQgcGxwZ3NxbF9zdl92YXIgPSAyICogcGkoKTsKK0VORAorJCQ7CisKK1NFTEVDVCBwbHBnc3Fs X3N2X3ZhciBBUyAicGlfbXVsdGlwbHlfMiI7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92 YXI7CisKKy0tIHRlc3QgYWNjZXNzIGZyb20gUEwvcGdTUUwKK0NSRUFURSBWQVJJQUJMRSBwbHBn c3FsX3N2X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBBUyBu dW1lcmljOworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMyBBUyB2YXJjaGFyOworCitD UkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB3cml0ZXJfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMg JCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDsKKyAgTEVUIHBscGdzcWxfc3Zf dmFyMiA9IHBpKCk7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9zdl92YXIz ID0gZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcqJywgMTAwMDApKTsKK0VORDsKKyQkIExBTkdVQUdF IHBscGdzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYygpCitS RVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBwbHBnc3Fs X3N2X3ZhcjEgKyAxMDA7CisgIExFVCBwbHBnc3FsX3N2X3ZhcjIgPSBwbHBnc3FsX3N2X3ZhcjIg KyAxMDAwMDAwMDAwMDA7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9zdl92 YXIzID0gcGxwZ3NxbF9zdl92YXIzIHx8IGZvcm1hdCgnKCVzKScsIHJlcGVhdCgnKicsIDEwMDAw KSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCisKK0NSRUFURSBPUiBSRVBMQUNFIEZV TkNUSU9OIHJlYWRlcl9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJU0Ug Tk9USUNFICd2YXIxID0gJScsIHBscGdzcWxfc3ZfdmFyMTsKKyAgUkFJU0UgTk9USUNFICd2YXIy ID0gJScsIHBscGdzcWxfc3ZfdmFyMjsKKyAgUkFJU0UgTk9USUNFICdsZW5ndGggb2YgdmFyMyA9 ICUnLCBsZW5ndGgocGxwZ3NxbF9zdl92YXIzKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7 CisKKy0tIGV4ZWN1dGUgaW4gYSB0cmFuc2FjdGlvbgorQkVHSU47CitTRUxFQ1Qgd3JpdGVyX2Z1 bmMoKTsKK1NFTEVDVCByZWFkZXJfZnVuYygpOworU0VMRUNUIHVwZGF0ZXJfZnVuYygpOworU0VM RUNUIHJlYWRlcl9mdW5jKCk7CitFTkQ7CisKKy0tIGV4ZWN1dGUgb3V0c2lkZSBvZiBhIHRyYW5z YWN0aW9uCitTRUxFQ1Qgd3JpdGVyX2Z1bmMoKTsKK1NFTEVDVCByZWFkZXJfZnVuYygpOworU0VM RUNUIHVwZGF0ZXJfZnVuYygpOworU0VMRUNUIHJlYWRlcl9mdW5jKCk7CisKKy0tIGV4ZWN1dGUg aW5zaWRlIGEgUEwvcGdTUUwgYmxvY2sKK0RPICQkCitCRUdJTgorICBQRVJGT1JNIHdyaXRlcl9m dW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsKKyAgUEVSRk9STSB1cGRhdGVyX2Z1bmMo KTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworRU5EOworJCQ7CisKKy0tIHBsYW4gY2FjaGVz IHNob3VsZCBiZSBjb3JyZWN0bHkgaW52YWxpZGF0ZWQKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9z dl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3ZfdmFyMzsKKworQ1JFQVRFIFZBUklB QkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92 YXIyIEFTIG51bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNo YXI7CisKKy0tIHNob3VsZCB3b3JrIGFnYWluCitETyAkJAorQkVHSU4KKyAgUEVSRk9STSB3cml0 ZXJfZnVuYygpOworICBQRVJGT1JNIHJlYWRlcl9mdW5jKCk7CisgIFBFUkZPUk0gdXBkYXRlcl9m dW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsKK0VORDsKKyQkOworCitEUk9QIFZBUklB QkxFIHBscGdzcWxfc3ZfdmFyMSwgcGxwZ3NxbF9zdl92YXIyLCBwbHBnc3FsX3N2X3ZhcjM7CisK K0RST1AgRlVOQ1RJT04gd3JpdGVyX2Z1bmM7CitEUk9QIEZVTkNUSU9OIHJlYWRlcl9mdW5jOwor RFJPUCBGVU5DVElPTiB1cGRhdGVyX2Z1bmM7CisKKy0tIGFub3RoZXIgY2hlY2sgb2YgY29ycmVj dCBwbGFuIGNhY2hlIGludmFsaWRhdGlvbgorQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFy MSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIGludFtdOworCitD UkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB0ZXN0X2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQk CitERUNMQVJFIHYgaW50W10gREVGQVVMVCAne30nOworQkVHSU4KKyAgTEVUIHBscGdzcWxfc3Zf dmFyMSA9IDE7CisgIHZbcGxwZ3NxbF9zdl92YXIxXSA9IDEwMDsKKyAgUkFJU0UgTk9USUNFICcl JywgdjsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IHY7CisgIExFVCBwbHBnc3FsX3N2X3ZhcjJb cGxwZ3NxbF9zdl92YXIxXSA9IC0xOworICBSQUlTRSBOT1RJQ0UgJyUnLCBwbHBnc3FsX3N2X3Zh cjI7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitTRUxFQ1QgdGVzdF9mdW5jKCk7CisK K0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CisKK0NSRUFU RSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdz cWxfc3ZfdmFyMiBBUyBpbnRbXTsKKworU0VMRUNUIHRlc3RfZnVuYygpOworCitEUk9QIEZVTkNU SU9OIHRlc3RfZnVuYygpOworCitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSwgcGxwZ3Nx bF9zdl92YXIyOworCistLSBjaGVjayBzZWN1cmUgYWNjZXNzCitDUkVBVEUgUk9MRSByZWdyZXNz X3Zhcl9vd25lcl9yb2xlOworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfcmVhZGVyX3JvbGU7CitD UkVBVEUgUk9MRSByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CisKK0dSQU5UIEFMTCBPTiBTQ0hFTUEg cHVibGljIFRPIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGUsIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xl LCByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX293bmVy X3JvbGU7CisKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworTEVUIHBs cGdzcWxfc3ZfdmFyMSA9IDEwOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBU TyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04g dmFyX3JlYWRfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElD RSAnJScsIHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWwgU0VDVVJJ VFkgREVGSU5FUjsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworU0VUIFJPTEUgVE8gcmVncmVz c192YXJfZXhlY19yb2xlOworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcl9yZWFkX2Z1bmMo KTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3du ZXJfcm9sZTsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgVE8gcmVn cmVzc192YXJfcmVhZGVyX3JvbGU7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFVCBST0xF IFRPIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFy X3JlYWRfZnVuYygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdy ZXNzX3Zhcl9vd25lcl9yb2xlOworCitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMTsKKwor U0VUIFJPTEUgVE8gREVGQVVMVDsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xl OworCistLSBzaG91bGQgZmFpbCwgYnV0IG5vdCBjcmFzaAorU0VMRUNUIHZhcl9yZWFkX2Z1bmMo KTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworRFJPUCBGVU5DVElPTiB2YXJfcmVhZF9mdW5j OworCitSRVZPS0UgQUxMIE9OIFNDSEVNQSBwdWJsaWMgRlJPTSByZWdyZXNzX3Zhcl9vd25lcl9y b2xlLCByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZSwgcmVncmVzc192YXJfZXhlY19yb2xlOworCitE Uk9QIFJPTEUgcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9y ZWFkZXJfcm9sZTsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CisKKy0tIHJldHVy bnMgdXBkYXRlZCB2YWx1ZQorQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7 CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGluY192YXJfaW50KGludCkKK1JFVFVSTlMg aW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gQ09BTEVTQ0UocGxwZ3Nx bF9zdl92YXIxICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQk IExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCBpbmNfdmFyX2ludCgxKTsKK1NFTEVDVCBpbmNf dmFyX2ludCgxKTsKK1NFTEVDVCBpbmNfdmFyX2ludCgxKTsKKworU0VMRUNUIGluY192YXJfaW50 KDEpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zdl92YXIyIEFTIG51bWVyaWM7CisKK0xFVCBwbHBnc3FsX3N2X3ZhcjIgPSAwLjA7CisKK0NS RUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGluY192YXJfbnVtKG51bWVyaWMpCitSRVRVUk5TIGlu dCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IENPQUxFU0NFKHBscGdzcWxf c3ZfdmFyMiArICQxLCAkMSk7CisgIFJFVFVSTiBwbHBnc3FsX3N2X3ZhcjI7CitFTkQ7CiskJCBM QU5HVUFHRSBwbHBnc3FsOworCitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKK1NFTEVDVCBpbmNf dmFyX251bSgxLjApOworU0VMRUNUIGluY192YXJfbnVtKDEuMCk7CisKK1NFTEVDVCBpbmNfdmFy X251bSgxLjApIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworCitEUk9QIFZBUklBQkxFIHBs cGdzcWxfc3ZfdmFyMSwgcGxwZ3NxbF9zdl92YXIyOworCitEUk9QIEZVTkNUSU9OIGluY192YXJf aW50OworRFJPUCBGVU5DVElPTiBpbmNfdmFyX251bTsKKworLS0gcGxwZ3NxbCB2YXJpYWJsZXMg YXJlIHByZWZlcnJlZCBhZ2FpbnN0IHNlc3Npb24gdmFyaWFibGVzCitDUkVBVEUgVkFSSUFCTEUg cGxwZ3NxbF9zdl92YXIxIEFTIGludDsKKworRE8gJCQKKzw8bXlibG9jaz4+CitERUNMQVJFIHBs cGdzcWxfc3ZfdmFyMSBpbnQ7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTAwOwor CisgIHBscGdzcWxfc3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHByaW50IDEwMDsKKyAgUkFJU0Ug Tk9USUNFICdzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwdWJsaWMucGxwZ3NxbF9zdl92YXIxOwor CisgIC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNFICdwbHBnc3FsIHZhcmlhYmxlIGlzICUn LCBteWJsb2NrLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5P VElDRSAndmFyaWFibGUgaXMgJScsIHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQkOworCitEUk9Q IFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMTsKKworLS0gdGhlIHZhbHVlIHNob3VsZCBub3QgYmUg Y29ycnVwdGVkCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92IHRleHQ7CitMRVQgcGxwZ3Nx bF9zdl92ID0gJ2FiYyc7CisKK0NSRUFURSBGVU5DVElPTiBmZnVuYygpCitSRVRVUk5TIHRleHQg QVMgJCQKK0JFR0lOCisgIFJFVFVSTiBnZnVuYyhwbHBnc3FsX3N2X3YpOworRU5ECiskJCBMQU5H VUFHRSBwbHBnc3FsOworCitDUkVBVEUgRlVOQ1RJT04gZ2Z1bmModCB0ZXh0KQorUkVUVVJOUyB0 ZXh0IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92ID0gJ0JPT00hJzsKKyAgUkVUVVJO IHQ7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitzZWxlY3QgZmZ1bmMoKTsKKworRFJP UCBGVU5DVElPTiBmZnVuYygpOworRFJPUCBGVU5DVElPTiBnZnVuYyh0ZXh0KTsKKworRFJPUCBW QVJJQUJMRSBwbHBnc3FsX3N2X3Y7Ci0tIAoyLjQ3LjEKCg== --0000000000008953c9062b346e70 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250108-0007-GUC-session_variables_ambiguity_warning.patch" Content-Disposition: attachment; filename="v20250108-0007-GUC-session_variables_ambiguity_warning.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5o4agl015 RnJvbSAxODg2NjkwYTMxZWE3Mjc3MmVjYjFhYjg3ODM5OGJkNDYwYTExNmEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMjEgTWF5IDIwMjQgMTc6NTU6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIDA3 LzIyXSBHVUMgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcKCkluc2lkZSBhbiBx dWVyeSB0aGUgc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkLiBUaGlzIGJlaGF2aW91 ciBpcyBieSBkZXNpZ24sCmJlY2F1c2UgdGhpcyBlbnN1cmluZyBzbyBuZXcgdmFyaWFibGVzIGRv ZXNuJ3QgYnJlYWsgZXhpc3RpbmcgcXVlcmllcy4gQnV0IHRoaXMKYmVoYXZpb3VyIGNhbiBiZSBj b25mdXNpbmcsIGJlY2F1c2Ugc2hhZG93aW5nIGlzIHF1aWV0LgoKV2hlbiBuZXcgR1VDIHNlc3Np b25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIGlzIG9uLCB0aGVuIHRoZSB3YXJuaW5nCmlz IGRpc3BsYXllZCwgd2hlbiBzb21lIHNlc3Npb24gdmFyaWFibGUgY2FuIGJlIHVzZWQsIGJ1dCBp dCBpcyBub3QgdXNlZApkdWUgc2hhZG93aW5nLiBUaGlzIGZlYXR1cmUgc2hvdWxkIHRvIGhlbHAg d2l0aCBpbnZlc3RpZ2F0aW9uIG9mIHVuZXhwZWN0ZWQKYmVoYXZpb3VyLgoKTm90ZTogUExwZ1NR TCBoYXMgYW4gb3B0aW9uIHRoYXQgY29udHJvbHMgcHJpb3JpdHkgb2YgaWRlbnRpZmllcidzIHNw YWNlcwooU1FMIG9yIFBMcGdTUUwpLiBEZWZhdWx0IGJlaGF2aW91ciBkb2Vzbid0IGFsbG93cyBj b2xsaXNpb25zLiBJIGJlbGlldmUKdGhpcyBkZWZhdWx0IGlzIHRoZSBiZXN0LiBJIGNhbm5vdCB0 byBpbXBsZW1lbnQgc2ltaWxhciB2ZXJ5IHN0cmljdApiZWhhdmlvdXIgdG8gc2Vzc2lvbiB2YXJp YWJsZXMsIGJlY2F1c2Ugb25lIHVuaGFwcHkgbmFtZWQgc2Vzc2lvbiB2YXJpYWJsZQpjYW4gYnJl YWtzIGFuIGFwcGxpY2F0aW9ucy4gVGhlIHByb2JsZW1zIHJlbGF0ZWQgdG8gYmFkbHkgbmFtZWQg UExwZ1NRTCdzCnZhcmlibGUgaXMgbGltaXR0ZWQganVzdCB0byBvbmx5IG9uZSByb3V0aW5lLgot LS0KIGRvYy9zcmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8IDYwICsr KysrKysrKysrKysrKysrKysKIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAg ICAgICAgICB8IDExICsrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAg ICAgICAgICB8IDQ5ICsrKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNf dGFibGVzLmMgICAgICAgICAgIHwgIDkgKysrCiBzcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3Rn cmVzcWwuY29uZi5zYW1wbGUgfCAgMSArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5o ICAgICAgICAgICAgICAgfCAgMSArCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92 YXJpYWJsZS5vdXQgfCAzMyArKysrKysrKysrCiAuLi4vc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25f dmFyaWFibGUuc3FsICAgICAgfCAyOSArKysrKysrKysKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dCAgICB8IDI2ICsrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyNiArKysrKysrKwogMTAgZmlsZXMgY2hhbmdl ZCwgMjQxIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4IDg2ODNm MGJkZjUuLjEwMTIyNGJjYzAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKQEAgLTEwODA3LDYgKzEwODA3LDY2IEBAIGR5 bmFtaWNfbGlicmFyeV9wYXRoID0gJ0M6XHRvb2xzXHBvc3RncmVzcWw7SDpcbXlfcHJvamVjdFxs aWI7JGxpYmRpcicKICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisg ICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1zZXNzaW9uLXZhcmlhYmxlcy1hbWJpZ3VpdHktd2Fy bmluZyIgeHJlZmxhYmVsPSJzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyI+Cisg ICAgICA8dGVybT48dmFybmFtZT5zZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZzwv dmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAg ICA8cHJpbWFyeT48dmFybmFtZT5zZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZzwv dmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8L3ByaW1hcnk+CisgICAgICA8L2luZGV4 dGVybT4KKyAgICAgIDwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAg ICAgICAgV2hlbiBvbiwgYSB3YXJuaW5nIGlzIHJhaXNlZCB3aGVuIGFueSBpZGVudGlmaWVyIGlu IGEgcXVlcnkgY291bGQgYmUKKyAgICAgICAgdXNlZCBhcyBib3RoIGEgY29sdW1uIGlkZW50aWZp ZXIsIHJvdXRpbmUgdmFyaWFibGUgb3IgYSBzZXNzaW9uCisgICAgICAgIHZhcmlhYmxlIGlkZW50 aWZpZXIuIFRoZSBkZWZhdWx0IGlzIDxsaXRlcmFsPm9mZjwvbGl0ZXJhbD4uCisgICAgICAgPC9w YXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hh ZG93ZWQgYnkgY29sdW1uIHJlZmVyZW5jZXMgaW4gYSBxdWVyeSwgdGhpcworICAgICAgICBpcyBh biBleHBlY3RlZCBiZWhhdmlvci4gIFByZXZpb3VzbHkgd29ya2luZyBxdWVyaWVzIHNob3VsZG4n dCBlcnJvciBvdXQKKyAgICAgICAgYnkgY3JlYXRpbmcgYW55IHNlc3Npb24gdmFyaWFibGUsIHNv IHNlc3Npb24gdmFyaWFibGVzIGFyZSBhbHdheXMgc2hhZG93ZWQKKyAgICAgICAgaWYgYW4gaWRl bnRpZmllciBpcyBhbWJpZ3VvdXMuICBWYXJpYWJsZXMgc2hvdWxkIGJlIHJlZmVyZW5jZWQgdXNp bmcKKyAgICAgICAgYW51bmFtYmlndW91cyBpZGVudGlmaWVyIHdpdGhvdXQgYW55IHBvc3NpYmls aXR5IGZvciBhIGNvbGxpc2lvbiB3aXRoCisgICAgICAgIGlkZW50aWZpZXIgb2Ygb3RoZXIgZGF0 YWJhc2Ugb2JqZWN0cyAoY29sdW1uIG5hbWVzIG9yIHJlY29yZCBmaWVsZHMgbmFtZXMpLgorICAg ICAgICBUaGUgd2FybmluZyBtZXNzYWdlcyBlbWl0dGVkIHdoZW4gZW5hYmxpbmcgPHZhcm5hbWU+ c2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmc8L3Zhcm5hbWU+CisgICAgICAgIGNh biBoZWxwIGZpbmRpbmcgc3VjaCBpZGVudGlmaWVyIGNvbGxpc2lvbi4KKzxwcm9ncmFtbGlzdGlu Zz4KK0NSRUFURSBUQUJMRSBmb28oYSBpbnQpOworSU5TRVJUIElOVE8gZm9vIFZBTFVFUygxMCk7 CitDUkVBVEUgVkFSSUFCTEUgYSBpbnQ7CitMRVQgYSA9IDEwMDsKK1NFTEVDVCBhIEZST00gZm9v OworPC9wcm9ncmFtbGlzdGluZz4KKworPHNjcmVlbj4KKyBhCistLS0tCisgMTAKKygxIHJvdykK Kzwvc2NyZWVuPgorCis8cHJvZ3JhbWxpc3Rpbmc+CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1i aWd1aXR5X3dhcm5pbmcgVE8gb247CitTRUxFQ1QgYSBGUk9NIGZvbzsKKzwvcHJvZ3JhbWxpc3Rp bmc+CisKKzxzY3JlZW4+CitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJpYWJsZSAiYSIgaXMgc2hhZG93 ZWQKK0xJTkUgMTogU0VMRUNUIGEgRlJPTSBmb287CisgICAgICAgICAgICAgICBeCitERVRBSUw6 ICBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGluZSdz IHZhcmlhYmxlcyBhbmQgcm91dGluZSdzIGFyZ3VtZW50cyB3aXRoIHRoZSBzYW1lIG5hbWUuCisg YQorLS0tLQorIDEwCisoMSByb3cpCis8L3NjcmVlbj4KKyAgICAgICA8L3BhcmE+CisgICAgICAg PHBhcmE+CisgICAgICAgIFRoaXMgZmVhdHVyZSBjYW4gc2lnbmlmaWNhbnRseSBpbmNyZWFzZSBs b2cgc2l6ZSwgc28gaXQncyBkaXNhYmxlZCBieQorICAgICAgICBkZWZhdWx0LiAgRm9yIHRlc3Rp bmcgb3IgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzIGl0J3MgcmVjb21tZW5kZWQgdG8KKyAgICAg ICAgZW5hYmxlIGl0IGlmIHlvdSB1c2Ugc2Vzc2lvbiB2YXJpYWJsZXMuCisgICAgICAgPC9wYXJh PgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxp c3RlbnRyeSBpZD0iZ3VjLXN0YW5kYXJkLWNvbmZvcm1pbmctc3RyaW5ncyIgeHJlZmxhYmVsPSJz dGFuZGFyZF9jb25mb3JtaW5nX3N0cmluZ3MiPgogICAgICAgPHRlcm0+PHZhcm5hbWU+c3RhbmRh cmRfY29uZm9ybWluZ19zdHJpbmdzPC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCiAg ICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PnN0cmluZ3M8L3ByaW1hcnk+PHNlY29uZGFyeT5zdGFu ZGFyZCBjb25mb3JtaW5nPC9zZWNvbmRhcnk+PC9pbmRleHRlcm0+CmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggMzdkMmZhMDFj Yi4uMWRlZTBhYzI4ZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTQxOCw2ICs1NDE4LDE3IEBAIFNFTEVDVCBuYW1lIEZS T00gZm9vOwogIEFsaWNlCiA8L3Byb2dyYW1saXN0aW5nPgogICAgPC9wYXJhPgorCisgICA8cGFy YT4KKyAgICBXaGVuIGEgcXVlcnkgY29udGFpbnMgaWRlbnRpZmllcnMgb3IgcXVhbGlmaWVkIGlk ZW50aWZpZXJzIHRoYXQgY291bGQgYmUKKyAgICB1c2VkIGFzIGJvdGggYSBzZXNzaW9uIHZhcmlh YmxlIGlkZW50aWZpZXJzIGFuZCBhcyBjb2x1bW4gaWRlbnRpZmllciwKKyAgICB0aGVuIHRoZSBj b2x1bW4gaWRlbnRpZmllciBpcyBwcmVmZXJyZWQgZXZlcnkgdGltZS4gIFdhcm5pbmdzIGNhbiBi ZQorICAgIGVtaXR0ZWQgd2hlbiB0aGlzIHNpdHVhdGlvbiBoYXBwZW5zIGJ5IGVuYWJsaW5nIGNv bmZpZ3VyYXRpb24gcGFyYW1ldGVyIDx4cmVmCisgICAgbGlua2VuZD0iZ3VjLXNlc3Npb24tdmFy aWFibGVzLWFtYmlndWl0eS13YXJuaW5nIi8+LiBVc2VyIGNhbiBleHBsaWNpdGx5CisgICAgcXVh bGlmeSB0aGUgc291cmNlIG9iamVjdCBieSBzeW50YXggPGxpdGVyYWw+dGFibGUuY29sdW1uPC9s aXRlcmFsPiBvcgorICAgIDxsaXRlcmFsPnNjaGVtYS52YXJpYWJsZTwvbGl0ZXJhbD4uIEl0IGlz IHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvIHJlbmFtZQorICAgIHNoYWRvd2VkIHZhcmlhYmxlcyBv ciB1c2UgcXVhbGlmaWVkIG5hbWVzIGFsd2F5cy4KKyAgIDwvcGFyYT4KICAgPC9zZWN0MT4KIAog IDxzZWN0MSBpZD0iZGRsLW90aGVycyI+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCAxZWQw NzUxMmMwLi5iM2M1MWFmOGNmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf ZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTQ1LDYgKzQ1 LDcgQEAKIAogLyogR1VDIHBhcmFtZXRlcnMgKi8KIGJvb2wJCVRyYW5zZm9ybV9udWxsX2VxdWFs cyA9IGZhbHNlOworYm9vbAkJc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgPSBm YWxzZTsKIAogCiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtRXhwclJlY3Vyc2UoUGFyc2VTdGF0ZSAq cHN0YXRlLCBOb2RlICpleHByKTsKQEAgLTk2MCwxMSArOTYxLDUxIEBAIHRyYW5zZm9ybUNvbHVt blJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJICoKIAkJICogU0VM RUNUIGZvby5hLCBmb28uYiwgZm9vLmMgRlJPTSBmb287CiAJCSAqCi0JCSAqIEhvd2V2ZXIsIHRo YXQgaXMgdmVyeSBjb25mdXNpbmcsIHNvIHdlIGRpc2FsbG93IGl0LiAgV2UgZG9uJ3QgdHJ5IHRv Ci0JCSAqIGlkZW50aWZ5IGEgdmFyaWFibGUgaWYgd2Uga25vdyB0aGF0IGl0IHdvdWxkIGJlIHNo YWRvd2VkLgotCQkgKiAtLS0tLQorCQkgKiBIb3dldmVyLCB0aGF0IGlzIHZlcnkgY29uZnVzaW5n LCBzbyB3ZSBkaXNhbGxvdyBpdC4KKwkJICoKKwkJICogV2hlbiBzZXNzaW9uX3ZhcmlhYmxlc19h bWJpZ3VpdHlfd2FybmluZyBpcyByZXF1ZXN0ZWQsIHRoZW4gd2UKKwkJICogbmVlZCB0byBpZGVu dGlmeSBhIHZhcmlhYmxlIGFsdGhvdWdoIHdlIGtub3csIHNvIHRoaXMgdmFyaWFibGUKKwkJICog d291bGQgYmUgc2hhZG93ZWQuCiAJCSAqLwotCQlpZiAoIW5vZGUgJiYgIShyZWxuYW1lICYmIGNy ZXJyID09IENSRVJSX05PX0NPTFVNTikpCisJCWlmIChub2RlIHx8IChyZWxuYW1lICYmIGNyZXJy ID09IENSRVJSX05PX0NPTFVNTikpCisJCXsKKwkJCS8qCisJCQkgKiBJbiB0aGlzIHBhdGggd2Ug anVzdCB0cnkgKGlmIGl0IGlzIHdhbnRlZCkgZGV0ZWN0IGlmIHNlc3Npb24KKwkJCSAqIHZhcmlh YmxlIGlzIHNoYWRvd2VkLgorCQkJICovCisJCQlpZiAoc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1 aXR5X3dhcm5pbmcpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBUaGUgQWNjZXNzU2hhcmVMb2NrIGlz IGNyZWF0ZWQgb24gcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlLgorCQkJCSAqIFRoZSBsb2NrIHdp bGwgYmUga2VwdCBmb3IgdGhlIHdob2xlIHRyYW5zYWN0aW9uLgorCQkJCSAqLworCQkJCXZhcmlk ID0gSWRlbnRpZnlWYXJpYWJsZShjcmVmLT5maWVsZHMsICZhdHRybmFtZSwgJm5vdF91bmlxdWUs IHRydWUpOworCisJCQkJaWYgKE9pZElzVmFsaWQodmFyaWQpKQorCQkJCXsKKwkJCQkJLyogdGhp cyBwYXRoIHdpbGwgZW5kaW5nIGJ5IFdBUk5JTkcuIFVubG9jayB2YXJpYWJsZSBmaXJzdCAqLwor CQkJCQlVbmxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAwLCBB Y2Nlc3NTaGFyZUxvY2spOworCisJCQkJCWlmIChub2RlKQorCQkJCQkJZXJlcG9ydChXQVJOSU5H LAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0FNQklHVU9VU19DT0xVTU4pLAorCQkJCQkJCQkg ZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBpcyBzaGFkb3dlZCIsCisJCQkJCQkJCQkJ TmFtZUxpc3RUb1N0cmluZyhjcmVmLT5maWVsZHMpKSwKKwkJCQkJCQkJIGVycmRldGFpbCgiU2Vz c2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJvdXRpbmUncyB2YXJp YWJsZXMgYW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUgc2FtZSBuYW1lLiIpLAorCQkJ CQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgY3JlZi0+bG9jYXRpb24pKSk7CisJCQkJ CWVsc2UKKwkJCQkJCS8qIHNlc3Npb24gdmFyaWFibGUgaXMgc2hhZG93ZWQgYnkgUlRFICovCisJ CQkJCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfQU1CSUdVT1VT X0NPTFVNTiksCisJCQkJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIGlz IHNoYWRvd2VkIiwKKwkJCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFy aWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZSh2YXJpZCkpLAorCQkJCQkJCQkgZXJyZGV0YWlsKCJTZXNzaW9uIHZhcmlhYmxlcyBjYW4g YmUgc2hhZG93ZWQgYnkgdGFibGVzIG9yIHRhYmxlJ3MgYWxpYXNlcyB3aXRoIHRoZSBzYW1lIG5h bWUuIiksCisJCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjcmVmLT5sb2NhdGlv bikpKTsKKwkJCQl9CisJCQl9CisJCX0KKwkJZWxzZQogCQl7CiAJCQkvKiB0YWtlcyBhbiBBY2Nl c3NTaGFyZUxvY2sgb24gdGhlIHNlc3Npb24gdmFyaWFibGUgKi8KIAkJCXZhcmlkID0gSWRlbnRp ZnlWYXJpYWJsZShjcmVmLT5maWVsZHMsICZhdHRybmFtZSwgJm5vdF91bmlxdWUsIGZhbHNlKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggYzlkOGNkNzk2YS4uNjQ3ZmExZjY0 YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTE2MDUsNiArMTYwNSwxNSBA QCBzdHJ1Y3QgY29uZmlnX2Jvb2wgQ29uZmlndXJlTmFtZXNCb29sW10gPQogCQlmYWxzZSwKIAkJ TlVMTCwgTlVMTCwgTlVMTAogCX0sCisJeworCQl7InNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0 eV93YXJuaW5nIiwgUEdDX1VTRVJTRVQsIENMSUVOVF9DT05OX1NUQVRFTUVOVCwKKwkJCWdldHRl eHRfbm9vcCgiUmFpc2UgYSB3YXJuaW5nIHdoZW4gcmVmZXJlbmNlIHRvIGEgc2Vzc2lvbiB2YXJp YWJsZSBpcyBhbWJpZ3VvdXMuIiksCisJCQlOVUxMCisJCX0sCisJCSZzZXNzaW9uX3ZhcmlhYmxl c19hbWJpZ3VpdHlfd2FybmluZywKKwkJZmFsc2UsCisJCU5VTEwsIE5VTEwsIE5VTEwKKwl9LAog CXsKIAkJeyJkZWZhdWx0X3RyYW5zYWN0aW9uX3JlYWRfb25seSIsIFBHQ19VU0VSU0VULCBDTElF TlRfQ09OTl9TVEFURU1FTlQsCiAJCQlnZXR0ZXh0X25vb3AoIlNldHMgdGhlIGRlZmF1bHQgcmVh ZC1vbmx5IHN0YXR1cyBvZiBuZXcgdHJhbnNhY3Rpb25zLiIpLApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4IGIyYmM0MzM4M2QuLjI0Y2Q2YTJj ZjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNh bXBsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUK QEAgLTcxNyw2ICs3MTcsNyBAQCBhdXRvdmFjdXVtX3dvcmtlcl9zbG90cyA9IDE2CSMgYXV0b3Zh Y3V1bSB3b3JrZXIgc2xvdHMgdG8gYWxsb2NhdGUKICNkZWZhdWx0X3RyYW5zYWN0aW9uX3JlYWRf b25seSA9IG9mZgogI2RlZmF1bHRfdHJhbnNhY3Rpb25fZGVmZXJyYWJsZSA9IG9mZgogI3Nlc3Np b25fcmVwbGljYXRpb25fcm9sZSA9ICdvcmlnaW4nCisjc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1 aXR5X3dhcm5pbmcgPSBvZmYKICNzdGF0ZW1lbnRfdGltZW91dCA9IDAJCQkJIyBpbiBtaWxsaXNl Y29uZHMsIDAgaXMgZGlzYWJsZWQKICN0cmFuc2FjdGlvbl90aW1lb3V0ID0gMAkJCSMgaW4gbWls bGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCiAjbG9ja190aW1lb3V0ID0gMAkJCQkjIGluIG1pbGxp c2Vjb25kcywgMCBpcyBkaXNhYmxlZApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3Bh cnNlX2V4cHIuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKaW5kZXggZWZiYWZm OGU3MS4uZDIyMDkwNzAxOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4 cHIuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCkBAIC0xNyw2ICsxNyw3 IEBACiAKIC8qIEdVQyBwYXJhbWV0ZXJzICovCiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBUcmFu c2Zvcm1fbnVsbF9lcXVhbHM7CitleHRlcm4gUEdETExJTVBPUlQgYm9vbCBzZXNzaW9uX3Zhcmlh Ymxlc19hbWJpZ3VpdHlfd2FybmluZzsKIAogZXh0ZXJuIE5vZGUgKnRyYW5zZm9ybUV4cHIoUGFy c2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKTsKIApk aWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92 YXJpYWJsZS5vdXQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9u X3ZhcmlhYmxlLm91dAppbmRleCBhYjc3OTkwMDU5Li5hNjUyM2Y3YWZlIDEwMDY0NAotLS0gYS9z cmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dAor KysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxl Lm91dApAQCAtMzU0LDYgKzM1NCwzOSBAQCAkJDsKIE5PVElDRTogIHNlc3Npb24gdmFyaWFibGUg aXMgMTAwCiBOT1RJQ0U6ICBwbHBnc3FsIHZhcmlhYmxlIGlzIDEwMDAKIE5PVElDRTogIHZhcmlh YmxlIGlzIDEwMDAKKy0tIGFnYWludCB3aXRoIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93 YXJuaW5nKG9uKQorU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9u OworRE8gJCQKKzw8bXlibG9jaz4+CitERUNMQVJFIHBscGdzcWxfc3ZfdmFyMSBpbnQ7CitCRUdJ TgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTAwOworCisgIC0tIHNob3VsZCBiZSBvayB3aXRo b3V0IHdhcm5pbmcKKyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEwMDA7CisKKyAgLS0gc2hvdWxkIGJl IG9rIHdpdGhvdXQgd2FybmluZworICAtLSBwcmludCAxMDA7CisgIFJBSVNFIE5PVElDRSAnc2Vz c2lvbiB2YXJpYWJsZSBpcyAlJywgcHVibGljLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBzaG91 bGQgYmUgb2sgd2l0aG91dCB3YXJuaW5nCisgIC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNF ICdwbHBnc3FsIHZhcmlhYmxlIGlzICUnLCBteWJsb2NrLnBscGdzcWxfc3ZfdmFyMTsKKworICAt LSBzaG91bGQgdG8gcHJpbnQgcGxwZ3NxbCB2YXJpYWJsZSB3aXRoIHdhcm5pbmcKKyAgLS0gcHJp bnQgMTAwMAorICBSQUlTRSBOT1RJQ0UgJ3ZhcmlhYmxlIGlzICUnLCBwbHBnc3FsX3N2X3ZhcjE7 CitFTkQ7CiskJDsKK05PVElDRTogIHNlc3Npb24gdmFyaWFibGUgaXMgMTAwCitOT1RJQ0U6ICBw bHBnc3FsIHZhcmlhYmxlIGlzIDEwMDAKK1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlhYmxlICJwbHBn c3FsX3N2X3ZhcjEiIGlzIHNoYWRvd2VkCitMSU5FIDE6IHBscGdzcWxfc3ZfdmFyMQorICAgICAg ICBeCitERVRBSUw6ICBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hhZG93ZWQgYnkgY29sdW1u cywgcm91dGluZSdzIHZhcmlhYmxlcyBhbmQgcm91dGluZSdzIGFyZ3VtZW50cyB3aXRoIHRoZSBz YW1lIG5hbWUuCitRVUVSWTogIHBscGdzcWxfc3ZfdmFyMQorTk9USUNFOiAgdmFyaWFibGUgaXMg MTAwMAorU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9mZjsKIERS T1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOwogLS0gdGhlIHZhbHVlIHNob3VsZCBub3QgYmUg Y29ycnVwdGVkCiBDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92IHRleHQ7CmRpZmYgLS1naXQg YS9zcmMvcGwvcGxwZ3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwgYi9z cmMvcGwvcGxwZ3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKaW5kZXgg YTNjYzI2NGNmMy4uOWI4ZTkwZTgxZiAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3Nx bC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9z cWwvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbApAQCAtMjYwLDYgKzI2MCwzNSBAQCBCRUdJ TgogRU5EOwogJCQ7CiAKKy0tIGFnYWludCB3aXRoIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0 eV93YXJuaW5nKG9uKQorCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcg VE8gb247CisKK0RPICQkCis8PG15YmxvY2s+PgorREVDTEFSRSBwbHBnc3FsX3N2X3ZhcjEgaW50 OworQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IDEwMDsKKworICAtLSBzaG91bGQgYmUg b2sgd2l0aG91dCB3YXJuaW5nCisgIHBscGdzcWxfc3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHNo b3VsZCBiZSBvayB3aXRob3V0IHdhcm5pbmcKKyAgLS0gcHJpbnQgMTAwOworICBSQUlTRSBOT1RJ Q0UgJ3Nlc3Npb24gdmFyaWFibGUgaXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2X3ZhcjE7CisKKyAg LS0gc2hvdWxkIGJlIG9rIHdpdGhvdXQgd2FybmluZworICAtLSBwcmludCAxMDAwCisgIFJBSVNF IE5PVElDRSAncGxwZ3NxbCB2YXJpYWJsZSBpcyAlJywgbXlibG9jay5wbHBnc3FsX3N2X3ZhcjE7 CisKKyAgLS0gc2hvdWxkIHRvIHByaW50IHBscGdzcWwgdmFyaWFibGUgd2l0aCB3YXJuaW5nCisg IC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9z dl92YXIxOworRU5EOworJCQ7CisKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2Fy bmluZyBUTyBvZmY7CisKIERST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOwogCiAtLSB0aGUg dmFsdWUgc2hvdWxkIG5vdCBiZSBjb3JydXB0ZWQKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggMjc4M2NhYTg0NC4uN2MzNTBhZDVlZiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQK QEAgLTE1MjQsNiArMTUyNCw5IEBAIENSRUFURSBUQUJMRSB2YXJ0ZXN0X2ZvbyhhIGludCwgYiBp bnQpOwogSU5TRVJUIElOVE8gdmFydGVzdF9mb28gVkFMVUVTKDEwLDIwKSwgKDMwLDQwKTsKIENS RUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnRlc3RfZm9vOwogTEVUIHZhcjEgPSAoMTAwLDIwMCk7 CistLSBubyB2YXJpYWJsZSBpcyBzaGFkb3dlZCBoZXJlCistLSBubyB3YXJuaW5nIGV4cGVjdGVk CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb247CiAtLSBzaG91 bGQgdG8gZmFpbAogU0VMRUNUIHZhcjEuKiBGUk9NIHZhcnRlc3RfZm9vOwogRVJST1I6ICBtaXNz aW5nIEZST00tY2xhdXNlIGVudHJ5IGZvciB0YWJsZSAidmFyMSIKQEAgLTE1NDksNiArMTU1Miw3 IEBAIFNFTEVDVCBjb3VudCh2YXIxLiopIEZST00gdmFydGVzdF9mb28gdmFyMTsKICAgICAgMgog KDEgcm93KQogCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2Zm OwogU0VUIFNFQVJDSF9QQVRIIFRPIERFRkFVTFQ7CiBEUk9QIFNDSEVNQSB2YXJ0ZXN0IENBU0NB REU7CiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDIgb3RoZXIgb2JqZWN0cwpAQCAtMTk0Mywz ICsxOTQ3LDI1IEBAIFNFTEVDVCB2YXIxOwogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHZhcjEs IHZhcjI7CistLSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nCitDUkVB VEUgU0NIRU1BIHh4dGFiOworQ1JFQVRFIFZBUklBQkxFIHh4dGFiLmF2YXIgaW50OworQ1JFQVRF IFRBQkxFIHB1YmxpYy54eHRhYihhdmFyIGludCk7CitJTlNFUlQgSU5UTyBwdWJsaWMueHh0YWIg VkFMVUVTKDEpOworTEVUIHh4dGFiLmF2YXIgPSAyMDsKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19h bWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKKy0tLSBzaG91bGQgdG8gcmFpc2Ugd2FybmluZywgc2hv dyAxCitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHB1YmxpYy54eHRhYjsKK1dBUk5JTkc6ICBzZXNz aW9uIHZhcmlhYmxlICJ4eHRhYi5hdmFyIiBpcyBzaGFkb3dlZAorTElORSAxOiBTRUxFQ1QgeHh0 YWIuYXZhciBGUk9NIHB1YmxpYy54eHRhYjsKKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIFNl c3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5lJ3MgdmFy aWFibGVzIGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUgbmFtZS4KKyBhdmFy IAorLS0tLS0tCisgICAgMQorKDEgcm93KQorCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1 aXR5X3dhcm5pbmcgVE8gb2ZmOworRFJPUCBUQUJMRSBwdWJsaWMueHh0YWI7CitEUk9QIFNDSEVN QSB4eHRhYiBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlh YmxlIHh4dGFiLmF2YXIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25f dmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bAppbmRleCBhNjI0YWI4YjY3Li42OGJlNDE1YmYyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv c2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xMDc5LDYgKzEwNzksMTAgQEAgSU5TRVJUIElOVE8g dmFydGVzdF9mb28gVkFMVUVTKDEwLDIwKSwgKDMwLDQwKTsKIENSRUFURSBWQVJJQUJMRSB2YXIx IEFTIHZhcnRlc3RfZm9vOwogTEVUIHZhcjEgPSAoMTAwLDIwMCk7CiAKKy0tIG5vIHZhcmlhYmxl IGlzIHNoYWRvd2VkIGhlcmUKKy0tIG5vIHdhcm5pbmcgZXhwZWN0ZWQKK1NFVCBzZXNzaW9uX3Zh cmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKKwogLS0gc2hvdWxkIHRvIGZhaWwKIFNF TEVDVCB2YXIxLiogRlJPTSB2YXJ0ZXN0X2ZvbzsKIApAQCAtMTA5MSw2ICsxMDk1LDggQEAgU0VM RUNUIGNvdW50KHZhcjEuKikgRlJPTSB2YXJ0ZXN0X2ZvbzsKIC0tIHNob3VsZCBiZSBvawogU0VM RUNUIGNvdW50KHZhcjEuKikgRlJPTSB2YXJ0ZXN0X2ZvbyB2YXIxOwogCitTRVQgc2Vzc2lvbl92 YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOworCiBTRVQgU0VBUkNIX1BBVEggVE8g REVGQVVMVDsKIERST1AgU0NIRU1BIHZhcnRlc3QgQ0FTQ0FERTsKIApAQCAtMTMzNCwzICsxMzQw LDIzIEBAIEJFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOwogU0VMRUNUIHZhcjE7 CiAKIERST1AgVkFSSUFCTEUgdmFyMSwgdmFyMjsKKworLS0gdGVzdCBzZXNzaW9uX3ZhcmlhYmxl c19hbWJpZ3VpdHlfd2FybmluZworQ1JFQVRFIFNDSEVNQSB4eHRhYjsKKworQ1JFQVRFIFZBUklB QkxFIHh4dGFiLmF2YXIgaW50OworCitDUkVBVEUgVEFCTEUgcHVibGljLnh4dGFiKGF2YXIgaW50 KTsKKworSU5TRVJUIElOVE8gcHVibGljLnh4dGFiIFZBTFVFUygxKTsKKworTEVUIHh4dGFiLmF2 YXIgPSAyMDsKKworU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9u OworLS0tIHNob3VsZCB0byByYWlzZSB3YXJuaW5nLCBzaG93IDEKK1NFTEVDVCB4eHRhYi5hdmFy IEZST00gcHVibGljLnh4dGFiOworCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dh cm5pbmcgVE8gb2ZmOworCitEUk9QIFRBQkxFIHB1YmxpYy54eHRhYjsKK0RST1AgU0NIRU1BIHh4 dGFiIENBU0NBREU7Ci0tIAoyLjQ3LjEKCg== --0000000000008953c9062b346e70 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250108-0004-DISCARD-VARIABLES.patch" Content-Disposition: attachment; filename="v20250108-0004-DISCARD-VARIABLES.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5o4agll18 RnJvbSA3YWE2Yjc5YjBkNmI1ZTA4MWUzZWIwN2M1MDBlZDAzNjA0YmY1ZDIxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjA6NTQ6MjAgKzAxMDAKU3ViamVjdDogW1BBVENIIDA0 LzIyXSBESVNDQVJEIFZBUklBQkxFUwoKSW1wbGVtZW50YXRpb24gb2YgRElTQ0FSRCBWQVJJQUJM RVMgY29tbWFuZHMgYnkgcmVtb3ZpbmcgaGFzaCB0YWJsZSB3aXRoIHNlc3Npb24gdmFyaWFibGVz CmFuZCByZXNldHRpbmcgcmVsYXRlZCBtZW1vcnkgY29udGV4dC4KLS0tCiBkb2Mvc3JjL3NnbWwv cmVmL2Rpc2NhcmQuc2dtbCAgICAgICAgICAgICAgICAgfCAxMyArKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kaXNjYXJkLmMgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgMjggKysrKysrKystCiBzcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgIDMgKwogc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oICAgICAgICAgICAgICAgICB8ICAxICsKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dCAgICB8IDYzICsrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDM2ICsrKysrKysrKysrCiAxMSBm aWxlcyBjaGFuZ2VkLCAxNTggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZGlz Y2FyZC5zZ21sCmluZGV4IGJmNDRjNTIzY2EuLjYxYjk2N2Y5YzkgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5z Z21sCkBAIC0yMSw3ICsyMSw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAgPHJlZnN5 bm9wc2lzZGl2PgogPHN5bm9wc2lzPgotRElTQ0FSRCB7IEFMTCB8IFBMQU5TIHwgU0VRVUVOQ0VT IHwgVEVNUE9SQVJZIHwgVEVNUCB9CitESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBTRVFVRU5DRVMg fCBURU1QT1JBUlkgfCBURU1QIHwgVkFSSUFCTEVTIH0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5v cHNpc2Rpdj4KIApAQCAtNjYsNiArNjYsMTYgQEAgRElTQ0FSRCB7IEFMTCB8IFBMQU5TIHwgU0VR VUVOQ0VTIHwgVEVNUE9SQVJZIHwgVEVNUCB9CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlz dGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlZBUklBQkxF UzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFJl c2V0cyB0aGUgdmFsdWUgb2YgYWxsIHNlc3Npb24gdmFyaWFibGVzLiBJZiBhIHZhcmlhYmxlCisg ICAgICBpcyBsYXRlciByZXVzZWQsIGl0IGlzIHJlLWluaXRpYWxpemVkIHRvIDxsaXRlcmFsPk5V TEw8L2xpdGVyYWw+LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxsaXRlcmFsPlRFTVBPUkFS WTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+VEVNUDwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3Rp dGVtPgpAQCAtOTMsNiArMTAzLDcgQEAgU0VMRUNUIHBnX2Fkdmlzb3J5X3VubG9ja19hbGwoKTsK IERJU0NBUkQgUExBTlM7CiBESVNDQVJEIFRFTVA7CiBESVNDQVJEIFNFUVVFTkNFUzsKK0RJU0NB UkQgVkFSSUFCTEVTOwogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAgICAgPC9saXN0aXRlbT4K ICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlz Y2FyZC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jCmluZGV4IDgxMzM5YTc1YTUu LjU5MDRhNmM0OTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Rpc2NhcmQuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJkLmMKQEAgLTE4LDYgKzE4LDcgQEAKICNp bmNsdWRlICJjb21tYW5kcy9hc3luYy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2Rpc2NhcmQuaCIK ICNpbmNsdWRlICJjb21tYW5kcy9wcmVwYXJlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNlLmgiCiAjaW5jbHVkZSAi dXRpbHMvZ3VjLmgiCiAjaW5jbHVkZSAidXRpbHMvcG9ydGFsLmgiCkBAIC00OCw2ICs0OSwxMCBA QCBEaXNjYXJkQ29tbWFuZChEaXNjYXJkU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogCQkJ UmVzZXRUZW1wVGFibGVOYW1lc3BhY2UoKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgRElTQ0FSRF9W QVJJQUJMRVM6CisJCQlSZXNldFNlc3Npb25WYXJpYWJsZXMoKTsKKwkJCWJyZWFrOworCiAJCWRl ZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIERJU0NBUkQgdGFyZ2V0OiAlZCIs IHN0bXQtPnRhcmdldCk7CiAJfQpAQCAtNzUsNCArODAsNSBAQCBEaXNjYXJkQWxsKGJvb2wgaXNU b3BMZXZlbCkKIAlSZXNldFBsYW5DYWNoZSgpOwogCVJlc2V0VGVtcFRhYmxlTmFtZXNwYWNlKCk7 CiAJUmVzZXRTZXF1ZW5jZUNhY2hlcygpOworCVJlc2V0U2Vzc2lvblZhcmlhYmxlcygpOwogfQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDgyNTVmMzYwZDIuLmE2 MjFjYmUzMzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFi bGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTk0 LDcgKzk0LDEzIEBAIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywgaW50IGNh Y2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCiAKIAllbG9nKERFQlVHMSwgInBnX3ZhcmlhYmxlX2Nh Y2hlX2NhbGxiYWNrICV1ICV1IiwgY2FjaGVpZCwgaGFzaHZhbHVlKTsKIAotCUFzc2VydChzZXNz aW9udmFycyk7CisJLyoKKwkgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgb2Ygc2Vzc2lvbiB2YXJp YWJsZXMgYmVpbmcgaW5pdGlhbGl6ZWQsIGV2ZW4gd2hlbgorCSAqIHJlY2VpdmluZyBhbiBpbnZh bGlkYXRpb24gY2FsbGJhY2ssIGFzIERJU0NBUkQgWyBBTEwgfCBWQVJJQUJMRVMgXQorCSAqIGRl c3Ryb3lzIHRoZSBoYXNoIHRhYmxlIGVudGlyZWx5LgorCSAqLworCWlmICghc2Vzc2lvbnZhcnMp CisJCXJldHVybjsKIAogCS8qCiAJICogSWYgdGhlIGhhc2h2YWx1ZSBpcyBub3Qgc3BlY2lmaWVk LCB3ZSBoYXZlIHRvIHJlY2hlY2sgYWxsIGN1cnJlbnRseQpAQCAtNjE5LDMgKzYyNSwyMyBAQCBw Z19zZXNzaW9uX3ZhcmlhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCiAJcmV0dXJuIChEYXR1bSkg MDsKIH0KKworLyoKKyAqIEZhc3QgZHJvcCBvZiB0aGUgY29tcGxldGUgY29udGVudCBvZiB0aGUg c2Vzc2lvbiB2YXJpYWJsZXMgaGFzaCB0YWJsZSwgYW5kCisgKiBjbGVhbnVwIG9mIGFueSBsaXN0 IHRoYXQgd291bGRuJ3QgYmUgcmVsZXZhbnQgYW55bW9yZS4KKyAqIFRoaXMgaXMgdXNlZCBieSB0 aGUgRElTQ0FSRCBWQVJJQUJMRVMgKGFuZCBESVNDQVJEIEFMTCkgY29tbWFuZC4KKyAqLwordm9p ZAorUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpCit7CisJLyogZGVzdHJveSBoYXNoIHRhYmxl IGFuZCByZXNldCByZWxhdGVkIG1lbW9yeSBjb250ZXh0ICovCisJaWYgKHNlc3Npb252YXJzKQor CXsKKwkJaGFzaF9kZXN0cm95KHNlc3Npb252YXJzKTsKKwkJc2Vzc2lvbnZhcnMgPSBOVUxMOwor CX0KKworCS8qIHJlbGVhc2UgbWVtb3J5IGFsbG9jYXRlZCBieSBzZXNzaW9uIHZhcmlhYmxlcyAq LworCWlmIChTVmFyaWFibGVNZW1vcnlDb250ZXh0ICE9IE5VTEwpCisJCU1lbW9yeUNvbnRleHRS ZXNldChTVmFyaWFibGVNZW1vcnlDb250ZXh0KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGE0MTUwZjg5 OWIuLjdlNzE1OGFjMDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjA3Niw3ICsyMDc2LDEzIEBAIERpc2Nh cmRTdG10OgogCQkJCQluLT50YXJnZXQgPSBESVNDQVJEX1NFUVVFTkNFUzsKIAkJCQkJJCQgPSAo Tm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgRElTQ0FSRCBWQVJJQUJMRVMKKwkJCQl7CisJCQkJCURp c2NhcmRTdG10ICpuID0gbWFrZU5vZGUoRGlzY2FyZFN0bXQpOwogCisJCQkJCW4tPnRhcmdldCA9 IERJU0NBUkRfVkFSSUFCTEVTOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQogCQk7CiAK IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90 Y29wL3V0aWxpdHkuYwppbmRleCA3YTUwOGEzNjQ0Li42ZTRkMjMxMGY1IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHku YwpAQCAtMjk2Miw2ICsyOTYyLDkgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUp CiAJCQkJY2FzZSBESVNDQVJEX1NFUVVFTkNFUzoKIAkJCQkJdGFnID0gQ01EVEFHX0RJU0NBUkRf U0VRVUVOQ0VTOwogCQkJCQlicmVhazsKKwkJCQljYXNlIERJU0NBUkRfVkFSSUFCTEVTOgorCQkJ CQl0YWcgPSBDTURUQUdfRElTQ0FSRF9WQVJJQUJMRVM7CisJCQkJCWJyZWFrOwogCQkJCWRlZmF1 bHQ6CiAJCQkJCXRhZyA9IENNRFRBR19VTktOT1dOOwogCQkJfQpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j CmluZGV4IGFjYmY1MWVmMmUuLmQ3OGNlZjM2YWQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAg LTQxMTMsNyArNDExMyw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAog CiAvKiBESVNDQVJEICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiRElTQ0FSRCIpKQotCQlDT01QTEVU RV9XSVRIKCJBTEwiLCAiUExBTlMiLCAiU0VRVUVOQ0VTIiwgIlRFTVAiKTsKKwkJQ09NUExFVEVf V0lUSCgiQUxMIiwgIlBMQU5TIiwgIlNFUVVFTkNFUyIsICJURU1QIiwgIlZBUklBQkxFUyIpOwog CiAvKiBETyAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkRPIikpCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggMjM5MWI5YWQ0NC4uYThjYTQzYzg3YSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNs dWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMjcsNCArMjcsNiBAQCBleHRlcm4g RGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsKTsKIGV4dGVy biB2b2lkIEV4ZWN1dGVMZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCwg UGFyYW1MaXN0SW5mbyBwYXJhbXMsCiAJCQkJCQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVu diwgUXVlcnlDb21wbGV0aW9uICpxYyk7CiAKK2V4dGVybiB2b2lkIFJlc2V0U2Vzc2lvblZhcmlh Ymxlcyh2b2lkKTsKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggYjQxN2I1NmMy YS4uOTMyNDFiZDU1YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o CisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMzk4OCw2ICszOTg4LDcg QEAgdHlwZWRlZiBlbnVtIERpc2NhcmRNb2RlCiAJRElTQ0FSRF9QTEFOUywKIAlESVNDQVJEX1NF UVVFTkNFUywKIAlESVNDQVJEX1RFTVAsCisJRElTQ0FSRF9WQVJJQUJMRVMsCiB9IERpc2NhcmRN b2RlOwogCiB0eXBlZGVmIHN0cnVjdCBEaXNjYXJkU3RtdApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvdGNvcC9jbWR0YWdsaXN0LmggYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRl eCAyMjA4MmMzMDAwLi5iZWYwYWMyNTMzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90Y29wL2Nt ZHRhZ2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaApAQCAtMTM1LDYg KzEzNSw3IEBAIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FSRF9BTEwsICJESVNDQVJEIEFMTCIsIGZh bHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RJU0NBUkRfUExBTlMsICJESVND QVJEIFBMQU5TIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FS RF9TRVFVRU5DRVMsICJESVNDQVJEIFNFUVVFTkNFUyIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQ R19DTURUQUcoQ01EVEFHX0RJU0NBUkRfVEVNUCwgIkRJU0NBUkQgVEVNUCIsIGZhbHNlLCBmYWxz ZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0RJU0NBUkRfVkFSSUFCTEVTLCAiRElTQ0FSRCBW QVJJQUJMRVMiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ETywgIkRP IiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9BQ0NFU1NfTUVU SE9ELCAiRFJPUCBBQ0NFU1MgTUVUSE9EIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFH KENNRFRBR19EUk9QX0FHR1JFR0FURSwgIkRST1AgQUdHUkVHQVRFIiwgdHJ1ZSwgZmFsc2UsIGZh bHNlKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dAppbmRleCBmMjI0NjcxODZlLi43OWFjNDA3NjhmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTY2MywzICsxNjYzLDY2IEBAIERS T1AgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi5iOwogRFJPUCBWQVJJQUJMRSA6IkRCTkFN RSIuOiJEQk5BTUUiLjoiREJOQU1FIjsKIERST1AgU0NIRU1BIDoiREJOQU1FIjsKIFJFU0VUIHNl YXJjaF9wYXRoOworLS0gbWVtb3J5IGNsZWFuaW5nIGJ5IERJU0NBUkQgY29tbWFuZAorQ1JFQVRF IFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhcjsKK0xFVCB2YXIxID0gJ0hlbGxvJzsKK1NFTEVDVCB2 YXIxOworIHZhcjEgIAorLS0tLS0tLQorIEhlbGxvCisoMSByb3cpCisKK0RJU0NBUkQgQUxMOwor U0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorIAorKDEgcm93KQorCitMRVQgdmFyMSA9ICdB SE9KJzsKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyBBSE9KCisoMSByb3cpCisKK0RJ U0NBUkQgVkFSSUFCTEVTOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorIAorKDEgcm93 KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBpbml0aWFsIHRlc3Qgb2YgZGVidWcgcGdfc2Vz c2lvbl92YXJpYWJsZXMgZnVuY3Rpb24KKy0tIHNob3VsZCBiZSB6ZXJvIG5vdworRElTQ0FSRCBW QVJJQUJMRVM7CitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwor IGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIHZhcmNoYXI7CistLSBzaG91bGQgYmUgemVybyBzdGlsbAorU0VMRUNUIGNvdW50KCopIEZS T00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEg cm93KQorCitMRVQgdmFyMSA9ICdBSE9KJzsKK1NFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5fc2Vs ZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBuYW1lIHwgICAg ICB0eXBuYW1lICAgICAgfCBjYW5fc2VsZWN0IHwgY2FuX3VwZGF0ZSAKKy0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2YXIxIHwgY2hhcmFjdGVy IHZhcnlpbmcgfCB0ICAgICAgICAgIHwgdAorKDEgcm93KQorCitESVNDQVJEIFZBUklBQkxFUzsK Ky0tIHNob3VsZCBiZSB6ZXJvIGFnYWluCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9u X3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCBlNzIzNjBkNTI1Li4y OTU0NzU5YWFlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zhcmlh Ymxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3Fs CkBAIC0xMTc4LDMgKzExNzgsMzkgQEAgRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUi LjoiREJOQU1FIjsKIERST1AgU0NIRU1BIDoiREJOQU1FIjsKIAogUkVTRVQgc2VhcmNoX3BhdGg7 CisKKy0tIG1lbW9yeSBjbGVhbmluZyBieSBESVNDQVJEIGNvbW1hbmQKK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIHZhcmNoYXI7CitMRVQgdmFyMSA9ICdIZWxsbyc7CitTRUxFQ1QgdmFyMTsKKwor RElTQ0FSRCBBTEw7CitTRUxFQ1QgdmFyMTsKKworTEVUIHZhcjEgPSAnQUhPSic7CitTRUxFQ1Qg dmFyMTsKKworRElTQ0FSRCBWQVJJQUJMRVM7CitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJM RSB2YXIxOworCistLSBpbml0aWFsIHRlc3Qgb2YgZGVidWcgcGdfc2Vzc2lvbl92YXJpYWJsZXMg ZnVuY3Rpb24KKy0tIHNob3VsZCBiZSB6ZXJvIG5vdworRElTQ0FSRCBWQVJJQUJMRVM7CisKK1NF TEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKK0NSRUFURSBWQVJJ QUJMRSB2YXIxIEFTIHZhcmNoYXI7CisKKy0tIHNob3VsZCBiZSB6ZXJvIHN0aWxsCitTRUxFQ1Qg Y291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitMRVQgdmFyMSA9ICdBSE9K JzsKKworU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxk IGJlIHplcm8gYWdhaW4KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVz KCk7Ci0tIAoyLjQ3LjEKCg== --0000000000008953c9062b346e70 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250108-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Disposition: attachment; filename="v20250108-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5o4aglu19 RnJvbSBhZWFjOTM4MzJiZmQ3ZTJhNjM5MzUzMzk2ZDk2MDVkMTNkODAwYjRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMjA6MDE6NTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDAz LzIyXSBmdW5jdGlvbiBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmb3IgY2xlYW5pbmcgdGVzdHMKClRo aXMgaXMgYSBmdW5jdGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQg cmV0dXJucyB0aGUKY29udGVudCBvZiBzZXNzaW9udmFycyBhcy1pcywgYW5kIGNhbiB0aGVyZWZv cmUgZGlzcGxheSBlbnRyaWVzIGFib3V0CnNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9w cGVkIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndApwcm9jZXNzIHRoZSBzaGFyZWQg aW52YWxpZGF0aW9ucyB5ZXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICAgIHwgIDggKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEwMCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDI0 NTZhMzQ1MmIuLjgyNTVmMzYwZDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKQEAgLTUyNywzICs1MjcsOTUgQEAgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLAogCiAJUG9wQWN0aXZlU25hcHNob3QoKTsKIH0KKworLyoKKyAqIHBnX3Nlc3Npb25fdmFy aWFibGVzIC0gZGVzaWduZWQgZm9yIHRlc3RpbmcKKyAqCisgKiBUaGlzIGlzIGEgZnVuY3Rpb24g ZGVzaWduZWQgZm9yIHRlc3RpbmcgYW5kIGRlYnVnZ2luZy4gIEl0IHJldHVybnMgdGhlCisgKiBj b250ZW50IG9mIHNlc3Npb24gdmFyaWFibGVzIGFzLWlzLCBhbmQgY2FuIHRoZXJlZm9yZSBkaXNw bGF5IGRhdGEgYWJvdXQKKyAqIHNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9wcGVkLCBi dXQgZm9yIHdoaWNoIHRoaXMgYmFja2VuZCBkaWRuJ3QKKyAqIHByb2Nlc3MgdGhlIHNoYXJlZCBp bnZhbGlkYXRpb25zIHlldC4KKyAqLworRGF0dW0KK3BnX3Nlc3Npb25fdmFyaWFibGVzKFBHX0ZV TkNUSU9OX0FSR1MpCit7CisjZGVmaW5lIE5VTV9QR19TRVNTSU9OX1ZBUklBQkxFU19BVFRTIDgK KworCUluaXRNYXRlcmlhbGl6ZWRTUkYoZmNpbmZvLCAwKTsKKworCWlmIChzZXNzaW9udmFycykK Kwl7CisJCVJldHVyblNldEluZm8gKnJzaW5mbyA9IChSZXR1cm5TZXRJbmZvICopIGZjaW5mby0+ cmVzdWx0aW5mbzsKKwkJSEFTSF9TRVFfU1RBVFVTIHN0YXR1czsKKwkJU1ZhcmlhYmxlCXN2YXI7 CisKKwkJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFycyk7CisKKwkJd2hpbGUgKChz dmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBOVUxMKQorCQl7 CisJCQlEYXR1bQkJdmFsdWVzW05VTV9QR19TRVNTSU9OX1ZBUklBQkxFU19BVFRTXTsKKwkJCWJv b2wJCW51bGxzW05VTV9QR19TRVNTSU9OX1ZBUklBQkxFU19BVFRTXTsKKwkJCUhlYXBUdXBsZQl0 cDsKKwkJCWJvb2wJCXZhcl9pc192YWxpZCA9IGZhbHNlOworCisJCQltZW1zZXQodmFsdWVzLCAw LCBzaXplb2YodmFsdWVzKSk7CisJCQltZW1zZXQobnVsbHMsIDAsIHNpemVvZihudWxscykpOwor CisJCQl2YWx1ZXNbMF0gPSBPYmplY3RJZEdldERhdHVtKHN2YXItPnZhcmlkKTsKKwkJCXZhbHVl c1szXSA9IE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dHlwaWQpOworCisJCQkvKgorCQkJICogSXQg aXMgcG9zc2libGUgdGhhdCB0aGUgdmFyaWFibGUgaGFzIGJlZW4gZHJvcHBlZCBmcm9tIHRoZQor CQkJICogY2F0YWxvZywgYnV0IG5vdCB5ZXQgcHVyZ2VkIGZyb20gdGhlIGhhc2ggdGFibGUuCisJ CQkgKi8KKwkJCXRwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERh dHVtKHN2YXItPnZhcmlkKSk7CisKKwkJCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwkJCXsK KwkJCQlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RS VUNUKHRwKTsKKworCQkJCS8qCisJCQkJICogSXQgaXMgYWxzbyBwb3NzaWJsZSB0aGF0IGEgdmFy aWFibGUgaGFzIGJlZW4gZHJvcHBlZCBhbmQKKwkJCQkgKiBzb21lb25lIGNyZWF0ZWQgYSBuZXcg dmFyaWFibGUgd2l0aCB0aGUgc2FtZSBvYmplY3QgSUQuICBVc2UKKwkJCQkgKiB0aGUgY2F0YWxv ZyBpbmZvcm1hdGlvbiBvbmx5IGlmIHRoYXQgaXMgbm90IHRoZSBjYXNlLgorCQkJCSAqLworCQkJ CWlmIChzdmFyLT5jcmVhdGVfbHNuID09IHZhcmZvcm0tPnZhcmNyZWF0ZV9sc24pCisJCQkJewor CQkJCQl2YWx1ZXNbMV0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKAorCQkJCQkJCQkJCQkJCWdldF9u YW1lc3BhY2VfbmFtZSh2YXJmb3JtLT52YXJuYW1lc3BhY2UpKTsKKworCQkJCQl2YWx1ZXNbMl0g PSBDU3RyaW5nR2V0VGV4dERhdHVtKE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSkpOworCQkJCQl2 YWx1ZXNbNF0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKGZvcm1hdF90eXBlX2JlKHN2YXItPnR5cGlk KSk7CisJCQkJCXZhbHVlc1s1XSA9IEJvb2xHZXREYXR1bShmYWxzZSk7CisKKwkJCQkJdmFsdWVz WzZdID0gQm9vbEdldERhdHVtKAorCQkJCQkJCQkJCQkgb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxl UmVsYXRpb25JZCwgc3Zhci0+dmFyaWQsCisJCQkJCQkJCQkJCQkJCQkgR2V0VXNlcklkKCksIEFD TF9TRUxFQ1QpID09IEFDTENIRUNLX09LKTsKKworCQkJCQl2YWx1ZXNbN10gPSBCb29sR2V0RGF0 dW0oCisJCQkJCQkJCQkJCSBvYmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCBzdmFy LT52YXJpZCwKKwkJCQkJCQkJCQkJCQkJCSBHZXRVc2VySWQoKSwgQUNMX1VQREFURSkgPT0gQUNM Q0hFQ0tfT0spOworCisJCQkJCXZhcl9pc192YWxpZCA9IHRydWU7CisJCQkJfQorCisJCQkJUmVs ZWFzZVN5c0NhY2hlKHRwKTsKKwkJCX0KKworCQkJLyogaWYgdGhlcmUgaXMgbm8gbWF0Y2hpbmcg Y2F0YWxvZyBlbnRyeSwgcmV0dXJuIG51bGwgdmFsdWVzICovCisJCQlpZiAoIXZhcl9pc192YWxp ZCkKKwkJCXsKKwkJCQludWxsc1sxXSA9IHRydWU7CisJCQkJbnVsbHNbMl0gPSB0cnVlOworCQkJ CW51bGxzWzRdID0gdHJ1ZTsKKwkJCQl2YWx1ZXNbNV0gPSBCb29sR2V0RGF0dW0odHJ1ZSk7CisJ CQkJbnVsbHNbNl0gPSB0cnVlOworCQkJCW51bGxzWzddID0gdHJ1ZTsKKwkJCX0KKworCQkJdHVw bGVzdG9yZV9wdXR2YWx1ZXMocnNpbmZvLT5zZXRSZXN1bHQsIHJzaW5mby0+c2V0RGVzYywgdmFs dWVzLCBudWxscyk7CisJCX0KKwl9CisKKwlyZXR1cm4gKERhdHVtKSAwOworfQpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKaW5kZXggNzBmNDFmMThlMi4uYjNhZTRkNmFhZCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuZGF0CkBAIC0xMjQ1Miw0ICsxMjQ1MiwxMiBAQAogICBwcm9hcmd0eXBlcyA9PiAnaW50 MicsCiAgIHByb3NyYyA9PiAnZ2lzdF9zdHJhdG51bV9pZGVudGl0eScgfSwKIAorIyBTZXNzaW9u IHZhcmlhYmxlcyBzdXBwb3J0Cit7IG9pZCA9PiAnODQ4OCcsIGRlc2NyID0+ICdsaXN0IG9mIHVz ZWQgc2Vzc2lvbiB2YXJpYWJsZXMnLAorICBwcm9uYW1lID0+ICdwZ19zZXNzaW9uX3ZhcmlhYmxl cycsIHByb3Jvd3MgPT4gJzEwMDAnLCBwcm9yZXRzZXQgPT4gJ3QnLAorICBwcm92b2xhdGlsZSA9 PiAncycsIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAncmVjb3JkJywKKyAgcHJv YXJndHlwZXMgPT4gJycsIHByb2FsbGFyZ3R5cGVzID0+ICd7b2lkLHRleHQsdGV4dCxvaWQsdGV4 dCxib29sLGJvb2wsYm9vbH0nLAorICBwcm9hcmdtb2RlcyA9PiAne28sbyxvLG8sbyxvLG8sb30n LAorICBwcm9hcmduYW1lcyA9PiAne3ZhcmlkLHNjaGVtYSxuYW1lLHR5cGlkLHR5cG5hbWUscmVt b3ZlZCxjYW5fc2VsZWN0LGNhbl91cGRhdGV9JywKKyAgcHJvc3JjID0+ICdwZ19zZXNzaW9uX3Zh cmlhYmxlcycgfSwKIF0KLS0gCjIuNDcuMQoK --0000000000008953c9062b346e70 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250108-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20250108-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5o4agld17 RnJvbSA3YTFlMmYyNzI4M2ZmMDIzMTc3YzI2MDIzYmI3MDNmMTdhMTMxNTcwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAwOTozMToyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDUvMjJdIG1lbW9yeSBjbGVhbmluZyBhZnRlciBEUk9QIFZBUklBQkxFCgpBY2NlcHRpbmcgYSBz aW52YWwgbWVzc2FnZSBpbnZhbGlkYXRlcyBlbnRyaWVzIGluIHRoZSAic2Vzc2lvbnZhcnMiIGhh c2ggdGFibGUuClRoZXNlIGVudHJpZXMgYXJlIHZhbGlkYXRlZCBiZWZvcmUgYW55IHJlYWQgb3Ig d3JpdGUgb3BlcmF0aW9ucyBvbiBzZXNzaW9uIHZhcmlhYmxlcy4KV2hlbiB0aGUgZW50cnkgY2Fu bm90IGJlIHZhbGlkYXRlZCwgaXQgaXMgcmVtb3ZlZC4gIFJlbW92YWwgd2lsbCBiZSBkZWxheWVk IHdoZW4KdGhlIHZhcmlhYmxlIHdhcyBkcm9wcGVkIGJ5IHRoZSBjdXJyZW50IHRyYW5zYWN0aW9u LCB3aGljaCBjb3VsZCBzdGlsbCBiZSByb2xsZWQgYmFjay4KLS0tCiBzcmMvYmFja2VuZC9jYXRh bG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDE1MyArKysrKysrKysrKy0KIHNyYy9pbmNs dWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgMiArCiAuLi4vaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0ICAgfCAxMTAgKysrKysrKysrCiBzcmMv dGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlICAgICAgICAgfCAgIDEgKwogLi4uL2lz b2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgICAgIHwgIDUwICsrKysKIC4uLi9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDIxNyArKysrKysrKysr KysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8 IDEyMCArKysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDY1NSBpbnNlcnRpb25zKCspLCA1IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3Rl ZC9zZXNzaW9uLXZhcmlhYmxlLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xh dGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxl LmMKaW5kZXggYmI0NDVlOTQzNC4uZDY3MmQyYTljYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFi bGUuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2lu Y2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAjaW5j bHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKQEAgLTIzMCw3ICsyMzEsOCBAQCBDcmVhdGVWYXJpYWJs ZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogfQogCiAv KgotICogRHJvcCB2YXJpYWJsZSBieSBPSUQKKyAqIERyb3AgdmFyaWFibGUgYnkgT0lELCBhbmQg cmVnaXN0ZXIgdGhlIG5lZWRlZCBzZXNzaW9uIHZhcmlhYmxlCisgKiBjbGVhbnVwLgogICovCiB2 b2lkCiBEcm9wVmFyaWFibGVCeUlkKE9pZCB2YXJpZCkKQEAgLTI1MCw0ICsyNTIsNyBAQCBEcm9w VmFyaWFibGVCeUlkKE9pZCB2YXJpZCkKIAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKIAogCXRhYmxl X2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwkvKiBkbyB0aGUgbmVjZXNzYXJ5IGNs ZWFudXAgaW4gbG9jYWwgbWVtb3J5LCBpZiBuZWVkZWQgKi8KKwlTZXNzaW9uVmFyaWFibGVEcm9w UG9zdHByb2Nlc3ModmFyaWQpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5jCmluZGV4IGE2MjFjYmUzMzIuLjRhMjllZDZlMGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTE0LDYgKzE0LDcgQEAKICAqLwogI2luY2x1ZGUgInBvc3Rn cmVzLmgiCiAKKyNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf dmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5j bHVkZSAiZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKQEAgLTY3LDYgKzY4LDE0IEBAIHR5 cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKIAl2b2lkCSAgICpkb21haW5fY2hlY2tfZXh0cmE7 CiAJTG9jYWxUcmFuc2FjdGlvbklkIGRvbWFpbl9jaGVja19leHRyYV9seGlkOwogCisJLyoKKwkg KiBUb3AgbGV2ZWwgbG9jYWwgdHJhbnNhY3Rpb24gaWQgb2YgdGhlIGxhc3QgdHJhbnNhY3Rpb24g dGhhdCBkcm9wcGVkIHRoZQorCSAqIHZhcmlhYmxlLCBpZiBhbnkuICBXZSBuZWVkIHRoaXMgaW5m b3JtYXRpb24gdG8gYXZvaWQgZnJlZWluZyBtZW1vcnkgZm9yCisJICogdmFyaWFibGVzIGRyb3Bw ZWQgYnkgdGhlIGxvY2FsIGJhY2tlbmQsIGluIGNhc2UgdGhlIG9wZXJhdGlvbiBpcyByb2xsZWQK KwkgKiBiYWNrLgorCSAqLworCUxvY2FsVHJhbnNhY3Rpb25JZCBkcm9wX2x4aWQ7CisKIAkvKgog CSAqIFN0b3JlZCB2YWx1ZSBhbmQgdHlwZSBkZXNjcmlwdGlvbiBjYW4gYmUgb3V0ZGF0ZWQgd2hl biB3ZSByZWNlaXZlIGEKIAkgKiBzaW52YWwgbWVzc2FnZS4gIFdlIHRoZW4gaGF2ZSB0byBjaGVj ayBpZiB0aGUgc3RvcmVkIGRhdGEgYXJlIHN0aWxsCkBAIC04Myw2ICs5MiwxNyBAQCBzdGF0aWMg SFRBQiAqc2Vzc2lvbnZhcnMgPSBOVUxMOwkvKiBoYXNoIHRhYmxlIGZvciBzZXNzaW9uIHZhcmlh YmxlcyAqLwogCiBzdGF0aWMgTWVtb3J5Q29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250ZXh0ID0g TlVMTDsKIAorLyogYmVjb21lcyB0cnVlIHdoZW4gd2UgcmVjZWl2ZSBhIHNpbnZhbCBtZXNzYWdl ICovCitzdGF0aWMgYm9vbCBuZWVkc192YWxpZGF0aW9uID0gZmFsc2U7CisKKy8qCisgKiBUaGUg Y29udGVudCBvZiBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdCByZW1vdmVkIGltbWVk aWF0ZWx5LiAgV2UgZG8KKyAqIHRoYXQgaW4gdGhlIG5leHQgdHJhbnNhY3Rpb24gdGhhdCByZWFk cyBvciB3cml0ZXMgYSBzZXNzaW9uIHZhcmlhYmxlLgorICogInZhbGlkYXRlZF9seGlkIiBzdG9y ZXMgdGhlIHRyYW5zYWN0aW9uIHRoYXQgcGVyZm9ybWVkIHNhaWQgdmFsaWRhdGlvbiwgc28KKyAq IHRoYXQgd2UgY2FuIGF2b2lkIHJlcGVhdGluZyB0aGUgZWZmb3J0LgorICovCitzdGF0aWMgTG9j YWxUcmFuc2FjdGlvbklkIHZhbGlkYXRlZF9seGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25J ZDsKKwogLyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBzZXNzaW9uIHZhcmlhYmxlIGludmFs aWRhdGlvbi4KICAqLwpAQCAtMTE0LDYgKzEzNCwzOCBAQCBwZ192YXJpYWJsZV9jYWNoZV9jYWxs YmFjayhEYXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50MzIgaGFzaHZhbHVlKQogCQlpZiAoaGFz aHZhbHVlID09IDAgfHwgc3Zhci0+aGFzaHZhbHVlID09IGhhc2h2YWx1ZSkKIAkJewogCQkJc3Zh ci0+aXNfdmFsaWQgPSBmYWxzZTsKKwkJCW5lZWRzX3ZhbGlkYXRpb24gPSB0cnVlOworCQl9CisJ fQorfQorCisvKgorICogSGFuZGxlIHRoZSBsb2NhbCBtZW1vcnkgY2xlYW51cCBmb3IgYSBEUk9Q IFZBUklBQkxFIGNvbW1hbmQuCisgKgorICogQ2FsbGVyIHNob3VsZCB0YWtlIGNhcmUgb2YgcmVt b3ZpbmcgdGhlIHBnX3ZhcmlhYmxlIGVudHJ5IGZpcnN0LgorICovCit2b2lkCitTZXNzaW9uVmFy aWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZhcmlkKQoreworCUFzc2VydChMb2NhbFRyYW5zYWN0 aW9uSWRJc1ZhbGlkKE15UHJvYy0+dnhpZC5seGlkKSk7CisKKwlpZiAoc2Vzc2lvbnZhcnMpCisJ eworCQlib29sCQlmb3VuZDsKKwkJU1ZhcmlhYmxlCXN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3Nl YXJjaChzZXNzaW9udmFycywgJnZhcmlkLAorCQkJCQkJCQkJCQkJICAgSEFTSF9GSU5ELCAmZm91 bmQpOworCisJCWlmIChmb3VuZCkKKwkJeworCQkJLyoKKwkJCSAqIFNhdmUgdGhlIGN1cnJlbnQg dG9wIGxldmVsIGxvY2FsIHRyYW5zYWN0aW9uIGlkIHRvIG1ha2Ugc3VyZSB3ZQorCQkJICogd29u J3QgYXV0b21hdGljYWxseSByZW1vdmUgdGhlIGxvY2FsIHZhcmlhYmxlIHN0b3JhZ2UgaW4KKwkJ CSAqIHZhbGlkYXRlX2FsbF9zZXNzaW9uX3ZhcmlhYmxlcygpIHdoZW4gdGhlIGludmFsaWRhdGlv biBtZXNzYWdlCisJCQkgKiBmcm9tIERST1AgVkFSSUFCTEUgYXJyaXZlcy4gIEFmdGVyIGFsbCwg dGhlIHRyYW5zYWN0aW9uIGNvdWxkCisJCQkgKiBzdGlsbCBiZSByb2xsZWQgYmFjay4KKwkJCSAq LworCQkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKKwkJCXN2YXItPmRyb3BfbHhpZCA9IE15UHJv Yy0+dnhpZC5seGlkOwogCQl9CiAJfQogfQpAQCAtMTY3LDYgKzIxOSw2NyBAQCBpc19zZXNzaW9u X3ZhcmlhYmxlX3ZhbGlkKFNWYXJpYWJsZSBzdmFyKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8q CisgKiBDaGVjayBhbGwgcG90ZW50aWFsbHkgaW52YWxpZCBzZXNzaW9uIHZhcmlhYmxlIGRhdGEg aW4gbG9jYWwgbWVtb3J5IGFuZCBmcmVlCisgKiB0aGUgbWVtb3J5IGZvciBhbGwgaW52YWxpZCBv bmVzLiAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYmVmb3JlIGFueSByZWFkIG9yCisgKiB3cml0 ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUuICBGcmVlaW5nIG9mIGEgdmFyaWFibGUncyBtZW1vcnkg aXMgcG9zdHBvbmVkIGlmCisgKiB0aGUgdmFyaWFibGUgaGFzIGJlZW4gZHJvcHBlZCBieSB0aGUg Y3VycmVudCB0cmFuc2FjdGlvbiwgc2luY2UgdGhhdAorICogb3BlcmF0aW9uIGNvdWxkIHN0aWxs IGJlIHJvbGxlZCBiYWNrLgorICoKKyAqIEl0IGlzIHBvc3NpYmxlIHRoYXQgd2UgcmVjZWl2ZSBh IGNhY2hlIGludmFsaWRhdGlvbiBtZXNzYWdlIHdoaWxlCisgKiByZW1vdmVfaW52YWxpZF9zZXNz aW9uX3ZhcmlhYmxlcygpIGlzIGV4ZWN1dGluZywgc28gd2UgY2Fubm90IGd1YXJhbnRlZSB0aGF0 CisgKiBhbGwgZW50cmllcyBpbiAic2Vzc2lvbnZhcnMiIHdpbGwgYmUgc2V0IHRvICJpc192YWxp ZCIgYWZ0ZXIgdGhlIGZ1bmN0aW9uIGlzCisgKiBkb25lLiAgSG93ZXZlciwgd2UgY2FuIGd1YXJh bnRlZSB0aGF0IGFsbCBlbnRyaWVzIGdldCBjaGVja2VkIG9uY2UuCisgKi8KK3N0YXRpYyB2b2lk CityZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyh2b2lkKQoreworCUhBU0hfU0VRX1NU QVRVUyBzdGF0dXM7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwkvKgorCSAqIFRoZSB2YWxpZGF0aW9u IHJlcXVpcmVzIHN5c3RlbSBjYXRhbG9nIGFjY2Vzcywgc28gdGhlIHNlc3Npb24gc3RhdGUKKwkg KiBzaG91bGQgYmUgImluIHRyYW5zYWN0aW9uIi4KKwkgKi8KKwlBc3NlcnQoSXNUcmFuc2FjdGlv blN0YXRlKCkpOworCisJaWYgKCFuZWVkc192YWxpZGF0aW9uIHx8ICFzZXNzaW9udmFycykKKwkJ cmV0dXJuOworCisJLyoKKwkgKiBSZXNldCB0aGUgZmxhZyBiZWZvcmUgd2Ugc3RhcnQgdGhlIHZh bGlkYXRpb24uICBJdCBjYW4gYmUgc2V0IGFnYWluCisJICogYnkgY29uY3VycmVudGx5IGluY29t aW5nIHNpbnZhbCBtZXNzYWdlcy4KKwkgKi8KKwluZWVkc192YWxpZGF0aW9uID0gZmFsc2U7CisK KwllbG9nKERFQlVHMSwgImVmZmVjdGl2ZSBjYWxsIG9mIHZhbGlkYXRlX2FsbF9zZXNzaW9uX3Zh cmlhYmxlcygpIik7CisKKwloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJzKTsKKwl3 aGlsZSAoKHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1cykpICE9IE5V TEwpCisJeworCQlpZiAoIXN2YXItPmlzX3ZhbGlkKQorCQl7CisJCQlpZiAoc3Zhci0+ZHJvcF9s eGlkID09IE15UHJvYy0+dnhpZC5seGlkKQorCQkJeworCQkJCS8qIHRyeSBhZ2FpbiBpbiB0aGUg bmV4dCB0cmFuc2FjdGlvbiAqLworCQkJCW5lZWRzX3ZhbGlkYXRpb24gPSB0cnVlOworCQkJCWNv bnRpbnVlOworCQkJfQorCisJCQlpZiAoIWlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoc3Zhcikp CisJCQl7CisJCQkJT2lkCQkJdmFyaWQgPSBzdmFyLT52YXJpZDsKKworCQkJCWZyZWVfc2Vzc2lv bl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKwkJCQloYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZh cmlkLCBIQVNIX1JFTU9WRSwgTlVMTCk7CisJCQkJc3ZhciA9IE5VTEw7CisJCQl9CisJCQllbHNl CisJCQkJc3Zhci0+aXNfdmFsaWQgPSB0cnVlOworCQl9CisJfQorfQorCiAvKgogICogSW5pdGlh bGl6ZSBhdHRyaWJ1dGVzIGNhY2hlZCBpbiAic3ZhciIKICAqLwpAQCAtMTk2LDYgKzMwOSw4IEBA IHNldHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCkKIAlzdmFy LT5kb21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOwogCXN2YXItPmRvbWFpbl9jaGVja19leHRyYV9s eGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKIAorCXN2YXItPmRyb3BfbHhpZCA9IElu dmFsaWRUcmFuc2FjdGlvbklkOworCiAJc3Zhci0+aXNudWxsID0gdHJ1ZTsKIAlzdmFyLT52YWx1 ZSA9IChEYXR1bSkgMDsKIApAQCAtMzE5LDIyICs0MzQsNDIgQEAgZ2V0X3Nlc3Npb25fdmFyaWFi bGUoT2lkIHZhcmlkKQogCWlmICghc2Vzc2lvbnZhcnMpCiAJCWNyZWF0ZV9zZXNzaW9udmFyc19o YXNodGFibGVzKCk7CiAKKwlpZiAodmFsaWRhdGVkX2x4aWQgPT0gSW52YWxpZExvY2FsVHJhbnNh Y3Rpb25JZCB8fAorCQl2YWxpZGF0ZWRfbHhpZCAhPSBNeVByb2MtPnZ4aWQubHhpZCkKKwl7CisJ CS8qIGZyZWUgdGhlIG1lbW9yeSBmcm9tIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwkJ cmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworCQkvKiBkb24ndCByZXBlYXQg dGhlIGFib3ZlIHN0ZXAgaW4gdGhlIHNhbWUgdHJhbnNhY3Rpb24gKi8KKwkJdmFsaWRhdGVkX2x4 aWQgPSBNeVByb2MtPnZ4aWQubHhpZDsKKwl9CisKIAlzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9z ZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwKIAkJCQkJCQkJICAgSEFTSF9FTlRFUiwgJmZvdW5k KTsKIAogCWlmIChmb3VuZCkKIAl7CisJCS8qCisJCSAqIFRoZSBzZXNzaW9uIHZhcmlhYmxlIGNv dWxkIGhhdmUgYmVlbiBkcm9wcGVkIGJ5IGEgRFJPUCBWQVJJQUJMRQorCQkgKiBzdGF0ZW1lbnQg aW4gYSBzdWJ0cmFuc2FjdGlvbiB0aGF0IHdhcyBsYXRlciByb2xsZWQgYmFjaywgd2hpY2gKKwkJ ICogbWVhbnMgdGhhdCB3ZSBtYXkgaGF2ZSB0byB3b3JrIHdpdGggdGhlIGRhdGEgb2YgYSB2YXJp YWJsZSBtYXJrZWQKKwkJICogYXMgaW52YWxpZC4KKwkJICovCiAJCWlmICghc3Zhci0+aXNfdmFs aWQpCiAJCXsKIAkJCS8qCi0JCQkgKiBJZiB0aGVyZSB3YXMgYW4gaW52YWxpZGF0aW9uIG1lc3Nh Z2UsIHRoZSB2YXJpYWJsZSBtaWdodCBzdGlsbCBiZQotCQkJICogdmFsaWQsIGJ1dCB3ZSBoYXZl IHRvIGNoZWNrIHdpdGggdGhlIHN5c3RlbSBjYXRhbG9nLgorCQkJICogV2UgaGF2ZSB0byBjaGVj ayB0aGUgc3lzdGVtIGNhdGFsb2cgdG8gc2VlIGlmIHRoZSB2YXJpYWJsZSBpcworCQkJICogc3Rp bGwgdmFsaWQsIGV2ZW4gaWYgYW4gaW52YWxpZGF0aW9uIG1lc3NhZ2Ugc2V0IGl0IHRvIGludmFs aWQuCisJCQkgKgorCQkJICogVGhlIHZhcmlhYmxlIG11c3QgYmUgdmFsaWRhdGVkIGJlZm9yZSBp dCBpcyBhY2Nlc3NlZC4gIFRoZSBvaWQKKwkJCSAqIHNob3VsZCBiZSB2YWxpZCwgYmVjYXVzZSB0 aGUgcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlIGlzIGFscmVhZHkKKwkJCSAqIGxvY2tlZCwgYW5k IHJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKCkgd291bGQgcmVtb3ZlCisJCQkgKiB2 YXJpYWJsZXMgZHJvcHBlZCBieSBvdGhlciB0cmFuc2FjdGlvbnMuCiAJCQkgKi8KIAkJCWlmIChp c19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKHN2YXIpKQogCQkJCXN2YXItPmlzX3ZhbGlkID0gdHJ1 ZTsKIAkJCWVsc2UKLQkJCQkvKiBpZiB0aGUgdmFsdWUgY2Fubm90IGJlIHZhbGlkYXRlZCwgd2Ug aGF2ZSB0byBkaXNjYXJkIGl0ICovCi0JCQkJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2 YXIpOworCQkJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIHN0YXRlIG9mIHNlc3Npb24gdmFyaWFi bGUgJXUiLCB2YXJpZCk7CiAJCX0KIAl9CiAJZWxzZQpAQCAtMzk1LDYgKzUzMCwxNiBAQCBTZXRT ZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpCiAJaWYg KCFzZXNzaW9udmFycykKIAkJY3JlYXRlX3Nlc3Npb252YXJzX2hhc2h0YWJsZXMoKTsKIAorCWlm ICh2YWxpZGF0ZWRfbHhpZCA9PSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkIHx8CisJCXZhbGlk YXRlZF9seGlkICE9IE15UHJvYy0+dnhpZC5seGlkKQorCXsKKwkJLyogZnJlZSB0aGUgbWVtb3J5 IGZyb20gZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLworCQlyZW1vdmVfaW52YWxpZF9zZXNz aW9uX3ZhcmlhYmxlcygpOworCisJCS8qIGRvbid0IHJlcGVhdCB0aGUgYWJvdmUgc3RlcCBpbiB0 aGUgc2FtZSB0cmFuc2FjdGlvbiAqLworCQl2YWxpZGF0ZWRfbHhpZCA9IE15UHJvYy0+dnhpZC5s eGlkOworCX0KKwogCXN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywg JnZhcmlkLAogCQkJCQkJCQkgICBIQVNIX0VOVEVSLCAmZm91bmQpOwogCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggYThjYTQzYzg3YS4uZDNjYzc5YjU2MCAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3Ny Yy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMjEsNiArMjEsOCBAQAog I2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCiAjaW5jbHVkZSAidXRpbHMvcXVlcnllbnZpcm9ubWVu dC5oIgogCitleHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZh cmlkKTsKKwogZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0g dmFsdWUsIGJvb2wgaXNOdWxsKTsKIGV4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFyaWFibGUoT2lk IHZhcmlkLCBib29sICppc051bGwpOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24v ZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0 ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMC4uMGE1NTc5ZGM3YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9l eHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApAQCAtMCwwICsxLDExMCBAQAorUGFyc2VkIHRl c3Qgc3BlYyB3aXRoIDQgc2Vzc2lvbnMKKworc3RhcnRpbmcgcGVybXV0YXRpb246IGxldCB2YWwg ZHJvcCB2YWwKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7CitzdGVwIHZhbDogU0VMRUNU IG15dmFyOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVwIGRyb3A6IERST1Ag VkFSSUFCTEUgbXl2YXI7CitzdGVwIHZhbDogU0VMRUNUIG15dmFyOworRVJST1I6ICBjb2x1bW4g Im15dmFyIiBkb2VzIG5vdCBleGlzdAorCitzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBz MSBkcm9wIHZhbCBzcjEKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7CitzdGVwIHZhbDog U0VMRUNUIG15dmFyOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVwIHMxOiBC RUdJTjsKK3N0ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBteXZhcjsKK3N0ZXAgdmFsOiBTRUxFQ1Qg bXl2YXI7CitFUlJPUjogIGNvbHVtbiAibXl2YXIiIGRvZXMgbm90IGV4aXN0CitzdGVwIHNyMTog Uk9MTEJBQ0s7CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIGRiZyBkcm9wIGNyZWF0 ZSBkYmcgdmFsCitzdGVwIGxldDogTEVUIG15dmFyID0gJ3Rlc3QnOworc3RlcCB2YWw6IFNFTEVD VCBteXZhcjsKK215dmFyCistLS0tLQordGVzdCAKKygxIHJvdykKKworc3RlcCBkYmc6IFNFTEVD VCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworc2No ZW1hfG5hbWUgfHJlbW92ZWQKKy0tLS0tLSstLS0tLSstLS0tLS0tCitwdWJsaWN8bXl2YXJ8ZiAg ICAgIAorKDEgcm93KQorCitzdGVwIGRyb3A6IERST1AgVkFSSUFCTEUgbXl2YXI7CitzdGVwIGNy ZWF0ZTogQ1JFQVRFIFZBUklBQkxFIG15dmFyIEFTIHRleHQ7CitzdGVwIGRiZzogU0VMRUNUIHNj aGVtYSwgbmFtZSwgcmVtb3ZlZCBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CitzY2hlbWF8 bmFtZXxyZW1vdmVkCistLS0tLS0rLS0tLSstLS0tLS0tCisgICAgICB8ICAgIHx0ICAgICAgCiso MSByb3cpCisKK3N0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitteXZhcgorLS0tLS0KKyAgICAgCiso MSByb3cpCisKKworc3RhcnRpbmcgcGVybXV0YXRpb246IGxldCB2YWwgczEgZGJnIGRyb3AgY3Jl YXRlIGRiZyB2YWwgc3IxCitzdGVwIGxldDogTEVUIG15dmFyID0gJ3Rlc3QnOworc3RlcCB2YWw6 IFNFTEVDVCBteXZhcjsKK215dmFyCistLS0tLQordGVzdCAKKygxIHJvdykKKworc3RlcCBzMTog QkVHSU47CitzdGVwIGRiZzogU0VMRUNUIHNjaGVtYSwgbmFtZSwgcmVtb3ZlZCBGUk9NIHBnX3Nl c3Npb25fdmFyaWFibGVzKCk7CitzY2hlbWF8bmFtZSB8cmVtb3ZlZAorLS0tLS0tKy0tLS0tKy0t LS0tLS0KK3B1YmxpY3xteXZhcnxmICAgICAgCisoMSByb3cpCisKK3N0ZXAgZHJvcDogRFJPUCBW QVJJQUJMRSBteXZhcjsKK3N0ZXAgY3JlYXRlOiBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4 dDsKK3N0ZXAgZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00gcGdfc2Vzc2lv bl92YXJpYWJsZXMoKTsKK3NjaGVtYXxuYW1lIHxyZW1vdmVkCistLS0tLS0rLS0tLS0rLS0tLS0t LQorcHVibGljfG15dmFyfGYgICAgICAKKygxIHJvdykKKworc3RlcCB2YWw6IFNFTEVDVCBteXZh cjsKK215dmFyCistLS0tLQorICAgICAKKygxIHJvdykKKworc3RlcCBzcjE6IFJPTExCQUNLOwor CitzdGFydGluZyBwZXJtdXRhdGlvbjogY3JlYXRlMyBsZXQzIHMzIGNyZWF0ZTQgbGV0NCBkcm9w NCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKK3N0ZXAgY3JlYXRlMzogQ1JFQVRFIFZB UklBQkxFIG15dmFyMyBBUyB0ZXh0Oworc3RlcCBsZXQzOiBMRVQgbXl2YXIzID0gJ3Rlc3QnOwor c3RlcCBzMzogQkVHSU47CitzdGVwIGNyZWF0ZTQ6IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMg dGV4dDsKK3N0ZXAgbGV0NDogTEVUIG15dmFyNCA9ICd0ZXN0JzsKK3N0ZXAgZHJvcDQ6IERST1Ag VkFSSUFCTEUgbXl2YXI0Oworc3RlcCBkcm9wMzogRFJPUCBWQVJJQUJMRSBteXZhcjM7CitzdGVw IGludmFsMzogU0VMRUNUIENPVU5UKCopID49IDAgRlJPTSBwZ19mb3JlaWduX3RhYmxlOworP2Nv bHVtbj8KKy0tLS0tLS0tCit0ICAgICAgIAorKDEgcm93KQorCitzdGVwIGRpc2NhcmQ6IERJU0NB UkQgVkFSSUFCTEVTOworc3RlcCBzYzM6IENPTU1JVDsKK3N0ZXAgc3RhdGU6IFNFTEVDVCB2YXJu YW1lIEZST00gcGdfdmFyaWFibGU7Cit2YXJuYW1lCistLS0tLS0tCitteXZhciAgCisoMSByb3cp CisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUgYi9z cmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCmluZGV4IDE0MzEwOWFhNGQuLjc0 NTM2ODVkMDQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1 bGUKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZQpAQCAtMTE1LDMg KzExNSw0IEBAIHRlc3Q6IHNlcmlhbGl6YWJsZS1wYXJhbGxlbC0yCiB0ZXN0OiBzZXJpYWxpemFi bGUtcGFyYWxsZWwtMwogdGVzdDogbWF0dmlldy13cml0ZS1za2V3CiB0ZXN0OiBsb2NrLW5vd2Fp dAordGVzdDogc2Vzc2lvbi12YXJpYWJsZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9u L3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9z ZXNzaW9uLXZhcmlhYmxlLnNwZWMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MC4uYzg2NGZlZTQwMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVj cy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKQEAgLTAsMCArMSw1MCBAQAorIyBUZXN0IHNlc3Npb24g dmFyaWFibGVzIG1lbW9yeSBjbGVhbnVwIGZvciBzaW52YWwKKworc2V0dXAKK3sKKyAgICBDUkVB VEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsKK30KKwordGVhcmRvd24KK3sKKyAgICBEUk9QIFZB UklBQkxFIElGIEVYSVNUUyBteXZhcjsKK30KKworc2Vzc2lvbiBzMQorc3RlcCBzMQkJeyBCRUdJ TjsgfQorc3RlcCBsZXQJeyBMRVQgbXl2YXIgPSAndGVzdCc7IH0KK3N0ZXAgdmFsCXsgU0VMRUNU IG15dmFyOyB9CitzdGVwIGRiZwl7IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpOyB9CitzdGVwIHNyMQl7IFJPTExCQUNLOyB9CisKK3Nlc3Np b24gczIKK3N0ZXAgZHJvcAkJeyBEUk9QIFZBUklBQkxFIG15dmFyOyB9CitzdGVwIGNyZWF0ZQkJ eyBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsgfQorCitzZXNzaW9uIHMzCitzdGVwIHMz CQkJeyBCRUdJTjsgfQorc3RlcCBsZXQzCQl7IExFVCBteXZhcjMgPSAndGVzdCc7IH0KK3N0ZXAg Y3JlYXRlNAl7IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsgfQorc3RlcCBsZXQ0CQl7 IExFVCBteXZhcjQgPSAndGVzdCc7IH0KK3N0ZXAgZHJvcDQJCXsgRFJPUCBWQVJJQUJMRSBteXZh cjQ7IH0KK3N0ZXAgaW52YWwzCQl7IFNFTEVDVCBDT1VOVCgqKSA+PSAwIEZST00gcGdfZm9yZWln bl90YWJsZTsgfQorc3RlcCBkaXNjYXJkCXsgRElTQ0FSRCBWQVJJQUJMRVM7IH0KK3N0ZXAgc2Mz CQl7IENPTU1JVDsgfQorc3RlcCBzdGF0ZQkJeyBTRUxFQ1QgdmFybmFtZSBGUk9NIHBnX3Zhcmlh YmxlOyB9CisKK3Nlc3Npb24gczQKK3N0ZXAgY3JlYXRlMwl7IENSRUFURSBWQVJJQUJMRSBteXZh cjMgQVMgdGV4dDsgfQorc3RlcCBkcm9wMwkJeyBEUk9QIFZBUklBQkxFIG15dmFyMzsgfQorCisj IENvbmN1cnJlbnQgZHJvcCBvZiBhIGtub3duIHZhcmlhYmxlIHNob3VsZCBsZWFkIHRvIGFuIGVy cm9yCitwZXJtdXRhdGlvbiBsZXQgdmFsIGRyb3AgdmFsCisjIFNhbWUsIGJ1dCB3aXRoIGFuIGV4 cGxpY2l0IHRyYW5zYWN0aW9uCitwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRyb3AgdmFsIHNyMQor IyBDb25jdXJyZW50IGRyb3AvY3JlYXRlIG9mIGEga25vd24gdmFyaWFibGUgc2hvdWxkIGxlYWQg dG8gZW1wdHkgdmFyaWFibGUKK3Blcm11dGF0aW9uIGxldCB2YWwgZGJnIGRyb3AgY3JlYXRlIGRi ZyB2YWwKKyMgQ29uY3VycmVudCBkcm9wL2NyZWF0ZSBvZiBhIGtub3duIHZhcmlhYmxlIHNob3Vs ZCBsZWFkIHRvIGVtcHR5IHZhcmlhYmxlCisjIFdlIG5lZWQgYSB0cmFuc2FjdGlvbiB0byBtYWtl IHN1cmUgdGhhdCB3ZSB3b24ndCBhY2NlcHQgaW52YWxpZGF0aW9uIHdoZW4KKyMgY2FsbGluZyB0 aGUgZGJnIHN0ZXAgYWZ0ZXIgdGhlIGNvbmN1cnJlbnQgZHJvcAorcGVybXV0YXRpb24gbGV0IHZh bCBzMSBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbCBzcjEKKyMgdGVzdCBmb3IgRElTQ0FSRCBBTEwg d2hlbiBhbGwgaW50ZXJuYWwgcXVldWVzIGhhdmUgYWN0aW9ucyByZWdpc3RlcmVkCitwZXJtdXRh dGlvbiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNj YXJkIHNjMyBzdGF0ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzLm91dAppbmRleCA3OWFjNDA3NjhmLi4yNzgzY2FhODQ0IDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTcyNiwzICsxNzI2 LDIyMCBAQCBTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwogICAg ICAwCiAoMSByb3cpCiAKKy0tIGRyb3BwZWQgdmFyaWFibGVzIHNob3VsZCBiZSByZW1vdmVkIGZy b20gbWVtb3J5IGJlZm9yZSB0aGUgbmV4dCB1c2FnZQorLS0gb2YgYW55IHNlc3Npb24gdmFyaWFi bGUgaW4gdGhlIG5leHQgdHJhbnNhY3Rpb24KK0xFVCB2YXIxID0gJ0Fob2onOworU0VMRUNUIG5h bWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3Zhcmlh YmxlcygpOworIG5hbWUgfCAgICAgIHR5cG5hbWUgICAgICB8IGNhbl9zZWxlY3QgfCBjYW5fdXBk YXRlIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorIHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IHQgICAgICAgICAgfCB0CisoMSByb3cpCisK K0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikg RlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOworIGNvdW50IAor LS0tLS0tLQorICAgICAwCisoMSByb3cpCisKKy0tIHRoZSBjb250ZW50IG9mIHRoZSB2YWx1ZSBz aG91bGQgYmUgcHJlc2VydmVkIHdoZW4gYSB2YXJpYWJsZSBpcyBkcm9wcGVkCistLSBieSBhbiBh Ym9ydGVkIHRyYW5zYWN0aW9uCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOworTEVU IHZhcjEgPSAnQWhvaic7CitCRUdJTjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIHNob3VsZCBm YWlsCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgY29sdW1uICJ2YXIxIiBkb2VzIG5vdCBleGlzdAor TElORSAxOiBTRUxFQ1QgdmFyMTsKKyAgICAgICAgICAgICAgIF4KK1JPTExCQUNLOworLS0gc2hv dWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgQWhvagorKDEgcm93KQor CistLSBhbm90aGVyIHRlc3QKK0JFR0lOOworRFJPUCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgaW50OworTEVUIHZhcjEgPSAxMDA7CistLSBzaG91bGQgYmUgb2ssIHJl c3VsdCAxMDAKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisK K1JPTExCQUNLOworLS0gc2hvdWxkIGJlIG9rLCByZXN1bHQgJ0Fob2onCitTRUxFQ1QgdmFyMTsK KyB2YXIxIAorLS0tLS0tCisgQWhvagorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7Cist LSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJs ZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93 KQorCitCRUdJTjsKKyAgQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworICBMRVQgdmFyMSA9 IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykKKwor ICBTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3VwZGF0ZSBGUk9NIHBnX3Nl c3Npb25fdmFyaWFibGVzKCk7CisgbmFtZSB8IHR5cG5hbWUgfCBjYW5fc2VsZWN0IHwgY2FuX3Vw ZGF0ZSAKKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHZhcjEg fCBpbnRlZ2VyIHwgdCAgICAgICAgICB8IHQKKygxIHJvdykKKworICBEUk9QIFZBUklBQkxFIHZh cjE7CitDT01NSVQ7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdf c2Vzc2lvbl92YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKyBjb3VudCAKKy0tLS0tLS0K KyAgICAgMAorKDEgcm93KQorCitCRUdJTjsKKyAgQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50 OworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAx MDAKKygxIHJvdykKKworICBTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3Vw ZGF0ZSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgbmFtZSB8IHR5cG5hbWUgfCBjYW5f c2VsZWN0IHwgY2FuX3VwZGF0ZSAKKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIHZhcjEgfCBpbnRlZ2VyIHwgdCAgICAgICAgICB8IHQKKygxIHJvdykKKworICBE Uk9QIFZBUklBQkxFIHZhcjE7CitDT01NSVQ7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNv dW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKyBj b3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwOworTEVU IHZhcjIgPSAwOworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIx OworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFi bGUKKyAgU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworICBS T0xMQkFDSyBUTyBzMTsKKyAgU0FWRVBPSU5UIHMyOworICBEUk9QIFZBUklBQkxFIHZhcjE7Cisg IFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKKyAgUk9MTEJB Q0sgVE8gczI7CitDT01NSVQ7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEg CistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERS T1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhl ciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0KKyAgICAw CisoMSByb3cpCisKKyAgUk9MTEJBQ0sgVE8gczE7CisgIFNBVkVQT0lOVCBzMjsKKyAgRFJPUCBW QVJJQUJMRSB2YXIxOworICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAorKDEg cm93KQorCitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAK Ky0tLS0tLQorICAgMTAKKygxIHJvdykKKworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJP UCBWQVJJQUJMRSB2YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVy IHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAgIDAK KygxIHJvdykKKworICBTQVZFUE9JTlQgczI7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNo aW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0t LS0tCisgICAgMAorKDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMxOworICAtLSBmb3JjZSBjbGVh bmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7 CisgdmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworQ09NTUlUOworLS0gc2hvdWxkIGJl IG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCistLSBy ZXBlYXRlZCBhYm9ydGVkIHRyYW5zYWN0aW9uCitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBS T0xMQkFDSzsKK0JFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOworQkVHSU47IERS T1AgVkFSSUFCTEUgdmFyMTsgUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIx OworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMSwg dmFyMjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCAy OTU0NzU5YWFlLi5hNjI0YWI4YjY3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9z ZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsCkBAIC0xMjE0LDMgKzEyMTQsMTIzIEBAIERJU0NBUkQgVkFSSUFCTEVTOwog CiAtLSBzaG91bGQgYmUgemVybyBhZ2FpbgogU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lv bl92YXJpYWJsZXMoKTsKKworLS0gZHJvcHBlZCB2YXJpYWJsZXMgc2hvdWxkIGJlIHJlbW92ZWQg ZnJvbSBtZW1vcnkgYmVmb3JlIHRoZSBuZXh0IHVzYWdlCistLSBvZiBhbnkgc2Vzc2lvbiB2YXJp YWJsZSBpbiB0aGUgbmV4dCB0cmFuc2FjdGlvbgorCitMRVQgdmFyMSA9ICdBaG9qJzsKK1NFTEVD VCBuYW1lLCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92 YXJpYWJsZXMoKTsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NF TEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkgV0hFUkUgTk9UIHJlbW92 ZWQ7CisKKy0tIHRoZSBjb250ZW50IG9mIHRoZSB2YWx1ZSBzaG91bGQgYmUgcHJlc2VydmVkIHdo ZW4gYSB2YXJpYWJsZSBpcyBkcm9wcGVkCistLSBieSBhbiBhYm9ydGVkIHRyYW5zYWN0aW9uCitD UkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOworTEVUIHZhcjEgPSAnQWhvaic7CitCRUdJ TjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxOwor CitST0xMQkFDSzsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworLS0gYW5vdGhl ciB0ZXN0CitCRUdJTjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIGludDsKK0xFVCB2YXIxID0gMTAwOworLS0gc2hvdWxkIGJlIG9rLCByZXN1bHQgMTAwCitT RUxFQ1QgdmFyMTsKK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIG9rLCByZXN1bHQgJ0Fob2onCitT RUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBzaG91bGQgYmUgemVybwor U0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVt b3ZlZDsKKworQkVHSU47CisgIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKyAgTEVUIHZh cjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworICBTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3Nl bGVjdCwgY2FuX3VwZGF0ZSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgIERST1AgVkFS SUFCTEUgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkgV0hFUkUgTk9UIHJlbW92ZWQ7CisKK0JFR0lO OworICBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisgIExFVCB2YXIxID0gMTAwOworICBT RUxFQ1QgdmFyMTsKKyAgU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRh dGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitD T01NSVQ7CisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNz aW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOworCitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwOwor TEVUIHZhcjIgPSAwOworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2 YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFy aWFibGUKKyAgU0VMRUNUIHZhcjI7CisgIFJPTExCQUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7 CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgU0VMRUNUIHZhcjI7CisgIFJPTExCQUNLIFRPIHMy OworQ09NTUlUOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworQkVHSU47CisgIFNB VkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBi eSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgIFJP TExCQUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAg U0VMRUNUIHZhcjI7CitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisK K0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9y Y2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVD VCB2YXIyOworCisgIFNBVkVQT0lOVCBzMjsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hp bmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworICBST0xMQkFDSyBU TyBzMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZh cmlhYmxlCisgIFNFTEVDVCB2YXIyOworQ09NTUlUOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1Qg dmFyMTsKKworLS0gcmVwZWF0ZWQgYWJvcnRlZCB0cmFuc2FjdGlvbgorQkVHSU47IERST1AgVkFS SUFCTEUgdmFyMTsgUk9MTEJBQ0s7CitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFD SzsKK0JFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOworCistLSBzaG91bGQgYmUg b2sKK1NFTEVDVCB2YXIxOworCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7Ci0tIAoyLjQ3LjEK Cg== --0000000000008953c9062b346e70 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250108-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Disposition: attachment; filename="v20250108-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5o4agm020 RnJvbSBjYzA5NjM1ZWEwMWMzZDE3OWIwNTY3YTE4ZDFiMmIyNTIzZDAxN2YyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAwODoyOToyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIv MjJdIFN0b3JhZ2UgZm9yIHNlc3Npb24gdmFyaWFibGVzIGFuZCBTUUwgaW50ZXJmYWNlCgpTZXNz aW9uIHZhcmlhYmxlcyBhcmUgc3RvcmVkIGluIHNlc3Npb24gbWVtb3J5IGluIGEgZGVkaWNhdGVk IGhhc2ggdGFibGUuClRoZXkgYXJlIHNldCBieSB0aGUgTEVUIGNvbW1hbmQgYW5kIHJlYWQgYnkg dGhlIFNFTEVDVCBjb21tYW5kLgpUaGUgYWNjZXNzIHJpZ2h0cyBzaG91bGQgYmUgY2hlY2tlZC4K ClRoZSBpZGVudGlmaWVycyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBzaG91bGQgYWx3YXlzIGJlIHNo YWRvd2VkIGJ5IHBvc3NpYmxlCmNvbHVtbiBpZGVudGlmaWVyczogd2UgZG9uJ3Qgd2FudCB0byBi cmVhayBhbiBhcHBsaWNhdGlvbiBieSBjcmVhdGluZyBzb21lCmJhZGx5IG5hbWVkIHNlc3Npb24g dmFyaWFibGUuCgpUaGUgbGltaXRzIG9mIHRoaXMgcGF0Y2ggKHNvbHZlZCBieSBvdGhlciBwYXRj aGVzKToKCi0gc2Vzc2lvbiB2YXJpYWJsZXMgYmxvY2sgcGFyYWxsZWwgZXhlY3V0aW9uCi0gc2Vz c2lvbiB2YXJpYWJsZXMgYmxvY2tzIHNpbXBsZSBleHByZXNzaW9uIGV2YWx1YXRpb24gKGluIHBs cGdzcWwpCi0gU1FMIGZ1bmN0aW9ucyB3aXRoIHNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgaW5s aW5lZAotIENBTEwgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgKHVzYWdlIG9mIGRpcmVjdCBh Y2Nlc3MgdG8gZXhwcmVzcyBleGVjdXRvcikKLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBub3Qgc3Vw cG9ydGVkICh1c2FnZSBvZiBkaXJlY3QgYWNjZXNzIHRvIGV4cHJlc3MgZXhlY3V0b3IpCi0gbWVt b3J5IHVzZWQgYnkgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QgcmVsZWFzZWQKCklt cGxlbWVudGF0aW9ucyBvZiBFWFBMQUlOIExFVCBhbmQgUFJFUEFSRSBMRVQgc3RhdGVtZW50cwph cmUgaW4gc2VwYXJhdGUgcGF0Y2hlcyAoZm9yIGJldHRlciByZWFkYWJpbGl0eSkKLS0tCiBkb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsKIGRvYy9z cmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNjEgKwogZG9jL3Ny Yy9zZ21sL2Z1bmMuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogZG9jL3Ny Yy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICAgNSArLQogZG9jL3Ny Yy9zZ21sL3BhcmFsbGVsLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICAgNiArCiBkb2Mvc3Jj L3NnbWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsKIGRvYy9zcmMv c2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8ICAgIDEgKwogZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sICAgICAgICAgIHwgICAgMSArCiBkb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAgICA1ICstCiBkb2Mvc3JjL3Nn bWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCAgICAgICAgICAgfCAgICAxICsKIGRvYy9zcmMvc2dt bC9yZWYvbGV0LnNnbWwgICAgICAgICAgICAgICAgICAgICB8ICAgOTYgKysKIGRvYy9zcmMvc2dt bC9yZWZlcmVuY2Uuc2dtbCAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQv Y2F0YWxvZy9kZXBlbmRlbmN5LmMgICAgICAgICAgICAgIHwgICAgNSArCiBzcmMvYmFja2VuZC9j YXRhbG9nL25hbWVzcGFjZS5jICAgICAgICAgICAgICAgfCAgMjg5ICsrKysKIHNyYy9iYWNrZW5k L2NhdGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8ICAgIDIgKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9j b21tYW5kcy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3ByZXBhcmUuYyAgICAgICAgICAgICAgICB8ICAgMTAgKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgIDUyOSArKysrKysrCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8ICAgMzIgKwogc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgICA2NiArCiBzcmMvYmFja2VuZC9l eGVjdXRvci9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2V4 ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMgICAgICB8ICAxNzIgKysrCiBzcmMvYmFja2VuZC9u b2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgIDEwICsKIHNyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL3BsYW5uZXIuYyAgICAgICAgICB8ICAgMzYgKwogc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vc2V0cmVmcy5jICAgICAgICAgIHwgIDE1NyArKy0KIHNyYy9iYWNrZW5kL29w dGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jICAgICB8ICAgIDMgKwogc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3V0aWwvY2xhdXNlcy5jICAgICAgICAgIHwgICAzMyArLQogc3JjL2JhY2tlbmQvcGFy c2VyL2FuYWx5emUuYyAgICAgICAgICAgICAgICAgIHwgIDI3MiArKystCiBzcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgIDM5ICstCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfYWdnLmMgICAgICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICAyMjMgKystCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfZnVuYy5jICAgICAgICAgICAgICAgfCAgICAyICsKIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9tZXJnZS5jICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvdGNv cC9kZXN0LmMgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNyArCiBzcmMvYmFja2VuZC90Y29w L3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgIDE2ICsKIHNyYy9iYWNrZW5kL3V0aWxz L2FkdC9ydWxldXRpbHMuYyAgICAgICAgICAgICB8ICAgNDYgKwogc3JjL2JhY2tlbmQvdXRpbHMv Y2FjaGUvcGxhbmNhY2hlLmMgICAgICAgICAgIHwgICA0MSArLQogc3JjL2JhY2tlbmQvdXRpbHMv Zm1nci9mbWdyLmMgICAgICAgICAgICAgICAgIHwgICAxMCArLQogc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgICAxMiArLQogc3JjL2luY2x1ZGUvY2F0YWxv Zy9uYW1lc3BhY2UuaCAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgMzAgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3Iv c3ZhcmlhYmxlUmVjZWl2ZXIuaCAgICAgIHwgICAyMiArCiBzcmMvaW5jbHVkZS9ub2Rlcy9leGVj bm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDE0ICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgMTcgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5v ZGVzLmggICAgICAgICAgICAgICAgIHwgICAxNCArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9k ZXMuaCAgICAgICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rl cy5oICAgICAgICAgICAgICAgICB8ICAgMTQgKwogc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5t YWluLmggICAgICAgICAgICAgIHwgICAgMiArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0Lmgg ICAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2Rl LmggICAgICAgICAgICAgICB8ICAgIDMgKwogc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0Lmgg ICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS90Y29wL2Rlc3QuaCAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgICAg ICAgICAgICAgICAgICB8ICAgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzLm91dCAgICB8IDEyMzIgKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA4ODMgKysrKysrKysrKysrCiBzcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgICA1ICsKIDU5IGZpbGVz IGNoYW5nZWQsIDQ0NjcgaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9sZXQuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbAppbmRleCA2YmJjNmM3ZTI4Li42N2U2NDU5MjUwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtOTc4 NCw2ICs5Nzg0LDE5IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24g Y291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8L3BhcmE+PC9l bnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPnZhcmNyZWF0ZV9sc248L3N0cnVjdGZpZWxkPiA8dHlwZT5wZ19sc248L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBMU04gb2YgdGhlIHRyYW5z YWN0aW9uIHdoZXJlIHRoZSB2YXJpYWJsZSB3YXMgY3JlYXRlZC4KKyAgICAgICA8c3RydWN0Zmll bGQ+dmFyY3JlYXRlX2xzbjwvc3RydWN0ZmllbGQ+IGFuZAorICAgICAgIDxzdHJ1Y3RmaWVsZD5v aWQ8L3N0cnVjdGZpZWxkPiB0b2dldGhlciBmb3JtIHRoZSBhbGwtdGltZSB1bmlxdWUKKyAgICAg ICBpZGVudGlmaWVyICg8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gYWxvbmUgaXMgbm90 IGVub3VnaCwgc2luY2UKKyAgICAgICBvYmplY3QgaWRlbnRpZmllcnMgY2FuIGdldCByZXVzZWQp LgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJuYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+bmFtZTwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9z cmMvc2dtbC9kZGwuc2dtbAppbmRleCA0Zjc5YzY3NmMzLi4zN2QyZmEwMWNiIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC01 MzU3LDYgKzUzNTcsNjcgQEAgRVhQTEFJTiBTRUxFQ1QgY291bnQoKikgRlJPTSBtZWFzdXJlbWVu dCBXSEVSRSBsb2dkYXRlICZndDs9IERBVEUgJzIwMDgtMDEtMDEnOwogICAgIFRoZSBzZXNzaW9u IHZhcmlhYmxlIGhvbGRzIHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAgVGhpcyB2YWx1ZSBpcyBw cml2YXRlCiAgICAgdG8gZWFjaCBzZXNzaW9uIGFuZCBpcyByZWxlYXNlZCB3aGVuIHRoZSBzZXNz aW9uIGVuZHMuCiAgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSB2YWx1ZSBvZiBhIHNl c3Npb24gdmFyaWFibGUgaXMgc2V0IHdpdGggdGhlIFNRTCBzdGF0ZW1lbnQKKyAgICA8Y29tbWFu ZD5MRVQ8L2NvbW1hbmQ+LiAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBjYW4gYmUg cmV0cmlldmVkCisgICAgd2l0aCB0aGUgU1FMIHN0YXRlbWVudCA8Y29tbWFuZD5TRUxFQ1Q8L2Nv bW1hbmQ+LgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgZGF0ZTsK K0xFVCB2YXIxID0gY3VycmVudF9kYXRlOworU0VMRUNUIHZhcjE7Cis8L3Byb2dyYW1saXN0aW5n PgorCisgICAgb3IKKworPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5j dXJyZW50X3VzZXJfaWQgQVMgaW50ZWdlcjsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBwdWJs aWMuY3VycmVudF91c2VyX2lkIFRPIFBVQkxJQzsKK0xFVCBjdXJyZW50X3VzZXJfaWQgPSAoU0VM RUNUIGlkIEZST00gdXNlcnMgV0hFUkUgdXNlbmFtZSA9IHNlc3Npb25fdXNlcik7CitTRUxFQ1Qg Y3VycmVudF91c2VyX2lkOworPC9wcm9ncmFtbGlzdGluZz4KKyAgIDwvcGFyYT4KKworICAgPHBh cmE+CisgICAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBsb2NhbCB0byB0aGUg Y3VycmVudCBzZXNzaW9uLiBSZXRyaWV2aW5nCisgICAgYSB2YXJpYWJsZSdzIHZhbHVlIHJldHVy bnMgYSA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiwgdW5sZXNzIGl0cyB2YWx1ZSBoYXMKKyAgICBi ZWVuIHNldCB0byBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBzZXNzaW9uIHVzaW5nIHRo ZQorICAgIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4gIFNlc3Npb24gdmFyaWFibGVz IGFyZSBub3QgdHJhbnNhY3Rpb25hbDoKKyAgICBhbnkgY2hhbmdlcyBtYWRlIHRvIHRoZSB2YWx1 ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaW4gYSB0cmFuc2FjdGlvbiB3b24ndAorICAgIGJlIHVu ZG9uZSBpZiB0aGUgdHJhbnNhY3Rpb24gaXMgcm9sbGVkIGJhY2sgKGp1c3QgbGlrZSB2YXJpYWJs ZXMgaW4KKyAgICBwcm9jZWR1cmFsIGxhbmd1YWdlcykuICBTZXNzaW9uIHZhcmlhYmxlcyB0aGVt c2VsdmVzIGFyZSBwZXJzaXN0ZW50LCBidXQKKyAgICB0aGVpciB2YWx1ZXMgYXJlIG5laXRoZXIg cGVyc2lzdGVudCBub3Igc2hhcmVkIChsaWtlIHRoZSBjb250ZW50IG9mCisgICAgdGVtcG9yYXJ5 IHRhYmxlcykuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIEluc2lkZSBhIHF1ZXJ5IG9y IGFuIGV4cHJlc3Npb24sIGEgc2Vzc2lvbiB2YXJpYWJsZSBjYW4gYmUKKyAgICA8cXVvdGU+c2hh ZG93ZWQ8L3F1b3RlPiBieSBhIGNvbHVtbiB3aXRoIHRoZSBzYW1lIG5hbWUuICBTaW1pbGFybHks IHRoZQorICAgIG5hbWUgb2YgYSBmdW5jdGlvbiBvciBwcm9jZWR1cmUgYXJndW1lbnQgb3IgYSBQ TC9wZ1NRTCB2YXJpYWJsZSAoc2VlCisgICAgPHhyZWYgbGlua2VuZD0icGxwZ3NxbC1kZWNsYXJh dGlvbnMiLz4pIGNhbiBzaGFkb3cgYSBzZXNzaW9uIHZhcmlhYmxlCisgICAgaW4gdGhlIHJvdXRp bmUncyBib2R5LiAgU3VjaCBjb2xsaXNpb25zIG9mIGlkZW50aWZpZXJzIGNhbiBiZSByZXNvbHZl ZAorICAgIGJ5IHVzaW5nIHF1YWxpZmllZCBpZGVudGlmaWVyczogU2Vzc2lvbiB2YXJpYWJsZXMg Y2FuIGJlIHF1YWxpZmllZCB3aXRoCisgICAgdGhlIHNjaGVtYSBuYW1lLCBjb2x1bW5zIGNhbiB1 c2UgdGFibGUgYWxpYXNlcywgcm91dGluZSB2YXJpYWJsZXMgY2FuIHVzZQorICAgIGJsb2NrIGxh YmVscywgYW5kIHJvdXRpbmUgYXJndW1lbnRzIGNhbiB1c2UgdGhlIHJvdXRpbmUgbmFtZS4KKzxw cm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSBuYW1lIEFTIHRleHQ7CitMRVQgbmFtZSA9 ICdKb2huJzsKKworQ1JFQVRFIFRBQkxFIGZvbyhuYW1lIHRleHQpOworSU5TRVJUIElOVE8gZm9v IFZBTFVFUygnQWxpY2UnKTsKKworLS0gdmFyaWFibGUgbmFtZSBpcyBzaGFkb3dlZAorU0VMRUNU IG5hbWUgRlJPTSBmb287IAorPC9wcm9ncmFtbGlzdGluZz4KKworICAgd2hpY2ggcmV0dXJuczoK KworPHByb2dyYW1saXN0aW5nPgorIG5hbWUgIAorLS0tLS0tLQorIEFsaWNlCis8L3Byb2dyYW1s aXN0aW5nPgorICAgPC9wYXJhPgogICA8L3NlY3QxPgogCiAgPHNlY3QxIGlkPSJkZGwtb3RoZXJz Ij4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVu Yy5zZ21sCmluZGV4IDNmNWQ4Yzk3N2QuLjljYTJkN2M0OWMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9mdW5jLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbApAQCAtMjU1NDQsOCAr MjU1NDQsOCBAQCBTRUxFQ1QgaGFzX2Z1bmN0aW9uX3ByaXZpbGVnZSgnam9ldXNlcicsICdteWZ1 bmMoaW50LCB0ZXh0KScsICdleGVjdXRlJyk7CiAgICAgICAgICd0JyBmb3IgPGxpdGVyYWw+VEFC TEVTUEFDRTwvbGl0ZXJhbD4sCiAgICAgICAgICdGJyBmb3IgPGxpdGVyYWw+Rk9SRUlHTiBEQVRB IFdSQVBQRVI8L2xpdGVyYWw+LAogICAgICAgICAnUycgZm9yIDxsaXRlcmFsPkZPUkVJR04gU0VS VkVSPC9saXRlcmFsPiwKLSAgICAgICAgb3IKLSAgICAgICAgJ1QnIGZvciA8bGl0ZXJhbD5UWVBF PC9saXRlcmFsPiBvciA8bGl0ZXJhbD5ET01BSU48L2xpdGVyYWw+LgorICAgICAgICAnVCcgZm9y IDxsaXRlcmFsPlRZUEU8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPkRPTUFJTjwvbGl0ZXJhbD4gb3IK KyAgICAgICAgJ1YnIGZvciA8bGl0ZXJhbD5TRVNTSU9OIFZBUklBQkxFPC9saXRlcmFsPi4KICAg ICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgIDwvcm93PgogCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvZ2xvc3Nhcnkuc2dtbCBiL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCmluZGV4IGQw Y2I1Mzc2M2EuLjdiYzNmYzNiYjAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCkBAIC0xNjcwLDggKzE2NzAsOSBA QAogICAgIDxwYXJhPgogICAgICBBIHBlcnNpc3RlbnQgZGF0YWJhc2Ugb2JqZWN0IHRoYXQgaG9s ZHMgYSB2YWx1ZSBpbiBzZXNzaW9uIG1lbW9yeS4gIFRoaXMKICAgICAgdmFsdWUgaXMgcHJpdmF0 ZSB0byBlYWNoIHNlc3Npb24gYW5kIGlzIHJlbGVhc2VkIHdoZW4gdGhlIHNlc3Npb24gZW5kcy4K LSAgICAgUmVhZCBvciB3cml0ZSBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgaXMgY29udHJv bGxlZCBieSBwcml2aWxlZ2VzLAotICAgICBzaW1pbGFyIHRvIG90aGVyIGRhdGFiYXNlIG9iamVj dHMuCisgICAgIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGlzIG51 bGwuICBSZWFkIG9yIHdyaXRlIGFjY2VzcworICAgICB0byBzZXNzaW9uIHZhcmlhYmxlcyBpcyBj b250cm9sbGVkIGJ5IHByaXZpbGVnZXMsIHNpbWlsYXIgdG8gb3RoZXIgZGF0YWJhc2UKKyAgICAg b2JqZWN0cy4KICAgICA8L3BhcmE+CiAgICAgPHBhcmE+CiAgICAgIEZvciBtb3JlIGluZm9ybWF0 aW9uLCBzZWUgPHhyZWYgbGlua2VuZD0iZGRsLXNlc3Npb24tdmFyaWFibGVzIi8+LgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwu c2dtbAppbmRleCAxY2U5YWJmODZmLi42ODNkZWRlNmFkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcGFyYWxsZWwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbApAQCAtNTE1 LDYgKzUxNSwxMiBAQCBFWFBMQUlOIFNFTEVDVCAqIEZST00gcGdiZW5jaF9hY2NvdW50cyBXSEVS RSBmaWxsZXIgTElLRSAnJXglJzsKICAgICAgICAgUGxhbiBub2RlcyB0aGF0IHJlZmVyZW5jZSBh IGNvcnJlbGF0ZWQgPGxpdGVyYWw+U3ViUGxhbjwvbGl0ZXJhbD4uCiAgICAgICA8L3BhcmE+CiAg ICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgICBQ bGFuIG5vZGVzIHRoYXQgdXNlIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgIDwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgogICA8L2l0ZW1pemVkbGlzdD4KIAogIDxzZWN0MiBpZD0icGFyYWxsZWwt bGFiZWxpbmciPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbCBiL2RvYy9z cmMvc2dtbC9wbHBnc3FsLnNnbWwKaW5kZXggNzhlNDk4MzEzOS4uYmZiZmY5YWI3NCAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcGxwZ3Nx bC5zZ21sCkBAIC02MDM0LDYgKzYwMzQsMjAgQEAgJCQgTEFOR1VBR0UgcGxwZ3NxbCBTVFJJQ1Qg SU1NVVRBQkxFOwogPC9wcm9ncmFtbGlzdGluZz4KICAgICA8L3BhcmE+CiAgICA8L3NlY3QzPgor CisgICA8c2VjdDMgaWQ9InBscGdzcWwtcG9ydGluZy1wYWNrYWdlLXZhcmlhYmxlcyI+CisgICAg PHRpdGxlPjxjb21tYW5kPlBhY2thZ2VzIGFuZCBwYWNrYWdlIHZhcmlhYmxlczwvY29tbWFuZD48 L3RpdGxlPgorCisgICAgPHBhcmE+CisgICAgIFRoZSA8YXBwbGljYXRpb24+UEwvcGdTUUw8L2Fw cGxpY2F0aW9uPiBsYW5ndWFnZSBoYXMgbm8gcGFja2FnZXMsIGFuZAorICAgICB0aGVyZWZvcmUg bm8gcGFja2FnZSB2YXJpYWJsZXMgb3IgcGFja2FnZSBjb25zdGFudHMuCisgICAgIFlvdSBjYW4g Y29uc2lkZXIgdHJhbnNsYXRpbmcgYW4gT3JhY2xlIHBhY2thZ2UgaW50byBhIHNjaGVtYSBpbgor ICAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+LiAgUGFja2FnZSBmdW5j dGlvbnMgYW5kIHByb2NlZHVyZXMKKyAgICAgd291bGQgdGhlbiBiZWNvbWUgZnVuY3Rpb25zIGFu ZCBwcm9jZWR1cmVzIGluIHRoYXQgc2NoZW1hLCBhbmQgcGFja2FnZQorICAgICB2YXJpYWJsZXMg Y291bGQgYmUgdHJhbnNsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxlcyBpbiB0aGF0IHNjaGVtYS4K KyAgICAgKHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiLz4pLgorICAg IDwvcGFyYT4KKyAgIDwvc2VjdDM+CiAgIDwvc2VjdDI+CiAKICAgPHNlY3QyIGlkPSJwbHBnc3Fs LXBvcnRpbmctYXBwZW5kaXgiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxl cy5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCmluZGV4IDJmNjdkZTNlMjEu LmNjM2JkNWFiNTQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKQEAgLTE1OCw2ICsxNTgsNyBAQCBD b21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9y eS4KIDwhRU5USVRZIGdyYW50ICAgICAgICAgICAgICBTWVNURU0gImdyYW50LnNnbWwiPgogPCFF TlRJVFkgaW1wb3J0Rm9yZWlnblNjaGVtYSBTWVNURU0gImltcG9ydF9mb3JlaWduX3NjaGVtYS5z Z21sIj4KIDwhRU5USVRZIGluc2VydCAgICAgICAgICAgICBTWVNURU0gImluc2VydC5zZ21sIj4K KzwhRU5USVRZIGxldCAgICAgICAgICAgICAgICBTWVNURU0gImxldC5zZ21sIj4KIDwhRU5USVRZ IGxpc3RlbiAgICAgICAgICAgICBTWVNURU0gImxpc3Rlbi5zZ21sIj4KIDwhRU5USVRZIGxvYWQg ICAgICAgICAgICAgICBTWVNURU0gImxvYWQuc2dtbCI+CiA8IUVOVElUWSBsb2NrICAgICAgICAg ICAgICAgU1lTVEVNICJsb2NrLnNnbWwiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9h bHRlcl92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21s CmluZGV4IDk2ZDI1ODY0MjMuLjIyMWE2OTk0NjkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9y ZWYvYWx0ZXJfdmFyaWFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3Zhcmlh YmxlLnNnbWwKQEAgLTE3Myw2ICsxNzMsNyBAQCBBTFRFUiBWQVJJQUJMRSBib28gU0VUIFNDSEVN QSBwcml2YXRlOwogICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgogICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4KICAgIDxtZW1iZXI+PHhy ZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtbGV0Ii8+PC9tZW1iZXI+CiAgIDwvc2ltcGxlbGlzdD4KICA8L3JlZnNl Y3QxPgogPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zh cmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCmluZGV4 IDZlOTg4ZjJlNDcuLmNkOWZmNjM5NzUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUu c2dtbApAQCAtMTIwLDkgKzEyMCwxMSBAQCBDUkVBVEUgVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RT IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYgogICA8dGl0 bGU+RXhhbXBsZXM8L3RpdGxlPgogCiAgIDxwYXJhPgotICAgQ3JlYXRlIGFuIGRhdGUgc2Vzc2lv biB2YXJpYWJsZSA8bGl0ZXJhbD52YXIxPC9saXRlcmFsPjoKKyAgIENyZWF0ZSBhIHNlc3Npb24g dmFyaWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD4gb2YgZGF0YSB0eXBlIGRhdGU6CiA8cHJv Z3JhbWxpc3Rpbmc+CiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBkYXRlOworTEVUIHZhcjEgPSBj dXJyZW50X2RhdGU7CitTRUxFQ1QgdmFyMTsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgIDwvcGFyYT4K IApAQCAtMTQzLDYgKzE0NSw3IEBAIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGRhdGU7CiAgIDxz aW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1h bHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1k cm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWxl dCIvPjwvbWVtYmVyPgogICA8L3NpbXBsZWxpc3Q+CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L2Ryb3BfdmFyaWFibGUuc2dtbAppbmRleCA1YmRiMzU2MGYwLi42Nzk4OGI1ZmNkIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbApAQCAtMTExLDYgKzExMSw3IEBAIERST1AgVkFSSUFC TEUgdmFyMTsKICAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KICAgIDxtZW1iZXI+PHhyZWYg bGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUiLz48L21lbWJlcj4KICAgIDxtZW1iZXI+PHhyZWYg bGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVm IGxpbmtlbmQ9InNxbC1sZXQiLz48L21lbWJlcj4KICAgPC9zaW1wbGVsaXN0PgogIDwvcmVmc2Vj dDE+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2xldC5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjAw ZjliZWE5MWYKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2xldC5zZ21sCkBA IC0wLDAgKzEsOTYgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKK1Bvc3RncmVT UUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWxldCI+CisgPGluZGV4 dGVybSB6b25lPSJzcWwtbGV0Ij4KKyAgPHByaW1hcnk+TEVUPC9wcmltYXJ5PgorIDwvaW5kZXh0 ZXJtPgorCisgPGluZGV4dGVybT4KKyAgPHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFy eT4KKyAgPHNlY29uZGFyeT5jaGFuZ2luZzwvc2Vjb25kYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisg PHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkxFVDwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZv bG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1l bnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5h bWU+TEVUPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5jaGFuZ2UgYSBzZXNzaW9uIHZhcmlhYmxl J3MgdmFsdWU8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2 PgorPHN5bm9wc2lzPgorTEVUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXNzaW9u X3ZhcmlhYmxlPC9yZXBsYWNlYWJsZT4gPSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ c3FsX2V4cHJlc3Npb248L3JlcGxhY2VhYmxlPgorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lz ZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxw YXJhPgorICAgVGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZCBhc3NpZ25zIGEgdmFs dWUgdG8gdGhlIHNwZWNpZmllZCBzZXNzaW9uCisgICB2YXJpYWJsZS4KKyAgPC9wYXJhPgorCisg PC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgor CisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXNzaW9uX3ZhcmlhYmxlPC9yZXBsYWNlYWJsZT48L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIG9mIHRoZSBz ZXNzaW9uIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFy bGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5zcWxfZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAg IDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBBbiBhcmJpdHJhcnkgU1FMIGV4cHJlc3Np b24uICBUaGUgcmVzdWx0IG11c3QgYmUgb2YgYSBkYXRhIHR5cGUgdGhhdCBjYW4KKyAgICAgIGJl IGNhc3QgdG8gdGhlIHR5cGUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgaW4gYW4gYXNzaWdubWVu dC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+ RXhhbXBsZXM8L3RpdGxlPgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIG15dmFy IEFTIGludGVnZXI7CitMRVQgbXl2YXIgPSAxMDsKK0xFVCBteXZhciA9IChTRUxFQ1Qgc3VtKHZh bCkgRlJPTSB0YWIpOworPC9wcm9ncmFtbGlzdGluZz4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNl Y3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUg PGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBpcyBhIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9k dWN0bmFtZT4KKyAgIGV4dGVuc2lvbi4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVm c2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0i aW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUiLz48 L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+ PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48 L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+Cis8L3JlZmVudHJ5PgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZmVy ZW5jZS5zZ21sCmluZGV4IDI1NTc4ZjM5NDYuLjEzZTRhZGM1ZGYgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwK QEAgLTE4Niw2ICsxODYsNyBAQAogICAgJmdyYW50OwogICAgJmltcG9ydEZvcmVpZ25TY2hlbWE7 CiAgICAmaW5zZXJ0OworICAgJmxldDsKICAgICZsaXN0ZW47CiAgICAmbG9hZDsKICAgICZsb2Nr OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwppbmRleCAxZGEwNzIwZjYxLi5jZTJlODg2NTYzIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYworKysgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwpAQCAtMTg2NCw2ICsxODY0LDExIEBAIGZpbmRfZXhw cl9yZWZlcmVuY2VzX3dhbGtlcihOb2RlICpub2RlLAogCXsKIAkJUGFyYW0JICAgKnBhcmFtID0g KFBhcmFtICopIG5vZGU7CiAKKwkJLyogYSB2YXJpYWJsZSBwYXJhbWV0ZXIgZGVwZW5kcyBvbiB0 aGUgc2Vzc2lvbiB2YXJpYWJsZSAqLworCQlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9W QVJJQUJMRSkKKwkJCWFkZF9vYmplY3RfYWRkcmVzcyhWYXJpYWJsZVJlbGF0aW9uSWQsIHBhcmFt LT5wYXJhbXZhcmlkLCAwLAorCQkJCQkJCSAgIGNvbnRleHQtPmFkZHJzKTsKKwogCQkvKiBBIHBh cmFtZXRlciBtdXN0IGRlcGVuZCBvbiB0aGUgcGFyYW1ldGVyJ3MgZGF0YXR5cGUgKi8KIAkJYWRk X29iamVjdF9hZGRyZXNzKFR5cGVSZWxhdGlvbklkLCBwYXJhbS0+cGFyYW10eXBlLCAwLAogCQkJ CQkJICAgY29udGV4dC0+YWRkcnMpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9u YW1lc3BhY2UuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKaW5kZXggNDMwN2Nh ZDE1Yy4uYmVhZmVlMmEzNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3Bh Y2UuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC0zNDk3LDYgKzM0 OTcsMjk1IEBAIE5hbWVzRnJvbUxpc3QoTGlzdCAqbmFtZXMpCiAJcmV0dXJuIHJlc3VsdDsKIH0K IAorLyogLS0tLS0KKyAqIElkZW50aWZ5VmFyaWFibGUgLSB0cnkgdG8gZmluZCBhIHZhcmlhYmxl IGZyb20gYSBsaXN0IG9mIGlkZW50aWZpZXJzCisgKgorICogUmV0dXJucyB0aGUgT0lEIG9mIHRo ZSB2YXJpYWJsZSBmb3VuZCwgb3IgSW52YWxpZE9pZC4KKyAqCisgKiAibmFtZXMiIGlzIGEgbGlz dCBvZiB1cCB0byBmb3VyIGlkZW50aWZpZXJzOyBwb3NzaWJsZSBtZWFuaW5ncyBhcmU6CisgKiAt IHZhcmlhYmxlICAoc2VhcmNoZWQgb24gdGhlIHNlYXJjaF9wYXRoKQorICogLSBzY2hlbWEudmFy aWFibGUKKyAqIC0gdmFyaWFibGUuYXR0cmlidXRlICAoc2VhcmNoZWQgb24gdGhlIHNlYXJjaF9w YXRoKQorICogLSBzY2hlbWEudmFyaWFibGUuYXR0cmlidXRlCisgKiAtIGRhdGFiYXNlLnNjaGVt YS52YXJpYWJsZQorICogLSBkYXRhYmFzZS5zY2hlbWEudmFyaWFibGUuYXR0cmlidXRlCisgKgor ICogSWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSB3YXkgdG8gaWRlbnRpZnkgYSB2YXJpYWJsZSwg Im5vdF91bmlxdWUiIHdpbGwgYmUKKyAqIHNldCB0byB0cnVlLgorICoKKyAqIFVubGVzcyAibm9l cnJvciIgaXMgdHJ1ZSwgYW4gZXJyb3IgaXMgcmFpc2VkIGlmIHRoZXJlIGFyZSBtb3JlIHRoYW4g Zm91cgorICogIGlkZW50aWZpZXJzIGluIHRoZSBsaXN0LCBvciBpZiB0aGUgbmFtZWQgZGF0YWJh c2UgaXMgbm90IHRoZSBjdXJyZW50IG9uZS4KKyAqIFRoaXMgaXMgdXNlZnVsIGlmIHdlIHdhbnQg dG8gaWRlbnRpZnkgYSBzaGFkb3dlZCB2YXJpYWJsZS4KKyAqCisgKiBJZiBhbiBhdHRyaWJ1dGUg aXMgaWRlbnRpZmllZCwgaXQgaXMgc3RvcmVkIGluICJhdHRybmFtZSIsIG90aGVyd2lzZSB0aGUK KyAqIHBhcmFtZXRlciBpcyBzZXQgdG8gTlVMTC4KKyAqCisgKiBUaGUgaWRlbnRpZmllZCBzZXNz aW9uIHZhcmlhYmxlIHdpbGwgYmUgbG9ja2VkIHdpdGggYW4gQWNjZXNzU2hhcmVMb2NrLgorICog LS0tLS0KKyAqLworT2lkCitJZGVudGlmeVZhcmlhYmxlKExpc3QgKm5hbWVzLCBjaGFyICoqYXR0 cm5hbWUsIGJvb2wgKm5vdF91bmlxdWUsIGJvb2wgbm9lcnJvcikKK3sKKwlPaWQJCQl2YXJpZCA9 IEludmFsaWRPaWQ7CisJT2lkCQkJb2xkX3ZhcmlkID0gSW52YWxpZE9pZDsKKwl1aW50NjQJCWlu dmFsX2NvdW50OworCWJvb2wJCXJldHJ5ID0gZmFsc2U7CisKKwkvKgorCSAqIERETCBvcGVyYXRp b25zIGNhbiBjaGFuZ2UgdGhlIHJlc3VsdHMgb2YgYSBuYW1lIGxvb2t1cC4gIFNpbmNlIGFsbCBz dWNoCisJICogb3BlcmF0aW9ucyB3aWxsIGdlbmVyYXRlIGludmFsaWRhdGlvbiBtZXNzYWdlcywg d2Uga2VlcCB0cmFjayBvZgorCSAqIHdoZXRoZXIgYW55IHN1Y2ggbWVzc2FnZXMgc2hvdyB1cCB3 aGlsZSB3ZSdyZSBwZXJmb3JtaW5nIHRoZSBvcGVyYXRpb24sCisJICogYW5kIHJldHJ5IHVudGls IGVpdGhlciAoMSkgbm8gbW9yZSBpbnZhbGlkYXRpb24gbWVzc2FnZXMgc2hvdyB1cCBvciAoMikK KwkgKiB0aGUgYW5zd2VyIGRvZXNuJ3QgY2hhbmdlLgorCSAqLworCWZvciAoOzspCisJeworCQlO b2RlCSAgICpmaWVsZDEgPSBOVUxMOworCQlOb2RlCSAgICpmaWVsZDIgPSBOVUxMOworCQlOb2Rl CSAgICpmaWVsZDMgPSBOVUxMOworCQlOb2RlCSAgICpmaWVsZDQgPSBOVUxMOworCQljaGFyCSAg ICphID0gTlVMTDsKKwkJY2hhcgkgICAqYiA9IE5VTEw7CisJCWNoYXIJICAgKmMgPSBOVUxMOwor CQljaGFyCSAgICpkID0gTlVMTDsKKwkJT2lkCQkJdmFyb2lkX3dpdGhvdXRfYXR0ciA9IEludmFs aWRPaWQ7CisJCU9pZAkJCXZhcm9pZF93aXRoX2F0dHIgPSBJbnZhbGlkT2lkOworCisJCSpub3Rf dW5pcXVlID0gZmFsc2U7CisJCSphdHRybmFtZSA9IE5VTEw7CisJCXZhcmlkID0gSW52YWxpZE9p ZDsKKworCQlpbnZhbF9jb3VudCA9IFNoYXJlZEludmFsaWRNZXNzYWdlQ291bnRlcjsKKworCQlz d2l0Y2ggKGxpc3RfbGVuZ3RoKG5hbWVzKSkKKwkJeworCQkJY2FzZSAxOgorCQkJCWZpZWxkMSA9 IGxpbml0aWFsKG5hbWVzKTsKKworCQkJCUFzc2VydChJc0EoZmllbGQxLCBTdHJpbmcpKTsKKwor CQkJCXZhcmlkID0gTG9va3VwVmFyaWFibGUoTlVMTCwgc3RyVmFsKGZpZWxkMSksIHRydWUpOwor CQkJCWJyZWFrOworCisJCQljYXNlIDI6CisJCQkJZmllbGQxID0gbGluaXRpYWwobmFtZXMpOwor CQkJCWZpZWxkMiA9IGxzZWNvbmQobmFtZXMpOworCisJCQkJQXNzZXJ0KElzQShmaWVsZDEsIFN0 cmluZykpOworCQkJCWEgPSBzdHJWYWwoZmllbGQxKTsKKworCQkJCWlmIChJc0EoZmllbGQyLCBT dHJpbmcpKQorCQkJCXsKKwkJCQkJLyogd2hlbiBib3RoIGZpZWxkcyBhcmUgb2Ygc3RyaW5nIHR5 cGUgKi8KKwkJCQkJYiA9IHN0clZhbChmaWVsZDIpOworCisJCQkJCS8qCisJCQkJCSAqIGEuYiBj YW4gbWVhbiAic2NoZW1hIi4idmFyaWFibGUiIG9yCisJCQkJCSAqICJ2YXJpYWJsZSIuImF0dHJp YnV0ZSIuICBDaGVjayBib3RoIHZhcmlhbnRzLCBhbmQKKwkJCQkJICogcmV0dXJucyBJbnZhbGlk T2lkIHdpdGggbm90X3VuaXF1ZSBmbGFnLCB3aGVuIGJvdGgKKwkJCQkJICogaW50ZXJwcmV0YXRp b25zIGFyZSBwb3NzaWJsZS4KKwkJCQkJICovCisJCQkJCXZhcm9pZF93aXRob3V0X2F0dHIgPSBM b29rdXBWYXJpYWJsZShhLCBiLCB0cnVlKTsKKwkJCQkJdmFyb2lkX3dpdGhfYXR0ciA9IExvb2t1 cFZhcmlhYmxlKE5VTEwsIGEsIHRydWUpOworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQkv KiB0aGUgbGFzdCBmaWVsZCBvZiBsaXN0IGNhbiBiZSBzdGFyIHRvbyAqLworCQkJCQlBc3NlcnQo SXNBKGZpZWxkMiwgQV9TdGFyKSk7CisKKwkJCQkJLyoKKwkJCQkJICogVGhlIHN5bnRheCBpZGVu dC4qIGlzIHVzZWQgb25seSBieSByZWxhdGlvbiBhbGlhc2VzLAorCQkJCQkgKiBhbmQgdGhlbiB0 aGlzIGlkZW50aWZpZXIgY2Fubm90IGJlIGEgcmVmZXJlbmNlIHRvCisJCQkJCSAqIHNlc3Npb24g dmFyaWFibGUuCisJCQkJCSAqLworCQkJCQlyZXR1cm4gSW52YWxpZE9pZDsKKwkJCQl9CisKKwkJ CQlpZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aG91dF9hdHRyKSAmJiBPaWRJc1ZhbGlkKHZhcm9p ZF93aXRoX2F0dHIpKQorCQkJCXsKKwkJCQkJKm5vdF91bmlxdWUgPSB0cnVlOworCQkJCQl2YXJp ZCA9IHZhcm9pZF93aXRob3V0X2F0dHI7CisJCQkJfQorCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQo dmFyb2lkX3dpdGhvdXRfYXR0cikpCisJCQkJeworCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRob3V0 X2F0dHI7CisJCQkJfQorCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhfYXR0cikp CisJCQkJeworCQkJCQkqYXR0cm5hbWUgPSBiOworCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRoX2F0 dHI7CisJCQkJfQorCQkJCWJyZWFrOworCisJCQljYXNlIDM6CisJCQkJeworCQkJCQlib29sCQlm aWVsZDFfaXNfY2F0YWxvZyA9IGZhbHNlOworCisJCQkJCWZpZWxkMSA9IGxpbml0aWFsKG5hbWVz KTsKKwkJCQkJZmllbGQyID0gbHNlY29uZChuYW1lcyk7CisJCQkJCWZpZWxkMyA9IGx0aGlyZChu YW1lcyk7CisKKwkJCQkJQXNzZXJ0KElzQShmaWVsZDEsIFN0cmluZykpOworCQkJCQlBc3NlcnQo SXNBKGZpZWxkMiwgU3RyaW5nKSk7CisKKwkJCQkJYSA9IHN0clZhbChmaWVsZDEpOworCQkJCQli ID0gc3RyVmFsKGZpZWxkMik7CisKKwkJCQkJaWYgKElzQShmaWVsZDMsIFN0cmluZykpCisJCQkJ CXsKKwkJCQkJCWMgPSBzdHJWYWwoZmllbGQzKTsKKworCQkJCQkJLyoKKwkJCQkJCSAqIGEuYi5j IGNhbiBtZWFuIGNhdGFsb2cuc2NoZW1hLnZhcmlhYmxlIG9yCisJCQkJCQkgKiBzY2hlbWEudmFy aWFibGUuYXR0cmlidXRlLgorCQkJCQkJICoKKwkJCQkJCSAqIENoZWNrIGJvdGggdmFyaWFudHMs IGFuZCBzZXQgbm90X3VuaXF1ZSBmbGFnLCB3aGVuCisJCQkJCQkgKiBib3RoIGludGVycHJldGF0 aW9ucyBhcmUgcG9zc2libGUuCisJCQkJCQkgKgorCQkJCQkJICogV2hlbiB0aGlyZCBub2RlIGlz IHN0YXIsIG9ubHkgcG9zc2libGUKKwkJCQkJCSAqIGludGVycHJldGF0aW9uIGlzIHNjaGVtYS52 YXJpYWJsZS4qLCBidXQgdGhpcworCQkJCQkJICogcGF0dGVybiBpcyBub3Qgc3VwcG9ydGVkIG5v dy4KKwkJCQkJCSAqLworCQkJCQkJdmFyb2lkX3dpdGhfYXR0ciA9IExvb2t1cFZhcmlhYmxlKGEs IGIsIHRydWUpOworCisJCQkJCQkvKgorCQkJCQkJICogY2hlY2sgcGF0dGVybiBjYXRhbG9nLnNj aGVtYS52YXJpYWJsZSBvbmx5IHdoZW4KKwkJCQkJCSAqIHRoZXJlIGlzIHBvc3NpYmlsaXR5IHRv IHN1Y2Nlc3MuCisJCQkJCQkgKi8KKwkJCQkJCWlmIChzdHJjbXAoYSwgZ2V0X2RhdGFiYXNlX25h bWUoTXlEYXRhYmFzZUlkKSkgPT0gMCkKKwkJCQkJCXsKKwkJCQkJCQlmaWVsZDFfaXNfY2F0YWxv ZyA9IHRydWU7CisJCQkJCQkJdmFyb2lkX3dpdGhvdXRfYXR0ciA9IExvb2t1cFZhcmlhYmxlKGIs IGMsIHRydWUpOworCQkJCQkJfQorCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJeworCQkJCQkJQXNz ZXJ0KElzQShmaWVsZDMsIEFfU3RhcikpOworCQkJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCQkJ CX0KKworCQkJCQlpZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aG91dF9hdHRyKSAmJiBPaWRJc1Zh bGlkKHZhcm9pZF93aXRoX2F0dHIpKQorCQkJCQl7CisJCQkJCQkqbm90X3VuaXF1ZSA9IHRydWU7 CisJCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRob3V0X2F0dHI7CisJCQkJCX0KKwkJCQkJZWxzZSBp ZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aG91dF9hdHRyKSkKKwkJCQkJeworCQkJCQkJdmFyaWQg PSB2YXJvaWRfd2l0aG91dF9hdHRyOworCQkJCQl9CisJCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQo dmFyb2lkX3dpdGhfYXR0cikpCisJCQkJCXsKKwkJCQkJCSphdHRybmFtZSA9IGM7CisJCQkJCQl2 YXJpZCA9IHZhcm9pZF93aXRoX2F0dHI7CisJCQkJCX0KKworCQkJCQkvKgorCQkJCQkgKiBXaGVu IHdlIGRpZG4ndCBmaW5kIHZhcmlhYmxlLCB3ZSBjYW4gKHdoZW4gaXQgaXMKKwkJCQkJICogYWxs b3dlZCkgcmFpc2UgY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlIGVycm9yLgorCQkJCQkgKi8KKwkJ CQkJaWYgKCFPaWRJc1ZhbGlkKHZhcmlkKSAmJiAhbm9lcnJvciAmJiAhZmllbGQxX2lzX2NhdGFs b2cpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkJCSBlcnJtc2coImNyb3NzLWRhdGFiYXNlIHJlZmVy ZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogJXMiLAorCQkJCQkJCQkJCU5hbWVMaXN0VG9TdHJp bmcobmFtZXMpKSkpOworCQkJCX0KKwkJCQlicmVhazsKKworCQkJY2FzZSA0OgorCQkJCXsKKwkJ CQkJZmllbGQxID0gbGluaXRpYWwobmFtZXMpOworCQkJCQlmaWVsZDIgPSBsc2Vjb25kKG5hbWVz KTsKKwkJCQkJZmllbGQzID0gbHRoaXJkKG5hbWVzKTsKKwkJCQkJZmllbGQ0ID0gbGZvdXJ0aChu YW1lcyk7CisKKwkJCQkJQXNzZXJ0KElzQShmaWVsZDEsIFN0cmluZykpOworCQkJCQlBc3NlcnQo SXNBKGZpZWxkMiwgU3RyaW5nKSk7CisJCQkJCUFzc2VydChJc0EoZmllbGQzLCBTdHJpbmcpKTsK KworCQkJCQlhID0gc3RyVmFsKGZpZWxkMSk7CisJCQkJCWIgPSBzdHJWYWwoZmllbGQyKTsKKwkJ CQkJYyA9IHN0clZhbChmaWVsZDMpOworCisJCQkJCS8qCisJCQkJCSAqIEluIHRoaXMgY2FzZSwg ImEiIGlzIHVzZWQgYXMgY2F0YWxvZyBuYW1lIC0gY2hlY2sgaXQuCisJCQkJCSAqLworCQkJCQlp ZiAoc3RyY21wKGEsIGdldF9kYXRhYmFzZV9uYW1lKE15RGF0YWJhc2VJZCkpICE9IDApCisJCQkJ CXsKKwkJCQkJCWlmICghbm9lcnJvcikKKwkJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkJ KGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJCQkJIGVycm1z ZygiY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAlcyIsCisJ CQkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSkpOworCQkJCQl9CisKKwkJCQkJaWYg KElzQShmaWVsZDQsIFN0cmluZykpCisJCQkJCXsKKwkJCQkJCWQgPSBzdHJWYWwoZmllbGQ0KTsK KwkJCQkJfQorCQkJCQllbHNlCisJCQkJCXsKKwkJCQkJCUFzc2VydChJc0EoZmllbGQ0LCBBX1N0 YXIpKTsKKwkJCQkJCXJldHVybiBJbnZhbGlkT2lkOworCQkJCQl9CisKKwkJCQkJKmF0dHJuYW1l ID0gZDsKKwkJCQkJdmFyaWQgPSBMb29rdXBWYXJpYWJsZShiLCBjLCB0cnVlKTsKKwkJCQl9CisJ CQkJYnJlYWs7CisKKwkJCWRlZmF1bHQ6CisJCQkJaWYgKCFub2Vycm9yKQorCQkJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCQkg ZXJybXNnKCJpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTog JXMiLAorCQkJCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJCQkJcmV0dXJuIElu dmFsaWRPaWQ7CisJCX0KKworCQkvKgorCQkgKiBJZiwgdXBvbiByZXRyeSwgd2UgZ2V0IGJhY2sg dGhlIHNhbWUgT0lEIHdlIGRpZCBsYXN0IHRpbWUsIHRoZW4gdGhlCisJCSAqIGludmFsaWRhdGlv biBtZXNzYWdlcyB3ZSBwcm9jZXNzZWQgZGlkIG5vdCBjaGFuZ2UgdGhlIGZpbmFsIGFuc3dlci4K KwkJICogU28gd2UncmUgZG9uZS4KKwkJICoKKwkJICogSWYgd2UgZ290IGEgZGlmZmVyZW50IE9J RCwgd2UndmUgbG9ja2VkIHRoZSB2YXJpYWJsZSB0aGF0IHVzZWQgdG8KKwkJICogaGF2ZSB0aGlz IG5hbWUgcmF0aGVyIHRoYW4gdGhlIG9uZSB0aGF0IGRvZXMgbm93LiAgU28gcmVsZWFzZSB0aGUK KwkJICogbG9jay4KKwkJICovCisJCWlmIChyZXRyeSkKKwkJeworCQkJaWYgKG9sZF92YXJpZCA9 PSB2YXJpZCkKKwkJCQlicmVhazsKKworCQkJaWYgKE9pZElzVmFsaWQob2xkX3ZhcmlkKSkKKwkJ CQlVbmxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIG9sZF92YXJpZCwgMCwg QWNjZXNzU2hhcmVMb2NrKTsKKwkJfQorCisJCS8qCisJCSAqIExvY2sgdGhlIHZhcmlhYmxlLiAg VGhpcyB3aWxsIGFsc28gYWNjZXB0IGFueSBwZW5kaW5nIGludmFsaWRhdGlvbgorCQkgKiBtZXNz YWdlcy4gIElmIHdlIGdvdCBiYWNrIEludmFsaWRPaWQsIGluZGljYXRpbmcgbm90IGZvdW5kLCB0 aGVuCisJCSAqIHRoZXJlJ3Mgbm90aGluZyB0byBsb2NrLCBidXQgd2UgYWNjZXB0IGludmFsaWRh dGlvbiBtZXNzYWdlcworCQkgKiBhbnl3YXksIHRvIGZsdXNoIGFueSBuZWdhdGl2ZSBjYXRjYWNo ZSBlbnRyaWVzIHRoYXQgbWF5IGJlCisJCSAqIGxpbmdlcmluZy4KKwkJICovCisJCWlmICghT2lk SXNWYWxpZCh2YXJpZCkpCisJCQlBY2NlcHRJbnZhbGlkYXRpb25NZXNzYWdlcygpOworCQllbHNl CisJCQlMb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgQWNj ZXNzU2hhcmVMb2NrKTsKKworCQkvKgorCQkgKiBJZiBubyBpbnZhbGlkYXRpb24gbWVzc2FnZSB3 ZXJlIHByb2Nlc3NlZCwgd2UncmUgZG9uZSEKKwkJICovCisJCWlmIChpbnZhbF9jb3VudCA9PSBT aGFyZWRJbnZhbGlkTWVzc2FnZUNvdW50ZXIpCisJCQlicmVhazsKKworCQlyZXRyeSA9IHRydWU7 CisJCW9sZF92YXJpZCA9IHZhcmlkOworCQl2YXJpZCA9IEludmFsaWRPaWQ7CisJfQorCisJcmV0 dXJuIHZhcmlkOworfQorCiAvKgogICogRGVjb25zdHJ1Y3RRdWFsaWZpZWROYW1lCiAgKgkJR2l2 ZW4gYSBwb3NzaWJseS1xdWFsaWZpZWQgbmFtZSBleHByZXNzZWQgYXMgYSBsaXN0IG9mIFN0cmlu ZyBub2RlcywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCAyOWQ5NjdhMmQ1Li5iYjQ0 NWU5NDM0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysr IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCkBAIC0yNiw2ICsyNiw3IEBACiAj aW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5o IgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3BnX2xzbi5o IgogI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAKIHN0YXRpYyBPYmplY3RBZGRyZXNzIGNy ZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLApAQCAtMTAxLDYgKzEwMiw3IEBAIGNy ZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCXZhcmlkID0gR2V0TmV3T2lkV2l0 aEluZGV4KHJlbCwgVmFyaWFibGVPaWRJbmRleElkLCBBbnVtX3BnX3ZhcmlhYmxlX29pZCk7CiAK IAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV9vaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFy aWQpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmNyZWF0ZV9sc24gLSAxXSA9IExTTkdl dERhdHVtKEdldFhMb2dJbnNlcnRSZWNQdHIoKSk7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVf dmFybmFtZSAtIDFdID0gTmFtZUdldERhdHVtKCZ2YXJuYW1lKTsKIAl2YWx1ZXNbQW51bV9wZ192 YXJpYWJsZV92YXJuYW1lc3BhY2UgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyTmFtZXNwYWNl KTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBlIC0gMV0gPSBPYmplY3RJZEdldERh dHVtKHZhclR5cGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQppbmRleCA0OGY3MzQ4ZjkxLi4xY2ZhZWNh NTFlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQorKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQpAQCAtNTAsNiArNTAsNyBAQCBPQkpTID0gXAogCXNj aGVtYWNtZHMubyBcCiAJc2VjbGFiZWwubyBcCiAJc2VxdWVuY2UubyBcCisJc2Vzc2lvbl92YXJp YWJsZS5vIFwKIAlzdGF0c2NtZHMubyBcCiAJc3Vic2NyaXB0aW9uY21kcy5vIFwKIAl0YWJsZWNt ZHMubyBcCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZCBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCmluZGV4IGVmMGQ0MDdhMzguLmNlMTYxOWUz MDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCisrKyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCkBAIC0zOCw2ICszOCw3IEBAIGJhY2tlbmRf c291cmNlcyArPSBmaWxlcygKICAgJ3NjaGVtYWNtZHMuYycsCiAgICdzZWNsYWJlbC5jJywKICAg J3NlcXVlbmNlLmMnLAorICAnc2Vzc2lvbl92YXJpYWJsZS5jJywKICAgJ3N0YXRzY21kcy5jJywK ICAgJ3N1YnNjcmlwdGlvbmNtZHMuYycsCiAgICd0YWJsZWNtZHMuYycsCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVw YXJlLmMKaW5kZXggODk4OWMwYzg4Mi4uOTAyYjAyMmY5YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvcHJlcGFyZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUu YwpAQCAtMzM4LDYgKzMzOCwxNiBAQCBFdmFsdWF0ZVBhcmFtcyhQYXJzZVN0YXRlICpwc3RhdGUs IFByZXBhcmVkU3RhdGVtZW50ICpwc3RtdCwgTGlzdCAqcGFyYW1zLAogCQlpKys7CiAJfQogCisJ LyoKKwkgKiBUaGUgYXJndW1lbnRzIG9mIEVYRUNVVEUgYXJlIGV2YWx1YXRlZCBieSBhIGRpcmVj dCBleHByZXNzaW9uCisJICogZXhlY3V0b3IgY2FsbC4gIFRoaXMgbW9kZSBkb2Vzbid0IHN1cHBv cnQgc2Vzc2lvbiB2YXJpYWJsZXMgeWV0LgorCSAqIEl0IHdpbGwgYmUgZW5hYmxlZCBsYXRlci4K KwkgKi8KKwlpZiAocHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMpCisJCWVyZXBvcnQoRVJS T1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBl cnJtc2coInNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQiKSkp OworCiAJLyogUHJlcGFyZSB0aGUgZXhwcmVzc2lvbnMgZm9yIGV4ZWN1dGlvbiAqLwogCWV4cHJz dGF0ZXMgPSBFeGVjUHJlcGFyZUV4cHJMaXN0KHBhcmFtcywgZXN0YXRlKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAuLjI0NTZhMzQ1MmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTAsMCArMSw1MjkgQEAKKy8qLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICoKKyAqIHNlc3Npb25fdmFyaWFibGUuYworICoJICBzZXNzaW9uIHZhcmlhYmxlIGNy ZWF0aW9uL21hbmlwdWxhdGlvbiBjb21tYW5kcworICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5Ni0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENh bGlmb3JuaWEKKyAqCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNp bmNsdWRlICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgor I2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKKyNpbmNsdWRlICJleGVjdXRv ci9zdmFyaWFibGVSZWNlaXZlci5oIgorI2luY2x1ZGUgImZ1bmNhcGkuaCIKKyNpbmNsdWRlICJt aXNjYWRtaW4uaCIKKyNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgiCisjaW5jbHVk ZSAic3RvcmFnZS9sbWdyLmgiCisjaW5jbHVkZSAic3RvcmFnZS9wcm9jLmgiCisjaW5jbHVkZSAi dGNvcC90Y29wcHJvdC5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAi dXRpbHMvZGF0dW0uaCIKKyNpbmNsdWRlICJ1dGlscy9pbnZhbC5oIgorI2luY2x1ZGUgInV0aWxz L2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKKyNpbmNsdWRlICJ1dGls cy9zeXNjYWNoZS5oIgorCisvKgorICogVGhlIHZhbHVlcyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBh cmUgc3RvcmVkIGluIHRoZSBiYWNrZW5kJ3MgcHJpdmF0ZSBtZW1vcnkKKyAqIGluIHRoZSBkZWRp Y2F0ZWQgbWVtb3J5IGNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCBpbiBiaW5hcnkgZm9y bWF0LgorICogVGhleSBhcmUgc3RvcmVkIGluIHRoZSAic2Vzc2lvbnZhcnMiIGhhc2ggdGFibGUs IHdob3NlIGtleSBpcyB0aGUgT0lEIG9mIHRoZQorICogdmFyaWFibGUuICBIb3dldmVyLCB0aGUg T0lEIGlzIG5vdCBnb29kIGVub3VnaCB0byBpZGVudGlmeSBhIHNlc3Npb24KKyAqIHZhcmlhYmxl OiBjb25jdXJyZW50IHNlc3Npb25zIGNvdWxkIGRyb3AgdGhlIHNlc3Npb24gdmFyaWFibGUgYW5k IGNyZWF0ZSBhCisgKiBuZXcgb25lLCB3aGljaCBjb3VsZCBiZSBhc3NpZ25lZCB0aGUgc2FtZSBP SUQuICBUbyBlbnN1cmUgdGhhdCB0aGUgdmFsdWVzCisgKiBzdG9yZWQgaW4gbWVtb3J5IGFuZCB0 aGUgY2F0YWxvZyBkZWZpbml0aW9uIG1hdGNoLCB3ZSBhbHNvIGtlZXAgdHJhY2sgb2YKKyAqIHRo ZSAiY3JlYXRlX2xzbiIuICBCZWZvcmUgYW55IGFjY2VzcyB0byB0aGUgdmFyaWFibGUgdmFsdWVz LCB3ZSBuZWVkIHRvCisgKiBjaGVjayBpZiB0aGUgTFNOIHN0b3JlZCBpbiBtZW1vcnkgbWF0Y2hl cyB0aGUgTFNOIGluIHRoZSBjYXRhbG9nLiAgSWYgdGhlcmUKKyAqIGlzIGEgbWlzbWF0Y2ggYmV0 d2VlbiB0aGUgTFNOcywgb3IgaWYgdGhlIE9JRCBpcyBub3QgcHJlc2VudCBpbiBwZ192YXJpYWJs ZQorICogYXQgYWxsLCB0aGUgdmFsdWUgc3RvcmVkIGluIG1lbW9yeSBpcyByZWxlYXNlZC4KKyAq LwordHlwZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlRGF0YQoreworCU9pZAkJCXZhcmlkOwkJCS8qIHBn X3ZhcmlhYmxlIE9JRCBvZiB0aGUgdmFyaWFibGUgKGhhc2gga2V5KSAqLworCVhMb2dSZWNQdHIJ Y3JlYXRlX2xzbjsKKworCWJvb2wJCWlzbnVsbDsKKwlEYXR1bQkJdmFsdWU7CisKKwlPaWQJCQl0 eXBpZDsKKwlpbnQxNgkJdHlwbGVuOworCWJvb2wJCXR5cGJ5dmFsOworCisJYm9vbAkJaXNfZG9t YWluOworCisJLyoKKwkgKiBkb21haW5fY2hlY2tfZXh0cmEgaG9sZHMgY2FjaGVkIGRvbWFpbiBt ZXRhZGF0YS4gIFRoaXMgImV4dHJhIiBpcworCSAqIHVzdWFsbHkgc3RvcmVkIGluIGZuX21jeHQu ICBXZSBkbyBub3QgaGF2ZSBhY2Nlc3MgdG8gdGhhdCBtZW1vcnkgY29udGV4dAorCSAqIGZvciBz ZXNzaW9uIHZhcmlhYmxlcywgYnV0IHdlIGNhbiB1c2UgVG9wVHJhbnNhY3Rpb25Db250ZXh0IGlu c3RlYWQuCisJICogQSBmcmVzaCB2YWx1ZSBpcyBmb3JjZWQgd2hlbiB3ZSBkZXRlY3Qgd2UgYXJl IGluIGEgZGlmZmVyZW50IHRyYW5zYWN0aW9uCisJICogKHRoZSBsb2NhbCB0cmFuc2FjdGlvbiBJ RCBkaWZmZXJzIGZyb20gZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQpLgorCSAqLworCXZvaWQJICAg KmRvbWFpbl9jaGVja19leHRyYTsKKwlMb2NhbFRyYW5zYWN0aW9uSWQgZG9tYWluX2NoZWNrX2V4 dHJhX2x4aWQ7CisKKwkvKgorCSAqIFN0b3JlZCB2YWx1ZSBhbmQgdHlwZSBkZXNjcmlwdGlvbiBj YW4gYmUgb3V0ZGF0ZWQgd2hlbiB3ZSByZWNlaXZlIGEKKwkgKiBzaW52YWwgbWVzc2FnZS4gIFdl IHRoZW4gaGF2ZSB0byBjaGVjayBpZiB0aGUgc3RvcmVkIGRhdGEgYXJlIHN0aWxsCisJICogdHJ1 c3R3b3J0aHkuCisJICovCisJYm9vbAkJaXNfdmFsaWQ7CisKKwl1aW50MzIJCWhhc2h2YWx1ZTsJ CS8qIHVzZWQgZm9yIHBhaXJpbmcgc2ludmFsIG1lc3NhZ2UgKi8KK30gU1ZhcmlhYmxlRGF0YTsK KwordHlwZWRlZiBTVmFyaWFibGVEYXRhICpTVmFyaWFibGU7CisKK3N0YXRpYyBIVEFCICpzZXNz aW9udmFycyA9IE5VTEw7CS8qIGhhc2ggdGFibGUgZm9yIHNlc3Npb24gdmFyaWFibGVzICovCisK K3N0YXRpYyBNZW1vcnlDb250ZXh0IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgPSBOVUxMOworCisv KgorICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHNlc3Npb24gdmFyaWFibGUgaW52YWxpZGF0aW9u LgorICovCitzdGF0aWMgdm9pZAorcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2soRGF0dW0gYXJn LCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKK3sKKwlIQVNIX1NFUV9TVEFUVVMgc3Rh dHVzOworCVNWYXJpYWJsZQlzdmFyOworCisJZWxvZyhERUJVRzEsICJwZ192YXJpYWJsZV9jYWNo ZV9jYWxsYmFjayAldSAldSIsIGNhY2hlaWQsIGhhc2h2YWx1ZSk7CisKKwlBc3NlcnQoc2Vzc2lv bnZhcnMpOworCisJLyoKKwkgKiBJZiB0aGUgaGFzaHZhbHVlIGlzIG5vdCBzcGVjaWZpZWQsIHdl IGhhdmUgdG8gcmVjaGVjayBhbGwgY3VycmVudGx5CisJICogdXNlZCBzZXNzaW9uIHZhcmlhYmxl cy4gIFNpbmNlIHdlIGNhbid0IHRlbGwgdGhlIGV4YWN0IHNlc3Npb24gdmFyaWFibGUKKwkgKiBm cm9tIGl0cyBoYXNodmFsdWUsIHdlIGhhdmUgdG8gaXRlcmF0ZSBvdmVyIGFsbCBpdGVtcyBpbiB0 aGUgaGFzaCBidWNrZXQuCisJICovCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFy cyk7CisKKwl3aGlsZSAoKHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1 cykpICE9IE5VTEwpCisJeworCQlpZiAoaGFzaHZhbHVlID09IDAgfHwgc3Zhci0+aGFzaHZhbHVl ID09IGhhc2h2YWx1ZSkKKwkJeworCQkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKKwkJfQorCX0K K30KKworLyoKKyAqIFJlbGVhc2Ugc3RvcmVkIHZhbHVlLCBmcmVlIG1lbW9yeQorICovCitzdGF0 aWMgdm9pZAorZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKFNWYXJpYWJsZSBzdmFyKQorewor CS8qIGNsZWFuIHRoZSBjdXJyZW50IHZhbHVlICovCisJaWYgKCFzdmFyLT5pc251bGwpCisJewor CQlpZiAoIXN2YXItPnR5cGJ5dmFsKQorCQkJcGZyZWUoRGF0dW1HZXRQb2ludGVyKHN2YXItPnZh bHVlKSk7CisKKwkJc3Zhci0+aXNudWxsID0gdHJ1ZTsKKwl9CisKKwlzdmFyLT52YWx1ZSA9IChE YXR1bSkgMDsKK30KKworLyoKKyAqIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSBlbnRyeSBpbiBwZ192 YXJpYWJsZSBpcyBjb25zaXN0ZW50IHdpdGggdGhlIGdpdmVuCisgKiBzZXNzaW9uIHZhcmlhYmxl LgorICovCitzdGF0aWMgYm9vbAoraXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChTVmFyaWFibGUg c3ZhcikKK3sKKwlIZWFwVHVwbGUJdHA7CisJYm9vbAkJcmVzdWx0ID0gZmFsc2U7CisKKwlBc3Nl cnQoT2lkSXNWYWxpZChzdmFyLT52YXJpZCkpOworCisJdHAgPSBTZWFyY2hTeXNDYWNoZTEoVkFS SUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dmFyaWQpKTsKKworCWlmIChIZWFwVHVw bGVJc1ZhbGlkKHRwKSkKKwl7CisJCS8qCisJCSAqIFRoZSBPSUQgYWxvbmUgaXMgbm90IGVub3Vn aCBhcyBhbiB1bmlxdWUgaWRlbnRpZmllciwgYmVjYXVzZSBPSUQKKwkJICogdmFsdWVzIGdldCBy ZWN5Y2xlZCwgYW5kIGEgbmV3IHNlc3Npb24gdmFyaWFibGUgY291bGQgaGF2ZSBnb3QKKwkJICog dGhlIHNhbWUgT0lELiAgV2UgZG8gYSBzZWNvbmQgY2hlY2sgYWdhaW5zdCB0aGUgNjQtYml0IExT TiB3aGVuCisJCSAqIHRoZSB2YXJpYWJsZSB3YXMgY3JlYXRlZC4KKwkJICovCisJCWlmIChzdmFy LT5jcmVhdGVfbHNuID09ICgoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHRwKSktPnZhcmNy ZWF0ZV9sc24pCisJCQlyZXN1bHQgPSB0cnVlOworCisJCVJlbGVhc2VTeXNDYWNoZSh0cCk7CisJ fQorCisJcmV0dXJuIHJlc3VsdDsKK30KKworLyoKKyAqIEluaXRpYWxpemUgYXR0cmlidXRlcyBj YWNoZWQgaW4gInN2YXIiCisgKi8KK3N0YXRpYyB2b2lkCitzZXR1cF9zZXNzaW9uX3ZhcmlhYmxl KFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3Bn X3ZhcmlhYmxlIHZhcmZvcm07CisKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJpZCkpOworCisJdHVw ID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7 CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxv b2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3Jt ID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJc3Zhci0+dmFyaWQgPSB2 YXJpZDsKKwlzdmFyLT5jcmVhdGVfbHNuID0gdmFyZm9ybS0+dmFyY3JlYXRlX2xzbjsKKworCXN2 YXItPnR5cGlkID0gdmFyZm9ybS0+dmFydHlwZTsKKworCWdldF90eXBsZW5ieXZhbChzdmFyLT50 eXBpZCwgJnN2YXItPnR5cGxlbiwgJnN2YXItPnR5cGJ5dmFsKTsKKworCXN2YXItPmlzX2RvbWFp biA9IChnZXRfdHlwdHlwZSh2YXJmb3JtLT52YXJ0eXBlKSA9PSBUWVBUWVBFX0RPTUFJTik7CisJ c3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKKwlzdmFyLT5kb21haW5fY2hlY2tfZXh0 cmFfbHhpZCA9IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQ7CisKKwlzdmFyLT5pc251bGwgPSB0 cnVlOworCXN2YXItPnZhbHVlID0gKERhdHVtKSAwOworCisJc3Zhci0+aXNfdmFsaWQgPSB0cnVl OworCisJc3Zhci0+aGFzaHZhbHVlID0gR2V0U3lzQ2FjaGVIYXNoVmFsdWUxKFZBUklBQkxFT0lE LAorCQkJCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlSZWxlYXNlU3lzQ2Fj aGUodHVwKTsKK30KKworLyoKKyAqIEFzc2lnbiBhIG5ldyB2YWx1ZSB0byB0aGUgc2Vzc2lvbiB2 YXJpYWJsZS4gIEl0IGlzIGNvcGllZCB0bworICogU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCBpZiBu ZWNlc3NhcnkuCisgKgorICogSWYgYW55IGVycm9yIGhhcHBlbnMsIHRoZSBleGlzdGluZyB2YWx1 ZSB3b24ndCBiZSBtb2RpZmllZC4KKyAqLworc3RhdGljIHZvaWQKK3NldF9zZXNzaW9uX3Zhcmlh YmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCit7CisJRGF0dW0J CW5ld3ZhbDsKKwlTVmFyaWFibGVEYXRhIGxvY3N2YXIsCisJCQkgICAqX3N2YXI7CisKKwlBc3Nl cnQoc3Zhcik7CisJQXNzZXJ0KCFpc251bGwgfHwgdmFsdWUgPT0gKERhdHVtKSAwKTsKKworCS8q CisJICogVXNlIHR5cGJ5dmFsLCB0eXBieWxlbiBmcm9tIHNlc3Npb24gdmFyaWFibGUgb25seSB3 aGVuIHRoZXkgYXJlCisJICogdHJ1c3R3b3J0aHkgKHRoZSBpbnZhbGlkYXRpb24gbWVzc2FnZSB3 YXMgbm90IGFjY2VwdGVkIGZvciB0aGlzCisJICogdmFyaWFibGUpLiAgSWYgdGhlIHZhcmlhYmxl IG1pZ2h0IGJlIGludmFsaWQsIGZvcmNlIHNldHVwLgorCSAqCisJICogRG8gbm90IG92ZXJ3cml0 ZSB0aGUgcGFzc2VkIHNlc3Npb24gdmFyaWFibGUgdW50aWwgd2UgY2FuIGJlIGNlcnRhaW4KKwkg KiB0aGF0IG5vIGVycm9yIGNhbiBiZSB0aHJvd24uCisJICovCisJaWYgKCFzdmFyLT5pc192YWxp ZCkKKwl7CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoJmxvY3N2YXIsIHN2YXItPnZhcmlkKTsK KwkJX3N2YXIgPSAmbG9jc3ZhcjsKKwl9CisJZWxzZQorCQlfc3ZhciA9IHN2YXI7CisKKwlpZiAo IWlzbnVsbCkKKwl7CisJCU1lbW9yeUNvbnRleHQgb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRj aFRvKFNWYXJpYWJsZU1lbW9yeUNvbnRleHQpOworCisJCW5ld3ZhbCA9IGRhdHVtQ29weSh2YWx1 ZSwgX3N2YXItPnR5cGJ5dmFsLCBfc3Zhci0+dHlwbGVuKTsKKworCQlNZW1vcnlDb250ZXh0U3dp dGNoVG8ob2xkY3h0KTsKKwl9CisJZWxzZQorCQluZXd2YWwgPSB2YWx1ZTsKKworCWZyZWVfc2Vz c2lvbl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKworCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJp YWJsZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFzIG5ldyB2YWx1ZSIsCisJCSBnZXRfbmFtZXNwYWNl X25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCisJCSBn ZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHN2YXItPnZhcmlkKSwKKwkJIHN2YXItPnZhcmlkKTsK KworCS8qIG5vIG1vcmUgZXJyb3IgZXhwZWN0ZWQsIHNvIHdlIGNhbiBvdmVyd3JpdGUgdGhlIG9s ZCB2YXJpYWJsZSBub3cgKi8KKwlpZiAoc3ZhciAhPSBfc3ZhcikKKwkJbWVtY3B5KHN2YXIsIF9z dmFyLCBzaXplb2YoU1ZhcmlhYmxlRGF0YSkpOworCisJc3Zhci0+dmFsdWUgPSBuZXd2YWw7CisJ c3Zhci0+aXNudWxsID0gaXNudWxsOworfQorCisvKgorICogQ3JlYXRlIHRoZSBoYXNoIHRhYmxl IGZvciBzdG9yaW5nIHNlc3Npb24gdmFyaWFibGVzLgorICovCitzdGF0aWMgdm9pZAorY3JlYXRl X3Nlc3Npb252YXJzX2hhc2h0YWJsZXModm9pZCkKK3sKKwlIQVNIQ1RMCQl2YXJzX2N0bDsKKwor CUFzc2VydCghc2Vzc2lvbnZhcnMpOworCisJaWYgKCFTVmFyaWFibGVNZW1vcnlDb250ZXh0KQor CXsKKwkJLyogcmVhZCBzaW52YWwgbWVzc2FnZXMgKi8KKwkJQ2FjaGVSZWdpc3RlclN5c2NhY2hl Q2FsbGJhY2soVkFSSUFCTEVPSUQsCisJCQkJCQkJCQkgIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxi YWNrLAorCQkJCQkJCQkJICAoRGF0dW0pIDApOworCisJCS8qIHdlIG5lZWQgb3VyIG93biBsb25n LWxpdmVkIG1lbW9yeSBjb250ZXh0ICovCisJCVNWYXJpYWJsZU1lbW9yeUNvbnRleHQgPQorCQkJ QWxsb2NTZXRDb250ZXh0Q3JlYXRlKFRvcE1lbW9yeUNvbnRleHQsCisJCQkJCQkJCSAgInNlc3Np b24gdmFyaWFibGVzIiwKKwkJCQkJCQkJICBBTExPQ1NFVF9TVEFSVF9TTUFMTF9TSVpFUyk7CisJ fQorCisJbWVtc2V0KCZ2YXJzX2N0bCwgMCwgc2l6ZW9mKHZhcnNfY3RsKSk7CisJdmFyc19jdGwu a2V5c2l6ZSA9IHNpemVvZihPaWQpOworCXZhcnNfY3RsLmVudHJ5c2l6ZSA9IHNpemVvZihTVmFy aWFibGVEYXRhKTsKKwl2YXJzX2N0bC5oY3h0ID0gU1ZhcmlhYmxlTWVtb3J5Q29udGV4dDsKKwor CXNlc3Npb252YXJzID0gaGFzaF9jcmVhdGUoIlNlc3Npb24gdmFyaWFibGVzIiwgNjQsICZ2YXJz X2N0bCwKKwkJCQkJCQkgIEhBU0hfRUxFTSB8IEhBU0hfQkxPQlMgfCBIQVNIX0NPTlRFWFQpOwor fQorCisvKgorICogU2VhcmNoIGEgc2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGUgaGFzaCB0YWJsZSBn aXZlbiBpdHMgT0lELiAgSWYgaXQKKyAqIGRvZXNuJ3QgZXhpc3QsIHRoZW4gaW5zZXJ0IGl0IHRo ZXJlLgorICoKKyAqIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGRvaW5nIHBlcm1pc3Np b24gY2hlY2tzLgorICoKKyAqIEFzIGEgc2lkZSBlZmZlY3QsIHRoaXMgZnVuY3Rpb24gYWNxdWly ZXMgYSBBY2Nlc3NTaGFyZUxvY2sgb24gdGhlCisgKiBzZXNzaW9uIHZhcmlhYmxlIHVudGlsIHRo ZSBlbmQgb2YgdGhlIHRyYW5zYWN0aW9uLgorICovCitzdGF0aWMgU1ZhcmlhYmxlCitnZXRfc2Vz c2lvbl92YXJpYWJsZShPaWQgdmFyaWQpCit7CisJU1ZhcmlhYmxlCXN2YXI7CisJYm9vbAkJZm91 bmQ7CisKKwkvKiBwcm90ZWN0IHRoZSB1c2VkIHNlc3Npb24gdmFyaWFibGUgYWdhaW5zdCBEUk9Q ICovCisJTG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIDAsIEFj Y2Vzc1NoYXJlTG9jayk7CisKKwlpZiAoIXNlc3Npb252YXJzKQorCQljcmVhdGVfc2Vzc2lvbnZh cnNfaGFzaHRhYmxlcygpOworCisJc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VhcmNoKHNlc3Np b252YXJzLCAmdmFyaWQsCisJCQkJCQkJCSAgIEhBU0hfRU5URVIsICZmb3VuZCk7CisKKwlpZiAo Zm91bmQpCisJeworCQlpZiAoIXN2YXItPmlzX3ZhbGlkKQorCQl7CisJCQkvKgorCQkJICogSWYg dGhlcmUgd2FzIGFuIGludmFsaWRhdGlvbiBtZXNzYWdlLCB0aGUgdmFyaWFibGUgbWlnaHQgc3Rp bGwgYmUKKwkJCSAqIHZhbGlkLCBidXQgd2UgaGF2ZSB0byBjaGVjayB3aXRoIHRoZSBzeXN0ZW0g Y2F0YWxvZy4KKwkJCSAqLworCQkJaWYgKGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoc3Zhcikp CisJCQkJc3Zhci0+aXNfdmFsaWQgPSB0cnVlOworCQkJZWxzZQorCQkJCS8qIGlmIHRoZSB2YWx1 ZSBjYW5ub3QgYmUgdmFsaWRhdGVkLCB3ZSBoYXZlIHRvIGRpc2NhcmQgaXQgKi8KKwkJCQlmcmVl X3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3Zhcik7CisJCX0KKwl9CisJZWxzZQorCQlzdmFyLT5p c192YWxpZCA9IGZhbHNlOworCisJLyoKKwkgKiBGb3JjZSBzZXR1cCBmb3Igbm90IHlldCBpbml0 aWFsaXplZCB2YXJpYWJsZXMgb3IgdmFyaWFibGVzIHRoYXQgY2Fubm90CisJICogYmUgdmFsaWRh dGVkLgorCSAqLworCWlmICghc3Zhci0+aXNfdmFsaWQpCisJeworCQlzZXR1cF9zZXNzaW9uX3Zh cmlhYmxlKHN2YXIsIHZhcmlkKTsKKworCQllbG9nKERFQlVHMSwgInNlc3Npb24gdmFyaWFibGUg XCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBhc3NpZ25lZCBlbnRyeSBpbiBtZW1vcnkgKGVtaXR0ZWQg YnkgUkVBRCkiLAorCQkJIGdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lc3BhY2UodmFyaWQpKSwKKwkJCSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSwK KwkJCSB2YXJpZCk7CisJfQorCisJLyogZW5zdXJlIHRoZSByZXR1cm5lZCBkYXRhIGlzIHN0aWxs IG9mIHRoZSBjb3JyZWN0IGRvbWFpbiAqLworCWlmIChzdmFyLT5pc19kb21haW4pCisJeworCQkv KgorCQkgKiBTdG9yZSAiZXh0cmEiIGZvciBkb21haW5fY2hlY2soKSBpbiBUb3BUcmFuc2FjdGlv bkNvbnRleHQuICBXaGVuIHdlCisJCSAqIGFyZSBpbiBhIG5ldyB0cmFuc2FjdGlvbiwgZG9tYWlu X2NoZWNrX2V4dHJhIGNhY2hlIGlzIG5vdCB2YWxpZCBhbnkKKwkJICogbW9yZS4KKwkJICovCisJ CWlmIChzdmFyLT5kb21haW5fY2hlY2tfZXh0cmFfbHhpZCAhPSBNeVByb2MtPnZ4aWQubHhpZCkK KwkJCXN2YXItPmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7CisKKwkJZG9tYWluX2NoZWNrKHN2 YXItPnZhbHVlLCBzdmFyLT5pc251bGwsCisJCQkJCSBzdmFyLT50eXBpZCwgJnN2YXItPmRvbWFp bl9jaGVja19leHRyYSwKKwkJCQkJIFRvcFRyYW5zYWN0aW9uQ29udGV4dCk7CisKKwkJc3Zhci0+ ZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQgPSBNeVByb2MtPnZ4aWQubHhpZDsKKwl9CisKKwlyZXR1 cm4gc3ZhcjsKK30KKworLyoKKyAqIFN0b3JlIHRoZSBnaXZlbiB2YWx1ZSBpbiBhIHNlc3Npb24g dmFyaWFibGUgaW4gdGhlIGNhY2hlLgorICoKKyAqIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUg Zm9yIGRvaW5nIHBlcm1pc3Npb24gY2hlY2tzLgorICoKKyAqIEFzIGEgc2lkZSBlZmZlY3QsIHRo aXMgZnVuY3Rpb24gYWNxdWlyZXMgYSBBY2Nlc3NTaGFyZUxvY2sgb24gdGhlIHNlc3Npb24KKyAq IHZhcmlhYmxlIHVudGlsIHRoZSBlbmQgb2YgdGhlIHRyYW5zYWN0aW9uLgorICovCit2b2lkCitT ZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpCit7 CisJU1ZhcmlhYmxlCXN2YXI7CisJYm9vbAkJZm91bmQ7CisKKwkvKiBwcm90ZWN0IHVzZWQgc2Vz c2lvbiB2YXJpYWJsZSBhZ2FpbnN0IERST1AgKi8KKwlMb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFi bGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCWlmICghc2Vzc2lv bnZhcnMpCisJCWNyZWF0ZV9zZXNzaW9udmFyc19oYXNodGFibGVzKCk7CisKKwlzdmFyID0gKFNW YXJpYWJsZSkgaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwKKwkJCQkJCQkJICAgSEFT SF9FTlRFUiwgJmZvdW5kKTsKKworCWlmICghZm91bmQpCisJeworCQlzZXR1cF9zZXNzaW9uX3Zh cmlhYmxlKHN2YXIsIHZhcmlkKTsKKworCQllbG9nKERFQlVHMSwgInNlc3Npb24gdmFyaWFibGUg XCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBhc3NpZ25lZCBlbnRyeSBpbiBtZW1vcnkgKGVtaXR0ZWQg YnkgV1JJVEUpIiwKKwkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCisJCQkgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShz dmFyLT52YXJpZCksCisJCQkgdmFyaWQpOworCX0KKworCS8qIGlmIHRoaXMgZmFpbHMsIGl0IHdv bid0IGNoYW5nZSB0aGUgc3RvcmVkIHZhbHVlICovCisJc2V0X3Nlc3Npb25fdmFyaWFibGUoc3Zh ciwgdmFsdWUsIGlzTnVsbCk7Cit9CisKKy8qCisgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFs dWUgc3RvcmVkIGluIGEgdmFyaWFibGUuCisgKi8KK3N0YXRpYyBpbmxpbmUgRGF0dW0KK2NvcHlf c2Vzc2lvbl92YXJpYWJsZV92YWx1ZShTVmFyaWFibGUgc3ZhciwgYm9vbCAqaXNOdWxsKQorewor CURhdHVtCQl2YWx1ZTsKKworCS8qIGZvcmNlIGNvcHkgb2Ygbm9uIE5VTEwgdmFsdWUgKi8KKwlp ZiAoIXN2YXItPmlzbnVsbCkKKwl7CisJCXZhbHVlID0gZGF0dW1Db3B5KHN2YXItPnZhbHVlLCBz dmFyLT50eXBieXZhbCwgc3Zhci0+dHlwbGVuKTsKKwkJKmlzTnVsbCA9IGZhbHNlOworCX0KKwll bHNlCisJeworCQl2YWx1ZSA9IChEYXR1bSkgMDsKKwkJKmlzTnVsbCA9IHRydWU7CisJfQorCisJ cmV0dXJuIHZhbHVlOworfQorCisvKgorICogUmV0dXJucyBhIGNvcHkgb2YgdGhlIHZhbHVlIG9m IHRoZSBzZXNzaW9uIHZhcmlhYmxlIChpbiB0aGUgY3VycmVudCBtZW1vcnkKKyAqIGNvbnRleHQp LiAgVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgcGVybWlzc2lvbiBjaGVja3MuCisgKi8K K0RhdHVtCitHZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBib29sICppc051bGwpCit7CisJ U1ZhcmlhYmxlCXN2YXI7CisKKwlzdmFyID0gZ2V0X3Nlc3Npb25fdmFyaWFibGUodmFyaWQpOwor CisJLyoKKwkgKiBBbHRob3VnaCAic3ZhciIgaXMgZnJlc2hseSB2YWxpZGF0ZWQgaW4gdGhpcyBw b2ludCwgc3Zhci0+aXNfdmFsaWQgY2FuCisJICogYmUgZmFsc2UsIGlmIGFuIGludmFsaWRhdGlv biBtZXNzYWdlIHdhcyBwcm9jZXNzZWQgZHVyaW5nIHRoZSBkb21haW4gY2hlY2suCisJICogQnV0 IHRoZSB2YXJpYWJsZSBhbmQgYWxsIGl0cyBkZXBlbmRlbmNpZXMgYXJlIGxvY2tlZCBub3csIHNv IHdlIGRvbid0IG5lZWQKKwkgKiB0byByZXBlYXQgdGhlIHZhbGlkYXRpb24uCisJICovCisJcmV0 dXJuIGNvcHlfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyLCBpc051bGwpOworfQorCisvKgor ICogQXNzaWduIHRoZSByZXN1bHQgb2YgdGhlIGV2YWx1YXRlZCBleHByZXNzaW9uIHRvIHRoZSBz ZXNzaW9uIHZhcmlhYmxlCisgKi8KK3ZvaWQKK0V4ZWN1dGVMZXRTdG10KFBhcnNlU3RhdGUgKnBz dGF0ZSwKKwkJCSAgIExldFN0bXQgKnN0bXQsCisJCQkgICBQYXJhbUxpc3RJbmZvIHBhcmFtcywK KwkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LAorCQkJICAgUXVlcnlDb21wbGV0aW9u ICpxYykKK3sKKwlRdWVyeQkgICAqcXVlcnkgPSBjYXN0Tm9kZShRdWVyeSwgc3RtdC0+cXVlcnkp OworCUxpc3QJICAgKnJld3JpdHRlbjsKKwlEZXN0UmVjZWl2ZXIgKmRlc3Q7CisJQWNsUmVzdWx0 CWFjbHJlc3VsdDsKKwlQbGFubmVkU3RtdCAqcGxhbjsKKwlRdWVyeURlc2MgICpxdWVyeURlc2M7 CisJT2lkCQkJdmFyaWQgPSBxdWVyeS0+cmVzdWx0VmFyaWFibGU7CisKKwlBc3NlcnQoT2lkSXNW YWxpZCh2YXJpZCkpOworCisJLyogZG8gd2UgaGF2ZSBwZXJtaXNzaW9uIHRvIHdyaXRlIHRvIHRo ZSBzZXNzaW9uIHZhcmlhYmxlPyAqLworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhWYXJp YWJsZVJlbGF0aW9uSWQsIHZhcmlkLCBHZXRVc2VySWQoKSwgQUNMX1VQREFURSk7CisJaWYgKGFj bHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJYWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpF Q1RfVkFSSUFCTEUsIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKTsKKworCS8qIGNy ZWF0ZSBhIGRlc3QgcmVjZWl2ZXIgZm9yIExFVCAqLworCWRlc3QgPSBDcmVhdGVWYXJpYWJsZURl c3RSZWNlaXZlcih2YXJpZCk7CisKKwkvKiBydW4gdGhlIHF1ZXJ5IHJld3JpdGVyICovCisJcXVl cnkgPSBjb3B5T2JqZWN0KHF1ZXJ5KTsKKworCXJld3JpdHRlbiA9IFF1ZXJ5UmV3cml0ZShxdWVy eSk7CisKKwlBc3NlcnQobGlzdF9sZW5ndGgocmV3cml0dGVuKSA9PSAxKTsKKworCXF1ZXJ5ID0g bGluaXRpYWxfbm9kZShRdWVyeSwgcmV3cml0dGVuKTsKKwlBc3NlcnQocXVlcnktPmNvbW1hbmRU eXBlID09IENNRF9TRUxFQ1QpOworCisJLyogcGxhbiB0aGUgcXVlcnkgKi8KKwlwbGFuID0gcGdf cGxhbl9xdWVyeShxdWVyeSwgcHN0YXRlLT5wX3NvdXJjZXRleHQsCisJCQkJCQkgQ1VSU09SX09Q VF9QQVJBTExFTF9PSywgcGFyYW1zKTsKKworCS8qCisJICogVXNlIGEgc25hcHNob3Qgd2l0aCBh biB1cGRhdGVkIGNvbW1hbmQgSUQgdG8gZW5zdXJlIHRoaXMgcXVlcnkgc2VlcyB0aGUKKwkgKiBy ZXN1bHRzIG9mIGFueSBwcmV2aW91c2x5IGV4ZWN1dGVkIHF1ZXJpZXMuICAoVGhpcyBjb3VsZCBv bmx5IG1hdHRlciBpZgorCSAqIHRoZSBwbGFubmVyIGV4ZWN1dGVkIGFuIGFsbGVnZWRseS1zdGFi bGUgZnVuY3Rpb24gdGhhdCBjaGFuZ2VkIHRoZQorCSAqIGRhdGFiYXNlIGNvbnRlbnRzLCBidXQg bGV0J3MgZG8gaXQgYW55d2F5IHRvIGJlIHBhcmFsbGVsIHRvIHRoZSBFWFBMQUlOCisJICogY29k ZSBwYXRoLikKKwkgKi8KKwlQdXNoQ29waWVkU25hcHNob3QoR2V0QWN0aXZlU25hcHNob3QoKSk7 CisJVXBkYXRlQWN0aXZlU25hcHNob3RDb21tYW5kSWQoKTsKKworCS8qIGNyZWF0ZSBhIFF1ZXJ5 RGVzYywgcmVkaXJlY3Rpbmcgb3V0cHV0IHRvIG91ciB0dXBsZSByZWNlaXZlciAqLworCXF1ZXJ5 RGVzYyA9IENyZWF0ZVF1ZXJ5RGVzYyhwbGFuLCBwc3RhdGUtPnBfc291cmNldGV4dCwKKwkJCQkJ CQkJR2V0QWN0aXZlU25hcHNob3QoKSwgSW52YWxpZFNuYXBzaG90LAorCQkJCQkJCQlkZXN0LCBw YXJhbXMsIHF1ZXJ5RW52LCAwKTsKKworCS8qIGNhbGwgRXhlY3V0b3JTdGFydCB0byBwcmVwYXJl IHRoZSBwbGFuIGZvciBleGVjdXRpb24gKi8KKwlFeGVjdXRvclN0YXJ0KHF1ZXJ5RGVzYywgMCk7 CisKKwkvKgorCSAqIFJ1biB0aGUgcGxhbiB0byBjb21wbGV0aW9uLiAgVGhlIHJlc3VsdCBzaG91 bGQgYmUgb25seSBvbmUgcm93LiAgVG8KKwkgKiBjaGVjayBpZiB0aGVyZSBhcmUgdG9vIG1hbnkg cmVzdWx0IHJvd3MsIHdlIHRyeSB0byBmZXRjaCB0d28uCisJICovCisJRXhlY3V0b3JSdW4ocXVl cnlEZXNjLCBGb3J3YXJkU2NhbkRpcmVjdGlvbiwgMkwpOworCisJLyogc2F2ZSB0aGUgcm93Y291 bnQgaWYgd2UncmUgZ2l2ZW4gYSBRdWVyeUNvbXBsZXRpb24gdG8gZmlsbCAqLworCWlmIChxYykK KwkJU2V0UXVlcnlDb21wbGV0aW9uKHFjLCBDTURUQUdfTEVULCBxdWVyeURlc2MtPmVzdGF0ZS0+ ZXNfcHJvY2Vzc2VkKTsKKworCS8qIGFuZCBjbGVhbiB1cCAqLworCUV4ZWN1dG9yRmluaXNoKHF1 ZXJ5RGVzYyk7CisJRXhlY3V0b3JFbmQocXVlcnlEZXNjKTsKKworCUZyZWVRdWVyeURlc2MocXVl cnlEZXNjKTsKKworCVBvcEFjdGl2ZVNuYXBzaG90KCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9leGVjdXRvci9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlCmlu ZGV4IDExMTE4ZDBjZTAuLjcxMjQ4YTM0ZjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlCkBAIC03Niw2 ICs3Niw3IEBAIE9CSlMgPSBcCiAJbm9kZVdpbmRvd0FnZy5vIFwKIAlub2RlV29ya3RhYmxlc2Nh bi5vIFwKIAlzcGkubyBcCisJc3ZhcmlhYmxlUmVjZWl2ZXIubyBcCiAJdHF1ZXVlLm8gXAogCXRz dG9yZVJlY2VpdmVyLm8KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKaW5kZXggODk1MTRmN2E0Zi4u NzU0MWI1YWFjNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwor KysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCkBAIC05OTEsNiArOTkxLDM4IEBA IEV4ZWNJbml0RXhwclJlYyhFeHByICpub2RlLCBFeHByU3RhdGUgKnN0YXRlLAogCQkJCQkJc2Ny YXRjaC5kLnBhcmFtLnBhcmFtdHlwZSA9IHBhcmFtLT5wYXJhbXR5cGU7CiAJCQkJCQlFeHByRXZh bFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CiAJCQkJCQlicmVhazsKKworCQkJCQljYXNlIFBB UkFNX1ZBUklBQkxFOgorCQkJCQkJeworCQkJCQkJCWludAkJCWVzX251bV9zZXNzaW9uX3Zhcmlh YmxlcyA9IDA7CisJCQkJCQkJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKmVzX3Nlc3Npb25fdmFyaWFi bGVzID0gTlVMTDsKKwkJCQkJCQlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqdmFyOworCisJCQkJCQkJ aWYgKHN0YXRlLT5wYXJlbnQgJiYgc3RhdGUtPnBhcmVudC0+c3RhdGUpCisJCQkJCQkJeworCQkJ CQkJCQllc19zZXNzaW9uX3ZhcmlhYmxlcyA9IHN0YXRlLT5wYXJlbnQtPnN0YXRlLT5lc19zZXNz aW9uX3ZhcmlhYmxlczsKKwkJCQkJCQkJZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gc3RhdGUt PnBhcmVudC0+c3RhdGUtPmVzX251bV9zZXNzaW9uX3ZhcmlhYmxlczsKKwkJCQkJCQl9CisKKwkJ CQkJCQlBc3NlcnQoZXNfc2Vzc2lvbl92YXJpYWJsZXMpOworCisJCQkJCQkJLyogcGFyYW1ldGVy IHNhbml0eSBjaGVja3MgKi8KKwkJCQkJCQlpZiAocGFyYW0tPnBhcmFtaWQgPj0gZXNfbnVtX3Nl c3Npb25fdmFyaWFibGVzKQorCQkJCQkJCQllbG9nKEVSUk9SLCAicGFyYW1pZCBvZiBQQVJBTV9W QVJJQUJMRSBwYXJhbSBpcyBvdXQgb2YgcmFuZ2UiKTsKKworCQkJCQkJCXZhciA9ICZlc19zZXNz aW9uX3ZhcmlhYmxlc1twYXJhbS0+cGFyYW1pZF07CisKKwkJCQkJCQkvKgorCQkJCQkJCSAqIElu IHRoaXMgY2FzZSwgcGFzcyB0aGUgdmFsdWUgbGlrZSBhCisJCQkJCQkJICogY29uc3RhbnQuCisJ CQkJCQkJICovCisJCQkJCQkJc2NyYXRjaC5vcGNvZGUgPSBFRU9QX0NPTlNUOworCQkJCQkJCXNj cmF0Y2guZC5jb25zdHZhbC52YWx1ZSA9IHZhci0+dmFsdWU7CisJCQkJCQkJc2NyYXRjaC5kLmNv bnN0dmFsLmlzbnVsbCA9IHZhci0+aXNudWxsOworCQkJCQkJCUV4cHJFdmFsUHVzaFN0ZXAoc3Rh dGUsICZzY3JhdGNoKTsKKwkJCQkJCX0KKwkJCQkJCWJyZWFrOworCiAJCQkJCWNhc2UgUEFSQU1f RVhURVJOOgogCiAJCQkJCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y01haW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKaW5kZXggYTA2Mjk1YjZi YS4uYmI0ZTdiZjA2ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4u YworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCkBAIC00Myw3ICs0Myw5IEBA CiAjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGFydGl0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192 YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL21hdHZpZXcuaCIKKyNpbmNsdWRlICJjb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgog I2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivbm9kZVN1 YnBsYW4uaCIKQEAgLTE5Myw2ICsxOTUsNzAgQEAgc3RhbmRhcmRfRXhlY3V0b3JTdGFydChRdWVy eURlc2MgKnF1ZXJ5RGVzYywgaW50IGVmbGFncykKIAlBc3NlcnQocXVlcnlEZXNjLT5zb3VyY2VU ZXh0ICE9IE5VTEwpOwogCWVzdGF0ZS0+ZXNfc291cmNlVGV4dCA9IHF1ZXJ5RGVzYy0+c291cmNl VGV4dDsKIAorCS8qCisJICogVGhlIGV4ZWN1dG9yIGRvZXNuJ3Qgd29yayB3aXRoIHNlc3Npb24g dmFyaWFibGVzIGRpcmVjdGx5LiBWYWx1ZXMgb2YKKwkgKiByZWxhdGVkIHNlc3Npb24gdmFyaWFi bGVzIGFyZSBjb3BpZWQgdG8gYSBkZWRpY2F0ZWQgYXJyYXksIGFuZCB0aGlzIGFycmF5CisJICog aXMgcGFzc2VkIHRvIHRoZSBleGVjdXRvci4gVGhpcyBhcnJheSBpcyBzdGFibGUgInNuYXBzaG90 IiBvZiB2YWx1ZXMgb2YKKwkgKiB1c2VkIHNlc3Npb24gdmFyaWFibGVzLiBUaGVyZSBhcmUgdGhy ZWUgYmVuZWZpdHMgb2YgdGhpcyBzdHJhdGVneToKKwkgKgorCSAqIC0gY29uc2lzdGVuY3kgd2l0 aCBleHRlcm5hbCBwYXJhbWV0ZXJzIGFuZCBwbHBnc3FsIHZhcmlhYmxlcywKKwkgKgorCSAqIC0g c2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHBhcmFsbGVsIHNhZmUsCisJICoKKwkgKiAtIHdlIGRv bid0IG5lZWQgbWFrZSBmcmVzaCBjb3B5IGZvciBhbnkgcmVhZCBvZiBzZXNzaW9uIHZhcmlhYmxl CisJICogICAgKHRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIGludGVybmFsbHkgdGhlIHNl c3Npb24gdmFyaWFibGUgY2FuCisJICogICAgYmUgY2hhbmdlZCBpbnNpZGUgcXVlcnkgZXhlY3V0 aW9uIHRpbWUsIGFuZCB0aGVuIGEgcmVmZXJlbmNlIHRvCisJICogICAgcHJldmlvdXNseSByZXR1 cm5lZCB2YWx1ZSBjYW4gYmUgY29ycnVwdGVkKS4KKwkgKi8KKwlpZiAocXVlcnlEZXNjLT5wbGFu bmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykKKwl7CisJCWludAkJCW5TZXNzaW9uVmFyaWFibGVz OworCQlpbnQJCQlpID0gMDsKKworCQkvKgorCQkgKiBJbiB0aGlzIGNhc2UsIHRoZSBxdWVyeSB1 c2VzIHNlc3Npb24gdmFyaWFibGVzLCBidXQgd2UgaGF2ZSB0bworCQkgKiBwcmVwYXJlIHRoZSBh cnJheSB3aXRoIHBhc3NlZCB2YWx1ZXMgKG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMpCisJCSAq IGZpcnN0LgorCQkgKi8KKwkJQXNzZXJ0KCFJc1BhcmFsbGVsV29ya2VyKCkpOworCQluU2Vzc2lv blZhcmlhYmxlcyA9IGxpc3RfbGVuZ3RoKHF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPnNlc3Npb25W YXJpYWJsZXMpOworCisJCS8qIGNyZWF0ZSB0aGUgYXJyYXkgdXNlZCBmb3IgcGFzc2luZyB2YWx1 ZXMgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLworCQllc3RhdGUtPmVzX3Nlc3Npb25fdmFy aWFibGVzID0gKFNlc3Npb25WYXJpYWJsZVZhbHVlICopCisJCQlwYWxsb2MoblNlc3Npb25WYXJp YWJsZXMgKiBzaXplb2YoU2Vzc2lvblZhcmlhYmxlVmFsdWUpKTsKKworCQkvKiBmaWxsIHRoZSBh cnJheSAqLworCQlmb3JlYWNoX29pZCh2YXJpZCwgcXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vz c2lvblZhcmlhYmxlcykKKwkJeworCQkJLyoKKwkJCSAqIFBlcm1pc3Npb24gY2hlY2sgc2hvdWxk IGJlIGV4ZWN1dGVkIG9uIGFsbCBleHBsaWNpdGx5IHVzZWQKKwkJCSAqIHZhcmlhYmxlcyBpbiB0 aGUgcXVlcnkuIEZvciBpbXBsaWNpdGx5IHVzZWQgdmFyaWFibGUKKwkJCSAqIChsaWtlIGJhc2Ug bm9kZSBvZiBhc3NpZ25tZW50IGluZGlyZWN0KSB3ZSBjYW5ub3QgZG8gcGVybWlzc2lvbgorCQkJ ICogY2hlY2ssIGJlY2F1c2Ugd2UgbmVlZCByZWFkIHRoZSB2YWx1ZSAoYW5kIHVzZXIgY2FuIGhh dmUKKwkJCSAqIG9ubHkgVVBEQVRFIHZhcmlhYmxlKS4gSW4gdGhpcyBjYXNlIHRoZSBwZXJtaXNz aW9uIGNoZWNrCisJCQkgKiBpcyBleGVjdXRlZCBpbiB3cml0ZSB0aW1lLgorCQkJICovCisJCQlp ZiAodmFyaWQgIT0gcXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+ZXhjbFNlbGVjdFBlcm1DaGVja1Zh cmlkKQorCQkJeworCQkJCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisKKwkJCQlhY2xyZXN1bHQgPSBv YmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCQkJR2V0 VXNlcklkKCksIEFDTF9TRUxFQ1QpOworCQkJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0sp CisJCQkJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLAorCQkJCQkJ CQkgICBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSk7CisJCQl9CisKKwkJCWVzdGF0 ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0udmFsdWUgPQorCQkJCUdldFNlc3Npb25WYXJpYWJs ZSh2YXJpZCwKKwkJCQkJCQkJICAgJmVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0uaXNu dWxsKTsKKworCQkJaSsrOworCQl9CisKKwkJZXN0YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJs ZXMgPSBuU2Vzc2lvblZhcmlhYmxlczsKKwl9CisKIAkvKgogCSAqIEZpbGwgaW4gdGhlIHF1ZXJ5 IGVudmlyb25tZW50LCBpZiBhbnksIGZyb20gcXVlcnlEZXNjLgogCSAqLwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9leGVjdXRvci9t ZXNvbi5idWlsZAppbmRleCAyY2VhNDFmODc3Li40OTEwOTJmY2M0IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9leGVjdXRvci9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9t ZXNvbi5idWlsZApAQCAtNjQsNiArNjQsNyBAQCBiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAg ICdub2RlV2luZG93QWdnLmMnLAogICAnbm9kZVdvcmt0YWJsZXNjYW4uYycsCiAgICdzcGkuYycs CisgICdzdmFyaWFibGVSZWNlaXZlci5jJywKICAgJ3RxdWV1ZS5jJywKICAgJ3RzdG9yZVJlY2Vp dmVyLmMnLAogKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVj ZWl2ZXIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYzYxNjNmYjM2ZgotLS0gL2Rldi9udWxs CisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKQEAgLTAsMCAr MSwxNzIgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHN2YXJpYWJsZVJlY2VpdmVyLmMK KyAqCSAgQW4gaW1wbGVtZW50YXRpb24gb2YgRGVzdFJlY2VpdmVyIHRoYXQgc3RvcmVzIHRoZSBy ZXN1bHQgdmFsdWUgaW4KKyAqCSAgYSBzZXNzaW9uIHZhcmlhYmxlLgorICoKKyAqIFBvcnRpb25z IENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBH cm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2 ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFj a2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCisgKgorICotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgKi8KKworI2luY2x1ZGUgInBvc3RncmVzLmgiCisjaW5jbHVkZSAibWlzY2FkbWluLmgiCisK KyNpbmNsdWRlICJhY2Nlc3MvZGV0b2FzdC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFi bGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAi ZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJzdG9yYWdlL2xvY2suaCIK KyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5o IgorI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKKy8qCisgKiBUaGlzIERlc3RSZWNlaXZl ciBpcyB1c2VkIGJ5IHRoZSBMRVQgY29tbWFuZCBmb3Igc3RvcmluZyB0aGUgcmVzdWx0IHRvIGEK KyAqIHNlc3Npb24gdmFyaWFibGUuICBUaGUgcmVzdWx0IGhhcyB0byBoYXZlIG9ubHkgb25lIHR1 cGxlIHdpdGggb25seSBvbmUKKyAqIG5vbi1kZWxldGVkIGF0dHJpYnV0ZS4gIFRoZSByb3cgY291 bnRlciAoZmllbGQgInJvd3MiKSBpcyBpbmNyZW1lbnRlZAorICogYWZ0ZXIgcmVjZWl2aW5nIGEg cm93LCBhbmQgYW4gZXJyb3IgaXMgcmFpc2VkIHdoZW4gdGhlcmUgYXJlIG5vIHJvd3Mgb3IKKyAq IHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lIHJlY2VpdmVkIHJvd3MuICBBIHJlY2VpdmVkIHR1cGxl IGNhbm5vdCB0byBoYXZlCisgKiBkZWxldGVkIGF0dHJpYnV0ZXMuICBUaGUgdmFsdWUgaXMgZGV0 b2FzdGVkIGJlZm9yZSBzdG9yaW5nIGl0IGluIHRoZQorICogc2Vzc2lvbiB2YXJpYWJsZS4KKyAq LwordHlwZWRlZiBzdHJ1Y3QKK3sKKwlEZXN0UmVjZWl2ZXIgcHViOworCU9pZAkJCXZhcmlkOwor CWJvb2wJCW5lZWRfZGV0b2FzdDsJCS8qIGRvIHdlIG5lZWQgdG8gZGV0b2FzdCB0aGUgYXR0cmli dXRlPyAqLworCWludAkJCXJvd3M7CQkJCS8qIHJvdyBjb3VudGVyICovCit9IFNWYXJpYWJsZVN0 YXRlOworCisvKgorICogUHJlcGFyZSB0byByZWNlaXZlIHR1cGxlcyBmcm9tIGV4ZWN1dG9yLgor ICovCitzdGF0aWMgdm9pZAorc3ZhcmlhYmxlU3RhcnR1cFJlY2VpdmVyKERlc3RSZWNlaXZlciAq c2VsZiwgaW50IG9wZXJhdGlvbiwgVHVwbGVEZXNjIHR5cGVpbmZvKQoreworCVNWYXJpYWJsZVN0 YXRlICpteVN0YXRlID0gKFNWYXJpYWJsZVN0YXRlICopIHNlbGY7CisJTE9DS1RBRwkJbG9ja3Rh ZyBQR19VU0VEX0ZPUl9BU1NFUlRTX09OTFk7CisJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0cjsKKwlP aWQJCQl0eXBpZCBQR19VU0VEX0ZPUl9BU1NFUlRTX09OTFk7CisJT2lkCQkJY29sbGlkIFBHX1VT RURfRk9SX0FTU0VSVFNfT05MWTsKKwlpbnQzMgkJdHlwbW9kIFBHX1VTRURfRk9SX0FTU0VSVFNf T05MWTsKKworCUFzc2VydChteVN0YXRlLT5wdWIubXlkZXN0ID09IERlc3RWYXJpYWJsZSk7CisJ QXNzZXJ0KE9pZElzVmFsaWQobXlTdGF0ZS0+dmFyaWQpKTsKKwlBc3NlcnQoU2VhcmNoU3lzQ2Fj aGVFeGlzdHMxKFZBUklBQkxFT0lELCBteVN0YXRlLT52YXJpZCkpOworCUFzc2VydCh0eXBlaW5m by0+bmF0dHMgPT0gMSk7CisKKyNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisKKwlTRVRfTE9D S1RBR19PQkpFQ1QobG9ja3RhZywKKwkJCQkJICAgTXlEYXRhYmFzZUlkLAorCQkJCQkgICBWYXJp YWJsZVJlbGF0aW9uSWQsCisJCQkJCSAgIG15U3RhdGUtPnZhcmlkLAorCQkJCQkgICAwKTsKKwor CUFzc2VydChMb2NrSGVsZEJ5TWUoJmxvY2t0YWcsIEFjY2Vzc1NoYXJlTG9jaywgZmFsc2UpKTsK KworI2VuZGlmCisKKwlhdHRyID0gVHVwbGVEZXNjQXR0cih0eXBlaW5mbywgMCk7CisKKwlBc3Nl cnQoIWF0dHItPmF0dGlzZHJvcHBlZCk7CisKKyNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisK KwlnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQobXlTdGF0ZS0+dmFyaWQs CisJCQkJCQkJCQkJCSZ0eXBpZCwKKwkJCQkJCQkJCQkJJnR5cG1vZCwKKwkJCQkJCQkJCQkJJmNv bGxpZCk7CisKKwlBc3NlcnQoYXR0ci0+YXR0dHlwaWQgPT0gdHlwaWQpOworCUFzc2VydChhdHRy LT5hdHR0eXBtb2QgPCAwIHx8IGF0dHItPmF0dHR5cG1vZCA9PSB0eXBtb2QpOworCisjZW5kaWYK KworCW15U3RhdGUtPm5lZWRfZGV0b2FzdCA9IGF0dHItPmF0dGxlbiA9PSAtMTsKKwlteVN0YXRl LT5yb3dzID0gMDsKK30KKworLyoKKyAqIFJlY2VpdmUgYSB0dXBsZSBmcm9tIHRoZSBleGVjdXRv ciBhbmQgc3RvcmUgaXQgaW4gdGhlIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK3N0YXRpYyBib29s CitzdmFyaWFibGVSZWNlaXZlU2xvdChUdXBsZVRhYmxlU2xvdCAqc2xvdCwgRGVzdFJlY2VpdmVy ICpzZWxmKQoreworCVNWYXJpYWJsZVN0YXRlICpteVN0YXRlID0gKFNWYXJpYWJsZVN0YXRlICop IHNlbGY7CisJRGF0dW0JCXZhbHVlOworCWJvb2wJCWlzbnVsbDsKKwlib29sCQlmcmVldmFsID0g ZmFsc2U7CisKKwkvKiBtYWtlIHN1cmUgdGhlIHR1cGxlIGlzIGZ1bGx5IGRlY29uc3RydWN0ZWQg Ki8KKwlzbG90X2dldGFsbGF0dHJzKHNsb3QpOworCisJdmFsdWUgPSBzbG90LT50dHNfdmFsdWVz WzBdOworCWlzbnVsbCA9IHNsb3QtPnR0c19pc251bGxbMF07CisKKwlpZiAobXlTdGF0ZS0+bmVl ZF9kZXRvYXN0ICYmICFpc251bGwgJiYgVkFSQVRUX0lTX0VYVEVSTkFMKERhdHVtR2V0UG9pbnRl cih2YWx1ZSkpKQorCXsKKwkJdmFsdWUgPSBQb2ludGVyR2V0RGF0dW0oZGV0b2FzdF9leHRlcm5h bF9hdHRyKChzdHJ1Y3QgdmFybGVuYSAqKQorCQkJCQkJCQkJCQkJCSAgRGF0dW1HZXRQb2ludGVy KHZhbHVlKSkpOworCQlmcmVldmFsID0gdHJ1ZTsKKwl9CisKKwlteVN0YXRlLT5yb3dzICs9IDE7 CisKKwlpZiAobXlTdGF0ZS0+cm93cyA+IDEpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNv ZGUoRVJSQ09ERV9UT09fTUFOWV9ST1dTKSwKKwkJCQkgZXJybXNnKCJleHByZXNzaW9uIHJldHVy bmVkIG1vcmUgdGhhbiBvbmUgcm93IikpKTsKKworCVNldFNlc3Npb25WYXJpYWJsZShteVN0YXRl LT52YXJpZCwgdmFsdWUsIGlzbnVsbCk7CisKKwlpZiAoZnJlZXZhbCkKKwkJcGZyZWUoRGF0dW1H ZXRQb2ludGVyKHZhbHVlKSk7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAqIENsZWFuIHVw IGF0IGVuZCBvZiB0aGUgZXhlY3V0b3IgcnVuCisgKi8KK3N0YXRpYyB2b2lkCitzdmFyaWFibGVT aHV0ZG93blJlY2VpdmVyKERlc3RSZWNlaXZlciAqc2VsZikKK3sKKwlpZiAoKChTVmFyaWFibGVT dGF0ZSAqKSBzZWxmKS0+cm93cyA9PSAwKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfTk9fREFUQV9GT1VORCksCisJCQkJIGVycm1zZygiZXhwcmVzc2lvbiByZXR1cm5l ZCBubyByb3dzIikpKTsKK30KKworLyoKKyAqIERlc3Ryb3kgdGhlIHJlY2VpdmVyIHdoZW4gd2Ug YXJlIGRvbmUgd2l0aCBpdAorICovCitzdGF0aWMgdm9pZAorc3ZhcmlhYmxlRGVzdHJveVJlY2Vp dmVyKERlc3RSZWNlaXZlciAqc2VsZikKK3sKKwlwZnJlZShzZWxmKTsKK30KKworLyoKKyAqIElu aXRpYWxseSBjcmVhdGUgYSBEZXN0UmVjZWl2ZXIgb2JqZWN0LgorICovCitEZXN0UmVjZWl2ZXIg KgorQ3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIoT2lkIHZhcmlkKQoreworCVNWYXJpYWJsZVN0 YXRlICpzZWxmID0gKFNWYXJpYWJsZVN0YXRlICopIHBhbGxvYzAoc2l6ZW9mKFNWYXJpYWJsZVN0 YXRlKSk7CisKKwlzZWxmLT5wdWIucmVjZWl2ZVNsb3QgPSBzdmFyaWFibGVSZWNlaXZlU2xvdDsK KwlzZWxmLT5wdWIuclN0YXJ0dXAgPSBzdmFyaWFibGVTdGFydHVwUmVjZWl2ZXI7CisJc2VsZi0+ cHViLnJTaHV0ZG93biA9IHN2YXJpYWJsZVNodXRkb3duUmVjZWl2ZXI7CisJc2VsZi0+cHViLnJE ZXN0cm95ID0gc3ZhcmlhYmxlRGVzdHJveVJlY2VpdmVyOworCXNlbGYtPnB1Yi5teWRlc3QgPSBE ZXN0VmFyaWFibGU7CisKKwlzZWxmLT52YXJpZCA9IHZhcmlkOworCisJcmV0dXJuIChEZXN0UmVj ZWl2ZXIgKikgc2VsZjsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5j cy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKaW5kZXggZGY3NzkxMzdjOS4uNTZh OGZlNWQ3NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIv c3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTQzNDEsNiArNDM0MSwxNiBAQCByYXdf ZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0cnVl OwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9MZXRTdG10OgorCQkJeworCQkJCUxldFN0bXQg ICAgKnN0bXQgPSAoTGV0U3RtdCAqKSBub2RlOworCisJCQkJaWYgKFdBTEsoc3RtdC0+dGFyZ2V0 KSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsoc3RtdC0+cXVlcnkpKQorCQkJCQly ZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfUExBc3NpZ25TdG10OgogCQkJ ewogCQkJCVBMQXNzaWduU3RtdCAqc3RtdCA9IChQTEFzc2lnblN0bXQgKikgbm9kZTsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYyBiL3NyYy9iYWNrZW5k L29wdGltaXplci9wbGFuL3BsYW5uZXIuYwppbmRleCBlOTJlMTA4YjZiLi4wOWRhMjNhOTVlIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKKysrIGIvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCkBAIC0zMzMsNiArMzMzLDIxIEBAIHN0 YW5kYXJkX3BsYW5uZXIoUXVlcnkgKnBhcnNlLCBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsIGlu dCBjdXJzb3JPcHRpb25zLAogCWdsb2ItPmxhc3RQbGFuTm9kZUlkID0gMDsKIAlnbG9iLT50cmFu c2llbnRQbGFuID0gZmFsc2U7CiAJZ2xvYi0+ZGVwZW5kc09uUm9sZSA9IGZhbHNlOworCWdsb2It PnNlc3Npb25WYXJpYWJsZXMgPSBOSUw7CisKKwkvKgorCSAqIFRoZSAoc2Vzc2lvbikgcmVzdWx0 IHZhcmlhYmxlIHNob3VsZCBiZSBzdG9yZWQgdG8gZ2xvYmFsLCBiZWNhdXNlCisJICogaXQgaXMg bm90IHNldCBpbiBzdWJxdWVyeS4gIFdoZW4gdGhpcyB2YXJpYWJsZSBpcyB1c2VkIG90aGVyIHRo YW4KKwkgKiBpbiBiYXNlIG5vZGUgb2YgYXNzaWdubWVudCBpbmRpcmVjdGlvbiwgd2UgbmVlZCB0 byBjaGVjayB0aGUgYWNjZXNzCisJICogcmlnaHRzIChhbmQgdGhlbiB3ZSBuZWVkIHRvIGRldGVj dCB0aGlzIHNpdHVhdGlvbikuIFRoZSB2YXJpYWJsZSB1c2VkCisJICogbGlrZSBiYXNlIG5vZGUg Y2Fubm90IGJlIGRpZmZlcmVudCB0aGFuIHRhcmdldCAocmVzdWx0KSB2YXJpYWJsZS4KKwkgKiBC ZWNhdXNlIHdlIGtub3cgdGhlIHJlc3VsdCB2YXJpYWJsZSBiZWZvcmUgcGxhbm5lciBpbnZvY2F0 aW9uLCB3ZQorCSAqIGNhbiBzaW1wbHkgc2VhcmNoIG9mIHVzYWdlIGp1c3QgdGhpcyB2YXJpYWJs ZSwgYW5kIHdlIGRvbid0IG5lZWQgdG8KKwkgKiB0byB3YWl0IHVudGlsIHRoZSBlbmQgb2YgcGxh bm5pbmcgd2hlbiB3ZSBrbm93IGJhc2Vub2RlU2Vzc2lvblZhcmlkLgorCSAqLworCWdsb2ItPnJl c3VsdFZhcmlhYmxlID0gcGFyc2UtPnJlc3VsdFZhcmlhYmxlOworCWdsb2ItPmJhc2Vub2RlU2Vz c2lvblZhcmlkID0gSW52YWxpZE9pZDsKKwlnbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJTZWxlY3RD aGVjayA9IGZhbHNlOwogCiAJLyoKIAkgKiBBc3Nlc3Mgd2hldGhlciBpdCdzIGZlYXNpYmxlIHRv IHVzZSBwYXJhbGxlbCBtb2RlIGZvciB0aGlzIHF1ZXJ5LiBXZQpAQCAtNTY3LDYgKzU4MiwyMCBA QCBzdGFuZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJzZSwgY29uc3QgY2hhciAqcXVlcnlfc3RyaW5n LCBpbnQgY3Vyc29yT3B0aW9ucywKIAlyZXN1bHQtPnBhcmFtRXhlY1R5cGVzID0gZ2xvYi0+cGFy YW1FeGVjVHlwZXM7CiAJLyogdXRpbGl0eVN0bXQgc2hvdWxkIGJlIG51bGwsIGJ1dCB3ZSBtaWdo dCBhcyB3ZWxsIGNvcHkgaXQgKi8KIAlyZXN1bHQtPnV0aWxpdHlTdG10ID0gcGFyc2UtPnV0aWxp dHlTdG10OworCisJcmVzdWx0LT5zZXNzaW9uVmFyaWFibGVzID0gZ2xvYi0+c2Vzc2lvblZhcmlh YmxlczsKKworCS8qCisJICogVGhlIHNlc3Npb24gdmFyaWFibGUgdXNlZCAoYW5kIG9ubHkgdXNl ZCkgbGlrZSBiYXNlIG5vZGUKKwkgKiBmb3IgYXNzaWduZW1udCBpbmRpcmVjdGlvbiBzaG91bGQg YmUgZXhjbHVkZWQgZnJvbSBwZXJtaXNzaW9uCisJICogY2hlY2suCisJICovCisJaWYgKE9pZElz VmFsaWQoZ2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyaWQpICYmCisJCSghZ2xvYi0+YmFzZW5vZGVT ZXNzaW9uVmFyU2VsZWN0Q2hlY2spKQorCQlyZXN1bHQtPmV4Y2xTZWxlY3RQZXJtQ2hlY2tWYXJp ZCA9IGdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhcmlkOworCWVsc2UKKwkJcmVzdWx0LT5leGNsU2Vs ZWN0UGVybUNoZWNrVmFyaWQgPSBJbnZhbGlkT2lkOworCiAJcmVzdWx0LT5zdG10X2xvY2F0aW9u ID0gcGFyc2UtPnN0bXRfbG9jYXRpb247CiAJcmVzdWx0LT5zdG10X2xlbiA9IHBhcnNlLT5zdG10 X2xlbjsKIApAQCAtNzM3LDYgKzc2NiwxMyBAQCBzdWJxdWVyeV9wbGFubmVyKFBsYW5uZXJHbG9i YWwgKmdsb2IsIFF1ZXJ5ICpwYXJzZSwgUGxhbm5lckluZm8gKnBhcmVudF9yb290LAogCSAqLwog CXB1bGxfdXBfc3VicXVlcmllcyhyb290KTsKIAorCS8qCisJICogQ2hlY2sgaWYgc29tZSBzdWJx dWVyeSB1c2VzIGEgc2Vzc2lvbiB2YXJpYWJsZS4gIFRoZSBmbGFnCisJICogaGFzU2Vzc2lvblZh cmlhYmxlcyBzaG91bGQgYmUgdHJ1ZSBpZiB0aGUgcXVlcnkgb3Igc29tZSBzdWJxdWVyeSB1c2Vz IGEKKwkgKiBzZXNzaW9uIHZhcmlhYmxlLgorCSAqLworCXB1bGxfdXBfaGFzX3Nlc3Npb25fdmFy aWFibGVzKHJvb3QpOworCiAJLyoKIAkgKiBJZiB0aGlzIGlzIGEgc2ltcGxlIFVOSU9OIEFMTCBx dWVyeSwgZmxhdHRlbiBpdCBpbnRvIGFuIGFwcGVuZHJlbC4gV2UKIAkgKiBkbyB0aGlzIG5vdyBi ZWNhdXNlIGl0IHJlcXVpcmVzIGFwcGx5aW5nIHB1bGxfdXBfc3VicXVlcmllcyB0byB0aGUgbGVh ZgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jIGIvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jCmluZGV4IDgxMzYzNTg5MTIuLmEzODky NGM2MWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYwor KysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKQEAgLTMwLDcgKzMwLDYg QEAKICNpbmNsdWRlICJ0Y29wL3V0aWxpdHkuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5o IgogCi0KIHR5cGVkZWYgZW51bQogewogCU5STV9FUVVBTCwJCQkJCS8qIGV4cGVjdCBleGFjdCBt YXRjaCBvZiBudWxsaW5ncmVscyAqLwpAQCAtMjEwLDYgKzIwOSw5IEBAIHN0YXRpYyBMaXN0ICpz ZXRfcmV0dXJuaW5nX2NsYXVzZV9yZWZlcmVuY2VzKFBsYW5uZXJJbmZvICpyb290LAogc3RhdGlj IExpc3QgKnNldF93aW5kb3dhZ2dfcnVuY29uZGl0aW9uX3JlZmVyZW5jZXMoUGxhbm5lckluZm8g KnJvb3QsCiAJCQkJCQkJCQkJCQkgICBMaXN0ICpydW5jb25kaXRpb24sCiAJCQkJCQkJCQkJCQkg ICBQbGFuICpwbGFuKTsKK3N0YXRpYyBib29sIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVz X3dhbGtlcihOb2RlICpub2RlLAorCQkJCQkJCQkJCQkJIFBsYW5uZXJJbmZvICpyb290KTsKK3N0 YXRpYyB2b2lkIHJlY29yZF9wbGFuX3ZhcmlhYmxlX2RlcGVuZGVuY3koUGxhbm5lckluZm8gKnJv b3QsIE9pZCB2YXJpZCk7CiAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xMzA5LDYgKzEz MTEsNTAgQEAgc2V0X3BsYW5fcmVmcyhQbGFubmVySW5mbyAqcm9vdCwgUGxhbiAqcGxhbiwgaW50 IHJ0b2Zmc2V0KQogCXJldHVybiBwbGFuOwogfQogCisvKgorICogU2VhcmNoIHVzYWdlIG9mIHNl c3Npb24gdmFyaWFibGVzIGluIHN1YnF1ZXJpZXMKKyAqLwordm9pZAorcHVsbF91cF9oYXNfc2Vz c2lvbl92YXJpYWJsZXMoUGxhbm5lckluZm8gKnJvb3QpCit7CisJUXVlcnkJICAgKnF1ZXJ5ID0g cm9vdC0+cGFyc2U7CisKKwlpZiAocXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMpCisJeworCQly b290LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gdHJ1ZTsKKwl9CisJZWxzZQorCXsKKwkJKHZvaWQp IHF1ZXJ5X3RyZWVfd2Fsa2VyKHF1ZXJ5LAorCQkJCQkJCQkgcHVsbF91cF9oYXNfc2Vzc2lvbl92 YXJpYWJsZXNfd2Fsa2VyLAorCQkJCQkJCQkgKHZvaWQgKikgcm9vdCwgMCk7CisJfQorfQorCitz dGF0aWMgYm9vbAorcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2Fsa2VyKE5vZGUgKm5v ZGUsIFBsYW5uZXJJbmZvICpyb290KQoreworCWlmIChub2RlID09IE5VTEwpCisJCXJldHVybiBm YWxzZTsKKwlpZiAoSXNBKG5vZGUsIFF1ZXJ5KSkKKwl7CisJCVF1ZXJ5CSAgICpxdWVyeSA9IChR dWVyeSAqKSBub2RlOworCisJCWlmIChxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKKwkJewor CQkJcm9vdC0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHRydWU7CisJCQlyZXR1cm4gZmFsc2U7CisJ CX0KKworCQkvKiByZWN1cnNlIGludG8gc3Vic2VsZWN0cyAqLworCQlyZXR1cm4gcXVlcnlfdHJl ZV93YWxrZXIoKFF1ZXJ5ICopIG5vZGUsCisJCQkJCQkJCSBwdWxsX3VwX2hhc19zZXNzaW9uX3Zh cmlhYmxlc193YWxrZXIsCisJCQkJCQkJCSAodm9pZCAqKSByb290LCAwKTsKKwl9CisJcmV0dXJu IGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJs ZXNfd2Fsa2VyLAorCQkJCQkJCQkgICh2b2lkICopIHJvb3QpOworfQorCiAvKgogICogc2V0X2lu ZGV4b25seXNjYW5fcmVmZXJlbmNlcwogICoJCURvIHNldF9wbGFuX3JlZmVyZW5jZXMgcHJvY2Vz c2luZyBvbiBhbiBJbmRleE9ubHlTY2FuCkBAIC0xOTU3LDggKzIwMDMsOSBAQCBjb3B5VmFyKFZh ciAqdmFyKQogICogVGhpcyBpcyBjb2RlIHRoYXQgaXMgY29tbW9uIHRvIGFsbCB2YXJpYW50cyBv ZiBleHByZXNzaW9uLWZpeGluZy4KICAqIFdlIG11c3QgbG9vayB1cCBvcGVyYXRvciBvcGNvZGUg aW5mbyBmb3IgT3BFeHByIGFuZCByZWxhdGVkIG5vZGVzLAogICogYWRkIE9JRHMgZnJvbSByZWdj bGFzcyBDb25zdCBub2RlcyBpbnRvIHJvb3QtPmdsb2ItPnJlbGF0aW9uT2lkcywgYW5kCi0gKiBh ZGQgUGxhbkludmFsSXRlbXMgZm9yIHVzZXItZGVmaW5lZCBmdW5jdGlvbnMgaW50byByb290LT5n bG9iLT5pbnZhbEl0ZW1zLgotICogV2UgYWxzbyBmaWxsIGluIGNvbHVtbiBpbmRleCBsaXN0cyBm b3IgR1JPVVBJTkcoKSBleHByZXNzaW9ucy4KKyAqIGFkZCBQbGFuSW52YWxJdGVtcyBmb3IgdXNl ci1kZWZpbmVkIGZ1bmN0aW9ucyBhbmQgc2Vzc2lvbiB2YXJpYWJsZXMgaW50bworICogcm9vdC0+ Z2xvYi0+aW52YWxJdGVtcy4gIFdlIGFsc28gZmlsbCBpbiBjb2x1bW4gaW5kZXggbGlzdHMgZm9y IEdST1VQSU5HKCkKKyAqIGV4cHJlc3Npb25zLgogICoKICAqIFdlIGFzc3VtZSBpdCdzIG9rYXkg dG8gdXBkYXRlIG9wY29kZSBpbmZvIGluLXBsYWNlLiAgU28gdGhpcyBjb3VsZCBwb3NzaWJseQog ICogc2NyaWJibGUgb24gdGhlIHBsYW5uZXIncyBpbnB1dCBkYXRhIHN0cnVjdHVyZXMsIGJ1dCBp dCdzIE9LLgpAQCAtMjA0OCw2ICsyMDk1LDEzIEBAIGZpeF9leHByX2NvbW1vbihQbGFubmVySW5m byAqcm9vdCwgTm9kZSAqbm9kZSkKIAkJCQlnLT5jb2xzID0gY29sczsKIAkJfQogCX0KKwllbHNl IGlmIChJc0Eobm9kZSwgUGFyYW0pKQorCXsKKwkJUGFyYW0JICAgKnAgPSAoUGFyYW0gKikgbm9k ZTsKKworCQlpZiAocC0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQkJcmVjb3JkX3Bs YW5fdmFyaWFibGVfZGVwZW5kZW5jeShyb290LCBwLT5wYXJhbXZhcmlkKTsKKwl9CiB9CiAKIC8q CkBAIC0yMDU3LDYgKzIxMTEsMTAgQEAgZml4X2V4cHJfY29tbW9uKFBsYW5uZXJJbmZvICpyb290 LCBOb2RlICpub2RlKQogICogSWYgaXQncyBhIFBBUkFNX01VTFRJRVhQUiwgcmVwbGFjZSBpdCB3 aXRoIHRoZSBhcHByb3ByaWF0ZSBQYXJhbSBmcm9tCiAgKiByb290LT5tdWx0aWV4cHJfcGFyYW1z OyBvdGhlcndpc2Ugbm8gY2hhbmdlIGlzIG5lZWRlZC4KICAqIEp1c3QgZm9yIHBhcmFub2lhJ3Mg c2FrZSwgd2UgbWFrZSBhIGNvcHkgb2YgdGhlIG5vZGUgaW4gZWl0aGVyIGNhc2UuCisgKgorICog SWYgaXQncyBhIFBBUkFNX1ZBUklBQkxFLCB0aGVuIHdlIGNvbGxlY3QgdXNlZCBzZXNzaW9uIHZh cmlhYmxlcyBpbgorICogdGhlIGxpc3Qgcm9vdC0+Z2xvYi0+c2Vzc2lvblZhcmlhYmxlLiAgQWxz bywgYXNzaWduIHRoZSBwYXJhbWV0ZXIncworICogInBhcmFtaWQiIHRvIHRoZSBwYXJhbWV0ZXIn cyBwb3NpdGlvbiBpbiB0aGF0IGxpc3QuCiAgKi8KIHN0YXRpYyBOb2RlICoKIGZpeF9wYXJhbV9u b2RlKFBsYW5uZXJJbmZvICpyb290LCBQYXJhbSAqcCkKQEAgLTIwNzUsNiArMjEzMyw2MiBAQCBm aXhfcGFyYW1fbm9kZShQbGFubmVySW5mbyAqcm9vdCwgUGFyYW0gKnApCiAJCQllbG9nKEVSUk9S LCAidW5leHBlY3RlZCBQQVJBTV9NVUxUSUVYUFIgSUQ6ICVkIiwgcC0+cGFyYW1pZCk7CiAJCXJl dHVybiBjb3B5T2JqZWN0KGxpc3RfbnRoKHBhcmFtcywgY29sbm8gLSAxKSk7CiAJfQorCisJaWYg KHAtPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwl7CisJCWludAkJCW4gPSAwOworCQli b29sCQlmb3VuZCA9IGZhbHNlOworCisJCS8qIHdlIHdpbGwgbW9kaWZ5IG9iamVjdCAqLworCQlw ID0gKFBhcmFtICopIGNvcHlPYmplY3QocCk7CisKKwkJLyoKKwkJICogTm93LCB3ZSBjYW4gYWN0 dWFsaXplIGxpc3Qgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMsIGFuZCB3ZSBjYW4KKwkJICogY29tcGxl dGUgcGFyYW1pZCBwYXJhbWV0ZXIuCisJCSAqLworCQlmb3JlYWNoX29pZCh2YXJpZCwgcm9vdC0+ Z2xvYi0+c2Vzc2lvblZhcmlhYmxlcykKKwkJeworCQkJaWYgKHZhcmlkID09IHAtPnBhcmFtdmFy aWQpCisJCQl7CisJCQkJcC0+cGFyYW1pZCA9IG47CisJCQkJZm91bmQgPSB0cnVlOworCQkJCWJy ZWFrOworCQkJfQorCQkJbiArPSAxOworCQl9CisKKwkJaWYgKCFmb3VuZCkKKwkJeworCQkJcm9v dC0+Z2xvYi0+c2Vzc2lvblZhcmlhYmxlcyA9IGxhcHBlbmRfb2lkKHJvb3QtPmdsb2ItPnNlc3Np b25WYXJpYWJsZXMsCisJCQkJCQkJCQkJCQkJICAgcC0+cGFyYW12YXJpZCk7CisJCQlwLT5wYXJh bWlkID0gbjsKKwkJfQorCisJCS8qCisJCSAqIFdlIGRvIFNFTEVDVCBwZXJtaXNzaW9uIGNoZWNr IG9mIGFsbCB2YXJpYWJsZXMgdXNlZCBieQorCQkgKiB0aGUgcXVlcnkgZXhjbHVkaW5nIHRoZSB2 YXJpYWJsZSB0aGF0IGlzIHVzZWQgb25seSBhcyBiYXNlIG5vZGUKKwkJICogb2YgYXNzaWdubWVu dCBpbmRpcmVjdGlvbi4gVGhlIHZhcmlhYmxlIGlkIGFzc2lnbmVkIHRvIHRoaXMgcGFyYW0KKwkJ ICogc2hvdWxkIGJlIHNhbWUgbGlrZSByZXN1bHRWYXJpYWJsZSBpZCwgYW5kIHRoaXMgcGFyYW0g c2hvdWxkIGJlCisJCSAqIHVzZWQgb25seSBvbmNlIGluIHF1ZXJ5LiBXaGVuIHRoZSB2YXJpYWJs ZSBpcyByZWZlcmVuY2VkIGJ5IGFueQorCQkgKiBvdGhlciBwYXJhbSwgd2Ugc2hvdWxkIHRvIGRv IFNFTEVDVCBwZXJtaXNzaW9uIGNoZWNrIGZvciB0aGlzIHZhcmlhYmxlCisJCSAqIHRvby4KKwkJ ICovCisJCWlmIChwLT5wYXJhbWJhc2Vub2RlKQorCQl7CisJCQlBc3NlcnQoIU9pZElzVmFsaWQo cm9vdC0+Z2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyaWQpKTsKKwkJCUFzc2VydChyb290LT5nbG9i LT5yZXN1bHRWYXJpYWJsZSA9PSBwLT5wYXJhbXZhcmlkKTsKKworCQkJcm9vdC0+Z2xvYi0+YmFz ZW5vZGVTZXNzaW9uVmFyaWQgPSBwLT5wYXJhbXZhcmlkOworCQl9CisJCWVsc2UKKwkJeworCQkJ aWYgKHAtPnBhcmFtdmFyaWQgPT0gcm9vdC0+Z2xvYi0+cmVzdWx0VmFyaWFibGUpCisJCQkJcm9v dC0+Z2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyU2VsZWN0Q2hlY2sgPSB0cnVlOworCQl9CisKKwkJ cmV0dXJuIChOb2RlICopIHA7CisJfQorCiAJcmV0dXJuIChOb2RlICopIGNvcHlPYmplY3QocCk7 CiB9CiAKQEAgLTIxMzYsNyArMjI1MCwxMCBAQCBmaXhfYWx0ZXJuYXRpdmVfc3VicGxhbihQbGFu bmVySW5mbyAqcm9vdCwgQWx0ZXJuYXRpdmVTdWJQbGFuICphc3BsYW4sCiAgKiByZXBsYWNpbmcg QWdncmVmIG5vZGVzIHRoYXQgc2hvdWxkIGJlIHJlcGxhY2VkIGJ5IGluaXRwbGFuIG91dHB1dCBQ YXJhbXMsCiAgKiBjaG9vc2luZyB0aGUgYmVzdCBpbXBsZW1lbnRhdGlvbiBmb3IgQWx0ZXJuYXRp dmVTdWJQbGFucywKICAqIGxvb2tpbmcgdXAgb3BlcmF0b3Igb3Bjb2RlIGluZm8gZm9yIE9wRXhw ciBhbmQgcmVsYXRlZCBub2RlcywKLSAqIGFuZCBhZGRpbmcgT0lEcyBmcm9tIHJlZ2NsYXNzIENv bnN0IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVsYXRpb25PaWRzLgorICogYWRkaW5nIE9JRHMg ZnJvbSByZWdjbGFzcyBDb25zdCBub2RlcyBpbnRvIHJvb3QtPmdsb2ItPnJlbGF0aW9uT2lkcywK KyAqIGFzc2lnbmluZyBwYXJhbXZhcmlkIHRvIFBBUkFNX1ZBUklBQkxFIHBhcmFtcywgYW5kIGNv bGxlY3RpbmcgdGhlCisgKiBPSURzIG9mIHNlc3Npb24gdmFyaWFibGVzIGluIHRoZSByb290LT5n bG9iLT5zZXNzaW9uVmFyaWFibGVzIGxpc3QKKyAqIChwYXJhbXZhcmlkIGlzIHRoZSBwb3NpdGlv biBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGlzIGxpc3QpLgogICoKICAqICdub2RlJzog dGhlIGV4cHJlc3Npb24gdG8gYmUgbW9kaWZpZWQKICAqICdydG9mZnNldCc6IGhvdyBtdWNoIHRv IGluY3JlbWVudCB2YXJub3MgYnkKQEAgLTIxNTgsNyArMjI3NSw4IEBAIGZpeF9zY2FuX2V4cHIo UGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUsIGludCBydG9mZnNldCwgZG91YmxlIG51bV9l eGVjKQogCQlyb290LT5tdWx0aWV4cHJfcGFyYW1zICE9IE5JTCB8fAogCQlyb290LT5nbG9iLT5s YXN0UEhJZCAhPSAwIHx8CiAJCXJvb3QtPm1pbm1heF9hZ2dzICE9IE5JTCB8fAotCQlyb290LT5o YXNBbHRlcm5hdGl2ZVN1YlBsYW5zKQorCQlyb290LT5oYXNBbHRlcm5hdGl2ZVN1YlBsYW5zIHx8 CisJCXJvb3QtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJewogCQlyZXR1cm4gZml4X3NjYW5fZXhw cl9tdXRhdG9yKG5vZGUsICZjb250ZXh0KTsKIAl9CkBAIC0zNTM2LDYgKzM2NTQsMjUgQEAgcmVj b3JkX3BsYW5fdHlwZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgdHlwaWQpCiAJ fQogfQogCisvKgorICogUmVjb3JkIGRlcGVuZGVuY3kgb24gYSBzZXNzaW9uIHZhcmlhYmxlLiAg VGhlIHZhcmlhYmxlIGNhbiBiZSB1c2VkIGFzIGEKKyAqIHNlc3Npb24gdmFyaWFibGUgaW4gYW4g ZXhwcmVzc2lvbiBsaXN0LCBvciBhcyB0aGUgdGFyZ2V0IG9mIGEgTEVUIHN0YXRlbWVudC4KKyAq Lworc3RhdGljIHZvaWQKK3JlY29yZF9wbGFuX3ZhcmlhYmxlX2RlcGVuZGVuY3koUGxhbm5lcklu Zm8gKnJvb3QsIE9pZCB2YXJpZCkKK3sKKwlQbGFuSW52YWxJdGVtICppbnZhbF9pdGVtID0gbWFr ZU5vZGUoUGxhbkludmFsSXRlbSk7CisKKwkvKiBwYXJhbWlkIGlzIHN0aWxsIHNlc3Npb24gdmFy aWFibGUgaWQgKi8KKwlpbnZhbF9pdGVtLT5jYWNoZUlkID0gVkFSSUFCTEVPSUQ7CisJaW52YWxf aXRlbS0+aGFzaFZhbHVlID0gR2V0U3lzQ2FjaGVIYXNoVmFsdWUxKFZBUklBQkxFT0lELAorCQkJ CQkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwkvKiBhcHBlbmQgdGhpcyB2 YXJpYWJsZSB0byBnbG9iYWwsIHJlZ2lzdGVyIGRlcGVuZGVuY3kgKi8KKwlyb290LT5nbG9iLT5p bnZhbEl0ZW1zID0gbGFwcGVuZChyb290LT5nbG9iLT5pbnZhbEl0ZW1zLAorCQkJCQkJCQkJIGlu dmFsX2l0ZW0pOworfQorCiAvKgogICogZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXMKICAqCQlH aXZlbiBhIHJld3JpdHRlbiwgYnV0IG5vdCB5ZXQgcGxhbm5lZCwgcXVlcnkgb3IgcXVlcmllcwpA QCAtMzYyMSw5ICszNzU4LDkgQEAgZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXNfd2Fsa2VyKE5v ZGUgKm5vZGUsIFBsYW5uZXJJbmZvICpjb250ZXh0KQogCQkJfQogCiAJCQkvKgotCQkJICogSWdu b3JlIG90aGVyIHV0aWxpdHkgc3RhdGVtZW50cywgZXhjZXB0IHRob3NlIChzdWNoIGFzIEVYUExB SU4pCi0JCQkgKiB0aGF0IGNvbnRhaW4gYSBwYXJzZWQtYnV0LW5vdC1wbGFubmVkIHF1ZXJ5LiAg Rm9yIHRob3NlLCB3ZQotCQkJICoganVzdCBuZWVkIHRvIHRyYW5zZmVyIG91ciBhdHRlbnRpb24g dG8gdGhlIGNvbnRhaW5lZCBxdWVyeS4KKwkJCSAqIElnbm9yZSBvdGhlciB1dGlsaXR5IHN0YXRl bWVudHMsIGV4Y2VwdCB0aG9zZSAoc3VjaCBhcyBFWFBMQUlOCisJCQkgKiBvciBMRVQpIHRoYXQg Y29udGFpbiBhIHBhcnNlZC1idXQtbm90LXBsYW5uZWQgcXVlcnkuICBGb3IgdGhvc2UsCisJCQkg KiB3ZSBqdXN0IG5lZWQgdG8gdHJhbnNmZXIgb3VyIGF0dGVudGlvbiB0byB0aGUgY29udGFpbmVk IHF1ZXJ5LgogCQkJICovCiAJCQlxdWVyeSA9IFV0aWxpdHlDb250YWluc1F1ZXJ5KHF1ZXJ5LT51 dGlsaXR5U3RtdCk7CiAJCQlpZiAocXVlcnkgPT0gTlVMTCkKQEAgLTM2NDYsNiArMzc4MywxMCBA QCBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llc193YWxrZXIoTm9kZSAqbm9kZSwgUGxhbm5lcklu Zm8gKmNvbnRleHQpCiAJCQkJCWxhcHBlbmRfb2lkKGNvbnRleHQtPmdsb2ItPnJlbGF0aW9uT2lk cywgcnRlLT5yZWxpZCk7CiAJCX0KIAorCQkvKiByZWNvcmQgZGVwZW5kZW5jeSBvbiB0aGUgdGFy Z2V0IHZhcmlhYmxlIG9mIGEgTEVUIGNvbW1hbmQgKi8KKwkJaWYgKE9pZElzVmFsaWQocXVlcnkt PnJlc3VsdFZhcmlhYmxlKSkKKwkJCXJlY29yZF9wbGFuX3ZhcmlhYmxlX2RlcGVuZGVuY3koY29u dGV4dCwgcXVlcnktPnJlc3VsdFZhcmlhYmxlKTsKKwogCQkvKiBBbmQgcmVjdXJzZSBpbnRvIHRo ZSBxdWVyeSdzIHN1YmV4cHJlc3Npb25zICovCiAJCXJldHVybiBxdWVyeV90cmVlX3dhbGtlcihx dWVyeSwgZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXNfd2Fsa2VyLAogCQkJCQkJCQkgY29udGV4 dCwgMCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRy ZWUuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jCmluZGV4IDgy Nzc1YTNkZDUuLmE3OTE3OWZjMzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9w cmVwL3ByZXBqb2ludHJlZS5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBq b2ludHJlZS5jCkBAIC0xNDMyLDYgKzE0MzIsOSBAQCBwdWxsX3VwX3NpbXBsZV9zdWJxdWVyeShQ bGFubmVySW5mbyAqcm9vdCwgTm9kZSAqanRub2RlLCBSYW5nZVRibEVudHJ5ICpydGUsCiAJLyog SWYgc3VicXVlcnkgaGFkIGFueSBSTFMgY29uZGl0aW9ucywgbm93IG1haW4gcXVlcnkgZG9lcyB0 b28gKi8KIAlwYXJzZS0+aGFzUm93U2VjdXJpdHkgfD0gc3VicXVlcnktPmhhc1Jvd1NlY3VyaXR5 OwogCisJLyogaWYgdGhlIHN1YnF1ZXJ5IGhhZCBzZXNzaW9uIHZhcmlhYmxlcywgdGhlIG1haW4g cXVlcnkgZG9lcyB0b28gKi8KKwlwYXJzZS0+aGFzU2Vzc2lvblZhcmlhYmxlcyB8PSBzdWJxdWVy eS0+aGFzU2Vzc2lvblZhcmlhYmxlczsKKwogCS8qCiAJICogc3VicXVlcnkgd29uJ3QgYmUgcHVs bGVkIHVwIGlmIGl0IGhhc0FnZ3MsIGhhc1dpbmRvd0Z1bmNzLCBvcgogCSAqIGhhc1RhcmdldFNS RnMsIHNvIG5vIHdvcmsgbmVlZGVkIG9uIHRob3NlIGZsYWdzCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRp bC9jbGF1c2VzLmMKaW5kZXggZGUxZjM0MGNiZS4uMmJjM2IxZjUyMCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGlt aXplci91dGlsL2NsYXVzZXMuYwpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cv cGdfb3BlcmF0b3IuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgi CiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJleGVjdXRvci9mdW5j dGlvbnMuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC05MzQsNiArOTM1LDEzIEBAIG1heF9w YXJhbGxlbF9oYXphcmRfd2Fsa2VyKE5vZGUgKm5vZGUsIG1heF9wYXJhbGxlbF9oYXphcmRfY29u dGV4dCAqY29udGV4dCkKIAkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fRVhURVJOKQog CQkJcmV0dXJuIGZhbHNlOwogCisJCS8qIHdlIGRvbid0IHN1cHBvcnQgcGFzc2luZyBzZXNzaW9u IHZhcmlhYmxlcyB0byB3b3JrZXJzICovCisJCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFN X1ZBUklBQkxFKQorCQl7CisJCQlpZiAobWF4X3BhcmFsbGVsX2hhemFyZF90ZXN0KFBST1BBUkFM TEVMX1JFU1RSSUNURUQsIGNvbnRleHQpKQorCQkJCXJldHVybiB0cnVlOworCQl9CisKIAkJaWYg KHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhFQyB8fAogCQkJIWxpc3RfbWVtYmVyX2ludChj b250ZXh0LT5zYWZlX3BhcmFtX2lkcywgcGFyYW0tPnBhcmFtaWQpKQogCQl7CkBAIC0yMzg4LDYg KzIzOTYsNyBAQCBjb252ZXJ0X3Nhb3BfdG9faGFzaGVkX3Nhb3Bfd2Fsa2VyKE5vZGUgKm5vZGUs IHZvaWQgKmNvbnRleHQpCiAgKgkgIHZhbHVlIG9mIHRoZSBQYXJhbS4KICAqIDIuIEZvbGQgc3Rh YmxlLCBhcyB3ZWxsIGFzIGltbXV0YWJsZSwgZnVuY3Rpb25zIHRvIGNvbnN0YW50cy4KICAqIDMu IFJlZHVjZSBQbGFjZUhvbGRlclZhciBub2RlcyB0byB0aGVpciBjb250YWluZWQgZXhwcmVzc2lv bnMuCisgKiA0LiBDdXJyZW50IHZhbHVlIG9mIHNlc3Npb24gdmFyaWFibGUgY2FuIGJlIHVzZWQg Zm9yIGVzdGltYXRpb24gdG9vLgogICotLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiBOb2RlICoK QEAgLTI1MTQsNiArMjUyMywyNyBAQCBldmFsX2NvbnN0X2V4cHJlc3Npb25zX211dGF0b3IoTm9k ZSAqbm9kZSwKIAkJCQkJCX0KIAkJCQkJfQogCQkJCX0KKwkJCQllbHNlIGlmIChwYXJhbS0+cGFy YW1raW5kID09IFBBUkFNX1ZBUklBQkxFICYmCisJCQkJCQkgY29udGV4dC0+ZXN0aW1hdGUpCisJ CQkJeworCQkJCQlpbnQxNgkJdHlwTGVuOworCQkJCQlib29sCQl0eXBCeVZhbDsKKwkJCQkJRGF0 dW0JCXB2YWw7CisJCQkJCWJvb2wJCWlzbnVsbDsKKworCQkJCQlnZXRfdHlwbGVuYnl2YWwocGFy YW0tPnBhcmFtdHlwZSwKKwkJCQkJCQkJCSZ0eXBMZW4sICZ0eXBCeVZhbCk7CisKKwkJCQkJcHZh bCA9IEdldFNlc3Npb25WYXJpYWJsZShwYXJhbS0+cGFyYW12YXJpZCwgJmlzbnVsbCk7CisKKwkJ CQkJcmV0dXJuIChOb2RlICopIG1ha2VDb25zdChwYXJhbS0+cGFyYW10eXBlLAorCQkJCQkJCQkJ CQkgIHBhcmFtLT5wYXJhbXR5cG1vZCwKKwkJCQkJCQkJCQkJICBwYXJhbS0+cGFyYW1jb2xsaWQs CisJCQkJCQkJCQkJCSAgKGludCkgdHlwTGVuLAorCQkJCQkJCQkJCQkgIHB2YWwsCisJCQkJCQkJ CQkJCSAgaXNudWxsLAorCQkJCQkJCQkJCQkgIHR5cEJ5VmFsKTsKKwkJCQl9CiAKIAkJCQkvKgog CQkJCSAqIE5vdCByZXBsYWNlYWJsZSwgc28ganVzdCBjb3B5IHRoZSBQYXJhbSAobm8gbmVlZCB0 bwpAQCAtNDcxNyw3ICs0NzQ3LDggQEAgaW5saW5lX2Z1bmN0aW9uKE9pZCBmdW5jaWQsIE9pZCBy ZXN1bHRfdHlwZSwgT2lkIHJlc3VsdF9jb2xsaWQsCiAJCXF1ZXJ5dHJlZS0+bGltaXRPZmZzZXQg fHwKIAkJcXVlcnl0cmVlLT5saW1pdENvdW50IHx8CiAJCXF1ZXJ5dHJlZS0+c2V0T3BlcmF0aW9u cyB8fAotCQlsaXN0X2xlbmd0aChxdWVyeXRyZWUtPnRhcmdldExpc3QpICE9IDEpCisJCShsaXN0 X2xlbmd0aChxdWVyeXRyZWUtPnRhcmdldExpc3QpICE9IDEpIHx8CisJCXF1ZXJ5dHJlZS0+aGFz U2Vzc2lvblZhcmlhYmxlcykKIAkJZ290byBmYWlsOwogCiAJLyogSWYgdGhlIGZ1bmN0aW9uIHJl c3VsdCBpcyBjb21wb3NpdGUsIHJlc29sdmUgaXQgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9hbmFseXplLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IDU2 MWNmNGQ2YTcuLjNlOTgxNGFkOWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFs eXplLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwpAQCAtMjUsOSArMjUsMTIg QEAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAiYWNjZXNzL3N5c2F0dHIuaCIK KyNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJv Yy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdf dmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKKyNpbmNsdWRlICJjb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVk ZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCkBAIC01 MSw2ICs1NCw3IEBACiAjaW5jbHVkZSAidXRpbHMvYmFja2VuZF9zdGF0dXMuaCIKICNpbmNsdWRl ICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2d1Yy5oIgorI2luY2x1ZGUgInV0 aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3JlbC5oIgogI2luY2x1ZGUgInV0aWxz L3N5c2NhY2hlLmgiCiAKQEAgLTgzLDYgKzg3LDggQEAgc3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1D cmVhdGVUYWJsZUFzU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJIENyZWF0ZVRh YmxlQXNTdG10ICpzdG10KTsKIHN0YXRpYyBRdWVyeSAqdHJhbnNmb3JtQ2FsbFN0bXQoUGFyc2VT dGF0ZSAqcHN0YXRlLAogCQkJCQkJCQlDYWxsU3RtdCAqc3RtdCk7CitzdGF0aWMgUXVlcnkgKnRy YW5zZm9ybUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCSAgIExldFN0bXQgKnN0 bXQpOwogc3RhdGljIHZvaWQgdHJhbnNmb3JtTG9ja2luZ0NsYXVzZShQYXJzZVN0YXRlICpwc3Rh dGUsIFF1ZXJ5ICpxcnksCiAJCQkJCQkJCSAgIExvY2tpbmdDbGF1c2UgKmxjLCBib29sIHB1c2hl ZERvd24pOwogI2lmZGVmIERFQlVHX05PREVfVEVTVFNfRU5BQkxFRApAQCAtNDE0LDYgKzQyMCw3 IEBAIHRyYW5zZm9ybVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpwYXJzZVRyZWUpCiAJ CQljYXNlIFRfVXBkYXRlU3RtdDoKIAkJCWNhc2UgVF9EZWxldGVTdG10OgogCQkJY2FzZSBUX01l cmdlU3RtdDoKKwkJCWNhc2UgVF9MZXRTdG10OgogCQkJCSh2b2lkKSB0ZXN0X3Jhd19leHByZXNz aW9uX2NvdmVyYWdlKHBhcnNlVHJlZSwgTlVMTCk7CiAJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgpA QCAtNDkzLDYgKzUwMCwxMSBAQCB0cmFuc2Zvcm1TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9k ZSAqcGFyc2VUcmVlKQogCQkJCQkJCQkJICAgKENhbGxTdG10ICopIHBhcnNlVHJlZSk7CiAJCQli cmVhazsKIAorCQljYXNlIFRfTGV0U3RtdDoKKwkJCXJlc3VsdCA9IHRyYW5zZm9ybUxldFN0bXQo cHN0YXRlLAorCQkJCQkJCQkJICAoTGV0U3RtdCAqKSBwYXJzZVRyZWUpOworCQkJYnJlYWs7CisK IAkJZGVmYXVsdDoKIAogCQkJLyoKQEAgLTU0NSw2ICs1NTcsNyBAQCBzdG10X3JlcXVpcmVzX3Bh cnNlX2FuYWx5c2lzKFJhd1N0bXQgKnBhcnNlVHJlZSkKIAkJY2FzZSBUX1NlbGVjdFN0bXQ6CiAJ CWNhc2UgVF9SZXR1cm5TdG10OgogCQljYXNlIFRfUExBc3NpZ25TdG10OgorCQljYXNlIFRfTGV0 U3RtdDoKIAkJCXJlc3VsdCA9IHRydWU7CiAJCQlicmVhazsKIApAQCAtNjUzLDYgKzY2Niw3IEBA IHRyYW5zZm9ybURlbGV0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBEZWxldGVTdG10ICpzdG10 KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5 LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dz ID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRl LT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3Rh dGUsIHFyeSk7CiAKQEAgLTEwNzksNiArMTA5Myw3IEBAIHRyYW5zZm9ybUluc2VydFN0bXQoUGFy c2VTdGF0ZSAqcHN0YXRlLCBJbnNlcnRTdG10ICpzdG10KQogCiAJcXJ5LT5oYXNUYXJnZXRTUkZz ID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNTdWJMaW5rcyA9IHBzdGF0ZS0+ cF9oYXNTdWJMaW5rczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFz U2Vzc2lvblZhcmlhYmxlczsKIAogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5 KTsKIApAQCAtMTU0NCw2ICsxNTU5LDcgQEAgdHJhbnNmb3JtU2VsZWN0U3RtdChQYXJzZVN0YXRl ICpwc3RhdGUsIFNlbGVjdFN0bXQgKnN0bXQpCiAJcXJ5LT5oYXNXaW5kb3dGdW5jcyA9IHBzdGF0 ZS0+cF9oYXNXaW5kb3dGdW5jczsKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFz VGFyZ2V0U1JGczsKIAlxcnktPmhhc0FnZ3MgPSBwc3RhdGUtPnBfaGFzQWdnczsKKwlxcnktPmhh c1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWZv cmVhY2gobCwgc3RtdC0+bG9ja2luZ0NsYXVzZSkKIAl7CkBAIC0xNzcwLDEyICsxNzg2LDI0MSBA QCB0cmFuc2Zvcm1WYWx1ZXNDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpz dG10KQogCXFyeS0+am9pbnRyZWUgPSBtYWtlRnJvbUV4cHIocHN0YXRlLT5wX2pvaW5saXN0LCBO VUxMKTsKIAogCXFyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5 LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAK IAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKIAlyZXR1cm4gcXJ5Owog fQogCisvKgorICogdHJhbnNmb3JtTGV0U3RtdCAtCisgKgkgIHRyYW5zZm9ybSBhbiBMZXQgU3Rh dGVtZW50CisgKi8KK3N0YXRpYyBRdWVyeSAqCit0cmFuc2Zvcm1MZXRTdG10KFBhcnNlU3RhdGUg KnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCkKK3sKKwlRdWVyeQkgICAqcXVlcnk7CisJUXVlcnkJICAg KnJlc3VsdDsKKwlMaXN0CSAgICpleHByTGlzdCA9IE5JTDsKKwlMaXN0CSAgICpleHByTGlzdENv ZXIgPSBOSUw7CisJTGlzdENlbGwgICAqbGM7CisJTGlzdENlbGwgICAqaW5kaXJlY3Rpb25faGVh ZCA9IE5VTEw7CisJUXVlcnkJICAgKnNlbGVjdFF1ZXJ5OworCU9pZAkJCXZhcmlkOworCWNoYXIJ ICAgKmF0dHJuYW1lID0gTlVMTDsKKwlib29sCQlub3RfdW5pcXVlOworCWJvb2wJCWlzX3Jvd3R5 cGU7CisJT2lkCQkJdHlwaWQ7CisJaW50MzIJCXR5cG1vZDsKKwlPaWQJCQljb2xsaWQ7CisJTGlz dAkgICAqbmFtZXMgPSBOVUxMOworCWludAkJCWluZGlyZWN0aW9uX3N0YXJ0OworCWludAkJCWkg PSAwOworCisJLyogdGhlcmUgY2FuJ3QgYmUgYW55IG91dGVyIFdJVEggdG8gd29ycnkgYWJvdXQg Ki8KKwlBc3NlcnQocHN0YXRlLT5wX2N0ZW5hbWVzcGFjZSA9PSBOSUwpOworCisJbmFtZXMgPSBO YW1lc0Zyb21MaXN0KHN0bXQtPnRhcmdldCk7CisKKwkvKiBsb2NrcyB0aGUgdmFyaWFibGUgd2l0 aCBhbiBBY2Nlc3NTaGFyZUxvY2sgKi8KKwl2YXJpZCA9IElkZW50aWZ5VmFyaWFibGUobmFtZXMs ICZhdHRybmFtZSwgJm5vdF91bmlxdWUsIGZhbHNlKTsKKwlpZiAobm90X3VuaXF1ZSkKKwkJZXJl cG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0FNQklHVU9VU19QQVJBTUVURVIpLAor CQkJCSBlcnJtc2coInRhcmdldCBcIiVzXCIgb2YgTEVUIGNvbW1hbmQgaXMgYW1iaWd1b3VzIiwK KwkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9u KHBzdGF0ZSwgc3RtdC0+bG9jYXRpb24pKSk7CisKKwlpZiAoIU9pZElzVmFsaWQodmFyaWQpKQor CQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCks CisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgZG9lc24ndCBleGlzdCIsCisJ CQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihw c3RhdGUsIHN0bXQtPmxvY2F0aW9uKSkpOworCisJLyoKKwkgKiBDYWxjdWxhdGUgc3RhcnQgb2Yg cG9zc2libGUgcG9zaXRpb24gb2YgYW4gaW5kaXJlY3Rpb24gaW4gbGlzdCwgYW5kCisJICogd2hl biBpdCBpcyBpbnNpZGUgdGhlIGxpc3QsIHN0b3JlIHBvaW50ZXIgb24gZmlyc3Qgbm9kZSBvZiBp bmRpcmVjdGlvbi4KKwkgKi8KKwlpbmRpcmVjdGlvbl9zdGFydCA9IGxpc3RfbGVuZ3RoKG5hbWVz KSAtIChhdHRybmFtZSA/IDEgOiAwKTsKKwlpZiAobGlzdF9sZW5ndGgoc3RtdC0+dGFyZ2V0KSA+ IGluZGlyZWN0aW9uX3N0YXJ0KQorCQlpbmRpcmVjdGlvbl9oZWFkID0gbGlzdF9udGhfY2VsbChz dG10LT50YXJnZXQsIGluZGlyZWN0aW9uX3N0YXJ0KTsKKworCWdldF9zZXNzaW9uX3ZhcmlhYmxl X3R5cGVfdHlwbW9kX2NvbGxpZCh2YXJpZCwgJnR5cGlkLCAmdHlwbW9kLCAmY29sbGlkKTsKKwor CWlzX3Jvd3R5cGUgPSB0eXBlX2lzX3Jvd3R5cGUodHlwaWQpOworCisJaWYgKGF0dHJuYW1lICYm ICFpc19yb3d0eXBlKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfREFU QVRZUEVfTUlTTUFUQ0gpLAorCQkJCSBlcnJtc2coImNhbm5vdCBhc3NpZ24gdG8gZmllbGQgXCIl c1wiIG9mIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIGJlY2F1c2UgaXRzIHR5cGUgJXMgaXMg bm90IGEgY29tcG9zaXRlIHR5cGUiLAorCQkJCQkJYXR0cm5hbWUsCisJCQkJCQlnZXRfbmFtZXNw YWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQln ZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSwKKwkJCQkJCWZvcm1hdF90eXBlX2JlKHR5 cGlkKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHN0bXQtPmxvY2F0aW9uKSkp OworCisJcHN0YXRlLT5wX2V4cHJfa2luZCA9IEVYUFJfS0lORF9MRVRfVEFSR0VUOworCisJLyog d2UgbmVlZCB0byBwb3N0cG9uZSBjb252ZXJzaW9uIG9mICJ1bmtub3duIiB0byB0ZXh0ICovCisJ cHN0YXRlLT5wX3Jlc29sdmVfdW5rbm93bnMgPSBmYWxzZTsKKworCXNlbGVjdFF1ZXJ5ID0gdHJh bnNmb3JtU3RtdChwc3RhdGUsIHN0bXQtPnF1ZXJ5KTsKKworCS8qIHRoZSBncmFtbWFyIHNob3Vs ZCBoYXZlIHByb2R1Y2VkIGEgU0VMRUNUICovCisJQXNzZXJ0KElzQShzZWxlY3RRdWVyeSwgUXVl cnkpICYmIHNlbGVjdFF1ZXJ5LT5jb21tYW5kVHlwZSA9PSBDTURfU0VMRUNUKTsKKworCS8qCisJ ICogR2VuZXJhdGUgYW4gZXhwcmVzc2lvbiBsaXN0IGZvciB0aGUgTEVUIHRoYXQgc2VsZWN0cyBh bGwgdGhlIG5vbi1yZXNqdW5rCisJICogY29sdW1ucyBmcm9tIHRoZSBzdWJxdWVyeS4KKwkgKi8K KwlleHByTGlzdCA9IE5JTDsKKwlmb3JlYWNoX25vZGUoVGFyZ2V0RW50cnksIHRsZSwgc2VsZWN0 UXVlcnktPnRhcmdldExpc3QpCisJeworCQlpZiAodGxlLT5yZXNqdW5rKQorCQkJY29udGludWU7 CisKKwkJZXhwckxpc3QgPSBsYXBwZW5kKGV4cHJMaXN0LCB0bGUtPmV4cHIpOworCX0KKworCS8q IGRvbid0IGFsbG93IG11bHRpY29sdW1uIHJlc3VsdCAqLworCWlmIChsaXN0X2xlbmd0aChleHBy TGlzdCkgIT0gMSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRB WF9FUlJPUiksCisJCQkJIGVycm1zZ19wbHVyYWwoImFzc2lnbm1lbnQgZXhwcmVzc2lvbiByZXR1 cm5lZCAlZCBjb2x1bW4iLAorCQkJCQkJCSAgICJhc3NpZ25tZW50IGV4cHJlc3Npb24gcmV0dXJu ZWQgJWQgY29sdW1ucyIsCisJCQkJCQkJICAgbGlzdF9sZW5ndGgoZXhwckxpc3QpLAorCQkJCQkJ CSAgIGxpc3RfbGVuZ3RoKGV4cHJMaXN0KSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3Rh dGUsCisJCQkJCQkJCQlleHByTG9jYXRpb24oKE5vZGUgKikgZXhwckxpc3QpKSkpOworCisJZXhw ckxpc3RDb2VyID0gTklMOworCisJZm9yZWFjaChsYywgZXhwckxpc3QpCisJeworCQlFeHByCSAg ICpleHByID0gKEV4cHIgKikgbGZpcnN0KGxjKTsKKwkJRXhwcgkgICAqY29lcmNlZF9leHByOwor CQlPaWQJCQlleHBydHlwaWQ7CisKKwkJLyogbm93IHdlIGNhbiByZWFkIHRoZSB0eXBlIG9mIHRo ZSBleHByZXNzaW9uICovCisJCWV4cHJ0eXBpZCA9IGV4cHJUeXBlKChOb2RlICopIGV4cHIpOwor CisJCWlmIChpbmRpcmVjdGlvbl9oZWFkKQorCQl7CisJCQlib29sCQl0YXJnZXRJc0FycmF5Owor CQkJY2hhcgkgICAqdGFyZ2V0TmFtZTsKKwkJCVBhcmFtCSAgICpwYXJhbTsKKworCQkJdGFyZ2V0 TmFtZSA9IGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpOworCQkJdGFyZ2V0SXNBcnJh eSA9IE9pZElzVmFsaWQoZ2V0X2VsZW1lbnRfdHlwZSh0eXBpZCkpOworCisJCQlwc3RhdGUtPnBf aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHRydWU7CisKKwkJCXBhcmFtID0gbWFrZU5vZGUoUGFyYW0p OworCQkJcGFyYW0tPnBhcmFta2luZCA9IFBBUkFNX1ZBUklBQkxFOworCQkJcGFyYW0tPnBhcmFt dmFyaWQgPSB2YXJpZDsKKwkJCXBhcmFtLT5wYXJhbXR5cGUgPSB0eXBpZDsKKwkJCXBhcmFtLT5w YXJhbXR5cG1vZCA9IHR5cG1vZDsKKworCQkJLyoKKwkJCSAqIFRoZSBwYXJhbWV0ZXIgdXNlZCBh cyBiYXNlbm9kZSBoYXMgdG8gaGF2ZSBzcGVjaWFsCisJCQkgKiBtYXJrLCBiZWNhdXNlIHJlcXVp cmVzIHNwZWNpYWwgYWNjZXNzIHdoZW4gd2UgZG8KKwkJCSAqIFNFTEVDVCBhY2Nlc3MgY2hlY2su CisJCQkgKi8KKwkJCXBhcmFtLT5wYXJhbWJhc2Vub2RlID0gdHJ1ZTsKKworCQkJY29lcmNlZF9l eHByID0gKEV4cHIgKikKKwkJCQl0cmFuc2Zvcm1Bc3NpZ25tZW50SW5kaXJlY3Rpb24ocHN0YXRl LAorCQkJCQkJCQkJCQkgICAoTm9kZSAqKSBwYXJhbSwKKwkJCQkJCQkJCQkJICAgdGFyZ2V0TmFt ZSwKKwkJCQkJCQkJCQkJICAgdGFyZ2V0SXNBcnJheSwKKwkJCQkJCQkJCQkJICAgdHlwaWQsCisJ CQkJCQkJCQkJCSAgIHR5cG1vZCwKKwkJCQkJCQkJCQkJICAgSW52YWxpZE9pZCwKKwkJCQkJCQkJ CQkJICAgc3RtdC0+dGFyZ2V0LAorCQkJCQkJCQkJCQkgICBpbmRpcmVjdGlvbl9oZWFkLAorCQkJ CQkJCQkJCQkgICAoTm9kZSAqKSBleHByLAorCQkJCQkJCQkJCQkgICBDT0VSQ0lPTl9BU1NJR05N RU5ULAorCQkJCQkJCQkJCQkgICBzdG10LT5sb2NhdGlvbik7CisJCX0KKwkJZWxzZQorCQkJY29l cmNlZF9leHByID0gKEV4cHIgKikKKwkJCQljb2VyY2VfdG9fdGFyZ2V0X3R5cGUocHN0YXRlLAor CQkJCQkJCQkJICAoTm9kZSAqKSBleHByLAorCQkJCQkJCQkJICBleHBydHlwaWQsCisJCQkJCQkJ CQkgIHR5cGlkLCB0eXBtb2QsCisJCQkJCQkJCQkgIENPRVJDSU9OX0FTU0lHTk1FTlQsCisJCQkJ CQkJCQkgIENPRVJDRV9JTVBMSUNJVF9DQVNULAorCQkJCQkJCQkJICBzdG10LT5sb2NhdGlvbik7 CisKKwkJaWYgKGNvZXJjZWRfZXhwciA9PSBOVUxMKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ KGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCSBlcnJtc2coInZhcmlh YmxlIFwiJXMuJXNcIiBpcyBvZiB0eXBlICVzLCBidXQgZXhwcmVzc2lvbiBpcyBvZiB0eXBlICVz IiwKKwkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNw YWNlKHZhcmlkKSksCisJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCksCisJ CQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpLAorCQkJCQkJCWZvcm1hdF90eXBlX2JlKGV4cHJ0 eXBpZCkpLAorCQkJCQkgZXJyaGludCgiWW91IHdpbGwgbmVlZCB0byByZXdyaXRlIG9yIGNhc3Qg dGhlIGV4cHJlc3Npb24uIiksCisJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHBy TG9jYXRpb24oKE5vZGUgKikgZXhwcikpKSk7CisKKwkJZXhwckxpc3RDb2VyID0gbGFwcGVuZChl eHByTGlzdENvZXIsIGNvZXJjZWRfZXhwcik7CisJfQorCisJLyogZ2VuZXJhdGUgcXVlcnkncyB0 YXJnZXQgbGlzdCB1c2luZyB0aGUgY29tcHV0ZWQgbGlzdCBvZiBleHByZXNzaW9ucyAqLworCXF1 ZXJ5ID0gbWFrZU5vZGUoUXVlcnkpOworCXF1ZXJ5LT5jb21tYW5kVHlwZSA9IENNRF9TRUxFQ1Q7 CisKKwlmb3JlYWNoKGxjLCBleHByTGlzdENvZXIpCisJeworCQlFeHByCSAgICpleHByID0gKEV4 cHIgKikgbGZpcnN0KGxjKTsKKwkJVGFyZ2V0RW50cnkgKnRsZTsKKworCQl0bGUgPSBtYWtlVGFy Z2V0RW50cnkoZXhwciwKKwkJCQkJCQkgIGkgKyAxLAorCQkJCQkJCSAgRmlndXJlQ29sbmFtZSgo Tm9kZSAqKSBleHByKSwKKwkJCQkJCQkgIGZhbHNlKTsKKwkJcXVlcnktPnRhcmdldExpc3QgPSBs YXBwZW5kKHF1ZXJ5LT50YXJnZXRMaXN0LCB0bGUpOworCX0KKworCS8qIGRvbmUgYnVpbGRpbmcg dGhlIHJhbmdlIHRhYmxlIGFuZCBqb2ludHJlZSAqLworCXF1ZXJ5LT5ydGFibGUgPSBwc3RhdGUt PnBfcnRhYmxlOworCXF1ZXJ5LT5qb2ludHJlZSA9IG1ha2VGcm9tRXhwcihwc3RhdGUtPnBfam9p bmxpc3QsIE5VTEwpOworCisJcXVlcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFy Z2V0U1JGczsKKwlxdWVyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJ cXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxl czsKKworCS8qIHRoaXMgaXMgdG9wLWxldmVsIHF1ZXJ5ICovCisJcXVlcnktPmNhblNldFRhZyA9 IHRydWU7CisKKwkvKgorCSAqIFNhdmUgdGFyZ2V0IHNlc3Npb24gdmFyaWFibGUgSUQuIEl0IGlz IHVzZWQgbGF0ZXIgZm9yCisJICogYWNxdWlyaW5nIGFuIEFjY2Vzc1NoYXJlTG9jayBvbiB0YXJn ZXQgdmFyaWFibGUsIHNldHRpbmcKKwkgKiBwbGFuIGRlcGVuZGVuY3kgYW5kIGZpbmFsbHkgZm9y IGNyZWF0aW5nIFZhcmlhYmxlRGVzdFJlY2VpdmVyLgorCSAqLworCXF1ZXJ5LT5yZXN1bHRWYXJp YWJsZSA9IHZhcmlkOworCisJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxdWVyeSk7 CisKKwkvKgorCSAqIFRoZSBxdWVyeSBpcyBleGVjdXRlZCBhcyB1dGlsaXR5IGNvbW1hbmQgYnkg bmVzdGVkIGV4ZWN1dG9yIGNhbGwuCisJICogQXNzaWduZWQgcXVlcnlJZCBpcyByZXF1aXJlZCBp biB0aGlzIGNhc2UuCisJICovCisJaWYgKElzUXVlcnlJZEVuYWJsZWQoKSkKKwkJSnVtYmxlUXVl cnkocXVlcnkpOworCisJc3RtdC0+cXVlcnkgPSAoTm9kZSAqKSBxdWVyeTsKKworCS8qIHJlcHJl c2VudCB0aGUgY29tbWFuZCBhcyBhIHV0aWxpdHkgUXVlcnkgKi8KKwlyZXN1bHQgPSBtYWtlTm9k ZShRdWVyeSk7CisJcmVzdWx0LT5jb21tYW5kVHlwZSA9IENNRF9VVElMSVRZOworCXJlc3VsdC0+ dXRpbGl0eVN0bXQgPSAoTm9kZSAqKSBzdG10OworCisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyoK ICAqIHRyYW5zZm9ybVNldE9wZXJhdGlvblN0bXQgLQogICoJICB0cmFuc2Zvcm1zIGEgc2V0LW9w ZXJhdGlvbnMgdHJlZQpAQCAtMjAyMSw2ICsyMjY2LDcgQEAgdHJhbnNmb3JtU2V0T3BlcmF0aW9u U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFNlbGVjdFN0bXQgKnN0bXQpCiAJcXJ5LT5oYXNXaW5k b3dGdW5jcyA9IHBzdGF0ZS0+cF9oYXNXaW5kb3dGdW5jczsKIAlxcnktPmhhc1RhcmdldFNSRnMg PSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlxcnktPmhhc0FnZ3MgPSBwc3RhdGUtPnBfaGFz QWdnczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZh cmlhYmxlczsKIAogCWZvcmVhY2gobCwgbG9ja2luZ0NsYXVzZSkKIAl7CkBAIC0yNDk2LDYgKzI3 NDIsNyBAQCB0cmFuc2Zvcm1SZXR1cm5TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmV0dXJuU3Rt dCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNz OwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+ aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9 IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlv bnMocHN0YXRlLCBxcnkpOwogCkBAIC0yNTYzLDYgKzI4MTAsNyBAQCB0cmFuc2Zvcm1VcGRhdGVT dG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVXBkYXRlU3RtdCAqc3RtdCkKIAogCXFyeS0+aGFzVGFy Z2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzU3ViTGlua3MgPSBw c3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRl LT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3Rh dGUsIHFyeSk7CiAKQEAgLTI3NTAsOSArMjk5OCwxNSBAQCB0cmFuc2Zvcm1QTEFzc2lnblN0bXQo UGFyc2VTdGF0ZSAqcHN0YXRlLCBQTEFzc2lnblN0bXQgKnN0bXQpCiAJLyoKIAkgKiBUcmFuc2Zv cm0gdGhlIHRhcmdldCByZWZlcmVuY2UuICBUeXBpY2FsbHkgd2Ugd2lsbCBnZXQgYmFjayBhIFBh cmFtCiAJICogbm9kZSwgYnV0IHRoZXJlJ3Mgbm8gcmVhc29uIHRvIGJlIHRvbyBwaWNreSBhYm91 dCBpdHMgdHlwZS4KKwkgKgorCSAqIFNlc3Npb24gdmFyaWFibGVzIHNob3VsZCBub3QgYmUgdXNl ZCBhcyB0YXJnZXQgb2YgYSBQTC9wZ1NRTCBhc3NpZ24KKwkgKiBzdGF0ZW1lbnQuICBTbyB3ZSBz aG91bGQgdXNlIGEgZGVkaWNhdGVkIGV4cHJlc3Npb24ga2luZCBhbmQgZGlzYWxsb3cKKwkgKiBz ZXNzaW9uIHZhcmlhYmxlcyB0aGVyZS4gIFRoZSBkZWRpY2F0ZWQgY29udGV4dCBhbGxvd3MgdG8g ZWxpbWluYXRlCisJICogdW5kZXNpcmFibGUgd2FybmluZ3MgYWJvdXQgdGhlIHBvc3NpYmlsaXR5 IG9mIGEgdGFyZ2V0IFBML3BnU1FMIHZhcmlhYmxlCisJICogc2hhZG93aW5nIGEgc2Vzc2lvbiB2 YXJpYWJsZS4KIAkgKi8KIAl0YXJnZXQgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgKE5vZGUgKikg Y3JlZiwKLQkJCQkJCSAgIEVYUFJfS0lORF9VUERBVEVfVEFSR0VUKTsKKwkJCQkJCSAgIEVYUFJf S0lORF9BU1NJR05fVEFSR0VUKTsKIAl0YXJnZXR0eXBlID0gZXhwclR5cGUodGFyZ2V0KTsKIAl0 YXJnZXR0eXBtb2QgPSBleHByVHlwbW9kKHRhcmdldCk7CiAJdGFyZ2V0Y29sbGF0aW9uID0gZXhw ckNvbGxhdGlvbih0YXJnZXQpOwpAQCAtMjc5NCw2ICszMDQ4LDEwIEBAIHRyYW5zZm9ybVBMQXNz aWduU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFBMQXNzaWduU3RtdCAqc3RtdCkKIAkgKi8KIAl0 eXBlX2lkID0gZXhwclR5cGUoKE5vZGUgKikgdGxlLT5leHByKTsKIAorCS8qCisJICogRm9yIGlu ZGlyZWN0aW9uIHByb2Nlc3NpbmcgYW5kIGFkZGl0aW9uYWwgY2FzdHMgd2UgY2FuIHVzZSBleHBy X2tpbmQKKwkgKiBFWFBSX0tJTkRfVVBEQVRFX1RBUkdFVC4KKwkgKi8KIAlwc3RhdGUtPnBfZXhw cl9raW5kID0gRVhQUl9LSU5EX1VQREFURV9UQVJHRVQ7CiAKIAlpZiAoaW5kaXJlY3Rpb24pCkBA IC0yOTM2LDYgKzMxOTQsOCBAQCB0cmFuc2Zvcm1QTEFzc2lnblN0bXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBQTEFzc2lnblN0bXQgKnN0bXQpCiAJCQkJCQkJICAgKExvY2tpbmdDbGF1c2UgKikgbGZp cnN0KGwpLCBmYWxzZSk7CiAJfQogCisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRl LT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CisKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3Rh dGUsIHFyeSk7CiAKIAkvKiB0aGlzIG11c3QgYmUgZG9uZSBhZnRlciBjb2xsYXRpb25zLCBmb3Ig cmVsaWFibGUgY29tcGFyaXNvbiBvZiBleHBycyAqLwpAQCAtMzIwOSw2ICszNDY5LDE2IEBAIHRy YW5zZm9ybUNhbGxTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ2FsbFN0bXQgKnN0bXQpCiAJCQkJ CQkJIHRydWUsCiAJCQkJCQkJIHN0bXQtPmZ1bmNjYWxsLT5sb2NhdGlvbik7CiAKKwkvKgorCSAq IFRoZSBhcmd1bWVudHMgb2YgQ0FMTCBzdGF0ZW1lbnQgYXJlIGV2YWx1YXRlZCBieSBhIGRpcmVj dCBleHByZXNzaW9uCisJICogZXhlY3V0b3IgY2FsbC4gIFRoaXMgcGF0aCBpcyB1bnN1cHBvcnRl ZCB5ZXQsIHNvIGJsb2NrIGl0LiAgSXQgd2lsbCBiZQorCSAqIGVuYWJsZWQgbGF0ZXIuCisJICov CisJaWYgKHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzKQorCQllcmVwb3J0KEVSUk9SLAor CQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkgZXJybXNn KCJzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50IikpKTsKKwog CWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCBub2RlKTsKIAogCWZleHByID0gY2FzdE5v ZGUoRnVuY0V4cHIsIG5vZGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggNzk2MTQ3YTU0MS4uYTQxNTBmODk5 YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CkBAIC0yOTMsNyArMjkzLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1 cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5 KTsKIAkJRHJvcFRyYW5zZm9ybVN0bXQKIAkJRHJvcFVzZXJNYXBwaW5nU3RtdCBFeHBsYWluU3Rt dCBGZXRjaFN0bXQKIAkJR3JhbnRTdG10IEdyYW50Um9sZVN0bXQgSW1wb3J0Rm9yZWlnblNjaGVt YVN0bXQgSW5kZXhTdG10IEluc2VydFN0bXQKLQkJTGlzdGVuU3RtdCBMb2FkU3RtdCBMb2NrU3Rt dCBNZXJnZVN0bXQgTm90aWZ5U3RtdCBFeHBsYWluYWJsZVN0bXQgUHJlcGFyYWJsZVN0bXQKKwkJ TGV0U3RtdCBMaXN0ZW5TdG10IExvYWRTdG10IExvY2tTdG10IE1lcmdlU3RtdCBOb3RpZnlTdG10 IEV4cGxhaW5hYmxlU3RtdCBQcmVwYXJhYmxlU3RtdAogCQlDcmVhdGVGdW5jdGlvblN0bXQgQWx0 ZXJGdW5jdGlvblN0bXQgUmVpbmRleFN0bXQgUmVtb3ZlQWdnclN0bXQKIAkJUmVtb3ZlRnVuY1N0 bXQgUmVtb3ZlT3BlclN0bXQgUmVuYW1lU3RtdCBSZXR1cm5TdG10IFJldm9rZVN0bXQgUmV2b2tl Um9sZVN0bXQKIAkJUnVsZUFjdGlvblN0bXQgUnVsZUFjdGlvblN0bXRPckVtcHR5IFJ1bGVTdG10 CkBAIC03MzQsNyArNzM0LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0 KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlLRUVQIEtFWSBL RVlTCiAKIAlMQUJFTCBMQU5HVUFHRSBMQVJHRV9QIExBU1RfUCBMQVRFUkFMX1AKLQlMRUFESU5H IExFQUtQUk9PRiBMRUFTVCBMRUZUIExFVkVMIExJS0UgTElNSVQgTElTVEVOIExPQUQgTE9DQUwK KwlMRUFESU5HIExFQUtQUk9PRiBMRUFTVCBMRUZUIExFVCBMRVZFTCBMSUtFIExJTUlUIExJU1RF TiBMT0FEIExPQ0FMCiAJTE9DQUxUSU1FIExPQ0FMVElNRVNUQU1QIExPQ0FUSU9OIExPQ0tfUCBM T0NLRUQgTE9HR0VECiAKIAlNQVBQSU5HIE1BVENIIE1BVENIRUQgTUFURVJJQUxJWkVEIE1BWFZB TFVFIE1FUkdFIE1FUkdFX0FDVElPTiBNRVRIT0QKQEAgLTEwODEsNiArMTA4MSw3IEBAIHN0bXQ6 CiAJCQl8IEltcG9ydEZvcmVpZ25TY2hlbWFTdG10CiAJCQl8IEluZGV4U3RtdAogCQkJfCBJbnNl cnRTdG10CisJCQl8IExldFN0bXQKIAkJCXwgTGlzdGVuU3RtdAogCQkJfCBSZWZyZXNoTWF0Vmll d1N0bXQKIAkJCXwgTG9hZFN0bXQKQEAgLTEyNzcwLDYgKzEyNzcxLDM4IEBAIG9wdF9ob2xkOiAv KiBFTVBUWSAqLwkJCQkJCXsgJCQgPSAwOyB9CiAJCQl8IFdJVEhPVVQgSE9MRAkJCQkJeyAkJCA9 IDA7IH0KIAkJOwogCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKgkJUVVFUlk6CisgKgkJ CQlMRVQgU1RBVEVNRU5UCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTGV0U3RtdDoJTEVU IENvbElkIG9wdF9pbmRpcmVjdGlvbiAnPScgYV9leHByCisJCQkJeworCQkJCQlMZXRTdG10CSAg ICpuID0gbWFrZU5vZGUoTGV0U3RtdCk7CisJCQkJCVNlbGVjdFN0bXQgKnNlbGVjdDsKKwkJCQkJ UmVzVGFyZ2V0ICAqcmVzOworCisJCQkJCW4tPnRhcmdldCA9IGxjb25zKG1ha2VTdHJpbmcoJDIp LAorCQkJCQkJCQkJICBjaGVja19pbmRpcmVjdGlvbigkMywgeXlzY2FubmVyKSk7CisKKwkJCQkJ c2VsZWN0ID0gbWFrZU5vZGUoU2VsZWN0U3RtdCk7CisJCQkJCXJlcyA9IG1ha2VOb2RlKFJlc1Rh cmdldCk7CisKKwkJCQkJLyogY3JlYXRlIHRhcmdldCBsaXN0IGZvciBpbXBsaWNpdCBxdWVyeSAq LworCQkJCQlyZXMtPm5hbWUgPSBOVUxMOworCQkJCQlyZXMtPmluZGlyZWN0aW9uID0gTklMOwor CQkJCQlyZXMtPnZhbCA9IChOb2RlICopICQ1OworCQkJCQlyZXMtPmxvY2F0aW9uID0gQDU7CisK KwkJCQkJc2VsZWN0LT50YXJnZXRMaXN0ID0gbGlzdF9tYWtlMShyZXMpOworCQkJCQluLT5xdWVy eSA9IChOb2RlICopIHNlbGVjdDsKKworCQkJCQluLT5sb2NhdGlvbiA9IEAyOworCQkJCQkkJCA9 IChOb2RlICopIG47CisJCQkJfQorCQk7CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAq CQlRVUVSWToKQEAgLTE3ODQwLDYgKzE3ODczLDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJ fCBMQVJHRV9QCiAJCQl8IExBU1RfUAogCQkJfCBMRUFLUFJPT0YKKwkJCXwgTEVUCiAJCQl8IExF VkVMCiAJCQl8IExJU1RFTgogCQkJfCBMT0FECkBAIC0xODQ1MSw2ICsxODQ4NSw3IEBAIGJhcmVf bGFiZWxfa2V5d29yZDoKIAkJCXwgTEVBS1BST09GCiAJCQl8IExFQVNUCiAJCQl8IExFRlQKKwkJ CXwgTEVUCiAJCQl8IExFVkVMCiAJCQl8IExJS0UKIAkJCXwgTElTVEVOCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf YWdnLmMKaW5kZXggOWU1NjdmM2NjNC4uNDczN2IwNGQxNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2FnZy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cu YwpAQCAtNTgwLDYgKzU4MCwxMSBAQCBjaGVja19hZ2dsZXZlbHNfYW5kX2NvbnN0cmFpbnRzKFBh cnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcikKIAkJCWVycmtpbmQgPSB0cnVlOwogCQkJYnJl YWs7CiAKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRf TEVUX1RBUkdFVDoKKwkJCWVycmtpbmQgPSB0cnVlOworCQkJYnJlYWs7CisKIAkJCS8qCiAJCQkg KiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0 aGUKIAkJCSAqIGNvbXBpbGVyIHdpbGwgd2FybiBpZiB3ZSBhZGQgYSBuZXcgUGFyc2VFeHByS2lu ZCB3aXRob3V0CkBAIC05NzAsNiArOTc1LDEwIEBAIHRyYW5zZm9ybVdpbmRvd0Z1bmNDYWxsKFBh cnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93RnVuYyAqd2Z1bmMsCiAJCWNhc2UgRVhQUl9LSU5EX0NZ Q0xFX01BUks6CiAJCQllcnJraW5kID0gdHJ1ZTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lO RF9BU1NJR05fVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgorCQkJZXJya2lu ZCA9IHRydWU7CisJCQlicmVhazsKIAogCQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFs bHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHBy LmMKaW5kZXggZDFmNjRmOGYwYS4uMWVkMDc1MTJjMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5j CkBAIC0xNyw2ICsxNyw3IEBACiAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2FnZ3JlZ2F0ZS5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFi bGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAibWlzY2Fk bWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCkBAIC0zMywxMSArMzQsMTMgQEAK ICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfcmVsYXRpb24uaCIKICNpbmNsdWRlICJwYXJzZXIvcGFy c2VfdGFyZ2V0LmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKKyNpbmNsdWRlICJz dG9yYWdlL2xtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0 aWxzL2RhdGUuaCIKICNpbmNsdWRlICJ1dGlscy9mbWdyb2lkcy5oIgogI2luY2x1ZGUgInV0aWxz L2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3RpbWVzdGFtcC5oIgorI2luY2x1ZGUgInV0 aWxzL3R5cGNhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMveG1sLmgiCiAKIC8qIEdVQyBwYXJhbWV0 ZXJzICovCkBAIC0xMDYsNiArMTA5LDkgQEAgc3RhdGljIEV4cHIgKm1ha2VfZGlzdGluY3Rfb3Ao UGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICpvcG5hbWUsCiAJCQkJCQkJICBOb2RlICpsdHJlZSwg Tm9kZSAqcnRyZWUsIGludCBsb2NhdGlvbik7CiBzdGF0aWMgTm9kZSAqbWFrZV9udWxsdGVzdF9m cm9tX2Rpc3RpbmN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkgQV9FeHByICpkaXN0 aW5jdGEsIE5vZGUgKmFyZyk7CitzdGF0aWMgTm9kZSAqbWFrZVBhcmFtU2Vzc2lvblZhcmlhYmxl KFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJCQkJCQkJCSAgT2lkIHZhcmlkLCBPaWQgdHlwaWQsIGlu dDMyIHR5cG1vZCwgT2lkIGNvbGxpZCwKKwkJCQkJCQkJCSAgY2hhciAqYXR0cm5hbWUsIGludCBs b2NhdGlvbik7CiAKIAogLyoKQEAgLTQ5OSw2ICs1MDUsODkgQEAgdHJhbnNmb3JtSW5kaXJlY3Rp b24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpCiAJcmV0dXJuIHJlc3Vs dDsKIH0KIAorLyoKKyAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiBraW5k IGlzIHZhbGlkIGZvciBzZXNzaW9uIHZhcmlhYmxlcy4KKyAqIFNlc3Npb24gdmFyaWFibGVzIGNh biBiZSB1c2VkIGV2ZXJ5d2hlcmUgd2hlcmUgZXh0ZXJuYWwgcGFyYW1ldGVycyBjYW4gYmUKKyAq IHVzZWQuICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgbm90IGFsbG93ZWQgaW4gRERMIGNvbW1hbmRz IG9yIGluIGNvbnN0cmFpbnRzLgorICoKKyAqIEFuIGlkZW50aWZpZXIgY2FuIGJlIHBhcnNlZCBh cyBhIHNlc3Npb24gdmFyaWFibGUgb25seSBmb3IgZXhwcmVzc2lvbiBraW5kcworICogd2hlcmUg c2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGFsbG93ZWQuICBUaGlzIGlzIHRoZSBwcmltYXJ5IHVzYWdl IG9mIHRoaXMKKyAqIGZ1bmN0aW9uLgorICoKKyAqIFRoZSBzZWNvbmQgdXNhZ2Ugb2YgdGhpcyBm dW5jdGlvbiBpcyB0byBkZWNpZGUgd2hldGhlciBhICJjb2x1bW4gZG9lcyBub3QKKyAqIGV4aXN0 IiBvciBhICJjb2x1bW4gb3IgdmFyaWFibGUgZG9lcyBub3QgZXhpc3QiIGVycm9yIG1lc3NhZ2Ug c2hvdWxkIGJlCisgKiBwcmludGVkLiAgV2hlbiB3ZSBhcmUgaW4gYW4gZXhwcmVzc2lvbiB3aGVy ZSBzZXNzaW9uIHZhcmlhYmxlcyBjYW5ub3QgYmUKKyAqIHVzZWQsIHdlIHJhaXNlIHRoZSBmaXJz dCBmb3JtIG9mIGVycm9yIG1lc3NhZ2UuCisgKi8KK3N0YXRpYyBib29sCitleHByX2tpbmRfYWxs b3dzX3Nlc3Npb25fdmFyaWFibGVzKFBhcnNlRXhwcktpbmQgcF9leHByX2tpbmQpCit7CisJYm9v bAkJcmVzdWx0ID0gZmFsc2U7CisKKwlzd2l0Y2ggKHBfZXhwcl9raW5kKQorCXsKKwkJY2FzZSBF WFBSX0tJTkRfTk9ORToKKwkJCUFzc2VydChmYWxzZSk7CQkvKiBjYW4ndCBoYXBwZW4gKi8KKwkJ CXJldHVybiBmYWxzZTsKKworCQkvKiBzZXNzaW9uIHZhcmlhYmxlcyBhbGxvd2VkICovCisJCWNh c2UgRVhQUl9LSU5EX09USEVSOgorCQljYXNlIEVYUFJfS0lORF9KT0lOX09OOgorCQljYXNlIEVY UFJfS0lORF9GUk9NX1NVQlNFTEVDVDoKKwkJY2FzZSBFWFBSX0tJTkRfRlJPTV9GVU5DVElPTjoK KwkJY2FzZSBFWFBSX0tJTkRfV0hFUkU6CisJCWNhc2UgRVhQUl9LSU5EX0hBVklORzoKKwkJY2Fz ZSBFWFBSX0tJTkRfRklMVEVSOgorCQljYXNlIEVYUFJfS0lORF9XSU5ET1dfUEFSVElUSU9OOgor CQljYXNlIEVYUFJfS0lORF9XSU5ET1dfT1JERVI6CisJCWNhc2UgRVhQUl9LSU5EX1dJTkRPV19G UkFNRV9SQU5HRToKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX0ZSQU1FX1JPV1M6CisJCWNhc2Ug RVhQUl9LSU5EX1dJTkRPV19GUkFNRV9HUk9VUFM6CisJCWNhc2UgRVhQUl9LSU5EX1NFTEVDVF9U QVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX0lOU0VSVF9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5E X1VQREFURV9TT1VSQ0U6CisJCWNhc2UgRVhQUl9LSU5EX1VQREFURV9UQVJHRVQ6CisJCWNhc2Ug RVhQUl9LSU5EX01FUkdFX1dIRU46CisJCWNhc2UgRVhQUl9LSU5EX01FUkdFX1JFVFVSTklORzoK KwkJY2FzZSBFWFBSX0tJTkRfR1JPVVBfQlk6CisJCWNhc2UgRVhQUl9LSU5EX09SREVSX0JZOgor CQljYXNlIEVYUFJfS0lORF9ESVNUSU5DVF9PTjoKKwkJY2FzZSBFWFBSX0tJTkRfTElNSVQ6CisJ CWNhc2UgRVhQUl9LSU5EX09GRlNFVDoKKwkJY2FzZSBFWFBSX0tJTkRfUkVUVVJOSU5HOgorCQlj YXNlIEVYUFJfS0lORF9WQUxVRVM6CisJCWNhc2UgRVhQUl9LSU5EX1ZBTFVFU19TSU5HTEU6CisJ CWNhc2UgRVhQUl9LSU5EX0FMVEVSX0NPTF9UUkFOU0ZPUk06CisJCWNhc2UgRVhQUl9LSU5EX0VY RUNVVEVfUEFSQU1FVEVSOgorCQljYXNlIEVYUFJfS0lORF9QT0xJQ1k6CisJCWNhc2UgRVhQUl9L SU5EX0NBTExfQVJHVU1FTlQ6CisJCWNhc2UgRVhQUl9LSU5EX0NPUFlfV0hFUkU6CisJCWNhc2Ug RVhQUl9LSU5EX0xFVF9UQVJHRVQ6CisJCQlyZXN1bHQgPSB0cnVlOworCQkJYnJlYWs7CisKKwkJ Lyogc2Vzc2lvbiB2YXJpYWJsZXMgbm90IGFsbG93ZWQgKi8KKwkJY2FzZSBFWFBSX0tJTkRfQ0hF Q0tfQ09OU1RSQUlOVDoKKwkJY2FzZSBFWFBSX0tJTkRfRE9NQUlOX0NIRUNLOgorCQljYXNlIEVY UFJfS0lORF9DT0xVTU5fREVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVM VDoKKwkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lPTjoKKwkJY2FzZSBFWFBSX0tJTkRf SU5ERVhfUFJFRElDQVRFOgorCQljYXNlIEVYUFJfS0lORF9TVEFUU19FWFBSRVNTSU9OOgorCQlj YXNlIEVYUFJfS0lORF9UUklHR0VSX1dIRU46CisJCWNhc2UgRVhQUl9LSU5EX1BBUlRJVElPTl9C T1VORDoKKwkJY2FzZSBFWFBSX0tJTkRfUEFSVElUSU9OX0VYUFJFU1NJT046CisJCWNhc2UgRVhQ Ul9LSU5EX0dFTkVSQVRFRF9DT0xVTU46CisJCWNhc2UgRVhQUl9LSU5EX0pPSU5fVVNJTkc6CisJ CWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CisJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJH RVQ6CisJCQlyZXN1bHQgPSBmYWxzZTsKKwkJCWJyZWFrOworCX0KKworCXJldHVybiByZXN1bHQ7 Cit9CisKIC8qCiAgKiBUcmFuc2Zvcm0gYSBDb2x1bW5SZWYuCiAgKgpAQCAtNTc1LDYgKzY2NCw4 IEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3Jl ZikKIAkJY2FzZSBFWFBSX0tJTkRfQ09QWV9XSEVSRToKIAkJY2FzZSBFWFBSX0tJTkRfR0VORVJB VEVEX0NPTFVNTjoKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKKwkJY2FzZSBFWFBSX0tJ TkRfQVNTSUdOX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKIAkJCS8qIG9r YXkgKi8KIAkJCWJyZWFrOwogCkBAIC04NDcsOCArOTM4LDYxIEBAIHRyYW5zZm9ybUNvbHVtblJl ZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAl9CiAKIAkvKgotCSAqIFRo cm93IGVycm9yIGlmIG5vIHRyYW5zbGF0aW9uIGZvdW5kLgorCSAqIFRoZXJlIGFyZSBjb250ZXh0 cyB3aGVyZSBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgbm90IGFsbG93ZWQuICBXZSBkb24ndAorCSAq IG5lZWQgdG8gaWRlbnRpZnkgc2Vzc2lvbiB2YXJpYWJsZXMgaW4gc3VjaCBhIGNvbnRleHQsIGJ1 dCBpZGVudGlmeWluZworCSAqIHRoZW0gYWxsb3dzIHVzIHRvIHJhaXNlIG1lYW5pbmdmdWwgZXJy b3IgbWVzc2FnZXMgbGlrZSAieW91IGNhbm5vdCB1c2UKKwkgKiBzZXNzaW9uIHZhcmlhYmxlcyBo ZXJlIi4KIAkgKi8KKwlpZiAoZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3ZhcmlhYmxlcyhwc3Rh dGUtPnBfZXhwcl9raW5kKSkKKwl7CisJCU9pZAkJCXZhcmlkID0gSW52YWxpZE9pZDsKKwkJY2hh cgkgICAqYXR0cm5hbWUgPSBOVUxMOworCQlib29sCQlub3RfdW5pcXVlOworCisJCS8qIC0tLS0t CisJCSAqIFNlc3Npb24gdmFyaWFibGVzIGFyZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5l IHZhcmlhYmxlcyBvcgorCQkgKiByb3V0aW5lIGFyZ3VtZW50cy4gIFdlIGNlcnRhaW5seSBkb24n dCB3YW50IHRvIHVzZSBhIHNlc3Npb24gdmFyaWFibGUKKwkJICogd2hlbiBpdCBpcyBleGFjdGx5 IHNoYWRvd2VkLCBidXQgYSBSVEUgbGlrZSB0aGlzIGlzIGNvbmNlaXZhYmxlOgorCQkgKgorCQkg KiBDUkVBVEUgVFlQRSB0IEFTIChjIGludCk7CisJCSAqIENSRUFURSBWQVJJQUJMRSBmb28gQVMg dDsKKwkJICogQ1JFQVRFIFRBQkxFIGZvbyhhIGludCwgYiBpbnQpOworCQkgKgorCQkgKiBTRUxF Q1QgZm9vLmEsIGZvby5iLCBmb28uYyBGUk9NIGZvbzsKKwkJICoKKwkJICogSG93ZXZlciwgdGhh dCBpcyB2ZXJ5IGNvbmZ1c2luZywgc28gd2UgZGlzYWxsb3cgaXQuICBXZSBkb24ndCB0cnkgdG8K KwkJICogaWRlbnRpZnkgYSB2YXJpYWJsZSBpZiB3ZSBrbm93IHRoYXQgaXQgd291bGQgYmUgc2hh ZG93ZWQuCisJCSAqIC0tLS0tCisJCSAqLworCQlpZiAoIW5vZGUgJiYgIShyZWxuYW1lICYmIGNy ZXJyID09IENSRVJSX05PX0NPTFVNTikpCisJCXsKKwkJCS8qIHRha2VzIGFuIEFjY2Vzc1NoYXJl TG9jayBvbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSAqLworCQkJdmFyaWQgPSBJZGVudGlmeVZhcmlh YmxlKGNyZWYtPmZpZWxkcywgJmF0dHJuYW1lLCAmbm90X3VuaXF1ZSwgZmFsc2UpOworCisJCQlp ZiAoT2lkSXNWYWxpZCh2YXJpZCkpCisJCQl7CisJCQkJT2lkCQkJdHlwaWQ7CisJCQkJaW50MzIJ CXR5cG1vZDsKKwkJCQlPaWQJCQljb2xsaWQ7CisKKwkJCQlpZiAobm90X3VuaXF1ZSkKKwkJCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0FNQklHVU9VU19QQVJBTUVU RVIpLAorCQkJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgcmVmZXJlbmNlIFwiJXNcIiBp cyBhbWJpZ3VvdXMiLAorCQkJCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhjcmVmLT5maWVsZHMpKSwK KwkJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgY3JlZi0+bG9jYXRpb24pKSk7CisK KwkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQodmFyaWQsICZ0eXBp ZCwgJnR5cG1vZCwKKwkJCQkJCQkJCQkJCQkJJmNvbGxpZCk7CisKKwkJCQlub2RlID0gbWFrZVBh cmFtU2Vzc2lvblZhcmlhYmxlKHBzdGF0ZSwKKwkJCQkJCQkJCQkJCXZhcmlkLCB0eXBpZCwgdHlw bW9kLCBjb2xsaWQsCisJCQkJCQkJCQkJCQlhdHRybmFtZSwgY3JlZi0+bG9jYXRpb24pOworCQkJ fQorCQl9CisJfQorCisJLyogdGhyb3cgYW4gZXJyb3IgaWYgbm8gdHJhbnNsYXRpb24gd2FzIGZv dW5kICovCiAJaWYgKG5vZGUgPT0gTlVMTCkKIAl7CiAJCXN3aXRjaCAoY3JlcnIpCkBAIC04ODAs NiArMTAyNCw3NSBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1 bW5SZWYgKmNyZWYpCiAJcmV0dXJuIG5vZGU7CiB9CiAKKy8qCisgKiBHZW5lcmF0ZSBwYXJhbSB2 YXJpYWJsZSBmb3IgcmVmZXJlbmNlIHRvIHNlc3Npb24gdmFyaWFibGUKKyAqLworc3RhdGljIE5v ZGUgKgorbWFrZVBhcmFtU2Vzc2lvblZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJCQkJ CSBPaWQgdmFyaWQsIE9pZCB0eXBpZCwgaW50MzIgdHlwbW9kLCBPaWQgY29sbGlkLAorCQkJCQkJ IGNoYXIgKmF0dHJuYW1lLCBpbnQgbG9jYXRpb24pCit7CisJUGFyYW0JICAgKnBhcmFtOworCisJ cGFyYW0gPSBtYWtlTm9kZShQYXJhbSk7CisKKwlwYXJhbS0+cGFyYW1raW5kID0gUEFSQU1fVkFS SUFCTEU7CisJcGFyYW0tPnBhcmFtdmFyaWQgPSB2YXJpZDsKKwlwYXJhbS0+cGFyYW10eXBlID0g dHlwaWQ7CisJcGFyYW0tPnBhcmFtdHlwbW9kID0gdHlwbW9kOworCXBhcmFtLT5wYXJhbWNvbGxp ZCA9IGNvbGxpZDsKKworCXBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzID0gdHJ1ZTsKKwor CWlmIChhdHRybmFtZSAhPSBOVUxMKQorCXsKKwkJVHVwbGVEZXNjCXR1cGRlc2M7CisJCWludAkJ CWk7CisKKwkJdHVwZGVzYyA9IGxvb2t1cF9yb3d0eXBlX3R1cGRlc2Nfbm9lcnJvcih0eXBpZCwg dHlwbW9kLCB0cnVlKTsKKwkJaWYgKCF0dXBkZXNjKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ KGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJCSBlcnJtc2coInZhcmlh YmxlIFwiJXMuJXNcIiBpcyBvZiB0eXBlIFwiJXNcIiwgd2hpY2ggaXMgbm90IGEgY29tcG9zaXRl IHR5cGUiLAorCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlk KSwKKwkJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkpLAorCQkJCQkgcGFyc2VyX2VycnBvc2l0 aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CisKKwkJZm9yIChpID0gMDsgaSA8IHR1cGRlc2MtPm5h dHRzOyBpKyspCisJCXsKKwkJCUZvcm1fcGdfYXR0cmlidXRlIGF0dCA9IFR1cGxlRGVzY0F0dHIo dHVwZGVzYywgaSk7CisKKwkJCWlmIChzdHJjbXAoYXR0cm5hbWUsIE5hbWVTdHIoYXR0LT5hdHRu YW1lKSkgPT0gMCAmJgorCQkJCSFhdHQtPmF0dGlzZHJvcHBlZCkKKwkJCXsKKwkJCQkvKiBzdWNj ZXNzLCBzbyBnZW5lcmF0ZSBhIEZpZWxkU2VsZWN0IGV4cHJlc3Npb24gKi8KKwkJCQlGaWVsZFNl bGVjdCAqZnNlbGVjdCA9IG1ha2VOb2RlKEZpZWxkU2VsZWN0KTsKKworCQkJCWZzZWxlY3QtPmFy ZyA9IChFeHByICopIHBhcmFtOworCQkJCWZzZWxlY3QtPmZpZWxkbnVtID0gaSArIDE7CisJCQkJ ZnNlbGVjdC0+cmVzdWx0dHlwZSA9IGF0dC0+YXR0dHlwaWQ7CisJCQkJZnNlbGVjdC0+cmVzdWx0 dHlwbW9kID0gYXR0LT5hdHR0eXBtb2Q7CisJCQkJLyogc2F2ZSBhdHRyaWJ1dGUncyBjb2xsYXRp b24gZm9yIHBhcnNlX2NvbGxhdGUuYyAqLworCQkJCWZzZWxlY3QtPnJlc3VsdGNvbGxpZCA9IGF0 dC0+YXR0Y29sbGF0aW9uOworCisJCQkJUmVsZWFzZVR1cGxlRGVzYyh0dXBkZXNjKTsKKwkJCQly ZXR1cm4gKE5vZGUgKikgZnNlbGVjdDsKKwkJCX0KKwkJfQorCisJCWVyZXBvcnQoRVJST1IsCisJ CQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwKKwkJCQkgZXJybXNnKCJjb3Vs ZCBub3QgaWRlbnRpZnkgY29sdW1uIFwiJXNcIiBpbiB2YXJpYWJsZSBcIiVzLiVzXCIiLAorCQkJ CQkJYXR0cm5hbWUsCisJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFi bGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZh cmlkKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOworCX0K KworCXJldHVybiAoTm9kZSAqKSBwYXJhbTsKK30KKwogc3RhdGljIE5vZGUgKgogdHJhbnNmb3Jt UGFyYW1SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbVJlZiAqcHJlZikKIHsKQEAgLTE4MTUs NiArMjAyOCw3IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5r ICpzdWJsaW5rKQogCQljYXNlIEVYUFJfS0lORF9WQUxVRVM6CiAJCWNhc2UgRVhQUl9LSU5EX1ZB TFVFU19TSU5HTEU6CiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CisJCWNhc2UgRVhQUl9L SU5EX0xFVF9UQVJHRVQ6CiAJCQkvKiBva2F5ICovCiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJ TkRfQ0hFQ0tfQ09OU1RSQUlOVDoKQEAgLTE4NTgsNiArMjA3Miw5IEBAIHRyYW5zZm9ybVN1Ykxp bmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJsaW5rKQogCQljYXNlIEVYUFJfS0lO RF9HRU5FUkFURURfQ09MVU1OOgogCQkJZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBj b2x1bW4gZ2VuZXJhdGlvbiBleHByZXNzaW9uIik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJ TkRfQVNTSUdOX1RBUkdFVDoKKwkJCWVyciA9IF8oImNhbm5vdCB1c2Ugc3VicXVlcnkgYXMgdGFy Z2V0IG9mIGFzc2lnbiBzdGF0ZW1lbnQiKTsKKwkJCWJyZWFrOwogCiAJCQkvKgogCQkJICogVGhl cmUgaXMgaW50ZW50aW9uYWxseSBubyBkZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCkBA IC0zMTk3LDYgKzM0MTQsMTAgQEAgUGFyc2VFeHByS2luZE5hbWUoUGFyc2VFeHByS2luZCBleHBy S2luZCkKIAkJCXJldHVybiAiR0VORVJBVEVEIEFTIjsKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVf TUFSSzoKIAkJCXJldHVybiAiQ1lDTEUiOworCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VU OgorCQkJcmV0dXJuICJBU1NJR04iOworCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgorCQkJ cmV0dXJuICJMRVQiOwogCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9uYWxseSBubyBk ZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfZnVuYy5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwppbmRl eCA1ODNiYmJmMjMyLi5kYzI1ZjZkY2QwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZnVuYy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKQEAgLTI2 NTYsNiArMjY1Niw4IEBAIGNoZWNrX3NyZl9jYWxsX3BsYWNlbWVudChQYXJzZVN0YXRlICpwc3Rh dGUsIE5vZGUgKmxhc3Rfc3JmLCBpbnQgbG9jYXRpb24pCiAJCQllcnIgPSBfKCJzZXQtcmV0dXJu aW5nIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVz c2lvbnMiKTsKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgorCQljYXNl IEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgog CQkJZXJya2luZCA9IHRydWU7CiAJCQlicmVhazsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX21lcmdlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYwpp bmRleCBmOTJiZWY5OWQ1Li5hY2RmNWNkMTA4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfbWVyZ2UuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYwpA QCAtNDA1LDYgKzQwNSw3IEBAIHRyYW5zZm9ybU1lcmdlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUs IE1lcmdlU3RtdCAqc3RtdCkKIAogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IGZhbHNlOwogCXFyeS0+ aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFy aWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlf Y29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3Av ZGVzdC5jIGIvc3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMKaW5kZXggYjQ0ZjkwNzIyOC4uNDQ2Yzcx OTUzYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMKKysrIGIvc3JjL2JhY2tl bmQvdGNvcC9kZXN0LmMKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJleGVjdXRvci9mdW5j dGlvbnMuaCIKICNpbmNsdWRlICJleGVjdXRvci90cXVldWUuaCIKICNpbmNsdWRlICJleGVjdXRv ci90c3RvcmVSZWNlaXZlci5oIgorI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVy LmgiCiAjaW5jbHVkZSAibGlicHEvbGlicHEuaCIKICNpbmNsdWRlICJsaWJwcS9wcWZvcm1hdC5o IgogCkBAIC0xNTUsNiArMTU2LDkgQEAgQ3JlYXRlRGVzdFJlY2VpdmVyKENvbW1hbmREZXN0IGRl c3QpCiAKIAkJY2FzZSBEZXN0RXhwbGFpblNlcmlhbGl6ZToKIAkJCXJldHVybiBDcmVhdGVFeHBs YWluU2VyaWFsaXplRGVzdFJlY2VpdmVyKE5VTEwpOworCisJCWNhc2UgRGVzdFZhcmlhYmxlOgor CQkJcmV0dXJuIENyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKEludmFsaWRPaWQpOwogCX0KIAog CS8qIHNob3VsZCBuZXZlciBnZXQgaGVyZSAqLwpAQCAtMTkxLDYgKzE5NSw3IEBAIEVuZENvbW1h bmQoY29uc3QgUXVlcnlDb21wbGV0aW9uICpxYywgQ29tbWFuZERlc3QgZGVzdCwgYm9vbCBmb3Jj ZV91bmRlY29yYXRlZF9vCiAJCWNhc2UgRGVzdFRyYW5zaWVudFJlbDoKIAkJY2FzZSBEZXN0VHVw bGVRdWV1ZToKIAkJY2FzZSBEZXN0RXhwbGFpblNlcmlhbGl6ZToKKwkJY2FzZSBEZXN0VmFyaWFi bGU6CiAJCQlicmVhazsKIAl9CiB9CkBAIC0yMzcsNiArMjQyLDcgQEAgTnVsbENvbW1hbmQoQ29t bWFuZERlc3QgZGVzdCkKIAkJY2FzZSBEZXN0VHJhbnNpZW50UmVsOgogCQljYXNlIERlc3RUdXBs ZVF1ZXVlOgogCQljYXNlIERlc3RFeHBsYWluU2VyaWFsaXplOgorCQljYXNlIERlc3RWYXJpYWJs ZToKIAkJCWJyZWFrOwogCX0KIH0KQEAgLTI4MSw2ICsyODcsNyBAQCBSZWFkeUZvclF1ZXJ5KENv bW1hbmREZXN0IGRlc3QpCiAJCWNhc2UgRGVzdFRyYW5zaWVudFJlbDoKIAkJY2FzZSBEZXN0VHVw bGVRdWV1ZToKIAkJY2FzZSBEZXN0RXhwbGFpblNlcmlhbGl6ZToKKwkJY2FzZSBEZXN0VmFyaWFi bGU6CiAJCQlicmVhazsKIAl9CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3V0aWxp dHkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4IDk5YTUxODc3ZDMuLjdhNTA4 YTM2NDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9i YWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiY29tbWFu ZHMvc2NoZW1hY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlY2xhYmVsLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvc2VxdWVuY2UuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5oIgogI2luY2x1ZGUg ImNvbW1hbmRzL3RhYmxlY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIK QEAgLTIzNSw2ICsyMzYsNyBAQCBDbGFzc2lmeVV0aWxpdHlDb21tYW5kQXNSZWFkT25seShOb2Rl ICpwYXJzZXRyZWUpCiAKIAkJY2FzZSBUX0NhbGxTdG10OgogCQljYXNlIFRfRG9TdG10OgorCQlj YXNlIFRfTGV0U3RtdDoKIAkJCXsKIAkJCQkvKgogCQkJCSAqIENvbW1hbmRzIGluc2lkZSB0aGUg RE8gYmxvY2sgb3IgdGhlIGNhbGxlZCBwcm9jZWR1cmUgbWlnaHQKQEAgLTEwNjcsNiArMTA2OSwx MSBAQCBzdGFuZGFyZF9Qcm9jZXNzVXRpbGl0eShQbGFubmVkU3RtdCAqcHN0bXQsCiAJCQkJYnJl YWs7CiAJCQl9CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQlFeGVjdXRlTGV0U3RtdChwc3RhdGUs IChMZXRTdG10ICopIHBhcnNldHJlZSwgcGFyYW1zLAorCQkJCQkJICAgcXVlcnlFbnYsIHFjKTsK KwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQkvKiBBbGwgb3RoZXIgc3RhdGVtZW50IHR5cGVz IGhhdmUgZXZlbnQgdHJpZ2dlciBzdXBwb3J0ICovCiAJCQlQcm9jZXNzVXRpbGl0eVNsb3cocHN0 YXRlLCBwc3RtdCwgcXVlcnlTdHJpbmcsCkBAIC0yMjA2LDYgKzIyMTMsMTAgQEAgVXRpbGl0eUNv bnRhaW5zUXVlcnkoTm9kZSAqcGFyc2V0cmVlKQogCQkJCXJldHVybiBVdGlsaXR5Q29udGFpbnNR dWVyeShxcnktPnV0aWxpdHlTdG10KTsKIAkJCXJldHVybiBxcnk7CiAKKwkJY2FzZSBUX0xldFN0 bXQ6CisJCQlxcnkgPSBjYXN0Tm9kZShRdWVyeSwgKChMZXRTdG10ICopIHBhcnNldHJlZSktPnF1 ZXJ5KTsKKwkJCXJldHVybiBxcnk7CisKIAkJZGVmYXVsdDoKIAkJCXJldHVybiBOVUxMOwogCX0K QEAgLTI0MDQsNiArMjQxNSwxMCBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkK IAkJCXRhZyA9IENNRFRBR19TRUxFQ1Q7CiAJCQlicmVhazsKIAorCQljYXNlIFRfTGV0U3RtdDoK KwkJCXRhZyA9IENNRFRBR19MRVQ7CisJCQlicmVhazsKKwogCQkJLyogdXRpbGl0eSBzdGF0ZW1l bnRzIC0tLSBzYW1lIHdoZXRoZXIgcmF3IG9yIGNvb2tlZCAqLwogCQljYXNlIFRfVHJhbnNhY3Rp b25TdG10OgogCQkJewpAQCAtMzI4OSw2ICszMzA0LDcgQEAgR2V0Q29tbWFuZExvZ0xldmVsKE5v ZGUgKnBhcnNldHJlZSkKIAkJCWJyZWFrOwogCiAJCWNhc2UgVF9QTEFzc2lnblN0bXQ6CisJCWNh c2UgVF9MZXRTdG10OgogCQkJbGV2ID0gTE9HU1RNVF9BTEw7CiAJCQlicmVhazsKIApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IDIwODliNTJkNTcuLjhkM2QzYzljNzUgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJjYXRhbG9n L3BnX3N0YXRpc3RpY19leHQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyaWdnZXIuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxl LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdGFi bGVzcGFjZS5oIgogI2luY2x1ZGUgImNvbW1vbi9rZXl3b3Jkcy5oIgpAQCAtNTI4LDYgKzUyOSw3 IEBAIHN0YXRpYyBjaGFyICpnZW5lcmF0ZV9mdW5jdGlvbl9uYW1lKE9pZCBmdW5jaWQsIGludCBu YXJncywKIHN0YXRpYyBjaGFyICpnZW5lcmF0ZV9vcGVyYXRvcl9uYW1lKE9pZCBvcGVyaWQsIE9p ZCBhcmcxLCBPaWQgYXJnMik7CiBzdGF0aWMgdm9pZCBhZGRfY2FzdF90byhTdHJpbmdJbmZvIGJ1 ZiwgT2lkIHR5cGlkKTsKIHN0YXRpYyBjaGFyICpnZW5lcmF0ZV9xdWFsaWZpZWRfdHlwZV9uYW1l KE9pZCB0eXBpZCk7CitzdGF0aWMgY2hhciAqZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KE9pZCB2YXJpZCk7CiBzdGF0aWMgdGV4dCAqc3RyaW5nX3RvX3RleHQoY2hhciAqc3RyKTsKIHN0 YXRpYyBjaGFyICpmbGF0dGVuX3JlbG9wdGlvbnMoT2lkIHJlbGlkKTsKIHN0YXRpYyB2b2lkIGdl dF9yZWxvcHRpb25zKFN0cmluZ0luZm8gYnVmLCBEYXR1bSByZWxvcHRpb25zKTsKQEAgLTg2MjUs NiArODYyNywxNCBAQCBnZXRfcGFyYW1ldGVyKFBhcmFtICpwYXJhbSwgZGVwYXJzZV9jb250ZXh0 ICpjb250ZXh0KQogCQlyZXR1cm47CiAJfQogCisJLyogdHJhbnNsYXRlIHBhcmFtdmFyaWQgdG8g c2Vzc2lvbiB2YXJpYWJsZSBuYW1lICovCisJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1f VkFSSUFCTEUpCisJeworCQlhcHBlbmRTdHJpbmdJbmZvKGNvbnRleHQtPmJ1ZiwgIiVzIiwKKwkJ CQkJCSBnZW5lcmF0ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUocGFyYW0tPnBhcmFtdmFyaWQpKTsK KwkJcmV0dXJuOworCX0KKwogCS8qCiAJICogQWx0ZXJuYXRpdmVseSwgbWF5YmUgaXQncyBhIHN1 YnBsYW4gb3V0cHV0LCB3aGljaCB3ZSBwcmludCBhcyBhCiAJICogcmVmZXJlbmNlIHRvIHRoZSBz dWJwbGFuLiAgKFdlIGNvdWxkIGRyaWxsIGRvd24gaW50byB0aGUgc3VicGxhbiBhbmQKQEAgLTEz NDA3LDYgKzEzNDE3LDQyIEBAIGdlbmVyYXRlX2NvbGxhdGlvbl9uYW1lKE9pZCBjb2xsaWQpCiAJ cmV0dXJuIHJlc3VsdDsKIH0KIAorLyoKKyAqIGdlbmVyYXRlX3Nlc3Npb25fdmFyaWFibGVfbmFt ZQorICoJCUNvbXB1dGUgdGhlIG5hbWUgdG8gZGlzcGxheSBmb3IgYSBzZXNzaW9uIHZhcmlhYmxl IHNwZWNpZmllZCBieSBPSUQKKyAqCisgKiBUaGUgcmVzdWx0IGluY2x1ZGVzIGFsbCBuZWNlc3Nh cnkgcXVvdGluZyBhbmQgc2NoZW1hLXByZWZpeGluZy4KKyAqLworc3RhdGljIGNoYXIgKgorZ2Vu ZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVw OworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKwljaGFyCSAgICp2YXJuYW1lOworCWNoYXIJ ICAgKm5zcG5hbWU7CisJY2hhcgkgICAqcmVzdWx0OworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUx KFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBs ZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHZh cmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRT VFJVQ1QodHVwKTsKKworCXZhcm5hbWUgPSBOYW1lU3RyKHZhcmZvcm0tPnZhcm5hbWUpOworCisJ aWYgKCFWYXJpYWJsZUlzVmlzaWJsZSh2YXJpZCkpCisJCW5zcG5hbWUgPSBnZXRfbmFtZXNwYWNl X25hbWVfb3JfdGVtcCh2YXJmb3JtLT52YXJuYW1lc3BhY2UpOworCWVsc2UKKwkJbnNwbmFtZSA9 IE5VTEw7CisKKwlyZXN1bHQgPSBxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihuc3BuYW1lLCB2 YXJuYW1lKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJcmV0dXJuIHJlc3VsdDsKK30K KwogLyoKICAqIEdpdmVuIGEgQyBzdHJpbmcsIHByb2R1Y2UgYSBURVhUIGRhdHVtLgogICoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKaW5kZXggNTVkYjhmNTM3MC4uNjMyYzQzOGE3YiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKQEAgLTU4LDYgKzU4LDcgQEAKIAogI2lu Y2x1ZGUgImFjY2Vzcy90cmFuc2FtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhl Y3V0b3IuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9ub2RlRnVu Y3MuaCIKQEAgLTE2Miw2ICsxNjMsNyBAQCBJbml0UGxhbkNhY2hlKHZvaWQpCiAJQ2FjaGVSZWdp c3RlclN5c2NhY2hlQ2FsbGJhY2soQU1PUE9QSUQsIFBsYW5DYWNoZVN5c0NhbGxiYWNrLCAoRGF0 dW0pIDApOwogCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKEZPUkVJR05TRVJWRVJPSUQs IFBsYW5DYWNoZVN5c0NhbGxiYWNrLCAoRGF0dW0pIDApOwogCUNhY2hlUmVnaXN0ZXJTeXNjYWNo ZUNhbGxiYWNrKEZPUkVJR05EQVRBV1JBUFBFUk9JRCwgUGxhbkNhY2hlU3lzQ2FsbGJhY2ssIChE YXR1bSkgMCk7CisJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soVkFSSUFCTEVPSUQsIFBs YW5DYWNoZU9iamVjdENhbGxiYWNrLCAoRGF0dW0pIDApOwogfQogCiAvKgpAQCAtMTkwMywxNyAr MTkwNSwzMiBAQCBTY2FuUXVlcnlGb3JMb2NrcyhRdWVyeSAqcGFyc2V0cmVlLCBib29sIGFjcXVp cmUpCiAKIAkvKgogCSAqIFJlY3Vyc2UgaW50byBzdWJsaW5rIHN1YnF1ZXJpZXMsIHRvby4gIEJ1 dCB3ZSBhbHJlYWR5IGRpZCB0aGUgb25lcyBpbgotCSAqIHRoZSBydGFibGUgYW5kIGN0ZUxpc3Qu CisJICogdGhlIHJ0YWJsZSBhbmQgY3RlTGlzdC4gIFdlIG5lZWQgdG8gZm9yY2UgYSByZWN1cnNp dmUgY2FsbCBmb3Igc2Vzc2lvbgorCSAqIHZhcmlhYmxlcyB0b28sIHRvIGZpbmQgYW5kIGxvY2sg dmFyaWFibGVzIHVzZWQgaW4gdGhlIHF1ZXJ5IChzZWUKKwkgKiBTY2FuUXVlcnlXYWxrZXIpLgog CSAqLwotCWlmIChwYXJzZXRyZWUtPmhhc1N1YkxpbmtzKQorCWlmIChwYXJzZXRyZWUtPmhhc1N1 YkxpbmtzIHx8CisJCXBhcnNldHJlZS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKIAl7CiAJCXF1ZXJ5 X3RyZWVfd2Fsa2VyKHBhcnNldHJlZSwgU2NhblF1ZXJ5V2Fsa2VyLCAmYWNxdWlyZSwKIAkJCQkJ CSAgUVRXX0lHTk9SRV9SQ19TVUJRVUVSSUVTKTsKIAl9CisKKwkvKiBwcm9jZXNzIHNlc3Npb24g dmFyaWFibGVzICovCisJaWYgKE9pZElzVmFsaWQocGFyc2V0cmVlLT5yZXN1bHRWYXJpYWJsZSkp CisJeworCQlpZiAoYWNxdWlyZSkKKwkJCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0 aW9uSWQsIHBhcnNldHJlZS0+cmVzdWx0VmFyaWFibGUsCisJCQkJCQkJICAgMCwgQWNjZXNzU2hh cmVMb2NrKTsKKwkJZWxzZQorCQkJVW5sb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlv bklkLCBwYXJzZXRyZWUtPnJlc3VsdFZhcmlhYmxlLAorCQkJCQkJCQkgMCwgQWNjZXNzU2hhcmVM b2NrKTsKKwl9CiB9CiAKIC8qCi0gKiBXYWxrZXIgdG8gZmluZCBzdWJsaW5rIHN1YnF1ZXJpZXMg Zm9yIFNjYW5RdWVyeUZvckxvY2tzCisgKiBXYWxrZXIgdG8gZmluZCBzdWJsaW5rIHN1YnF1ZXJp ZXMgb3IgcmVmZXJlbmNlZCBzZXNzaW9uIHZhcmlhYmxlcworICogZm9yIFNjYW5RdWVyeUZvckxv Y2tzCiAgKi8KIHN0YXRpYyBib29sCiBTY2FuUXVlcnlXYWxrZXIoTm9kZSAqbm9kZSwgYm9vbCAq YWNxdWlyZSkKQEAgLTE5MjgsNiArMTk0NSwyMCBAQCBTY2FuUXVlcnlXYWxrZXIoTm9kZSAqbm9k ZSwgYm9vbCAqYWNxdWlyZSkKIAkJU2NhblF1ZXJ5Rm9yTG9ja3MoY2FzdE5vZGUoUXVlcnksIHN1 Yi0+c3Vic2VsZWN0KSwgKmFjcXVpcmUpOwogCQkvKiBGYWxsIHRocm91Z2ggdG8gcHJvY2VzcyBs ZWZ0aGFuZCBhcmdzIG9mIFN1YkxpbmsgKi8KIAl9CisJZWxzZSBpZiAoSXNBKG5vZGUsIFBhcmFt KSkKKwl7CisJCVBhcmFtCSAgICpwID0gKFBhcmFtICopIG5vZGU7CisKKwkJaWYgKHAtPnBhcmFt a2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJeworCQkJaWYgKGFjcXVpcmUpCisJCQkJTG9ja0Rh dGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgcC0+cGFyYW12YXJpZCwKKwkJCQkJCQkJ ICAgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJCWVsc2UKKwkJCQlVbmxvY2tEYXRhYmFzZU9iamVj dChWYXJpYWJsZVJlbGF0aW9uSWQsIHAtPnBhcmFtdmFyaWQsCisJCQkJCQkJCQkgMCwgQWNjZXNz U2hhcmVMb2NrKTsKKwkJfQorCX0KIAogCS8qCiAJICogRG8gTk9UIHJlY3Vyc2UgaW50byBRdWVy eSBub2RlcywgYmVjYXVzZSBTY2FuUXVlcnlGb3JMb2NrcyBhbHJlYWR5CkBAIC0yMDU4LDcgKzIw ODksOSBAQCBQbGFuQ2FjaGVSZWxDYWxsYmFjayhEYXR1bSBhcmcsIE9pZCByZWxpZCkKIAogLyoK ICAqIFBsYW5DYWNoZU9iamVjdENhbGxiYWNrCi0gKgkJU3lzY2FjaGUgaW52YWwgY2FsbGJhY2sg ZnVuY3Rpb24gZm9yIFBST0NPSUQgYW5kIFRZUEVPSUQgY2FjaGVzCisgKgkJU3lzY2FjaGUgaW52 YWwgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIFRZUEVPSUQsIFBST0NPSUQsIE5BTUVTUEFDRU9JRCwK KyAqCQlPUEVST0lELCBBTU9QT1BJRCwgRk9SRUlHTlNFUlZFUk9JRCwgRk9SRUlHTkRBVEFXUkFQ UEVST0lEIGFuZAorICoJCVZBUklBQkxFT0lEIGNhY2hlcy4KICAqCiAgKiBJbnZhbGlkYXRlIGFs bCBwbGFucyBtZW50aW9uaW5nIHRoZSBvYmplY3Qgd2l0aCB0aGUgc3BlY2lmaWVkIGhhc2ggdmFs dWUsCiAgKiBvciBhbGwgcGxhbnMgbWVudGlvbmluZyBhbnkgbWVtYmVyIG9mIHRoaXMgY2FjaGUg aWYgaGFzaHZhbHVlID09IDAuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9mbWdyL2Zt Z3IuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCmluZGV4IGFhODlhZThmZTEuLjI3 NjkxMDk3ODkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCkBAIC0yMDI2LDkgKzIwMjYsMTMgQEAgZ2V0 X2NhbGxfZXhwcl9hcmdfc3RhYmxlKE5vZGUgKmV4cHIsIGludCBhcmdudW0pCiAJICovCiAJaWYg KElzQShhcmcsIENvbnN0KSkKIAkJcmV0dXJuIHRydWU7Ci0JaWYgKElzQShhcmcsIFBhcmFtKSAm JgotCQkoKFBhcmFtICopIGFyZyktPnBhcmFta2luZCA9PSBQQVJBTV9FWFRFUk4pCi0JCXJldHVy biB0cnVlOworCWlmIChJc0EoYXJnLCBQYXJhbSkpCisJeworCQlQYXJhbQkgICAqcCA9IChQYXJh bSAqKSBhcmc7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9FWFRFUk4gfHwgcC0+cGFy YW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQkJcmV0dXJuIHRydWU7CisJfQogCiAJcmV0dXJu IGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIv c3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDZlZWJmYzZhNWYuLmFjYmY1MWVm MmUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTEyMTQsOCArMTIxNCw4IEBAIHN0YXRpYyBj b25zdCBjaGFyICpjb25zdCBzcWxfY29tbWFuZHNbXSA9IHsKIAkiQUJPUlQiLCAiQUxURVIiLCAi QU5BTFlaRSIsICJCRUdJTiIsICJDQUxMIiwgIkNIRUNLUE9JTlQiLCAiQ0xPU0UiLCAiQ0xVU1RF UiIsCiAJIkNPTU1FTlQiLCAiQ09NTUlUIiwgIkNPUFkiLCAiQ1JFQVRFIiwgIkRFQUxMT0NBVEUi LCAiREVDTEFSRSIsCiAJIkRFTEVURSBGUk9NIiwgIkRJU0NBUkQiLCAiRE8iLCAiRFJPUCIsICJF TkQiLCAiRVhFQ1VURSIsICJFWFBMQUlOIiwKLQkiRkVUQ0giLCAiR1JBTlQiLCAiSU1QT1JUIEZP UkVJR04gU0NIRU1BIiwgIklOU0VSVCBJTlRPIiwgIkxJU1RFTiIsICJMT0FEIiwgIkxPQ0siLAot CSJNRVJHRSBJTlRPIiwgIk1PVkUiLCAiTk9USUZZIiwgIlBSRVBBUkUiLAorCSJGRVRDSCIsICJH UkFOVCIsICJJTVBPUlQgRk9SRUlHTiBTQ0hFTUEiLCAiSU5TRVJUIElOVE8iLCAiTEVUIiwKKwki TElTVEVOIiwgIkxPQUQiLCAiTE9DSyIsICJNRVJHRSBJTlRPIiwgIk1PVkUiLCAiTk9USUZZIiwg IlBSRVBBUkUiLAogCSJSRUFTU0lHTiIsICJSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXIiwgIlJF SU5ERVgiLCAiUkVMRUFTRSIsCiAJIlJFU0VUIiwgIlJFVk9LRSIsICJST0xMQkFDSyIsCiAJIlNB VkVQT0lOVCIsICJTRUNVUklUWSBMQUJFTCIsICJTRUxFQ1QiLCAiU0VUIiwgIlNIT1ciLCAiU1RB UlQiLApAQCAtNDY2MCw2ICs0NjYwLDE0IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0 ZXJuX2lkLAogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQUxVRVMiKSAmJiAhVGFpbE1hdGNoZXMo IkRFRkFVTFQiLCAiVkFMVUVTIikpCiAJCUNPTVBMRVRFX1dJVEgoIigiKTsKIAorLyogTEVUICov CisJLyogSWYgcHJldi4gd29yZCBpcyBMRVQgc3VnZ2VzdCBhIGxpc3Qgb2YgdmFyaWFibGVzICov CisJZWxzZSBpZiAoTWF0Y2hlcygiTEVUIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZ KFF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyk7CisJLyogQ29tcGxldGUgTEVUIDx2YXJpYWJs ZT4gd2l0aCAiPSIgKi8KKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiTEVUIiwgTWF0Y2hBbnkpKQor CQlDT01QTEVURV9XSVRIKCI9Iik7CisKIC8qIExPQ0sgKi8KIAkvKiBDb21wbGV0ZSBMT0NLIFtU QUJMRV0gW09OTFldIHdpdGggYSBsaXN0IG9mIHRhYmxlcyAqLwogCWVsc2UgaWYgKE1hdGNoZXMo IkxPQ0siKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmggYi9z cmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCmluZGV4IGJkYWMwYzEzYmUuLjUwNjBiOGM5 NDkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKKysrIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaApAQCAtMTc0LDYgKzE3NCw3IEBAIGV4dGVybiBi b29sIFNlYXJjaFBhdGhNYXRjaGVzQ3VycmVudEVudmlyb25tZW50KFNlYXJjaFBhdGhNYXRjaGVy ICpwYXRoKTsKIGV4dGVybiBMaXN0ICpOYW1lc0Zyb21MaXN0KExpc3QgKm5hbWVzKTsKIGV4dGVy biBPaWQJTG9va3VwVmFyaWFibGUoY29uc3QgY2hhciAqbnNwbmFtZSwgY29uc3QgY2hhciAqdmFy bmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJTG9va3VwVmFyaWFibGVGcm9tTmFt ZUxpc3QoTGlzdCAqbmFtZXMsIGJvb2wgbWlzc2luZ19vayk7CitleHRlcm4gT2lkCUlkZW50aWZ5 VmFyaWFibGUoTGlzdCAqbmFtZXMsIGNoYXIgKiphdHRybmFtZSwgYm9vbCAqbm90X3VuaXF1ZSwg Ym9vbCBub2Vycm9yKTsKIAogZXh0ZXJuIE9pZAlnZXRfY29sbGF0aW9uX29pZChMaXN0ICpjb2xs bmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJZ2V0X2NvbnZlcnNpb25fb2lkKExp c3QgKmNvbm5hbWUsIGJvb2wgbWlzc2luZ19vayk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgK aW5kZXggM2QzYzZlYjI0Yi4uNWI0NWJlNWFmYSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUu aApAQCAtMTgsNiArMTgsNyBAQAogI2lmbmRlZiBQR19WQVJJQUJMRV9ICiAjZGVmaW5lIFBHX1ZB UklBQkxFX0gKIAorI2luY2x1ZGUgImFjY2Vzcy94bG9nZGVmcy5oIgogI2luY2x1ZGUgImNhdGFs b2cvZ2VuYmtpLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhZGRyZXNzLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ192YXJpYWJsZV9kLmgiCkBAIC0zNSw2ICszNiwxNCBAQCBDQVRBTE9HKHBn X3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQogCS8qIE9JRCBvZiBlbnRyeSBpbiBw Z190eXBlIGZvciB2YXJpYWJsZSdzIHR5cGUgKi8KIAlPaWQJCQl2YXJ0eXBlIEJLSV9MT09LVVAo cGdfdHlwZSk7CiAKKwkvKgorCSAqIFVzZWQgZm9yIGlkZW50aXR5IGNoZWNrIFtvaWQsIGNyZWF0 ZV9sc25dLgorCSAqCisJICogVGhpcyBjb2x1bW4gb2YgdGhlIDgtYnl0ZSBYbG9nUmVjUHRyIHR5 cGUgc2hvdWxkIGJlIGF0IGFuIGFkZHJlc3MgdGhhdAorCSAqIGlzIGRpdmlzaWJsZSBieSA4LCBi dXQgYmVmb3JlIGFueSBjb2x1bW4gb2YgdHlwZSBOYW1lRGF0YS4KKwkgKi8KKwlYTG9nUmVjUHRy CXZhcmNyZWF0ZV9sc247CisKIAkvKiB2YXJpYWJsZSBuYW1lICovCiAJTmFtZURhdGEJdmFybmFt ZTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5o IGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjIzOTFiOWFkNDQKLS0tIC9kZXYvbnVsbAorKysgYi9z cmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKQEAgLTAsMCArMSwzMCBAQAor LyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogc2Vzc2lvbnZhcmlhYmxlLmgKKyAqCSAgcHJvdG90 eXBlcyBmb3Igc2Vzc2lvbnZhcmlhYmxlLmMuCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdo dCAoYykgMTk5Ni0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICog UG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9m IENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaWZuZGVmIFNFU1NJT05WQVJJQUJM RV9ICisjZGVmaW5lIFNFU1NJT05WQVJJQUJMRV9ICisKKyNpbmNsdWRlICJub2Rlcy9wYXJhbXMu aCIKKyNpbmNsdWRlICJub2Rlcy9wYXJzZW5vZGVzLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNl X25vZGUuaCIKKyNpbmNsdWRlICJ0Y29wL2NtZHRhZy5oIgorI2luY2x1ZGUgInV0aWxzL3F1ZXJ5 ZW52aXJvbm1lbnQuaCIKKworZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJp ZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsKK2V4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFy aWFibGUoT2lkIHZhcmlkLCBib29sICppc051bGwpOworCitleHRlcm4gdm9pZCBFeGVjdXRlTGV0 U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQsIFBhcmFtTGlzdEluZm8gcGFy YW1zLAorCQkJCQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYsIFF1ZXJ5Q29tcGxldGlv biAqcWMpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJp YWJsZVJlY2VpdmVyLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5o Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmRiNDRkOGI5NGMKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCkBA IC0wLDAgKzEsMjIgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHN2YXJpYWJsZVJlY2Vp dmVyLmgKKyAqCSAgcHJvdG90eXBlcyBmb3Igc3ZhcmlhYmxlUmVjZWl2ZXIuYworICoKKyAqCisg KiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2 ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBv ZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvZXhlY3V0 b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaAorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNp Zm5kZWYgU1ZBUklBQkxFX1JFQ0VJVkVSX0gKKyNkZWZpbmUgU1ZBUklBQkxFX1JFQ0VJVkVSX0gK KworI2luY2x1ZGUgInRjb3AvZGVzdC5oIgorCitleHRlcm4gRGVzdFJlY2VpdmVyICpDcmVhdGVW YXJpYWJsZURlc3RSZWNlaXZlcihPaWQgdmFyaWQpOworCisjZW5kaWYJCQkJCQkJLyogU1ZBUklB QkxFX1JFQ0VJVkVSX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rl cy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggYjNmN2FhMjk5Zi4uODM2 NGExMDllMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKKysrIGIv c3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKQEAgLTYxNyw2ICs2MTcsMTYgQEAgdHlwZWRl ZiBzdHJ1Y3QgQXN5bmNSZXF1ZXN0CiAJCQkJCQkJCSAqIHR1cGxlcykgKi8KIH0gQXN5bmNSZXF1 ZXN0OwogCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKiBTZXNzaW9uVmFyaWFibGVWYWx1ZQorICog LS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBTZXNzaW9uVmFyaWFibGVWYWx1 ZQoreworCWJvb2wJCWlzbnVsbDsKKwlEYXR1bQkJdmFsdWU7Cit9IFNlc3Npb25WYXJpYWJsZVZh bHVlOworCiAvKiAtLS0tLS0tLS0tLS0tLS0tCiAgKgkgIEVTdGF0ZSBpbmZvcm1hdGlvbgogICoK QEAgLTY2OSw2ICs2NzksMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgRVN0YXRlCiAJUGFyYW1MaXN0SW5m byBlc19wYXJhbV9saXN0X2luZm87CS8qIHZhbHVlcyBvZiBleHRlcm5hbCBwYXJhbXMgKi8KIAlQ YXJhbUV4ZWNEYXRhICplc19wYXJhbV9leGVjX3ZhbHM7CS8qIHZhbHVlcyBvZiBpbnRlcm5hbCBw YXJhbXMgKi8KIAorCS8qIFNlc3Npb24gdmFyaWFibGVzIGluZm86ICovCisJaW50CQkJZXNfbnVt X3Nlc3Npb25fdmFyaWFibGVzOwkJLyogbnVtYmVyIG9mIHVzZWQgdmFyaWFibGVzICovCisJU2Vz c2lvblZhcmlhYmxlVmFsdWUgKmVzX3Nlc3Npb25fdmFyaWFibGVzOwkvKiBhcnJheSBvZiBjb3Bp ZXMgb2YgdmFsdWVzICovCisKIAlRdWVyeUVudmlyb25tZW50ICplc19xdWVyeUVudjsJLyogcXVl cnkgZW52aXJvbm1lbnQgKi8KIAogCS8qIE90aGVyIHdvcmtpbmcgc3RhdGU6ICovCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmgKaW5kZXggNjZhZWM0NjU0OS4uYjQxN2I1NmMyYSAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaApAQCAtMTQyLDYgKzE0Miw5IEBAIHR5cGVkZWYgc3RydWN0IFF1ZXJ5CiAJICovCiAJ aW50CQkJcmVzdWx0UmVsYXRpb24gcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwog CisJLyogdGFyZ2V0IHZhcmlhYmxlIG9mIExFVCBzdGF0ZW1lbnQgKi8KKwlPaWQJCQlyZXN1bHRW YXJpYWJsZTsKKwogCS8qIGhhcyBhZ2dyZWdhdGVzIGluIHRsaXN0IG9yIGhhdmluZ1F1YWwgKi8K IAlib29sCQloYXNBZ2dzIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiBo YXMgd2luZG93IGZ1bmN0aW9ucyBpbiB0bGlzdCAqLwpAQCAtMTYyLDYgKzE2NSw4IEBAIHR5cGVk ZWYgc3RydWN0IFF1ZXJ5CiAJYm9vbAkJaGFzUm93U2VjdXJpdHkgcGdfbm9kZV9hdHRyKHF1ZXJ5 X2p1bWJsZV9pZ25vcmUpOwogCS8qIHBhcnNlciBoYXMgYWRkZWQgYW4gUlRFX0dST1VQIFJURSAq LwogCWJvb2wJCWhhc0dyb3VwUlRFIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsK KwkvKiB1c2VzIHNlc3Npb24gdmFyaWFibGVzICovCisJYm9vbAkJaGFzU2Vzc2lvblZhcmlhYmxl cyBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogaXMgYSBSRVRVUk4gc3Rh dGVtZW50ICovCiAJYm9vbAkJaXNSZXR1cm4gcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25v cmUpOwogCkBAIC0yMTAwLDYgKzIxMDUsMTggQEAgdHlwZWRlZiBzdHJ1Y3QgTWVyZ2VTdG10CiAJ UGFyc2VMb2MJc3RtdF9sZW47CQkvKiBsZW5ndGggaW4gYnl0ZXM7IDAgbWVhbnMgInJlc3Qgb2Yg c3RyaW5nIiAqLwogfSBNZXJnZVN0bXQ7CiAKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq CQlMZXQgU3RhdGVtZW50CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYg c3RydWN0IExldFN0bXQKK3sKKwlOb2RlVGFnCQl0eXBlOworCUxpc3QJICAgKnRhcmdldDsJCQkv KiB0YXJnZXQgdmFyaWFibGUgKi8KKwlOb2RlCSAgICpxdWVyeTsJCQkvKiBzb3VyY2UgZXhwcmVz c2lvbiAqLworCVBhcnNlTG9jCWxvY2F0aW9uOworfSBMZXRTdG10OworCiAvKiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgKgkJU2VsZWN0IFN0YXRlbWVudAogICoKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgK aW5kZXggNTRlZTE3Njk3ZS4uNjY2OWQwNGRhZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGF0aG5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKQEAgLTE2 Myw2ICsxNjMsMTggQEAgdHlwZWRlZiBzdHJ1Y3QgUGxhbm5lckdsb2JhbAogCiAJLyogcGFydGl0 aW9uIGRlc2NyaXB0b3JzICovCiAJUGFydGl0aW9uRGlyZWN0b3J5IHBhcnRpdGlvbl9kaXJlY3Rv cnkgcGdfbm9kZV9hdHRyKHJlYWRfd3JpdGVfaWdub3JlKTsKKworCS8qIGxpc3Qgb2YgdXNlZCBz ZXNzaW9uIHZhcmlhYmxlcyAqLworCUxpc3QJICAgKnNlc3Npb25WYXJpYWJsZXM7CisKKwkvKiBP aWQgb2Ygc2Vzc2lvbiB2YXJpYWJsZSB1c2VkIGxpa2UgdGFyZ2V0IG9mIExFVCBjb21tYW5kICov CisJT2lkCQkJcmVzdWx0VmFyaWFibGU7CisKKwkvKiBvaWQgb2Ygc2Vzc2lvbiB2YXJpYWJsZSB1 c2VkIGxpa2UgYmFzZSBub2RlIGZvciBhc3NpZ25tZW50IGluZGlyZWN0aW9uICovCisJT2lkCQkJ YmFzZW5vZGVTZXNzaW9uVmFyaWQ7CisKKwkvKiB0cnVlLCBpZiB3ZSBkbyBTRUxFQ1QgcGVybWlz c2lvbiBjaGVjayBvbiBiYXNlbm9kZVNlc3Npb25WYXJpZCAqLworCWJvb2wJCWJhc2Vub2RlU2Vz c2lvblZhclNlbGVjdENoZWNrOwogfSBQbGFubmVyR2xvYmFsOwogCiAvKiBtYWNybyBmb3IgZmV0 Y2hpbmcgdGhlIFBsYW4gYXNzb2NpYXRlZCB3aXRoIGEgU3ViUGxhbiBub2RlICovCkBAIC01MDgs NiArNTIwLDggQEAgc3RydWN0IFBsYW5uZXJJbmZvCiAJYm9vbAkJcGxhY2Vob2xkZXJzRnJvemVu OwogCS8qIHRydWUgaWYgcGxhbm5pbmcgYSByZWN1cnNpdmUgV0lUSCBpdGVtICovCiAJYm9vbAkJ aGFzUmVjdXJzaW9uOworCS8qIHRydWUgaWYgc2Vzc2lvbiB2YXJpYWJsZXMgd2VyZSB1c2VkICov CisJYm9vbAkJaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCS8qCiAJICogVGhlIHJhbmdldGFibGUg aW5kZXggZm9yIHRoZSBSVEVfR1JPVVAgUlRFLCBvciAwIGlmIHRoZXJlIGlzIG5vCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3Bs YW5ub2Rlcy5oCmluZGV4IGVmOWVhN2VlOTguLmE0MjQ1OTNhNDYgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rl cy5oCkBAIC05NCw2ICs5NCwxNSBAQCB0eXBlZGVmIHN0cnVjdCBQbGFubmVkU3RtdAogCiAJTm9k ZQkgICAqdXRpbGl0eVN0bXQ7CS8qIG5vbi1udWxsIGlmIHRoaXMgaXMgdXRpbGl0eSBzdG10ICov CiAKKwlMaXN0CSAgICpzZXNzaW9uVmFyaWFibGVzOwkvKiBPSURzIGZvciBQQVJBTV9WQVJJQUJM RSBQYXJhbXMgKi8KKworCS8qCisJICogVGhlIG9pZCBvZiBzZXNzaW9uIHZhcmlhYmxlIGV4ZWNs dWRlZCBmcm9tIHBlcm1pc3Npb24gY2hlY2suCisJICogVGhpcyBzZXNzaW9uIHZhcmlhYmxlIGlz IHVzZWQgYXMgYmFzZSBub2RlIG9mIGFzc2lnbm1lbnQgaW5kaXJlY3Rpb24KKwkgKiAoYW5kIGl0 IGlzIHVzZWQgb25seSB0aGVyZSkuCisJICovCisJaW50CQkJZXhjbFNlbGVjdFBlcm1DaGVja1Zh cmlkOworCiAJLyogc3RhdGVtZW50IGxvY2F0aW9uIGluIHNvdXJjZSBzdHJpbmcgKGNvcGllZCBm cm9tIFF1ZXJ5KSAqLwogCVBhcnNlTG9jCXN0bXRfbG9jYXRpb247CS8qIHN0YXJ0IGxvY2F0aW9u LCBvciAtMSBpZiB1bmtub3duICovCiAJUGFyc2VMb2MJc3RtdF9sZW47CQkvKiBsZW5ndGggaW4g Ynl0ZXM7IDAgbWVhbnMgInJlc3Qgb2Ygc3RyaW5nIiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRl eCA5YzI5NTdlYjU0Li5jMTFkMTk1ZjE4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9w cmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtMzYxLDYg KzM2MSw5IEBAIHR5cGVkZWYgc3RydWN0IENvbnN0CiAgKgkJCQlvZiB0aGUgYHBhcmFtaWQnIGZp ZWxkIGNvbnRhaW4gdGhlIFN1YkxpbmsncyBzdWJMaW5rSWQsIGFuZAogICoJCQkJdGhlIGxvdy1v cmRlciAxNiBiaXRzIGNvbnRhaW4gdGhlIGNvbHVtbiBudW1iZXIuICAoVGhpcyB0eXBlCiAgKgkJ CQlvZiBQYXJhbSBpcyBhbHNvIGNvbnZlcnRlZCB0byBQQVJBTV9FWEVDIGR1cmluZyBwbGFubmlu Zy4pCisgKgorICoJCVBBUkFNX1ZBUklBQkxFOiAgVGhlIHBhcmFtZXRlciBpcyBhIHJlZmVyZW5j ZSB0byBhIHNlc3Npb24gdmFyaWFibGUKKyAqCQkJCShwYXJhbXZhcmlkIGhvbGRzIHRoZSB2YXJp YWJsZSdzIE9JRCkuCiAgKi8KIHR5cGVkZWYgZW51bSBQYXJhbUtpbmQKIHsKQEAgLTM2OCw2ICsz NzEsNyBAQCB0eXBlZGVmIGVudW0gUGFyYW1LaW5kCiAJUEFSQU1fRVhFQywKIAlQQVJBTV9TVUJM SU5LLAogCVBBUkFNX01VTFRJRVhQUiwKKwlQQVJBTV9WQVJJQUJMRSwKIH0gUGFyYW1LaW5kOwog CiB0eXBlZGVmIHN0cnVjdCBQYXJhbQpAQCAtMzgwLDYgKzM4NCwxNiBAQCB0eXBlZGVmIHN0cnVj dCBQYXJhbQogCWludDMyCQlwYXJhbXR5cG1vZCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2ln bm9yZSk7CiAJLyogT0lEIG9mIGNvbGxhdGlvbiwgb3IgSW52YWxpZE9pZCBpZiBub25lICovCiAJ T2lkCQkJcGFyYW1jb2xsaWQgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOworCS8q IE9JRCBvZiBzZXNzaW9uIHZhcmlhYmxlIGlmIGl0IGlzIHVzZWQgKi8KKwlPaWQJCQlwYXJhbXZh cmlkIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKKworCS8qCisJICogdHJ1ZSBp ZiBwYXJhbSBpcyB1c2VkIGFzIGJhc2Ugbm9kZSBvZiBhc3NpZ25tZW50IGluZGlyZWN0aW9uCisJ ICogKHdoZW4gdGFyZ2V0IG9mIExFVCBzdGF0ZW1lbnQgaXMgYW4gYXJyYXkgZmllbGQgb3IgYW4g cmVjb3JkIGZpZWxkKS4KKwkgKiBGb3IgdGhpcyBwYXJhbSB3ZSBkbyBub3QgY2hlY2sgU0VMRUNU IGFjY2VzcyByaWdodCwgYmVjYXVzZSB0aGlzCisJICogcGFyYW0gaXMgdXNlZCBqdXN0IGZvciBl eGVjdXRpb24gb2YgVVBEQVRFIG9wZXJhdGlvbi4KKwkgKi8KKwlib29sCQlwYXJhbWJhc2Vub2Rl OwogCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiAJUGFyc2VMb2MJbG9j YXRpb247CiB9IFBhcmFtOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5t YWluLmggYi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1haW4uaAppbmRleCBmZWUzMzc4YmJl Li5lODU1MTMyMGQxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1haW4u aAorKysgYi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1haW4uaApAQCAtMTI1LDQgKzEyNSw2 IEBAIGV4dGVybiB2b2lkIHJlY29yZF9wbGFuX2Z1bmN0aW9uX2RlcGVuZGVuY3koUGxhbm5lcklu Zm8gKnJvb3QsIE9pZCBmdW5jaWQpOwogZXh0ZXJuIHZvaWQgcmVjb3JkX3BsYW5fdHlwZV9kZXBl bmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgdHlwaWQpOwogZXh0ZXJuIGJvb2wgZXh0cmFj dF9xdWVyeV9kZXBlbmRlbmNpZXNfd2Fsa2VyKE5vZGUgKm5vZGUsIFBsYW5uZXJJbmZvICpjb250 ZXh0KTsKIAorZXh0ZXJuIHZvaWQgcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXMoUGxhbm5l ckluZm8gKnJvb3QpOworCiAjZW5kaWYJCQkJCQkJLyogUExBTk1BSU5fSCAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlz dC5oCmluZGV4IGMyNWFkZTY4ZjEuLjZmODRmZWZkNTIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAgLTI1 Niw2ICsyNTYsNyBAQCBQR19LRVlXT1JEKCJsZWFkaW5nIiwgTEVBRElORywgUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxlYWtwcm9vZiIsIExFQUtQUk9PRiwgVU5S RVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGVhc3QiLCBMRUFTVCwg Q09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxlZnQiLCBMRUZULCBU WVBFX0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgibGV0IiwgTEVU LCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZXZlbCIsIExF VkVMLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsaWtlIiwg TElLRSwgVFlQRV9GVU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxp bWl0IiwgTElNSVQsIFJFU0VSVkVEX0tFWVdPUkQsIEFTX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9u b2RlLmgKaW5kZXggMGRlNDRkMTY2Zi4uOGI1NWY4NDBkMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9k ZS5oCkBAIC04Miw2ICs4Miw4IEBAIHR5cGVkZWYgZW51bSBQYXJzZUV4cHJLaW5kCiAJRVhQUl9L SU5EX0NPUFlfV0hFUkUsCQkvKiBXSEVSRSBjb25kaXRpb24gaW4gQ09QWSBGUk9NICovCiAJRVhQ Ul9LSU5EX0dFTkVSQVRFRF9DT0xVTU4sIC8qIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBmb3IgYSBj b2x1bW4gKi8KIAlFWFBSX0tJTkRfQ1lDTEVfTUFSSywJCS8qIGN5Y2xlIG1hcmsgdmFsdWUgKi8K KwlFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVCwJLyogUEwvcGdTUUwgYXNzaWdubWVudCB0YXJnZXQg Ki8KKwlFWFBSX0tJTkRfTEVUX1RBUkdFVCwJCS8qIExFVCB0YXJnZXQgKi8KIH0gUGFyc2VFeHBy S2luZDsKIAogCkBAIC0yNDQsNiArMjQ2LDcgQEAgc3RydWN0IFBhcnNlU3RhdGUKIAlib29sCQlw X2hhc1RhcmdldFNSRnM7CiAJYm9vbAkJcF9oYXNTdWJMaW5rczsKIAlib29sCQlwX2hhc01vZGlm eWluZ0NURTsKKwlib29sCQlwX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlOb2RlCSAgICpwX2xh c3Rfc3JmOwkJLyogbW9zdCByZWNlbnQgc2V0LXJldHVybmluZyBmdW5jL29wIGZvdW5kICovCiAK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oIGIvc3JjL2luY2x1ZGUv dGNvcC9jbWR0YWdsaXN0LmgKaW5kZXggZWE4Njk1NGRkZS4uMjIwODJjMzAwMCAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9j bWR0YWdsaXN0LmgKQEAgLTE4Niw2ICsxODYsNyBAQCBQR19DTURUQUcoQ01EVEFHX0dSQU5ULCAi R1JBTlQiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0dSQU5UX1JPTEUs ICJHUkFOVCBST0xFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfSU1Q T1JUX0ZPUkVJR05fU0NIRU1BLCAiSU1QT1JUIEZPUkVJR04gU0NIRU1BIiwgdHJ1ZSwgZmFsc2Us IGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19JTlNFUlQsICJJTlNFUlQiLCBmYWxzZSwgZmFsc2Us IHRydWUpCitQR19DTURUQUcoQ01EVEFHX0xFVCwgIkxFVCIsIGZhbHNlLCBmYWxzZSwgZmFsc2Up CiBQR19DTURUQUcoQ01EVEFHX0xJU1RFTiwgIkxJU1RFTiIsIGZhbHNlLCBmYWxzZSwgZmFsc2Up CiBQR19DTURUQUcoQ01EVEFHX0xPQUQsICJMT0FEIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBH X0NNRFRBRyhDTURUQUdfTE9DS19UQUJMRSwgIkxPQ0sgVEFCTEUiLCBmYWxzZSwgZmFsc2UsIGZh bHNlKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmggYi9zcmMvaW5jbHVkZS90 Y29wL2Rlc3QuaAppbmRleCAwMGMwOTJlM2Q3Li42Y2UzZWEwZTYxIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS90Y29wL2Rlc3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2Rlc3QuaApAQCAtOTcs NiArOTcsNyBAQCB0eXBlZGVmIGVudW0KIAlEZXN0VHJhbnNpZW50UmVsLAkJCS8qIHJlc3VsdHMg c2VudCB0byB0cmFuc2llbnQgcmVsYXRpb24gKi8KIAlEZXN0VHVwbGVRdWV1ZSwJCQkJLyogcmVz dWx0cyBzZW50IHRvIHR1cGxlIHF1ZXVlICovCiAJRGVzdEV4cGxhaW5TZXJpYWxpemUsCQkvKiBy ZXN1bHRzIGFyZSBzZXJpYWxpemVkIGFuZCBkaXNjYXJkZWQgKi8KKwlEZXN0VmFyaWFibGUsCQkJ CS8qIHJlc3VsdHMgc2VudCB0byBzZXNzaW9uIHZhcmlhYmxlICovCiB9IENvbW1hbmREZXN0Owog CiAvKiAtLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxf ZXhlYy5jIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwppbmRleCBlNWIwZGEwNGUzLi4z ZjkwMWNkOGZjIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCisrKyBi L3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKQEAgLTgwOTksNyArODA5OSw4IEBAIGV4ZWNf aXNfc2ltcGxlX3F1ZXJ5KFBMcGdTUUxfZXhwciAqZXhwcikKIAkJcXVlcnktPnNvcnRDbGF1c2Ug fHwKIAkJcXVlcnktPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5LT5saW1pdENvdW50IHx8Ci0JCXF1 ZXJ5LT5zZXRPcGVyYXRpb25zKQorCQlxdWVyeS0+c2V0T3BlcmF0aW9ucyB8fAorCQlxdWVyeS0+ aGFzU2Vzc2lvblZhcmlhYmxlcykKIAkJcmV0dXJuIGZhbHNlOwogCiAJLyoKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggYzM2NjYwY2U2 ZC4uZjIyNDY3MTg2ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQKQEAgLTQzMSwzICs0MzEsMTIzNSBAQCBEUk9QIFZBUklBQkxFIHB1Ymxp Yy52YXIxOwogRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CiBEUk9QIFJPTEUgcmVncmVz c192YXJpYWJsZV9yMjsKIERST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworLS0gY2hl Y2sgYWNjZXNzIHJpZ2h0cworQ1JFQVRFIFJPTEUgcmVncmVzc19ub293bmVyOworQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZngoaW50 KQorUkVUVVJOUyBpbnQgQVMgJCQgU0VMRUNUICQxICsgdmFyMSAkJCBMQU5HVUFHRSBzcWw7CitD UkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeF9zZChpbnQpCitSRVRVUk5TIGludCBBUyAk JCBTRUxFQ1QgJDEgKyB2YXIxICQkIExBTkdVQUdFIHNxbCBTRUNVUklUWSBERUZJTkVSOworQ1JF QVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4KGludCkKK1JFVFVSTlMgaW50IEFTICQk IEJFR0lOIFJFVFVSTiAkMSArIHZhcjE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRF IE9SIFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4X3NkKGludCkKK1JFVFVSTlMgaW50IEFTICQk IEJFR0lOIFJFVFVSTiAkMSArIHZhcjE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsIFNFQ1VSSVRZ IERFRklORVI7CitMRVQgdmFyMSA9IDEwOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsK KyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitTRUxFQ1Qgc3FsZngoMjApOworIHNx bGZ4IAorLS0tLS0tLQorICAgIDMwCisoMSByb3cpCisKK1NFTEVDVCBzcWxmeF9zZCgyMCk7Cisg c3FsZnhfc2QgCistLS0tLS0tLS0tCisgICAgICAgMzAKKygxIHJvdykKKworU0VMRUNUIHBscGdz cWxmeCgyMCk7CisgcGxwZ3NxbGZ4IAorLS0tLS0tLS0tLS0KKyAgICAgICAgMzAKKygxIHJvdykK KworU0VMRUNUIHBscGdzcWxmeF9zZCgyMCk7CisgcGxwZ3NxbGZ4X3NkIAorLS0tLS0tLS0tLS0t LS0KKyAgICAgICAgICAgMzAKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwKK1NFVCBST0xFIFRP IHJlZ3Jlc3Nfbm9vd25lcjsKK1NFTEVDVCB2YXIxOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmll ZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitTRUxFQ1Qgc3FsZngoMjApOworRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitDT05URVhUOiAgU1FM IGZ1bmN0aW9uICJzcWxmeCIgc3RhdGVtZW50IDEKK1NFTEVDVCBwbHBnc3FsZngoMjApOworRVJS T1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitDT05URVhU OiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAiJDEgKyB2YXIxIgorUEwvcGdTUUwgZnVuY3Rpb24gcGxw Z3NxbGZ4KGludGVnZXIpIGxpbmUgMSBhdCBSRVRVUk4KKy0tIHNob3VsZCBiZSBvaworU0VMRUNU IHNxbGZ4X3NkKDIwKTsKKyBzcWxmeF9zZCAKKy0tLS0tLS0tLS0KKyAgICAgICAzMAorKDEgcm93 KQorCitTRUxFQ1QgcGxwZ3NxbGZ4X3NkKDIwKTsKKyBwbHBnc3FsZnhfc2QgCistLS0tLS0tLS0t LS0tLQorICAgICAgICAgICAzMAorKDEgcm93KQorCitTRVQgUk9MRSBUTyBERUZBVUxUOworR1JB TlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc19ub293bmVyOworLS0gc2hvdWxk IGJlIG9rCitTRVQgUk9MRSBUTyByZWdyZXNzX25vb3duZXI7CitTRUxFQ1QgdmFyMTsKKyB2YXIx IAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitTRUxFQ1Qgc3FsZngoMjApOworIHNxbGZ4IAor LS0tLS0tLQorICAgIDMwCisoMSByb3cpCisKK1NFTEVDVCBwbHBnc3FsZngoMjApOworIHBscGdz cWxmeCAKKy0tLS0tLS0tLS0tCisgICAgICAgIDMwCisoMSByb3cpCisKK1NFVCBST0xFIFRPIERF RkFVTFQ7CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIEZVTkNUSU9OIHNxbGZ4KGludCk7CitE Uk9QIEZVTkNUSU9OIHBscGdzcWxmeChpbnQpOworRFJPUCBGVU5DVElPTiBzcWxmeF9zZChpbnQp OworRFJPUCBGVU5DVElPTiBwbHBnc3FsZnhfc2QoaW50KTsKK0RST1AgUk9MRSByZWdyZXNzX25v b3duZXI7CistLSB1c2UgdmFyaWFibGVzIGluc2lkZSB2aWV3cworQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgbnVtZXJpYzsKKy0tIHVzZSB2YXJpYWJsZXMgaW4gdmlld3MKK0NSRUFURSBWSUVXIHRl c3RfdmlldyBBUyBTRUxFQ1QgQ09BTEVTQ0UodmFyMSArIHYsIDApIEFTIHJlc3VsdCBGUk9NIGdl bmVyYXRlX3NlcmllcygxLDIpIGcodik7CitTRUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsKKyByZXN1 bHQgCistLS0tLS0tLQorICAgICAgMAorICAgICAgMAorKDIgcm93cykKKworTEVUIHZhcjEgPSAz LjE0OworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgIDQu MTQKKyAgIDUuMTQKKygyIHJvd3MpCisKKy0tIHN0YXJ0IGEgbmV3IHNlc3Npb24KK1xjCitTRUxF Q1QgKiBGUk9NIHRlc3RfdmlldzsKKyByZXN1bHQgCistLS0tLS0tLQorICAgICAgMAorICAgICAg MAorKDIgcm93cykKKworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7 CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgIDQuMTQKKyAgIDUuMTQKKygyIHJvd3MpCisKKy0tIHNo b3VsZCBmYWlsLCBkZXBlbmRlbmN5CitEUk9QIFZBUklBQkxFIHZhcjE7CitFUlJPUjogIGNhbm5v dCBkcm9wIHNlc3Npb24gdmFyaWFibGUgdmFyMSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5k IG9uIGl0CitERVRBSUw6ICB2aWV3IHRlc3RfdmlldyBkZXBlbmRzIG9uIHNlc3Npb24gdmFyaWFi bGUgdmFyMQorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVu dCBvYmplY3RzIHRvby4KKy0tIHNob3VsZCBiZSBvaworRFJPUCBWQVJJQUJMRSB2YXIxIENBU0NB REU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHZpZXcgdGVzdF92aWV3CitDUkVBVEUgVkFS SUFCTEUgdmFyMSB0ZXh0OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgdGV4dDsKKy0tIHVzZSB2YXJp YWJsZXMgaW4gU1FMIGZ1bmN0aW9ucworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZngx KHZhcmNoYXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQgU0VMRUNUIHZhcjEgfHwgJywgJyB8fCAk MSAkJCBMQU5HVUFHRSBzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeDIoIHZh cmNoYXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQgU0VMRUNUIHZhcjIgfHwgJywgJyB8fCAkMSAk JCBMQU5HVUFHRSBzcWw7CitMRVQgdmFyMSA9ICdzdHIxJzsKK0xFVCB2YXIyID0gJ3N0cjInOwor U0VMRUNUIHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOworICAgICAgc3FsZngxICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLQorIHN0cjEsIHN0cjIsIEhlbGxvCisoMSByb3cpCisKKy0tIGlubGlu aW5nIGlzIGJsb2NrZWQKK0VYUExBSU4gKENPU1RTIE9GRiwgVkVSQk9TRSkgU0VMRUNUIHNxbGZ4 MShzcWxmeDIoJ0hlbGxvJykpOworICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBSZXN1bHQKKyAgIE91dHB1dDogc3FsZngxKHNxbGZ4MignSGVs bG8nOjpjaGFyYWN0ZXIgdmFyeWluZykpCisoMiByb3dzKQorCitEUk9QIEZVTkNUSU9OIHNxbGZ4 MSh2YXJjaGFyKTsKK0RST1AgRlVOQ1RJT04gc3FsZngyKHZhcmNoYXIpOworRFJPUCBWQVJJQUJM RSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworLS0gYWNjZXNzIGZyb20gY2FjaGVkIHBsYW5z IHNob3VsZCB3b3JrCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljOworQ1JFQVRFIFZB UklBQkxFIHZhcjIgQVMgbnVtZXJpYzsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHBscGdz cWxmeCgpCitSRVRVUk5TIG51bWVyaWMgQVMgJCQgQkVHSU4gUkVUVVJOIHZhcjE7IEVORCAkJCBM QU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4Mihu dW1lcmljKQorUkVUVVJOUyB2b2lkIEFTICQkIEJFR0lOIExFVCB2YXIyID0gJDE7IEVORCAkJCBM QU5HVUFHRSBwbHBnc3FsOworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBmb3JjZV9nZW5lcmljX3Bs YW47CitMRVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CisgcGxwZ3NxbGZ4IAor LS0tLS0tLS0tLS0KKyAgICAgIDMuMTQKKygxIHJvdykKKworTEVUIHZhcjEgPSAzLjE0ICogMjsK K1NFTEVDVCBwbHBnc3FsZngoKTsKKyBwbHBnc3FsZnggCistLS0tLS0tLS0tLQorICAgICAgNi4y OAorKDEgcm93KQorCitTRUxFQ1QgcGxwZ3NxbGZ4MigxMC4wKTsKKyBwbHBnc3FsZngyIAorLS0t LS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0KKyAx MC4wCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVkFSSUFCTEUgdmFyMjsK Ky0tIGRlcGVuZGVuY3kgKHBsYW4gaW52YWxpZGF0aW9uKSBzaG91bGQgd29yaworQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgbnVtZXJpYzsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIG51bWVyaWM7 CitMRVQgdmFyMSA9IDMuMTQgKiAzOworU0VMRUNUIHBscGdzcWxmeCgpOworIHBscGdzcWxmeCAK Ky0tLS0tLS0tLS0tCisgICAgICA5LjQyCisoMSByb3cpCisKK0xFVCB2YXIxID0gMy4xNCAqIDQ7 CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CisgcGxwZ3NxbGZ4IAorLS0tLS0tLS0tLS0KKyAgICAgMTIu NTYKKygxIHJvdykKKworU0VMRUNUIHBscGdzcWxmeDIoMTAuMCk7CisgcGxwZ3NxbGZ4MiAKKy0t LS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisg MTAuMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7 CitEUk9QIEZVTkNUSU9OIHBscGdzcWxmeCgpOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngyKCk7 CitFUlJPUjogIGZ1bmN0aW9uIHBscGdzcWxmeDIoKSBkb2VzIG5vdCBleGlzdAorLS0gZGVwZW5k ZW5jeSBvbiBjb2x1bW4gdHlwZQorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRF IFRBQkxFIHRlc3R2YXIoYSBpbnQsIGIgaW50LCBjIGludCk7CitJTlNFUlQgSU5UTyB0ZXN0dmFy IFZBTFVFUygxMCwyMCwzMCk7CitBTFRFUiBUQUJMRSB0ZXN0dmFyIERST1AgQ09MVU1OIGE7CitB TFRFUiBUQUJMRSB0ZXN0dmFyIERST1AgQ09MVU1OIGI7CitDUkVBVEUgRlVOQ1RJT04gcGxwZ3Nx bGZ4MygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIExFVCB2YXIxID0gKFNFTEVDVCAq IEZST00gdGVzdHZhcik7CisgIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7CitFTkQKKyQkIExBTkdV QUdFIHBscGdzcWw7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBwbHBnc3FsZngzKCk7CitOT1RJ Q0U6ICAzMAorIHBscGdzcWxmeDMgCistLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworQUxURVIg VEFCTEUgdGVzdHZhciBBTFRFUiBDT0xVTU4gYyBUWVBFIG51bWVyaWM7CistLSBzaG91bGQgYmUg b2sKK1NFTEVDVCBwbHBnc3FsZngzKCk7CitOT1RJQ0U6ICAzMAorIHBscGdzcWxmeDMgCistLS0t LS0tLS0tLS0KKyAKKygxIHJvdykKKworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngzKCk7CitEUk9Q IFRBQkxFIHRlc3R2YXI7CitEUk9QIFZBUklBQkxFIHZhcjE7CitTRVQgcGxhbl9jYWNoZV9tb2Rl IFRPIERFRkFVTFQ7CistLSByZXBlYXRlZCBleGVjdXRpb24gc2hvdWxkIG5vdCBjcmFzaAorQ1JF QVRFIFZBUklBQkxFIHZhcjEgaW50OworQ1JFQVRFIFRBQkxFIHRlc3R2YXIoYSBpbnQpOworSU5T RVJUIElOVE8gdGVzdHZhciBWQUxVRVMoMSk7CitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjEgPSAw OworICBGT1IgaSBJTiAxLi4xMAorICBMT09QCisgICAgTEVUIHZhcjEgPSAoU0VMRUNUIGEgRlJP TSB0ZXN0dmFyKTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7CitFTkQ7 CiskJDsKK05PVElDRTogIDEKK0RPICQkCitCRUdJTgorICBMRVQgdmFyMSA9IDA7CisgIEZPUiBp IElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9IChTRUxFQ1QgYSArIHZhcjEgRlJPTSB0 ZXN0dmFyKTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7CitFTkQ7Cisk JDsKK05PVElDRTogIDEwCitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjEgPSAwOworICBGT1IgaSBJ TiAxLi4xMAorICBMT09QCisgICAgTEVUIHZhcjEgPSAoU0VMRUNUIGEgRlJPTSB0ZXN0dmFyKSAr IHZhcjE7CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7 CitOT1RJQ0U6ICAxMAorRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gMDsKKyAgRk9SIGkgSU4g MS4uMTAKKyAgTE9PUAorICAgIExFVCB2YXIxID0gaTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5P VElDRSAnJScsIHZhcjE7CitFTkQ7CiskJDsKK05PVElDRTogIDEwCitETyAkJAorQkVHSU4KKyAg TEVUIHZhcjEgPSAwOworICBGT1IgaSBJTiAxLi4xMAorICBMT09QCisgICAgTEVUIHZhcjEgPSBp ICsgdmFyMTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7CitFTkQ7Cisk JDsKK05PVElDRTogIDU1CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRBQkxFIHRlc3R2YXI7 CistLSB1c2FnZSBMRVQgc3RhdGVtZW50IGluIHBscGdzcWwgc2hvdWxkIHdvcmsKK0NSRUFURSBW QVJJQUJMRSB2YXIxIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIG51bWVyaWNbXTsKK0RPICQk CitCRUdJTgorICBMRVQgdmFyMiA9ICd7fSc6OmludFtdOworICBGT1IgaSBJTiAxLi4xMAorICBM T09QCisgICAgTEVUIHZhcjEgPSBpOworICAgIExFVCB2YXIyW3ZhcjFdID0gaTsKKyAgRU5EIExP T1A7CisgIFJBSVNFIE5PVElDRSAncmVzdWx0IGFycmF5OiAlJywgdmFyMjsKK0VORDsKKyQkOwor Tk9USUNFOiAgcmVzdWx0IGFycmF5OiB7MSwyLDMsNCw1LDYsNyw4LDksMTB9CitEUk9QIFZBUklB QkxFIHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CistLSBDQUxMIHN0YXRlbWVudCBpcyBub3Qg c3VwcG9ydGVkIHlldAorLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZhcmlh YmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorQ1JFQVRFIFZBUklBQkxFIHYgaW50OworQ1JF QVRFIFBST0NFRFVSRSBwKGFyZyBpbnQpIEFTICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIGFy ZzsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7CistLSBzaG91bGQgbm90IGNyYXNoIChidXQgaXMg bm90IHN1cHBvcnRlZCB5ZXQpCitDQUxMIHAodik7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUg Y2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQKK0RPICQkIEJFR0lOIENBTEwgcCh2KTsgRU5E ICQkOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3Vt ZW50CitDT05URVhUOiAgU1FMIHN0YXRlbWVudCAiQ0FMTCBwKHYpIgorUEwvcGdTUUwgZnVuY3Rp b24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IENBTEwKK0RST1AgUFJPQ0VEVVJFIHAoaW50 KTsKK0RST1AgVkFSSUFCTEUgdjsKKy0tIEVYRUNVVEUgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0 ZWQgeWV0CistLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24gdmFyaWFibGUgZnJv bSBleHByZXNzaW9uIGV4ZWN1dG9yCitDUkVBVEUgVkFSSUFCTEUgdiBpbnQ7CitMRVQgdiA9IDIw OworUFJFUEFSRSBwdGVzdChpbnQpIEFTIFNFTEVDVCAkMTsKKy0tIHNob3VsZCBmYWlsCitFWEVD VVRFIHB0ZXN0KHYpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFz IGFuIGFyZ3VtZW50CitERUFMTE9DQVRFIHB0ZXN0OworRFJPUCBWQVJJQUJMRSB2OworLS0gdGVz dCBzZWFyY2ggcGF0aAorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKK0NSRUFURSBWQVJJQUJMRSBz dmFydGVzdC52YXIxIEFTIG51bWVyaWM7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSBwaSgp OworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJ2YXIxIiBkb2Vzbid0IGV4aXN0CitMSU5FIDE6 IExFVCB2YXIxID0gcGkoKTsKKyAgICAgICAgICAgIF4KK1NFTEVDVCB2YXIxOworRVJST1I6ICBj b2x1bW4gInZhcjEiIGRvZXMgbm90IGV4aXN0CitMSU5FIDE6IFNFTEVDVCB2YXIxOworICAgICAg ICAgICAgICAgXgorLS0gc2hvdWxkIGJlIG9rCitMRVQgc3ZhcnRlc3QudmFyMSA9IHBpKCk7CitT RUxFQ1Qgc3ZhcnRlc3QudmFyMTsKKyAgICAgICB2YXIxICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tCisgMy4xNDE1OTI2NTM1ODk3OQorKDEgcm93KQorCitTRVQgc2VhcmNoX3BhdGggVE8gc3Zh cnRlc3Q7CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gcGkoKSArIDEwOworU0VMRUNUIHZh cjE7CisgICAgICAgdmFyMSAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLQorIDEzLjE0MTU5MjY1 MzU4OTgKKygxIHJvdykKKworUkVTRVQgc2VhcmNoX3BhdGg7CitEUk9QIFNDSEVNQSBzdmFydGVz dCBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHN2 YXJ0ZXN0LnZhcjEKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRleHQ7CistLSB2YXJpYWJsZXMg Y2FuIGJlIHVwZGF0ZWQgdW5kZXIgUk8gdHJhbnNhY3Rpb24KK0JFR0lOOworU0VUIFRSQU5TQUNU SU9OIFJFQUQgT05MWTsKK0xFVCB2YXIxID0gJ2hlbGxvJzsKK0NPTU1JVDsKK1NFTEVDVCB2YXIx OworIHZhcjEgIAorLS0tLS0tLQorIGhlbGxvCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFy MTsKKy0tIHRlc3Qgb2YgZG9tYWlucworQ1JFQVRFIERPTUFJTiBpbnRfZG9tYWluIEFTIGludCBO T1QgTlVMTCBDSEVDSyAoVkFMVUUgPiAxMDApOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50 X2RvbWFpbjsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgZG9tYWluIGlu dF9kb21haW4gZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMKKy0tIHNob3VsZCBiZSBvaworTEVU IHZhcjEgPSAxMDAwOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorIDEwMDAKKygxIHJv dykKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMTA7CitFUlJPUjogIHZhbHVlIGZvciBk b21haW4gaW50X2RvbWFpbiB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJpbnRfZG9tYWluX2No ZWNrIgorLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gTlVMTDsKK0VSUk9SOiAgZG9tYWluIGlu dF9kb21haW4gZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMKKy0tIG5vdGUgLSBkb21haW4gZGVm YXVsdHMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0IChsaWtlIFBMcGdTUUwpCitEUk9QIFZBUklBQkxF IHZhcjE7CitEUk9QIERPTUFJTiBpbnRfZG9tYWluOworLS0gdGhlIGV4cHJlc3Npb24gc2hvdWxk IHJlbWFpbiAidW5rbm93biIKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDRtdWx0aXJhbmdl W107CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gTlVMTDsKK0xFVCB2YXIxID0gJ3sie1sy LDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwxNCl9In0nOworTEVUIHZhcjFbMl0gPSAne1s1LDgp LFsxMiwxMDApfSc7CitTRUxFQ1QgdmFyMTsKKyAgICAgICAgICAgICAgICAgIHZhcjEgICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7 IntbMiw4KSxbMTEsMTQpfSIsIntbNSw4KSxbMTIsMTAwKX0ifQorKDEgcm93KQorCistLUl0IHNo b3VsZCB3b3JrIGluIHBscGdzcWwgdG9vCitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjEgPSBOVUxM OworICBMRVQgdmFyMSA9ICd7IntbMiw4KSxbMTEsMTQpfSIsIntbNSw4KSxbMTIsMTQpfSJ9JzsK KyAgTEVUIHZhcjFbMl0gPSAne1s1LDgpLFsxMiwxMDApfSc7CisKKyAgUkFJU0UgTk9USUNFICcl JywgdmFyMTsKK0VORDsKKyQkOworTk9USUNFOiAgeyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUsOCks WzEyLDEwMCl9In0KK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3Qg Q1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50IENSRUFURSBUQUJMRSBmb28oYSBpbnQpOworTEVU IHN2YXJ0ZXN0LnZhcjEgPSAxMDA7CitTRUxFQ1Qgc3ZhcnRlc3QudmFyMTsKKyB2YXIxIAorLS0t LS0tCisgIDEwMAorKDEgcm93KQorCitTRVQgc2VhcmNoX3BhdGggdG8gcHVibGljLCBzdmFydGVz dDsKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK0RST1Ag U0NIRU1BIHN2YXJ0ZXN0IENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDIgb3Ro ZXIgb2JqZWN0cworREVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byB0YWJsZSBmb28KK2Ryb3AgY2Fz Y2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBp bnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBpbnRbXTsKK0xFVCB2YXIxID0gMjsKK0xFVCB2 YXIyID0gJ3t9Jzo6aW50W107CitMRVQgdmFyMlt2YXIxXSA9IDA7CitTRUxFQ1QgdmFyMjsKKyAg IHZhcjIgICAgCistLS0tLS0tLS0tLQorIFsyOjJdPXswfQorKDEgcm93KQorCitEUk9QIFZBUklB QkxFIHZhcjEsIHZhcjI7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFS SUFCTEUgdmFyMiBBUyBpbnRbXTsKK0xFVCB2YXIxID0gMjsKK0xFVCB2YXIyID0gJ3t9Jzo6aW50 W107CitTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisge30KKygxIHJvdykKKworRFJPUCBW QVJJQUJMRSB2YXIxLCB2YXIyOworLS0gdGhlIExFVCBzdGF0ZW1lbnQgc2hvdWxkIGJlIGRpc2Fs bG93ZWQgaW4gQ1RFCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitXSVRIIHggQVMgKExF VCB2YXIxID0gMTAwKSBTRUxFQ1QgKiBGUk9NIHg7CitFUlJPUjogIHN5bnRheCBlcnJvciBhdCBv ciBuZWFyICJMRVQiCitMSU5FIDE6IFdJVEggeCBBUyAoTEVUIHZhcjEgPSAxMDApIFNFTEVDVCAq IEZST00geDsKKyAgICAgICAgICAgICAgICAgICBeCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIx ID0gZ2VuZXJhdGVfc2VyaWVzKDEsIDEpOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDIpOworRVJST1I6ICBleHByZXNzaW9uIHJldHVybmVkIG1vcmUgdGhh biBvbmUgcm93CitMRVQgdmFyMSA9IGdlbmVyYXRlX3NlcmllcygxLCAwKTsKK0VSUk9SOiAgZXhw cmVzc2lvbiByZXR1cm5lZCBubyByb3dzCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBjb21wb3Np dGUgdmFyaWFibGVzCitDUkVBVEUgVFlQRSBzdl94eXogQVMgKHggaW50LCB5IGludCwgeiBudW1l cmljKDEwLDIpKTsKK0NSRUFURSBWQVJJQUJMRSB2MSBBUyBzdl94eXo7CitDUkVBVEUgVkFSSUFC TEUgdjIgQVMgc3ZfeHl6OworTEVUIHYxID0gKDEsIDIsIDMuMTQpOworTEVUIHYyID0gKDEwLCAy MCwgMy4xNCAqIDEwKTsKKy0tIHNob3VsZCB3b3JrIHRvbyAtIHRoZXJlIGFyZSBwcmVwYXJlZCBj YXN0cworTEVUIHYxID0gKDEsIDIsIDMpOworU0VMRUNUIHYxOworICAgICB2MSAgICAgCistLS0t LS0tLS0tLS0KKyAoMSwyLDMuMDApCisoMSByb3cpCisKK1NFTEVDVCB2MjsKKyAgICAgIHYyICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tCisgKDEwLDIwLDMxLjQwKQorKDEgcm93KQorCitTRUxFQ1Qg KHYxKS4qOworIHggfCB5IHwgIHogICAKKy0tLSstLS0rLS0tLS0tCisgMSB8IDIgfCAzLjAwCiso MSByb3cpCisKK1NFTEVDVCAodjIpLio7CisgeCAgfCB5ICB8ICAgeiAgIAorLS0tLSstLS0tKy0t LS0tLS0KKyAxMCB8IDIwIHwgMzEuNDAKKygxIHJvdykKKworU0VMRUNUIHYxLnggKyB2MS56Owor ID9jb2x1bW4/IAorLS0tLS0tLS0tLQorICAgICA0LjAwCisoMSByb3cpCisKK1NFTEVDVCB2Mi54 ICsgdjIuejsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyAgICA0MS40MAorKDEgcm93KQorCist LSBhY2Nlc3MgdG8gY29tcG9zaXRlIGZpZWxkcyBzaG91bGQgYmUgc2FmZSB0b28KK0NSRUFURSBS T0xFIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rf cm9sZTsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdjIueDsKK0VSUk9SOiAgcGVybWlzc2lvbiBk ZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdjIKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9Q IFZBUklBQkxFIHYxOworRFJPUCBWQVJJQUJMRSB2MjsKK0RST1AgVFlQRSBzdl94eXo7CitEUk9Q IFJPTEUgcmVncmVzc192YXJfdGVzdF9yb2xlOworLS0gc2hvdWxkIGZhaWwsIHdyb25nIGlkZW50 aWZpZXIKK0xFVCBub2RiLm5vc2NoZW1hLm5vdmFyLm5vZmllbGQubm9zdWJmaWVsZCA9IDEwOwor RVJST1I6ICBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTog bm9kYi5ub3NjaGVtYS5ub3Zhci5ub2ZpZWxkLm5vc3ViZmllbGQKK0xFVCBub2RiLm5vc2NoZW1h Lm5vdmFyLm5vZmllbGQgPSAxMDsKK0VSUk9SOiAgY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBh cmUgbm90IGltcGxlbWVudGVkOiBub2RiLm5vc2NoZW1hLm5vdmFyLm5vZmllbGQKK0xFVCBub2Ri Lm5vc2NoZW1hLm5vdmFyID0gMTA7CitFUlJPUjogIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMg YXJlIG5vdCBpbXBsZW1lbnRlZDogbm9kYi5ub3NjaGVtYS5ub3ZhcgorQ1JFQVRFIFRZUEUgdDEg QVMgKGEgaW50LCBiIG51bWVyaWMsIGMgdGV4dCk7CitDUkVBVEUgVkFSSUFCTEUgdjEgQVMgdDE7 CitMRVQgdjEgPSAoMSwgcGkoKSwgJ2hlbGxvJyk7CitTRUxFQ1QgdjE7CisgICAgICAgICAgICAg djEgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKDEsMy4xNDE1 OTI2NTM1ODk3OSxoZWxsbykKKygxIHJvdykKKworTEVUIHYxLmIgPSAxMC4yMjIyOworU0VMRUNU IHYxOworICAgICAgICB2MSAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLQorICgxLDEwLjIy MjIsaGVsbG8pCisoMSByb3cpCisKKy0tIHNob3VsZCBmYWlsLCBhdHRyaWJ1dGUgZG9lc24ndCBl eGlzdAorTEVUIHYxLnggPSAxMDsKK0VSUk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVsZCAieCIg b2YgY29sdW1uICJ2MSIgYmVjYXVzZSB0aGVyZSBpcyBubyBzdWNoIGNvbHVtbiBpbiBkYXRhIHR5 cGUgdDEKK0xJTkUgMTogTEVUIHYxLnggPSAxMDsKKyAgICAgICAgICAgIF4KKy0tIHNob3VsZCBm YWlsLCBkb24ndCBhbGxvdyBtdWx0aSBjb2x1bW4gcXVlcnkKK0xFVCB2MSA9IChOVUxMOjp0MSku KjsKK0VSUk9SOiAgYXNzaWdubWVudCBleHByZXNzaW9uIHJldHVybmVkIDMgY29sdW1ucworTElO RSAxOiBMRVQgdjEgPSAoTlVMTDo6dDEpLio7CisgICAgICAgICAgICAgICAgICBeCistLSBhbGxv dyBEUk9QIG9yIEFERCBBVFRSSUJVVEUgb24gY29tcG9zaXRlIHR5cGVzCistLSBzaG91bGQgYmUg b2sKK0FMVEVSIFRZUEUgdDEgRFJPUCBBVFRSSUJVVEUgYzsKK1NFTEVDVCB2MTsKKyAgICAgdjEg ICAgICAKKy0tLS0tLS0tLS0tLS0KKyAoMSwxMC4yMjIyKQorKDEgcm93KQorCistLSBzaG91bGQg YmUgb2sKK0FMVEVSIFRZUEUgdDEgQUREIEFUVFJJQlVURSBjIGludDsKK1NFTEVDVCB2MTsKKyAg ICAgIHYxICAgICAgCistLS0tLS0tLS0tLS0tLQorICgxLDEwLjIyMjIsKQorKDEgcm93KQorCitM RVQgdjEgPSAoMTAsIDEwLjMsIDIwKTsKK1NFTEVDVCB2MTsKKyAgICAgIHYxICAgICAgCistLS0t LS0tLS0tLS0tLQorICgxMCwxMC4zLDIwKQorKDEgcm93KQorCistLSBzaG91bGQgYmUgb2sKK0FM VEVSIFRZUEUgdDEgRFJPUCBBVFRSSUJVVEUgYjsKK1NFTEVDVCB2MTsKKyAgIHYxICAgIAorLS0t LS0tLS0tCisgKDEwLDIwKQorKDEgcm93KQorCistLSBzaG91bGQgZmFpbCwgZGlzYWxsb3cgZGF0 YSB0eXBlIGNoYW5nZQorQUxURVIgVFlQRSB0MSBBTFRFUiBBVFRSSUJVVEUgYyBUWVBFIGludDsK K0VSUk9SOiAgY2Fubm90IGFsdGVyIHR5cGUgInQxIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUg InB1YmxpYy52MSIgdXNlcyBpdAorRFJPUCBWQVJJQUJMRSB2MTsKK0RST1AgVFlQRSB0MTsKKy0t IHRoZSB0YWJsZSB0eXBlIGNhbiBiZSB1c2VkIGFzIGNvbXBvc2l0ZSB0eXBlIHRvbworQ1JFQVRF IFRBQkxFIHN2YXJfdGVzdChhIGludCwgYiBudW1lcmljLCBjIGRhdGUpOworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgc3Zhcl90ZXN0OworTEVUIHZhcjEgPSAoMTAsIHBpKCksICcyMDIzLTA1LTI2 Jyk7CitTRUxFQ1QgdmFyMTsKKyAgICAgICAgICAgICAgIHZhcjEgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoMTAsMy4xNDE1OTI2NTM1ODk3OSww NS0yNi0yMDIzKQorKDEgcm93KQorCistLSBzaG91bGQgZmFpbCBkdWUgZGVwZW5kZW5jeQorQUxU RVIgVEFCTEUgc3Zhcl90ZXN0IEFMVEVSIENPTFVNTiBhIFRZUEUgdGV4dDsKK0VSUk9SOiAgY2Fu bm90IGFsdGVyIHRhYmxlICJzdmFyX3Rlc3QiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSAicHVi bGljLnZhcjEiIHVzZXMgaXQKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRBQkxFIHN2YXJfdGVzdDsK K0VSUk9SOiAgY2Fubm90IGRyb3AgdGFibGUgc3Zhcl90ZXN0IGJlY2F1c2Ugb3RoZXIgb2JqZWN0 cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHNlc3Npb24gdmFyaWFibGUgdmFyMSBkZXBlbmRzIG9u IHR5cGUgc3Zhcl90ZXN0CitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUg ZGVwZW5kZW50IG9iamVjdHMgdG9vLgorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSBz dmFyX3Rlc3Q7CitDUkVBVEUgVFlQRSB2YXJ0ZXN0X3QxIEFTIChhIGludCwgYiBpbnQpOworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgdmFydGVzdF90MTsKK0NSRUFURSBUQUJMRSB2YXJ0ZXN0dGFi ICh4Y29sIGludCk7CitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitHUkFOVCBV UERBVEUgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitHUkFOVCBT RUxFQ1QgT04gVEFCTEUgdmFydGVzdHRhYiBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitTRVQg Uk9MRSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIx ID0gKDEwLCAyMCk7CitMRVQgdmFyMS5hID0gMzA7CitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjEg PSAoMTAwLCAxMDApOworICBMRVQgdmFyMS5hID0gMTAwMDsKK0VORDsKKyQkOworLS0gc2hvdWxk IGZhaWwKK1NFTEVDVCB2YXIxLmE7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNz aW9uIHZhcmlhYmxlIHZhcjEKK1NFTEVDVCB2YXIxOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmll ZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7CitF UlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0xFVCB2 YXIxLmEgPSAoU0VMRUNUICogRlJPTSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFydGVzdHRhYiBX SEVSRSB4Y29sID0gdmFyMS5hICsgMTApKTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9y IHNlc3Npb24gdmFyaWFibGUgdmFyMQorRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFy MTsgRU5EICQkOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJs ZSB2YXIxCitDT05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAidmFyMSIKK1BML3BnU1FMIGZ1 bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQorRE8gJCQgQkVHSU4gUkFJ U0UgTk9USUNFICclJywgdmFyMS5hOyBFTkQgJCQ7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVk IGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9u ICJ2YXIxLmEiCitQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQg UkFJU0UKK0RPICQkIEJFR0lOIExFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsgRU5EICQkOworRVJS T1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitDT05URVhU OiAgU1FMIHN0YXRlbWVudCAiTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwIgorUEwvcGdTUUwgZnVu Y3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFNRTCBzdGF0ZW1lbnQKK1NFVCBST0xF IFRPIERFRkFVTFQ7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX3Zh cl90ZXN0X3JvbGU7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CistLSBzaG91 bGQgYmUgb2sKK1NFTEVDVCB2YXIxLmE7CisgIGEgICAKKy0tLS0tLQorIDEwMDAKKygxIHJvdykK KworU0VMRUNUIHZhcjE7CisgICAgdmFyMSAgICAKKy0tLS0tLS0tLS0tLQorICgxMDAwLDEwMCkK KygxIHJvdykKKworTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwOworTEVUIHZhcjEuYSA9IChTRUxF Q1QgKiBGUk9NIChTRUxFQ1QgY291bnQoKikgRlJPTSB2YXJ0ZXN0dGFiIFdIRVJFIHhjb2wgPSB2 YXIxLmEgKyAxMCkpOworRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMTsgRU5EICQk OworTk9USUNFOiAgKDAsMTAwKQorRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMS5h OyBFTkQgJCQ7CitOT1RJQ0U6ICAwCitETyAkJCBCRUdJTiBMRVQgdmFyMS5hID0gdmFyMS5hICsg MTA7IEVORCAkJDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitSRVZPS0UgU0VMRUNUIE9OIFZBUklB QkxFIHZhcjEgRlJPTSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitTRVQgUk9MRSBUTyByZWdyZXNz X3Zhcl90ZXN0X3JvbGU7CistLSBzaG91bGQgZmFpbCBhZ2FpbgorU0VMRUNUIHZhcjEuYTsKK0VS Uk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorU0VMRUNU IHZhcjE7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZh cjEKK0xFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQg Zm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorTEVUIHZhcjEuYSA9IChTRUxFQ1QgKiBGUk9NIChT RUxFQ1QgY291bnQoKikgRlJPTSB2YXJ0ZXN0dGFiIFdIRVJFIHhjb2wgPSB2YXIxLmEgKyAxMCkp OworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitE TyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOyBFTkQgJCQ7CitFUlJPUjogIHBlcm1p c3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0NPTlRFWFQ6ICBQTC9wZ1NR TCBleHByZXNzaW9uICJ2YXIxIgorUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sg bGluZSAxIGF0IFJBSVNFCitETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxLmE7IEVO RCAkJDsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFy MQorQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gInZhcjEuYSIKK1BML3BnU1FMIGZ1bmN0 aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQorRE8gJCQgQkVHSU4gTEVUIHZh cjEuYSA9IHZhcjEuYSArIDEwOyBFTkQgJCQ7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZv ciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0NPTlRFWFQ6ICBTUUwgc3RhdGVtZW50ICJMRVQgdmFy MS5hID0gdmFyMS5hICsgMTAiCitQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBs aW5lIDEgYXQgU1FMIHN0YXRlbWVudAorU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgVkFSSUFC TEUgdmFyMTsKK0RST1AgVEFCTEUgdmFydGVzdHRhYjsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl90 ZXN0X3JvbGU7CitEUk9QIFRZUEUgdmFydGVzdF90MTsKK0NSRUFURSBUWVBFIHZhcnRlc3RfdDEg QVMgKGEgaW50LCBiIGludCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0ZXh0OworQ1JFQVRF IFZBUklBQkxFIHZhcjIgQVMgdmFydGVzdF90MTsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFy MS5hOworRVJST1I6ICB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIG9mIHR5cGUgInRleHQiLCB3 aGljaCBpcyBub3QgYSBjb21wb3NpdGUgdHlwZQorTElORSAxOiBTRUxFQ1QgdmFyMS5hOworICAg ICAgICAgICAgICAgXgorU0VMRUNUIHZhcjIuYzsKK0VSUk9SOiAgY291bGQgbm90IGlkZW50aWZ5 IGNvbHVtbiAiYyIgaW4gdmFyaWFibGUgInB1YmxpYy52YXIyIgorTElORSAxOiBTRUxFQ1QgdmFy Mi5jOworICAgICAgICAgICAgICAgXgorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJQUJM RSB2YXIyOworRFJPUCBUWVBFIHZhcnRlc3RfdDE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBp bnQ7CitMRVQgdmFyMSA9IDE7CitMRVQgdmFyMSA9ICcxJzsKK0xFVCB2YXIxID0gMTAuMTsKKy0t IHNob3VsZCBmYWlsCitMRVQgdmFyMSA9ICcxJzo6anNvbmI7CitFUlJPUjogIHZhcmlhYmxlICJw dWJsaWMudmFyMSIgaXMgb2YgdHlwZSBpbnRlZ2VyLCBidXQgZXhwcmVzc2lvbiBpcyBvZiB0eXBl IGpzb25iCitMSU5FIDE6IExFVCB2YXIxID0gJzEnOjpqc29uYjsKKyAgICAgICAgICAgICAgICAg ICBeCitISU5UOiAgWW91IHdpbGwgbmVlZCB0byByZXdyaXRlIG9yIGNhc3QgdGhlIGV4cHJlc3Np b24uCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gJzEnOjpqc29uYjo6aW50OworLS0gc2hv dWxkIGZhaWwKK0xFVCB2YXIxLnggPSAxMDsKK0VSUk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVs ZCAieCIgb2Ygc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGJlY2F1c2UgaXRzIHR5cGUg aW50ZWdlciBpcyBub3QgYSBjb21wb3NpdGUgdHlwZQorTElORSAxOiBMRVQgdmFyMS54ID0gMTA7 CisgICAgICAgICAgICBeCitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgU0NIRU1BIHZhcnRl c3Q7CitDUkVBVEUgVFlQRSB2YXJ0ZXN0dHlwZSBBUyAodmFydGVzdCBpbnQpOworQ1JFQVRFIFZB UklBQkxFIHZhcnRlc3QudmFydGVzdCBBUyB2YXJ0ZXN0dHlwZTsKK1NFVCBTRUFSQ0hfUEFUSCBU TyB2YXJ0ZXN0OworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXJ0ZXN0LnZhcnRlc3QgPSAxOworRVJS T1I6ICB0YXJnZXQgInZhcnRlc3QudmFydGVzdCIgb2YgTEVUIGNvbW1hbmQgaXMgYW1iaWd1b3Vz CitMSU5FIDE6IExFVCB2YXJ0ZXN0LnZhcnRlc3QgPSAxOworICAgICAgICAgICAgXgorRFJPUCBW QVJJQUJMRSB2YXJ0ZXN0LnZhcnRlc3Q7CitEUk9QIFRZUEUgdmFydGVzdHR5cGU7CitFUlJPUjog IHR5cGUgInZhcnRlc3R0eXBlIiBkb2VzIG5vdCBleGlzdAorRFJPUCBTQ0hFTUEgdmFydGVzdDsK K1NFVCBTRUFSQ0hfUEFUSCBUTyBERUZBVUxUOworLS0gYXJyYXlzIGFyZSBzdXBwb3J0ZWQKK0NS RUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWNbXTsKK0xFVCB2YXIxID0gQVJSQVlbMS4xLDIu MV07CitMRVQgdmFyMVsxXSA9IDEwLjE7CitTRUxFQ1QgdmFyMTsKKyAgICB2YXIxICAgIAorLS0t LS0tLS0tLS0tCisgezEwLjEsMi4xfQorKDEgcm93KQorCistLSBMRVQgdGFyZ2V0IGRvZXNuJ3Qg YWxsb3cgc3JmLCBzaG91bGQgZmFpbAorTEVUIHZhcjFbZ2VuZXJhdGVfc2VyaWVzKDEsMyldID0g MTAwOworRVJST1I6ICBzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4g TEVUCitMSU5FIDE6IExFVCB2YXIxW2dlbmVyYXRlX3NlcmllcygxLDMpXSA9IDEwMDsKKyAgICAg ICAgICAgICAgICAgXgorRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gYXJyYXlzIGluc2lkZSBjb21w b3NpdGUKK0NSRUFURSBUWVBFIHQxIEFTIChhIG51bWVyaWMsIGIgbnVtZXJpY1tdKTsKK0NSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIHQxOworTEVUIHZhcjEgPSAoMTAuMSwgQVJSQVlbMC4wLCAwLjBd KTsKK0xFVCB2YXIxLmEgPSAxMC4yOworU0VMRUNUIHZhcjE7CisgICAgICAgIHZhcjEgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoMTAuMiwiezAuMCwwLjB9IikKKygxIHJvdykKKwor TEVUIHZhcjEuYlsxXSA9IDEwLjM7CitTRUxFQ1QgdmFyMTsKKyAgICAgICAgdmFyMSAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKDEwLjIsInsxMC4zLDAuMH0iKQorKDEgcm93KQor CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZUEUgdDE7CistLSBFbmNvdXJhZ2UgdXNlIG9m IHBhcmFsbGVsIHBsYW5zCitTRVQgcGFyYWxsZWxfc2V0dXBfY29zdCA9IDA7CitTRVQgcGFyYWxs ZWxfdHVwbGVfY29zdCA9IDA7CitTRVQgbWluX3BhcmFsbGVsX3RhYmxlX3NjYW5fc2l6ZSA9IDA7 CitTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhlciA9IDI7CistLSB0ZXN0IG9uIHF1 ZXJ5IHdpdGggd29ya2VycworQ1JFQVRFIFRBQkxFIHN2YXJfdGVzdChhIGludCk7CitJTlNFUlQg SU5UTyBzdmFyX3Rlc3QgU0VMRUNUICogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKTsKK0FO QUxZWkUgc3Zhcl90ZXN0OworQ1JFQVRFIFZBUklBQkxFIHplcm8gaW50OworTEVUIHplcm8gPSAw OworLS0gcmVzdWx0IHNob3VsZCBiZSAxMDAKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVz dCBXSEVSRSBhJTEwID0gemVybzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgIDEwMAorKDEgcm93KQor CistLSBwYXJhbGxlbCBleGVjdXRpb24gaXMgbm90IHN1cHBvcnRlZCB5ZXQKK0VYUExBSU4gKENP U1RTIE9GRikgU0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0IFdIRVJFIGElMTAgPSB6ZXJv OworICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAgU2VxIFNjYW4gb24gc3Zhcl90 ZXN0CisgICAgICAgICBGaWx0ZXI6ICgoYSAlIDEwKSA9IHplcm8pCisoMyByb3dzKQorCitMRVQg emVybyA9IChTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QpOworLS0gcmVzdWx0IHNob3Vs ZCBiZSAxMDAwCitTRUxFQ1QgemVybzsKKyB6ZXJvIAorLS0tLS0tCisgMTAwMAorKDEgcm93KQor CitEUk9QIFZBUklBQkxFIHplcm87CitEUk9QIFRBQkxFIHN2YXJfdGVzdDsKK1JFU0VUIHBhcmFs bGVsX3NldHVwX2Nvc3Q7CitSRVNFVCBwYXJhbGxlbF90dXBsZV9jb3N0OworUkVTRVQgbWluX3Bh cmFsbGVsX3RhYmxlX3NjYW5fc2l6ZTsKK1JFU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9n YXRoZXI7CistLSB0aGUgcmVzdWx0IG9mIHZpZXcgc2hvdWxkIGJlIHNhbWUgaW4gcGFyYWxsZWwg bW9kZSB0b28KK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0xFVCB2YXIxID0gMTA7CitD UkVBVEUgVklFVyB2YXIxdmlldyBBUyBTRUxFQ1QgQ09BTEVTQ0UodmFyMSwgMCkgQVMgcmVzdWx0 OworU0VMRUNUICogRlJPTSB2YXIxdmlldzsKKyByZXN1bHQgCistLS0tLS0tLQorICAgICAxMAor KDEgcm93KQorCitTRVQgZGVidWdfcGFyYWxsZWxfcXVlcnkgVE8gb247CitTRUxFQ1QgKiBGUk9N IHZhcjF2aWV3OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICAgIDEwCisoMSByb3cpCisKK1NFVCBk ZWJ1Z19wYXJhbGxlbF9xdWVyeSBUTyBvZmY7CitEUk9QIFZJRVcgdmFyMXZpZXc7CitEUk9QIFZB UklBQkxFIHZhcjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyaWQgaW50OworQ1JFQVRFIFRBQkxFIHN2 YXJfdGVzdChpZCBpbnQsIHYgaW50KTsKK0xFVCB2YXJpZCA9IDE7CitJTlNFUlQgSU5UTyBzdmFy X3Rlc3QgVkFMVUVTKHZhcmlkLCAxMDApOworU0VMRUNUICogRlJPTSBzdmFyX3Rlc3Q7CisgaWQg fCAgdiAgCistLS0tKy0tLS0tCisgIDEgfCAxMDAKKygxIHJvdykKKworVVBEQVRFIHN2YXJfdGVz dCBTRVQgdiA9IDIwMCBXSEVSRSBpZCA9IHZhcmlkOworU0VMRUNUICogRlJPTSBzdmFyX3Rlc3Q7 CisgaWQgfCAgdiAgCistLS0tKy0tLS0tCisgIDEgfCAyMDAKKygxIHJvdykKKworREVMRVRFIEZS T00gc3Zhcl90ZXN0IFdIRVJFIGlkID0gdmFyaWQ7CitTRUxFQ1QgKiBGUk9NIHN2YXJfdGVzdDsK KyBpZCB8IHYgCistLS0tKy0tLQorKDAgcm93cykKKworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CitE Uk9QIFZBUklBQkxFIHZhcmlkOworLS0gdmlzaWJpbGl0eSBjaGVjaworLS0gdmFyaWFibGVzIHNo b3VsZCBiZSBzaGFkb3dlZCBhbHdheXMKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRleHQ7CitT RUxFQ1QgdmFyMS5yZWxuYW1lIEZST00gcGdfY2xhc3MgdmFyMSBXSEVSRSB2YXIxLnJlbG5hbWUg PSAncGdfY2xhc3MnOworIHJlbG5hbWUgIAorLS0tLS0tLS0tLQorIHBnX2NsYXNzCisoMSByb3cp CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBUQUJMRSB4eHRhYihhdmFyIGludCk7CitJ TlNFUlQgSU5UTyB4eHRhYiBWQUxVRVMoMzMzKTsKK0NSRUFURSBUWVBFIHh4dHlwZSBBUyAoYXZh ciBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHh4dGFiIEFTIHh4dHlwZTsKK0lOU0VSVCBJTlRPIHh4 dGFiIFZBTFVFUygxMCk7CistLSBpdCBpcyBhbWJpZ3VvdXMsIGJ1dCBjb2x1bW5zIGFyZSBwcmVm ZXJyZWQKK1NFTEVDVCB4eHRhYi5hdmFyIEZST00geHh0YWI7CisgYXZhciAKKy0tLS0tLQorICAz MzMKKyAgIDEwCisoMiByb3dzKQorCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBhdmFyIEZST00g eHh0YWI7CisgYXZhciAKKy0tLS0tLQorICAzMzMKKyAgIDEwCisoMiByb3dzKQorCitDUkVBVEUg VkFSSUFCTEUgcHVibGljLmF2YXIgQVMgaW50OworLS0gc2hvdWxkIGJlIG9rLCBzZWUgdGhlIHRh YmxlCitTRUxFQ1QgYXZhciBGUk9NIHh4dGFiOworIGF2YXIgCistLS0tLS0KKyAgMzMzCisgICAx MAorKDIgcm93cykKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgcHVibGljLmF2YXIgRlJPTSB4 eHRhYjsKKyBhdmFyIAorLS0tLS0tCisgICAgIAorICAgICAKKygyIHJvd3MpCisKK0RST1AgVkFS SUFCTEUgeHh0YWI7CitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHh4dGFiOworIGF2YXIgCistLS0t LS0KKyAgMzMzCisgICAxMAorKDIgcm93cykKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMuYXZhcjsK K0RST1AgVFlQRSB4eHR5cGU7CitEUk9QIFRBQkxFIHh4dGFiOworLS0gVGhlIHZhcmlhYmxlIGNh biBiZSBzaGFkb3dlZCBieSB0YWJsZSBvciBieSBhbGlhcworQ1JFQVRFIFRZUEUgcHVibGljLnN2 YXJfdHlwZSBBUyAoYSBpbnQsIGIgaW50LCBjIGludCk7CitDUkVBVEUgVkFSSUFCTEUgcHVibGlj LnN2YXIgQVMgcHVibGljLnN2YXJfdHlwZTsKK0NSRUFURSBUQUJMRSBwdWJsaWMuc3ZhcihhIGlu dCwgYiBpbnQpOworSU5TRVJUIElOVE8gcHVibGljLnN2YXIgVkFMVUVTKDEwLCAyMCk7CitMRVQg cHVibGljLnN2YXIgPSAoMTAwLCAyMDAsIDMwMCk7CistLSBzaG91bGQgYmUgb2sKKy0tIHNob3cg dGFibGUKK1NFTEVDVCAqIEZST00gcHVibGljLnN2YXI7CisgYSAgfCBiICAKKy0tLS0rLS0tLQor IDEwIHwgMjAKKygxIHJvdykKKworU0VMRUNUIHN2YXIuYSBGUk9NIHB1YmxpYy5zdmFyOworIGEg IAorLS0tLQorIDEwCisoMSByb3cpCisKK1NFTEVDVCBzdmFyLiogRlJPTSBwdWJsaWMuc3ZhcjsK KyBhICB8IGIgIAorLS0tLSstLS0tCisgMTAgfCAyMAorKDEgcm93KQorCistLSBzaG93IHZhcmlh YmxlCitTRUxFQ1QgcHVibGljLnN2YXI7CisgICAgIHN2YXIgICAgICAKKy0tLS0tLS0tLS0tLS0t LQorICgxMDAsMjAwLDMwMCkKKygxIHJvdykKKworU0VMRUNUIHB1YmxpYy5zdmFyLmM7CisgIGMg IAorLS0tLS0KKyAzMDAKKygxIHJvdykKKworU0VMRUNUIChwdWJsaWMuc3ZhcikuKjsKKyAgYSAg fCAgYiAgfCAgYyAgCistLS0tLSstLS0tLSstLS0tLQorIDEwMCB8IDIwMCB8IDMwMAorKDEgcm93 KQorCistLSB0aGUgdmFyaWFibGUgaXMgc2hhZG93ZWQsIHJhaXNlIGVycm9yCitTRUxFQ1QgcHVi bGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworRVJST1I6ICBjb2x1bW4gc3Zhci5jIGRvZXMg bm90IGV4aXN0CitMSU5FIDE6IFNFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXI7 CisgICAgICAgICAgICAgICBeCistLSBjYW4gYmUgZml4ZWQgYnkgYWxpYXMKK1NFTEVDVCBwdWJs aWMuc3Zhci5jIEZST00gcHVibGljLnN2YXIgeDsKKyAgYyAgCistLS0tLQorIDMwMAorKDEgcm93 KQorCitTRUxFQ1Qgc3Zhci5hIEZST00gcHVibGljLnN2YXI7CisgYSAgCistLS0tCisgMTAKKygx IHJvdykKKworU0VMRUNUIHN2YXIuKiBGUk9NIHB1YmxpYy5zdmFyOworIGEgIHwgYiAgCistLS0t Ky0tLS0KKyAxMCB8IDIwCisoMSByb3cpCisKKy0tIHNob3cgdmFyaWFibGUKK1NFTEVDVCBwdWJs aWMuc3ZhcjsKKyAgICAgc3ZhciAgICAgIAorLS0tLS0tLS0tLS0tLS0tCisgKDEwMCwyMDAsMzAw KQorKDEgcm93KQorCitTRUxFQ1QgcHVibGljLnN2YXIuYzsKKyAgYyAgCistLS0tLQorIDMwMAor KDEgcm93KQorCitTRUxFQ1QgKHB1YmxpYy5zdmFyKS4qOworICBhICB8ICBiICB8ICBjICAKKy0t LS0tKy0tLS0tKy0tLS0tCisgMTAwIHwgMjAwIHwgMzAwCisoMSByb3cpCisKKy0tIHRoZSB2YXJp YWJsZSBpcyBzaGFkb3dlZCwgcmFpc2UgZXJyb3IKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00g cHVibGljLnN2YXI7CitFUlJPUjogIGNvbHVtbiBzdmFyLmMgZG9lcyBub3QgZXhpc3QKK0xJTkUg MTogU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhcjsKKyAgICAgICAgICAgICAg IF4KKy0tIGNhbiBiZSBmaXhlZCBieSBhbGlhcworU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBw dWJsaWMuc3ZhciB4OworICBjICAKKy0tLS0tCisgMzAwCisoMSByb3cpCisKK0RST1AgVkFSSUFC TEUgcHVibGljLnN2YXI7CitEUk9QIFRBQkxFIHB1YmxpYy5zdmFyOworRFJPUCBUWVBFIHB1Ymxp Yy5zdmFyX3R5cGU7CistLSBUaGUgc2VxdWVuY2UgaWRlbnQuKiBjYW5ub3QgYmUgdXNlZCBieSBy ZWZlcmVuY2UgdG8gc2Vzc2lvbiB2YXJpYWJsZSwKKy0tIGFuZCBpbiB0aGlzIGNhc2UsIHRoZXJl IGlzIG5vdCBjb2xsaXNpb24KK0NSRUFURSBTQ0hFTUEgdmFydGVzdDsKK1NFVCBTRUFSQ0hfUEFU SCBUTyB2YXJ0ZXN0OworQ1JFQVRFIFRBQkxFIHZhcnRlc3RfZm9vKGEgaW50LCBiIGludCk7CitJ TlNFUlQgSU5UTyB2YXJ0ZXN0X2ZvbyBWQUxVRVMoMTAsMjApLCAoMzAsNDApOworQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgdmFydGVzdF9mb287CitMRVQgdmFyMSA9ICgxMDAsMjAwKTsKKy0tIHNo b3VsZCB0byBmYWlsCitTRUxFQ1QgdmFyMS4qIEZST00gdmFydGVzdF9mb287CitFUlJPUjogIG1p c3NpbmcgRlJPTS1jbGF1c2UgZW50cnkgZm9yIHRhYmxlICJ2YXIxIgorTElORSAxOiBTRUxFQ1Qg dmFyMS4qIEZST00gdmFydGVzdF9mb287CisgICAgICAgICAgICAgICBeCistLSBzaG91bGQgYmUg b2sKK1NFTEVDVCB2YXIxLiogRlJPTSB2YXJ0ZXN0X2ZvbyB2YXIxOworIGEgIHwgYiAgCistLS0t Ky0tLS0KKyAxMCB8IDIwCisgMzAgfCA0MAorKDIgcm93cykKKworLS0gc2hvdWxkIHRvIGZhaWwK K1NFTEVDVCBjb3VudCh2YXIxLiopIEZST00gdmFydGVzdF9mb287CitFUlJPUjogIG1pc3Npbmcg RlJPTS1jbGF1c2UgZW50cnkgZm9yIHRhYmxlICJ2YXIxIgorTElORSAxOiBTRUxFQ1QgY291bnQo dmFyMS4qKSBGUk9NIHZhcnRlc3RfZm9vOworICAgICAgICAgICAgICAgICAgICAgXgorLS0gc2hv dWxkIGJlIG9rCitTRUxFQ1QgY291bnQodmFyMS4qKSBGUk9NIHZhcnRlc3RfZm9vIHZhcjE7Cisg Y291bnQgCistLS0tLS0tCisgICAgIDIKKygxIHJvdykKKworU0VUIFNFQVJDSF9QQVRIIFRPIERF RkFVTFQ7CitEUk9QIFNDSEVNQSB2YXJ0ZXN0IENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2Nh ZGVzIHRvIDIgb3RoZXIgb2JqZWN0cworREVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byB0YWJsZSB2 YXJ0ZXN0LnZhcnRlc3RfZm9vCitkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgdmFy dGVzdC52YXIxCitDUkVBVEUgVFlQRSBhYiBBUyAoYSBpbnRlZ2VyLCBiIGludGVnZXIpOworQ1JF QVRFIFZBUklBQkxFIHZfYWIgQVMgYWI7CitDUkVBVEUgVEFCTEUgdl9hYiAoYSBpbnRlZ2VyLCBi IGludGVnZXIpOworSU5TRVJUIElOVE8gdl9hYiBWQUxVRVMoMTAsMjApOworLS0gd2Ugc2hvdWxk IHNlZSB0YWJsZQorU0VMRUNUIHZfYWIuYSBGUk9NIHZfYWI7CisgYSAgCistLS0tCisgMTAKKygx IHJvdykKKworQ1JFQVRFIFNDSEVNQSB2X2FiOworQ1JFQVRFIFZBUklBQkxFIHZfYWIuYSBBUyBp bnRlZ2VyOworLS0gd2Ugc2hvdWxkIHNlZSB0YWJsZQorU0VMRUNUIHZfYWIuYSBGUk9NIHZfYWI7 CisgYSAgCistLS0tCisgMTAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2X2FiOworRFJPUCBU QUJMRSB2X2FiOworRFJPUCBUWVBFIGFiOworRFJPUCBWQVJJQUJMRSB2X2FiLmE7CitEUk9QIFND SEVNQSB2X2FiOworQ1JFQVRFIFRZUEUgdF9hbV90eXBlIEFTIChiIGludCk7CitDUkVBVEUgU0NI RU1BIHh4eF9hbTsKK1NFVCBzZWFyY2hfcGF0aCBUTyBwdWJsaWM7CitDUkVBVEUgVkFSSUFCTEUg eHh4X2FtIEFTIHRfYW1fdHlwZTsKK0xFVCB4eHhfYW0gPSBST1coMTApOworLS0gc2hvdWxkIGJl IG9rCitTRUxFQ1QgeHh4X2FtOworIHh4eF9hbSAKKy0tLS0tLS0tCisgKDEwKQorKDEgcm93KQor CitDUkVBVEUgVkFSSUFCTEUgeHh4X2FtLmIgQVMgaW50OworTEVUIDoiREJOQU1FIi54eHhfYW0u YiA9IDIwOworLS0gc2hvdWxkIGJlIHN0aWxsIG9rCitTRUxFQ1QgeHh4X2FtOworIHh4eF9hbSAK Ky0tLS0tLS0tCisgKDEwKQorKDEgcm93KQorCistLSBzaG91bGQgZmFpbCwgdGhlIHJlZmVyZW5j ZSBzaG91bGQgYmUgYW1iaWd1b3VzCitTRUxFQ1QgeHh4X2FtLmI7CitFUlJPUjogIHNlc3Npb24g dmFyaWFibGUgcmVmZXJlbmNlICJ4eHhfYW0uYiIgaXMgYW1iaWd1b3VzCitMSU5FIDE6IFNFTEVD VCB4eHhfYW0uYjsKKyAgICAgICAgICAgICAgIF4KKy0tIGVuaGFuY2VkIHJlZmVyZW5jZXMgc2hv dWxkIGJlIG9rCitTRUxFQ1QgcHVibGljLnh4eF9hbS5iOworIGIgIAorLS0tLQorIDEwCisoMSBy b3cpCisKK1NFTEVDVCA6IkRCTkFNRSIueHh4X2FtLmI7CisgYiAgCistLS0tCisgMjAKKygxIHJv dykKKworQ1JFQVRFIFRBQkxFIHh4eF9hbShiICBpbnQpOworSU5TRVJUIElOVE8geHh4X2FtIFZB TFVFUygxMCk7CistLSB3ZSBzaG91bGQgc2VlIHRhYmxlCitTRUxFQ1QgeHh4X2FtLmIgRlJPTSB4 eHhfYW07CisgYiAgCistLS0tCisgMTAKKygxIHJvdykKKworU0VMRUNUIHguYiBGUk9NIHh4eF9h bSB4OworIGIgIAorLS0tLQorIDEwCisoMSByb3cpCisKK0RST1AgVEFCTEUgeHh4X2FtOworRFJP UCBWQVJJQUJMRSBwdWJsaWMueHh4X2FtOworRFJPUCBWQVJJQUJMRSB4eHhfYW0uYjsKK0RST1Ag U0NIRU1BIHh4eF9hbTsKK0NSRUFURSBTQ0hFTUEgOiJEQk5BTUUiOworQ1JFQVRFIFZBUklBQkxF IDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiIEFTIHRfYW1fdHlwZTsKK0NSRUFURSBWQVJJ QUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmIgQVMgaW50OworU0VUIHNlYXJjaF9wYXRoIFRPIDoi REJOQU1FIjsKKy0tIHNob3VsZCBiZSBhbWJpZ3VvdXMKK1NFTEVDVCA6IkRCTkFNRSIuYjsKK0VS Uk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSByZWZlcmVuY2UgInJlZ3Jlc3Npb24uYiIgaXMgYW1iaWd1 b3VzCitMSU5FIDE6IFNFTEVDVCAicmVncmVzc2lvbiIuYjsKKyAgICAgICAgICAgICAgIF4KKy0t IHNob3VsZCBiZSBhbWJpZ3VvdXMgdG9vCitTRUxFQ1QgOiJEQk5BTUUiLjoiREJOQU1FIi5iOwor RVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSAicmVncmVzc2lvbi5yZWdyZXNzaW9u LmIiIGlzIGFtYmlndW91cworTElORSAxOiBTRUxFQ1QgInJlZ3Jlc3Npb24iLiJyZWdyZXNzaW9u Ii5iOworICAgICAgICAgICAgICAgXgorQ1JFQVRFIFRBQkxFIDoiREJOQU1FIihiIGludCk7Cist LSBzaG91bGQgYmUgb2sKK1NFTEVDVCA6IkRCTkFNRSIuYiBGUk9NIDoiREJOQU1FIjsKKyBiIAor LS0tCisoMCByb3dzKQorCitEUk9QIFRBQkxFIDoiREJOQU1FIjsKK0RST1AgVkFSSUFCTEUgOiJE Qk5BTUUiLjoiREJOQU1FIi5iOworRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLjoi REJOQU1FIjsKK0RST1AgU0NIRU1BIDoiREJOQU1FIjsKK1JFU0VUIHNlYXJjaF9wYXRoOwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsIGIvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4IGVlYjBmOTRjYTMu LmU3MjM2MGQ1MjUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFy aWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwKQEAgLTI5NSwzICsyOTUsODg2IEBAIERST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IxOwog RFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CiAKIERST1AgUk9MRSByZWdyZXNzX3Zhcmlh YmxlX293bmVyOworCistLSBjaGVjayBhY2Nlc3MgcmlnaHRzCitDUkVBVEUgUk9MRSByZWdyZXNz X25vb3duZXI7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKworQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04gc3FsZngoaW50KQorUkVUVVJOUyBpbnQgQVMgJCQgU0VMRUNUICQxICsg dmFyMSAkJCBMQU5HVUFHRSBzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4 X3NkKGludCkKK1JFVFVSTlMgaW50IEFTICQkIFNFTEVDVCAkMSArIHZhcjEgJCQgTEFOR1VBR0Ug c3FsIFNFQ1VSSVRZIERFRklORVI7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHBscGdz cWxmeChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBCRUdJTiBSRVRVUk4gJDEgKyB2YXIxOyBFTkQg JCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3Nx bGZ4X3NkKGludCkKK1JFVFVSTlMgaW50IEFTICQkIEJFR0lOIFJFVFVSTiAkMSArIHZhcjE7IEVO RCAkJCBMQU5HVUFHRSBwbHBnc3FsIFNFQ1VSSVRZIERFRklORVI7CisKK0xFVCB2YXIxID0gMTA7 CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworU0VMRUNUIHNxbGZ4KDIwKTsKK1NFTEVD VCBzcWxmeF9zZCgyMCk7CitTRUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKK1NFTEVDVCBwbHBnc3FsZnhf c2QoMjApOworCistLSBzaG91bGQgZmFpbAorU0VUIFJPTEUgVE8gcmVncmVzc19ub293bmVyOwor CitTRUxFQ1QgdmFyMTsKK1NFTEVDVCBzcWxmeCgyMCk7CitTRUxFQ1QgcGxwZ3NxbGZ4KDIwKTsK KworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1Qgc3FsZnhfc2QoMjApOworU0VMRUNUIHBscGdzcWxm eF9zZCgyMCk7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFC TEUgdmFyMSBUTyByZWdyZXNzX25vb3duZXI7CisKKy0tIHNob3VsZCBiZSBvaworU0VUIFJPTEUg VE8gcmVncmVzc19ub293bmVyOworCitTRUxFQ1QgdmFyMTsKK1NFTEVDVCBzcWxmeCgyMCk7CitT RUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgVkFSSUFC TEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gc3FsZngoaW50KTsKK0RST1AgRlVOQ1RJT04gcGxwZ3Nx bGZ4KGludCk7CitEUk9QIEZVTkNUSU9OIHNxbGZ4X3NkKGludCk7CitEUk9QIEZVTkNUSU9OIHBs cGdzcWxmeF9zZChpbnQpOworCitEUk9QIFJPTEUgcmVncmVzc19ub293bmVyOworCistLSB1c2Ug dmFyaWFibGVzIGluc2lkZSB2aWV3cworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpYzsK KworLS0gdXNlIHZhcmlhYmxlcyBpbiB2aWV3cworQ1JFQVRFIFZJRVcgdGVzdF92aWV3IEFTIFNF TEVDVCBDT0FMRVNDRSh2YXIxICsgdiwgMCkgQVMgcmVzdWx0IEZST00gZ2VuZXJhdGVfc2VyaWVz KDEsMikgZyh2KTsKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworTEVUIHZhcjEgPSAzLjE0Owor U0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisKKy0tIHN0YXJ0IGEgbmV3IHNlc3Npb24KK1xjCisK K1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUICogRlJP TSB0ZXN0X3ZpZXc7CisKKy0tIHNob3VsZCBmYWlsLCBkZXBlbmRlbmN5CitEUk9QIFZBUklBQkxF IHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworRFJPUCBWQVJJQUJMRSB2YXIxIENBU0NBREU7CisK K0NSRUFURSBWQVJJQUJMRSB2YXIxIHRleHQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiB0ZXh0Owor CistLSB1c2UgdmFyaWFibGVzIGluIFNRTCBmdW5jdGlvbnMKK0NSRUFURSBPUiBSRVBMQUNFIEZV TkNUSU9OIHNxbGZ4MSh2YXJjaGFyKQorUkVUVVJOUyB2YXJjaGFyIEFTICQkIFNFTEVDVCB2YXIx IHx8ICcsICcgfHwgJDEgJCQgTEFOR1VBR0Ugc3FsOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5D VElPTiBzcWxmeDIoIHZhcmNoYXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQgU0VMRUNUIHZhcjIg fHwgJywgJyB8fCAkMSAkJCBMQU5HVUFHRSBzcWw7CisKK0xFVCB2YXIxID0gJ3N0cjEnOworTEVU IHZhcjIgPSAnc3RyMic7CisKK1NFTEVDVCBzcWxmeDEoc3FsZngyKCdIZWxsbycpKTsKKworLS0g aW5saW5pbmcgaXMgYmxvY2tlZAorRVhQTEFJTiAoQ09TVFMgT0ZGLCBWRVJCT1NFKSBTRUxFQ1Qg c3FsZngxKHNxbGZ4MignSGVsbG8nKSk7CisKK0RST1AgRlVOQ1RJT04gc3FsZngxKHZhcmNoYXIp OworRFJPUCBGVU5DVElPTiBzcWxmeDIodmFyY2hhcik7CitEUk9QIFZBUklBQkxFIHZhcjE7CitE Uk9QIFZBUklBQkxFIHZhcjI7CisKKy0tIGFjY2VzcyBmcm9tIGNhY2hlZCBwbGFucyBzaG91bGQg d29yaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpYzsKK0NSRUFURSBWQVJJQUJMRSB2 YXIyIEFTIG51bWVyaWM7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHBscGdzcWxmeCgp CitSRVRVUk5TIG51bWVyaWMgQVMgJCQgQkVHSU4gUkVUVVJOIHZhcjE7IEVORCAkJCBMQU5HVUFH RSBwbHBnc3FsOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBwbHBnc3FsZngyKG51bWVy aWMpCitSRVRVUk5TIHZvaWQgQVMgJCQgQkVHSU4gTEVUIHZhcjIgPSAkMTsgRU5EICQkIExBTkdV QUdFIHBscGdzcWw7CisKK1NFVCBwbGFuX2NhY2hlX21vZGUgVE8gZm9yY2VfZ2VuZXJpY19wbGFu OworCitMRVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CitMRVQgdmFyMSA9IDMu MTQgKiAyOworU0VMRUNUIHBscGdzcWxmeCgpOworCitTRUxFQ1QgcGxwZ3NxbGZ4MigxMC4wKTsK K1NFTEVDVCB2YXIyOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7 CisKKy0tIGRlcGVuZGVuY3kgKHBsYW4gaW52YWxpZGF0aW9uKSBzaG91bGQgd29yaworQ1JFQVRF IFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpYzsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIG51bWVy aWM7CisKK0xFVCB2YXIxID0gMy4xNCAqIDM7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CitMRVQgdmFy MSA9IDMuMTQgKiA0OworU0VMRUNUIHBscGdzcWxmeCgpOworCitTRUxFQ1QgcGxwZ3NxbGZ4Migx MC4wKTsKK1NFTEVDVCB2YXIyOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZBUklBQkxF IHZhcjI7CitEUk9QIEZVTkNUSU9OIHBscGdzcWxmeCgpOworRFJPUCBGVU5DVElPTiBwbHBnc3Fs ZngyKCk7CisKKy0tIGRlcGVuZGVuY3kgb24gY29sdW1uIHR5cGUKK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIGludDsKK0NSRUFURSBUQUJMRSB0ZXN0dmFyKGEgaW50LCBiIGludCwgYyBpbnQpOwor SU5TRVJUIElOVE8gdGVzdHZhciBWQUxVRVMoMTAsMjAsMzApOworCitBTFRFUiBUQUJMRSB0ZXN0 dmFyIERST1AgQ09MVU1OIGE7CitBTFRFUiBUQUJMRSB0ZXN0dmFyIERST1AgQ09MVU1OIGI7CisK K0NSRUFURSBGVU5DVElPTiBwbHBnc3FsZngzKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4K KyAgTEVUIHZhcjEgPSAoU0VMRUNUICogRlJPTSB0ZXN0dmFyKTsKKyAgUkFJU0UgTk9USUNFICcl JywgdmFyMTsKK0VORAorJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworLS0gc2hvdWxkIGJlIG9rCitT RUxFQ1QgcGxwZ3NxbGZ4MygpOworCitBTFRFUiBUQUJMRSB0ZXN0dmFyIEFMVEVSIENPTFVNTiBj IFRZUEUgbnVtZXJpYzsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgcGxwZ3NxbGZ4MygpOwor CitEUk9QIEZVTkNUSU9OIHBscGdzcWxmeDMoKTsKK0RST1AgVEFCTEUgdGVzdHZhcjsKK0RST1Ag VkFSSUFCTEUgdmFyMTsKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBERUZBVUxUOworCistLSBy ZXBlYXRlZCBleGVjdXRpb24gc2hvdWxkIG5vdCBjcmFzaAorQ1JFQVRFIFZBUklBQkxFIHZhcjEg aW50OworQ1JFQVRFIFRBQkxFIHRlc3R2YXIoYSBpbnQpOworSU5TRVJUIElOVE8gdGVzdHZhciBW QUxVRVMoMSk7CisKK0RPICQkCitCRUdJTgorICBMRVQgdmFyMSA9IDA7CisgIEZPUiBpIElOIDEu LjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9IChTRUxFQ1QgYSBGUk9NIHRlc3R2YXIpOworICBF TkQgTE9PUDsKKyAgUkFJU0UgTk9USUNFICclJywgdmFyMTsKK0VORDsKKyQkOworCitETyAkJAor QkVHSU4KKyAgTEVUIHZhcjEgPSAwOworICBGT1IgaSBJTiAxLi4xMAorICBMT09QCisgICAgTEVU IHZhcjEgPSAoU0VMRUNUIGEgKyB2YXIxIEZST00gdGVzdHZhcik7CisgIEVORCBMT09QOworICBS QUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CisKK0RPICQkCitCRUdJTgorICBMRVQg dmFyMSA9IDA7CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9IChTRUxF Q1QgYSBGUk9NIHRlc3R2YXIpICsgdmFyMTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElDRSAn JScsIHZhcjE7CitFTkQ7CiskJDsKKworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gMDsKKyAg Rk9SIGkgSU4gMS4uMTAKKyAgTE9PUAorICAgIExFVCB2YXIxID0gaTsKKyAgRU5EIExPT1A7Cisg IFJBSVNFIE5PVElDRSAnJScsIHZhcjE7CitFTkQ7CiskJDsKKworRE8gJCQKK0JFR0lOCisgIExF VCB2YXIxID0gMDsKKyAgRk9SIGkgSU4gMS4uMTAKKyAgTE9PUAorICAgIExFVCB2YXIxID0gaSAr IHZhcjE7CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7 CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVEFCTEUgdGVzdHZhcjsKKworLS0gdXNhZ2Ug TEVUIHN0YXRlbWVudCBpbiBwbHBnc3FsIHNob3VsZCB3b3JrCitDUkVBVEUgVkFSSUFCTEUgdmFy MSBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBudW1lcmljW107CisKK0RPICQkCitCRUdJTgor ICBMRVQgdmFyMiA9ICd7fSc6OmludFtdOworICBGT1IgaSBJTiAxLi4xMAorICBMT09QCisgICAg TEVUIHZhcjEgPSBpOworICAgIExFVCB2YXIyW3ZhcjFdID0gaTsKKyAgRU5EIExPT1A7CisgIFJB SVNFIE5PVElDRSAncmVzdWx0IGFycmF5OiAlJywgdmFyMjsKK0VORDsKKyQkOworCitEUk9QIFZB UklBQkxFIHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CisKKy0tIENBTEwgc3RhdGVtZW50IGlz IG5vdCBzdXBwb3J0ZWQgeWV0CistLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24g dmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCitDUkVBVEUgVkFSSUFCTEUgdiBpbnQ7 CisKK0NSRUFURSBQUk9DRURVUkUgcChhcmcgaW50KSBBUyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0Ug JyUnLCBhcmc7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworCistLSBzaG91bGQgbm90IGNyYXNo IChidXQgaXMgbm90IHN1cHBvcnRlZCB5ZXQpCitDQUxMIHAodik7CisKK0RPICQkIEJFR0lOIENB TEwgcCh2KTsgRU5EICQkOworCitEUk9QIFBST0NFRFVSRSBwKGludCk7CitEUk9QIFZBUklBQkxF IHY7CisKKy0tIEVYRUNVVEUgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0CistLSByZXF1 aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4 ZWN1dG9yCitDUkVBVEUgVkFSSUFCTEUgdiBpbnQ7CitMRVQgdiA9IDIwOworUFJFUEFSRSBwdGVz dChpbnQpIEFTIFNFTEVDVCAkMTsKKworLS0gc2hvdWxkIGZhaWwKK0VYRUNVVEUgcHRlc3Qodik7 CisKK0RFQUxMT0NBVEUgcHRlc3Q7CitEUk9QIFZBUklBQkxFIHY7CisKKy0tIHRlc3Qgc2VhcmNo IHBhdGgKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3Q7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3Qu dmFyMSBBUyBudW1lcmljOworCistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSBwaSgpOworU0VM RUNUIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHN2YXJ0ZXN0LnZhcjEgPSBwaSgpOwor U0VMRUNUIHN2YXJ0ZXN0LnZhcjE7CisKK1NFVCBzZWFyY2hfcGF0aCBUTyBzdmFydGVzdDsKKwor LS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IHBpKCkgKyAxMDsKK1NFTEVDVCB2YXIxOworCitS RVNFVCBzZWFyY2hfcGF0aDsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0IENBU0NBREU7CisKK0NSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIHRleHQ7CisKKy0tIHZhcmlhYmxlcyBjYW4gYmUgdXBkYXRlZCB1 bmRlciBSTyB0cmFuc2FjdGlvbgorQkVHSU47CitTRVQgVFJBTlNBQ1RJT04gUkVBRCBPTkxZOwor TEVUIHZhcjEgPSAnaGVsbG8nOworQ09NTUlUOworCitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJ QUJMRSB2YXIxOworCistLSB0ZXN0IG9mIGRvbWFpbnMKK0NSRUFURSBET01BSU4gaW50X2RvbWFp biBBUyBpbnQgTk9UIE5VTEwgQ0hFQ0sgKFZBTFVFID4gMTAwKTsKK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIGludF9kb21haW47CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyMTsKKworLS0g c2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwMDA7CitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxk IGZhaWwKK0xFVCB2YXIxID0gMTA7CisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IE5VTEw7 CisKKy0tIG5vdGUgLSBkb21haW4gZGVmYXVsdHMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0IChsaWtl IFBMcGdTUUwpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRE9NQUlOIGludF9kb21haW47 CisKKy0tIHRoZSBleHByZXNzaW9uIHNob3VsZCByZW1haW4gInVua25vd24iCitDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyBpbnQ0bXVsdGlyYW5nZVtdOworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFy MSA9IE5VTEw7CitMRVQgdmFyMSA9ICd7IntbMiw4KSxbMTEsMTQpfSIsIntbNSw4KSxbMTIsMTQp fSJ9JzsKK0xFVCB2YXIxWzJdID0gJ3tbNSw4KSxbMTIsMTAwKX0nOworU0VMRUNUIHZhcjE7CisK Ky0tSXQgc2hvdWxkIHdvcmsgaW4gcGxwZ3NxbCB0b28KK0RPICQkCitCRUdJTgorICBMRVQgdmFy MSA9IE5VTEw7CisgIExFVCB2YXIxID0gJ3sie1syLDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwx NCl9In0nOworICBMRVQgdmFyMVsyXSA9ICd7WzUsOCksWzEyLDEwMCl9JzsKKworICBSQUlTRSBO T1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworQ1JF QVRFIFNDSEVNQSBzdmFydGVzdCBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgQ1JFQVRFIFRB QkxFIGZvbyhhIGludCk7CitMRVQgc3ZhcnRlc3QudmFyMSA9IDEwMDsKK1NFTEVDVCBzdmFydGVz dC52YXIxOworCitTRVQgc2VhcmNoX3BhdGggdG8gcHVibGljLCBzdmFydGVzdDsKKworU0VMRUNU IHZhcjE7CisKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0IENBU0NBREU7CisKK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGludFtdOworCitMRVQgdmFy MSA9IDI7CitMRVQgdmFyMiA9ICd7fSc6OmludFtdOworCitMRVQgdmFyMlt2YXIxXSA9IDA7CisK K1NFTEVDVCB2YXIyOworCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7CisKK0NSRUFURSBWQVJJ QUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGludFtdOworCitMRVQg dmFyMSA9IDI7CitMRVQgdmFyMiA9ICd7fSc6OmludFtdOworCitTRUxFQ1QgdmFyMjsKKworRFJP UCBWQVJJQUJMRSB2YXIxLCB2YXIyOworCistLSB0aGUgTEVUIHN0YXRlbWVudCBzaG91bGQgYmUg ZGlzYWxsb3dlZCBpbiBDVEUKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK1dJVEggeCBB UyAoTEVUIHZhcjEgPSAxMDApIFNFTEVDVCAqIEZST00geDsKKworLS0gc2hvdWxkIGJlIG9rCitM RVQgdmFyMSA9IGdlbmVyYXRlX3NlcmllcygxLCAxKTsKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2 YXIxID0gZ2VuZXJhdGVfc2VyaWVzKDEsIDIpOworTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMo MSwgMCk7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gY29tcG9zaXRlIHZhcmlhYmxlcwor Q1JFQVRFIFRZUEUgc3ZfeHl6IEFTICh4IGludCwgeSBpbnQsIHogbnVtZXJpYygxMCwyKSk7CisK K0NSRUFURSBWQVJJQUJMRSB2MSBBUyBzdl94eXo7CitDUkVBVEUgVkFSSUFCTEUgdjIgQVMgc3Zf eHl6OworCitMRVQgdjEgPSAoMSwgMiwgMy4xNCk7CitMRVQgdjIgPSAoMTAsIDIwLCAzLjE0ICog MTApOworCistLSBzaG91bGQgd29yayB0b28gLSB0aGVyZSBhcmUgcHJlcGFyZWQgY2FzdHMKK0xF VCB2MSA9ICgxLCAyLCAzKTsKKworU0VMRUNUIHYxOworU0VMRUNUIHYyOworU0VMRUNUICh2MSku KjsKK1NFTEVDVCAodjIpLio7CisKK1NFTEVDVCB2MS54ICsgdjEuejsKK1NFTEVDVCB2Mi54ICsg djIuejsKKworLS0gYWNjZXNzIHRvIGNvbXBvc2l0ZSBmaWVsZHMgc2hvdWxkIGJlIHNhZmUgdG9v CitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CisKK1NFVCBST0xFIFRPIHJlZ3Jl c3NfdmFyX3Rlc3Rfcm9sZTsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2Mi54OworCitTRVQg Uk9MRSBUTyBERUZBVUxUOworCitEUk9QIFZBUklBQkxFIHYxOworRFJPUCBWQVJJQUJMRSB2MjsK K0RST1AgVFlQRSBzdl94eXo7CitEUk9QIFJPTEUgcmVncmVzc192YXJfdGVzdF9yb2xlOworCist LSBzaG91bGQgZmFpbCwgd3JvbmcgaWRlbnRpZmllcgorTEVUIG5vZGIubm9zY2hlbWEubm92YXIu bm9maWVsZC5ub3N1YmZpZWxkID0gMTA7CitMRVQgbm9kYi5ub3NjaGVtYS5ub3Zhci5ub2ZpZWxk ID0gMTA7CitMRVQgbm9kYi5ub3NjaGVtYS5ub3ZhciA9IDEwOworCitDUkVBVEUgVFlQRSB0MSBB UyAoYSBpbnQsIGIgbnVtZXJpYywgYyB0ZXh0KTsKKworQ1JFQVRFIFZBUklBQkxFIHYxIEFTIHQx OworTEVUIHYxID0gKDEsIHBpKCksICdoZWxsbycpOworU0VMRUNUIHYxOworTEVUIHYxLmIgPSAx MC4yMjIyOworU0VMRUNUIHYxOworCistLSBzaG91bGQgZmFpbCwgYXR0cmlidXRlIGRvZXNuJ3Qg ZXhpc3QKK0xFVCB2MS54ID0gMTA7CisKKy0tIHNob3VsZCBmYWlsLCBkb24ndCBhbGxvdyBtdWx0 aSBjb2x1bW4gcXVlcnkKK0xFVCB2MSA9IChOVUxMOjp0MSkuKjsKKworLS0gYWxsb3cgRFJPUCBv ciBBREQgQVRUUklCVVRFIG9uIGNvbXBvc2l0ZSB0eXBlcworLS0gc2hvdWxkIGJlIG9rCitBTFRF UiBUWVBFIHQxIERST1AgQVRUUklCVVRFIGM7CitTRUxFQ1QgdjE7CisKKy0tIHNob3VsZCBiZSBv aworQUxURVIgVFlQRSB0MSBBREQgQVRUUklCVVRFIGMgaW50OworU0VMRUNUIHYxOworCitMRVQg djEgPSAoMTAsIDEwLjMsIDIwKTsKK1NFTEVDVCB2MTsKKworLS0gc2hvdWxkIGJlIG9rCitBTFRF UiBUWVBFIHQxIERST1AgQVRUUklCVVRFIGI7CitTRUxFQ1QgdjE7CisKKy0tIHNob3VsZCBmYWls LCBkaXNhbGxvdyBkYXRhIHR5cGUgY2hhbmdlCitBTFRFUiBUWVBFIHQxIEFMVEVSIEFUVFJJQlVU RSBjIFRZUEUgaW50OworCitEUk9QIFZBUklBQkxFIHYxOworRFJPUCBUWVBFIHQxOworCistLSB0 aGUgdGFibGUgdHlwZSBjYW4gYmUgdXNlZCBhcyBjb21wb3NpdGUgdHlwZSB0b28KK0NSRUFURSBU QUJMRSBzdmFyX3Rlc3QoYSBpbnQsIGIgbnVtZXJpYywgYyBkYXRlKTsKK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIHN2YXJfdGVzdDsKKworTEVUIHZhcjEgPSAoMTAsIHBpKCksICcyMDIzLTA1LTI2 Jyk7CitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxkIGZhaWwgZHVlIGRlcGVuZGVuY3kKK0FMVEVS IFRBQkxFIHN2YXJfdGVzdCBBTFRFUiBDT0xVTU4gYSBUWVBFIHRleHQ7CisKKy0tIHNob3VsZCBm YWlsCitEUk9QIFRBQkxFIHN2YXJfdGVzdDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBU QUJMRSBzdmFyX3Rlc3Q7CisKK0NSRUFURSBUWVBFIHZhcnRlc3RfdDEgQVMgKGEgaW50LCBiIGlu dCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJ0ZXN0X3QxOworQ1JFQVRFIFRBQkxFIHZh cnRlc3R0YWIgKHhjb2wgaW50KTsKKworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfdGVzdF9yb2xl OworCitHUkFOVCBVUERBVEUgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX3Zhcl90ZXN0X3Jv bGU7CitHUkFOVCBTRUxFQ1QgT04gVEFCTEUgdmFydGVzdHRhYiBUTyByZWdyZXNzX3Zhcl90ZXN0 X3JvbGU7CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKworLS0gc2hvdWxk IGJlIG9rCitMRVQgdmFyMSA9ICgxMCwgMjApOworTEVUIHZhcjEuYSA9IDMwOworCitETyAkJAor QkVHSU4KKyAgTEVUIHZhcjEgPSAoMTAwLCAxMDApOworICBMRVQgdmFyMS5hID0gMTAwMDsKK0VO RDsKKyQkOworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjEuYTsKK1NFTEVDVCB2YXIxOwor TEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwOworTEVUIHZhcjEuYSA9IChTRUxFQ1QgKiBGUk9NIChT RUxFQ1QgY291bnQoKikgRlJPTSB2YXJ0ZXN0dGFiIFdIRVJFIHhjb2wgPSB2YXIxLmEgKyAxMCkp OworCitETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOyBFTkQgJCQ7CitETyAkJCBC RUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxLmE7IEVORCAkJDsKK0RPICQkIEJFR0lOIExFVCB2 YXIxLmEgPSB2YXIxLmEgKyAxMDsgRU5EICQkOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworR1JB TlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc192YXJfdGVzdF9yb2xlOworU0VU IFJPTEUgVE8gcmVncmVzc192YXJfdGVzdF9yb2xlOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVD VCB2YXIxLmE7CitTRUxFQ1QgdmFyMTsKK0xFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsKK0xFVCB2 YXIxLmEgPSAoU0VMRUNUICogRlJPTSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFydGVzdHRhYiBX SEVSRSB4Y29sID0gdmFyMS5hICsgMTApKTsKKworRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICcl JywgdmFyMTsgRU5EICQkOworRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMS5hOyBF TkQgJCQ7CitETyAkJCBCRUdJTiBMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7IEVORCAkJDsKKwor U0VUIFJPTEUgVE8gREVGQVVMVDsKK1JFVk9LRSBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBGUk9N IHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9s ZTsKKworLS0gc2hvdWxkIGZhaWwgYWdhaW4KK1NFTEVDVCB2YXIxLmE7CitTRUxFQ1QgdmFyMTsK K0xFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsKK0xFVCB2YXIxLmEgPSAoU0VMRUNUICogRlJPTSAo U0VMRUNUIGNvdW50KCopIEZST00gdmFydGVzdHRhYiBXSEVSRSB4Y29sID0gdmFyMS5hICsgMTAp KTsKKworRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMTsgRU5EICQkOworRE8gJCQg QkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMS5hOyBFTkQgJCQ7CitETyAkJCBCRUdJTiBMRVQg dmFyMS5hID0gdmFyMS5hICsgMTA7IEVORCAkJDsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKwor RFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJ0ZXN0dGFiOworRFJPUCBST0xFIHJl Z3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK0RST1AgVFlQRSB2YXJ0ZXN0X3QxOworCitDUkVBVEUgVFlQ RSB2YXJ0ZXN0X3QxIEFTIChhIGludCwgYiBpbnQpOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyB0ZXh0OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgdmFydGVzdF90MTsKKworLS0gc2hvdWxk IGZhaWwKK1NFTEVDVCB2YXIxLmE7CitTRUxFQ1QgdmFyMi5jOworCitEUk9QIFZBUklBQkxFIHZh cjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CitEUk9QIFRZUEUgdmFydGVzdF90MTsKKworQ1JFQVRF IFZBUklBQkxFIHZhcjEgQVMgaW50OworCitMRVQgdmFyMSA9IDE7CitMRVQgdmFyMSA9ICcxJzsK K0xFVCB2YXIxID0gMTAuMTsKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gJzEnOjpqc29u YjsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9ICcxJzo6anNvbmI6OmludDsKKworLS0g c2hvdWxkIGZhaWwKK0xFVCB2YXIxLnggPSAxMDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCitD UkVBVEUgU0NIRU1BIHZhcnRlc3Q7CitDUkVBVEUgVFlQRSB2YXJ0ZXN0dHlwZSBBUyAodmFydGVz dCBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHZhcnRlc3QudmFydGVzdCBBUyB2YXJ0ZXN0dHlwZTsK K1NFVCBTRUFSQ0hfUEFUSCBUTyB2YXJ0ZXN0OworCistLSBzaG91bGQgZmFpbAorTEVUIHZhcnRl c3QudmFydGVzdCA9IDE7CisKK0RST1AgVkFSSUFCTEUgdmFydGVzdC52YXJ0ZXN0OworRFJPUCBU WVBFIHZhcnRlc3R0eXBlOworRFJPUCBTQ0hFTUEgdmFydGVzdDsKK1NFVCBTRUFSQ0hfUEFUSCBU TyBERUZBVUxUOworCistLSBhcnJheXMgYXJlIHN1cHBvcnRlZAorQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgbnVtZXJpY1tdOworTEVUIHZhcjEgPSBBUlJBWVsxLjEsMi4xXTsKK0xFVCB2YXIxWzFd ID0gMTAuMTsKK1NFTEVDVCB2YXIxOworCistLSBMRVQgdGFyZ2V0IGRvZXNuJ3QgYWxsb3cgc3Jm LCBzaG91bGQgZmFpbAorTEVUIHZhcjFbZ2VuZXJhdGVfc2VyaWVzKDEsMyldID0gMTAwOworCitE Uk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIGFycmF5cyBpbnNpZGUgY29tcG9zaXRlCitDUkVBVEUg VFlQRSB0MSBBUyAoYSBudW1lcmljLCBiIG51bWVyaWNbXSk7CitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyB0MTsKK0xFVCB2YXIxID0gKDEwLjEsIEFSUkFZWzAuMCwgMC4wXSk7CitMRVQgdmFyMS5h ID0gMTAuMjsKK1NFTEVDVCB2YXIxOworTEVUIHZhcjEuYlsxXSA9IDEwLjM7CitTRUxFQ1QgdmFy MTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUWVBFIHQxOworCistLSBFbmNvdXJhZ2Ug dXNlIG9mIHBhcmFsbGVsIHBsYW5zCitTRVQgcGFyYWxsZWxfc2V0dXBfY29zdCA9IDA7CitTRVQg cGFyYWxsZWxfdHVwbGVfY29zdCA9IDA7CitTRVQgbWluX3BhcmFsbGVsX3RhYmxlX3NjYW5fc2l6 ZSA9IDA7CitTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhlciA9IDI7CisKKy0tIHRl c3Qgb24gcXVlcnkgd2l0aCB3b3JrZXJzCitDUkVBVEUgVEFCTEUgc3Zhcl90ZXN0KGEgaW50KTsK K0lOU0VSVCBJTlRPIHN2YXJfdGVzdCBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEw MDApOworQU5BTFlaRSBzdmFyX3Rlc3Q7CitDUkVBVEUgVkFSSUFCTEUgemVybyBpbnQ7CitMRVQg emVybyA9IDA7CisKKy0tIHJlc3VsdCBzaG91bGQgYmUgMTAwCitTRUxFQ1QgY291bnQoKikgRlJP TSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87CisKKy0tIHBhcmFsbGVsIGV4ZWN1dGlvbiBp cyBub3Qgc3VwcG9ydGVkIHlldAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQoKikg RlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87CisKK0xFVCB6ZXJvID0gKFNFTEVDVCBj b3VudCgqKSBGUk9NIHN2YXJfdGVzdCk7CisKKy0tIHJlc3VsdCBzaG91bGQgYmUgMTAwMAorU0VM RUNUIHplcm87CisKK0RST1AgVkFSSUFCTEUgemVybzsKK0RST1AgVEFCTEUgc3Zhcl90ZXN0Owor CitSRVNFVCBwYXJhbGxlbF9zZXR1cF9jb3N0OworUkVTRVQgcGFyYWxsZWxfdHVwbGVfY29zdDsK K1JFU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemU7CitSRVNFVCBtYXhfcGFyYWxsZWxf d29ya2Vyc19wZXJfZ2F0aGVyOworCistLSB0aGUgcmVzdWx0IG9mIHZpZXcgc2hvdWxkIGJlIHNh bWUgaW4gcGFyYWxsZWwgbW9kZSB0b28KK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0xF VCB2YXIxID0gMTA7CisKK0NSRUFURSBWSUVXIHZhcjF2aWV3IEFTIFNFTEVDVCBDT0FMRVNDRSh2 YXIxLCAwKSBBUyByZXN1bHQ7CisKK1NFTEVDVCAqIEZST00gdmFyMXZpZXc7CisKK1NFVCBkZWJ1 Z19wYXJhbGxlbF9xdWVyeSBUTyBvbjsKKworU0VMRUNUICogRlJPTSB2YXIxdmlldzsKKworU0VU IGRlYnVnX3BhcmFsbGVsX3F1ZXJ5IFRPIG9mZjsKKworRFJPUCBWSUVXIHZhcjF2aWV3OworRFJP UCBWQVJJQUJMRSB2YXIxOworCitDUkVBVEUgVkFSSUFCTEUgdmFyaWQgaW50OworQ1JFQVRFIFRB QkxFIHN2YXJfdGVzdChpZCBpbnQsIHYgaW50KTsKKworTEVUIHZhcmlkID0gMTsKK0lOU0VSVCBJ TlRPIHN2YXJfdGVzdCBWQUxVRVModmFyaWQsIDEwMCk7CitTRUxFQ1QgKiBGUk9NIHN2YXJfdGVz dDsKK1VQREFURSBzdmFyX3Rlc3QgU0VUIHYgPSAyMDAgV0hFUkUgaWQgPSB2YXJpZDsKK1NFTEVD VCAqIEZST00gc3Zhcl90ZXN0OworREVMRVRFIEZST00gc3Zhcl90ZXN0IFdIRVJFIGlkID0gdmFy aWQ7CitTRUxFQ1QgKiBGUk9NIHN2YXJfdGVzdDsKKworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CitE Uk9QIFZBUklBQkxFIHZhcmlkOworCistLSB2aXNpYmlsaXR5IGNoZWNrCistLSB2YXJpYWJsZXMg c2hvdWxkIGJlIHNoYWRvd2VkIGFsd2F5cworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGV4dDsK K1NFTEVDVCB2YXIxLnJlbG5hbWUgRlJPTSBwZ19jbGFzcyB2YXIxIFdIRVJFIHZhcjEucmVsbmFt ZSA9ICdwZ19jbGFzcyc7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIFRBQkxFIHh4 dGFiKGF2YXIgaW50KTsKKworSU5TRVJUIElOVE8geHh0YWIgVkFMVUVTKDMzMyk7CisKK0NSRUFU RSBUWVBFIHh4dHlwZSBBUyAoYXZhciBpbnQpOworCitDUkVBVEUgVkFSSUFCTEUgeHh0YWIgQVMg eHh0eXBlOworCitJTlNFUlQgSU5UTyB4eHRhYiBWQUxVRVMoMTApOworCistLSBpdCBpcyBhbWJp Z3VvdXMsIGJ1dCBjb2x1bW5zIGFyZSBwcmVmZXJyZWQKK1NFTEVDVCB4eHRhYi5hdmFyIEZST00g eHh0YWI7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIGF2YXIgRlJPTSB4eHRhYjsKKworQ1JF QVRFIFZBUklBQkxFIHB1YmxpYy5hdmFyIEFTIGludDsKKworLS0gc2hvdWxkIGJlIG9rLCBzZWUg dGhlIHRhYmxlCitTRUxFQ1QgYXZhciBGUk9NIHh4dGFiOworCistLSBzaG91bGQgYmUgb2sKK1NF TEVDVCBwdWJsaWMuYXZhciBGUk9NIHh4dGFiOworCitEUk9QIFZBUklBQkxFIHh4dGFiOworCitT RUxFQ1QgeHh0YWIuYXZhciBGUk9NIHh4dGFiOworCitEUk9QIFZBUklBQkxFIHB1YmxpYy5hdmFy OworCitEUk9QIFRZUEUgeHh0eXBlOworCitEUk9QIFRBQkxFIHh4dGFiOworCistLSBUaGUgdmFy aWFibGUgY2FuIGJlIHNoYWRvd2VkIGJ5IHRhYmxlIG9yIGJ5IGFsaWFzCitDUkVBVEUgVFlQRSBw dWJsaWMuc3Zhcl90eXBlIEFTIChhIGludCwgYiBpbnQsIGMgaW50KTsKK0NSRUFURSBWQVJJQUJM RSBwdWJsaWMuc3ZhciBBUyBwdWJsaWMuc3Zhcl90eXBlOworCitDUkVBVEUgVEFCTEUgcHVibGlj LnN2YXIoYSBpbnQsIGIgaW50KTsKKworSU5TRVJUIElOVE8gcHVibGljLnN2YXIgVkFMVUVTKDEw LCAyMCk7CisKK0xFVCBwdWJsaWMuc3ZhciA9ICgxMDAsIDIwMCwgMzAwKTsKKworLS0gc2hvdWxk IGJlIG9rCistLSBzaG93IHRhYmxlCitTRUxFQ1QgKiBGUk9NIHB1YmxpYy5zdmFyOworU0VMRUNU IHN2YXIuYSBGUk9NIHB1YmxpYy5zdmFyOworU0VMRUNUIHN2YXIuKiBGUk9NIHB1YmxpYy5zdmFy OworCistLSBzaG93IHZhcmlhYmxlCitTRUxFQ1QgcHVibGljLnN2YXI7CitTRUxFQ1QgcHVibGlj LnN2YXIuYzsKK1NFTEVDVCAocHVibGljLnN2YXIpLio7CisKKy0tIHRoZSB2YXJpYWJsZSBpcyBz aGFkb3dlZCwgcmFpc2UgZXJyb3IKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2 YXI7CisKKy0tIGNhbiBiZSBmaXhlZCBieSBhbGlhcworU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJP TSBwdWJsaWMuc3ZhciB4OworCitTRUxFQ1Qgc3Zhci5hIEZST00gcHVibGljLnN2YXI7CitTRUxF Q1Qgc3Zhci4qIEZST00gcHVibGljLnN2YXI7CisKKy0tIHNob3cgdmFyaWFibGUKK1NFTEVDVCBw dWJsaWMuc3ZhcjsKK1NFTEVDVCBwdWJsaWMuc3Zhci5jOworU0VMRUNUIChwdWJsaWMuc3Zhciku KjsKKworLS0gdGhlIHZhcmlhYmxlIGlzIHNoYWRvd2VkLCByYWlzZSBlcnJvcgorU0VMRUNUIHB1 YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhcjsKKworLS0gY2FuIGJlIGZpeGVkIGJ5IGFsaWFz CitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyIHg7CisKK0RST1AgVkFSSUFC TEUgcHVibGljLnN2YXI7CitEUk9QIFRBQkxFIHB1YmxpYy5zdmFyOworRFJPUCBUWVBFIHB1Ymxp Yy5zdmFyX3R5cGU7CisKKy0tIFRoZSBzZXF1ZW5jZSBpZGVudC4qIGNhbm5vdCBiZSB1c2VkIGJ5 IHJlZmVyZW5jZSB0byBzZXNzaW9uIHZhcmlhYmxlLAorLS0gYW5kIGluIHRoaXMgY2FzZSwgdGhl cmUgaXMgbm90IGNvbGxpc2lvbgorQ1JFQVRFIFNDSEVNQSB2YXJ0ZXN0OworU0VUIFNFQVJDSF9Q QVRIIFRPIHZhcnRlc3Q7CitDUkVBVEUgVEFCTEUgdmFydGVzdF9mb28oYSBpbnQsIGIgaW50KTsK K0lOU0VSVCBJTlRPIHZhcnRlc3RfZm9vIFZBTFVFUygxMCwyMCksICgzMCw0MCk7CisKK0NSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIHZhcnRlc3RfZm9vOworTEVUIHZhcjEgPSAoMTAwLDIwMCk7CisK Ky0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgdmFyMS4qIEZST00gdmFydGVzdF9mb287CisKKy0t IHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjEuKiBGUk9NIHZhcnRlc3RfZm9vIHZhcjE7CisKKy0t IHNob3VsZCB0byBmYWlsCitTRUxFQ1QgY291bnQodmFyMS4qKSBGUk9NIHZhcnRlc3RfZm9vOwor CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBjb3VudCh2YXIxLiopIEZST00gdmFydGVzdF9mb28g dmFyMTsKKworU0VUIFNFQVJDSF9QQVRIIFRPIERFRkFVTFQ7CitEUk9QIFNDSEVNQSB2YXJ0ZXN0 IENBU0NBREU7CisKK0NSRUFURSBUWVBFIGFiIEFTIChhIGludGVnZXIsIGIgaW50ZWdlcik7CisK K0NSRUFURSBWQVJJQUJMRSB2X2FiIEFTIGFiOworCitDUkVBVEUgVEFCTEUgdl9hYiAoYSBpbnRl Z2VyLCBiIGludGVnZXIpOworSU5TRVJUIElOVE8gdl9hYiBWQUxVRVMoMTAsMjApOworCistLSB3 ZSBzaG91bGQgc2VlIHRhYmxlCitTRUxFQ1Qgdl9hYi5hIEZST00gdl9hYjsKKworQ1JFQVRFIFND SEVNQSB2X2FiOworCitDUkVBVEUgVkFSSUFCTEUgdl9hYi5hIEFTIGludGVnZXI7CisKKy0tIHdl IHNob3VsZCBzZWUgdGFibGUKK1NFTEVDVCB2X2FiLmEgRlJPTSB2X2FiOworCitEUk9QIFZBUklB QkxFIHZfYWI7CitEUk9QIFRBQkxFIHZfYWI7CitEUk9QIFRZUEUgYWI7CitEUk9QIFZBUklBQkxF IHZfYWIuYTsKK0RST1AgU0NIRU1BIHZfYWI7CisKK0NSRUFURSBUWVBFIHRfYW1fdHlwZSBBUyAo YiBpbnQpOworQ1JFQVRFIFNDSEVNQSB4eHhfYW07CisKK1NFVCBzZWFyY2hfcGF0aCBUTyBwdWJs aWM7CisKK0NSRUFURSBWQVJJQUJMRSB4eHhfYW0gQVMgdF9hbV90eXBlOworTEVUIHh4eF9hbSA9 IFJPVygxMCk7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHh4eF9hbTsKKworQ1JFQVRFIFZB UklBQkxFIHh4eF9hbS5iIEFTIGludDsKK0xFVCA6IkRCTkFNRSIueHh4X2FtLmIgPSAyMDsKKwor LS0gc2hvdWxkIGJlIHN0aWxsIG9rCitTRUxFQ1QgeHh4X2FtOworCistLSBzaG91bGQgZmFpbCwg dGhlIHJlZmVyZW5jZSBzaG91bGQgYmUgYW1iaWd1b3VzCitTRUxFQ1QgeHh4X2FtLmI7CisKKy0t IGVuaGFuY2VkIHJlZmVyZW5jZXMgc2hvdWxkIGJlIG9rCitTRUxFQ1QgcHVibGljLnh4eF9hbS5i OworU0VMRUNUIDoiREJOQU1FIi54eHhfYW0uYjsKKworQ1JFQVRFIFRBQkxFIHh4eF9hbShiICBp bnQpOworSU5TRVJUIElOVE8geHh4X2FtIFZBTFVFUygxMCk7CisKKy0tIHdlIHNob3VsZCBzZWUg dGFibGUKK1NFTEVDVCB4eHhfYW0uYiBGUk9NIHh4eF9hbTsKK1NFTEVDVCB4LmIgRlJPTSB4eHhf YW0geDsKKworRFJPUCBUQUJMRSB4eHhfYW07CitEUk9QIFZBUklBQkxFIHB1YmxpYy54eHhfYW07 CitEUk9QIFZBUklBQkxFIHh4eF9hbS5iOworRFJPUCBTQ0hFTUEgeHh4X2FtOworCitDUkVBVEUg U0NIRU1BIDoiREJOQU1FIjsKKworQ1JFQVRFIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIu OiJEQk5BTUUiIEFTIHRfYW1fdHlwZTsKK0NSRUFURSBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5B TUUiLmIgQVMgaW50OworCitTRVQgc2VhcmNoX3BhdGggVE8gOiJEQk5BTUUiOworCistLSBzaG91 bGQgYmUgYW1iaWd1b3VzCitTRUxFQ1QgOiJEQk5BTUUiLmI7CisKKy0tIHNob3VsZCBiZSBhbWJp Z3VvdXMgdG9vCitTRUxFQ1QgOiJEQk5BTUUiLjoiREJOQU1FIi5iOworCitDUkVBVEUgVEFCTEUg OiJEQk5BTUUiKGIgaW50KTsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgOiJEQk5BTUUiLmIg RlJPTSA6IkRCTkFNRSI7CisKK0RST1AgVEFCTEUgOiJEQk5BTUUiOworCitEUk9QIFZBUklBQkxF IDoiREJOQU1FIi46IkRCTkFNRSIuYjsKK0RST1AgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1F Ii46IkRCTkFNRSI7CitEUk9QIFNDSEVNQSA6IkRCTkFNRSI7CisKK1JFU0VUIHNlYXJjaF9wYXRo OwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCAzMmRiMmM2MzBlLi43MjM2MGExN2ZiIDEw MDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMTUwMSw2ICsxNTAxLDcgQEAgTGFyZ2VPYmpl Y3REZXNjCiBMYXRjaAogTGF1bmNoZXJMYXN0U3RhcnRUaW1lc0VudHJ5CiBMZXJwRnVuYworTGV0 U3RtdAogTGV4RGVzY3IKIExleGVtZUVudHJ5CiBMZXhlbWVIYXNoS2V5CkBAIC0yNjEwLDYgKzI2 MTEsNyBAQCBTZXJpYWxpemVkVHJhbnNhY3Rpb25TdGF0ZQogU2Vzc2lvbgogU2Vzc2lvbkJhY2t1 cFN0YXRlCiBTZXNzaW9uRW5kVHlwZQorU2Vzc2lvblZhcmlhYmxlVmFsdWUKIFNldENvbnN0cmFp bnRTdGF0ZQogU2V0Q29uc3RyYWludFN0YXRlRGF0YQogU2V0Q29uc3RyYWludFRyaWdnZXJEYXRh CkBAIC0yODAyLDYgKzI4MDQsOSBAQCBTdXBwb3J0UmVxdWVzdFJvd3MKIFN1cHBvcnRSZXF1ZXN0 U2VsZWN0aXZpdHkKIFN1cHBvcnRSZXF1ZXN0U2ltcGxpZnkKIFN1cHBvcnRSZXF1ZXN0V0Z1bmNN b25vdG9uaWMKK1NWYXJpYWJsZQorU1ZhcmlhYmxlRGF0YQorU1ZhcmlhYmxlU3RhdGUKIFN5bgog U3luY09wcwogU3luY1JlcENvbmZpZ0RhdGEKLS0gCjIuNDcuMQoK --0000000000008953c9062b346e70 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250108-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Disposition: attachment; filename="v20250108-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5o4agm721 RnJvbSA3MGIxYmNhZjBhYjllYjYwMGUzYzBhZTU2ZjY1NTNlZWMzOGUxNGVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTU6NDE6NTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDAx LzIyXSBFbmhhbmNpbmcgY2F0YWxvZyBmb3Igc3VwcG9ydCBzZXNzaW9uIHZhcmlhYmxlcyBhbmQK IHJlbGF0ZWQgc3VwcG9ydAoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBzeXN0ZW0gY2F0YWxv ZyB0YWJsZSBwZ192YXJpYWJsZS4gVGhpcyB0YWJsZSBob2xkcyBtZXRhZGF0YSBhYm91dApzZXNz aW9uIHZhcmlhYmxlcyBjcmVhdGVkIGJ5IGNvbW1hbmQgQ1JFQVRFIFZBUklBQkxFLCBhbmQgZHJv cHBlZCBieSBjb21tYW5kIERST1AgVkFSSUFCTEUuCkJvdGggY29tbWFuZHMgYXJlIGltcGxlbWVu dGVkIGJ5IHRoaXMgcGF0Y2guIFBvc3NpYmlsaXR5IHRvIGNoYW5nZSBvd25lciwgc2NoZW1hIG9y IHJlbmFtZS4KCkFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgY29udHJvbGxlZCBi eSBTRUxFQ1Qgb3IgVVBEQVRFIHJpZ2h0cy4gQm90aCByaWdodHMgYXJlCmludHJvZHVjZWQgYnkg dGhpcyBwYXRjaCB0b28uCgpUaGlzIHBhdGNoIGVuaGFuY2luZyBwZ19kdW1wIGFuZCBwc3FsIHRv IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMuIFRoZSBjaGFuZ2VzIGFyZSByZWxhdGVkCnRvIHN5 c3RlbSBjYXRhbG9nLgoKVGhpcyBwYXRjaCBpcyBub3Qgc2hvcnQsIGJ1dCB0aGUgY29kZSBpcyBz aW1wbGUuCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgMTIzICsrKystCiBkb2Mvc3JjL3NnbWwvZGRsLnNnbWwgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgNDAgKy0KIGRvYy9zcmMvc2dtbC9mdW5jLnNnbWwgICAgICAgICAgICAgICAgICAgICAg ICB8ICAzMiArKwogZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAgICAg IHwgIDE1ICsKIGRvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8 ICAgMyArCiAuLi4vc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwgICAgfCAg MjcgKy0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCAgICAgICAgICB8IDE3 OCArKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCAgICAgICAgICAgICAgICAg fCAgIDEgKwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwgICAgICAgICAgIHwg IDEyICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAx NDkgKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCAgICAgICAgICAg fCAxMTcgKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbCAgICAgICAgICAgICAgICAg ICB8ICAyMCArLQogZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sICAgICAgICAgICAgICAg IHwgIDEzICsKIGRvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwgICAgICAgICAgICAgICAgICB8 ICAgOCArCiBkb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgICAgICAgICAgICAgICAgICAgfCAg IDMgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgIHwgICAx ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICAgICB8ICA3NyAr KysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyAgICAgICAgICAgICAgfCAgIDYg Kwogc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgIHwgICAxICsK IHNyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgICAgICAgICAgICAgICB8IDIyMSArKysr KysrKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jICAgICAgICAgICB8IDEy MSArKysrLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jICAgICAgICAgICAgIHwg ICAyICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8IDI1 MSArKysrKysrKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jICAgICAgICAgICAgICAg ICAgfCAgIDkgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYyAgICAgICAgICAgICAg IHwgICA0ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYyAgICAgICAgICB8 ICAgNCArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jICAgICAgICAgICAgICAgfCAg IDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgIDQx ICsrCiBzcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jICAgICAgICAgICAgICAgfCAgMTUg Kwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgMTA1ICsr KystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jICAgICAgICAgICAgfCAgMTIg Kwogc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgIDIwICsK IHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYyAgICAgICAgICAgICAgICAgICB8IDIyMSArKysr KysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jICAgICAgICAgICB8IDEx MyArKysrKwogc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jICAgICAgICAgICAgICAgICAgICAgIHwg ICAzICsKIHNyYy9iaW4vcGdfZHVtcC9kdW1wdXRpbHMuYyAgICAgICAgICAgICAgICAgICB8ICAg NiArCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmggICAgICAgICAgICAgICAgICAgfCAgIDIg Kwogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jICAgICAgICAgIHwgICA5ICsK IHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDE5NSArKysr KysrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDE5 ICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyAgICAgICAgICAgICAgICB8ICAgNiAr CiBzcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAgICAgfCAgNjQgKysr CiBzcmMvYmluL3BzcWwvY29tbWFuZC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwog c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMTAwICsrKy0K IHNyYy9iaW4vcHNxbC9kZXNjcmliZS5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBz cmMvYmluL3BzcWwvaGVscC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDQzICstCiBzcmMv aW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIHNyYy9p bmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5j bHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAyMyArCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgODEgKysrKwogc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgIDE2ICsKIHNyYy9pbmNsdWRlL3Bh cnNlci9rd2xpc3QuaCAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS90Y29w L2NtZHRhZ2xpc3QuaCAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvdXRpbHMv YWNsLmggICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3V0aWxzL2xz eXNjYWNoZS5oICAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2RlcGVuZGVuY3kub3V0ICAgICAgfCAgMTcgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9vaWRqb2lucy5vdXQgICAgICAgIHwgICA0ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cHNxbC5vdXQgICAgICAgICAgICB8ICA1MCArKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0ICAgIHwgNDMzICsrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVn cmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9kZXBlbmRlbmN5LnNxbCAgICAgICAgICAgfCAgMTQgKwogc3JjL3Rlc3QvcmVncmVz cy9zcWwvcHNxbC5zcWwgICAgICAgICAgICAgICAgIHwgIDIxICsKIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDI5NyArKysrKysrKysrKysKIHNyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgNCArCiA2NyBmaWxlcyBj aGFuZ2VkLCAzMzcxIGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg MTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUg MTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbAppbmRleCBjYzZjZjliZWYwLi42YmJjNmM3ZTI4IDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApA QCAtMzY5LDYgKzM2OSwxMSBAQAogICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ct cGctdXNlci1tYXBwaW5nIj48c3RydWN0bmFtZT5wZ191c2VyX21hcHBpbmc8L3N0cnVjdG5hbWU+ PC9saW5rPjwvZW50cnk+CiAgICAgICA8ZW50cnk+bWFwcGluZ3Mgb2YgdXNlcnMgdG8gZm9yZWln biBzZXJ2ZXJzPC9lbnRyeT4KICAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXZhcmlhYmxlIj48c3RydWN0bmFtZT5wZ192YXJp YWJsZTwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5zZXNzaW9uIHZh cmlhYmxlczwvZW50cnk+CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4K ICAgPC90YWJsZT4KQEAgLTMzMjgsNyArMzMzMyw4IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2Vh YmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZs CiAgICAgICAgPGxpdGVyYWw+UzwvbGl0ZXJhbD4gPSBzZXF1ZW5jZSwKICAgICAgICA8bGl0ZXJh bD5mPC9saXRlcmFsPiA9IGZ1bmN0aW9uLAogICAgICAgIDxsaXRlcmFsPlQ8L2xpdGVyYWw+ID0g dHlwZSwKLSAgICAgICA8bGl0ZXJhbD5uPC9saXRlcmFsPiA9IHNjaGVtYQorICAgICAgIDxsaXRl cmFsPm48L2xpdGVyYWw+ID0gc2NoZW1hLAorICAgICAgIDxsaXRlcmFsPlY8L2xpdGVyYWw+ID0g c2Vzc2lvbiB2YXJpYWJsZQogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCkBA IC05NzMyLDQgKzk3MzgsMTE5IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVy YXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgIDwvdGFibGU+ CiAgPC9zZWN0MT4KIAorIDxzZWN0MSBpZD0iY2F0YWxvZy1wZy12YXJpYWJsZSI+CisgIDx0aXRs ZT48c3RydWN0bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRl eHRlcm0gem9uZT0iY2F0YWxvZy1wZy12YXJpYWJsZSI+CisgICA8cHJpbWFyeT5wZ192YXJpYWJs ZTwvcHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxvZyA8 c3RydWN0bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT4gc3RvcmVzIGluZm9ybWF0aW9uIGFi b3V0CisgICBzZXNzaW9uIHZhcmlhYmxlcy4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0 aXRsZT48c3RydWN0bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+ CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+Cisg ICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlmaWVyCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcnR5cGU8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5 cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy10eXBlIj48 c3RydWN0bmFtZT5wZ190eXBlPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwv c3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIE9J RCBvZiB0aGUgdmFyaWFibGUncyBkYXRhIHR5cGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+dmFybmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcm5hbWVzcGFjZTwvc3RydWN0ZmllbGQ+IDx0eXBl Pm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBn LW5hbWVzcGFjZSI+PHN0cnVjdG5hbWU+cGdfbmFtZXNwYWNlPC9zdHJ1Y3RuYW1lPjwvbGluaz4u PHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgVGhlIE9JRCBvZiB0aGUgbmFtZXNwYWNlIHRoYXQgY29udGFpbnMgdGhpcyB2 YXJpYWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJvd25lcjwvc3RydWN0Zmll bGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJj YXRhbG9nLXBnLWF1dGhpZCI+PHN0cnVjdG5hbWU+cGdfYXV0aGlkPC9zdHJ1Y3RuYW1lPjwvbGlu az4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgT3duZXIgb2YgdGhlIHZhcmlhYmxlCisgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPnZhcnR5cG1vZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFydHlwbW9kPC9z dHJ1Y3RmaWVsZD4gcmVjb3JkcyB0eXBlLXNwZWNpZmljIGRhdGEKKyAgICAgICBzdXBwbGllZCBh dCB2YXJpYWJsZSBjcmVhdGlvbiB0aW1lIChmb3IgZXhhbXBsZSwgdGhlIG1heGltdW0KKyAgICAg ICBsZW5ndGggb2YgYSA8dHlwZT52YXJjaGFyPC90eXBlPiBjb2x1bW4pLiAgSXQgaXMgcGFzc2Vk IHRvCisgICAgICAgdHlwZS1zcGVjaWZpYyBpbnB1dCBmdW5jdGlvbnMgYW5kIGxlbmd0aCBjb2Vy Y2lvbiBmdW5jdGlvbnMuCisgICAgICAgVGhlIHZhbHVlIHdpbGwgZ2VuZXJhbGx5IGJlIC0xIGZv ciB0eXBlcyB0aGF0IGRvIG5vdCBuZWVkIDxzdHJ1Y3RmaWVsZD52YXJ0eXBtb2Q8L3N0cnVjdGZp ZWxkPi4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyY29sbGF0aW9uPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9 ImNhdGFsb2ctcGctY29sbGF0aW9uIj48c3RydWN0bmFtZT5wZ19jb2xsYXRpb248L3N0cnVjdG5h bWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgZGVmaW5lZCBjb2xsYXRpb24gb2YgdGhlIHZhcmlh YmxlLCBvciB6ZXJvIGlmIHRoZSB2YXJpYWJsZSBpcworICAgICAgIG5vdCBvZiBhIGNvbGxhdGFi bGUgZGF0YSB0eXBlLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJhY2w8L3N0cnVj dGZpZWxkPiA8dHlwZT5hY2xpdGVtW108L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBBY2Nlc3MgcHJpdmlsZWdlczsgc2VlCisgICAgICAgPHhyZWYgbGlua2VuZD0i c3FsLWdyYW50Ii8+IGFuZAorICAgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1yZXZva2UiLz4KKyAg ICAgICBmb3IgZGV0YWlscworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisg ICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CiA8L2NoYXB0 ZXI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRs LnNnbWwKaW5kZXggZGVhMDRkNjRkYi4uNGY3OWM2NzZjMyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtMTk5Myw2ICsxOTkz LDcgQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBVQkxJQzsKICAgICAgICBGb3Igc2Vx dWVuY2VzLCB0aGlzIHByaXZpbGVnZSBhbHNvIGFsbG93cyB1c2Ugb2YgdGhlCiAgICAgICAgPGZ1 bmN0aW9uPmN1cnJ2YWw8L2Z1bmN0aW9uPiBmdW5jdGlvbi4KICAgICAgICBGb3IgbGFyZ2Ugb2Jq ZWN0cywgdGhpcyBwcml2aWxlZ2UgYWxsb3dzIHRoZSBvYmplY3QgdG8gYmUgcmVhZC4KKyAgICAg ICBGb3Igc2Vzc2lvbiB2YXJpYWJsZXMsIHRoaXMgIHByaXZpbGVnZSBhbGxvd3MgdGhlIG9iamVj dCB0byBiZSByZWFkLgogICAgICAgPC9wYXJhPgogICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFy bGlzdGVudHJ5PgpAQCAtMjAyOCw2ICsyMDI5LDggQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50cyBG Uk9NIFBVQkxJQzsKICAgICAgICA8ZnVuY3Rpb24+c2V0dmFsPC9mdW5jdGlvbj4gZnVuY3Rpb25z LgogICAgICAgIEZvciBsYXJnZSBvYmplY3RzLCB0aGlzIHByaXZpbGVnZSBhbGxvd3Mgd3JpdGlu ZyBvciB0cnVuY2F0aW5nIHRoZQogICAgICAgIG9iamVjdC4KKyAgICAgICBGb3Igc2Vzc2lvbiB2 YXJpYWJsZXMsIHRoaXMgcHJpdmlsZWdlIGFsbG93cyB0byBzZXQgYSB2YWx1ZSB0byB0aGUKKyAg ICAgICBvYmplY3QuCiAgICAgICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJs aXN0ZW50cnk+CkBAIC0yMjcxLDcgKzIyNzQsOCBAQCBSRVZPS0UgQUxMIE9OIGFjY291bnRzIEZS T00gUFVCTElDOwogICAgICAgIDxsaXRlcmFsPkxBUkdFIE9CSkVDVDwvbGl0ZXJhbD4sCiAgICAg ICAgPGxpdGVyYWw+U0VRVUVOQ0U8L2xpdGVyYWw+LAogICAgICAgIDxsaXRlcmFsPlRBQkxFPC9s aXRlcmFsPiAoYW5kIHRhYmxlLWxpa2Ugb2JqZWN0cyksCi0gICAgICAgdGFibGUgY29sdW1uCisg ICAgICAgdGFibGUgY29sdW1uLAorICAgICAgIDxsaXRlcmFsPlNFU1NJT04gVkFSSUFCTEU8L2xp dGVyYWw+CiAgICAgICA8L2VudHJ5PgogICAgICA8L3Jvdz4KICAgICAgPHJvdz4KQEAgLTIyODYs NyArMjI5MCw4IEBAIFJFVk9LRSBBTEwgT04gYWNjb3VudHMgRlJPTSBQVUJMSUM7CiAgICAgICAg PGxpdGVyYWw+TEFSR0UgT0JKRUNUPC9saXRlcmFsPiwKICAgICAgICA8bGl0ZXJhbD5TRVFVRU5D RTwvbGl0ZXJhbD4sCiAgICAgICAgPGxpdGVyYWw+VEFCTEU8L2xpdGVyYWw+LAotICAgICAgIHRh YmxlIGNvbHVtbgorICAgICAgIHRhYmxlIGNvbHVtbiwKKyAgICAgICA8bGl0ZXJhbD5TRVNTSU9O IFZBUklBQkxFPC9saXRlcmFsPgogICAgICAgPC9lbnRyeT4KICAgICAgPC9yb3c+CiAgICAgIDxy b3c+CkBAIC0yNDczLDYgKzI0NzgsMTIgQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBV QkxJQzsKICAgICAgIDxlbnRyeT48bGl0ZXJhbD5VPC9saXRlcmFsPjwvZW50cnk+CiAgICAgICA8 ZW50cnk+PGxpdGVyYWw+XGRUKzwvbGl0ZXJhbD48L2VudHJ5PgogICAgICA8L3Jvdz4KKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD5TRVNTSU9OIFZBUklBQkxFPC9saXRlcmFsPjwv ZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+cnc8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAg IDxlbnRyeT48bGl0ZXJhbD5ub25lPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxp dGVyYWw+XGRWKzwvbGl0ZXJhbD48L2VudHJ5PgorICAgICA8L3Jvdz4KICAgICA8L3Rib2R5Pgog ICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CkBAIC01MzIzLDYgKzUzMzQsMzEgQEAgRVhQTEFJTiBT RUxFQ1QgY291bnQoKikgRlJPTSBtZWFzdXJlbWVudCBXSEVSRSBsb2dkYXRlICZndDs9IERBVEUg JzIwMDgtMDEtMDEnOwogICAgPC9wYXJhPgogIDwvc2VjdDE+CiAKKyAgPHNlY3QxIGlkPSJkZGwt c2Vzc2lvbi12YXJpYWJsZXMiPgorICAgPHRpdGxlPlNlc3Npb24gVmFyaWFibGVzPC90aXRsZT4K KworICAgPGluZGV4dGVybSB6b25lPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiPgorICAgIDxwcmlt YXJ5PlNlc3Npb24gdmFyaWFibGVzPC9wcmltYXJ5PgorICAgPC9pbmRleHRlcm0+CisKKyAgIDxp bmRleHRlcm0+CisgICAgPHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgIDwv aW5kZXh0ZXJtPgorCisgICA8cGFyYT4KKyAgICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgZGF0YWJh c2Ugb2JqZWN0cyB0aGF0IGNhbiBob2xkIGEgdmFsdWUuCisgICAgU2Vzc2lvbiB2YXJpYWJsZXMs IGxpa2UgcmVsYXRpb25zLCBleGlzdCB3aXRoaW4gYSBzY2hlbWEgYW5kIHRoZWlyIGFjY2Vzcwor ICAgIGlzIGNvbnRyb2xsZWQgdmlhIDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBhbmQgPGNvbW1h bmQ+UkVWT0tFPC9jb21tYW5kPgorICAgIGNvbW1hbmRzLiAgQSBzZXNzaW9uIHZhcmlhYmxlIGNh biBiZSBjcmVhdGVkIGJ5IHRoZSA8Y29tbWFuZD5DUkVBVEUKKyAgICBWQVJJQUJMRTwvY29tbWFu ZD4gY29tbWFuZC4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgVGhlIHNlc3Npb24gdmFy aWFibGUgaG9sZHMgdmFsdWUgaW4gc2Vzc2lvbiBtZW1vcnkuICBUaGlzIHZhbHVlIGlzIHByaXZh dGUKKyAgICB0byBlYWNoIHNlc3Npb24gYW5kIGlzIHJlbGVhc2VkIHdoZW4gdGhlIHNlc3Npb24g ZW5kcy4KKyAgIDwvcGFyYT4KKyAgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0iZGRsLW90aGVycyI+ CiAgIDx0aXRsZT5PdGhlciBEYXRhYmFzZSBPYmplY3RzPC90aXRsZT4KIApkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbCBiL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwKaW5kZXggNDcz NzBlNTgxYS4uM2Y1ZDhjOTc3ZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCkBAIC0yNTI4Niw2ICsyNTI4NiwyNSBAQCBTRUxF Q1QgaGFzX2Z1bmN0aW9uX3ByaXZpbGVnZSgnam9ldXNlcicsICdteWZ1bmMoaW50LCB0ZXh0KScs ICdleGVjdXRlJyk7CiAgICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4KIAorICAg ICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iZnVuY19zaWduYXR1cmUiPgorICAgICAgICA8aW5kZXh0ZXJtPgorICAgICAgICAgPHByaW1h cnk+aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlPC9wcmltYXJ5PgorICAgICAgICA8L2lu ZGV4dGVybT4KKyAgICAgICAgPGZ1bmN0aW9uPmhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZTwvZnVuY3Rpb24+ICgKKyAgICAgICAgICA8b3B0aW9uYWw+IDxwYXJhbWV0ZXI+dXNlcjwvcGFy YW1ldGVyPiA8dHlwZT5uYW1lPC90eXBlPiBvciA8dHlwZT5vaWQ8L3R5cGU+LCA8L29wdGlvbmFs PgorICAgICAgICAgIDxwYXJhbWV0ZXI+c2Vzc2lvbl92YXJpYWJsZTwvcGFyYW1ldGVyPiA8dHlw ZT50ZXh0PC90eXBlPiBvciA8dHlwZT5vaWQ8L3R5cGU+LAorICAgICAgICAgIDxwYXJhbWV0ZXI+ cHJpdmlsZWdlPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+ICkKKyAgICAgICAgPHJldHVy bnZhbHVlPmJvb2xlYW48L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFy YT4KKyAgICAgICAgRG9lcyB1c2VyIGhhdmUgcHJpdmlsZWdlIGZvciBzZXNzaW9uIHZhcmlhYmxl PworICAgICAgICBBbGxvd2FibGUgcHJpdmlsZWdlIHR5cGVzIGFyZQorICAgICAgICA8bGl0ZXJh bD5TRUxFQ1Q8L2xpdGVyYWw+LCBhbmQKKyAgICAgICAgPGxpdGVyYWw+VVBEQVRFPC9saXRlcmFs Pi4KKyAgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgIDwvcm93PgorCiAgICAgICA8cm93Pgog ICAgICAgIDxlbnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3Np Z25hdHVyZSI+CiAgICAgICAgIDxpbmRleHRlcm0+CkBAIC0yNTc5NCw2ICsyNTgxMywxOSBAQCBT RUxFQ1QgcmVsbmFtZSBGUk9NIHBnX2NsYXNzIFdIRVJFIHBnX3RhYmxlX2lzX3Zpc2libGUob2lk KTsKICAgICAgICAgSXMgdHlwZSAob3IgZG9tYWluKSB2aXNpYmxlIGluIHNlYXJjaCBwYXRoPwog ICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICAgPC9yb3c+CisKKyAgICAgIDxyb3c+CisgICAg ICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0 dXJlIj4KKyAgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAgIDxwcmltYXJ5PnBnX3ZhcmlhYmxl X2lzX3Zpc2libGU8L3ByaW1hcnk+CisgICAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgICA8ZnVu Y3Rpb24+cGdfdmFyaWFibGVfaXNfdmlzaWJsZTwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj52YXJp YWJsZTwvcGFyYW1ldGVyPiA8dHlwZT5vaWQ8L3R5cGU+ICkKKyAgICAgICAgPHJldHVybnZhbHVl PmJvb2xlYW48L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAg ICAgICAgSXMgc2Vzc2lvbiB2YXJpYWJsZSB2aXNpYmxlIGluIHNlYXJjaCBwYXRoPworICAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICAgPC9yb3c+CiAgICAgIDwvdGJvZHk+CiAgICAgPC90Z3Jv dXA+CiAgICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwg Yi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAppbmRleCBmNTRmMjVjMWM2Li5kMGNiNTM3NjNh IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvZ2xvc3Nhcnkuc2dtbApAQCAtMTY2NCw2ICsxNjY0LDIxIEBACiAgICA8L2dsb3NzZGVmPgog ICA8L2dsb3NzZW50cnk+CiAKKyAgPGdsb3NzZW50cnkgaWQ9Imdsb3NzYXJ5LXNlc3Npb24tdmFy aWFibGUiPgorICAgPGdsb3NzdGVybT5TZXNzaW9uIHZhcmlhYmxlPC9nbG9zc3Rlcm0+CisgICA8 Z2xvc3NkZWY+CisgICAgPHBhcmE+CisgICAgIEEgcGVyc2lzdGVudCBkYXRhYmFzZSBvYmplY3Qg dGhhdCBob2xkcyBhIHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAgVGhpcworICAgICB2YWx1ZSBp cyBwcml2YXRlIHRvIGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVsZWFzZWQgd2hlbiB0aGUgc2Vzc2lv biBlbmRzLgorICAgICBSZWFkIG9yIHdyaXRlIGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBp cyBjb250cm9sbGVkIGJ5IHByaXZpbGVnZXMsCisgICAgIHNpbWlsYXIgdG8gb3RoZXIgZGF0YWJh c2Ugb2JqZWN0cy4KKyAgICA8L3BhcmE+CisgICAgPHBhcmE+CisgICAgIEZvciBtb3JlIGluZm9y bWF0aW9uLCBzZWUgPHhyZWYgbGlua2VuZD0iZGRsLXNlc3Npb24tdmFyaWFibGVzIi8+LgorICAg IDwvcGFyYT4KKyAgIDwvZ2xvc3NkZWY+CisgIDwvZ2xvc3NlbnRyeT4KKwogICA8Z2xvc3NlbnRy eSBpZD0iZ2xvc3Nhcnktc2hhcmVkLW1lbW9yeSI+CiAgICA8Z2xvc3N0ZXJtPlNoYXJlZCBtZW1v cnk8L2dsb3NzdGVybT4KICAgIDxnbG9zc2RlZj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9y ZWYvYWxsZmlsZXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAppbmRleCBm NWJlNjM4ODY3Li4yZjY3ZGUzZTIxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZp bGVzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCkBAIC00Nyw2ICs0 Nyw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNnbWwgc291cmNlIGZpbGVzIGluIHRoaXMg ZGlyZWN0b3J5LgogPCFFTlRJVFkgYWx0ZXJUeXBlICAgICAgICAgIFNZU1RFTSAiYWx0ZXJfdHlw ZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyVXNlciAgICAgICAgICBTWVNURU0gImFsdGVyX3VzZXIu c2dtbCI+CiA8IUVOVElUWSBhbHRlclVzZXJNYXBwaW5nICAgU1lTVEVNICJhbHRlcl91c2VyX21h cHBpbmcuc2dtbCI+Cis8IUVOVElUWSBhbHRlclZhcmlhYmxlICAgICAgU1lTVEVNICJhbHRlcl92 YXJpYWJsZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyVmlldyAgICAgICAgICBTWVNURU0gImFsdGVy X3ZpZXcuc2dtbCI+CiA8IUVOVElUWSBhbmFseXplICAgICAgICAgICAgU1lTVEVNICJhbmFseXpl LnNnbWwiPgogPCFFTlRJVFkgYmVnaW4gICAgICAgICAgICAgIFNZU1RFTSAiYmVnaW4uc2dtbCI+ CkBAIC05OSw2ICsxMDAsNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBm aWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZIGNyZWF0ZVR5cGUgICAgICAgICBTWVNU RU0gImNyZWF0ZV90eXBlLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlVXNlciAgICAgICAgIFNZU1RF TSAiY3JlYXRlX3VzZXIuc2dtbCI+CiA8IUVOVElUWSBjcmVhdGVVc2VyTWFwcGluZyAgU1lTVEVN ICJjcmVhdGVfdXNlcl9tYXBwaW5nLnNnbWwiPgorPCFFTlRJVFkgY3JlYXRlVmFyaWFibGUgICAg IFNZU1RFTSAiY3JlYXRlX3ZhcmlhYmxlLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlVmlldyAgICAg ICAgIFNZU1RFTSAiY3JlYXRlX3ZpZXcuc2dtbCI+CiA8IUVOVElUWSBkZWFsbG9jYXRlICAgICAg ICAgU1lTVEVNICJkZWFsbG9jYXRlLnNnbWwiPgogPCFFTlRJVFkgZGVjbGFyZSAgICAgICAgICAg IFNZU1RFTSAiZGVjbGFyZS5zZ21sIj4KQEAgLTE0Nyw2ICsxNDksNyBAQCBDb21wbGV0ZSBsaXN0 IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZ IGRyb3BUeXBlICAgICAgICAgICBTWVNURU0gImRyb3BfdHlwZS5zZ21sIj4KIDwhRU5USVRZIGRy b3BVc2VyICAgICAgICAgICBTWVNURU0gImRyb3BfdXNlci5zZ21sIj4KIDwhRU5USVRZIGRyb3BV c2VyTWFwcGluZyAgICBTWVNURU0gImRyb3BfdXNlcl9tYXBwaW5nLnNnbWwiPgorPCFFTlRJVFkg ZHJvcFZhcmlhYmxlICAgICAgIFNZU1RFTSAiZHJvcF92YXJpYWJsZS5zZ21sIj4KIDwhRU5USVRZ IGRyb3BWaWV3ICAgICAgICAgICBTWVNURU0gImRyb3Bfdmlldy5zZ21sIj4KIDwhRU5USVRZIGVu ZCAgICAgICAgICAgICAgICBTWVNURU0gImVuZC5zZ21sIj4KIDwhRU5USVRZIGV4ZWN1dGUgICAg ICAgICAgICBTWVNURU0gImV4ZWN1dGUuc2dtbCI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cmVmL2FsdGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRl cl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbAppbmRleCA4OWFhY2VjNGZhLi5hNTg1MmQzMjU2IDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwKQEAg LTUxLDYgKzUxLDExIEBAIEdSQU5UIHsgeyBVU0FHRSB8IENSRUFURSB9CiAgICAgT04gU0NIRU1B UwogICAgIFRPIHsgWyBHUk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xl X25hbWU8L3JlcGxhY2VhYmxlPiB8IFBVQkxJQyB9IFssIC4uLl0gWyBXSVRIIEdSQU5UIE9QVElP TiBdCiAKK0dSQU5UIHsgeyBTRUxFQ1QgfCBVUERBVEUgfQorICAgIFssIC4uLl0gfCBBTEwgWyBQ UklWSUxFR0VTIF0gfQorICAgIE9OIFZBUklBQkxFUworICAgIFRPIHsgWyBHUk9VUCBdIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiB8IFBVQkxJ QyB9IFssIC4uLl0gWyBXSVRIIEdSQU5UIE9QVElPTiBdCisKIFJFVk9LRSBbIEdSQU5UIE9QVElP TiBGT1IgXQogICAgIHsgeyBTRUxFQ1QgfCBJTlNFUlQgfCBVUERBVEUgfCBERUxFVEUgfCBUUlVO Q0FURSB8IFJFRkVSRU5DRVMgfCBUUklHR0VSIHwgTUFJTlRBSU4gfQogICAgIFssIC4uLl0gfCBB TEwgWyBQUklWSUxFR0VTIF0gfQpAQCAtODMsNiArODgsMTIgQEAgUkVWT0tFIFsgR1JBTlQgT1BU SU9OIEZPUiBdCiAgICAgT04gU0NIRU1BUwogICAgIEZST00geyBbIEdST1VQIF0gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IHwgUFVCTElDIH0g WywgLi4uXQogICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKworUkVWT0tFIFsgR1JBTlQgT1BU SU9OIEZPUiBdCisgICAgeyB7IFNFTEVDVCB8IFVQREFURSB9IFssIC4uLl0gfCBBTEwgWyBQUklW SUxFR0VTIF0gfQorICAgIE9OIFZBUklBQkxFUworICAgIEZST00geyBbIEdST1VQIF0gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IHwgUFVCTElD IH0gWywgLi4uXQorICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KIDwvc3lub3BzaXM+CiAgPC9y ZWZzeW5vcHNpc2Rpdj4KIApAQCAtMTE3LDE0ICsxMjgsMTQgQEAgUkVWT0tFIFsgR1JBTlQgT1BU SU9OIEZPUiBdCiAgIDxwYXJhPgogICAgQ3VycmVudGx5LAogICAgb25seSB0aGUgcHJpdmlsZWdl cyBmb3Igc2NoZW1hcywgdGFibGVzIChpbmNsdWRpbmcgdmlld3MgYW5kIGZvcmVpZ24KLSAgIHRh YmxlcyksIHNlcXVlbmNlcywgZnVuY3Rpb25zLCBhbmQgdHlwZXMgKGluY2x1ZGluZyBkb21haW5z KSBjYW4gYmUKLSAgIGFsdGVyZWQuICBGb3IgdGhpcyBjb21tYW5kLCBmdW5jdGlvbnMgaW5jbHVk ZSBhZ2dyZWdhdGVzIGFuZCBwcm9jZWR1cmVzLgotICAgVGhlIHdvcmRzIDxsaXRlcmFsPkZVTkNU SU9OUzwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBhcmUKLSAgIGVx dWl2YWxlbnQgaW4gdGhpcyBjb21tYW5kLiAgKDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBp cyBwcmVmZXJyZWQKLSAgIGdvaW5nIGZvcndhcmQgYXMgdGhlIHN0YW5kYXJkIHRlcm0gZm9yIGZ1 bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyB0YWtlbgotICAgdG9nZXRoZXIuICBJbiBlYXJsaWVyIFBv c3RncmVTUUwgcmVsZWFzZXMsIG9ubHkgdGhlCi0gICB3b3JkIDxsaXRlcmFsPkZVTkNUSU9OUzwv bGl0ZXJhbD4gd2FzIGFsbG93ZWQuICBJdCBpcyBub3QgcG9zc2libGUgdG8gc2V0Ci0gICBkZWZh dWx0IHByaXZpbGVnZXMgZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyBzZXBhcmF0ZWx5LikK KyAgIHRhYmxlcyksIHNlcXVlbmNlcywgZnVuY3Rpb25zLCB0eXBlcyAoaW5jbHVkaW5nIGRvbWFp bnMpLCBhbmQgc2Vzc2lvbgorICAgdmFyaWFibGVzIGNhbiBiZSBhbHRlcmVkLiAgRm9yIHRoaXMg Y29tbWFuZCwgZnVuY3Rpb25zIGluY2x1ZGUgYWdncmVnYXRlcworICAgYW5kIHByb2NlZHVyZXMu ICBUaGUgd29yZHMgPGxpdGVyYWw+RlVOQ1RJT05TPC9saXRlcmFsPiBhbmQKKyAgIDxsaXRlcmFs PlJPVVRJTkVTPC9saXRlcmFsPiBhcmUgZXF1aXZhbGVudCBpbiB0aGlzIGNvbW1hbmQuCisgICAo PGxpdGVyYWw+Uk9VVElORVM8L2xpdGVyYWw+IGlzIHByZWZlcnJlZCBnb2luZyBmb3J3YXJkIGFz IHRoZSBzdGFuZGFyZAorICAgdGVybSBmb3IgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzIHRha2Vu IHRvZ2V0aGVyLiAgSW4gZWFybGllciBQb3N0Z3JlU1FMCisgICByZWxlYXNlcywgb25seSB0aGUg d29yZCA8bGl0ZXJhbD5GVU5DVElPTlM8L2xpdGVyYWw+IHdhcyBhbGxvd2VkLiAgSXQgaXMgbm90 CisgICBwb3NzaWJsZSB0byBzZXQgZGVmYXVsdCBwcml2aWxlZ2VzIGZvciBmdW5jdGlvbnMgYW5k IHByb2NlZHVyZXMgc2VwYXJhdGVseS4pCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9y ZWYvYWx0ZXJfdmFyaWFibGUuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwLi45NmQyNTg2NDIzCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRl cl92YXJpYWJsZS5zZ21sCkBAIC0wLDAgKzEsMTc4IEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVm L2FsdGVyX3ZhcmlhYmxlLnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxy ZWZlbnRyeSBpZD0ic3FsLWFsdGVydmFyaWFibGUiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWFs dGVydmFyaWFibGUiPgorICA8cHJpbWFyeT5BTFRFUiBWQVJJQUJMRTwvcHJpbWFyeT4KKyA8L2lu ZGV4dGVybT4KKworIDxpbmRleHRlcm0+CisgIDxwcmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3By aW1hcnk+CisgIDxzZWNvbmRhcnk+YWx0ZXJpbmc8L3NlY29uZGFyeT4KKyA8L2luZGV4dGVybT4K KworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5BTFRFUiBWQVJJQUJMRTwvcmVmZW50cnl0 aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBM YW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFt ZWRpdj4KKyAgPHJlZm5hbWU+QUxURVIgVkFSSUFCTEU8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3Nl PgorICAgY2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZQorICA8L3Jl ZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lz PgorQUxURVIgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPiBPV05FUiBUTyB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdf b3duZXI8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfUk9MRSB8IENVUlJFTlRfVVNFUiB8IFNFU1NJ T05fVVNFUiB9CitBTFRFUiBWQVJJQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmV3X25hbWU8L3JlcGxhY2VhYmxlPgorQUxURVIgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgU0NIRU1BIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfc2NoZW1hPC9yZXBsYWNlYWJsZT4KKzwvc3lub3BzaXM+ CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9u PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5BTFRFUiBWQVJJQUJMRTwvY29t bWFuZD4gY29tbWFuZCBjaGFuZ2VzIHRoZSBkZWZpbml0aW9uIG9mIGFuCisgICBleGlzdGluZyBz ZXNzaW9uIHZhcmlhYmxlLiBUaGVyZSBhcmUgc2V2ZXJhbCBzdWJmb3JtczoKKworICA8dmFyaWFi bGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5PV05FUjwvbGl0 ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgZm9y bSBjaGFuZ2VzIHRoZSBvd25lciBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJh PgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRy eT4KKyAgICA8dGVybT48bGl0ZXJhbD5SRU5BTUU8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0 aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gY2hhbmdlcyB0aGUgbmFtZSBvZiB0 aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8 L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5T RVQgU0NIRU1BPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgor ICAgICAgVGhpcyBmb3JtIG1vdmVzIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGludG8gYW5vdGhlciBz Y2hlbWEuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgPC92YXJpYWJsZWxpc3Q+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIE9ubHkgdGhl IG93bmVyIG9yIGEgc3VwZXJ1c2VyIGlzIGFsbG93ZWQgdG8gYWx0ZXIgYSBzZXNzaW9uIHZhcmlh YmxlLgorICAgSW4gb3JkZXIgdG8gbW92ZSBhIHNlc3Npb24gdmFyaWFibGUgZnJvbSBvbmUgc2No ZW1hIHRvIGFub3RoZXIsIHRoZSB1c2VyCisgICBtdXN0IGFsc28gaGF2ZSB0aGUgPGxpdGVyYWw+ Q1JFQVRFPC9saXRlcmFsPiBwcml2aWxlZ2Ugb24gdGhlIG5ldyBzY2hlbWEgKG9yCisgICBiZSBh IHN1cGVydXNlcikuCisKKyAgIEluIG9yZGVyIHRvIG1vdmUgdGhlIHNlc3Npb24gdmFyaWFibGUg b3duZXJzaGlwIGZyb20gb25lIHJvbGUgdG8gYW5vdGhlciwKKyAgIHRoZSB1c2VyIG11c3QgYWxz byBiZSBhIGRpcmVjdCBvciBpbmRpcmVjdCBtZW1iZXIgb2YgdGhlIG5ldworICAgb3duaW5nIHJv bGUsIGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZlIHRoZSA8bGl0ZXJhbD5DUkVBVEU8L2xpdGVyYWw+ IHByaXZpbGVnZQorICAgb24gdGhlIHNlc3Npb24gdmFyaWFibGUncyBzY2hlbWEgKG9yIGJlIGEg c3VwZXJ1c2VyKS4gVGhlc2UgcmVzdHJpY3Rpb25zCisgICBlbmZvcmNlIHRoYXQgYWx0ZXJpbmcg dGhlIG93bmVyIGRvZXNuJ3QgZG8gYW55dGhpbmcgeW91IGNvdWxkbid0IGRvIGJ5CisgICBkcm9w cGluZyBhbmQgcmVjcmVhdGluZyB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgPC9wYXJhPgorIDwv cmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KKwor ICAgPHBhcmE+CisgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAg IDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT48 L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBuYW1l IChwb3NzaWJseSBzY2hlbWEtcXVhbGlmaWVkKSBvZiB0aGUgZXhpc3Rpbmcgc2Vzc2lvbiB2YXJp YWJsZQorICAgICAgICB0byBhbHRlci4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVt PgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRl cm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19vd25lcjwvcmVwbGFjZWFibGU+ PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgdXNl ciBuYW1lIG9mIHRoZSBuZXcgb3duZXIgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgICAgICAg PC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAg PHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uZXdfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAg IDxwYXJhPgorICAgICAgICBUaGUgbmV3IG5hbWUgZm9yIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgor ICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5Pgor CisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmV3X3NjaGVtYTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAgPGxpc3RpdGVt PgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgbmV3IHNjaGVtYSBmb3IgdGhlIHNlc3Npb24g dmFyaWFibGUuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJs aXN0ZW50cnk+CisgICAgPC92YXJpYWJsZWxpc3Q+CisgICA8L3BhcmE+CisgIDwvcmVmc2VjdDE+ CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+Cisg ICBUbyByZW5hbWUgYSBzZXNzaW9uIHZhcmlhYmxlOgorPHByb2dyYW1saXN0aW5nPgorQUxURVIg VkFSSUFCTEUgZm9vIFJFTkFNRSBUTyBib287Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+ CisKKyAgPHBhcmE+CisgICBUbyBjaGFuZ2UgdGhlIG93bmVyIG9mIHRoZSBzZXNzaW9uIHZhcmlh YmxlIDxsaXRlcmFsPmJvbzwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFsPmpvZTwvbGl0ZXJhbD46 Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBWQVJJQUJMRSBib28gT1dORVIgVE8gam9lOworPC9w cm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVG8gY2hhbmdlIHRoZSBz Y2hlbWEgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+Ym9vPC9saXRlcmFsPiB0bwor ICAgPGxpdGVyYWw+cHJpdmF0ZTwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBW QVJJQUJMRSBib28gU0VUIFNDSEVNQSBwcml2YXRlOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9w YXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5 PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFNlc3Npb24gdmFyaWFibGVzIGFuZCB0aGlzIGNvbW1h bmQgaW4gcGFydGljdWxhciBhcmUgYSBQb3N0Z3JlU1FMIGV4dGVuc2lvbi4KKyAgPC9wYXJhPgor IDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDEgaWQ9InNxbC1hbHRlcnZhcmlhYmxlLXNlZS1hbHNv Ij4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxp bmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21l bWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVt YmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKzwvcmVmZW50cnk+CmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY29t bWVudC5zZ21sCmluZGV4IDViNDNjNTZiMTMuLjIxY2Q4MDgxOGYgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWYvY29tbWVudC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5z Z21sCkBAIC02NSw2ICs2NSw3IEBAIENPTU1FTlQgT04KICAgVFJBTlNGT1JNIEZPUiA8cmVwbGFj ZWFibGU+dHlwZV9uYW1lPC9yZXBsYWNlYWJsZT4gTEFOR1VBR0UgPHJlcGxhY2VhYmxlPmxhbmdf bmFtZTwvcmVwbGFjZWFibGU+IHwKICAgVFJJR0dFUiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+dHJpZ2dlcl9uYW1lPC9yZXBsYWNlYWJsZT4gT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFRZUEUgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAorICBWQVJJQUJM RSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxl PiB8CiAgIFZJRVcgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9y ZXBsYWNlYWJsZT4KIH0gSVMgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3RyaW5n X2xpdGVyYWw8L3JlcGxhY2VhYmxlPiB8IE5VTEwgfQogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVt YS5zZ21sCmluZGV4IGVkNjkyOThjY2MuLmQyYmIyNjUyMDkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X3NjaGVtYS5zZ21sCkBAIC0xMDMsOSArMTAzLDEwIEBAIENSRUFURSBTQ0hFTUEgSUYgTk9UIEVY SVNUUyBBVVRIT1JJWkFUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3Nw CiAgICAgICAgIHNjaGVtYS4gQ3VycmVudGx5LCBvbmx5IDxjb21tYW5kPkNSRUFURQogICAgICAg ICBUQUJMRTwvY29tbWFuZD4sIDxjb21tYW5kPkNSRUFURSBWSUVXPC9jb21tYW5kPiwgPGNvbW1h bmQ+Q1JFQVRFCiAgICAgICAgIElOREVYPC9jb21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRFIFNFUVVF TkNFPC9jb21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRFCi0gICAgICAgIFRSSUdHRVI8L2NvbW1hbmQ+ IGFuZCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gYXJlIGFjY2VwdGVkIGFzIGNsYXVzZXMKLSAg ICAgICAgd2l0aGluIDxjb21tYW5kPkNSRUFURSBTQ0hFTUE8L2NvbW1hbmQ+LiBPdGhlciBraW5k cyBvZiBvYmplY3RzIG1heQotICAgICAgICBiZSBjcmVhdGVkIGluIHNlcGFyYXRlIGNvbW1hbmRz IGFmdGVyIHRoZSBzY2hlbWEgaXMgY3JlYXRlZC4KKyAgICAgICAgVFJJR0dFUjwvY29tbWFuZD4s IDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBhbmQgPGNvbW1hbmQ+Q1JFQVRFCisgICAgICAgIFZB UklBQkxFPC9jb21tYW5kPiBhcmUgYWNjZXB0ZWQgYXMgY2xhdXNlcyB3aXRoaW4gPGNvbW1hbmQ+ Q1JFQVRFCisgICAgICAgIFNDSEVNQTwvY29tbWFuZD4uIE90aGVyIGtpbmRzIG9mIG9iamVjdHMg bWF5IGJlIGNyZWF0ZWQgaW4gc2VwYXJhdGUKKyAgICAgICAgY29tbWFuZHMgYWZ0ZXIgdGhlIHNj aGVtYSBpcyBjcmVhdGVkLgogICAgICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAg IDwvdmFybGlzdGVudHJ5PgpAQCAtMjE0LDYgKzIxNSwxMSBAQCBDUkVBVEUgVklFVyBob2xseXdv b2Qud2lubmVycyBBUwogICAgVGhlIDxsaXRlcmFsPklGIE5PVCBFWElTVFM8L2xpdGVyYWw+IG9w dGlvbiBpcyBhCiAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGV4dGVu c2lvbi4KICAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkNSRUFURSBWQVJJ QUJMRTwvY29tbWFuZD4gY29tbWFuZCBpcyBhCisgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwv cHJvZHVjdG5hbWU+IGV4dGVuc2lvbi4KKyAgPC9wYXJhPgogIDwvcmVmc2VjdDE+CiAKICA8cmVm c2VjdDE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwLi42ZTk4OGYyZTQ3Ci0tLSAvZGV2L251bGwKKysrIGIvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMCwwICsxLDE0OSBAQAorPCEt LQorZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAorUG9zdGdyZVNRTCBkb2N1 bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUiPgorIDxp bmRleHRlcm0gem9uZT0ic3FsLWNyZWF0ZXZhcmlhYmxlIj4KKyAgPHByaW1hcnk+Q1JFQVRFIFZB UklBQkxFPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4dGVybT4KKyAgPHByaW1h cnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFyeT5kZWZpbmluZzwvc2Vj b25kYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkNS RUFURSBWQVJJQUJMRTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+ CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4K KyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+Q1JFQVRFIFZBUklBQkxF PC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5kZWZpbmUgYSBzZXNzaW9uIHZhcmlhYmxlPC9yZWZw dXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4K K0NSRUFURSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCis8L3N5bm9wc2lzPgor IDwvcmVmc3lub3BzaXNkaXY+CisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3Rp dGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkNSRUFURSBWQVJJQUJMRTwvY29tbWFu ZD4gY29tbWFuZCBjcmVhdGVzIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgIFNlc3Npb24gdmFyaWFi bGVzLCBsaWtlIHJlbGF0aW9ucywgZXhpc3Qgd2l0aGluIGEgc2NoZW1hIGFuZCB0aGVpciBhY2Nl c3MgaXMKKyAgIGNvbnRyb2xsZWQgdmlhIHRoZSBjb21tYW5kcyA8Y29tbWFuZD5HUkFOVDwvY29t bWFuZD4gYW5kIDxjb21tYW5kPlJFVk9LRTwvY29tbWFuZD4uCisgIDwvcGFyYT4KKworICA8cGFy YT4KKyAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbG9jYWwgdG8gdGhlIGN1 cnJlbnQgc2Vzc2lvbi4gIFJldHJpZXZpbmcKKyAgIGEgc2Vzc2lvbiB2YXJpYWJsZSdzIHZhbHVl IHJldHVybnMgTlVMTCwgdW5sZXNzIGl0cyB2YWx1ZSBpcyBzZXQgdG8KKyAgIHNvbWV0aGluZyBl bHNlIGluIHRoZSBjdXJyZW50IHNlc3Npb24gd2l0aCBhIDxjb21tYW5kPkxFVDwvY29tbWFuZD4g Y29tbWFuZC4KKyAgIFRoZSBjb250ZW50IG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBub3QgdHJh bnNhY3Rpb25hbC4gVGhpcyBpcyB0aGUgc2FtZSBhcworICAgcmVndWxhciB2YXJpYWJsZXMgaW4g cHJvY2VkdXJhbCBsYW5ndWFnZXMuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFNlc3Npb24g dmFyaWFibGVzIGFyZSByZXRyaWV2ZWQgYnkgdGhlIDxjb21tYW5kPlNFTEVDVDwvY29tbWFuZD4K KyAgIGNvbW1hbmQuICBUaGVpciB2YWx1ZSBpcyBzZXQgd2l0aCB0aGUgPGNvbW1hbmQ+TEVUPC9j b21tYW5kPiBjb21tYW5kLgorICA8L3BhcmE+CisKKyAgPG5vdGU+CisgICA8cGFyYT4KKyAgICBT ZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgPHF1b3RlPnNoYWRvd2VkPC9xdW90ZT4gYnkgb3RoZXIg aWRlbnRpZmllcnMuCisgICAgRm9yIGRldGFpbHMsIHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtc2Vz c2lvbi12YXJpYWJsZXMiLz4uCisgICA8L3BhcmE+CisgIDwvbm90ZT4KKyA8L3JlZnNlY3QxPgor CisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxl bGlzdD4KKworICAgPHZhcmxpc3RlbnRyeSAgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1pZi1ub3Qt ZXhpc3RzIj4KKyAgICA8dGVybT48bGl0ZXJhbD5JRiBOT1QgRVhJU1RTPC9saXRlcmFsPjwvdGVy bT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRG8gbm90IHRocm93IGFuIGVy cm9yIGlmIHRoZSBuYW1lIGFscmVhZHkgZXhpc3RzLiBBIG5vdGljZSBpcyBpc3N1ZWQgaW4KKyAg ICAgIHRoaXMgY2FzZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxp c3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLW5hbWUi PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1l LCBvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQsIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgor ICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8 dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtZGF0YV90eXBlIj4KKyAgICA8dGVy bT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT48 L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lLCBvcHRp b25hbGx5IHNjaGVtYS1xdWFsaWZpZWQsIG9mIHRoZSBkYXRhIHR5cGUgb2YgdGhlIHNlc3Npb24K KyAgICAgIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFy bGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtY29s bGF0ZSI+CisgICAgPHRlcm0+PGxpdGVyYWw+Q09MTEFURSA8cmVwbGFjZWFibGU+Y29sbGF0aW9u PC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBh cmE+CisgICAgICBUaGUgPGxpdGVyYWw+Q09MTEFURTwvbGl0ZXJhbD4gY2xhdXNlIGFzc2lnbnMg YSBjb2xsYXRpb24gdG8gdGhlIHNlc3Npb24KKyAgICAgIHZhcmlhYmxlICh3aGljaCBtdXN0IGJl IG9mIGEgY29sbGF0YWJsZSBkYXRhIHR5cGUpLiAgSWYgbm90IHNwZWNpZmllZCwKKyAgICAgIHRo ZSBkYXRhIHR5cGUncyBkZWZhdWx0IGNvbGxhdGlvbiBpcyB1c2VkLgorICAgICA8L3BhcmE+Cisg ICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgIDwvdmFyaWFibGVsaXN0Pgor IDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Ob3RlczwvdGl0bGU+CisKKyAg PHBhcmE+CisgICBVc2UgdGhlIDxjb21tYW5kPkRST1AgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1h bmQgdG8gcmVtb3ZlIGEgc2Vzc2lvbgorICAgdmFyaWFibGUuCisgIDwvcGFyYT4KKyA8L3JlZnNl Y3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCisgIDxwYXJh PgorICAgQ3JlYXRlIGFuIGRhdGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0ZXJhbD52YXIxPC9saXRl cmFsPjoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGRhdGU7Cis8 L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3Qx PgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNv bW1hbmQ+Q1JFQVRFIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGlzIGEKKyAgIDxwcm9kdWN0 bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgorICA8L3BhcmE+CisgPC9y ZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8 c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwt YWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwt ZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgor Cis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxl LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi41YmRiMzU2MGYwCi0tLSAvZGV2L251bGwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKQEAgLTAsMCArMSwxMTcgQEAKKzwh LS0KK2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCitQb3N0Z3JlU1FMIGRvY3Vt ZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1kcm9wdmFyaWFibGUiPgorIDxpbmRl eHRlcm0gem9uZT0ic3FsLWRyb3B2YXJpYWJsZSI+CisgIDxwcmltYXJ5PkRST1AgVkFSSUFCTEU8 L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8aW5kZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNz aW9uIHZhcmlhYmxlPC9wcmltYXJ5PgorICA8c2Vjb25kYXJ5PnJlbW92aW5nPC9zZWNvbmRhcnk+ CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+RFJPUCBWQVJJ QUJMRTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZt aXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1l dGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+RFJPUCBWQVJJQUJMRTwvcmVmbmFtZT4K KyAgPHJlZnB1cnBvc2U+cmVtb3ZlIGEgc2Vzc2lvbiB2YXJpYWJsZTwvcmVmcHVycG9zZT4KKyA8 L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitEUk9QIFZBUklB QkxFIFsgSUYgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPiBbLCAuLi5dIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKzwvc3lub3BzaXM+Cisg PC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90 aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkRST1AgVkFSSUFCTEU8L2NvbW1hbmQ+IHJl bW92ZXMgYSBzZXNzaW9uIHZhcmlhYmxlLgorICAgQSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBvbmx5 IGJlIHJlbW92ZWQgYnkgaXRzIG93bmVyIG9yIGEgc3VwZXJ1c2VyLgorICA8L3BhcmE+CisgPC9y ZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisg IDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPklG IEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIERvIG5vdCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBkb2VzIG5v dCBleGlzdC4gQSBub3RpY2UgaXMKKyAgICAgIGlzc3VlZCBpbiB0aGlzIGNhc2UuCisgICAgIDwv cGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0 ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhl IG5hbWUsIG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCwgb2YgYSBzZXNzaW9uIHZhcmlhYmxl LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisg ICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPkNBU0NBREU8L2xpdGVyYWw+PC90 ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBBdXRvbWF0aWNhbGx5IGRy b3Agb2JqZWN0cyB0aGF0IGRlcGVuZCBvbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSAoc3VjaCBhcwor ICAgICAgdmlld3MpLCBhbmQgaW4gdHVybiBhbGwgb2JqZWN0cyB0aGF0IGRlcGVuZCBvbiB0aG9z ZSBvYmplY3RzCisgICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1kZXBlbmQiLz4pLgorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFy bGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlJFU1RSSUNUPC9saXRlcmFsPjwvdGVybT4K KyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgUmVmdXNlIHRvIGRyb3AgdGhlIHNl c3Npb24gdmFyaWFibGUgaWYgYW55IG9iamVjdHMgZGVwZW5kIG9uIGl0LiAgVGhpcyBpcworICAg ICAgdGhlIGRlZmF1bHQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisgIDwvdmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+ CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUbyByZW1vdmUgdGhl IHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD46CisKKzxwcm9ncmFtbGlz dGluZz4KK0RST1AgVkFSSUFCTEUgdmFyMTsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorIDwv cmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4K KworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5EUk9QIFZBUklBQkxFPC9jb21tYW5kPiBjb21t YW5kIGlzIGEKKyAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5z aW9uLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNl ZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJl cj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJl cj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4KKyAgPC9zaW1w bGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL2dyYW50LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwKaW5kZXgg OTk5ZjY1N2Q1Yy4uYzExODYwZmEyMCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9ncmFu dC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbApAQCAtMTAxLDYgKzEwMSwx MiBAQCBHUkFOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBs YWNlYWJsZT4gWywgLi4uXSBUTyA8cmVwbGFjZQogICAgIFsgV0lUSCB7IEFETUlOIHwgSU5IRVJJ VCB8IFNFVCB9IHsgT1BUSU9OIHwgVFJVRSB8IEZBTFNFIH0gXQogICAgIFsgR1JBTlRFRCBCWSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNl YWJsZT4gXQogCitHUkFOVCB7IFNFTEVDVCB8IFVQREFURSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9 CisgICAgT04geyBWQVJJQUJMRSA8cmVwbGFjZWFibGU+dmFyaWFibGVfbmFtZTwvcmVwbGFjZWFi bGU+IFssIC4uLl0KKyAgICAgICB8IEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gfQor ICAgIFRPIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248 L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFsgV0lUSCBHUkFOVCBPUFRJT04gXQorICAgIFsgR1JBTlRF RCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9y ZXBsYWNlYWJsZT4gXQorCiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBjYW4gYmU6PC9waHJhc2U+CiAK ICAgICBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwv cmVwbGFjZWFibGU+CkBAIC0xMTksOCArMTI1LDggQEAgR1JBTlQgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gVE8gPHJlcGxhY2UK ICAgIHRoYXQgZ3JhbnRzIHByaXZpbGVnZXMgb24gYSBkYXRhYmFzZSBvYmplY3QgKHRhYmxlLCBj b2x1bW4sIHZpZXcsCiAgICBmb3JlaWduIHRhYmxlLCBzZXF1ZW5jZSwgZGF0YWJhc2UsIGZvcmVp Z24tZGF0YSB3cmFwcGVyLCBmb3JlaWduIHNlcnZlciwKICAgIGZ1bmN0aW9uLCBwcm9jZWR1cmUs IHByb2NlZHVyYWwgbGFuZ3VhZ2UsIGxhcmdlIG9iamVjdCwgY29uZmlndXJhdGlvbgotICAgcGFy YW1ldGVyLCBzY2hlbWEsIHRhYmxlc3BhY2UsIG9yIHR5cGUpLCBhbmQgb25lIHRoYXQgZ3JhbnRz Ci0gICBtZW1iZXJzaGlwIGluIGEgcm9sZS4gIFRoZXNlIHZhcmlhbnRzIGFyZSBzaW1pbGFyIGlu IG1hbnkgd2F5cywgYnV0CisgICBwYXJhbWV0ZXIsIHNjaGVtYSwgc2Vzc2lvbiB2YXJpYWJsZSwg dGFibGVzcGFjZSwgb3IgdHlwZSksIGFuZCBvbmUgdGhhdAorICAgZ3JhbnRzIG1lbWJlcnNoaXAg aW4gYSByb2xlLiAgVGhlc2UgdmFyaWFudHMgYXJlIHNpbWlsYXIgaW4gbWFueSB3YXlzLCBidXQK ICAgIHRoZXkgYXJlIGRpZmZlcmVudCBlbm91Z2ggdG8gYmUgZGVzY3JpYmVkIHNlcGFyYXRlbHku CiAgIDwvcGFyYT4KIApAQCAtMjM2LDkgKzI0Miw5IEBAIEdSQU5UIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFRPIDxyZXBsYWNl CiAgIDxwYXJhPgogICAgVGhlcmUgaXMgYWxzbyBhbiBvcHRpb24gdG8gZ3JhbnQgcHJpdmlsZWdl cyBvbiBhbGwgb2JqZWN0cyBvZiB0aGUgc2FtZQogICAgdHlwZSB3aXRoaW4gb25lIG9yIG1vcmUg c2NoZW1hcy4gIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyBjdXJyZW50bHkgc3VwcG9ydGVkCi0gICBv bmx5IGZvciB0YWJsZXMsIHNlcXVlbmNlcywgZnVuY3Rpb25zLCBhbmQgcHJvY2VkdXJlcy4gIDxs aXRlcmFsPkFMTAotICAgVEFCTEVTPC9saXRlcmFsPiBhbHNvIGFmZmVjdHMgdmlld3MgYW5kIGZv cmVpZ24gdGFibGVzLCBqdXN0IGxpa2UgdGhlCi0gICBzcGVjaWZpYy1vYmplY3QgPGNvbW1hbmQ+ R1JBTlQ8L2NvbW1hbmQ+IGNvbW1hbmQuICA8bGl0ZXJhbD5BTEwKKyAgIG9ubHkgZm9yIHRhYmxl cywgc2VxdWVuY2VzLCBmdW5jdGlvbnMsIHByb2NlZHVyZXMgYW5kIHZhcmlhYmxlcy4KKyAgIDxs aXRlcmFsPkFMTCBUQUJMRVM8L2xpdGVyYWw+IGFsc28gYWZmZWN0cyB2aWV3cyBhbmQgZm9yZWln biB0YWJsZXMsIGp1c3QKKyAgIGxpa2UgdGhlIHNwZWNpZmljLW9iamVjdCA8Y29tbWFuZD5HUkFO VDwvY29tbWFuZD4gY29tbWFuZC4gIDxsaXRlcmFsPkFMTAogICAgRlVOQ1RJT05TPC9saXRlcmFs PiBhbHNvIGFmZmVjdHMgYWdncmVnYXRlIGFuZCB3aW5kb3cgZnVuY3Rpb25zLCBidXQgbm90CiAg ICBwcm9jZWR1cmVzLCBhZ2FpbiBqdXN0IGxpa2UgdGhlIHNwZWNpZmljLW9iamVjdCA8Y29tbWFu ZD5HUkFOVDwvY29tbWFuZD4KICAgIGNvbW1hbmQuICBVc2UgPGxpdGVyYWw+QUxMIFJPVVRJTkVT PC9saXRlcmFsPiB0byBpbmNsdWRlIHByb2NlZHVyZXMuCkBAIC01MTgsOCArNTI0LDggQEAgR1JB TlQgYWRtaW5zIFRPIGpvZTsKICAgIDwvcGFyYT4KIAogICAgPHBhcmE+Ci0gICAgUHJpdmlsZWdl cyBvbiBkYXRhYmFzZXMsIHRhYmxlc3BhY2VzLCBzY2hlbWFzLCBsYW5ndWFnZXMsIGFuZAotICAg IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBhcmUKKyAgICBQcml2aWxlZ2VzIG9uIGRhdGFiYXNl cywgdGFibGVzcGFjZXMsIHNjaGVtYXMsIGxhbmd1YWdlcywgc2Vzc2lvbiB2YXJpYWJsZXMKKyAg ICBhbmQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGFyZQogICAgIDxwcm9kdWN0bmFtZT5Qb3N0 Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9ucy4KICAgIDwvcGFyYT4KICA8L3JlZnNlY3Qx PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sIGIvZG9jL3NyYy9z Z21sL3JlZi9wc3FsLXJlZi5zZ21sCmluZGV4IDcyZjMzNDdlNTMuLmFjMjY1ZGIzNWUgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv cmVmL3BzcWwtcmVmLnNnbWwKQEAgLTIwMzQsNiArMjAzNCwxOSBAQCBTRUxFQ1QgJDEgXHBhcnNl IHN0bXQxCiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAg ICAgPHZhcmxpc3RlbnRyeSBpZD0iYXBwLXBzcWwtbWV0YS1jb21tYW5kLWR2Ij4KKyAgICAgICAg PHRlcm0+PGxpdGVyYWw+XGRWWytdIFsgPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0dGVybnMi PjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT48L2xp bms+IF08L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJh PgorICAgICAgICBMaXN0cyBzZXNzaW9uIHZhcmlhYmxlcy4KKyAgICAgICAgSWYgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdHRlcm48L3JlcGxhY2VhYmxlPiBpcworICAgICAgICBz cGVjaWZpZWQsIG9ubHkgc2Vzc2lvbiB2YXJpYWJsZXMgd2hvc2UgbmFtZXMgbWF0Y2ggdGhlIHBh dHRlcm4gYXJlIGxpc3RlZC4KKyAgICAgICAgSWYgdGhlIGZvcm0gPGxpdGVyYWw+XGRWKzwvbGl0 ZXJhbD4gaXMgdXNlZCwgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICAgICAgICBhYm91dCBlYWNo IHZhcmlhYmxlIGlzIHNob3duLCBsaWtlICBhY2Nlc3MgcHJpdmlsZWdlcyBhbmQgZGVzY3JpcHRp b24uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlz dGVudHJ5PgorCiAgICAgICA8dmFybGlzdGVudHJ5IGlkPSJhcHAtcHNxbC1tZXRhLWNvbW1hbmQt ZHUiPgogICAgICAgICA8dGVybT48bGl0ZXJhbD5cZHVbUytdIFsgPGxpbmsgbGlua2VuZD0iYXBw LXBzcWwtcGF0dGVybnMiPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9y ZXBsYWNlYWJsZT48L2xpbms+IF08L2xpdGVyYWw+PC90ZXJtPgogICAgICAgICA8bGlzdGl0ZW0+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3Jldm9rZS5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9yZXZva2Uuc2dtbAppbmRleCA4ZGY0OTIyODFhLi43NjBmZGRiN2MyIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL3Jldm9rZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcmV2 b2tlLnNnbWwKQEAgLTEzMCw2ICsxMzAsMTQgQEAgUkVWT0tFIFsgeyBBRE1JTiB8IElOSEVSSVQg fCBTRVQgfSBPUFRJT04gRk9SIF0KICAgICBbIEdSQU5URUQgQlkgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IF0KICAgICBbIENB U0NBREUgfCBSRVNUUklDVCBdCiAKK1JFVk9LRSBbIEdSQU5UIE9QVElPTiBGT1IgXQorICAgIHsg eyBTRUxFQ1QgfCBVUERBVEUgfSBbLCAuLi5dIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAgICBP TiB7IFZBUklBQkxFIDxyZXBsYWNlYWJsZT52YXJpYWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWywg Li4uXQorICAgICAgIHwgQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSB9CisgICAgRlJP TSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3Jl cGxhY2VhYmxlPiB8IFBVQkxJQyB9IFssIC4uLl0KKyAgICBbIEdSQU5URUQgQlkgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IF0K KyAgICBbIENBU0NBREUgfCBSRVNUUklDVCBdCisKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IGNhbiBi ZTo8L3BocmFzZT4KIAogICAgIFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWZl cmVuY2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAppbmRleCBmZjg1YWNlODNm Li4yNTU3OGYzOTQ2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCkBAIC03NSw2ICs3NSw3IEBACiAgICAmYWx0 ZXJUeXBlOwogICAgJmFsdGVyVXNlcjsKICAgICZhbHRlclVzZXJNYXBwaW5nOworICAgJmFsdGVy VmFyaWFibGU7CiAgICAmYWx0ZXJWaWV3OwogICAgJmFuYWx5emU7CiAgICAmYmVnaW47CkBAIC0x MjcsNiArMTI4LDcgQEAKICAgICZjcmVhdGVUeXBlOwogICAgJmNyZWF0ZVVzZXI7CiAgICAmY3Jl YXRlVXNlck1hcHBpbmc7CisgICAmY3JlYXRlVmFyaWFibGU7CiAgICAmY3JlYXRlVmlldzsKICAg ICZkZWFsbG9jYXRlOwogICAgJmRlY2xhcmU7CkBAIC0xNzUsNiArMTc3LDcgQEAKICAgICZkcm9w VHlwZTsKICAgICZkcm9wVXNlcjsKICAgICZkcm9wVXNlck1hcHBpbmc7CisgICAmZHJvcFZhcmlh YmxlOwogICAgJmRyb3BWaWV3OwogICAgJmVuZDsKICAgICZleGVjdXRlOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZp bGUKaW5kZXggYzA5MDA5NGVkMC4uMmMyMGQ2MGRiMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCkBAIC00 NSw2ICs0NSw3IEBAIE9CSlMgPSBcCiAJcGdfc2hkZXBlbmQubyBcCiAJcGdfc3Vic2NyaXB0aW9u Lm8gXAogCXBnX3R5cGUubyBcCisJcGdfdmFyaWFibGUubyBcCiAJc3RvcmFnZS5vIFwKIAl0b2Fz dGluZy5vCiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgYi9zcmMv YmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCmluZGV4IGIxOTYyOTRmYjIuLjMzYmEwYjdmZjIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9hY2xjaGsuYwpAQCAtNjQsNiArNjQsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdf cHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZS5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNs dWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgpAQCAtMjkxLDYgKzI5Miw5IEBA IHJlc3RyaWN0X2FuZF9jaGVja19ncmFudChib29sIGlzX2dyYW50LCBBY2xNb2RlIGF2YWlsX2dv cHRpb25zLCBib29sIGFsbF9wcml2cywKIAkJY2FzZSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDoKIAkJ CXdob2xlX21hc2sgPSBBQ0xfQUxMX1JJR0hUU19QQVJBTUVURVJfQUNMOwogCQkJYnJlYWs7CisJ CWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJd2hvbGVfbWFzayA9IEFDTF9BTExfUklHSFRTX1ZB UklBQkxFOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25p emVkIG9iamVjdCB0eXBlOiAlZCIsIG9ianR5cGUpOwogCQkJLyogbm90IHJlYWNoZWQsIGJ1dCBr ZWVwIGNvbXBpbGVyIHF1aWV0ICovCkBAIC01MzUsNiArNTM5LDEwIEBAIEV4ZWN1dGVHcmFudFN0 bXQoR3JhbnRTdG10ICpzdG10KQogCQkJYWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19Q QVJBTUVURVJfQUNMOwogCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmls ZWdlIHR5cGUgJXMgZm9yIHBhcmFtZXRlciIpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZB UklBQkxFOgorCQkJYWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJ CWVycm9ybXNnID0gZ2V0dGV4dF9ub29wKCJpbnZhbGlkIHByaXZpbGVnZSB0eXBlICVzIGZvciBz ZXNzaW9uIHZhcmlhYmxlIik7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1Is ICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGludCkgc3RtdC0+ b2JqdHlwZSk7CkBAIC02NDAsNiArNjQ4LDkgQEAgRXhlY0dyYW50U3RtdF9vaWRzKEludGVybmFs R3JhbnQgKmlzdG10KQogCQljYXNlIE9CSkVDVF9QQVJBTUVURVJfQUNMOgogCQkJRXhlY0dyYW50 X1BhcmFtZXRlcihpc3RtdCk7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJ CQlFeGVjR3JhbnRfY29tbW9uKGlzdG10LCBWYXJpYWJsZVJlbGF0aW9uSWQsIEFDTF9BTExfUklH SFRTX1ZBUklBQkxFLCBOVUxMKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJP UiwgInVucmVjb2duaXplZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAoaW50KSBpc3Rt dC0+b2JqdHlwZSk7CkBAIC03NjAsNiArNzcxLDE4IEBAIG9iamVjdE5hbWVzVG9PaWRzKE9iamVj dFR5cGUgb2JqdHlwZSwgTGlzdCAqb2JqbmFtZXMsIGJvb2wgaXNfZ3JhbnQpCiAJCQkJCW9iamVj dHMgPSBsYXBwZW5kX29pZChvYmplY3RzLCBwYXJhbWV0ZXJJZCk7CiAJCQl9CiAJCQlicmVhazsK KworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCWZvcmVhY2hfbm9kZShSYW5nZVZhciwgdmFy dmFyLCBvYmpuYW1lcykKKwkJCXsKKwkJCQlPaWQJCQlyZWxPaWQ7CisKKwkJCQlyZWxPaWQgPSBM b29rdXBWYXJpYWJsZSh2YXJ2YXItPnNjaGVtYW5hbWUsCisJCQkJCQkJCQkJdmFydmFyLT5yZWxu YW1lLAorCQkJCQkJCQkJCWZhbHNlKTsKKwkJCQlvYmplY3RzID0gbGFwcGVuZF9vaWQob2JqZWN0 cywgcmVsT2lkKTsKKwkJCX0KKwkJCWJyZWFrOwogCX0KIAogCXJldHVybiBvYmplY3RzOwpAQCAt ODQ2LDYgKzg2OSwzMiBAQCBvYmplY3RzSW5TY2hlbWFUb09pZHMoT2JqZWN0VHlwZSBvYmp0eXBl LCBMaXN0ICpuc3BuYW1lcykKIAkJCQkJdGFibGVfY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2sp OwogCQkJCX0KIAkJCQlicmVhazsKKwkJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCXsKKwkJ CQkJU2NhbktleURhdGEga2V5OworCQkJCQlSZWxhdGlvbglyZWw7CisJCQkJCVRhYmxlU2NhbkRl c2Mgc2NhbjsKKwkJCQkJSGVhcFR1cGxlCXR1cGxlOworCisJCQkJCVNjYW5LZXlJbml0KCZrZXks CisJCQkJCQkJCUFudW1fcGdfdmFyaWFibGVfdmFybmFtZXNwYWNlLAorCQkJCQkJCQlCVEVxdWFs U3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0obmFtZXNw YWNlSWQpKTsKKworCQkJCQlyZWwgPSB0YWJsZV9vcGVuKFZhcmlhYmxlUmVsYXRpb25JZCwgQWNj ZXNzU2hhcmVMb2NrKTsKKwkJCQkJc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9jYXRhbG9nKHJlbCwg MSwgJmtleSk7CisKKwkJCQkJd2hpbGUgKCh0dXBsZSA9IGhlYXBfZ2V0bmV4dChzY2FuLCBGb3J3 YXJkU2NhbkRpcmVjdGlvbikpICE9IE5VTEwpCisJCQkJCXsKKwkJCQkJCU9pZAkJCW9pZCA9ICgo Rm9ybV9wZ19wcm9jKSBHRVRTVFJVQ1QodHVwbGUpKS0+b2lkOworCisJCQkJCQlvYmplY3RzID0g bGFwcGVuZF9vaWQob2JqZWN0cywgb2lkKTsKKwkJCQkJfQorCisJCQkJCXRhYmxlX2VuZHNjYW4o c2Nhbik7CisJCQkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJCQl9CisJ CQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCS8qIHNob3VsZCBub3QgaGFwcGVuICovCiAJCQkJ ZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLApAQCAtMTAw NSw2ICsxMDU0LDEwIEBAIEV4ZWNBbHRlckRlZmF1bHRQcml2aWxlZ2VzU3RtdChQYXJzZVN0YXRl ICpwc3RhdGUsIEFsdGVyRGVmYXVsdFByaXZpbGVnZXNTdG10ICpzCiAJCQlhbGxfcHJpdmlsZWdl cyA9IEFDTF9BTExfUklHSFRTX1NDSEVNQTsKIAkJCWVycm9ybXNnID0gZ2V0dGV4dF9ub29wKCJp bnZhbGlkIHByaXZpbGVnZSB0eXBlICVzIGZvciBzY2hlbWEiKTsKIAkJCWJyZWFrOworCQljYXNl IE9CSkVDVF9WQVJJQUJMRToKKwkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfVkFS SUFCTEU7CisJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52YWxpZCBwcml2aWxlZ2UgdHlw ZSAlcyBmb3Igc2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQll bG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0eXBlOiAlZCIsCiAJCQkJIChp bnQpIGFjdGlvbi0+b2JqdHlwZSk7CkBAIC0xMTk2LDYgKzEyNDksMTIgQEAgU2V0RGVmYXVsdEFD TChJbnRlcm5hbERlZmF1bHRBQ0wgKmlhY2xzKQogCQkJCXRoaXNfcHJpdmlsZWdlcyA9IEFDTF9B TExfUklHSFRTX1NDSEVNQTsKIAkJCWJyZWFrOwogCisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgor CQkJb2JqdHlwZSA9IERFRkFDTE9CSl9WQVJJQUJMRTsKKwkJCWlmIChpYWNscy0+YWxsX3ByaXZz ICYmIHRoaXNfcHJpdmlsZWdlcyA9PSBBQ0xfTk9fUklHSFRTKQorCQkJCXRoaXNfcHJpdmlsZWdl cyA9IEFDTF9BTExfUklHSFRTX1ZBUklBQkxFOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJ CWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6ICVkIiwKIAkJCQkgKGludCkg aWFjbHMtPm9ianR5cGUpOwpAQCAtMTQzOSw2ICsxNDk4LDkgQEAgUmVtb3ZlUm9sZUZyb21PYmpl Y3RBQ0woT2lkIHJvbGVpZCwgT2lkIGNsYXNzaWQsIE9pZCBvYmppZCkKIAkJCWNhc2UgREVGQUNM T0JKX05BTUVTUEFDRToKIAkJCQlpYWNscy5vYmp0eXBlID0gT0JKRUNUX1NDSEVNQTsKIAkJCQli cmVhazsKKwkJCWNhc2UgREVGQUNMT0JKX1ZBUklBQkxFOgorCQkJCWlhY2xzLm9ianR5cGUgPSBP QkpFQ1RfVkFSSUFCTEU7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCS8qIFNob3VsZG4n dCBnZXQgaGVyZSAqLwogCQkJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIGRlZmF1bHQgQUNMIHR5 cGU6ICVkIiwKQEAgLTE0OTksNiArMTU2MSw5IEBAIFJlbW92ZVJvbGVGcm9tT2JqZWN0QUNMKE9p ZCByb2xlaWQsIE9pZCBjbGFzc2lkLCBPaWQgb2JqaWQpCiAJCQljYXNlIFBhcmFtZXRlckFjbFJl bGF0aW9uSWQ6CiAJCQkJaXN0bXQub2JqdHlwZSA9IE9CSkVDVF9QQVJBTUVURVJfQUNMOwogCQkJ CWJyZWFrOworCQkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQkJaXN0bXQub2JqdHlwZSA9 IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJZWxvZyhFUlJP UiwgInVuZXhwZWN0ZWQgb2JqZWN0IGNsYXNzICV1IiwgY2xhc3NpZCk7CiAJCQkJYnJlYWs7CkBA IC0yNzMyLDYgKzI3OTcsOSBAQCBhY2xjaGVja19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmpl Y3RUeXBlIG9ianR5cGUsCiAJCQkJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQkJCQltc2cgPSBnZXR0 ZXh0X25vb3AoInBlcm1pc3Npb24gZGVuaWVkIGZvciB0eXBlICVzIik7CiAJCQkJCQlicmVhazsK KwkJCQkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoInBl cm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICVzIik7CisJCQkJCQlicmVhazsK IAkJCQkJY2FzZSBPQkpFQ1RfVklFVzoKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgicGVybWlz c2lvbiBkZW5pZWQgZm9yIHZpZXcgJXMiKTsKIAkJCQkJCWJyZWFrOwpAQCAtMjg0Myw2ICsyOTEx LDkgQEAgYWNsY2hlY2tfZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwgT2JqZWN0VHlwZSBvYmp0eXBl LAogCQkJCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0 IGJlIG93bmVyIG9mIHR5cGUgJXMiKTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIE9CSkVDVF9W QVJJQUJMRToKKwkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBiZSBvd25lciBvZiBzZXNz aW9uIHZhcmlhYmxlICVzIik7CisJCQkJCQlicmVhazsKIAkJCQkJY2FzZSBPQkpFQ1RfVklFVzoK IAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBiZSBvd25lciBvZiB2aWV3ICVzIik7CiAJ CQkJCQlicmVhazsKQEAgLTI5OTEsNiArMzA2Miw4IEBAIHBnX2FjbG1hc2soT2JqZWN0VHlwZSBv Ymp0eXBlLCBPaWQgb2JqZWN0X29pZCwgQXR0ck51bWJlciBhdHRudW0sIE9pZCByb2xlaWQsCiAJ CQlyZXR1cm4gQUNMX05PX1JJR0hUUzsKIAkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCXJldHVybiBv YmplY3RfYWNsbWFzayhUeXBlUmVsYXRpb25JZCwgb2JqZWN0X29pZCwgcm9sZWlkLCBtYXNrLCBo b3cpOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXJldHVybiBvYmplY3RfYWNsbWFzayhW YXJpYWJsZVJlbGF0aW9uSWQsIG9iamVjdF9vaWQsIHJvbGVpZCwgbWFzaywgaG93KTsKIAkJZGVm YXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6ICVkIiwKIAkJ CQkgKGludCkgb2JqdHlwZSk7CkBAIC00MjU4LDYgKzQzMzEsMTAgQEAgZ2V0X3VzZXJfZGVmYXVs dF9hY2woT2JqZWN0VHlwZSBvYmp0eXBlLCBPaWQgb3duZXJJZCwgT2lkIG5zcF9vaWQpCiAJCQlk ZWZhY2xvYmp0eXBlID0gREVGQUNMT0JKX05BTUVTUEFDRTsKIAkJCWJyZWFrOwogCisJCWNhc2Ug T0JKRUNUX1ZBUklBQkxFOgorCQkJZGVmYWNsb2JqdHlwZSA9IERFRkFDTE9CSl9WQVJJQUJMRTsK KwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQlyZXR1cm4gTlVMTDsKIAl9CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv ZGVwZW5kZW5jeS5jCmluZGV4IDA5NmI2OGM3ZjMuLjFkYTA3MjBmNjEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv ZGVwZW5kZW5jeS5jCkBAIC02NSwxMiArNjUsMTQgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Rz X3RlbXBsYXRlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ191c2VyX21hcHBpbmcuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvY29tbWVudC5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJl bS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKICNpbmNsdWRlICJjb21t YW5kcy9leHRlbnNpb24uaCIKICNpbmNsdWRlICJjb21tYW5kcy9wb2xpY3kuaCIKICNpbmNsdWRl ICJjb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zY2hlbWFj bWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VjbGFiZWwuaCIKICNpbmNsdWRlICJjb21tYW5k cy9zZXF1ZW5jZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKQEAgLTE0NDQsNiAr MTQ0NiwxMCBAQCBkb0RlbGV0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgaW50IGZs YWdzKQogCQkJUmVtb3ZlUHVibGljYXRpb25CeUlkKG9iamVjdC0+b2JqZWN0SWQpOwogCQkJYnJl YWs7CiAKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQlEcm9wVmFyaWFibGVCeUlkKG9i amVjdC0+b2JqZWN0SWQpOworCQkJYnJlYWs7CisKIAkJY2FzZSBDYXN0UmVsYXRpb25JZDoKIAkJ Y2FzZSBDb2xsYXRpb25SZWxhdGlvbklkOgogCQljYXNlIENvbnZlcnNpb25SZWxhdGlvbklkOgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZCBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvbWVzb24uYnVpbGQKaW5kZXggMTk1OGVhOTIzOC4uZWQ0NGM4NzdmYyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9j YXRhbG9nL21lc29uLmJ1aWxkCkBAIC0zMiw2ICszMiw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBm aWxlcygKICAgJ3BnX3NoZGVwZW5kLmMnLAogICAncGdfc3Vic2NyaXB0aW9uLmMnLAogICAncGdf dHlwZS5jJywKKyAgJ3BnX3ZhcmlhYmxlLmMnLAogICAnc3RvcmFnZS5jJywKICAgJ3RvYXN0aW5n LmMnLAogKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKaW5kZXggZDk3ZDYzMmE3ZS4uNDMwN2NhZDE1 YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYworKysgYi9zcmMv YmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ190c19wYXJzZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3RlbXBsYXRl LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192 YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKICNpbmNsdWRlICJj b21tb24vaGFzaGZuX3Vuc3RhYmxlLmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5oIgpAQCAtMjI1LDYg KzIyNiw3IEBAIHN0YXRpYyBib29sIFRTUGFyc2VySXNWaXNpYmxlRXh0KE9pZCBwcnNJZCwgYm9v bCAqaXNfbWlzc2luZyk7CiBzdGF0aWMgYm9vbCBUU0RpY3Rpb25hcnlJc1Zpc2libGVFeHQoT2lk IGRpY3RJZCwgYm9vbCAqaXNfbWlzc2luZyk7CiBzdGF0aWMgYm9vbCBUU1RlbXBsYXRlSXNWaXNp YmxlRXh0KE9pZCB0bXBsSWQsIGJvb2wgKmlzX21pc3NpbmcpOwogc3RhdGljIGJvb2wgVFNDb25m aWdJc1Zpc2libGVFeHQoT2lkIGNmZ2lkLCBib29sICppc19taXNzaW5nKTsKK3N0YXRpYyBib29s IFZhcmlhYmxlSXNWaXNpYmxlRXh0KE9pZCB2YXJpZCwgYm9vbCAqaXNfbWlzc2luZyk7CiBzdGF0 aWMgdm9pZCByZWNvbXB1dGVOYW1lc3BhY2VQYXRoKHZvaWQpOwogc3RhdGljIHZvaWQgQWNjZXNz VGVtcFRhYmxlTmFtZXNwYWNlKGJvb2wgZm9yY2UpOwogc3RhdGljIHZvaWQgSW5pdFRlbXBUYWJs ZU5hbWVzcGFjZSh2b2lkKTsKQEAgLTk4Niw2ICs5ODgsODQgQEAgUmVsYXRpb25Jc1Zpc2libGVF eHQoT2lkIHJlbGlkLCBib29sICppc19taXNzaW5nKQogCXJldHVybiB2aXNpYmxlOwogfQogCisv KgorICogVmFyaWFibGVJc1Zpc2libGUKKyAqCQlEZXRlcm1pbmUgd2hldGhlciBhIHZhcmlhYmxl IChpZGVudGlmaWVkIGJ5IE9JRCkgaXMgdmlzaWJsZSBpbiB0aGUKKyAqCQljdXJyZW50IHNlYXJj aCBwYXRoLiBWaXNpYmxlIG1lYW5zICJ3b3VsZCBiZSBmb3VuZCBieSBzZWFyY2hpbmcKKyAqCQlm b3IgdGhlIHVucXVhbGlmaWVkIHZhcmlhYmxlIG5hbWUiLgorICovCitib29sCitWYXJpYWJsZUlz VmlzaWJsZShPaWQgdmFyaWQpCit7CisJcmV0dXJuIFZhcmlhYmxlSXNWaXNpYmxlRXh0KHZhcmlk LCBOVUxMKTsKK30KKworLyoKKyAqIFZhcmlhYmxlSXNWaXNpYmxlRXh0CisgKgkJQXMgYWJvdmUs IGJ1dCBpZiB0aGUgdmFyaWFibGUgaXNuJ3QgZm91bmQgYW5kIGlzX21pc3NpbmcgaXMgbm90IE5V TEwsCisgKgkJdGhlbiBzZXQgKmlzX21pc3NpbmcgPSB0cnVlIGFuZCByZXR1cm4gZmFsc2UsIGlu c3RlYWQgb2YgdGhyb3dpbmcKKyAqCQlhbiBlcnJvci4gKENhbGxlciBtdXN0IGluaXRpYWxpemUg KmlzX21pc3NpbmcgPSBmYWxzZS4pCisgKi8KK3N0YXRpYyBib29sCitWYXJpYWJsZUlzVmlzaWJs ZUV4dChPaWQgdmFyaWQsIGJvb2wgKmlzX21pc3NpbmcpCit7CisJSGVhcFR1cGxlCXZhcnR1cDsK KwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisJT2lkCQkJdmFybmFtZXNwYWNlOworCWJvb2wJ CXZpc2libGU7CisKKwl2YXJ0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVj dElkR2V0RGF0dW0odmFyaWQpKTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodmFydHVwKSkKKwl7 CisJCWlmIChpc19taXNzaW5nICE9IE5VTEwpCisJCXsKKwkJCSppc19taXNzaW5nID0gdHJ1ZTsK KwkJCXJldHVybiBmYWxzZTsKKwkJfQorCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFp bGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCX0KKwl2YXJmb3JtID0gKEZv cm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh2YXJ0dXApOworCisJcmVjb21wdXRlTmFtZXNwYWNl UGF0aCgpOworCisJLyoKKwkgKiBRdWljayBjaGVjazogaWYgaXQgYWluJ3QgaW4gdGhlIHBhdGgg YXQgYWxsLCBpdCBhaW4ndCB2aXNpYmxlLiBXZQorCSAqIGRvbid0IGV4cGVjdCB1c2FnZSBvZiBz ZXNzaW9uIHZhcmlhYmxlcyBpbiB0aGUgc3lzdGVtIG5hbWVzcGFjZS4KKwkgKi8KKwl2YXJuYW1l c3BhY2UgPSB2YXJmb3JtLT52YXJuYW1lc3BhY2U7CisJaWYgKCFsaXN0X21lbWJlcl9vaWQoYWN0 aXZlU2VhcmNoUGF0aCwgdmFybmFtZXNwYWNlKSkKKwkJdmlzaWJsZSA9IGZhbHNlOworCWVsc2UK Kwl7CisJCS8qCisJCSAqIElmIGl0IGlzIGluIHRoZSBwYXRoLCBpdCBtaWdodCBzdGlsbCBub3Qg YmUgdmlzaWJsZTsgaXQgY291bGQgYmUKKwkJICogaGlkZGVuIGJ5IGFub3RoZXIgdmFyaWFibGUg b2YgdGhlIHNhbWUgbmFtZSBlYXJsaWVyIGluIHRoZSBwYXRoLiBTbworCQkgKiB3ZSBtdXN0IGRv IGEgc2xvdyBjaGVjayBmb3IgY29uZmxpY3RpbmcgcmVsYXRpb25zLgorCQkgKi8KKwkJY2hhcgkg ICAqdmFybmFtZSA9IE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSk7CisKKwkJdmlzaWJsZSA9IGZh bHNlOworCQlmb3JlYWNoX29pZChuYW1lc3BhY2VJZCwgYWN0aXZlU2VhcmNoUGF0aCkKKwkJewor CQkJaWYgKG5hbWVzcGFjZUlkID09IHZhcm5hbWVzcGFjZSkKKwkJCXsKKwkJCQkvKiBmb3VuZCBp dCBmaXJzdCBpbiBwYXRoICovCisJCQkJdmlzaWJsZSA9IHRydWU7CisJCQkJYnJlYWs7CisJCQl9 CisJCQlpZiAoT2lkSXNWYWxpZChnZXRfdmFybmFtZV92YXJpZCh2YXJuYW1lLCBuYW1lc3BhY2VJ ZCkpKQorCQkJeworCQkJCS8qIGZvdW5kIHNvbWV0aGluZyBlbHNlIGZpcnN0IGluIHBhdGggKi8K KwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0KKworCVJlbGVhc2VTeXNDYWNoZSh2YXJ0dXApOwor CisJcmV0dXJuIHZpc2libGU7Cit9CiAKIC8qCiAgKiBUeXBlbmFtZUdldFR5cGlkCkBAIC0zMjg5 LDYgKzMzNjksMTMzIEBAIFRTQ29uZmlnSXNWaXNpYmxlRXh0KE9pZCBjZmdpZCwgYm9vbCAqaXNf bWlzc2luZykKIAlyZXR1cm4gdmlzaWJsZTsKIH0KIAorLyoKKyAqIFJldHVybnMgb2lkIG9mIHNl c3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IHBvc3NpYmx5IHF1YWxpZmllZCBpZGVudGlmaWVy LgorICoKKyAqIElmIG5vdCBmb3VuZCwgcmV0dXJucyBJbnZhbGlkT2lkIGlmIG1pc3Npbmdfb2ss IGVsc2UgdGhyb3dzIGVycm9yLgorICovCitPaWQKK0xvb2t1cFZhcmlhYmxlKGNvbnN0IGNoYXIg Km5zcG5hbWUsCisJCQkgICBjb25zdCBjaGFyICp2YXJuYW1lLAorCQkJICAgYm9vbCBtaXNzaW5n X29rKQoreworCU9pZAkJCXZhcm9pZCA9IEludmFsaWRPaWQ7CisKKwlpZiAobnNwbmFtZSkKKwl7 CisJCU9pZCBuYW1lc3BhY2VJZCA9IExvb2t1cEV4cGxpY2l0TmFtZXNwYWNlKG5zcG5hbWUsIG1p c3Npbmdfb2spOworCisJCS8qIGlmIG5zcG5hbWUgaXMgYSBrbm93biBuYW1lc3BhY2UsIHRoZSB2 YXJpYWJsZSBtdXN0IGJlIHRoZXJlICovCisJCWlmIChPaWRJc1ZhbGlkKG5hbWVzcGFjZUlkKSkK KwkJeworCQkJdmFyb2lkID0gR2V0U3lzQ2FjaGVPaWQyKFZBUklBQkxFTkFNRU5TUCwgQW51bV9w Z192YXJpYWJsZV9vaWQsCisJCQkJCQkJCQkgUG9pbnRlckdldERhdHVtKHZhcm5hbWUpLAorCQkJ CQkJCQkJIE9iamVjdElkR2V0RGF0dW0obmFtZXNwYWNlSWQpKTsKKwkJfQorCX0KKwllbHNlCisJ eworCQkvKiBpdGVyYXRlIG92ZXIgdGhlIHNjaGVtYXMgb24gdGhlIHNlYXJjaF9wYXRoICovCisJ CXJlY29tcHV0ZU5hbWVzcGFjZVBhdGgoKTsKKworCQlmb3JlYWNoX29pZChuYW1lc3BhY2VJZCwg YWN0aXZlU2VhcmNoUGF0aCkKKwkJeworCQkJdmFyb2lkID0gR2V0U3lzQ2FjaGVPaWQyKFZBUklB QkxFTkFNRU5TUCwgQW51bV9wZ192YXJpYWJsZV9vaWQsCisJCQkJCQkJCQkgUG9pbnRlckdldERh dHVtKHZhcm5hbWUpLAorCQkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0obmFtZXNwYWNlSWQpKTsK KworCQkJaWYgKE9pZElzVmFsaWQodmFyb2lkKSkKKwkJCQlicmVhazsKKwkJfQorCX0KKworCWlm ICghT2lkSXNWYWxpZCh2YXJvaWQpICYmICFtaXNzaW5nX29rKQorCXsKKwkJaWYgKG5zcG5hbWUp CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpF Q1QpLAorCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiBkb2VzIG5vdCBl eGlzdCIsCisJCQkJCQkJbnNwbmFtZSwgdmFybmFtZSkpKTsKKwkJZWxzZQorCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJIGVy cm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJCXZh cm5hbWUpKSk7CisJfQorCisJcmV0dXJuIHZhcm9pZDsKK30KKworLyoKKyAqIFJldHVybnMgb2lk IG9mIHNlc3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IHBvc3NpYmx5IHF1YWxpZmllZCBpZGVu dGlmaWVyCisgKgorICogSWYgbm90IGZvdW5kLCByZXR1cm5zIEludmFsaWRPaWQgaWYgbWlzc2lu Z19vaywgZWxzZSB0aHJvd3MgZXJyb3IuCisgKi8KK09pZAorTG9va3VwVmFyaWFibGVGcm9tTmFt ZUxpc3QoTGlzdCAqbmFtZXMsCisJCQkJCQkgICBib29sIG1pc3Npbmdfb2spCit7CisJY2hhcgkg ICAqY2F0bmFtZSA9IE5VTEw7CisJY2hhcgkgICAqbnNwbmFtZSA9IE5VTEw7CisJY2hhcgkgICAq dmFybmFtZSA9IE5VTEw7CisKKwlzd2l0Y2ggKGxpc3RfbGVuZ3RoKG5hbWVzKSkKKwl7CisJCWNh c2UgMToKKwkJCXZhcm5hbWUgPSBzdHJWYWwobGluaXRpYWwobmFtZXMpKTsKKwkJCWJyZWFrOwor CQljYXNlIDI6CisJCQluc3BuYW1lID0gc3RyVmFsKGxpbml0aWFsKG5hbWVzKSk7CisJCQl2YXJu YW1lID0gc3RyVmFsKGxzZWNvbmQobmFtZXMpKTsKKwkJCWJyZWFrOworCQljYXNlIDM6CisJCQlj YXRuYW1lID0gc3RyVmFsKGxpbml0aWFsKG5hbWVzKSk7CisJCQluc3BuYW1lID0gc3RyVmFsKGxz ZWNvbmQobmFtZXMpKTsKKwkJCXZhcm5hbWUgPSBzdHJWYWwobHRoaXJkKG5hbWVzKSk7CisKKwkJ CS8qIGNoZWNrIGNhdGFsb2cgbmFtZSAqLworCQkJaWYgKHN0cmNtcChjYXRuYW1lLCBnZXRfZGF0 YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpKSAhPSAwKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNn KCJjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICVzIiwKKwkJ CQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJCQlicmVhazsKKwkJZGVmYXVsdDoK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwK KwkJCQkJIGVycm1zZygiaW1wcm9wZXIgc2Vzc2lvbiB2YXJpYWJsZSBuYW1lICh0b28gbWFueSBk b3R0ZWQgbmFtZXMpOiAlcyIsCisJCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJ CQlicmVhazsKKwl9CisKKwlyZXR1cm4gTG9va3VwVmFyaWFibGUobnNwbmFtZSwgdmFybmFtZSwg bWlzc2luZ19vayk7Cit9CisKKy8qCisgKiBUaGUgaW5wdXQgbGlzdCBjb250YWlucyBuYW1lcyB3 aXRoIGluZGlyZWN0aW9uIGV4cHJlc3Npb25zIHVzZWQgYXMgdGhlIGxlZnQKKyAqIHBhcnQgb2Yg TEVUIHN0YXRlbWVudC4gVGhlIGZvbGxvd2luZyByb3V0aW5lIHJldHVybnMgYSBuZXcgbGlzdCB3 aXRoIG9ubHkKKyAqIGluaXRpYWwgc3RyaW5ncyAobmFtZXMpIC0gd2l0aG91dCBpbmRpcmVjdGlv biBleHByZXNzaW9ucy4KKyAqLworTGlzdCAqCitOYW1lc0Zyb21MaXN0KExpc3QgKm5hbWVzKQor eworCUxpc3RDZWxsICAgKmw7CisJTGlzdAkgICAqcmVzdWx0ID0gTklMOworCisJZm9yZWFjaChs LCBuYW1lcykKKwl7CisJCU5vZGUJICAgKm4gPSBsZmlyc3QobCk7CisKKwkJaWYgKElzQShuLCBT dHJpbmcpKQorCQl7CisJCQlyZXN1bHQgPSBsYXBwZW5kKHJlc3VsdCwgbik7CisJCX0KKwkJZWxz ZQorCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIHJlc3VsdDsKK30KIAogLyoKICAqIERlY29uc3Ry dWN0UXVhbGlmaWVkTmFtZQpAQCAtNTA4NSwzICs1MjkyLDE3IEBAIHBnX2lzX290aGVyX3RlbXBf c2NoZW1hKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlQR19SRVRVUk5fQk9PTChpc090aGVyVGVtcE5h bWVzcGFjZShvaWQpKTsKIH0KKworRGF0dW0KK3BnX3ZhcmlhYmxlX2lzX3Zpc2libGUoUEdfRlVO Q1RJT05fQVJHUykKK3sKKwlPaWQJCQlvaWQgPSBQR19HRVRBUkdfT0lEKDApOworCWJvb2wJCXJl c3VsdDsKKwlib29sCQlpc19taXNzaW5nID0gZmFsc2U7CisKKwlyZXN1bHQgPSBWYXJpYWJsZUlz VmlzaWJsZUV4dChvaWQsICZpc19taXNzaW5nKTsKKworCWlmIChpc19taXNzaW5nKQorCQlQR19S RVRVUk5fTlVMTCgpOworCVBHX1JFVFVSTl9CT09MKHJlc3VsdCk7Cit9CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv b2JqZWN0YWRkcmVzcy5jCmluZGV4IGQ4ZWI4ZDNkZWEuLjRhNDY0ZGZlYTcgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCisrKyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvb2JqZWN0YWRkcmVzcy5jCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ190c190ZW1wbGF0ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfdXNlcl9tYXBwaW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJp YWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKICNpbmNsdWRlICJjb21t YW5kcy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy9ldmVudF90cmlnZ2VyLmgiCkBAIC02 MzYsNiArNjM3LDIwIEBAIHN0YXRpYyBjb25zdCBPYmplY3RQcm9wZXJ0eVR5cGUgT2JqZWN0UHJv cGVydHlbXSA9CiAJCU9CSkVDVF9VU0VSX01BUFBJTkcsCiAJCWZhbHNlCiAJfSwKKwl7CisJCSJz ZXNzaW9uIHZhcmlhYmxlIiwKKwkJVmFyaWFibGVSZWxhdGlvbklkLAorCQlWYXJpYWJsZU9pZElu ZGV4SWQsCisJCVZBUklBQkxFT0lELAorCQlWQVJJQUJMRU5BTUVOU1AsCisJCUFudW1fcGdfdmFy aWFibGVfb2lkLAorCQlBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWUsCisJCUFudW1fcGdfdmFyaWFi bGVfdmFybmFtZXNwYWNlLAorCQlBbnVtX3BnX3ZhcmlhYmxlX3Zhcm93bmVyLAorCQlBbnVtX3Bn X3ZhcmlhYmxlX3ZhcmFjbCwKKwkJT0JKRUNUX1ZBUklBQkxFLAorCQl0cnVlCisJfQogfTsKIAog LyoKQEAgLTgzMSw2ICs4NDYsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9iamVjdF90eXBlX21h cAogCX0sCiAJewogCQkic3RhdGlzdGljcyBvYmplY3QiLCBPQkpFQ1RfU1RBVElTVElDX0VYVAor CX0sCisJeworCQkic2Vzc2lvbiB2YXJpYWJsZSIsIE9CSkVDVF9WQVJJQUJMRQogCX0KIH07CiAK QEAgLTg1Niw2ICs4NzQsNyBAQCBzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2FkZHJl c3NfYXR0cmRlZihPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCQkJCQkJCQlib29sIG1pc3Npbmdf b2spOwogc3RhdGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX3R5cGUoT2JqZWN0 VHlwZSBvYmp0eXBlLAogCQkJCQkJCQkJCQkgVHlwZU5hbWUgKnR5cGVuYW1lLCBib29sIG1pc3Np bmdfb2spOworc3RhdGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX3ZhcmlhYmxl KExpc3QgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKTsKIHN0YXRpYyBPYmplY3RBZGRyZXNzIGdl dF9vYmplY3RfYWRkcmVzc19vcGNmKE9iamVjdFR5cGUgb2JqdHlwZSwgTGlzdCAqb2JqZWN0LAog CQkJCQkJCQkJCQkgYm9vbCBtaXNzaW5nX29rKTsKIHN0YXRpYyBPYmplY3RBZGRyZXNzIGdldF9v YmplY3RfYWRkcmVzc19vcGZfbWVtYmVyKE9iamVjdFR5cGUgb2JqdHlwZSwKQEAgLTExMjcsNiAr MTE0Niw5IEBAIGdldF9vYmplY3RfYWRkcmVzcyhPYmplY3RUeXBlIG9ianR5cGUsIE5vZGUgKm9i amVjdCwKIAkJCQkJCQkJCQkJCQkJCSBtaXNzaW5nX29rKTsKIAkJCQlhZGRyZXNzLm9iamVjdFN1 YklkID0gMDsKIAkJCQlicmVhazsKKwkJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCWFkZHJl c3MgPSBnZXRfb2JqZWN0X2FkZHJlc3NfdmFyaWFibGUoY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSwg bWlzc2luZ19vayk7CisJCQkJYnJlYWs7CiAJCQkJLyogbm8gZGVmYXVsdCwgdG8gbGV0IGNvbXBp bGVyIHdhcm4gYWJvdXQgbWlzc2luZyBjYXNlICovCiAJCX0KIApAQCAtMjAwNSwxNiArMjAyNywy MCBAQCBnZXRfb2JqZWN0X2FkZHJlc3NfZGVmYWNsKExpc3QgKm9iamVjdCwgYm9vbCBtaXNzaW5n X29rKQogCQljYXNlIERFRkFDTE9CSl9OQU1FU1BBQ0U6CiAJCQlvYmp0eXBlX3N0ciA9ICJzY2hl bWFzIjsKIAkJCWJyZWFrOworCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCW9ianR5cGVf c3RyID0gInZhcmlhYmxlcyI7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVyZXBvcnQoRVJS T1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJ CQkgZXJybXNnKCJ1bnJlY29nbml6ZWQgZGVmYXVsdCBBQ0wgb2JqZWN0IHR5cGUgXCIlY1wiIiwg b2JqdHlwZSksCi0JCQkJCSBlcnJoaW50KCJWYWxpZCBvYmplY3QgdHlwZXMgYXJlIFwiJWNcIiwg XCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLiIsCisJCQkJCSBlcnJoaW50KCJWYWxpZCBv YmplY3QgdHlwZXMgYXJlIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBc IiVjXCIuIiwKIAkJCQkJCQkgREVGQUNMT0JKX1JFTEFUSU9OLAogCQkJCQkJCSBERUZBQ0xPQkpf U0VRVUVOQ0UsCiAJCQkJCQkJIERFRkFDTE9CSl9GVU5DVElPTiwKIAkJCQkJCQkgREVGQUNMT0JK X1RZUEUsCi0JCQkJCQkJIERFRkFDTE9CSl9OQU1FU1BBQ0UpKSk7CisJCQkJCQkJIERFRkFDTE9C Sl9OQU1FU1BBQ0UsCisJCQkJCQkJIERFRkFDTE9CSl9WQVJJQUJMRSkpKTsKIAl9CiAKIAkvKgpA QCAtMjA5OCw2ICsyMTI0LDI0IEBAIHRleHRhcnJheV90b19zdHJ2YWx1ZWxpc3QoQXJyYXlUeXBl ICphcnIpCiAJcmV0dXJuIGxpc3Q7CiB9CiAKKy8qCisgKiBGaW5kIHRoZSBPYmplY3RBZGRyZXNz IGZvciBhIHNlc3Npb24gdmFyaWFibGUKKyAqLworc3RhdGljIE9iamVjdEFkZHJlc3MKK2dldF9v YmplY3RfYWRkcmVzc192YXJpYWJsZShMaXN0ICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKK3sK KwlPYmplY3RBZGRyZXNzIGFkZHJlc3M7CisJY2hhcgkgICAqbnNwbmFtZSA9IE5VTEw7CisJY2hh cgkgICAqdmFybmFtZSA9IE5VTEw7CisKKwlPYmplY3RBZGRyZXNzU2V0KGFkZHJlc3MsIFZhcmlh YmxlUmVsYXRpb25JZCwgSW52YWxpZE9pZCk7CisKKwlEZWNvbnN0cnVjdFF1YWxpZmllZE5hbWUo b2JqZWN0LCAmbnNwbmFtZSwgJnZhcm5hbWUpOworCWFkZHJlc3Mub2JqZWN0SWQgPSBMb29rdXBW YXJpYWJsZShuc3BuYW1lLCB2YXJuYW1lLCBtaXNzaW5nX29rKTsKKworCXJldHVybiBhZGRyZXNz OworfQorCiAvKgogICogU1FMLWNhbGxhYmxlIHZlcnNpb24gb2YgZ2V0X29iamVjdF9hZGRyZXNz CiAgKi8KQEAgLTIyOTIsNiArMjMzNiw3IEBAIHBnX2dldF9vYmplY3RfYWRkcmVzcyhQR19GVU5D VElPTl9BUkdTKQogCQljYXNlIE9CSkVDVF9UQUJDT05TVFJBSU5UOgogCQljYXNlIE9CSkVDVF9P UENMQVNTOgogCQljYXNlIE9CSkVDVF9PUEZBTUlMWToKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6 CiAJCQlvYmpub2RlID0gKE5vZGUgKikgbmFtZTsKIAkJCWJyZWFrOwogCQljYXNlIE9CSkVDVF9B Q0NFU1NfTUVUSE9EOgpAQCAtMjQ2Myw2ICsyNTA4LDcgQEAgY2hlY2tfb2JqZWN0X293bmVyc2hp cChPaWQgcm9sZWlkLCBPYmplY3RUeXBlIG9ianR5cGUsIE9iamVjdEFkZHJlc3MgYWRkcmVzcywK IAkJY2FzZSBPQkpFQ1RfU1RBVElTVElDX0VYVDoKIAkJY2FzZSBPQkpFQ1RfVFNESUNUSU9OQVJZ OgogCQljYXNlIE9CSkVDVF9UU0NPTkZJR1VSQVRJT046CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxF OgogCQkJaWYgKCFvYmplY3Rfb3duZXJjaGVjayhhZGRyZXNzLmNsYXNzSWQsIGFkZHJlc3Mub2Jq ZWN0SWQsIHJvbGVpZCkpCiAJCQkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBv Ymp0eXBlLAogCQkJCQkJCSAgIE5hbWVMaXN0VG9TdHJpbmcoY2FzdE5vZGUoTGlzdCwgb2JqZWN0 KSkpOwpAQCAtMzQ5Miw2ICszNTM4LDMyIEBAIGdldE9iamVjdERlc2NyaXB0aW9uKGNvbnN0IE9i amVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQkJCWJyZWFrOwogCQkJfQog CisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJeworCQkJCWNoYXIJICAgKm5zcG5hbWU7 CisJCQkJSGVhcFR1cGxlCXR1cDsKKwkJCQlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisKKwkJ CQl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0ob2Jq ZWN0LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQkJCQll bG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIs CisJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisKKwkJCQl2YXJmb3JtID0gKEZvcm1fcGdfdmFy aWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJCQkJaWYgKFZhcmlhYmxlSXNWaXNpYmxlKG9iamVj dC0+b2JqZWN0SWQpKQorCQkJCQluc3BuYW1lID0gTlVMTDsKKwkJCQllbHNlCisJCQkJCW5zcG5h bWUgPSBnZXRfbmFtZXNwYWNlX25hbWUodmFyZm9ybS0+dmFybmFtZXNwYWNlKTsKKworCQkJCWFw cGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgXygic2Vzc2lvbiB2YXJpYWJsZSAlcyIpLAorCQkJCQkJ CQkgcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIobnNwbmFtZSwKKwkJCQkJCQkJCQkJCQkJCU5h bWVTdHIodmFyZm9ybS0+dmFybmFtZSkpKTsKKworCQkJCVJlbGVhc2VTeXNDYWNoZSh0dXApOwor CQkJCWJyZWFrOworCQkJfQorCiAJCWNhc2UgVFNQYXJzZXJSZWxhdGlvbklkOgogCQkJewogCQkJ CUhlYXBUdXBsZQl0dXA7CkBAIC0zODQ0LDYgKzM5MTYsMTYgQEAgZ2V0T2JqZWN0RGVzY3JpcHRp b24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQkJCQkJ CQkJIF8oImRlZmF1bHQgcHJpdmlsZWdlcyBvbiBuZXcgc2NoZW1hcyBiZWxvbmdpbmcgdG8gcm9s ZSAlcyIpLAogCQkJCQkJCQkJCSByb2xlbmFtZSk7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBE RUZBQ0xPQkpfVkFSSUFCTEU6CisJCQkJCQlpZiAobnNwbmFtZSkKKwkJCQkJCQlhcHBlbmRTdHJp bmdJbmZvKCZidWZmZXIsCisJCQkJCQkJCQkJCSBfKCJkZWZhdWx0IHByaXZpbGVnZXMgb24gbmV3 IHNlc3Npb24gdmFyaWFibGVzIGJlbG9uZ2luZyB0byByb2xlICVzIGluIHNjaGVtYSAlcyIpLAor CQkJCQkJCQkJCQkgcm9sZW5hbWUsIG5zcG5hbWUpOworCQkJCQkJZWxzZQorCQkJCQkJCWFwcGVu ZFN0cmluZ0luZm8oJmJ1ZmZlciwKKwkJCQkJCQkJCQkJIF8oImRlZmF1bHQgcHJpdmlsZWdlcyBv biBuZXcgc2Vzc2lvbiB2YXJpYWJsZXMgYmVsb25naW5nIHRvIHJvbGUgJXMiKSwKKwkJCQkJCQkJ CQkJIHJvbGVuYW1lKTsKKwkJCQkJCWJyZWFrOwogCQkJCQlkZWZhdWx0OgogCQkJCQkJLyogc2hv dWxkbid0IGdldCBoZXJlICovCiAJCQkJCQlpZiAobnNwbmFtZSkKQEAgLTQ2NjAsNiArNDc0Miwx MCBAQCBnZXRPYmplY3RUeXBlRGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0 LCBib29sIG1pc3Npbmdfb2spCiAJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJ0 cmFuc2Zvcm0iKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJ YXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCAic2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJ YnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnN1cHBvcnRlZCBvYmplY3Qg Y2xhc3M6ICV1Iiwgb2JqZWN0LT5jbGFzc0lkKTsKIAl9CkBAIC01NzY2LDYgKzU4NTIsMTAgQEAg Z2V0T2JqZWN0SWRlbnRpdHlQYXJ0cyhjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQkJ CQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsCiAJCQkJCQkJCQkJCSAgICIgb24gc2No ZW1hcyIpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgREVGQUNMT0JKX1ZBUklBQkxFOgorCQkJ CQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLAorCQkJCQkJCQkJCQkgICAiIG9uIHNl c3Npb24gdmFyaWFibGVzIik7CisJCQkJCQlicmVhazsKIAkJCQl9CiAKIAkJCQlpZiAob2JqbmFt ZSkKQEAgLTYwMDYsNiArNjA5NiwzMyBAQCBnZXRPYmplY3RJZGVudGl0eVBhcnRzKGNvbnN0IE9i amVjdEFkZHJlc3MgKm9iamVjdCwKIAkJCX0KIAkJCWJyZWFrOwogCisJCWNhc2UgVmFyaWFibGVS ZWxhdGlvbklkOgorCQkJeworCQkJCWNoYXIJICAgKnNjaGVtYTsKKwkJCQljaGFyCSAgICp2YXJu YW1lOworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOwor CisJCQkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVt KG9iamVjdC0+b2JqZWN0SWQpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJ CQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUg JXUiLAorCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQpOworCisJCQkJdmFyZm9ybSA9IChGb3JtX3Bn X3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCQkJCXNjaGVtYSA9IGdldF9uYW1lc3BhY2Vf bmFtZV9vcl90ZW1wKHZhcmZvcm0tPnZhcm5hbWVzcGFjZSk7CisJCQkJdmFybmFtZSA9IE5hbWVT dHIodmFyZm9ybS0+dmFybmFtZSk7CisKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsICIl cyIsCisJCQkJCQkJCSBxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihzY2hlbWEsIHZhcm5hbWUp KTsKKworCQkJCWlmIChvYmpuYW1lKQorCQkJCQkqb2JqbmFtZSA9IGxpc3RfbWFrZTIoc2NoZW1h LCBwc3RyZHVwKHZhcm5hbWUpKTsKKworCQkJCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCQkJCWJy ZWFrOworCQkJfQorCiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2Jq ZWN0IGNsYXNzOiAldSIsIG9iamVjdC0+Y2xhc3NJZCk7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRl cGVuZC5jCmluZGV4IDUzNjE5MTI4NGUuLmM2ZmQxZmEwNzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfc2hkZXBlbmQuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3No ZGVwZW5kLmMKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX2RpY3Qu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Vz ZXJfbWFwcGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRl ICJjb21tYW5kcy9hbHRlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKICNp bmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKQEAgLTE3MTQsNiArMTcxNSw3IEBAIHNoZGVwUmVh c3NpZ25Pd25lZF9Pd25lcihGb3JtX3BnX3NoZGVwZW5kIHNkZXBGb3JtLCBPaWQgbmV3cm9sZSkK IAkJY2FzZSBEYXRhYmFzZVJlbGF0aW9uSWQ6CiAJCWNhc2UgVFNDb25maWdSZWxhdGlvbklkOgog CQljYXNlIFRTRGljdGlvbmFyeVJlbGF0aW9uSWQ6CisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklk OgogCQkJQWx0ZXJPYmplY3RPd25lcl9pbnRlcm5hbChzZGVwRm9ybS0+Y2xhc3NpZCwKIAkJCQkJ CQkJCSAgc2RlcEZvcm0tPm9iamlkLAogCQkJCQkJCQkJICBuZXdyb2xlKTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfdmFyaWFibGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yOWQ5 NjdhMmQ1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJs ZS5jCkBAIC0wLDAgKzEsMjUxIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ192YXJp YWJsZS5jCisgKgkJc2Vzc2lvbiB2YXJpYWJsZXMKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQg KGMpIDE5OTYtMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBv cnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBD YWxpZm9ybmlhCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCQlzcmMvYmFja2VuZC9jYXRhbG9n L3BnX3ZhcmlhYmxlLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaW5jbHVkZSAi cG9zdGdyZXMuaCIKKworI2luY2x1ZGUgImFjY2Vzcy9oZWFwYW0uaCIKKyNpbmNsdWRlICJjYXRh bG9nL2RlcGVuZGVuY3kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2luZGV4aW5nLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFjY2Vzcy5o IgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9w Z19uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisjaW5jbHVk ZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKKyNpbmNsdWRl ICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1 ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKK3N0YXRpYyBPYmplY3RBZGRyZXNzIGNyZWF0ZV92YXJp YWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAorCQkJCQkJCQkJIE9pZCB2YXJOYW1lc3BhY2UsCisJ CQkJCQkJCQkgT2lkIHZhclR5cGUsCisJCQkJCQkJCQkgaW50MzIgdmFyVHlwbW9kLAorCQkJCQkJ CQkJIE9pZCB2YXJPd25lciwKKwkJCQkJCQkJCSBPaWQgdmFyQ29sbGF0aW9uLAorCQkJCQkJCQkJ IGJvb2wgaWZfbm90X2V4aXN0cyk7CisKKworLyoKKyAqIENyZWF0ZXMgZW50cnkgaW4gcGdfdmFy aWFibGUgdGFibGUKKyAqLworc3RhdGljIE9iamVjdEFkZHJlc3MKK2NyZWF0ZV92YXJpYWJsZShj b25zdCBjaGFyICp2YXJOYW1lLAorCQkJCU9pZCB2YXJOYW1lc3BhY2UsCisJCQkJT2lkIHZhclR5 cGUsCisJCQkJaW50MzIgdmFyVHlwbW9kLAorCQkJCU9pZCB2YXJPd25lciwKKwkJCQlPaWQgdmFy Q29sbGF0aW9uLAorCQkJCWJvb2wgaWZfbm90X2V4aXN0cykKK3sKKwlBY2wJCSAgICp2YXJhY2w7 CisJTmFtZURhdGEJdmFybmFtZTsKKwlib29sCQludWxsc1tOYXR0c19wZ192YXJpYWJsZV07CisJ RGF0dW0JCXZhbHVlc1tOYXR0c19wZ192YXJpYWJsZV07CisJUmVsYXRpb24JcmVsOworCUhlYXBU dXBsZQl0dXA7CisJVHVwbGVEZXNjCXR1cGRlc2M7CisJT2JqZWN0QWRkcmVzcyBteXNlbGYsCisJ CQkJcmVmZXJlbmNlZDsKKwlPYmplY3RBZGRyZXNzZXMgKmFkZHJzOworCU9pZAkJCXZhcmlkOwor CisJQXNzZXJ0KHZhck5hbWUpOworCUFzc2VydChPaWRJc1ZhbGlkKHZhck5hbWVzcGFjZSkpOwor CUFzc2VydChPaWRJc1ZhbGlkKHZhclR5cGUpKTsKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJPd25l cikpOworCisJcmVsID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2 ZUxvY2spOworCisJLyoKKwkgKiBDaGVjayBmb3IgZHVwbGljYXRlcy4gTm90ZSB0aGF0IHRoaXMg ZG9lcyBub3QgcmVhbGx5IHByZXZlbnQKKwkgKiBkdXBsaWNhdGVzLCBpdCdzIGhlcmUganVzdCB0 byBwcm92aWRlIG5pY2VyIGVycm9yIG1lc3NhZ2UgaW4gY29tbW9uCisJICogY2FzZS4gVGhlIHJl YWwgcHJvdGVjdGlvbiBpcyB0aGUgdW5pcXVlIGtleSBvbiB0aGUgY2F0YWxvZy4KKwkgKi8KKwlp ZiAoU2VhcmNoU3lzQ2FjaGVFeGlzdHMyKFZBUklBQkxFTkFNRU5TUCwKKwkJCQkJCQkgIFBvaW50 ZXJHZXREYXR1bSh2YXJOYW1lKSwKKwkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0odmFyTmFtZXNw YWNlKSkpCisJeworCQlpZiAoaWZfbm90X2V4aXN0cykKKwkJCWVyZXBvcnQoTk9USUNFLAorCQkJ CQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJzZXNz aW9uIHZhcmlhYmxlIFwiJXNcIiBhbHJlYWR5IGV4aXN0cywgc2tpcHBpbmciLAorCQkJCQkJCXZh ck5hbWUpKSk7CisJCWVsc2UKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNP REVfRFVQTElDQVRFX09CSkVDVCksCisJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIl c1wiIGFscmVhZHkgZXhpc3RzIiwKKwkJCQkJCQl2YXJOYW1lKSkpOworCisJCXRhYmxlX2Nsb3Nl KHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwkJcmV0dXJuIEludmFsaWRPYmplY3RBZGRyZXNz OworCX0KKworCW1lbXNldCh2YWx1ZXMsIDAsIHNpemVvZih2YWx1ZXMpKTsKKwltZW1zZXQobnVs bHMsIGZhbHNlLCBzaXplb2YobnVsbHMpKTsKKworCW5hbWVzdHJjcHkoJnZhcm5hbWUsIHZhck5h bWUpOworCisJdmFyaWQgPSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBWYXJpYWJsZU9pZEluZGV4 SWQsIEFudW1fcGdfdmFyaWFibGVfb2lkKTsKKworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX29p ZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJpZCk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFi bGVfdmFybmFtZSAtIDFdID0gTmFtZUdldERhdHVtKCZ2YXJuYW1lKTsKKwl2YWx1ZXNbQW51bV9w Z192YXJpYWJsZV92YXJuYW1lc3BhY2UgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyTmFtZXNw YWNlKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBlIC0gMV0gPSBPYmplY3RJZEdl dERhdHVtKHZhclR5cGUpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnR5cG1vZCAtIDFd ID0gSW50MzJHZXREYXR1bSh2YXJUeXBtb2QpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zh cm93bmVyIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhck93bmVyKTsKKwl2YWx1ZXNbQW51bV9w Z192YXJpYWJsZV92YXJjb2xsYXRpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyQ29sbGF0 aW9uKTsKKworCXZhcmFjbCA9IGdldF91c2VyX2RlZmF1bHRfYWNsKE9CSkVDVF9WQVJJQUJMRSwg dmFyT3duZXIsCisJCQkJCQkJCSAgdmFyTmFtZXNwYWNlKTsKKwlpZiAodmFyYWNsICE9IE5VTEwp CisJCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmFjbCAtIDFdID0gUG9pbnRlckdldERhdHVt KHZhcmFjbCk7CisJZWxzZQorCQludWxsc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmFjbCAtIDFdID0g dHJ1ZTsKKworCXR1cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJlbCk7CisKKwl0dXAgPSBoZWFw X2Zvcm1fdHVwbGUodHVwZGVzYywgdmFsdWVzLCBudWxscyk7CisJQ2F0YWxvZ1R1cGxlSW5zZXJ0 KHJlbCwgdHVwKTsKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJpZCkpOworCisJYWRkcnMgPSBuZXdf b2JqZWN0X2FkZHJlc3NlcygpOworCisJT2JqZWN0QWRkcmVzc1NldChteXNlbGYsIFZhcmlhYmxl UmVsYXRpb25JZCwgdmFyaWQpOworCisJLyogZGVwZW5kZW5jeSBvbiBuYW1lc3BhY2UgKi8KKwlP YmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIE5hbWVzcGFjZVJlbGF0aW9uSWQsIHZhck5hbWVz cGFjZSk7CisJYWRkX2V4YWN0X29iamVjdF9hZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CisK KwkvKiBkZXBlbmRlbmN5IG9uIHVzZWQgdHlwZSAqLworCU9iamVjdEFkZHJlc3NTZXQocmVmZXJl bmNlZCwgVHlwZVJlbGF0aW9uSWQsIHZhclR5cGUpOworCWFkZF9leGFjdF9vYmplY3RfYWRkcmVz cygmcmVmZXJlbmNlZCwgYWRkcnMpOworCisJLyogZGVwZW5kZW5jeSBvbiBjb2xsYXRpb24gKi8K KwlpZiAoT2lkSXNWYWxpZCh2YXJDb2xsYXRpb24pICYmCisJCXZhckNvbGxhdGlvbiAhPSBERUZB VUxUX0NPTExBVElPTl9PSUQpCisJeworCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIENv bGxhdGlvblJlbGF0aW9uSWQsIHZhckNvbGxhdGlvbik7CisJCWFkZF9leGFjdF9vYmplY3RfYWRk cmVzcygmcmVmZXJlbmNlZCwgYWRkcnMpOworCX0KKworCXJlY29yZF9vYmplY3RfYWRkcmVzc19k ZXBlbmRlbmNpZXMoJm15c2VsZiwgYWRkcnMsIERFUEVOREVOQ1lfTk9STUFMKTsKKwlmcmVlX29i amVjdF9hZGRyZXNzZXMoYWRkcnMpOworCisJLyogZGVwZW5kZW5jeSBvbiBvd25lciAqLworCXJl Y29yZERlcGVuZGVuY3lPbk93bmVyKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIHZhck93bmVy KTsKKworCS8qIGRlcGVuZGVuY2llcyBvbiByb2xlcyBtZW50aW9uZWQgaW4gZGVmYXVsdCBBQ0wg Ki8KKwlyZWNvcmREZXBlbmRlbmN5T25OZXdBY2woVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwg MCwgdmFyT3duZXIsIHZhcmFjbCk7CisKKwkvKiBkZXBlbmRlbmN5IG9uIGV4dGVuc2lvbiAqLwor CXJlY29yZERlcGVuZGVuY3lPbkN1cnJlbnRFeHRlbnNpb24oJm15c2VsZiwgZmFsc2UpOworCisJ aGVhcF9mcmVldHVwbGUodHVwKTsKKworCS8qIHBvc3QgY3JlYXRpb24gaG9vayBmb3IgbmV3IGZ1 bmN0aW9uICovCisJSW52b2tlT2JqZWN0UG9zdENyZWF0ZUhvb2soVmFyaWFibGVSZWxhdGlvbklk LCB2YXJpZCwgMCk7CisKKwl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJ cmV0dXJuIG15c2VsZjsKK30KKworLyoKKyAqIENyZWF0ZXMgYSBuZXcgdmFyaWFibGUKKyAqCisg KiBVc2VkIGJ5IENSRUFURSBWQVJJQUJMRSBjb21tYW5kCisgKi8KK09iamVjdEFkZHJlc3MKK0Ny ZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0 bXQpCit7CisJT2lkCQkJbmFtZXNwYWNlaWQ7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlPaWQJ CQl0eXBpZDsKKwlpbnQzMgkJdHlwbW9kOworCU9pZAkJCXZhcm93bmVyID0gR2V0VXNlcklkKCk7 CisJT2lkCQkJY29sbGF0aW9uOworCU9pZAkJCXR5cGNvbGxhdGlvbjsKKwlPYmplY3RBZGRyZXNz IHZhcmlhYmxlOworCisJbmFtZXNwYWNlaWQgPQorCQlSYW5nZVZhckdldEFuZENoZWNrQ3JlYXRp b25OYW1lc3BhY2Uoc3RtdC0+dmFyaWFibGUsIE5vTG9jaywgTlVMTCk7CisKKwl0eXBlbmFtZVR5 cGVJZEFuZE1vZChwc3RhdGUsIHN0bXQtPnR5cGVOYW1lLCAmdHlwaWQsICZ0eXBtb2QpOworCisJ LyogZGlzYWxsb3cgcHNldWRvdHlwZXMgKi8KKwlpZiAoZ2V0X3R5cHR5cGUodHlwaWQpID09IFRZ UFRZUEVfUFNFVURPKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfV1JP TkdfT0JKRUNUX1RZUEUpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJl IHBzZXVkby10eXBlICVzIiwKKwkJCQkJCWZvcm1hdF90eXBlX2JlKHR5cGlkKSkpKTsKKworCWFj bHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhUeXBlUmVsYXRpb25JZCwgdHlwaWQsIEdldFVzZXJJ ZCgpLCBBQ0xfVVNBR0UpOworCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCWFjbGNo ZWNrX2Vycm9yX3R5cGUoYWNscmVzdWx0LCB0eXBpZCk7CisKKwl0eXBjb2xsYXRpb24gPSBnZXRf dHlwY29sbGF0aW9uKHR5cGlkKTsKKworCWlmIChzdG10LT5jb2xsQ2xhdXNlKQorCQljb2xsYXRp b24gPSBMb29rdXBDb2xsYXRpb24ocHN0YXRlLAorCQkJCQkJCQkJc3RtdC0+Y29sbENsYXVzZS0+ Y29sbG5hbWUsCisJCQkJCQkJCQlzdG10LT5jb2xsQ2xhdXNlLT5sb2NhdGlvbik7CisJZWxzZQor CQljb2xsYXRpb24gPSB0eXBjb2xsYXRpb247CisKKwkvKiBjb21wbGFpbiBpZiBDT0xMQVRFIGlz IGFwcGxpZWQgdG8gYW4gdW5jb2xsYXRhYmxlIHR5cGUgKi8KKwlpZiAoT2lkSXNWYWxpZChjb2xs YXRpb24pICYmICFPaWRJc1ZhbGlkKHR5cGNvbGxhdGlvbikpCisJCWVyZXBvcnQoRVJST1IsCisJ CQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJIGVycm1zZygiY29s bGF0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCBieSB0eXBlICVzIiwKKwkJCQkJCWZvcm1hdF90eXBl X2JlKHR5cGlkKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHN0bXQtPmNvbGxD bGF1c2UtPmxvY2F0aW9uKSkpOworCisJdmFyaWFibGUgPSBjcmVhdGVfdmFyaWFibGUoc3RtdC0+ dmFyaWFibGUtPnJlbG5hbWUsCisJCQkJCQkJICAgbmFtZXNwYWNlaWQsCisJCQkJCQkJICAgdHlw aWQsCisJCQkJCQkJICAgdHlwbW9kLAorCQkJCQkJCSAgIHZhcm93bmVyLAorCQkJCQkJCSAgIGNv bGxhdGlvbiwKKwkJCQkJCQkgICBzdG10LT5pZl9ub3RfZXhpc3RzKTsKKworCWVsb2coREVCVUcx LCAicmVjb3JkIGZvciBzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiAob2lkOiVkKSB3YXMgY3JlYXRl ZCBpbiBwZ192YXJpYWJsZSIsCisJCSBzdG10LT52YXJpYWJsZS0+cmVsbmFtZSwgdmFyaWFibGUu b2JqZWN0SWQpOworCisJcmV0dXJuIHZhcmlhYmxlOworfQorCisvKgorICogRHJvcCB2YXJpYWJs ZSBieSBPSUQKKyAqLwordm9pZAorRHJvcFZhcmlhYmxlQnlJZChPaWQgdmFyaWQpCit7CisJUmVs YXRpb24JcmVsOworCUhlYXBUdXBsZQl0dXA7CisKKwlyZWwgPSB0YWJsZV9vcGVuKFZhcmlhYmxl UmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEo VkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxl SXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgdmFy aWFibGUgJXUiLCB2YXJpZCk7CisKKwlDYXRhbG9nVHVwbGVEZWxldGUocmVsLCAmdHVwLT50X3Nl bGYpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwl0YWJsZV9jbG9zZShyZWwsIFJvd0V4 Y2x1c2l2ZUxvY2spOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIu YyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMKaW5kZXggNzhjMWQ0ZTFiOC4uNjcxNTNj ZDhiOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYworKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9hbHRlci5jCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ190c19kaWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c19wYXJzZXIuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX3RzX3RlbXBsYXRlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192 YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FsdGVyLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvY29sbGF0aW9uY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKQEAg LTE0MCw2ICsxNDEsMTAgQEAgcmVwb3J0X25hbWVzcGFjZV9jb25mbGljdChPaWQgY2xhc3NJZCwg Y29uc3QgY2hhciAqbmFtZSwgT2lkIG5zcE9pZCkKIAkJCUFzc2VydChPaWRJc1ZhbGlkKG5zcE9p ZCkpOwogCQkJbXNnZm10ID0gZ2V0dGV4dF9ub29wKCJ0ZXh0IHNlYXJjaCBjb25maWd1cmF0aW9u IFwiJXNcIiBhbHJlYWR5IGV4aXN0cyBpbiBzY2hlbWEgXCIlc1wiIik7CiAJCQlicmVhazsKKwkJ Y2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQlBc3NlcnQoT2lkSXNWYWxpZChuc3BPaWQpKTsK KwkJCW1zZ2ZtdCA9IGdldHRleHRfbm9vcCgic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgYWxyZWFk eSBleGlzdHMgaW4gc2NoZW1hIFwiJXNcIiIpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQll bG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2JqZWN0IGNsYXNzOiAldSIsIGNsYXNzSWQpOwogCQkJ YnJlYWs7CkBAIC00MTksNiArNDI0LDcgQEAgRXhlY1JlbmFtZVN0bXQoUmVuYW1lU3RtdCAqc3Rt dCkKIAkJY2FzZSBPQkpFQ1RfVFNURU1QTEFURToKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT046 CiAJCWNhc2UgT0JKRUNUX1NVQlNDUklQVElPTjoKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJ CQl7CiAJCQkJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOwogCQkJCVJlbGF0aW9uCWNhdGFsb2c7CkBA IC01NTksNiArNTY1LDcgQEAgRXhlY0FsdGVyT2JqZWN0U2NoZW1hU3RtdChBbHRlck9iamVjdFNj aGVtYVN0bXQgKnN0bXQsCiAJCWNhc2UgT0JKRUNUX1RTRElDVElPTkFSWToKIAkJY2FzZSBPQkpF Q1RfVFNQQVJTRVI6CiAJCWNhc2UgT0JKRUNUX1RTVEVNUExBVEU6CisJCWNhc2UgT0JKRUNUX1ZB UklBQkxFOgogCQkJewogCQkJCVJlbGF0aW9uCWNhdGFsb2c7CiAJCQkJT2lkCQkJY2xhc3NJZDsK QEAgLTY0MSw2ICs2NDgsNyBAQCBBbHRlck9iamVjdE5hbWVzcGFjZV9vaWQoT2lkIGNsYXNzSWQs IE9pZCBvYmppZCwgT2lkIG5zcE9pZCwKIAkJY2FzZSBUU0RpY3Rpb25hcnlSZWxhdGlvbklkOgog CQljYXNlIFRTVGVtcGxhdGVSZWxhdGlvbklkOgogCQljYXNlIFRTQ29uZmlnUmVsYXRpb25JZDoK KwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CiAJCQl7CiAJCQkJUmVsYXRpb24JY2F0YWxvZzsK IApAQCAtODcxLDYgKzg3OSw3IEBAIEV4ZWNBbHRlck93bmVyU3RtdChBbHRlck93bmVyU3RtdCAq c3RtdCkKIAkJY2FzZSBPQkpFQ1RfVEFCTEVTUEFDRToKIAkJY2FzZSBPQkpFQ1RfVFNESUNUSU9O QVJZOgogCQljYXNlIE9CSkVDVF9UU0NPTkZJR1VSQVRJT046CisJCWNhc2UgT0JKRUNUX1ZBUklB QkxFOgogCQkJewogCQkJCU9iamVjdEFkZHJlc3MgYWRkcmVzczsKIApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3Bj bWRzLmMKaW5kZXggY2ViOWEyMjliNi4uZWJiNTg1ZGM0YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvZHJvcGNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21k cy5jCkBAIC00NzYsNiArNDc2LDEwIEBAIGRvZXNfbm90X2V4aXN0X3NraXBwaW5nKE9iamVjdFR5 cGUgb2JqdHlwZSwgTm9kZSAqb2JqZWN0KQogCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwdWJsaWNh dGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nIik7CiAJCQluYW1lID0gc3RyVmFs KG9iamVjdCk7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQltc2cgPSBn ZXR0ZXh0X25vb3AoInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGRvZXMgbm90IGV4aXN0LCBza2lw cGluZyIpOworCQkJbmFtZSA9IE5hbWVMaXN0VG9TdHJpbmcoY2FzdE5vZGUoTGlzdCwgb2JqZWN0 KSk7CisJCQlicmVhazsKIAogCQljYXNlIE9CSkVDVF9DT0xVTU46CiAJCWNhc2UgT0JKRUNUX0RB VEFCQVNFOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCmluZGV4IGVkYzJjOTg4ZTIu LjE4MzljMWY4MmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdn ZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKQEAgLTIxNDks NiArMjE0OSw4IEBAIHN0cmluZ2lmeV9ncmFudF9vYmp0eXBlKE9iamVjdFR5cGUgb2JqdHlwZSkK IAkJCXJldHVybiAiVEFCTEVTUEFDRSI7CiAJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQlyZXR1cm4g IlRZUEUiOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXJldHVybiAiVkFSSUFCTEUiOwog CQkJLyogdGhlc2UgY3VycmVudGx5IGFyZW4ndCB1c2VkICovCiAJCWNhc2UgT0JKRUNUX0FDQ0VT U19NRVRIT0Q6CiAJCWNhc2UgT0JKRUNUX0FHR1JFR0FURToKQEAgLTIyMzIsNiArMjIzNCw4IEBA IHN0cmluZ2lmeV9hZGVmcHJpdnNfb2JqdHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCQlyZXR1 cm4gIlRBQkxFU1BBQ0VTIjsKIAkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCXJldHVybiAiVFlQRVMi OworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXJldHVybiAiVkFSSUFCTEVTIjsKIAkJCS8q IHRoZXNlIGN1cnJlbnRseSBhcmVuJ3QgdXNlZCAqLwogCQljYXNlIE9CSkVDVF9BQ0NFU1NfTUVU SE9EOgogCQljYXNlIE9CSkVDVF9BR0dSRUdBVEU6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy9zZWNsYWJlbC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYwppbmRl eCBjZWU1ZDdiYmI5Li41N2I0ZTY3MTljIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy9zZWNsYWJlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKQEAgLTky LDYgKzkyLDcgQEAgU2VjTGFiZWxTdXBwb3J0c09iamVjdFR5cGUoT2JqZWN0VHlwZSBvYmp0eXBl KQogCQljYXNlIE9CSkVDVF9UU1BBUlNFUjoKIAkJY2FzZSBPQkpFQ1RfVFNURU1QTEFURToKIAkJ Y2FzZSBPQkpFQ1RfVVNFUl9NQVBQSU5HOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCXJl dHVybiBmYWxzZTsKIAogCQkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Rh YmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggNDE4MWMx MTBlYi4uMDA1ZTA3OWE2ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTUyLDYgKzUy LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3RyaWdnZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9zdG9yYWdlLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9zdG9yYWdlX3hsb2cuaCIKICNpbmNsdWRlICJjYXRhbG9nL3RvYXN0 aW5nLmgiCkBAIC02NzczLDYgKzY3NzQsNyBAQCBBVFR5cGVkVGFibGVSZWN1cnNpb24oTGlzdCAq KndxdWV1ZSwgUmVsYXRpb24gcmVsLCBBbHRlclRhYmxlQ21kICpjbWQsCiAgKiAocG9zc2libHkg bmVzdGVkIHNldmVyYWwgbGV2ZWxzIGRlZXAgaW4gY29tcG9zaXRlIHR5cGVzLCBhcnJheXMsIGV0 YyEpLgogICogRXZlbnR1YWxseSwgd2UnZCBsaWtlIHRvIHByb3BhZ2F0ZSB0aGUgY2hlY2sgb3Ig cmV3cml0ZSBvcGVyYXRpb24KICAqIGludG8gc3VjaCB0YWJsZXMsIGJ1dCBmb3Igbm93LCBqdXN0 IGVycm9yIG91dCBpZiB3ZSBmaW5kIGFueS4KKyAqIEFsc28sIGNoZWNrIGlmICJ0eXBlT2lkIiBp cyB1c2VkIGFzIHR5cGUgb2Ygc29tZSBzZXNzaW9uIHZhcmlhYmxlLgogICoKICAqIENhbGxlciBz aG91bGQgcHJvdmlkZSBlaXRoZXIgdGhlIGFzc29jaWF0ZWQgcmVsYXRpb24gb2YgYSByb3d0eXBl LAogICogb3IgYSB0eXBlIG5hbWUgKG5vdCBib3RoKSBmb3IgdXNlIGluIHRoZSBlcnJvciBtZXNz YWdlLCBpZiBhbnkuCkBAIC02ODM2LDYgKzY4MzgsNDUgQEAgZmluZF9jb21wb3NpdGVfdHlwZV9k ZXBlbmRlbmNpZXMoT2lkIHR5cGVPaWQsIFJlbGF0aW9uIG9yaWdSZWxhdGlvbiwKIAkJCWNvbnRp bnVlOwogCQl9CiAKKwkJLyogY2hlY2sgaWYgdGhlIHR5cGUgaXMgdXNlZCBhcyB0eXBlIG9mIHNv bWUgc2Vzc2lvbiB2YXJpYWJsZSAqLworCQlpZiAocGdfZGVwZW5kLT5jbGFzc2lkID09IFZhcmlh YmxlUmVsYXRpb25JZCkKKwkJeworCQkJT2lkCQkJdmFyaWQgPSBwZ19kZXBlbmQtPm9iamlkOwor CisJCQlpZiAob3JpZ1R5cGVOYW1lKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJjYW5ub3Qg YWx0ZXIgdHlwZSBcIiVzXCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2Vz IGl0IiwKKwkJCQkJCQkJb3JpZ1R5cGVOYW1lLAorCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUo Z2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJCWdldF9zZXNz aW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKSkpOworCQkJZWxzZSBpZiAob3JpZ1JlbGF0aW9uLT5y ZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9DT01QT1NJVEVfVFlQRSkKKwkJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJ CQkJIGVycm1zZygiY2Fubm90IGFsdGVyIHR5cGUgXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJp YWJsZSBcIiVzLiVzXCIgdXNlcyBpdCIsCisJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1l KG9yaWdSZWxhdGlvbiksCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZSh2YXJpZCkpKSk7CisJCQllbHNlIGlmIChvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2lu ZCA9PSBSRUxLSU5EX0ZPUkVJR05fVEFCTEUpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShl cnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coImNh bm5vdCBhbHRlciBmb3JlaWduIHRhYmxlIFwiJXNcIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUg XCIlcy4lc1wiIHVzZXMgaXQiLAorCQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShvcmln UmVsYXRpb24pLAorCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFi bGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUo dmFyaWQpKSkpOworCQkJZWxzZSBpZiAob3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0g UkVMS0lORF9SRUxBVElPTiB8fAorCQkJCQkgb3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQg PT0gUkVMS0lORF9NQVRWSUVXIHx8CisJCQkJCSBvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2lu ZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNn KCJjYW5ub3QgYWx0ZXIgdGFibGUgXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBcIiVz LiVzXCIgdXNlcyBpdCIsCisJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKG9yaWdSZWxh dGlvbiksCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJp ZCkpKSk7CisKKwkJCWNvbnRpbnVlOworCQl9CisKIAkJLyogRWxzZSwgaWdub3JlIGRlcGVuZGVl cyB0aGF0IGFyZW4ndCByZWxhdGlvbnMgKi8KIAkJaWYgKHBnX2RlcGVuZC0+Y2xhc3NpZCAhPSBS ZWxhdGlvblJlbGF0aW9uSWQpCiAJCQljb250aW51ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3R5cGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCmlu ZGV4IDZiMWQyMzgzNTEuLjNlMWZkZTRjZGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3R5cGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYwpAQCAt NTMsNiArNTMsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfcmFuZ2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvdGFibGVjbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHlwZWNt ZHMuaCIKQEAgLTM0MDQsNiArMzQwNSwyMCBAQCBnZXRfcmVsc193aXRoX2RvbWFpbihPaWQgZG9t YWluT2lkLCBMT0NLTU9ERSBsb2NrbW9kZSkKIAkJCX0KIAkJCWNvbnRpbnVlOwogCQl9CisJCWVs c2UgaWYgKHBnX2RlcGVuZC0+Y2xhc3NpZCA9PSBWYXJpYWJsZVJlbGF0aW9uSWQpCisJCXsKKwkJ CS8qCisJCQkgKiBXZSBjYW5ub3QgdG8gdmFsaWRhdGUgY29uc3RyYWludCBpbnNpZGUgc2Vzc2lv biB2YXJpYWJsZXMKKwkJCSAqIGZyb20gb3RoZXIgc2Vzc2lvbnMsIHNvIGJldHRlciB0byBmYWls IGlmIHRoZXJlIGFyZSBhbnkKKwkJCSAqIHNlc3Npb24gdmFyaWFibGUsIHRoYXQgdXNlIHRoaXMg ZG9tYWluLgorCQkJICovCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RF X0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciBkb21h aW4gXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgdXNlcyBpdCIsCisJ CQkJCQkJCWRvbWFpblR5cGVOYW1lLAorCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nl c3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHBnX2RlcGVuZC0+b2JqaWQpKSwKKwkJCQkJCQkJZ2V0 X3Nlc3Npb25fdmFyaWFibGVfbmFtZShwZ19kZXBlbmQtPm9iamlkKSkpKTsKKwkJfQogCiAJCS8q IEVsc2UsIGlnbm9yZSBkZXBlbmRlZXMgdGhhdCBhcmVuJ3QgdXNlciBjb2x1bW5zIG9mIHJlbGF0 aW9ucyAqLwogCQkvKiAod2UgYXNzdW1lIHN5c3RlbSBjb2x1bW5zIGFyZSBuZXZlciBvZiBkb21h aW4gdHlwZXMpICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBiNGMxZTJjNjlkLi43OTYxNDdhNTQxIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyaWdn ZXIuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUgImdy YW1wYXJzZS5oIgpAQCAtMjgxLDggKzI4Miw4IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZl Vmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJ CUNvbnN0cmFpbnRzU2V0U3RtdCBDb3B5U3RtdCBDcmVhdGVBc1N0bXQgQ3JlYXRlQ2FzdFN0bXQK IAkJQ3JlYXRlRG9tYWluU3RtdCBDcmVhdGVFeHRlbnNpb25TdG10IENyZWF0ZUdyb3VwU3RtdCBD cmVhdGVPcENsYXNzU3RtdAogCQlDcmVhdGVPcEZhbWlseVN0bXQgQWx0ZXJPcEZhbWlseVN0bXQg Q3JlYXRlUExhbmdTdG10Ci0JCUNyZWF0ZVNjaGVtYVN0bXQgQ3JlYXRlU2VxU3RtdCBDcmVhdGVT dG10IENyZWF0ZVN0YXRzU3RtdCBDcmVhdGVUYWJsZVNwYWNlU3RtdAotCQlDcmVhdGVGZHdTdG10 IENyZWF0ZUZvcmVpZ25TZXJ2ZXJTdG10IENyZWF0ZUZvcmVpZ25UYWJsZVN0bXQKKwkJQ3JlYXRl U2NoZW1hU3RtdCBDcmVhdGVTZXFTdG10IENyZWF0ZVNlc3Npb25WYXJTdG10IENyZWF0ZVN0bXQg Q3JlYXRlU3RhdHNTdG10CisJCUNyZWF0ZVRhYmxlU3BhY2VTdG10IENyZWF0ZUZkd1N0bXQgQ3Jl YXRlRm9yZWlnblNlcnZlclN0bXQgQ3JlYXRlRm9yZWlnblRhYmxlU3RtdAogCQlDcmVhdGVBc3Nl cnRpb25TdG10IENyZWF0ZVRyYW5zZm9ybVN0bXQgQ3JlYXRlVHJpZ1N0bXQgQ3JlYXRlRXZlbnRU cmlnU3RtdAogCQlDcmVhdGVVc2VyU3RtdCBDcmVhdGVVc2VyTWFwcGluZ1N0bXQgQ3JlYXRlUm9s ZVN0bXQgQ3JlYXRlUG9saWN5U3RtdAogCQlDcmVhdGVkYlN0bXQgRGVjbGFyZUN1cnNvclN0bXQg RGVmaW5lU3RtdCBEZWxldGVTdG10IERpc2NhcmRTdG10IERvU3RtdApAQCAtNzc1LDggKzc3Niw4 IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBM aXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJVUVTQ0FQRSBVTkJPVU5ERUQgVU5DT05ESVRJ T05BTCBVTkNPTU1JVFRFRCBVTkVOQ1JZUFRFRCBVTklPTiBVTklRVUUgVU5LTk9XTgogCVVOTElT VEVOIFVOTE9HR0VEIFVOVElMIFVQREFURSBVU0VSIFVTSU5HCiAKLQlWQUNVVU0gVkFMSUQgVkFM SURBVEUgVkFMSURBVE9SIFZBTFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFESUMgVkFSWUlORwot CVZFUkJPU0UgVkVSU0lPTl9QIFZJRVcgVklFV1MgVk9MQVRJTEUKKwlWQUNVVU0gVkFMSUQgVkFM SURBVEUgVkFMSURBVE9SIFZBTFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFCTEUgVkFSSUFCTEVT CisJVkFSSUFESUMgVkFSWUlORyBWRVJCT1NFIFZFUlNJT05fUCBWSUVXIFZJRVdTIFZPTEFUSUxF CiAKIAlXSEVOIFdIRVJFIFdISVRFU1BBQ0VfUCBXSU5ET1cgV0lUSCBXSVRISU4gV0lUSE9VVCBX T1JLIFdSQVBQRVIgV1JJVEUKIApAQCAtMTA0Miw2ICsxMDQzLDcgQEAgc3RtdDoKIAkJCXwgQ3Jl YXRlUG9saWN5U3RtdAogCQkJfCBDcmVhdGVQTGFuZ1N0bXQKIAkJCXwgQ3JlYXRlU2NoZW1hU3Rt dAorCQkJfCBDcmVhdGVTZXNzaW9uVmFyU3RtdAogCQkJfCBDcmVhdGVTZXFTdG10CiAJCQl8IENy ZWF0ZVN0bXQKIAkJCXwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdApAQCAtMTU4NCw2ICsxNTg2LDcg QEAgc2NoZW1hX3N0bXQ6CiAJCQl8IENyZWF0ZVRyaWdTdG10CiAJCQl8IEdyYW50U3RtdAogCQkJ fCBWaWV3U3RtdAorCQkJfCBDcmVhdGVTZXNzaW9uVmFyU3RtdAogCQk7CiAKIApAQCAtNTIxMCw2 ICs1MjEzLDM0IEBAIGNyZWF0ZV9leHRlbnNpb25fb3B0X2l0ZW06CiAJCQkJfQogCQk7CiAKKy8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgorICoKKyAqCQlRVUVSWSA6CisgKgkJCQlDUkVBVEUgVkFSSUFC TEUgdmFybmFtZSBbQVNdIHR5cGUKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK0NyZWF0 ZVNlc3Npb25WYXJTdG10OgorCQkJQ1JFQVRFIFZBUklBQkxFIHF1YWxpZmllZF9uYW1lIG9wdF9h cyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UKKwkJCQl7CisJCQkJCUNyZWF0ZVNlc3Npb25W YXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOworCQkJCQluLT52YXJp YWJsZSA9ICQzOworCQkJCQluLT50eXBlTmFtZSA9ICQ1OworCQkJCQluLT5jb2xsQ2xhdXNlID0g KENvbGxhdGVDbGF1c2UgKikgJDY7CisJCQkJCW4tPmlmX25vdF9leGlzdHMgPSBmYWxzZTsKKwkJ CQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwgQ1JFQVRFIFZBUklBQkxFIElGX1AgTk9U IEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNl CisJCQkJeworCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNl c3Npb25WYXJTdG10KTsKKwkJCQkJbi0+dmFyaWFibGUgPSAkNjsKKwkJCQkJbi0+dHlwZU5hbWUg PSAkODsKKwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ5OworCQkJCQlu LT5pZl9ub3RfZXhpc3RzID0gdHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJ OworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKiBBTFRFUiBFWFRFTlNJT04gbmFtZSBV UERBVEUgWyBUTyB2ZXJzaW9uIF0KQEAgLTY5OTgsNiArNzAyOSw3IEBAIG9iamVjdF90eXBlX2Fu eV9uYW1lOgogCQkJfCBURVhUX1AgU0VBUkNIIERJQ1RJT05BUlkJCQkJeyAkJCA9IE9CSkVDVF9U U0RJQ1RJT05BUlk7IH0KIAkJCXwgVEVYVF9QIFNFQVJDSCBURU1QTEFURQkJCQl7ICQkID0gT0JK RUNUX1RTVEVNUExBVEU7IH0KIAkJCXwgVEVYVF9QIFNFQVJDSCBDT05GSUdVUkFUSU9OCQkJeyAk JCA9IE9CSkVDVF9UU0NPTkZJR1VSQVRJT047IH0KKwkJCXwgVkFSSUFCTEUJCQkJCQkJCXsgJCQg PSBPQkpFQ1RfVkFSSUFCTEU7IH0KIAkJOwogCiAvKgpAQCAtNzg3NCw2ICs3OTA2LDE0IEBAIHBy aXZpbGVnZV90YXJnZXQ6CiAJCQkJCW4tPm9ianMgPSAkMjsKIAkJCQkJJCQgPSBuOwogCQkJCX0K KwkJCXwgVkFSSUFCTEUgcXVhbGlmaWVkX25hbWVfbGlzdAorCQkJCXsKKwkJCQkJUHJpdlRhcmdl dCAqbiA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkpOworCQkJCQlu LT50YXJndHlwZSA9IEFDTF9UQVJHRVRfT0JKRUNUOworCQkJCQluLT5vYmp0eXBlID0gT0JKRUNU X1ZBUklBQkxFOworCQkJCQluLT5vYmpzID0gJDI7CisJCQkJCSQkID0gbjsKKwkJCQl9CiAJCQl8 IEFMTCBUQUJMRVMgSU5fUCBTQ0hFTUEgbmFtZV9saXN0CiAJCQkJewogCQkJCQlQcml2VGFyZ2V0 ICpuID0gKFByaXZUYXJnZXQgKikgcGFsbG9jKHNpemVvZihQcml2VGFyZ2V0KSk7CkBAIC03OTE5 LDYgKzc5NTksMTQgQEAgcHJpdmlsZWdlX3RhcmdldDoKIAkJCQkJbi0+b2JqcyA9ICQ1OwogCQkJ CQkkJCA9IG47CiAJCQkJfQorCQkJfCBBTEwgVkFSSUFCTEVTIElOX1AgU0NIRU1BIG5hbWVfbGlz dAorCQkJCXsKKwkJCQkJUHJpdlRhcmdldCAqbiA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhzaXpl b2YoUHJpdlRhcmdldCkpOworCQkJCQluLT50YXJndHlwZSA9IEFDTF9UQVJHRVRfQUxMX0lOX1ND SEVNQTsKKwkJCQkJbi0+b2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqcyA9 ICQ1OworCQkJCQkkJCA9IG47CisJCQkJfQogCQk7CiAKIApAQCAtODExNiw2ICs4MTY0LDcgQEAg ZGVmYWNsX3ByaXZpbGVnZV90YXJnZXQ6CiAJCQl8IFNFUVVFTkNFUwkJeyAkJCA9IE9CSkVDVF9T RVFVRU5DRTsgfQogCQkJfCBUWVBFU19QCQl7ICQkID0gT0JKRUNUX1RZUEU7IH0KIAkJCXwgU0NI RU1BUwkJeyAkJCA9IE9CSkVDVF9TQ0hFTUE7IH0KKwkJCXwgVkFSSUFCTEVTCQl7ICQkID0gT0JK RUNUX1ZBUklBQkxFOyB9CiAJCTsKIAogCkBAIC05OTA0LDYgKzk5NTMsMjQgQEAgUmVuYW1lU3Rt dDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVzIFJFTkFNRSBUTyBuYW1l CiAJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJ CX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUgUkVOQU1FIFRPIG5hbWUKKwkJCQl7CisJ CQkJCVJlbmFtZVN0bXQgKm4gPSBtYWtlTm9kZShSZW5hbWVTdG10KTsKKwkJCQkJbi0+cmVuYW1l VHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDM7CisJ CQkJCW4tPm5ld25hbWUgPSAkNjsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJCQkk JCA9IChOb2RlICopbjsKKwkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIElGX1AgRVhJU1RTIGFu eV9uYW1lIFJFTkFNRSBUTyBuYW1lCisJCQkJeworCQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5v ZGUoUmVuYW1lU3RtdCk7CisJCQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJ CQkJCW4tPm9iamVjdCA9IChOb2RlICopICQ1OworCQkJCQluLT5uZXduYW1lID0gJDg7CisJCQkJ CW4tPm1pc3Npbmdfb2sgPSB0cnVlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CiAJCTsK IAogb3B0X2NvbHVtbjogQ09MVU1OCkBAIC0xMDI2NSw2ICsxMDMzMiwyNCBAQCBBbHRlck9iamVj dFNjaGVtYVN0bXQ6CiAJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9k ZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUgU0VUIFNDSEVNQSBu YW1lCisJCQkJeworCQkJCQlBbHRlck9iamVjdFNjaGVtYVN0bXQgKm4gPSBtYWtlTm9kZShBbHRl ck9iamVjdFNjaGVtYVN0bXQpOworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1ZBUklBQkxF OworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkMzsKKwkJCQkJbi0+bmV3c2NoZW1hID0gJDY7 CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJ fQorCQkJfCBBTFRFUiBWQVJJQUJMRSBJRl9QIEVYSVNUUyBhbnlfbmFtZSBTRVQgU0NIRU1BIG5h bWUKKwkJCQl7CisJCQkJCUFsdGVyT2JqZWN0U2NoZW1hU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVy T2JqZWN0U2NoZW1hU3RtdCk7CisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7 CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQ1OworCQkJCQluLT5uZXdzY2hlbWEgPSAkODsK KwkJCQkJbi0+bWlzc2luZ19vayA9IHRydWU7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0K IAkJOwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTEwNTQ2LDYgKzEwNjMxLDE0IEBAIEFs dGVyT3duZXJTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJndHlwZXMgT1dO RVIgVE8gUm9sZVNwZWMKIAkJCQkJbi0+bmV3b3duZXIgPSAkNjsKIAkJCQkJJCQgPSAoTm9kZSAq KSBuOwogCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUgT1dORVIgVE8gUm9sZVNw ZWMKKwkJCQl7CisJCQkJCUFsdGVyT3duZXJTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPd25lclN0 bXQpOworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmpl Y3QgPSAoTm9kZSAqKSAkMzsKKwkJCQkJbi0+bmV3b3duZXIgPSAkNjsKKwkJCQkJJCQgPSAoTm9k ZSAqKW47CisJCQkJfQogCQk7CiAKIApAQCAtMTc5MTcsNiArMTgwMTAsOCBAQCB1bnJlc2VydmVk X2tleXdvcmQ6CiAJCQl8IFZBTElEQVRFCiAJCQl8IFZBTElEQVRPUgogCQkJfCBWQUxVRV9QCisJ CQl8IFZBUklBQkxFCisJCQl8IFZBUklBQkxFUwogCQkJfCBWQVJZSU5HCiAJCQl8IFZFUlNJT05f UAogCQkJfCBWSUVXCkBAIC0xODU3MCw2ICsxODY2NSw4IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoK IAkJCXwgVkFMVUVfUAogCQkJfCBWQUxVRVMKIAkJCXwgVkFSQ0hBUgorCQkJfCBWQVJJQUJMRQor CQkJfCBWQVJJQUJMRVMKIAkJCXwgVkFSSUFESUMKIAkJCXwgVkVSQk9TRQogCQkJfCBWRVJTSU9O X1AKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCmluZGV4IGQyZDgyYzljNTkuLjk4MTAyNmRk OGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwpAQCAtMTA1LDYgKzEwNSw3IEBAIHR5 cGVkZWYgc3RydWN0CiAJTGlzdAkgICAqaW5kZXhlczsJCS8qIENSRUFURSBJTkRFWCBpdGVtcyAq LwogCUxpc3QJICAgKnRyaWdnZXJzOwkJLyogQ1JFQVRFIFRSSUdHRVIgaXRlbXMgKi8KIAlMaXN0 CSAgICpncmFudHM7CQkJLyogR1JBTlQgaXRlbXMgKi8KKwlMaXN0CSAgICp2YXJpYWJsZXM7CQkv KiBDUkVBVEUgVkFSSUFCTEUgaXRlbXMgKi8KIH0gQ3JlYXRlU2NoZW1hU3RtdENvbnRleHQ7CiAK IApAQCAtNDAzOSw2ICs0MDQwLDcgQEAgdHJhbnNmb3JtQ3JlYXRlU2NoZW1hU3RtdEVsZW1lbnRz KExpc3QgKnNjaGVtYUVsdHMsIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUpCiAJY3h0LmluZGV4ZXMg PSBOSUw7CiAJY3h0LnRyaWdnZXJzID0gTklMOwogCWN4dC5ncmFudHMgPSBOSUw7CisJY3h0LnZh cmlhYmxlcyA9IE5JTDsKIAogCS8qCiAJICogUnVuIHRocm91Z2ggZWFjaCBzY2hlbWEgZWxlbWVu dCBpbiB0aGUgc2NoZW1hIGVsZW1lbnQgbGlzdC4gU2VwYXJhdGUKQEAgLTQxMDcsNiArNDEwOSwx NSBAQCB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVudHMoTGlzdCAqc2NoZW1hRWx0cywg Y29uc3QgY2hhciAqc2NoZW1hTmFtZSkKIAkJCQljeHQuZ3JhbnRzID0gbGFwcGVuZChjeHQuZ3Jh bnRzLCBlbGVtZW50KTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJT dG10OgorCQkJCXsKKwkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKmVscCA9IChDcmVhdGVTZXNz aW9uVmFyU3RtdCAqKSBlbGVtZW50OworCisJCQkJCXNldFNjaGVtYU5hbWUoY3h0LnNjaGVtYW5h bWUsICZlbHAtPnZhcmlhYmxlLT5zY2hlbWFuYW1lKTsKKwkJCQkJY3h0LnZhcmlhYmxlcyA9IGxh cHBlbmQoY3h0LnZhcmlhYmxlcywgZWxlbWVudCk7CisJCQkJfQorCQkJCWJyZWFrOworCiAJCQlk ZWZhdWx0OgogCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJ CQkJCSAoaW50KSBub2RlVGFnKGVsZW1lbnQpKTsKQEAgLTQxMjAsNiArNDEzMSw3IEBAIHRyYW5z Zm9ybUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhMaXN0ICpzY2hlbWFFbHRzLCBjb25zdCBjaGFy ICpzY2hlbWFOYW1lKQogCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgY3h0LmluZGV4ZXMp OwogCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgY3h0LnRyaWdnZXJzKTsKIAlyZXN1bHQg PSBsaXN0X2NvbmNhdChyZXN1bHQsIGN4dC5ncmFudHMpOworCXJlc3VsdCA9IGxpc3RfY29uY2F0 KHJlc3VsdCwgY3h0LnZhcmlhYmxlcyk7CiAKIAlyZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHku YwppbmRleCAyNWZlM2Q1ODAxLi45OWE1MTg3N2QzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90 Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwpAQCAtMjMsNiAr MjMsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19hdXRoaWQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2luaGVyaXRzLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvdG9hc3RpbmcuaCIK ICNpbmNsdWRlICJjb21tYW5kcy9hbHRlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgi CkBAIC0xODIsNiArMTgzLDcgQEAgQ2xhc3NpZnlVdGlsaXR5Q29tbWFuZEFzUmVhZE9ubHkoTm9k ZSAqcGFyc2V0cmVlKQogCQljYXNlIFRfQ3JlYXRlUmFuZ2VTdG10OgogCQljYXNlIFRfQ3JlYXRl Um9sZVN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTY2hlbWFTdG10OgorCQljYXNlIFRfQ3JlYXRlU2Vz c2lvblZhclN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTZXFTdG10OgogCQljYXNlIFRfQ3JlYXRlU3Rh dHNTdG10OgogCQljYXNlIFRfQ3JlYXRlU3RtdDoKQEAgLTEzODksNiArMTM5MSwxMCBAQCBQcm9j ZXNzVXRpbGl0eVNsb3coUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCX0KIAkJCQlicmVhazsKIAor CQkJY2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJTdG10OgorCQkJCWFkZHJlc3MgPSBDcmVhdGVWYXJp YWJsZShwc3RhdGUsIChDcmVhdGVTZXNzaW9uVmFyU3RtdCAqKSBwYXJzZXRyZWUpOworCQkJCWJy ZWFrOworCiAJCQkJLyoKIAkJCQkgKiAqKioqKioqKioqKioqIG9iamVjdCBjcmVhdGlvbiAvIGRl c3RydWN0aW9uICoqKioqKioqKioqKioqCiAJCQkJICovCkBAIC0yMzQxLDYgKzIzNDcsOSBAQCBB bHRlck9iamVjdFR5cGVDb21tYW5kVGFnKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpF Q1RfU1RBVElTVElDX0VYVDoKIAkJCXRhZyA9IENNRFRBR19BTFRFUl9TVEFUSVNUSUNTOwogCQkJ YnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJdGFnID0gQ01EVEFHX0FMVEVSX1ZB UklBQkxFOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQl0YWcgPSBDTURUQUdfVU5LTk9XTjsK IAkJCWJyZWFrOwpAQCAtMjY0OSw2ICsyNjU4LDkgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpw YXJzZXRyZWUpCiAJCQkJY2FzZSBPQkpFQ1RfU1RBVElTVElDX0VYVDoKIAkJCQkJdGFnID0gQ01E VEFHX0RST1BfU1RBVElTVElDUzsKIAkJCQkJYnJlYWs7CisJCQkJY2FzZSBPQkpFQ1RfVkFSSUFC TEU6CisJCQkJCXRhZyA9IENNRFRBR19EUk9QX1ZBUklBQkxFOworCQkJCQlicmVhazsKIAkJCQlk ZWZhdWx0OgogCQkJCQl0YWcgPSBDTURUQUdfVU5LTk9XTjsKIAkJCX0KQEAgLTMyMjUsNiArMzIz NywxMCBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCX0KIAkJCWJyZWFr OwogCisJCWNhc2UgVF9DcmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCXRhZyA9IENNRFRBR19DUkVB VEVfVkFSSUFCTEU7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJZWxvZyhXQVJOSU5HLCAi dW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLAogCQkJCSAoaW50KSBub2RlVGFnKHBhcnNldHJl ZSkpOwpAQCAtMzc1OSw2ICszNzc1LDEwIEBAIEdldENvbW1hbmRMb2dMZXZlbChOb2RlICpwYXJz ZXRyZWUpCiAJCQl9CiAJCQlicmVhazsKIAorCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6 CisJCQlsZXYgPSBMT0dTVE1UX0RETDsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQllbG9n KFdBUk5JTkcsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIG5vZGVU YWcocGFyc2V0cmVlKSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMKaW5kZXggNmE3NjU1MGE1ZS4uMzc3ZGUwYjdj NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9hY2wuYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cv cGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNp bmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJvY2xh bmcuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNlLmgiCkBAIC0xMjksNiArMTMwLDgg QEAgc3RhdGljIEFjbE1vZGUgY29udmVydF90eXBlX3ByaXZfc3RyaW5nKHRleHQgKnByaXZfdHlw ZV90ZXh0KTsKIHN0YXRpYyBBY2xNb2RlIGNvbnZlcnRfcGFyYW1ldGVyX3ByaXZfc3RyaW5nKHRl eHQgKnByaXZfdGV4dCk7CiBzdGF0aWMgQWNsTW9kZSBjb252ZXJ0X2xhcmdlb2JqZWN0X3ByaXZf c3RyaW5nKHRleHQgKnByaXZfdGV4dCk7CiBzdGF0aWMgQWNsTW9kZSBjb252ZXJ0X3JvbGVfcHJp dl9zdHJpbmcodGV4dCAqcHJpdl90eXBlX3RleHQpOworc3RhdGljIE9pZAljb252ZXJ0X3Nlc3Np b25fdmFyaWFibGVfbmFtZSh0ZXh0ICp2YXJuYW1lKTsKK3N0YXRpYyBBY2xNb2RlIGNvbnZlcnRf c2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0cmluZyh0ZXh0ICpwcml2X3R5cGVfdGV4dCk7CiBzdGF0 aWMgQWNsUmVzdWx0IHBnX3JvbGVfYWNsY2hlY2soT2lkIHJvbGVfb2lkLCBPaWQgcm9sZWlkLCBB Y2xNb2RlIG1vZGUpOwogCiBzdGF0aWMgdm9pZCBSb2xlTWVtYmVyc2hpcENhY2hlQ2FsbGJhY2so RGF0dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSk7CkBAIC04NTEsNiArODU0 LDEwIEBAIGFjbGRlZmF1bHQoT2JqZWN0VHlwZSBvYmp0eXBlLCBPaWQgb3duZXJJZCkKIAkJCXdv cmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklHSFRTOwogCQkJb3duZXJfZGVmYXVsdCA9IEFDTF9BTExf UklHSFRTX1BBUkFNRVRFUl9BQ0w7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6 CisJCQl3b3JsZF9kZWZhdWx0ID0gQUNMX05PX1JJR0hUUzsKKwkJCW93bmVyX2RlZmF1bHQgPSBB Q0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhF UlJPUiwgInVucmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLCAoaW50KSBvYmp0eXBlKTsKIAkJ CXdvcmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklHSFRTOwkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICov CkBAIC05NDgsNiArOTU1LDkgQEAgYWNsZGVmYXVsdF9zcWwoUEdfRlVOQ1RJT05fQVJHUykKIAkJ Y2FzZSAnVCc6CiAJCQlvYmp0eXBlID0gT0JKRUNUX1RZUEU7CiAJCQlicmVhazsKKwkJY2FzZSAn Vic6CisJCQlvYmp0eXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6 CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlIGFiYnJldmlhdGlvbjog JWMiLCBvYmp0eXBlYyk7CiAJfQpAQCAtNTAxNiw2ICs1MDI2LDIxNyBAQCBwZ19yb2xlX2FjbGNo ZWNrKE9pZCByb2xlX29pZCwgT2lkIHJvbGVpZCwgQWNsTW9kZSBtb2RlKQogCXJldHVybiBBQ0xD SEVDS19OT19QUklWOwogfQogCisvKgorICogaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl IHZhcmlhbnRzCisgKgkJVGhlc2UgYXJlIGFsbCBuYW1lZCAiaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlIiBhdCB0aGUgU1FMIGxldmVsLgorICoJCVRoZXkgdGFrZSB2YXJpb3VzIGNvbWJp bmF0aW9ucyBvZiB2YXJpYWJsZSBuYW1lLCB2YXJpYWJsZSBPSUQsCisgKgkJdXNlciBuYW1lLCB1 c2VyIE9JRCwgb3IgaW1wbGljaXQgdXNlciA9IGN1cnJlbnRfdXNlci4KKyAqCisgKgkJVGhlIHJl c3VsdCBpcyBhIGJvb2xlYW4gdmFsdWU6IHRydWUgaWYgdXNlciBoYXMgdGhlIGluZGljYXRlZAor ICoJCXByaXZpbGVnZSwgZmFsc2UgaWYgbm90LCBvciBOVUxMIGlmIHNlc3Npb24gdmFyaWFibGUg ZG9lc24ndAorICoJCWV4aXN0cy4KKyAqLworCisvKgorICogaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlX25hbWVfbmFtZQorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBvbiBhIHNlc3Np b24gdmFyaWFibGUgZ2l2ZW4KKyAqCQluYW1lIHVzZXJuYW1lLCB0ZXh0IHNlc3Npb24gdmFyaWFi bGUgbmFtZSwgYW5kIHRleHQgcHJpdiBuYW1lLgorICovCitEYXR1bQoraGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlX25hbWVfbmFtZShQR19GVU5DVElPTl9BUkdTKQoreworCU5hbWUJCXJv bGVuYW1lID0gUEdfR0VUQVJHX05BTUUoMCk7CisJdGV4dAkgICAqdmFybmFtZSA9IFBHX0dFVEFS R19URVhUX1BQKDEpOworCXRleHQJICAgKnByaXZfdHlwZV90ZXh0ID0gUEdfR0VUQVJHX1RFWFRf UFAoMik7CisJT2lkCQkJcm9sZWlkOworCU9pZAkJCXZhcmlkOworCUFjbE1vZGUJCW1vZGU7CisJ QWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19taXNzaW5nID0gZmFsc2U7CisKKwlyb2xl aWQgPSBnZXRfcm9sZV9vaWRfb3JfcHVibGljKE5hbWVTdHIoKnJvbGVuYW1lKSk7CisJbW9kZSA9 IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisJ dmFyaWQgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJuYW1lKTsKKworCWFjbHJl c3VsdCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJ CQkJCQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZpc19taXNzaW5nKTsKKworCWlmIChpc19t aXNzaW5nKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdfUkVUVVJOX0JPT0woYWNscmVzdWx0 ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZp bGVnZV9uYW1lCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgc2Vzc2lvbiB2YXJpYWJs ZSBnaXZlbgorICoJCXRleHQgc2Vzc2lvbiB2YXJpYWJsZSBhbmQgdGV4dCBwcml2IG5hbWUuCisg KgkJY3VycmVudF91c2VyIGlzIGFzc3VtZWQKKyAqLworRGF0dW0KK2hhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZV9uYW1lKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJdGV4dAkgICAqdmFybmFt ZSA9IFBHX0dFVEFSR19URVhUX1BQKDApOworCXRleHQJICAgKnByaXZfdHlwZV90ZXh0ID0gUEdf R0VUQVJHX1RFWFRfUFAoMSk7CisJT2lkCQkJcm9sZWlkOworCU9pZAkJCXZhcmlkOworCUFjbE1v ZGUJCW1vZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19taXNzaW5nID0gZmFs c2U7CisKKwlyb2xlaWQgPSBHZXRVc2VySWQoKTsKKwltb2RlID0gY29udmVydF9zZXNzaW9uX3Zh cmlhYmxlX3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0KTsKKwl2YXJpZCA9IGNvbnZlcnRfc2Vz c2lvbl92YXJpYWJsZV9uYW1lKHZhcm5hbWUpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNo ZWNrX2V4dChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJcm9sZWlkLCBtb2Rl LAorCQkJCQkJCQkJJmlzX21pc3NpbmcpOworCisJUEdfUkVUVVJOX0JPT0woYWNscmVzdWx0ID09 IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZV9uYW1lX2lkCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgc2Vzc2lvbiB2YXJpYWJs ZSBnaXZlbgorICoJCW5hbWUgdXNlbmFtZSwgc2Vzc2lvbiB2YXJpYWJsZSBvaWQsIGFuZCB0ZXh0 IHByaXYgbmFtZS4KKyAqLworRGF0dW0KK2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9u YW1lX2lkKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJTmFtZQkJdXNlcm5hbWUgPSBQR19HRVRBUkdf TkFNRSgwKTsKKwlPaWQJCQl2YXJpZCA9IFBHX0dFVEFSR19PSUQoMSk7CisJdGV4dAkgICAqcHJp dl90eXBlX3RleHQgPSBQR19HRVRBUkdfVEVYVF9QUCgyKTsKKwlPaWQJCQlyb2xlaWQ7CisJQWNs TW9kZQkJbW9kZTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCWJvb2wJCWlzX21pc3NpbmcgPSBm YWxzZTsKKworCXJvbGVpZCA9IGdldF9yb2xlX29pZF9vcl9wdWJsaWMoTmFtZVN0cigqdXNlcm5h bWUpKTsKKwltb2RlID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHByaXZf dHlwZV90ZXh0KTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFibGVS ZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZpc19t aXNzaW5nKTsKKworCWlmIChpc19taXNzaW5nKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdf UkVUVVJOX0JPT0woYWNscmVzdWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9pZAorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBv biBhIHNlc3Npb24gdmFyaWFibGUgZ2l2ZW4KKyAqCQlzZXNzaW9uIHZhcmlhYmxlIG9pZCwgYW5k IHRleHQgcHJpdiBuYW1lLgorICoJCWN1cnJlbnRfdXNlciBpcyBhc3N1bWVkCisgKi8KK0RhdHVt CitoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWQoUEdfRlVOQ1RJT05fQVJHUykKK3sK KwlPaWQJCQl2YXJpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJdGV4dAkgICAqcHJpdl90eXBlX3Rl eHQgPSBQR19HRVRBUkdfVEVYVF9QUCgxKTsKKwlPaWQJCQlyb2xlaWQ7CisJQWNsTW9kZQkJbW9k ZTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCWJvb2wJCWlzX21pc3NpbmcgPSBmYWxzZTsKKwor CXJvbGVpZCA9IEdldFVzZXJJZCgpOworCW1vZGUgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVf cHJpdl9zdHJpbmcocHJpdl90eXBlX3RleHQpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNo ZWNrX2V4dChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJcm9sZWlkLCBtb2Rl LAorCQkJCQkJCQkJJmlzX21pc3NpbmcpOworCisJaWYgKGlzX21pc3NpbmcpCisJCVBHX1JFVFVS Tl9OVUxMKCk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xyZXN1bHQgPT0gQUNMQ0hFQ0tfT0spOwor fQorCisvKgorICogaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkX25hbWUKKyAqCQlD aGVjayB1c2VyIHByaXZpbGVnZXMgb24gYSBzZXNzaW9uIHZhcmlhYmxlIGdpdmVuCisgKgkJcm9s ZWlkLCB0ZXh0IHNlc3Npb24gdmFyaWFibGUgbmFtZSwgYW5kIHRleHQgcHJpdiBuYW1lLgorICov CitEYXR1bQoraGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkX25hbWUoUEdfRlVOQ1RJ T05fQVJHUykKK3sKKwlPaWQJCQlyb2xlaWQgPSBQR19HRVRBUkdfT0lEKDApOworCXRleHQJICAg KnZhcm5hbWUgPSBQR19HRVRBUkdfVEVYVF9QUCgxKTsKKwl0ZXh0CSAgICpwcml2X3R5cGVfdGV4 dCA9IFBHX0dFVEFSR19URVhUX1BQKDIpOworCU9pZAkJCXZhcmlkOworCUFjbE1vZGUJCW1vZGU7 CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19taXNzaW5nID0gZmFsc2U7CisKKwlt b2RlID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0 KTsKKwl2YXJpZCA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcm5hbWUpOworCisJ YWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrX2V4dChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlk LAorCQkJCQkJCQkJcm9sZWlkLCBtb2RlLAorCQkJCQkJCQkJJmlzX21pc3NpbmcpOworCisJaWYg KGlzX21pc3NpbmcpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xy ZXN1bHQgPT0gQUNMQ0hFQ0tfT0spOworfQorCisvKgorICogaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlX2lkX2lkCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgc2Vzc2lvbiB2 YXJpYWJsZSBnaXZlbgorICoJCXJvbGVpZCwgc2Vzc2lvbiB2YXJpYWJsZSBvaWQsIGFuZCB0ZXh0 IHByaXYgbmFtZS4KKyAqLworRGF0dW0KK2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9p ZF9pZChQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJCXJvbGVpZCA9IFBHX0dFVEFSR19PSUQo MCk7CisJT2lkCQkJdmFyaWQgPSBQR19HRVRBUkdfT0lEKDEpOworCXRleHQJICAgKnByaXZfdHlw ZV90ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAoMik7CisJQWNsTW9kZQkJbW9kZTsKKwlBY2xSZXN1 bHQJYWNscmVzdWx0OworCWJvb2wJCWlzX21pc3NpbmcgPSBmYWxzZTsKKworCW1vZGUgPSBjb252 ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmcocHJpdl90eXBlX3RleHQpOworCisJYWNs cmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrX2V4dChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAor CQkJCQkJCQkJcm9sZWlkLCBtb2RlLAorCQkJCQkJCQkJJmlzX21pc3NpbmcpOworCisJaWYgKGlz X21pc3NpbmcpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xyZXN1 bHQgPT0gQUNMQ0hFQ0tfT0spOworfQorCisvKgorICogR2l2ZW4gYSBzZXNzaW9uIHZhcmlhYmxl IG5hbWUgZXhwcmVzc2VkIGFzIGEgc3RyaW5nLCBsb29rIGl0IHVwIGFuZCByZXR1cm4KKyAqIE9p ZAorICovCitzdGF0aWMgT2lkCitjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh0ZXh0ICp2 YXJuYW1lKQoreworCXJldHVybiBMb29rdXBWYXJpYWJsZUZyb21OYW1lTGlzdCh0ZXh0VG9RdWFs aWZpZWROYW1lTGlzdCh2YXJuYW1lKSwgdHJ1ZSk7Cit9CisKKy8qCisgKiBjb252ZXJ0X3Zhcmlh YmxlX3ByaXZfc3RyaW5nCisgKgkJQ29udmVydCB0ZXh0IHN0cmluZyB0byBBY2xNb2RlIHZhbHVl LgorICovCitzdGF0aWMgQWNsTW9kZQorY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3Ry aW5nKHRleHQgKnByaXZfdHlwZV90ZXh0KQoreworCXN0YXRpYyBjb25zdCBwcml2X21hcCBzZXNz aW9uX3ZhcmlhYmxlX3ByaXZfbWFwW10gPSB7CisJCXsiU0VMRUNUIiwgQUNMX1NFTEVDVH0sCisJ CXsiU0VMRUNUIFdJVEggR1JBTlQgT1BUSU9OIiwgQUNMX0dSQU5UX09QVElPTl9GT1IoQUNMX1NF TEVDVCl9LAorCQl7IlVQREFURSIsIEFDTF9VUERBVEV9LAorCQl7IlVQREFURSBXSVRIIEdSQU5U IE9QVElPTiIsIEFDTF9HUkFOVF9PUFRJT05fRk9SKEFDTF9VUERBVEUpfSwKKwkJe05VTEwsIDB9 CisJfTsKKworCXJldHVybiBjb252ZXJ0X2FueV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCwg c2Vzc2lvbl92YXJpYWJsZV9wcml2X21hcCk7Cit9CiAKIC8qCiAgKiBpbml0aWFsaXphdGlvbiBm dW5jdGlvbiAoY2FsbGVkIGJ5IEluaXRQb3N0Z3JlcykKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2Nh Y2hlLmMKaW5kZXggOGNkYjU1ODI1My4uNGY1YzQ3MmUxYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl 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 ZXggNTZiNmMzNjhhYy4uYmE2YjE5ZGM5YSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL2Nv bW1vbi5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9jb21tb24uYwpAQCAtMjQ2LDYgKzI0Niw5IEBA IGdldFNjaGVtYURhdGEoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXNQdHIpCiAJcGdfbG9n X2luZm8oInJlYWRpbmcgc3Vic2NyaXB0aW9uIG1lbWJlcnNoaXAgb2YgdGFibGVzIik7CiAJZ2V0 U3Vic2NyaXB0aW9uVGFibGVzKGZvdXQpOwogCisJcGdfbG9nX2luZm8oInJlYWRpbmcgdmFyaWFi bGVzIik7CisJZ2V0VmFyaWFibGVzKGZvdXQpOworCiAJZnJlZShpbmhpbmZvKTsJCQkJLyogbm90 IG5lZWRlZCBhbnkgbG9uZ2VyICovCiAKIAkqbnVtVGFibGVzUHRyID0gbnVtVGFibGVzOwpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jIGIvc3JjL2Jpbi9wZ19kdW1wL2R1 bXB1dGlscy5jCmluZGV4IDVhZTc3Zjc2MzYuLjUxNjFlZTc4MGUgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC9kdW1wdXRpbHMuYworKysgYi9zcmMvYmluL3BnX2R1bXAvZHVtcHV0aWxzLmMK QEAgLTUxMSw2ICs1MTEsMTIgQEAgZG8geyBcCiAJCUNPTlZFUlRfUFJJVigncicsICJTRUxFQ1Qi KTsKIAkJQ09OVkVSVF9QUklWKCd3JywgIlVQREFURSIpOwogCX0KKwllbHNlIGlmIChzdHJjbXAo dHlwZSwgIlZBUklBQkxFIikgPT0gMCB8fAorCQkJIHN0cmNtcCh0eXBlLCAiVkFSSUFCTEVTIikg PT0gMCkKKwl7CisJCUNPTlZFUlRfUFJJVigncicsICJTRUxFQ1QiKTsKKwkJQ09OVkVSVF9QUklW KCd3JywgIlVQREFURSIpOworCX0KIAllbHNlCiAJCWFib3J0KCk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaApp bmRleCBmMGYxOWJiMGIyLi40NGVlZDAzYTJmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAv cGdfYmFja3VwLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCkBAIC0xMzIsMTIg KzEzMiwxNCBAQCB0eXBlZGVmIHN0cnVjdCBfcmVzdG9yZU9wdGlvbnMKIAlpbnQJCQlzZWxGdW5j dGlvbjsKIAlpbnQJCQlzZWxUcmlnZ2VyOwogCWludAkJCXNlbFRhYmxlOworCWludAkJCXNlbFZh cmlhYmxlOwogCVNpbXBsZVN0cmluZ0xpc3QgaW5kZXhOYW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0 IGZ1bmN0aW9uTmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCBzY2hlbWFOYW1lczsKIAlTaW1wbGVT dHJpbmdMaXN0IHNjaGVtYUV4Y2x1ZGVOYW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0IHRyaWdnZXJO YW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0IHRhYmxlTmFtZXM7CisJU2ltcGxlU3RyaW5nTGlzdCB2 YXJpYWJsZU5hbWVzOwogCiAJaW50CQkJdXNlREI7CiAJQ29ublBhcmFtcwljcGFyYW1zOwkJLyog cGFyYW1ldGVycyB0byB1c2UgaWYgdXNlREIgKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVt cC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2 ZXIuYwppbmRleCA3MDdhM2ZjODQ0Li5hZmFiZTVmZTQ5IDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1 cF9hcmNoaXZlci5jCkBAIC0zMTAyLDYgKzMxMDIsMTQgQEAgX3RvY0VudHJ5UmVxdWlyZWQoVG9j RW50cnkgKnRlLCB0ZVNlY3Rpb24gY3VyU2VjdGlvbiwgQXJjaGl2ZUhhbmRsZSAqQUgpCiAJCQkJ CSFzaW1wbGVfc3RyaW5nX2xpc3RfbWVtYmVyKCZyb3B0LT50cmlnZ2VyTmFtZXMsIHRlLT50YWcp KQogCQkJCQlyZXR1cm4gMDsKIAkJCX0KKwkJCWVsc2UgaWYgKHN0cmNtcCh0ZS0+ZGVzYywgIlZB UklBQkxFIikgPT0gMCkKKwkJCXsKKwkJCQlpZiAoIXJvcHQtPnNlbFZhcmlhYmxlKQorCQkJCQly ZXR1cm4gMDsKKwkJCQlpZiAocm9wdC0+dmFyaWFibGVOYW1lcy5oZWFkICE9IE5VTEwgJiYKKwkJ CQkJIXNpbXBsZV9zdHJpbmdfbGlzdF9tZW1iZXIoJnJvcHQtPnZhcmlhYmxlTmFtZXMsIHRlLT50 YWcpKQorCQkJCQlyZXR1cm4gMDsKKwkJCX0KIAkJCWVsc2UKIAkJCQlyZXR1cm4gMDsKIAkJfQpA QCAtMzY1MSw2ICszNjU5LDcgQEAgX2dldE9iamVjdERlc2NyaXB0aW9uKFBRRXhwQnVmZmVyIGJ1 ZiwgY29uc3QgVG9jRW50cnkgKnRlKQogCQlzdHJjbXAodHlwZSwgIlRFWFQgU0VBUkNIIERJQ1RJ T05BUlkiKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiVEVYVCBTRUFSQ0ggQ09ORklHVVJBVElP TiIpID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJUWVBFIikgPT0gMCB8fAorCQlzdHJjbXAodHlw ZSwgIlZBUklBQkxFIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIlZJRVciKSA9PSAwIHx8CiAJ Lyogbm9uLXNjaGVtYS1zcGVjaWZpZWQgb2JqZWN0cyAqLwogCQlzdHJjbXAodHlwZSwgIkRBVEFC QVNFIikgPT0gMCB8fApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggOGY3M2E1ZGY5NS4uOWUzMmM0Nzg0MSAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5jCkBAIC0zNjMsNiArMzYzLDcgQEAgc3RhdGljIHZvaWQgZHVtcFB1YmxpY2F0aW9u KEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9uSW5mbyAqcHViaW5mbyk7CiBzdGF0aWMg dm9pZCBkdW1wUHVibGljYXRpb25UYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBQdWJsaWNhdGlv blJlbEluZm8gKnB1YnJpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBTdWJzY3JpcHRpb24oQXJjaGl2 ZSAqZm91dCwgY29uc3QgU3Vic2NyaXB0aW9uSW5mbyAqc3ViaW5mbyk7CiBzdGF0aWMgdm9pZCBk dW1wU3Vic2NyaXB0aW9uVGFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgU3ViUmVsSW5mbyAqc3Vi cmluZm8pOworc3RhdGljIHZvaWQgZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZh cmlhYmxlSW5mbyAqdmFyaW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wRGF0YWJhc2UoQXJjaGl2ZSAq Zm91dCk7CiBzdGF0aWMgdm9pZCBkdW1wRGF0YWJhc2VDb25maWcoQXJjaGl2ZSAqQUgsIFBRRXhw QnVmZmVyIG91dGJ1ZiwKIAkJCQkJCQkgICBjb25zdCBjaGFyICpkYm5hbWUsIE9pZCBkYm9pZCk7 CkBAIC01NDE5LDYgKzU0MjAsMTkwIEBAIGdldF9uZXh0X3Bvc3NpYmxlX2ZyZWVfcGdfdHlwZV9v aWQoQXJjaGl2ZSAqZm91dCwgUFFFeHBCdWZmZXIgdXBncmFkZV9xdWVyeSkKIAlyZXR1cm4gbmV4 dF9wb3NzaWJsZV9mcmVlX29pZDsKIH0KIAorLyoKKyAqIGdldFZhcmlhYmxlcworICoJICBnZXQg aW5mb3JtYXRpb24gYWJvdXQgdmFyaWFibGVzCisgKi8KK3ZvaWQKK2dldFZhcmlhYmxlcyhBcmNo aXZlICpmb3V0KQoreworCVBRRXhwQnVmZmVyIHF1ZXJ5OworCVBHcmVzdWx0ICAgKnJlczsKKwlW YXJpYWJsZUluZm8gKnZhcmluZm87CisJaW50CQkJaV90YWJsZW9pZDsKKwlpbnQJCQlpX29pZDsK KwlpbnQJCQlpX3Zhcm5hbWU7CisJaW50CQkJaV92YXJuYW1lc3BhY2U7CisJaW50CQkJaV92YXJ0 eXBlOworCWludAkJCWlfdmFydHlwbmFtZTsKKwlpbnQJCQlpX3Zhcm93bmVyOworCWludAkJCWlf dmFyY29sbGF0aW9uOworCWludAkJCWlfdmFyYWNsOworCWludAkJCWlfYWNsZGVmYXVsdDsKKwlp bnQJCQlpLAorCQkJCW50dXBzOworCisJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPCAxODAwMDAp CisJCXJldHVybjsKKworCXF1ZXJ5ID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKworCXJlc2V0UFFF eHBCdWZmZXIocXVlcnkpOworCisJLyogZ2V0IHRoZSB2YXJpYWJsZXMgaW4gY3VycmVudCBkYXRh YmFzZSAqLworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAorCQkJCQkgICJTRUxFQ1Qgdi50YWJs ZW9pZCwgdi5vaWQsIHYudmFybmFtZSxcbiIKKwkJCQkJICAiICAgICAgIHYudmFybmFtZXNwYWNl LCB2LnZhcnR5cGUsXG4iCisJCQkJCSAgIiAgICAgICBwZ19jYXRhbG9nLmZvcm1hdF90eXBlKHYu dmFydHlwZSwgdi52YXJ0eXBtb2QpIGFzIHZhcnR5cG5hbWUsXG4iCisJCQkJCSAgIiAgICAgICBD QVNFIFdIRU4gdi52YXJjb2xsYXRpb24gPD4gdC50eXBjb2xsYXRpb24gIgorCQkJCQkgICIgICAg ICAgICAgICBUSEVOIHYudmFyY29sbGF0aW9uXG4iCisJCQkJCSAgIiAgICAgICAgICAgIEVMU0Ug MFxuIgorCQkJCQkgICIgICAgICAgRU5EIEFTIHZhcmNvbGxhdGlvbixcbiIKKwkJCQkJICAiICAg ICAgIHYudmFyb3duZXIsIHYudmFyYWNsLFxuIgorCQkJCQkgICIgICAgICAgYWNsZGVmYXVsdCgn VicsIHYudmFyb3duZXIpIEFTIGFjbGRlZmF1bHRcbiIKKwkJCQkJICAiRlJPTSBwZ19jYXRhbG9n LnBnX3ZhcmlhYmxlIHZcbiIKKwkJCQkJICAiSk9JTiBwZ19jYXRhbG9nLnBnX3R5cGUgdCAiCisJ CQkJCSAgIk9OICh2LnZhcnR5cGUgPSB0Lm9pZCkiKTsKKworCXJlcyA9IEV4ZWN1dGVTcWxRdWVy eShmb3V0LCBxdWVyeS0+ZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsKKworCW50dXBzID0gUFFudHVw bGVzKHJlcyk7CisKKwlpX3RhYmxlb2lkID0gUFFmbnVtYmVyKHJlcywgInRhYmxlb2lkIik7CisJ aV9vaWQgPSBQUWZudW1iZXIocmVzLCAib2lkIik7CisJaV92YXJuYW1lID0gUFFmbnVtYmVyKHJl cywgInZhcm5hbWUiKTsKKwlpX3Zhcm5hbWVzcGFjZSA9IFBRZm51bWJlcihyZXMsICJ2YXJuYW1l c3BhY2UiKTsKKwlpX3ZhcnR5cGUgPSBQUWZudW1iZXIocmVzLCAidmFydHlwZSIpOworCWlfdmFy dHlwbmFtZSA9IFBRZm51bWJlcihyZXMsICJ2YXJ0eXBuYW1lIik7CisJaV92YXJjb2xsYXRpb24g PSBQUWZudW1iZXIocmVzLCAidmFyY29sbGF0aW9uIik7CisKKwlpX3Zhcm93bmVyID0gUFFmbnVt YmVyKHJlcywgInZhcm93bmVyIik7CisJaV92YXJhY2wgPSBQUWZudW1iZXIocmVzLCAidmFyYWNs Iik7CisJaV9hY2xkZWZhdWx0ID0gUFFmbnVtYmVyKHJlcywgImFjbGRlZmF1bHQiKTsKKworCXZh cmluZm8gPSBwZ19tYWxsb2MobnR1cHMgKiBzaXplb2YoVmFyaWFibGVJbmZvKSk7CisKKwlmb3Ig KGkgPSAwOyBpIDwgbnR1cHM7IGkrKykKKwl7CisJCVR5cGVJbmZvICAgKnZ0eXBlOworCisJCXZh cmluZm9baV0uZG9iai5vYmpUeXBlID0gRE9fVkFSSUFCTEU7CisJCXZhcmluZm9baV0uZG9iai5j YXRJZC50YWJsZW9pZCA9CisJCQlhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdGFibGVvaWQp KTsKKwkJdmFyaW5mb1tpXS5kb2JqLmNhdElkLm9pZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywg aSwgaV9vaWQpKTsKKwkJQXNzaWduRHVtcElkKCZ2YXJpbmZvW2ldLmRvYmopOworCQl2YXJpbmZv W2ldLmRvYmoubmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJuYW1lKSk7 CisJCXZhcmluZm9baV0uZG9iai5uYW1lc3BhY2UgPQorCQkJZmluZE5hbWVzcGFjZShhdG9vaWQo UFFnZXR2YWx1ZShyZXMsIGksIGlfdmFybmFtZXNwYWNlKSkpOworCisJCXZhcmluZm9baV0udmFy dHlwZSA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJ0eXBlKSk7CisJCXZhcmluZm9b aV0udmFydHlwbmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJ0eXBuYW1l KSk7CisJCXZhcmluZm9baV0udmFyY29sbGF0aW9uID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBp LCBpX3ZhcmNvbGxhdGlvbikpOworCisJCXZhcmluZm9baV0uZGFjbC5hY2wgPSBwZ19zdHJkdXAo UFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyYWNsKSk7CisJCXZhcmluZm9baV0uZGFjbC5hY2xkZWZh dWx0ID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2FjbGRlZmF1bHQpKTsKKwkJdmFy aW5mb1tpXS5kYWNsLnByaXZ0eXBlID0gMDsKKwkJdmFyaW5mb1tpXS5kYWNsLmluaXRwcml2cyA9 IE5VTEw7CisJCXZhcmluZm9baV0ucm9sbmFtZSA9IGdldFJvbGVOYW1lKFBRZ2V0dmFsdWUocmVz LCBpLCBpX3Zhcm93bmVyKSk7CisKKwkJLyogZG8gbm90IHRyeSB0byBkdW1wIEFDTCBpZiBubyBB Q0wgZXhpc3RzICovCisJCWlmICghUFFnZXRpc251bGwocmVzLCBpLCBpX3ZhcmFjbCkpCisJCQl2 YXJpbmZvW2ldLmRvYmouY29tcG9uZW50cyB8PSBEVU1QX0NPTVBPTkVOVF9BQ0w7CisKKwkJaWYg KHN0cmxlbih2YXJpbmZvW2ldLnJvbG5hbWUpID09IDApCisJCQlwZ19sb2dfd2FybmluZygib3du ZXIgb2YgdmFyaWFibGUgXCIlc1wiIGFwcGVhcnMgdG8gYmUgaW52YWxpZCIsCisJCQkJCQkgICB2 YXJpbmZvW2ldLmRvYmoubmFtZSk7CisKKwkJLyogZGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0byBk dW1wIGl0ICovCisJCXNlbGVjdER1bXBhYmxlT2JqZWN0KCYodmFyaW5mb1tpXS5kb2JqKSwgZm91 dCk7CisKKwkJdnR5cGUgPSBmaW5kVHlwZUJ5T2lkKHZhcmluZm9baV0udmFydHlwZSk7CisJCWFk ZE9iamVjdERlcGVuZGVuY3koJnZhcmluZm9baV0uZG9iaiwgdnR5cGUtPmRvYmouZHVtcElkKTsK Kwl9CisJUFFjbGVhcihyZXMpOworCisJZGVzdHJveVBRRXhwQnVmZmVyKHF1ZXJ5KTsKK30KKwor LyoKKyAqIGR1bXBWYXJpYWJsZQorICoJICBkdW1wIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBnaXZl biBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3N0YXRpYyB2b2lkCitkdW1wVmFyaWFibGUoQXJjaGl2 ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQoreworCUR1bXBPcHRpb25zICpk b3B0ID0gZm91dC0+ZG9wdDsKKworCVBRRXhwQnVmZmVyIGRlbHE7CisJUFFFeHBCdWZmZXIgcXVl cnk7CisJY2hhcgkgICAqcXVhbHZhcm5hbWU7CisJY29uc3QgY2hhciAqdmFydHlwbmFtZTsKKwlP aWQJCQl2YXJjb2xsYXRpb247CisKKwkvKiBza2lwIGlmIG5vdCB0byBiZSBkdW1wZWQgKi8KKwlp ZiAoIXZhcmluZm8tPmRvYmouZHVtcCB8fCAhZG9wdC0+ZHVtcFNjaGVtYSkKKwkJcmV0dXJuOwor CisJZGVscSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZl cigpOworCisJcXVhbHZhcm5hbWUgPSBwZ19zdHJkdXAoZm10UXVhbGlmaWVkRHVtcGFibGUodmFy aW5mbykpOworCXZhcnR5cG5hbWUgPSB2YXJpbmZvLT52YXJ0eXBuYW1lOworCXZhcmNvbGxhdGlv biA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKKworCWFwcGVuZFBRRXhwQnVmZmVyKGRlbHEsICJE Uk9QIFZBUklBQkxFICVzO1xuIiwKKwkJCQkJICBxdWFsdmFybmFtZSk7CisKKwlhcHBlbmRQUUV4 cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBWQVJJQUJMRSAlcyBBUyAlcyIsCisJCQkJCSAgcXVhbHZh cm5hbWUsIHZhcnR5cG5hbWUpOworCisJaWYgKE9pZElzVmFsaWQodmFyY29sbGF0aW9uKSkKKwl7 CisJCUNvbGxJbmZvICAgKmNvbGw7CisKKwkJY29sbCA9IGZpbmRDb2xsYXRpb25CeU9pZCh2YXJj b2xsYXRpb24pOworCQlpZiAoY29sbCkKKwkJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIENP TExBVEUgJXMiLAorCQkJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY29sbCkpOworCX0KKwor CWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiO1xuIik7CisKKwlpZiAodmFyaW5mby0+ZG9iai5k dW1wICYgRFVNUF9DT01QT05FTlRfREVGSU5JVElPTikKKwkJQXJjaGl2ZUVudHJ5KGZvdXQsIHZh cmluZm8tPmRvYmouY2F0SWQsIHZhcmluZm8tPmRvYmouZHVtcElkLAorCQkJCQkgQVJDSElWRV9P UFRTKC50YWcgPSB2YXJpbmZvLT5kb2JqLm5hbWUsCisJCQkJCQkJCSAgLm5hbWVzcGFjZSA9IHZh cmluZm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsCisJCQkJCQkJCSAgLm93bmVyID0gdmFy aW5mby0+cm9sbmFtZSwKKwkJCQkJCQkJICAuZGVzY3JpcHRpb24gPSAiVkFSSUFCTEUiLAorCQkJ CQkJCQkgIC5zZWN0aW9uID0gU0VDVElPTl9QUkVfREFUQSwKKwkJCQkJCQkJICAuY3JlYXRlU3Rt dCA9IHF1ZXJ5LT5kYXRhLAorCQkJCQkJCQkgIC5kcm9wU3RtdCA9IGRlbHEtPmRhdGEpKTsKKwor CS8qIGR1bXAgY29tbWVudCBpZiBhbnkgKi8KKwlpZiAodmFyaW5mby0+ZG9iai5kdW1wICYgRFVN UF9DT01QT05FTlRfQ09NTUVOVCkKKwkJZHVtcENvbW1lbnQoZm91dCwgIlZBUklBQkxFIiwgcXVh bHZhcm5hbWUsCisJCQkJCU5VTEwsIHZhcmluZm8tPnJvbG5hbWUsCisJCQkJCXZhcmluZm8tPmRv YmouY2F0SWQsIDAsIHZhcmluZm8tPmRvYmouZHVtcElkKTsKKworCS8qIGR1bXAgQUNMIGlmIGFu eSAqLworCWlmICh2YXJpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9BQ0wpCisJewor CQljaGFyCSAgICpxdmFybmFtZSA9IHBnX3N0cmR1cChmbXRJZCh2YXJpbmZvLT5kb2JqLm5hbWUp KTsKKworCQlkdW1wQUNMKGZvdXQsIHZhcmluZm8tPmRvYmouZHVtcElkLCBJbnZhbGlkRHVtcElk LCAiVkFSSUFCTEUiLAorCQkJCXF2YXJuYW1lLCBOVUxMLAorCQkJCXZhcmluZm8tPmRvYmoubmFt ZXNwYWNlLT5kb2JqLm5hbWUsIE5VTEwsIHZhcmluZm8tPnJvbG5hbWUsCisJCQkJJnZhcmluZm8t PmRhY2wpOworCisJCWZyZWUocXZhcm5hbWUpOworCX0KKworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihk ZWxxKTsKKwlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkpOworCisJZnJlZShxdWFsdmFybmFtZSk7 Cit9CisKIHN0YXRpYyB2b2lkCiBiaW5hcnlfdXBncmFkZV9zZXRfdHlwZV9vaWRzX2J5X3R5cGVf b2lkKEFyY2hpdmUgKmZvdXQsCiAJCQkJCQkJCQkJIFBRRXhwQnVmZmVyIHVwZ3JhZGVfYnVmZmVy LApAQCAtMTAxNDUsNyArMTAzMzAsOCBAQCBnZXRBZGRpdGlvbmFsQUNMcyhBcmNoaXZlICpmb3V0 KQogCQkJCQlkb2JqLT5vYmpUeXBlID09IERPX1RBQkxFIHx8CiAJCQkJCWRvYmotPm9ialR5cGUg PT0gRE9fUFJPQ0xBTkcgfHwKIAkJCQkJZG9iai0+b2JqVHlwZSA9PSBET19GRFcgfHwKLQkJCQkJ ZG9iai0+b2JqVHlwZSA9PSBET19GT1JFSUdOX1NFUlZFUikKKwkJCQkJZG9iai0+b2JqVHlwZSA9 PSBET19GT1JFSUdOX1NFUlZFUiB8fAorCQkJCQlkb2JqLT5vYmpUeXBlID09IERPX1ZBUklBQkxF KQogCQkJCXsKIAkJCQkJRHVtcGFibGVPYmplY3RXaXRoQWNsICpkYW9iaiA9IChEdW1wYWJsZU9i amVjdFdpdGhBY2wgKikgZG9iajsKIApAQCAtMTA3NDQsNiArMTA5MzAsOSBAQCBkdW1wRHVtcGFi bGVPYmplY3QoQXJjaGl2ZSAqZm91dCwgRHVtcGFibGVPYmplY3QgKmRvYmopCiAJCWNhc2UgRE9f U1VCU0NSSVBUSU9OX1JFTDoKIAkJCWR1bXBTdWJzY3JpcHRpb25UYWJsZShmb3V0LCAoY29uc3Qg U3ViUmVsSW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFrOworCQljYXNlIERPX1ZBUklBQkxFOgorCQkJ ZHVtcFZhcmlhYmxlKGZvdXQsIChWYXJpYWJsZUluZm8gKikgZG9iaik7CisJCQlicmVhazsKIAkJ Y2FzZSBET19QUkVfREFUQV9CT1VOREFSWToKIAkJY2FzZSBET19QT1NUX0RBVEFfQk9VTkRBUlk6 CiAJCQkvKiBuZXZlciBkdW1wZWQsIG5vdGhpbmcgdG8gZG8gKi8KQEAgLTE1MTk1LDYgKzE1Mzg0 LDkgQEAgZHVtcERlZmF1bHRBQ0woQXJjaGl2ZSAqZm91dCwgY29uc3QgRGVmYXVsdEFDTEluZm8g KmRhY2xpbmZvKQogCQljYXNlIERFRkFDTE9CSl9OQU1FU1BBQ0U6CiAJCQl0eXBlID0gIlNDSEVN QVMiOwogCQkJYnJlYWs7CisJCWNhc2UgREVGQUNMT0JKX1ZBUklBQkxFOgorCQkJdHlwZSA9ICJW QVJJQUJMRVMiOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQkvKiBzaG91bGRuJ3QgZ2V0IGhl cmUgKi8KIAkJCXBnX2ZhdGFsKCJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGUgaW4gZGVmYXVsdCBw cml2aWxlZ2VzOiAlZCIsCkBAIC0xODkxNCw2ICsxOTEwNiw3IEBAIGFkZEJvdW5kYXJ5RGVwZW5k ZW5jaWVzKER1bXBhYmxlT2JqZWN0ICoqZG9ianMsIGludCBudW1PYmpzLAogCQkJY2FzZSBET19D T05WRVJTSU9OOgogCQkJY2FzZSBET19UQUJMRToKIAkJCWNhc2UgRE9fVEFCTEVfQVRUQUNIOgor CQkJY2FzZSBET19WQVJJQUJMRToKIAkJCWNhc2UgRE9fQVRUUkRFRjoKIAkJCWNhc2UgRE9fUFJP Q0xBTkc6CiAJCQljYXNlIERPX0NBU1Q6CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCBmNjJiNTY0ZWQxLi44YTYy YjViNDEyIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTUyLDYgKzUyLDcgQEAgdHlwZWRlZiBlbnVtCiAJRE9f VEFCTEUsCiAJRE9fVEFCTEVfQVRUQUNILAogCURPX0FUVFJERUYsCisJRE9fVkFSSUFCTEUsCiAJ RE9fSU5ERVgsCiAJRE9fSU5ERVhfQVRUQUNILAogCURPX1NUQVRTRVhULApAQCAtNzA3LDYgKzcw OCwyMyBAQCB0eXBlZGVmIHN0cnVjdCBfU3ViUmVsSW5mbwogCWNoYXIJICAgKnNyc3VibHNuOwog fSBTdWJSZWxJbmZvOwogCisvKgorICogVGhlIFZhcmlhYmxlSW5mbyBzdHJ1Y3QgaXMgdXNlZCB0 byByZXByZXNlbnQgc2Vzc2lvbiB2YXJpYWJsZXMKKyAqLwordHlwZWRlZiBzdHJ1Y3QgX1Zhcmlh YmxlSW5mbworeworCUR1bXBhYmxlT2JqZWN0IGRvYmo7CisJRHVtcGFibGVBY2wgZGFjbDsKKwlP aWQJCQl2YXJ0eXBlOworCWNoYXIJICAgKnZhcnR5cG5hbWU7CisJY2hhcgkgICAqdmFyYWNsOwor CWNoYXIJICAgKnJ2YXJhY2w7CisJY2hhcgkgICAqaW5pdHZhcmFjbDsKKwljaGFyCSAgICppbml0 cnZhcmFjbDsKKwlPaWQJCQl2YXJjb2xsYXRpb247CisJY29uc3QgY2hhciAqcm9sbmFtZTsJCS8q IG5hbWUgb2Ygb3duZXIsIG9yIGVtcHR5IHN0cmluZyAqLworfSBWYXJpYWJsZUluZm87CisKIC8q CiAgKgljb21tb24gdXRpbGl0eSBmdW5jdGlvbnMKICAqLwpAQCAtNzkwLDUgKzgwOCw2IEBAIGV4 dGVybiB2b2lkIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0 YmxpbmZvW10sCiAJCQkJCQkJCSBpbnQgbnVtVGFibGVzKTsKIGV4dGVybiB2b2lkIGdldFN1YnNj cmlwdGlvbnMoQXJjaGl2ZSAqZm91dCk7CiBleHRlcm4gdm9pZCBnZXRTdWJzY3JpcHRpb25UYWJs ZXMoQXJjaGl2ZSAqZm91dCk7CitleHRlcm4gdm9pZCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91 dCk7CiAKICNlbmRpZgkJCQkJCQkvKiBQR19EVU1QX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wX3NvcnQuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwpp bmRleCBkYzlhMjg5MjRiLi44NDI5NzNmMTEyIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcF9zb3J0LmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCkBAIC03 Nyw2ICs3Nyw3IEBAIGVudW0gZGJPYmplY3RUeXBlUHJpb3JpdGllcwogCVBSSU9fRFVNTVlfVFlQ RSwKIAlQUklPX0FUVFJERUYsCiAJUFJJT19MQVJHRV9PQkpFQ1QsCisJUFJJT19WQVJJQUJMRSwK IAlQUklPX1BSRV9EQVRBX0JPVU5EQVJZLAkJLyogYm91bmRhcnkhICovCiAJUFJJT19UQUJMRV9E QVRBLAogCVBSSU9fU0VRVUVOQ0VfU0VULApAQCAtMTE4LDYgKzExOSw3IEBAIHN0YXRpYyBjb25z dCBpbnQgZGJPYmplY3RUeXBlUHJpb3JpdHlbXSA9CiAJW0RPX1RBQkxFXSA9IFBSSU9fVEFCTEUs CiAJW0RPX1RBQkxFX0FUVEFDSF0gPSBQUklPX1RBQkxFX0FUVEFDSCwKIAlbRE9fQVRUUkRFRl0g PSBQUklPX0FUVFJERUYsCisJW0RPX1ZBUklBQkxFXSA9IFBSSU9fVkFSSUFCTEUsCiAJW0RPX0lO REVYXSA9IFBSSU9fSU5ERVgsCiAJW0RPX0lOREVYX0FUVEFDSF0gPSBQUklPX0lOREVYX0FUVEFD SCwKIAlbRE9fU1RBVFNFWFRdID0gUFJJT19TVEFUU0VYVCwKQEAgLTE1MDAsNiArMTUwMiwxMCBA QCBkZXNjcmliZUR1bXBhYmxlT2JqZWN0KER1bXBhYmxlT2JqZWN0ICpvYmosIGNoYXIgKmJ1Ziwg aW50IGJ1ZnNpemUpCiAJCQkJCSAiUE9TVC1EQVRBIEJPVU5EQVJZICAoSUQgJWQpIiwKIAkJCQkJ IG9iai0+ZHVtcElkKTsKIAkJCXJldHVybjsKKwkJY2FzZSBET19WQVJJQUJMRToKKwkJCXNucHJp bnRmKGJ1ZiwgYnVmc2l6ZSwKKwkJCQkJICJWQVJJQUJMRSAlcyAgKElEICVkIE9JRCAldSkiLAor CQkJCQkgb2JqLT5uYW1lLCBvYmotPmR1bXBJZCwgb2JqLT5jYXRJZC5vaWQpOwogCX0KIAkvKiBz aG91bGRuJ3QgZ2V0IGhlcmUgKi8KIAlzbnByaW50ZihidWYsIGJ1ZnNpemUsCmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAw Ml9wZ19kdW1wLnBsCmluZGV4IGJmNjVkNDRiOTQuLjY0MjNlN2I5ZDIgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAw Ml9wZ19kdW1wLnBsCkBAIC03ODksNiArNzg5LDE2IEBAIG15ICV0ZXN0cyA9ICgKIAkJdW5saWtl ID0+IHsgbm9fcHJpdnMgPT4gMSwgfSwKIAkgIH0sCiAKKwknQUxURVIgREVGQVVMVCBQUklWSUxF R0VTIEZPUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUgR1JBTlQgU0VMRUNUIE9OIFZBUklB QkxFUyBUTyBQVUJMSUMnCisJICA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA1NiwKKwkJY3JlYXRl X3NxbCAgID0+ICdBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19kdW1w X3Rlc3Rfcm9sZSBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIFBVQkxJQzsnLAorCQlyZWdl eHAgPT4gcXIvXgorCQkJXFFBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVz c19kdW1wX3Rlc3Rfcm9sZSBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIFBVQkxJQztcRS94 bSwKKwkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCisJ CXVubGlrZSA9PiB7IG5vX3ByaXZzID0+IDEsIH0sCisJICB9LAorCiAJJ0FMVEVSIFJPTEUgcmVn cmVzc19kdW1wX3Rlc3Rfcm9sZScgPT4gewogCQlyZWdleHAgPT4gcXIvXgogCQkJXFFBTFRFUiBS T0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUgV0lUSCBcRQpAQCAtMTY3NCw2ICsxNjg0LDIzIEBA IG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAogCisJJ0NPTU1FTlQgT04gVkFSSUFCTEUgZHVtcF90 ZXN0LnZhcmlhYmxlMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNzEsCisJCWNyZWF0ZV9zcWwg ICA9PiAnQ09NTUVOVCBPTiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxCisJCQkJCSAgIElT IFwnY29tbWVudCBvbiB2YXJpYWJsZVwnOycsCisJCXJlZ2V4cCA9PgorCQkgIHFyL15cUUNPTU1F TlQgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMSBJUyAnY29tbWVudCBvbiB2YXJpYWJs ZSc7XEUvbSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hl bWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgICAgID0+IDEsCisJCX0sCisJCXVubGlrZSA9 PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFz dXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKIAknQ09QWSB0ZXN0X3RhYmxlJyA9PiB7CiAJ CWNyZWF0ZV9vcmRlciA9PiA0LAogCQljcmVhdGVfc3FsID0+ICdJTlNFUlQgSU5UTyBkdW1wX3Rl c3QudGVzdF90YWJsZSAoY29sMSkgJwpAQCAtMzk0Miw2ICszOTY5LDI0IEBAIG15ICV0ZXN0cyA9 ICgKIAkJfSwKIAl9LAogCisJJ0NSRUFURSBWQVJJQUJMRSB0ZXN0X3ZhcmlhYmxlJyA9PiB7CisJ CWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFu ZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFZB UklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgQVMgaW50ZWdlcjsnLAorCQlyZWdleHAgPT4gcXIv XgorCQkJXFFDUkVBVEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMSBBUyBpbnRlZ2VyO1xF L3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9y dW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJ ZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQg ICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NSRUFURSBWSUVXIHRlc3RfdmlldycgPT4gewogCQlj cmVhdGVfb3JkZXIgPT4gNjEsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBWSUVXIGR1bXBfdGVz dC50ZXN0X3ZpZXcKQEAgLTQ0MDQsNiArNDQ0OSwyNSBAQCBteSAldGVzdHMgPSAoCiAJCWxpa2Ug PT4ge30sCiAJfSwKIAorCSdHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlh YmxlMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNzMsCisJCWNyZWF0ZV9zcWwgPT4KKwkJICAn R1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgVE8gcmVncmVzc19k dW1wX3Rlc3Rfcm9sZTsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFHUkFOVCBTRUxFQ1QgT04g VkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMSBUTyByZWdyZXNzX2R1bXBfdGVzdF9yb2xlO1xF CisJCQkveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2No ZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7 CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW5vX3ByaXZzICAgICAgICAg ICAgICAgICA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJ fSwKKwogCSdSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXIG1hdHZpZXcnID0+IHsKIAkJcmVnZXhw ID0+IHFyL15cUVJFRlJFU0ggTUFURVJJQUxJWkVEIFZJRVcgZHVtcF90ZXN0Lm1hdHZpZXc7XEUv bSwKIAkJbGlrZSA9PgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYyBiL3NyYy9i aW4vcHNxbC9jb21tYW5kLmMKaW5kZXggNWRkNGMyZDI2OC4uM2VlMTkwODk1OSAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYworKysgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCkBA IC0xMDc3LDYgKzEwNzcsOSBAQCBleGVjX2NvbW1hbmRfZChQc3FsU2NhblN0YXRlIHNjYW5fc3Rh dGUsIGJvb2wgYWN0aXZlX2JyYW5jaCwgY29uc3QgY2hhciAqY21kKQogCQkJCQkJYnJlYWs7CiAJ CQkJfQogCQkJCWJyZWFrOworCQkJY2FzZSAnVic6CQkJLyogVmFyaWFibGVzICovCisJCQkJc3Vj Y2VzcyA9IGxpc3RWYXJpYWJsZXMocGF0dGVybiwgc2hvd192ZXJib3NlKTsKKwkJCQlicmVhazsK IAkJCWNhc2UgJ3gnOgkJCS8qIEV4dGVuc2lvbnMgKi8KIAkJCQlpZiAoc2hvd192ZXJib3NlKQog CQkJCQlzdWNjZXNzID0gbGlzdEV4dGVuc2lvbkNvbnRlbnRzKHBhdHRlcm4pOwpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRl eCBkNTU0M2ZkNjJiLi41NTQ2YmY5MWUyIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3Jp YmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtMTIwNiw3ICsxMjA2LDcgQEAg bGlzdERlZmF1bHRBQ0xzKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJcHJpbnRmUFFFeHBCdWZmZXIo JmJ1ZiwKIAkJCQkJICAiU0VMRUNUIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKGQuZGVmYWNs cm9sZSkgQVMgXCIlc1wiLFxuIgogCQkJCQkgICIgIG4ubnNwbmFtZSBBUyBcIiVzXCIsXG4iCi0J CQkJCSAgIiAgQ0FTRSBkLmRlZmFjbG9ianR5cGUgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICcl YycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcycgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVO ICclYycgVEhFTiAnJXMnIEVORCBBUyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgQ0FTRSBkLmRlZmFj bG9ianR5cGUgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhFTiAnJXMnIFdIRU4gJyVj JyBUSEVOICclcycgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhFTiAnJXMnIFdIRU4g JyVjJyBUSEVOICclcycgRU5EIEFTIFwiJXNcIixcbiIKIAkJCQkJICAiICAiLAogCQkJCQkgIGdl dHRleHRfbm9vcCgiT3duZXIiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlNjaGVtYSIpLApAQCAt MTIyMCw2ICsxMjIwLDggQEAgbGlzdERlZmF1bHRBQ0xzKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJ CQkJCSAgZ2V0dGV4dF9ub29wKCJ0eXBlIiksCiAJCQkJCSAgREVGQUNMT0JKX05BTUVTUEFDRSwK IAkJCQkJICBnZXR0ZXh0X25vb3AoInNjaGVtYSIpLAorCQkJCQkgIERFRkFDTE9CSl9WQVJJQUJM RSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoInNlc3Npb24gdmFyaWFibGUiKSwKIAkJCQkJICBnZXR0 ZXh0X25vb3AoIlR5cGUiKSk7CiAKIAlwcmludEFDTENvbHVtbigmYnVmLCAiZC5kZWZhY2xhY2wi KTsKQEAgLTUyMzcsNiArNTIzOSwxMDIgQEAgZXJyb3JfcmV0dXJuOgogCXJldHVybiBmYWxzZTsK IH0KIAorLyoKKyAqIFxkVgorICoKKyAqIGxpc3RWYXJpYWJsZXMoKQorICovCitib29sCitsaXN0 VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKK3sKKwlQUUV4cEJ1 ZmZlckRhdGEgYnVmOworCVBHcmVzdWx0ICAgKnJlczsKKwlwcmludFF1ZXJ5T3B0IG15b3B0ID0g cHNldC5wb3B0OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCisJaWYgKHBz ZXQuc3ZlcnNpb24gPCAxODAwMDApCisJeworCQljaGFyCQlzdmVyYnVmWzMyXTsKKworCQlwZ19s b2dfZXJyb3IoIlRoZSBzZXJ2ZXIgKHZlcnNpb24gJXMpIGRvZXMgbm90IHN1cHBvcnQgc2Vzc2lv biB2YXJpYWJsZXMuIiwKKwkJCQkJIGZvcm1hdFBHVmVyc2lvbk51bWJlcihwc2V0LnN2ZXJzaW9u LCBmYWxzZSwKKwkJCQkJCQkJCQkgICBzdmVyYnVmLCBzaXplb2Yoc3ZlcmJ1ZikpKTsKKwkJcmV0 dXJuIHRydWU7CisJfQorCisJaW5pdFBRRXhwQnVmZmVyKCZidWYpOworCisJcHJpbnRmUFFFeHBC dWZmZXIoJmJ1ZiwKKwkJCQkJICAiU0VMRUNUIG4ubnNwbmFtZSBhcyBcIiVzXCIsXG4iCisJCQkJ CSAgIiAgdi52YXJuYW1lIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9nLmZvcm1h dF90eXBlKHYudmFydHlwZSwgdi52YXJ0eXBtb2QpIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICAo U0VMRUNUIGMuY29sbG5hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGxhdGlvbiBjLCBwZ19jYXRh bG9nLnBnX3R5cGUgYnRcbiIKKwkJCQkJICAiICAgV0hFUkUgYy5vaWQgPSB2LnZhcmNvbGxhdGlv biBBTkQgYnQub2lkID0gdi52YXJ0eXBlIEFORCB2LnZhcmNvbGxhdGlvbiA8PiBidC50eXBjb2xs YXRpb24pIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlp ZCh2LnZhcm93bmVyKSBhcyBcIiVzXCJcbiIsCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJTY2hlbWEi KSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk5hbWUiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIlR5 cGUiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIkNvbGxhdGlvbiIpLAorCQkJCQkgIGdldHRleHRf bm9vcCgiT3duZXIiKSk7CisKKwlpZiAodmVyYm9zZSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVy U3RyKCZidWYsICIsXG4gICIpOworCQlwcmludEFDTENvbHVtbigmYnVmLCAidi52YXJhY2wiKTsK KwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCSAgIixcbiAgcGdfY2F0YWxvZy5vYmpf ZGVzY3JpcHRpb24odi5vaWQsICdwZ192YXJpYWJsZScpIEFTIFwiJXNcIiIsCisJCQkJCQkgIGdl dHRleHRfbm9vcCgiRGVzY3JpcHRpb24iKSk7CisJfQorCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIo JmJ1ZiwKKwkJCQkJCSAiXG5GUk9NIHBnX2NhdGFsb2cucGdfdmFyaWFibGUgdiIKKwkJCQkJCSAi XG4gICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBuIE9OIG4ub2lkID0gdi52 YXJuYW1lc3BhY2UiKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJcbldIRVJFIHRy dWVcbiIpOworCWlmICghcGF0dGVybikKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIiAg ICAgIEFORCBuLm5zcG5hbWUgPD4gJ3BnX2NhdGFsb2cnXG4iCisJCQkJCQkJICIgICAgICBBTkQg bi5uc3BuYW1lIDw+ICdpbmZvcm1hdGlvbl9zY2hlbWEnXG4iKTsKKworCWlmICghdmFsaWRhdGVT UUxOYW1lUGF0dGVybigmYnVmLCBwYXR0ZXJuLCB0cnVlLCBmYWxzZSwKKwkJCQkJCQkJIm4ubnNw bmFtZSIsICJ2LnZhcm5hbWUiLCBOVUxMLAorCQkJCQkJCQkicGdfY2F0YWxvZy5wZ192YXJpYWJs ZV9pc192aXNpYmxlKHYub2lkKSIsCisJCQkJCQkJCU5VTEwsIDMpKQorCQlyZXR1cm4gZmFsc2U7 CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiT1JERVIgQlkgMSwyOyIpOworCisJcmVz ID0gUFNRTGV4ZWMoYnVmLmRhdGEpOworCXRlcm1QUUV4cEJ1ZmZlcigmYnVmKTsKKwlpZiAoIXJl cykKKwkJcmV0dXJuIGZhbHNlOworCisJLyoKKwkgKiBNb3N0IGZ1bmN0aW9ucyBpbiB0aGlzIGZp bGUgYXJlIGNvbnRlbnQgdG8gcHJpbnQgYW4gZW1wdHkgdGFibGUgd2hlbgorCSAqIHRoZXJlIGFy ZSBubyBtYXRjaGluZyBvYmplY3RzLiAgV2UgaW50ZW50aW9uYWxseSBkZXZpYXRlIGZyb20gdGhh dAorCSAqIGhlcmUsIGJ1dCBvbmx5IGluICFxdWlldCBtb2RlLCBmb3IgaGlzdG9yaWNhbCByZWFz b25zLgorCSAqLworCWlmIChQUW50dXBsZXMocmVzKSA9PSAwICYmICFwc2V0LnF1aWV0KQorCXsK KwkJaWYgKHBhdHRlcm4pCisJCQlwZ19sb2dfZXJyb3IoIkRpZCBub3QgZmluZCBhbnkgc2Vzc2lv biB2YXJpYWJsZSBuYW1lZCBcIiVzXCIuIiwKKwkJCQkJCSBwYXR0ZXJuKTsKKwkJZWxzZQorCQkJ cGdfbG9nX2Vycm9yKCJEaWQgbm90IGZpbmQgYW55IHNlc3Npb24gdmFyaWFibGVzLiIpOworCX0K KwllbHNlCisJeworCQlteW9wdC5udWxsUHJpbnQgPSBOVUxMOworCQlteW9wdC50aXRsZSA9IF8o Ikxpc3Qgb2YgdmFyaWFibGVzIik7CisJCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIgPSB0cnVlOwor CQlteW9wdC50cmFuc2xhdGVfY29sdW1ucyA9IHRyYW5zbGF0ZV9jb2x1bW5zOworCQlteW9wdC5u X3RyYW5zbGF0ZV9jb2x1bW5zID0gbGVuZ3Rob2YodHJhbnNsYXRlX2NvbHVtbnMpOworCisJCXBy aW50UXVlcnkocmVzLCAmbXlvcHQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dmaWxl KTsKKwl9CisKKwlQUWNsZWFyKHJlcyk7CisJcmV0dXJuIHRydWU7Cit9CiAKIC8qCiAgKiBcZEZw CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaCBiL3NyYy9iaW4vcHNxbC9kZXNj cmliZS5oCmluZGV4IDE4ZWNhYTYwOTQuLjU1Y2VkNGFhYjcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cHNxbC9kZXNjcmliZS5oCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oCkBAIC0xNDksNCAr MTQ5LDcgQEAgZXh0ZXJuIGJvb2wgbGlzdE9wRmFtaWx5RnVuY3Rpb25zKGNvbnN0IGNoYXIgKmFj Y2Vzc19tZXRob2RfcGF0dGVybiwKIC8qIFxkbCBvciBcbG9fbGlzdCAqLwogZXh0ZXJuIGJvb2wg bGlzdExhcmdlT2JqZWN0cyhib29sIHZlcmJvc2UpOwogCisvKiBcZFYgKi8KK2V4dGVybiBib29s IGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2YXJib3NlKTsKKwogI2Vu ZGlmCQkJCQkJCS8qIERFU0NSSUJFX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9oZWxw LmMgYi9zcmMvYmluL3BzcWwvaGVscC5jCmluZGV4IGZkYTgzNDY1ZWYuLjJhZGJlN2VkZWQgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9oZWxwLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpA QCAtMjY2LDYgKzI2Niw3IEBAIHNsYXNoVXNhZ2UodW5zaWduZWQgc2hvcnQgaW50IHBhZ2VyKQog CUhFTFAwKCIgIFxcZFRbUytdIFtQQVRURVJOXSAgICAgIGxpc3QgZGF0YSB0eXBlc1xuIik7CiAJ SEVMUDAoIiAgXFxkdVtTK10gW1BBVFRFUk5dICAgICAgbGlzdCByb2xlc1xuIik7CiAJSEVMUDAo IiAgXFxkdltTK10gW1BBVFRFUk5dICAgICAgbGlzdCB2aWV3c1xuIik7CisJSEVMUDAoIiAgXFxk ViAgICAgW1BBVFRFUk5dICAgICAgbGlzdCBzZXNzaW9uIHZhcmlhYmxlc1xuIik7CiAJSEVMUDAo IiAgXFxkeFsrXSAgW1BBVFRFUk5dICAgICAgbGlzdCBleHRlbnNpb25zXG4iKTsKIAlIRUxQMCgi ICBcXGRYICAgICBbUEFUVEVSTl0gICAgICBsaXN0IGV4dGVuZGVkIHN0YXRpc3RpY3NcbiIpOwog CUhFTFAwKCIgIFxcZHlbK10gIFtQQVRURVJOXSAgICAgIGxpc3QgZXZlbnQgdHJpZ2dlcnNcbiIp OwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9w c3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDgxY2JmMTBhYTIuLjZlZWJmYzZhNWYgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmluLmMKQEAgLTk3MCw2ICs5NzAsMTMgQEAgc3RhdGljIGNvbnN0IFNjaGVt YVF1ZXJ5IFF1ZXJ5X2Zvcl90cmlnZ2VyX29mX3RhYmxlID0gewogCS5yZWZuYW1lc3BhY2UgPSAi YzEucmVsbmFtZXNwYWNlIiwKIH07CiAKK3N0YXRpYyBjb25zdCBTY2hlbWFRdWVyeSBRdWVyeV9m b3JfbGlzdF9vZl92YXJpYWJsZXMgPSB7CisJLm1pbl9zZXJ2ZXJfdmVyc2lvbiA9IDE4MDAwMCwK KwkuY2F0bmFtZSA9ICJwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlIHYiLAorCS52aXNjb25kaXRpb24g PSAicGdfY2F0YWxvZy5wZ192YXJpYWJsZV9pc192aXNpYmxlKHYub2lkKSIsCisJLm5hbWVzcGFj ZSA9ICJ2LnZhcm5hbWVzcGFjZSIsCisJLnJlc3VsdCA9ICJ2LnZhcm5hbWUiLAorfTsKIAogLyoK ICAqIFF1ZXJpZXMgdG8gZ2V0IGxpc3RzIG9mIG5hbWVzIG9mIHZhcmlvdXMga2luZHMgb2YgdGhp bmdzLCBwb3NzaWJseQpAQCAtMTMwNCw2ICsxMzExLDcgQEAgc3RhdGljIGNvbnN0IHBnc3FsX3Ro aW5nX3Qgd29yZHNfYWZ0ZXJfY3JlYXRlW10gPSB7CiAJCQkJCQkJCQkJCQkJCQkJCQkJICogVEFC TEUgLi4uICovCiAJeyJVU0VSIiwgUXVlcnlfZm9yX2xpc3Rfb2Zfcm9sZXMsIE5VTEwsIE5VTEws IEtleXdvcmRzX2Zvcl91c2VyX3RoaW5nfSwKIAl7IlVTRVIgTUFQUElORyBGT1IiLCBOVUxMLCBO VUxMLCBOVUxMfSwKKwl7IlZBUklBQkxFIiwgTlVMTCwgTlVMTCwgJlF1ZXJ5X2Zvcl9saXN0X29m X3ZhcmlhYmxlc30sCiAJeyJWSUVXIiwgTlVMTCwgTlVMTCwgJlF1ZXJ5X2Zvcl9saXN0X29mX3Zp ZXdzfSwKIAl7TlVMTH0JCQkJCQkvKiBlbmQgb2YgbGlzdCAqLwogfTsKQEAgLTE4NjUsNyArMTg3 Myw3IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBl bmQpCiAJCSJcXGRGIiwgIlxcZEZkIiwgIlxcZEZwIiwgIlxcZEZ0IiwgIlxcZGciLCAiXFxkaSIs ICJcXGRsIiwgIlxcZEwiLAogCQkiXFxkbSIsICJcXGRuIiwgIlxcZG8iLCAiXFxkTyIsICJcXGRw IiwgIlxcZFAiLCAiXFxkUGkiLCAiXFxkUHQiLAogCQkiXFxkcmRzIiwgIlxcZHJnIiwgIlxcZFJz IiwgIlxcZFJwIiwgIlxcZHMiLAotCQkiXFxkdCIsICJcXGRUIiwgIlxcZHYiLCAiXFxkdSIsICJc XGR4IiwgIlxcZFgiLCAiXFxkeSIsCisJCSJcXGR0IiwgIlxcZFQiLCAiXFxkdiIsICJcXGR1Iiwg IlxcZHgiLCAiXFxkWCIsICJcXGR5IiwgIlxcZFYiLAogCQkiXFxlY2hvIiwgIlxcZWRpdCIsICJc XGVmIiwgIlxcZWxpZiIsICJcXGVsc2UiLCAiXFxlbmNvZGluZyIsCiAJCSJcXGVuZGlmIiwgIlxc ZXJydmVyYm9zZSIsICJcXGV2IiwKIAkJIlxcZiIsCkBAIC0yNTU2LDYgKzI1NjQsOSBAQCBtYXRj aF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJCQkJCQkJCQkgICJBTEwiKTsKIAll bHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJTWVNURU0iLCAiU0VUIiwgTWF0Y2hBbnkpKQogCQlD T01QTEVURV9XSVRIKCJUTyIpOworCS8qIEFMVEVSIFZBUklBQkxFIDxuYW1lPiAqLworCWVsc2Ug aWYgKE1hdGNoZXMoIkFMVEVSIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9X SVRIKCJPV05FUiBUTyIsICJSRU5BTUUgVE8iLCAiU0VUIFNDSEVNQSIpOwogCS8qIEFMVEVSIFZJ RVcgPG5hbWU+ICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiVklFVyIsIE1hdGNoQW55 KSkKIAkJQ09NUExFVEVfV0lUSCgiQUxURVIgQ09MVU1OIiwgIk9XTkVSIFRPIiwgIlJFTkFNRSIs ICJSRVNFVCIsICJTRVQiKTsKQEAgLTMxMzYsNyArMzE0Nyw3IEBAIG1hdGNoX3ByZXZpb3VzX3dv cmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkgICJST1VUSU5FIiwgIlJVTEUiLCAiU0NIRU1BIiwg IlNFUVVFTkNFIiwgIlNFUlZFUiIsCiAJCQkJCSAgIlNUQVRJU1RJQ1MiLCAiU1VCU0NSSVBUSU9O IiwgIlRBQkxFIiwKIAkJCQkJICAiVEFCTEVTUEFDRSIsICJURVhUIFNFQVJDSCIsICJUUkFOU0ZP Uk0gRk9SIiwKLQkJCQkJICAiVFJJR0dFUiIsICJUWVBFIiwgIlZJRVciKTsKKwkJCQkJICAiVFJJ R0dFUiIsICJUWVBFIiwgIlZBUklBQkxFIiwgIlZJRVciKTsKIAllbHNlIGlmIChNYXRjaGVzKCJD T01NRU5UIiwgIk9OIiwgIkFDQ0VTUyIsICJNRVRIT0QiKSkKIAkJQ09NUExFVEVfV0lUSF9RVUVS WShRdWVyeV9mb3JfbGlzdF9vZl9hY2Nlc3NfbWV0aG9kcyk7CiAJZWxzZSBpZiAoTWF0Y2hlcygi Q09NTUVOVCIsICJPTiIsICJDT05TVFJBSU5UIikpCkBAIC0zOTQ2LDYgKzM5NTcsMTMgQEAgbWF0 Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVz KCI9IiwgTWF0Y2hBbnlFeGNlcHQoIiopIikpKQogCQkJQ09NUExFVEVfV0lUSCgiLCIsICIpIik7 CiAJfQorLyogQ1JFQVRFIFZBUklBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NI RU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KKwkvKiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUg PG5hbWU+IHdpdGggQVMgKi8KKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklB QkxFIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJBUyIpOworCWVsc2UgaWYgKFRhaWxN YXRjaGVzKCJWQVJJQUJMRSIsIE1hdGNoQW55LCAiQVMiKSkKKwkJLyogQ29tcGxldGUgQ1JFQVRF IFZBUklBQkxFIDxuYW1lPiB3aXRoIEFTIHR5cGVzICovCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1B X1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2RhdGF0eXBlcyk7CiAKIC8qIENSRUFURSBWSUVXIC0t LSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8K IAkvKiBDb21wbGV0ZSBDUkVBVEUgWyBPUiBSRVBMQUNFIF0gVklFVyA8bmFtZT4gd2l0aCBBUyBv ciBXSVRIICovCkBAIC00MjIzLDYgKzQyNDEsMTIgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50 IHBhdHRlcm5faWQsCiAJZWxzZSBpZiAoTWF0Y2hlcygiRFJPUCIsICJUUkFOU0ZPUk0iLCAiRk9S IiwgTWF0Y2hBbnksICJMQU5HVUFHRSIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiQ0FT Q0FERSIsICJSRVNUUklDVCIpOwogCisJLyogRFJPUCBWQVJJQUJMRSAqLworCWVsc2UgaWYgKE1h dGNoZXMoIkRST1AiLCAiVkFSSUFCTEUiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlko UXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzKTsKKwllbHNlIGlmIChNYXRjaGVzKCJEUk9QIiwg IlZBUklBQkxFIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJDQVNDQURFIiwgIlJFU1RS SUNUIik7CisKIC8qIEVYRUNVVEUgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJFWEVDVVRFIikpCiAJ CUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfcHJlcGFyZWRfc3RhdGVtZW50 cyk7CkBAIC00NDI0LDcgKzQ0NDgsNyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVy bl9pZCwKIAkJICogb2JqZWN0cyBzdXBwb3J0ZWQuCiAJCSAqLwogCQlpZiAoSGVhZE1hdGNoZXMo IkFMVEVSIiwgIkRFRkFVTFQiLCAiUFJJVklMRUdFUyIpKQotCQkJQ09NUExFVEVfV0lUSCgiVEFC TEVTIiwgIlNFUVVFTkNFUyIsICJGVU5DVElPTlMiLCAiUFJPQ0VEVVJFUyIsICJST1VUSU5FUyIs ICJUWVBFUyIsICJTQ0hFTUFTIik7CisJCQlDT01QTEVURV9XSVRIKCJUQUJMRVMiLCAiU0VRVUVO Q0VTIiwgIkZVTkNUSU9OUyIsICJQUk9DRURVUkVTIiwgIlJPVVRJTkVTIiwgIlRZUEVTIiwgIlND SEVNQVMiLCAiVkFSSUFCTEVTIik7CiAJCWVsc2UKIAkJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FV RVJZX1BMVVMoUXVlcnlfZm9yX2xpc3Rfb2ZfZ3JhbnRhYmxlcywKIAkJCQkJCQkJCQkJIkFMTCBG VU5DVElPTlMgSU4gU0NIRU1BIiwKQEAgLTQ0MzIsNiArNDQ1Niw3IEBAIG1hdGNoX3ByZXZpb3Vz X3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkJCQkJCQkiQUxMIFJPVVRJTkVTIElOIFNDSEVN QSIsCiAJCQkJCQkJCQkJCSJBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQSIsCiAJCQkJCQkJCQkJCSJB TEwgVEFCTEVTIElOIFNDSEVNQSIsCisJCQkJCQkJCQkJCSJBTEwgVkFSSUFCTEVTIElOIFNDSEVN QSIsCiAJCQkJCQkJCQkJCSJEQVRBQkFTRSIsCiAJCQkJCQkJCQkJCSJET01BSU4iLAogCQkJCQkJ CQkJCQkiRk9SRUlHTiBEQVRBIFdSQVBQRVIiLApAQCAtNDQ0Niw3ICs0NDcxLDggQEAgbWF0Y2hf cHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCQkJCQkJCQkJCSJTRVFVRU5DRSIsCiAJ CQkJCQkJCQkJCSJUQUJMRSIsCiAJCQkJCQkJCQkJCSJUQUJMRVNQQUNFIiwKLQkJCQkJCQkJCQkJ IlRZUEUiKTsKKwkJCQkJCQkJCQkJIlRZUEUiLAorCQkJCQkJCQkJCQkiVkFSSUFCTEUiKTsKIAl9 CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkdSQU5UfFJFVk9LRSIsIE1hdGNoQW55LCAiT04iLCAi QUxMIikgfHwKIAkJCSBUYWlsTWF0Y2hlcygiUkVWT0tFIiwgIkdSQU5UIiwgIk9QVElPTiIsICJG T1IiLCBNYXRjaEFueSwgIk9OIiwgIkFMTCIpKQpAQCAtNDQ1NCw3ICs0NDgwLDggQEAgbWF0Y2hf cHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCQkJCSAgIlBST0NFRFVSRVMgSU4gU0NI RU1BIiwKIAkJCQkJICAiUk9VVElORVMgSU4gU0NIRU1BIiwKIAkJCQkJICAiU0VRVUVOQ0VTIElO IFNDSEVNQSIsCi0JCQkJCSAgIlRBQkxFUyBJTiBTQ0hFTUEiKTsKKwkJCQkJICAiVEFCTEVTIElO IFNDSEVNQSIsCisJCQkJCSAgIlZBUklBQkxFUyBJTiBTQ0hFTUEiKTsKIAllbHNlIGlmIChUYWls TWF0Y2hlcygiR1JBTlR8UkVWT0tFIiwgTWF0Y2hBbnksICJPTiIsICJGT1JFSUdOIikgfHwKIAkJ CSBUYWlsTWF0Y2hlcygiUkVWT0tFIiwgIkdSQU5UIiwgIk9QVElPTiIsICJGT1IiLCBNYXRjaEFu eSwgIk9OIiwgIkZPUkVJR04iKSkKIAkJQ09NUExFVEVfV0lUSCgiREFUQSBXUkFQUEVSIiwgIlNF UlZFUiIpOwpAQCAtNDQ5MCw2ICs0NTE3LDggQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBh dHRlcm5faWQsCiAJCQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxl c3BhY2VzKTsKIAkJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlRZUEUiKSkKIAkJCUNPTVBMRVRFX1dJ VEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2RhdGF0eXBlcyk7CisJCWVsc2UgaWYg KFRhaWxNYXRjaGVzKCJWQVJJQUJMRSIpKQorCQkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlko UXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzKTsKIAkJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkdS QU5UIiwgTWF0Y2hBbnksIE1hdGNoQW55LCBNYXRjaEFueSkpCiAJCQlDT01QTEVURV9XSVRIKCJU TyIpOwogCQllbHNlCkBAIC00NzkyLDcgKzQ4MjEsNyBAQCBtYXRjaF9wcmV2aW91c193b3Jkcyhp bnQgcGF0dGVybl9pZCwKIAogLyogUFJFUEFSRSB4eCBBUyAqLwogCWVsc2UgaWYgKE1hdGNoZXMo IlBSRVBBUkUiLCBNYXRjaEFueSwgIkFTIikpCi0JCUNPTVBMRVRFX1dJVEgoIlNFTEVDVCIsICJV UERBVEUiLCAiSU5TRVJUIElOVE8iLCAiREVMRVRFIEZST00iKTsKKwkJQ09NUExFVEVfV0lUSCgi U0VMRUNUIiwgIlVQREFURSIsICJJTlNFUlQgSU5UTyIsICJERUxFVEUgRlJPTSIsICJMRVQiKTsK IAogLyoKICAqIFBSRVBBUkUgVFJBTlNBQ1RJT04gaXMgbWlzc2luZyBvbiBwdXJwb3NlLiBJdCdz IGludGVuZGVkIGZvciB0cmFuc2FjdGlvbgpAQCAtNTI3NCw2ICs1MzAzLDggQEAgbWF0Y2hfcHJl dmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlf Zm9yX2xpc3Rfb2Zfcm9sZXMpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxcZHYqIikpCiAJ CUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3ZpZXdzKTsKKwll bHNlIGlmIChUYWlsTWF0Y2hlc0NTKCJcXGRWKiIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9R VUVSWShRdWVyeV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVz Q1MoIlxcZHgqIikpCiAJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfZXh0 ZW5zaW9ucyk7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXNDUygiXFxkWCoiKSkKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2Vm aWxlCmluZGV4IDJiYmM3ODA1ZmUuLmY5ODc2MGRlNjMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvTWFrZWZpbGUKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZQpAQCAt ODEsNyArODEsOCBAQCBDQVRBTE9HX0hFQURFUlMgOj0gXAogCXBnX3B1YmxpY2F0aW9uX25hbWVz cGFjZS5oIFwKIAlwZ19wdWJsaWNhdGlvbl9yZWwuaCBcCiAJcGdfc3Vic2NyaXB0aW9uLmggXAot CXBnX3N1YnNjcmlwdGlvbl9yZWwuaAorCXBnX3N1YnNjcmlwdGlvbl9yZWwuaCBcCisJcGdfdmFy aWFibGUuaAogCiBHRU5FUkFURURfSEVBREVSUyA6PSAkKENBVEFMT0dfSEVBREVSUzolLmg9JV9k LmgpCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCmluZGV4IGVjMWNmNDY3ZjYuLjgxMzk4ZWZhN2Mg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKKysrIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZApAQCAtNjksNiArNjksNyBAQCBjYXRhbG9nX2hlYWRl cnMgPSBbCiAgICdwZ19wdWJsaWNhdGlvbl9yZWwuaCcsCiAgICdwZ19zdWJzY3JpcHRpb24uaCcs CiAgICdwZ19zdWJzY3JpcHRpb25fcmVsLmgnLAorICAncGdfdmFyaWFibGUuaCcsCiBdCiAKICMg VGhlIC5kYXQgZmlsZXMgd2UgbmVlZCBjYW4ganVzdCBiZSBsaXN0ZWQgYWxwaGFiZXRpY2FsbHku CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oIGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaAppbmRleCA4YzdjY2M2OWEzLi5iZGFjMGMxM2JlIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCisrKyBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvbmFtZXNwYWNlLmgKQEAgLTk3LDYgKzk3LDggQEAgZXh0ZXJuIE9pZAlUeXBlbmFt ZUdldFR5cGlkKGNvbnN0IGNoYXIgKnR5cG5hbWUpOwogZXh0ZXJuIE9pZAlUeXBlbmFtZUdldFR5 cGlkRXh0ZW5kZWQoY29uc3QgY2hhciAqdHlwbmFtZSwgYm9vbCB0ZW1wX29rKTsKIGV4dGVybiBi b29sIFR5cGVJc1Zpc2libGUoT2lkIHR5cGlkKTsKIAorZXh0ZXJuIGJvb2wgVmFyaWFibGVJc1Zp c2libGUoT2lkIHZhcmlkKTsKKwogZXh0ZXJuIEZ1bmNDYW5kaWRhdGVMaXN0IEZ1bmNuYW1lR2V0 Q2FuZGlkYXRlcyhMaXN0ICpuYW1lcywKIAkJCQkJCQkJCQkJICAgaW50IG5hcmdzLCBMaXN0ICph cmduYW1lcywKIAkJCQkJCQkJCQkJICAgYm9vbCBleHBhbmRfdmFyaWFkaWMsCkBAIC0xNjksNiAr MTcxLDEwIEBAIGV4dGVybiBTZWFyY2hQYXRoTWF0Y2hlciAqR2V0U2VhcmNoUGF0aE1hdGNoZXIo TWVtb3J5Q29udGV4dCBjb250ZXh0KTsKIGV4dGVybiBTZWFyY2hQYXRoTWF0Y2hlciAqQ29weVNl YXJjaFBhdGhNYXRjaGVyKFNlYXJjaFBhdGhNYXRjaGVyICpwYXRoKTsKIGV4dGVybiBib29sIFNl YXJjaFBhdGhNYXRjaGVzQ3VycmVudEVudmlyb25tZW50KFNlYXJjaFBhdGhNYXRjaGVyICpwYXRo KTsKIAorZXh0ZXJuIExpc3QgKk5hbWVzRnJvbUxpc3QoTGlzdCAqbmFtZXMpOworZXh0ZXJuIE9p ZAlMb29rdXBWYXJpYWJsZShjb25zdCBjaGFyICpuc3BuYW1lLCBjb25zdCBjaGFyICp2YXJuYW1l LCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJuIE9pZAlMb29rdXBWYXJpYWJsZUZyb21OYW1lTGlz dChMaXN0ICpuYW1lcywgYm9vbCBtaXNzaW5nX29rKTsKKwogZXh0ZXJuIE9pZAlnZXRfY29sbGF0 aW9uX29pZChMaXN0ICpjb2xsbmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJZ2V0 X2NvbnZlcnNpb25fb2lkKExpc3QgKmNvbm5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4g T2lkCUZpbmREZWZhdWx0Q29udmVyc2lvblByb2MoaW50MzIgZm9yX2VuY29kaW5nLCBpbnQzMiB0 b19lbmNvZGluZyk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2RlZmF1bHRf YWNsLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2RlZmF1bHRfYWNsLmgKaW5kZXggNmVkZjMz NzI1My4uZmYyODkxYzA5OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZh dWx0X2FjbC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wuaApAQCAt NjgsNiArNjgsNyBAQCBNQUtFX1NZU0NBQ0hFKERFRkFDTFJPTEVOU1BPQkosIHBnX2RlZmF1bHRf YWNsX3JvbGVfbnNwX29ial9pbmRleCwgOCk7CiAjZGVmaW5lIERFRkFDTE9CSl9GVU5DVElPTgkJ J2YnIC8qIGZ1bmN0aW9uICovCiAjZGVmaW5lIERFRkFDTE9CSl9UWVBFCQkJJ1QnIC8qIHR5cGUg Ki8KICNkZWZpbmUgREVGQUNMT0JKX05BTUVTUEFDRQkJJ24nIC8qIG5hbWVzcGFjZSAqLworI2Rl ZmluZSBERUZBQ0xPQkpfVkFSSUFCTEUJCSdWJyAvKiB2YXJpYWJsZSAqLwogCiAjZW5kaWYJCQkJ CQkJLyogRVhQT1NFX1RPX0NMSUVOVF9DT0RFICovCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0Cmlu ZGV4IGIzN2U4YTZmODguLjcwZjQxZjE4ZTIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAt NTM5NSw2ICs1Mzk1LDI2IEBACiAgIHByb3JldHR5cGUgPT4gJ2Jvb2wnLCBwcm9hcmd0eXBlcyA9 PiAnb2lkIG9pZCB0ZXh0JywKICAgcHJvc3JjID0+ICdoYXNfbGFyZ2VvYmplY3RfcHJpdmlsZWdl X2lkX2lkJyB9LAogCit7IG9pZCA9PiAnOTYxMycsIGRlc2NyID0+ICd1c2VyIHByaXZpbGVnZSBv biBzZXNzaW9uIHZhcmlhYmxlIGJ5IHVzZXJuYW1lLCBzZXEgbmFtZScsCisgIHByb25hbWUgPT4g J2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJv cmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICduYW1lIHRleHQgdGV4dCcsCisg IHByb3NyYyA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX25hbWVfbmFtZScgfSwK K3sgb2lkID0+ICc5NjE0JywgZGVzY3IgPT4gJ3VzZXIgcHJpdmlsZWdlIG9uIHNlc3Npb24gdmFy aWFibGUgYnkgdXNlcm5hbWUsIHNlcSBvaWQnLAorICBwcm9uYW1lID0+ICdoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ2Jv b2wnLAorICBwcm9hcmd0eXBlcyA9PiAnbmFtZSBvaWQgdGV4dCcsIHByb3NyYyA9PiAnaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX25hbWVfaWQnIH0sCit7IG9pZCA9PiAnOTYxNScsIGRl c2NyID0+ICd1c2VyIHByaXZpbGVnZSBvbiBzZXNzaW9uIHZhcmlhYmxlIGJ5IHVzZXIgb2lkLCBz ZXEgbmFtZScsCisgIHByb25hbWUgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZScs IHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVz ID0+ICdvaWQgdGV4dCB0ZXh0JywgcHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2VfaWRfbmFtZScgfSwKK3sgb2lkID0+ICc5NjE2JywgZGVzY3IgPT4gJ3VzZXIgcHJpdmls ZWdlIG9uIHNlc3Npb24gdmFyaWFibGUgYnkgdXNlciBvaWQsIHNlcSBvaWQnLAorICBwcm9uYW1l ID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycs IHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0eXBlcyA9PiAnb2lkIG9pZCB0ZXh0Jywg cHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWRfaWQnIH0sCit7IG9p ZCA9PiAnOTYxNycsIGRlc2NyID0+ICdjdXJyZW50IHVzZXIgcHJpdmlsZWdlIG9uIHNlc3Npb24g dmFyaWFibGUgYnkgc2VxIG5hbWUnLAorICBwcm9uYW1lID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAor ICBwcm9hcmd0eXBlcyA9PiAndGV4dCB0ZXh0JywgcHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2VfbmFtZScgfSwKK3sgb2lkID0+ICc5NjE4JywgZGVzY3IgPT4gJ2N1cnJl bnQgdXNlciBwcml2aWxlZ2Ugb24gc2Vzc2lvbiB2YXJpYWJsZSBieSBzZXEgb2lkJywKKyAgcHJv bmFtZSA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4g J3MnLCBwcm9yZXR0eXBlID0+ICdib29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ29pZCB0ZXh0Jywg cHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWQnIH0sCisKIHsgb2lk ID0+ICczMzU1JywgZGVzY3IgPT4gJ0kvTycsCiAgIHByb25hbWUgPT4gJ3BnX25kaXN0aW5jdF9p bicsIHByb3JldHR5cGUgPT4gJ3BnX25kaXN0aW5jdCcsCiAgIHByb2FyZ3R5cGVzID0+ICdjc3Ry aW5nJywgcHJvc3JjID0+ICdwZ19uZGlzdGluY3RfaW4nIH0sCkBAIC02NTc5LDYgKzY1OTksOSBA QAogICBwcm9uYW1lID0+ICdwZ19jb2xsYXRpb25faXNfdmlzaWJsZScsIHByb2Nvc3QgPT4gJzEw JywgcHJvdm9sYXRpbGUgPT4gJ3MnLAogICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJndHlw ZXMgPT4gJ29pZCcsCiAgIHByb3NyYyA9PiAncGdfY29sbGF0aW9uX2lzX3Zpc2libGUnIH0sCit7 IG9pZCA9PiAnOTIyMScsIGRlc2NyID0+ICdpcyBzZXNzaW9uIHZhcmlhYmxlIHZpc2libGUgaW4g c2VhcmNoIHBhdGg/JywKKyAgcHJvbmFtZSA9PiAncGdfdmFyaWFibGVfaXNfdmlzaWJsZScsIHBy b2Nvc3QgPT4gJzEwJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9yZXR0eXBlID0+ICdib29s JywgcHJvYXJndHlwZXMgPT4gJ29pZCcsIHByb3NyYyA9PiAncGdfdmFyaWFibGVfaXNfdmlzaWJs ZScgfSwKIAogeyBvaWQgPT4gJzI4NTQnLCBkZXNjciA9PiAnZ2V0IE9JRCBvZiBjdXJyZW50IHNl c3Npb25cJ3MgdGVtcCBzY2hlbWEsIGlmIGFueScsCiAgIHByb25hbWUgPT4gJ3BnX215X3RlbXBf c2NoZW1hJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAncicsCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3ZhcmlhYmxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4u M2QzYzZlYjI0YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFy aWFibGUuaApAQCAtMCwwICsxLDgxIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ192 YXJpYWJsZS5oCisgKgkgIGRlZmluaXRpb24gb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgc3lzdGVtIGNh dGFsb2cgKHBnX3ZhcmlhYmxlcykKKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAx OTk2LTIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9u cyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZv cm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAorICoKKyAqIE5P VEVTCisgKgkgIFRoZSBDYXRhbG9nLnBtIG1vZHVsZSByZWFkcyB0aGlzIGZpbGUgYW5kIGRlcml2 ZXMgc2NoZW1hCisgKgkgIGluZm9ybWF0aW9uLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICov CisjaWZuZGVmIFBHX1ZBUklBQkxFX0gKKyNkZWZpbmUgUEdfVkFSSUFCTEVfSAorCisjaW5jbHVk ZSAiY2F0YWxvZy9nZW5ia2kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFkZHJlc3MuaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlX2QuaCIKKyNpbmNsdWRlICJ1dGlscy9hY2wu aCIKKworLyogLS0tLS0tLS0tLS0tLS0tLQorICoJCXBnX3ZhcmlhYmxlIGRlZmluaXRpb24uICBj cHAgdHVybnMgdGhpcyBpbnRvCisgKgkJdHlwZWRlZiBzdHJ1Y3QgRm9ybURhdGFfcGdfdmFyaWFi bGUKKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLworQ0FUQUxPRyhwZ192YXJpYWJsZSw5MjIyLFZh cmlhYmxlUmVsYXRpb25JZCkKK3sKKwlPaWQJCQlvaWQ7CQkJLyogb2lkICovCisKKwkvKiBPSUQg b2YgZW50cnkgaW4gcGdfdHlwZSBmb3IgdmFyaWFibGUncyB0eXBlICovCisJT2lkCQkJdmFydHlw ZSBCS0lfTE9PS1VQKHBnX3R5cGUpOworCisJLyogdmFyaWFibGUgbmFtZSAqLworCU5hbWVEYXRh CXZhcm5hbWU7CisKKwkvKiBPSUQgb2YgbmFtZXNwYWNlIGNvbnRhaW5pbmcgdmFyaWFibGUgY2xh c3MgKi8KKwlPaWQJCQl2YXJuYW1lc3BhY2UgQktJX0xPT0tVUChwZ19uYW1lc3BhY2UpOworCisJ LyogdmFyaWFibGUgb3duZXIgKi8KKwlPaWQJCQl2YXJvd25lciBCS0lfTE9PS1VQKHBnX2F1dGhp ZCk7CisKKwkvKiB0eXBtb2QgZm9yIHZhcmlhYmxlJ3MgdHlwZSAqLworCWludDMyCQl2YXJ0eXBt b2QgQktJX0RFRkFVTFQoLTEpOworCisJLyogdmFyaWFibGUgY29sbGF0aW9uICovCisJT2lkCQkJ dmFyY29sbGF0aW9uIEJLSV9ERUZBVUxUKDApIEJLSV9MT09LVVBfT1BUKHBnX2NvbGxhdGlvbik7 CisKKworI2lmZGVmIENBVEFMT0dfVkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBz dGFydCBoZXJlICovCisKKwkvKiBhY2Nlc3MgcGVybWlzc2lvbnMgKi8KKwlhY2xpdGVtCQl2YXJh Y2xbMV0gQktJX0RFRkFVTFQoX251bGxfKTsKKworI2VuZGlmCit9IEZvcm1EYXRhX3BnX3Zhcmlh YmxlOworCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJRm9ybV9wZ192YXJpYWJsZSBjb3JyZXNw b25kcyB0byBhIHBvaW50ZXIgdG8gYSB0dXBsZSB3aXRoCisgKgkJdGhlIGZvcm1hdCBvZiB0aGUg cGdfdmFyaWFibGUgcmVsYXRpb24uCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYg Rm9ybURhdGFfcGdfdmFyaWFibGUgKkZvcm1fcGdfdmFyaWFibGU7CisKK0RFQ0xBUkVfVE9BU1Qo cGdfdmFyaWFibGUsIDkyMjMsIDkyMjQpOworCitERUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZKHBn X3ZhcmlhYmxlX29pZF9pbmRleCwgOTIyNSwgVmFyaWFibGVPaWRJbmRleElkLCBwZ192YXJpYWJs ZSwgYnRyZWUob2lkIG9pZF9vcHMpKTsKK0RFQ0xBUkVfVU5JUVVFX0lOREVYKHBnX3ZhcmlhYmxl X3Zhcm5hbWVfbnNwX2luZGV4LCA5MjI2LCBWYXJpYWJsZU5hbWVOc3BJbmRleElkLCBwZ192YXJp YWJsZSwgYnRyZWUodmFybmFtZSBuYW1lX29wcywgdmFybmFtZXNwYWNlIG9pZF9vcHMpKTsKKwor ZXh0ZXJuIE9iamVjdEFkZHJlc3MgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAor CQkJCQkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpOworZXh0ZXJuIHZvaWQgRHJvcFZh cmlhYmxlQnlJZChPaWQgdmFyaWQpOworCitNQUtFX1NZU0NBQ0hFKFZBUklBQkxFTkFNRU5TUCwg cGdfdmFyaWFibGVfdmFybmFtZV9uc3BfaW5kZXgsIDgpOworTUFLRV9TWVNDQUNIRShWQVJJQUJM RU9JRCwgcGdfdmFyaWFibGVfb2lkX2luZGV4LCA4KTsKKworI2VuZGlmCQkJCQkJCS8qIFBHX1ZB UklBQkxFX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBi L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCAzOGQ2YWQ3ZGNiLi42NmFlYzQ2 NTQ5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0yMzE2LDYgKzIzMTYsNyBAQCB0eXBlZGVm IGVudW0gT2JqZWN0VHlwZQogCU9CSkVDVF9UU1RFTVBMQVRFLAogCU9CSkVDVF9UWVBFLAogCU9C SkVDVF9VU0VSX01BUFBJTkcsCisJT0JKRUNUX1ZBUklBQkxFLAogCU9CSkVDVF9WSUVXLAogfSBP YmplY3RUeXBlOwogCkBAIC0zNDQ3LDYgKzM0NDgsMjEgQEAgdHlwZWRlZiBzdHJ1Y3QgQWx0ZXJT dGF0c1N0bXQKIAlib29sCQltaXNzaW5nX29rOwkJLyogc2tpcCBlcnJvciBpZiBzdGF0aXN0aWNz IG9iamVjdCBpcyBtaXNzaW5nICovCiB9IEFsdGVyU3RhdHNTdG10OwogCisKKy8qIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqCQl7Q3JlYXRlfEFsdGVyfSBWQVJJQUJMRSBTdGF0ZW1lbnQKKyAq IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU2Vzc2lv blZhclN0bXQKK3sKKwlOb2RlVGFnCQl0eXBlOworCVJhbmdlVmFyICAgKnZhcmlhYmxlOwkJLyog dGhlIHZhcmlhYmxlIHRvIGNyZWF0ZSAqLworCVR5cGVOYW1lICAgKnR5cGVOYW1lOwkJLyogdGhl IHR5cGUgb2YgdmFyaWFibGUgKi8KKwlDb2xsYXRlQ2xhdXNlICpjb2xsQ2xhdXNlOworCWJvb2wJ CWlmX25vdF9leGlzdHM7CS8qIGRvIG5vdGhpbmcgaWYgaXQgYWxyZWFkeSBleGlzdHMgKi8KK30g Q3JlYXRlU2Vzc2lvblZhclN0bXQ7CisKKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJ CUNyZWF0ZSBGdW5jdGlvbiBTdGF0ZW1lbnQKICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNl ci9rd2xpc3QuaAppbmRleCAyNGMyMmE4Njk0Li5jMjVhZGU2OGYxIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5o CkBAIC00ODQsNiArNDg0LDggQEAgUEdfS0VZV09SRCgidmFsaWRhdG9yIiwgVkFMSURBVE9SLCBV TlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YWx1ZSIsIFZBTFVF X1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhbHVlcyIs IFZBTFVFUywgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhcmNo YXIiLCBWQVJDSEFSLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgi dmFyaWFibGUiLCBWQVJJQUJMRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdf S0VZV09SRCgidmFyaWFibGVzIiwgVkFSSUFCTEVTLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJpYWRpYyIsIFZBUklBRElDLCBSRVNFUlZFRF9LRVlXT1JE LCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFyeWluZyIsIFZBUllJTkcsIFVOUkVTRVJWRURf S0VZV09SRCwgQVNfTEFCRUwpCiBQR19LRVlXT1JEKCJ2ZXJib3NlIiwgVkVSQk9TRSwgVFlQRV9G VU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rj b3AvY21kdGFnbGlzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKaW5kZXggZDI1 MGE3MTRkNS4uZWE4Njk1NGRkZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWds aXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKQEAgLTY4LDYgKzY4LDcg QEAgUEdfQ01EVEFHKENNRFRBR19BTFRFUl9UUkFOU0ZPUk0sICJBTFRFUiBUUkFOU0ZPUk0iLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1RSSUdHRVIsICJBTFRF UiBUUklHR0VSIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9U WVBFLCAiQUxURVIgVFlQRSIsIHRydWUsIHRydWUsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19B TFRFUl9VU0VSX01BUFBJTkcsICJBTFRFUiBVU0VSIE1BUFBJTkciLCB0cnVlLCBmYWxzZSwgZmFs c2UpCitQR19DTURUQUcoQ01EVEFHX0FMVEVSX1ZBUklBQkxFLCAiQUxURVIgVkFSSUFCTEUiLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1ZJRVcsICJBTFRFUiBW SUVXIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTkFMWVpFLCAiQU5B TFlaRSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0JFR0lOLCAiQkVH SU4iLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpAQCAtMTIzLDYgKzEyNCw3IEBAIFBHX0NNRFRBRyhD TURUQUdfQ1JFQVRFX1RSQU5TRk9STSwgIkNSRUFURSBUUkFOU0ZPUk0iLCB0cnVlLCBmYWxzZSwg ZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9UUklHR0VSLCAiQ1JFQVRFIFRSSUdHRVIi LCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9UWVBFLCAiQ1JF QVRFIFRZUEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9V U0VSX01BUFBJTkcsICJDUkVBVEUgVVNFUiBNQVBQSU5HIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQor UEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVkFSSUFCTEUsICJDUkVBVEUgVkFSSUFCTEUiLCB0cnVl LCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9WSUVXLCAiQ1JFQVRFIFZJ RVciLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RFQUxMT0NBVEUsICJE RUFMTE9DQVRFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfREVBTExP Q0FURV9BTEwsICJERUFMTE9DQVRFIEFMTCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCkBAIC0xNzUs NiArMTc3LDcgQEAgUEdfQ01EVEFHKENNRFRBR19EUk9QX1RSQU5TRk9STSwgIkRST1AgVFJBTlNG T1JNIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX1RSSUdHRVIs ICJEUk9QIFRSSUdHRVIiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RS T1BfVFlQRSwgIkRST1AgVFlQRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURU QUdfRFJPUF9VU0VSX01BUFBJTkcsICJEUk9QIFVTRVIgTUFQUElORyIsIHRydWUsIGZhbHNlLCBm YWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfRFJPUF9WQVJJQUJMRSwgIkRST1AgVkFSSUFCTEUiLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfVklFVywgIkRST1AgVklF VyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRVhFQ1VURSwgIkVYRUNV VEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19FWFBMQUlOLCAiRVhQ TEFJTiIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGls cy9hY2wuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5oCmluZGV4IDAxYWU1YjcxOWYuLjVlMWE4 YTgyZTkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5oCisrKyBiL3NyYy9pbmNs dWRlL3V0aWxzL2FjbC5oCkBAIC0xNjksNiArMTY5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQXJyYXlU eXBlIEFjbDsKICNkZWZpbmUgQUNMX0FMTF9SSUdIVFNfU0NIRU1BCQkoQUNMX1VTQUdFfEFDTF9D UkVBVEUpCiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX1RBQkxFU1BBQ0UJKEFDTF9DUkVBVEUpCiAj ZGVmaW5lIEFDTF9BTExfUklHSFRTX1RZUEUJCQkoQUNMX1VTQUdFKQorI2RlZmluZSBBQ0xfQUxM X1JJR0hUU19WQVJJQUJMRQkJKEFDTF9TRUxFQ1R8QUNMX1VQREFURSkKIAogLyogb3BlcmF0aW9u IGNvZGVzIGZvciBwZ18qX2FjbG1hc2sgKi8KIHR5cGVkZWYgZW51bQpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUu aAppbmRleCBiMjNkZWI5NjYyLi41M2M0ZDU4ODZlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91 dGlscy9sc3lzY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaApAQCAt MTM0LDYgKzEzNCw3IEBAIGV4dGVybiBjaGFyIGdldF9mdW5jX3Byb2tpbmQoT2lkIGZ1bmNpZCk7 CiBleHRlcm4gYm9vbCBnZXRfZnVuY19sZWFrcHJvb2YoT2lkIGZ1bmNpZCk7CiBleHRlcm4gUmVn UHJvY2VkdXJlIGdldF9mdW5jX3N1cHBvcnQoT2lkIGZ1bmNpZCk7CiBleHRlcm4gT2lkCWdldF9y ZWxuYW1lX3JlbGlkKGNvbnN0IGNoYXIgKnJlbG5hbWUsIE9pZCByZWxuYW1lc3BhY2UpOworZXh0 ZXJuIE9pZAlnZXRfdmFybmFtZV92YXJpZChjb25zdCBjaGFyICp2YXJuYW1lLCBPaWQgdmFybmFt ZXNwYWNlKTsKIGV4dGVybiBjaGFyICpnZXRfcmVsX25hbWUoT2lkIHJlbGlkKTsKIGV4dGVybiBP aWQJZ2V0X3JlbF9uYW1lc3BhY2UoT2lkIHJlbGlkKTsKIGV4dGVybiBPaWQJZ2V0X3JlbF90eXBl X2lkKE9pZCByZWxpZCk7CkBAIC0yMDYsNiArMjA3LDE0IEBAIGV4dGVybiBjaGFyICpnZXRfcHVi bGljYXRpb25fbmFtZShPaWQgcHViaWQsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCWdl dF9zdWJzY3JpcHRpb25fb2lkKGNvbnN0IGNoYXIgKnN1Ym5hbWUsIGJvb2wgbWlzc2luZ19vayk7 CiBleHRlcm4gY2hhciAqZ2V0X3N1YnNjcmlwdGlvbl9uYW1lKE9pZCBzdWJpZCwgYm9vbCBtaXNz aW5nX29rKTsKIAorZXh0ZXJuIGNoYXIgKmdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZh cmlkKTsKK2V4dGVybiBPaWQJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKE9pZCB2YXJp ZCk7CitleHRlcm4gT2lkCWdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGUoT2lkIHZhcmlkKTsKK2V4 dGVybiB2b2lkIGdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9kX2NvbGxpZChPaWQgdmFy aWQsCisJCQkJCQkJCQkJCQkJT2lkICp0eXBpZCwKKwkJCQkJCQkJCQkJCQlpbnQzMiAqdHlwbW9k LAorCQkJCQkJCQkJCQkJCU9pZCAqY29sbGlkKTsKKwogI2RlZmluZSB0eXBlX2lzX2FycmF5KHR5 cGlkKSAgKGdldF9lbGVtZW50X3R5cGUodHlwaWQpICE9IEludmFsaWRPaWQpCiAvKiB0eXBlX2lz X2FycmF5X2RvbWFpbiBhY2NlcHRzIGJvdGggcGxhaW4gYXJyYXlzIGFuZCBkb21haW5zIG92ZXIg YXJyYXlzICovCiAjZGVmaW5lIHR5cGVfaXNfYXJyYXlfZG9tYWluKHR5cGlkKSAgKGdldF9iYXNl X2VsZW1lbnRfdHlwZSh0eXBpZCkgIT0gSW52YWxpZE9pZCkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2RlcGVuZGVuY3kub3V0CmluZGV4IDc0ZDlmZjI5OTguLmMzMzZmNjdhNTkgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9kZXBlbmRlbmN5Lm91dApAQCAtMTUxLDMgKzE1MSwyMCBAQCBv d25lciBvZiB0eXBlIGRlcHRlc3RfdAogRFJPUCBPV05FRCBCWSByZWdyZXNzX2RlcF91c2VyMiwg cmVncmVzc19kZXBfdXNlcjA7CiBEUk9QIFVTRVIgcmVncmVzc19kZXBfdXNlcjI7CiBEUk9QIFVT RVIgcmVncmVzc19kZXBfdXNlcjA7CistLSBkZXBlbmRlbmN5IG9uIHR5cGUKK0NSRUFURSBET01B SU4gdmFyZG9tYWluIEFTIGludDsKK0NSRUFURSBUWVBFIHZhcnR5cGUgQVMgKGEgaW50LCBiIGlu dCwgYyB2YXJkb21haW4pOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFydHlwZTsKKy0tIHNo b3VsZCBmYWlsCitEUk9QIERPTUFJTiB2YXJkb21haW47CitFUlJPUjogIGNhbm5vdCBkcm9wIHR5 cGUgdmFyZG9tYWluIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDog IGNvbHVtbiBjIG9mIGNvbXBvc2l0ZSB0eXBlIHZhcnR5cGUgZGVwZW5kcyBvbiB0eXBlIHZhcmRv bWFpbgorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBv YmplY3RzIHRvby4KK0RST1AgVFlQRSB2YXJ0eXBlOworRVJST1I6ICBjYW5ub3QgZHJvcCB0eXBl IHZhcnR5cGUgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgc2Vz c2lvbiB2YXJpYWJsZSB2YXIxIGRlcGVuZHMgb24gdHlwZSB2YXJ0eXBlCitISU5UOiAgVXNlIERS T1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorLS0gY2xl YW4gdXAKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVFlQRSB2YXJ0eXBlOworRFJPUCBET01B SU4gdmFyZG9tYWluOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRq b2lucy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dAppbmRleCAy MTVlYjg5OWJlLi5kOTk1MzMyMTQwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL29pZGpvaW5zLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5z Lm91dApAQCAtMjY2LDMgKzI2Niw3IEBAIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlv biB7c3ViZGJpZH0gPT4gcGdfZGF0YWJhc2Uge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3N1 YnNjcmlwdGlvbiB7c3Vib3duZXJ9ID0+IHBnX2F1dGhpZCB7b2lkfQogTk9USUNFOiAgY2hlY2tp bmcgcGdfc3Vic2NyaXB0aW9uX3JlbCB7c3JzdWJpZH0gPT4gcGdfc3Vic2NyaXB0aW9uIHtvaWR9 CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb25fcmVsIHtzcnJlbGlkfSA9PiBwZ19j bGFzcyB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFibGUge3ZhcnR5cGV9ID0+IHBn X3R5cGUge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3ZhcmlhYmxlIHt2YXJuYW1lc3BhY2V9 ID0+IHBnX25hbWVzcGFjZSB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFibGUge3Zh cm93bmVyfSA9PiBwZ19hdXRoaWQge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3ZhcmlhYmxl IHt2YXJjb2xsYXRpb259ID0+IHBnX2NvbGxhdGlvbiB7b2lkfQpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cHNxbC5vdXQKaW5kZXggMzZkYzMxYzE2Yy4uODhlMjExOTQ3MSAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3BzcWwub3V0CkBAIC01OTMwLDYgKzU5MzAsMzAgQEAgQ09NTUlUOwogIyBmaW5hbCBPTl9F UlJPUl9ST0xMQkFDSzogb2ZmCiBEUk9QIFRBQkxFIGJsYTsKIERST1AgRlVOQ1RJT04gcHNxbF9l cnJvcjsKKy0tIHNlc3Npb24gdmFyaWFibGUgdGVzdAorQ1JFQVRFIFJPTEUgcmVncmVzc192YXJp YWJsZV9vd25lcjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOworXGRWKyB2YXIxCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisg U2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBP d25lciAgICAgICAgICB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCistLS0tLS0t LSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcHVibGljIHwgdmFy MSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25l ciB8ICAgICAgICAgICAgICAgICAgIHwgCisoMSByb3cpCisKK0dSQU5UIFNFTEVDVCBPTiBWQVJJ QUJMRSB2YXIxIFRPIFBVQkxJQzsKK0NPTU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBk ZXNjcmlwdGlvbic7CitcZFYrIHZhcjEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEg fCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAg ICAgICAgIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAg IHwgICBEZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBwdWJs aWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3Zhcmlh YmxlX293bmVyIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293 bmVyK3wgc29tZSBkZXNjcmlwdGlvbgorICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNzX3Zhcmlh YmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKKygxIHJvdykKKworRFJPUCBWQVJJ QUJMRSB2YXIxOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcmlh YmxlX293bmVyOwogLS0gY2hlY2sgZGVzY3JpYmluZyBpbnZhbGlkIG11bHRpcGFydCBuYW1lcwog XGRBIHJlZ3Jlc3Npb24uaGVhcAogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRv dHRlZCBuYW1lcyk6IHJlZ3Jlc3Npb24uaGVhcApAQCAtNjE1MSw2ICs2MTc1LDEyIEBAIGNyb3Nz LWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogbm9uZXN1Y2gucHVibGlj LmZ1bmNfZGVwc19zdGF0CiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVk IG5hbWVzKTogcmVncmVzc2lvbi5teWV2dAogXGR5IG5vbmVzdWNoLm15ZXZ0CiBpbXByb3BlciBx dWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogbm9uZXN1Y2gubXlldnQKK1xk ViBob3N0LnJlZ3Jlc3Npb24ucHVibGljLnZhcgoraW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRv byBtYW55IGRvdHRlZCBuYW1lcyk6IGhvc3QucmVncmVzc2lvbi5wdWJsaWMudmFyCitcZFYgcmVn cmVzc2lvbnxteWRiLnB1YmxpYy52YXIKK2Nyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5v dCBpbXBsZW1lbnRlZDogcmVncmVzc2lvbnxteWRiLnB1YmxpYy52YXIKK1xkViBub25lc3VjaC5w dWJsaWMudmFyCitjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6 IG5vbmVzdWNoLnB1YmxpYy52YXIKIC0tIGNoZWNrIHRoYXQgZG90cyB3aXRoaW4gcXVvdGVkIG5h bWUgc2VnbWVudHMgYXJlIG5vdCBjb3VudGVkCiBcZEEgIm5vLnN1Y2guYWNjZXNzLm1ldGhvZCIK IExpc3Qgb2YgYWNjZXNzIG1ldGhvZHMKQEAgLTYzODUsNiArNjQxNSwxMiBAQCBMaXN0IG9mIHNj aGVtYXMKIC0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t CiAoMCByb3dzKQogCitcZFYgIm5vLnN1Y2gudmFyaWFibGUiCisgICAgICAgICAgICBMaXN0IG9m IHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgCist LS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0KKygwIHJvd3MpCisKIC0t IGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGRBICJuby5z dWNoLnNjaGVtYSIuIm5vLnN1Y2guYWNjZXNzLm1ldGhvZCIKIGltcHJvcGVyIHF1YWxpZmllZCBu YW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmFj Y2Vzcy5tZXRob2QiCkBAIC02NTU0LDYgKzY1OTAsMTIgQEAgaW1wcm9wZXIgcXVhbGlmaWVkIG5h bWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guaW5z dGEKIAogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIGltcHJv cGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCitcZFYgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC52YXJpYWJsZSIKKyAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFt ZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLQorKDAgcm93cykKKwogLS0gYWdhaW4sIGJ1dCB3aXRoIGN1cnJlbnQg ZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZHQgcmVncmVzc2lv bi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxlLnJlbGF0aW9uIgogICAgICAgTGlzdCBv ZiByZWxhdGlvbnMKQEAgLTY2ODcsNiArNjcyOSwxMiBAQCBMaXN0IG9mIHRleHQgc2VhcmNoIHRl bXBsYXRlcwogLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLSstLS0tLQogKDAgcm93cykKIAorXGRWIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1h Ii4ibm8uc3VjaC52YXJpYWJsZSIKKyAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2No ZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAKKy0tLS0tLS0tKy0tLS0tLSst LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorKDAgcm93cykKKwogLS0gYWdhaW4sIGJ1dCB3aXRo IGRvdHRlZCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkdCAi bm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlv biIKIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1 Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRpb24iCkBA IC02NzM0LDYgKzY3ODIsOCBAQCBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1w bGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbQogY3Jvc3MtZGF0YWJh c2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAibm8uc3VjaC5kYXRhYmFzZSIuIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5kYXRhLnR5cGUiCiBcZFggIm5vLnN1Y2guZGF0YWJhc2Ui LiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKIGNyb3NzLWRh dGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2Ui LiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKK1xkViAibm8u c3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKK2Nyb3Nz LWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJh c2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCiAtLSBjaGVjayBcZHJnIGFu ZCBcZHUKIENSRUFURSBST0xFIHJlZ3Jlc3NfZHVfcm9sZTA7CiBDUkVBVEUgUk9MRSByZWdyZXNz X2R1X3JvbGUxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFi bGVzLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5jMzY2NjBjZTZk Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlcy5vdXQKQEAgLTAsMCArMSw0MzMgQEAKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFi bGVfb3duZXI7CitTRVQgbG9nX3N0YXRlbWVudCBUTyBkZGw7CistLSBzaG91bGQgYmUgb2sKK0NS RUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKy0tIHNob3VsZCBmYWlsLCBwc2V1ZG90eXBlcyBh cmUgbm90IGFsbG93ZWQKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGFueWVsZW1lbnQ7CitFUlJP UjogIHNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHBzZXVkby10eXBlIGFueWVsZW1lbnQKKy0t IHNob3VsZCBiZSBvaywgZG8gbm90aGluZworRFJPUCBWQVJJQUJMRSBJRiBFWElTVFMgdmFyMjsK K05PVElDRTogIHNlc3Npb24gdmFyaWFibGUgInZhcjIiIGRvZXMgbm90IGV4aXN0LCBza2lwcGlu ZworLS0gZG8gbm90aGluZworQ1JFQVRFIFZBUklBQkxFIElGIE5PVCBFWElTVFMgdmFyMSBBUyBp bnQ7CitOT1RJQ0U6ICBzZXNzaW9uIHZhcmlhYmxlICJ2YXIxIiBhbHJlYWR5IGV4aXN0cywgc2tp cHBpbmcKKy0tIHNob3VsZCBmYWlsCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitFUlJP UjogIHNlc3Npb24gdmFyaWFibGUgInZhcjEiIGFscmVhZHkgZXhpc3RzCistLSBzaG91bGQgYmUg b2sKK0RST1AgVkFSSUFCTEUgSUYgRVhJU1RTIHZhcjE7CistLSB0aGUgdmFyaWFibGUgY2FuIHVz ZSBjb21wb3NpdGUgdHlwZXMKK0NSRUFURSBUQUJMRSB0MSAoYSBpbnQsIGIgaW50KTsKK0NSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIHQxOworLS0gc2hvdWxkIGZhaWwKK0RST1AgVEFCTEUgdDE7CitF UlJPUjogIGNhbm5vdCBkcm9wIHRhYmxlIHQxIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQg b24gaXQKK0RFVEFJTDogIHNlc3Npb24gdmFyaWFibGUgdmFyMSBkZXBlbmRzIG9uIHR5cGUgdDEK K0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0 cyB0b28uCistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRBQkxFIHQxIEFERCBDT0xVTU4gYyBpbnQ7 CistLSBzaG91bGQgZmFpbAorQUxURVIgVEFCTEUgdDEgQUxURVIgQ09MVU1OIGIgVFlQRSBudW1l cmljOworRVJST1I6ICBjYW5ub3QgYWx0ZXIgdGFibGUgInQxIiBiZWNhdXNlIHNlc3Npb24gdmFy aWFibGUgInB1YmxpYy52YXIxIiB1c2VzIGl0CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRB QkxFIHQxOworQ1JFQVRFIFRZUEUgdDEgQVMgKGEgaW50LCBiIGludCk7CitDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyB0MTsKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRZUEUgdDE7CitFUlJPUjogIGNh bm5vdCBkcm9wIHR5cGUgdDEgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVU QUlMOiAgc2Vzc2lvbiB2YXJpYWJsZSB2YXIxIGRlcGVuZHMgb24gdHlwZSB0MQorSElOVDogIFVz ZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KKy0t IHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBBREQgQVRUUklCVVRFIGMgaW50OworLS0gc2hv dWxkIGZhaWwKK0FMVEVSIFRZUEUgdDEgQUxURVIgQVRUUklCVVRFIGIgIFRZUEUgbnVtZXJpYzsK K0VSUk9SOiAgY2Fubm90IGFsdGVyIHR5cGUgInQxIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUg InB1YmxpYy52YXIxIiB1c2VzIGl0CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZUEUgdDE7 CitTRVQgbG9nX3N0YXRlbWVudCBUTyBkZWZhdWx0OworQ1JFQVRFIERPTUFJTiB0ZXN0dmFyX2Rv bWFpbiBBUyBpbnQ7CitDUkVBVEUgVFlQRSB0ZXN0dmFyX3R5cGUgQVMgKGEgdGVzdHZhcl9kb21h aW4pOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGVzdHZhcl9kb21haW47CistLSBzaG91bGQg ZmFpbAorQUxURVIgRE9NQUlOIHRlc3R2YXJfZG9tYWluIEFERCBDSEVDSyh2YWx1ZSA8PiAxMDAp OworRVJST1I6ICBjYW5ub3QgYWx0ZXIgZG9tYWluICJ0ZXN0dmFyX2RvbWFpbiIgYmVjYXVzZSBz ZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgdXNlcyBpdAorRFJPUCBWQVJJQUJMRSB2YXIx OworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGVzdHZhcl90eXBlOworLS0gc2hvdWxkIGZhaWwK K0FMVEVSIERPTUFJTiB0ZXN0dmFyX2RvbWFpbiBBREQgQ0hFQ0sodmFsdWUgPD4gMTAwKTsKK0VS Uk9SOiAgY2Fubm90IGFsdGVyIHR5cGUgInRlc3R2YXJfZG9tYWluIiBiZWNhdXNlIHNlc3Npb24g dmFyaWFibGUgInB1YmxpYy52YXIxIiB1c2VzIGl0CitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBz aG91bGQgYmUgb2sKK0FMVEVSIERPTUFJTiB0ZXN0dmFyX2RvbWFpbiBBREQgQ0hFQ0sodmFsdWUg PD4gMTAwKTsKK0RST1AgVFlQRSB0ZXN0dmFyX3R5cGU7CitEUk9QIFRZUEUgdGVzdHZhcl9kb21h aW47CistLSBjaGVjayBldmVudCB0cmlnZ2VyIHN1cHBvcnQKK0NSRUFURSBPUiBSRVBMQUNFIEZV TkNUSU9OIHN2YXJfZXZlbnRfdHJpZ2dlcl9yZXBvcnRfZHJvcHBlZCgpCitSRVRVUk5TIGV2ZW50 X3RyaWdnZXIKK0FTICQkCitERUNMQVJFIHIgcmVjb3JkOworQkVHSU4KKyAgRk9SIHIgSU4gU0VM RUNUICogZnJvbSBwZ19ldmVudF90cmlnZ2VyX2Ryb3BwZWRfb2JqZWN0cygpCisgIExPT1AKKyAg ICBDT05USU5VRSBXSEVOIE5PVCByLm5vcm1hbCBBTkQgTk9UIHIub3JpZ2luYWw7CisKKyAgICBS QUlTRSBOT1RJQ0UKKyAgICAgICAnTk9STUFMOiBvcmlnPSUgbm9ybWFsPSUgaXN0ZW1wPSUgdHlw ZT0lIGlkZW50aXR5PSUgbmFtZT0lIGFyZ3M9JScsCisgICAgICAgci5vcmlnaW5hbCwgci5ub3Jt YWwsIHIuaXNfdGVtcG9yYXJ5LCByLm9iamVjdF90eXBlLAorICAgICAgIHIub2JqZWN0X2lkZW50 aXR5LCByLmFkZHJlc3NfbmFtZXMsIHIuYWRkcmVzc19hcmdzOworICBFTkQgTE9PUDsKK0VORDsK KyQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgRVZFTlQgVFJJR0dFUiBzdmFyX3JlZ3Jlc3Nf ZXZlbnRfdHJpZ2dlcl9yZXBvcnRfZHJvcHBlZCBPTiBzcWxfZHJvcAorICBXSEVOIFRBRyBJTiAo J0RST1AgVkFSSUFCTEUnKQorICBFWEVDVVRFIFBST0NFRFVSRSBzdmFyX2V2ZW50X3RyaWdnZXJf cmVwb3J0X2Ryb3BwZWQoKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0RST1AgVkFS SUFCTEUgdmFyMTsKK05PVElDRTogIE5PUk1BTDogb3JpZz10IG5vcm1hbD1mIGlzdGVtcD1mIHR5 cGU9c2Vzc2lvbiB2YXJpYWJsZSBpZGVudGl0eT1wdWJsaWMudmFyMSBuYW1lPXtwdWJsaWMsdmFy MX0gYXJncz17fQorRFJPUCBFVkVOVCBUUklHR0VSIHN2YXJfcmVncmVzc19ldmVudF90cmlnZ2Vy X3JlcG9ydF9kcm9wcGVkOworLS0gY2hlY2sgY29tbWVudCBvbiB2YXJpYWJsZQorQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgaW50OworQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIHZh cmlhYmxlIGNvbW1lbnQnOworU0VMRUNUIHBnX2NhdGFsb2cub2JqX2Rlc2NyaXB0aW9uKG9pZCwg J3BnX3ZhcmlhYmxlJykgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOwor ICAgIG9ial9kZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgc29tZSB2 YXJpYWJsZSBjb21tZW50CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIGNoZWNr IHRoZSBvYmplY3QgYWRkcmVzcyBvZiBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBTQ0hF TUEgdmFydGVzdDE7CitDUkVBVEUgU0NIRU1BIHZhcnRlc3QyOworQ1JFQVRFIFZBUklBQkxFIHZh cnRlc3QxLnN2YXJ0ZXN0X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcnRlc3QyLnN2 YXJ0ZXN0X3ZhcjEgQVMgaW50OworU0VMRUNUCisgIGUudmFybmFtZSwKKyAgcGdfZGVzY3JpYmVf b2JqZWN0KCdwZ192YXJpYWJsZSc6OnJlZ2NsYXNzLCBlLm9pZCwgMCkgYXMgZGVzY3IsCisgIGIu dHlwZSwgYi5vYmplY3RfbmFtZXMsIGIub2JqZWN0X2FyZ3MsCisgIHBnX2lkZW50aWZ5X29iamVj dChhLmNsYXNzaWQsIGEub2JqaWQsIGEub2Jqc3ViaWQpIGFzIGlkZW50CitGUk9NIHBnX3Zhcmlh YmxlIGFzIGUsCisgIExBVEVSQUwgcGdfaWRlbnRpZnlfb2JqZWN0X2FzX2FkZHJlc3MoJ3BnX3Zh cmlhYmxlJzo6cmVnY2xhc3MsIGUub2lkLCAwKSBhcyBiLAorICBMQVRFUkFMIHBnX2dldF9vYmpl Y3RfYWRkcmVzcyhiLnR5cGUsIGIub2JqZWN0X25hbWVzLCBiLm9iamVjdF9hcmdzKSBhcyBhCitX SEVSRSBlLnZhcm5hbWUgTElLRSAnc3ZhcnRlc3RfdmFyJSc7CisgICAgdmFybmFtZSAgICB8ICAg ICAgICAgICAgICAgICAgZGVzY3IgICAgICAgICAgICAgICAgICB8ICAgICAgIHR5cGUgICAgICAg fCAgICAgICBvYmplY3RfbmFtZXMgICAgICAgfCBvYmplY3RfYXJncyB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlkZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIHN2YXJ0ZXN0X3ZhcjEgfCBzZXNzaW9uIHZhcmlhYmxlIHZhcnRlc3Qx LnN2YXJ0ZXN0X3ZhcjEgfCBzZXNzaW9uIHZhcmlhYmxlIHwge3ZhcnRlc3QxLHN2YXJ0ZXN0X3Zh cjF9IHwge30gICAgICAgICAgfCAoInNlc3Npb24gdmFyaWFibGUiLHZhcnRlc3QxLHN2YXJ0ZXN0 X3ZhcjEsdmFydGVzdDEuc3ZhcnRlc3RfdmFyMSkKKyBzdmFydGVzdF92YXIxIHwgc2Vzc2lvbiB2 YXJpYWJsZSB2YXJ0ZXN0Mi5zdmFydGVzdF92YXIxIHwgc2Vzc2lvbiB2YXJpYWJsZSB8IHt2YXJ0 ZXN0MixzdmFydGVzdF92YXIxfSB8IHt9ICAgICAgICAgIHwgKCJzZXNzaW9uIHZhcmlhYmxlIix2 YXJ0ZXN0MixzdmFydGVzdF92YXIxLHZhcnRlc3QyLnN2YXJ0ZXN0X3ZhcjEpCisoMiByb3dzKQor CitEUk9QIFNDSEVNQSB2YXJ0ZXN0MSBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0 byBzZXNzaW9uIHZhcmlhYmxlIHZhcnRlc3QxLnN2YXJ0ZXN0X3ZhcjEKK0RST1AgU0NIRU1BIHZh cnRlc3QyIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFi bGUgdmFydGVzdDIuc3ZhcnRlc3RfdmFyMQorLS0gY2hlY2sgYWNjZXNzIHJpZ2h0cyBhbmQgc3Vw cG9ydGVkIEFMVEVSCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0OworR1JBTlQgQUxMIE9OIFNDSEVN QSBzdmFydGVzdCBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHN2 YXJ0ZXN0LnZhcjEgQVMgaW50OworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9yZWFkZXI7 CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBUTyByZWdyZXNzX3Zhcmlh YmxlX3JlYWRlcjsKK1JFVk9LRSBBTEwgT04gVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBGUk9NIHJl Z3Jlc3NfdmFyaWFibGVfcmVhZGVyOworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBPV05F UiBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFy MSBSRU5BTUUgVE8gdmFyeHg7CitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdC52YXJ4eCBTRVQgU0NI RU1BIHB1YmxpYzsKK0RST1AgVkFSSUFCTEUgcHVibGljLnZhcnh4OworQUxURVIgREVGQVVMVCBQ UklWSUxFR0VTCisgICBGT1IgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyCisgICBJTiBTQ0hF TUEgc3ZhcnRlc3QKKyAgIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMgVE8gcmVncmVzc192YXJp YWJsZV9yZWFkZXI7CistLSBjcmVhdGluZyB2YXJpYWJsZSB3aXRoIGRlZmF1bHQgcHJpdmlsZWdl cworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSBz dmFydGVzdC52YXIxIEFTIGludDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CistLSBzaG91bGQgYmUg b2suIHNpbmNlIEFMVEVSIERFRkFVTFQgUFJJVklMRUdFUworLS0gYWxsb3cgcmVncmVzc192YXJp YWJsZV9yZWFkZXIgdG8gaGF2ZSBTRUxFQ1QgcHJpdmlsZWRnZQorU0VMRUNUIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yZWFkZXInLCAnc3ZhcnRlc3Qu dmFyMScsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitEUk9QIFZB UklBQkxFIHN2YXJ0ZXN0LnZhcjE7CitEUk9QIFNDSEVNQSBzdmFydGVzdDsKK0RST1AgUk9MRSBy ZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKy0tCistLSBiZWdpbiBvZiBjaGVjayBHUkFOVCBXSVRI IEdSQU5UIE9QVElPTiBhbmQgUkVWT0tFIEdSQU5URUQgQlkKKy0tCitDUkVBVEUgUk9MRSByZWdy ZXNzX3ZhcmlhYmxlX3IxOworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMjsKK1NFVCBS T0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBp bnQ7ICAgICAgLS12YXIxIHdpbGwgb3duZWQgYnkgcmVncmVzc192YXJpYWJsZV9vd25lcgorR1JB TlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMSBXSVRIIEdS QU5UIE9QVElPTjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitHUkFOVCBTRUxF Q1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IyIFdJVEggR1JBTlQgT1BU SU9OOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7 IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsICdwdWJsaWMudmFyMScsICdTRUxF Q1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitSRVZPS0UgQUxMIFBSSVZJTEVH RVMgT04gVkFSSUFCTEUgdmFyMSBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVfcjEgQ0FTQ0FERTsKK1NF TEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEn LCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykK KworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJs ZV9yMicsICdwdWJsaWMudmFyMScsICdTRUxFQ1QnKTsgLS0gZgorIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEg cm93KQorCitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworR1JBTlQgU0VMRUNU IE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMjsKK1NFTEVDVCBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGljLnZh cjEnLCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsICdwdWJs aWMudmFyMScsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitSRVZP S0UgQUxMIE9OIFZBUklBQkxFIHZhcjEgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3IyIEdSQU5URUQg QlkgcmVncmVzc192YXJpYWJsZV9vd25lcjsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7 IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsICdwdWJsaWMudmFyMScsICdTRUxF Q1QnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX293bmVyJywgJ3B1YmxpYy52YXIx JywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFVCBST0xFIFRP IERFRkFVTFQ7CitEUk9QIFZBUklBQkxFIHZhcjE7CistLQorLS0gZW5kIG9mIGNoZWNrIEdSQU5U IFdJVEggR1JBTlQgT1BUSU9OIGFuZCBSRVZPS0UgR1JBTlRFRCBCWQorLS0KKy0tCistLSBiZWdp biBvZiB0ZXN0OiBHUkFOVHxSRVZPS0UgU0VMRUNUfFVQREFURSBPTiBBTEwgVkFSSUFCTEVTIElO IFNDSEVNQQorLS0KK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3Q7CitHUkFOVCBBTEwgT04gU0NIRU1B IHN2YXJ0ZXN0IFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitTRVQgUk9MRSBUTyByZWdyZXNz X3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50Owor Q1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjIgQVMgaW50OworR1JBTlQgU0VMRUNUIE9OIEFM TCBWQVJJQUJMRVMgSU4gU0NIRU1BIHN2YXJ0ZXN0IFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitT RUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3Ix JywgJ3N2YXJ0ZXN0LnZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJv dykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJp YWJsZV9yMScsICdzdmFydGVzdC52YXIyJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0 CisoMSByb3cpCisKK1JFVk9LRSBTRUxFQ1QgT04gQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgc3Zh cnRlc3QgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3IxOworU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICdzdmFydGVzdC52YXIxJywgJ1NF TEVDVCcpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAnc3ZhcnRlc3QudmFy MicsICdTRUxFQ1QnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRVQgUk9MRSBU TyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIxOworRFJPUCBWQVJJQUJMRSBz dmFydGVzdC52YXIyOworRFJPUCBTQ0hFTUEgc3ZhcnRlc3Q7CistLQorLS0gZW5kIG9mIHRlc3Q6 IEdSQU5UfFJFVk9LRSBTRUxFQ1R8VVBEQVRFIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BCist LQorLS0KKy0tIGZ1bmN0aW9uIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSBoYXZlIHZh cmlvdXMga2luZCBvZiBzaWduYXR1cmUuCistLSB0aGUgZm9sbG93aW5nIGFyZSBleHRlbnNpdmUg dGVzdCBmb3IgaXQuCistLQorU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NS RUFURSBWQVJJQUJMRSBwdWJsaWMudmFyMSBBUyBpbnQ7CitTRVQgc2VhcmNoX3BhdGggVE8gcHVi bGljOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHB1YmxpYy52YXIxIFRPIHJlZ3Jlc3NfdmFy aWFibGVfcjE7CitHUkFOVCBTRUxFQ1QsIFVQREFURSBPTiBWQVJJQUJMRSBwdWJsaWMudmFyMSBU TyByZWdyZXNzX3ZhcmlhYmxlX3IyOworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZp bGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICdwdWJsaWMudmFyMScsICdTRUxFQ1QnKTsKKyBo YXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZp bGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICdwdWJsaWMubm90ZXhpc3RzJywgJ1NFTEVDVCcp IElTIE5VTEw7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRVQgUk9M RSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IxOworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0Cisg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAndmFyMScsICdVUERBVEUnKTsgLS0gZgorIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgJ3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSgncmVncmVzc192YXJpYWJsZV9yMicsICd2YXIxJywgJ1VQREFURScpOyAtLSB0CisgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Uo J3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Ug CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgndmFyMScsICdVUERBVEUnKTsgLS0gZgor IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1Qgb2lkIEFTIHZhcmlkCisgIEZST00gcGdf dmFyaWFibGUKKyAgV0hFUkUgdmFybmFtZSA9ICd2YXIxJyBBTkQgdmFybmFtZXNwYWNlID0gJ3B1 YmxpYyc6OnJlZ25hbWVzcGFjZSBcZ3NldAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSgndmFyMScsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQor CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCd2YXIxJywgJ1VQREFURScp OyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCA6dmFyaWQsICdTRUxFQ1QnKTsg LS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgOnZhcmlkLCAnVVBEQVRFJyk7IC0t IGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsIDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0 CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCA6dmFyaWQsICdVUERBVEUnKTsgLS0gdAor IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlKDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisK K1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoOnZhcmlkLCAnVVBEQVRFJyk7 IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMSc6OnJlZ3JvbGUsICd2YXIxJywgJ1NF TEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnOjpyZWdyb2xlLCAndmFy MScsICdVUERBVEUnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJzo6cmVncm9s ZSwgJ3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VM RUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMic6 OnJlZ3JvbGUsICd2YXIxJywgJ1VQREFURScpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cp CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFi bGVfcjEnOjpyZWdyb2xlLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAor KDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNz X3ZhcmlhYmxlX3IxJzo6cmVncm9sZSwgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgn cmVncmVzc192YXJpYWJsZV9yMic6OnJlZ3JvbGUsIDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0Cisg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInOjpyZWdyb2xlLCA6dmFyaWQsICdVUERBVEUnKTsg LS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCistLQorLS0gZW5kIG9mIGZ1bmN0aW9uIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSB0ZXN0cy4KKy0tCitTRVQgUk9MRSBUTyBERUZB VUxUOworU0VUIHNlYXJjaF9wYXRoIFRPIERFRkFVTFQ7CitEUk9QIFZBUklBQkxFIHB1YmxpYy52 YXIxOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitEUk9QIFJPTEUgcmVncmVzc192 YXJpYWJsZV9yMjsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3Mv cGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggMWVkZDllNDVlYi4uN2Y0Zjc0ZWVlYSAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC0xMTEsNyArMTExLDcgQEAgdGVzdDoganNvbiBqc29u YiBqc29uX2VuY29kaW5nIGpzb25wYXRoIGpzb25wYXRoX2VuY29kaW5nIGpzb25iX2pzb25wYXRo IHNxbGpzb24KICMgTkI6IHRlbXAuc3FsIGRvZXMgYSByZWNvbm5lY3Qgd2hpY2ggdHJhbnNpZW50 bHkgdXNlcyAyIGNvbm5lY3Rpb25zLAogIyBzbyBrZWVwIHRoaXMgcGFyYWxsZWwgZ3JvdXAgdG8g YXQgbW9zdCAxOSB0ZXN0cwogIyAtLS0tLS0tLS0tCi10ZXN0OiBwbGFuY2FjaGUgbGltaXQgcGxw Z3NxbCBjb3B5MiB0ZW1wIGRvbWFpbiByYW5nZWZ1bmNzIHByZXBhcmUgY29udmVyc2lvbiB0cnVu Y2F0ZSBhbHRlcl90YWJsZSBzZXF1ZW5jZSBwb2x5bW9ycGhpc20gcm93dHlwZXMgcmV0dXJuaW5n IGxhcmdlb2JqZWN0IHdpdGggeG1sCit0ZXN0OiBwbGFuY2FjaGUgbGltaXQgcGxwZ3NxbCBjb3B5 MiB0ZW1wIGRvbWFpbiByYW5nZWZ1bmNzIHByZXBhcmUgY29udmVyc2lvbiB0cnVuY2F0ZSBhbHRl cl90YWJsZSBzZXF1ZW5jZSBwb2x5bW9ycGhpc20gcm93dHlwZXMgcmV0dXJuaW5nIGxhcmdlb2Jq ZWN0IHdpdGggeG1sIHNlc3Npb25fdmFyaWFibGVzCiAKICMgLS0tLS0tLS0tLQogIyBBbm90aGVy IGdyb3VwIG9mIHBhcmFsbGVsIHRlc3RzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9kZXBlbmRlbmN5LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3kuc3FsCmlu ZGV4IDhkNzRlZDcxMjIuLjZjMThiN2Y4NDAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2RlcGVuZGVuY3kuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3ku c3FsCkBAIC0xMTQsMyArMTE0LDE3IEBAIERST1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMjsKIERS T1AgT1dORUQgQlkgcmVncmVzc19kZXBfdXNlcjIsIHJlZ3Jlc3NfZGVwX3VzZXIwOwogRFJPUCBV U0VSIHJlZ3Jlc3NfZGVwX3VzZXIyOwogRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIwOworCist LSBkZXBlbmRlbmN5IG9uIHR5cGUKK0NSRUFURSBET01BSU4gdmFyZG9tYWluIEFTIGludDsKK0NS RUFURSBUWVBFIHZhcnR5cGUgQVMgKGEgaW50LCBiIGludCwgYyB2YXJkb21haW4pOworQ1JFQVRF IFZBUklBQkxFIHZhcjEgQVMgdmFydHlwZTsKKworLS0gc2hvdWxkIGZhaWwKK0RST1AgRE9NQUlO IHZhcmRvbWFpbjsKK0RST1AgVFlQRSB2YXJ0eXBlOworCistLSBjbGVhbiB1cAorRFJPUCBWQVJJ QUJMRSB2YXIxOworRFJPUCBUWVBFIHZhcnR5cGU7CitEUk9QIERPTUFJTiB2YXJkb21haW47CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3BzcWwuc3FsCmluZGV4IGM1MDIxZmMwYjEuLjY2NmVkZGI2MzIgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3BzcWwuc3FsCkBAIC0xNjMxLDYgKzE2MzEsMTkgQEAgQ09NTUlUOwogRFJPUCBUQUJMRSBibGE7 CiBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiAKKy0tIHNlc3Npb24gdmFyaWFibGUgdGVzdAor Q1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUg IkMiOworXGRWKyB2YXIxCitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyBQVUJMSUM7 CitDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgZGVzY3JpcHRpb24nOworXGRWKyB2 YXIxCitEUk9QIFZBUklBQkxFIHZhcjE7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFJP TEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKKwogLS0gY2hlY2sgZGVzY3JpYmluZyBpbnZhbGlk IG11bHRpcGFydCBuYW1lcwogXGRBIHJlZ3Jlc3Npb24uaGVhcAogXGRBIG5vbmVzdWNoLmhlYXAK QEAgLTE3NDIsNiArMTc1NSw5IEBAIERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKIFxkWCBub25l c3VjaC5wdWJsaWMuZnVuY19kZXBzX3N0YXQKIFxkeSByZWdyZXNzaW9uLm15ZXZ0CiBcZHkgbm9u ZXN1Y2gubXlldnQKK1xkViBob3N0LnJlZ3Jlc3Npb24ucHVibGljLnZhcgorXGRWIHJlZ3Jlc3Np b258bXlkYi5wdWJsaWMudmFyCitcZFYgbm9uZXN1Y2gucHVibGljLnZhcgogCiAtLSBjaGVjayB0 aGF0IGRvdHMgd2l0aGluIHF1b3RlZCBuYW1lIHNlZ21lbnRzIGFyZSBub3QgY291bnRlZAogXGRB ICJuby5zdWNoLmFjY2Vzcy5tZXRob2QiCkBAIC0xNzgzLDYgKzE3OTksOCBAQCBEUk9QIEZVTkNU SU9OIHBzcWxfZXJyb3I7CiBcZHggIm5vLnN1Y2guaW5zdGFsbGVkLmV4dGVuc2lvbiIKIFxkWCAi bm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgogXGR5ICJuby5zdWNoLmV2ZW50LnRyaWdnZXIi CitcZFYgIm5vLnN1Y2gudmFyaWFibGUiCisKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBz Y2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZEEgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5hY2Nl c3MubWV0aG9kIgpAQCAtMTgyMyw2ICsxODQxLDcgQEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9y OwogXGR4ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guaW5zdGFsbGVkLmV4dGVuc2lvbiIKIFxk WCAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCiBcZHkgIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgorXGRWICJuby5zdWNoLnNjaGVt YSIuIm5vLnN1Y2gudmFyaWFibGUiCiAKIC0tIGFnYWluLCBidXQgd2l0aCBjdXJyZW50IGRhdGFi YXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGR0IHJlZ3Jlc3Npb24uIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlvbiIKQEAgLTE4NDcsNiArMTg2Niw3 IEBAIERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKIFxkUCByZWdyZXNzaW9uLiJuby5zdWNoLnNj aGVtYSIuIm5vLnN1Y2gucGFydGl0aW9uZWQucmVsYXRpb24iCiBcZFQgcmVncmVzc2lvbi4ibm8u c3VjaC5zY2hlbWEiLiJuby5zdWNoLmRhdGEudHlwZSIKIFxkWCByZWdyZXNzaW9uLiJuby5zdWNo LnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKK1xkViByZWdyZXNzaW9uLiJu by5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCiAKIC0tIGFnYWluLCBidXQgd2l0aCBk b3R0ZWQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZHQgIm5v LnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRpb24i CkBAIC0xODcyLDYgKzE4OTIsNyBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZFAgIm5v LnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gucGFydGl0aW9uZWQucmVs YXRpb24iCiBcZFQgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gu ZGF0YS50eXBlIgogXGRYICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5z dWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCitcZFYgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNo LnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCiAKIC0tIGNoZWNrIFxkcmcgYW5kIFxkdQogQ1JF QVRFIFJPTEUgcmVncmVzc19kdV9yb2xlMDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25f dmFyaWFibGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5lZWIw Zjk0Y2EzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsCkBAIC0wLDAgKzEsMjk3IEBACitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcmlh YmxlX293bmVyOworCitTRVQgbG9nX3N0YXRlbWVudCBUTyBkZGw7CisKKy0tIHNob3VsZCBiZSBv aworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworCistLSBzaG91bGQgZmFpbCwgcHNldWRv dHlwZXMgYXJlIG5vdCBhbGxvd2VkCitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBhbnllbGVtZW50 OworCistLSBzaG91bGQgYmUgb2ssIGRvIG5vdGhpbmcKK0RST1AgVkFSSUFCTEUgSUYgRVhJU1RT IHZhcjI7CisKKy0tIGRvIG5vdGhpbmcKK0NSRUFURSBWQVJJQUJMRSBJRiBOT1QgRVhJU1RTIHZh cjEgQVMgaW50OworCistLSBzaG91bGQgZmFpbAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50 OworCistLSBzaG91bGQgYmUgb2sKK0RST1AgVkFSSUFCTEUgSUYgRVhJU1RTIHZhcjE7CisKKy0t IHRoZSB2YXJpYWJsZSBjYW4gdXNlIGNvbXBvc2l0ZSB0eXBlcworQ1JFQVRFIFRBQkxFIHQxIChh IGludCwgYiBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdDE7CisKKy0tIHNob3VsZCBm YWlsCitEUk9QIFRBQkxFIHQxOworCistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRBQkxFIHQxIEFE RCBDT0xVTU4gYyBpbnQ7CisKKy0tIHNob3VsZCBmYWlsCitBTFRFUiBUQUJMRSB0MSBBTFRFUiBD T0xVTU4gYiBUWVBFIG51bWVyaWM7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVEFCTEUg dDE7CisKK0NSRUFURSBUWVBFIHQxIEFTIChhIGludCwgYiBpbnQpOworQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgdDE7CisKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRZUEUgdDE7CisKKy0tIHNob3Vs ZCBiZSBvaworQUxURVIgVFlQRSB0MSBBREQgQVRUUklCVVRFIGMgaW50OworCistLSBzaG91bGQg ZmFpbAorQUxURVIgVFlQRSB0MSBBTFRFUiBBVFRSSUJVVEUgYiAgVFlQRSBudW1lcmljOworCitE Uk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZUEUgdDE7CisKK1NFVCBsb2dfc3RhdGVtZW50IFRP IGRlZmF1bHQ7CisKK0NSRUFURSBET01BSU4gdGVzdHZhcl9kb21haW4gQVMgaW50OworQ1JFQVRF IFRZUEUgdGVzdHZhcl90eXBlIEFTIChhIHRlc3R2YXJfZG9tYWluKTsKKworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgdGVzdHZhcl9kb21haW47CisKKy0tIHNob3VsZCBmYWlsCitBTFRFUiBET01B SU4gdGVzdHZhcl9kb21haW4gQUREIENIRUNLKHZhbHVlIDw+IDEwMCk7CisKK0RST1AgVkFSSUFC TEUgdmFyMTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGVzdHZhcl90eXBlOworCistLSBz aG91bGQgZmFpbAorQUxURVIgRE9NQUlOIHRlc3R2YXJfZG9tYWluIEFERCBDSEVDSyh2YWx1ZSA8 PiAxMDApOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworQUxURVIg RE9NQUlOIHRlc3R2YXJfZG9tYWluIEFERCBDSEVDSyh2YWx1ZSA8PiAxMDApOworCitEUk9QIFRZ UEUgdGVzdHZhcl90eXBlOworRFJPUCBUWVBFIHRlc3R2YXJfZG9tYWluOworCistLSBjaGVjayBl dmVudCB0cmlnZ2VyIHN1cHBvcnQKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJfZXZl bnRfdHJpZ2dlcl9yZXBvcnRfZHJvcHBlZCgpCitSRVRVUk5TIGV2ZW50X3RyaWdnZXIKK0FTICQk CitERUNMQVJFIHIgcmVjb3JkOworQkVHSU4KKyAgRk9SIHIgSU4gU0VMRUNUICogZnJvbSBwZ19l dmVudF90cmlnZ2VyX2Ryb3BwZWRfb2JqZWN0cygpCisgIExPT1AKKyAgICBDT05USU5VRSBXSEVO IE5PVCByLm5vcm1hbCBBTkQgTk9UIHIub3JpZ2luYWw7CisKKyAgICBSQUlTRSBOT1RJQ0UKKyAg ICAgICAnTk9STUFMOiBvcmlnPSUgbm9ybWFsPSUgaXN0ZW1wPSUgdHlwZT0lIGlkZW50aXR5PSUg bmFtZT0lIGFyZ3M9JScsCisgICAgICAgci5vcmlnaW5hbCwgci5ub3JtYWwsIHIuaXNfdGVtcG9y YXJ5LCByLm9iamVjdF90eXBlLAorICAgICAgIHIub2JqZWN0X2lkZW50aXR5LCByLmFkZHJlc3Nf bmFtZXMsIHIuYWRkcmVzc19hcmdzOworICBFTkQgTE9PUDsKK0VORDsKKyQkIExBTkdVQUdFIHBs cGdzcWw7CisKK0NSRUFURSBFVkVOVCBUUklHR0VSIHN2YXJfcmVncmVzc19ldmVudF90cmlnZ2Vy X3JlcG9ydF9kcm9wcGVkIE9OIHNxbF9kcm9wCisgIFdIRU4gVEFHIElOICgnRFJPUCBWQVJJQUJM RScpCisgIEVYRUNVVEUgUFJPQ0VEVVJFIHN2YXJfZXZlbnRfdHJpZ2dlcl9yZXBvcnRfZHJvcHBl ZCgpOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitEUk9QIFZBUklBQkxFIHZhcjE7 CisKK0RST1AgRVZFTlQgVFJJR0dFUiBzdmFyX3JlZ3Jlc3NfZXZlbnRfdHJpZ2dlcl9yZXBvcnRf ZHJvcHBlZDsKKworLS0gY2hlY2sgY29tbWVudCBvbiB2YXJpYWJsZQorQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgaW50OworQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIHZhcmlhYmxl IGNvbW1lbnQnOworU0VMRUNUIHBnX2NhdGFsb2cub2JqX2Rlc2NyaXB0aW9uKG9pZCwgJ3BnX3Zh cmlhYmxlJykgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworCitEUk9Q IFZBUklBQkxFIHZhcjE7CisKKy0tIGNoZWNrIHRoZSBvYmplY3QgYWRkcmVzcyBvZiBhbGwgc2Vz c2lvbiB2YXJpYWJsZXMKK0NSRUFURSBTQ0hFTUEgdmFydGVzdDE7CitDUkVBVEUgU0NIRU1BIHZh cnRlc3QyOworQ1JFQVRFIFZBUklBQkxFIHZhcnRlc3QxLnN2YXJ0ZXN0X3ZhcjEgQVMgaW50Owor Q1JFQVRFIFZBUklBQkxFIHZhcnRlc3QyLnN2YXJ0ZXN0X3ZhcjEgQVMgaW50OworCitTRUxFQ1QK KyAgZS52YXJuYW1lLAorICBwZ19kZXNjcmliZV9vYmplY3QoJ3BnX3ZhcmlhYmxlJzo6cmVnY2xh c3MsIGUub2lkLCAwKSBhcyBkZXNjciwKKyAgYi50eXBlLCBiLm9iamVjdF9uYW1lcywgYi5vYmpl Y3RfYXJncywKKyAgcGdfaWRlbnRpZnlfb2JqZWN0KGEuY2xhc3NpZCwgYS5vYmppZCwgYS5vYmpz dWJpZCkgYXMgaWRlbnQKK0ZST00gcGdfdmFyaWFibGUgYXMgZSwKKyAgTEFURVJBTCBwZ19pZGVu dGlmeV9vYmplY3RfYXNfYWRkcmVzcygncGdfdmFyaWFibGUnOjpyZWdjbGFzcywgZS5vaWQsIDAp IGFzIGIsCisgIExBVEVSQUwgcGdfZ2V0X29iamVjdF9hZGRyZXNzKGIudHlwZSwgYi5vYmplY3Rf bmFtZXMsIGIub2JqZWN0X2FyZ3MpIGFzIGEKK1dIRVJFIGUudmFybmFtZSBMSUtFICdzdmFydGVz dF92YXIlJzsKKworRFJPUCBTQ0hFTUEgdmFydGVzdDEgQ0FTQ0FERTsKK0RST1AgU0NIRU1BIHZh cnRlc3QyIENBU0NBREU7CisKKy0tIGNoZWNrIGFjY2VzcyByaWdodHMgYW5kIHN1cHBvcnRlZCBB TFRFUgorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKK0dSQU5UIEFMTCBPTiBTQ0hFTUEgc3ZhcnRl c3QgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKKworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0 LnZhcjEgQVMgaW50OworCitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKwor R1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgVE8gcmVncmVzc192YXJpYWJs ZV9yZWFkZXI7CitSRVZPS0UgQUxMIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgRlJPTSByZWdy ZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBPV05F UiBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFy MSBSRU5BTUUgVE8gdmFyeHg7CitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdC52YXJ4eCBTRVQgU0NI RU1BIHB1YmxpYzsKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMudmFyeHg7CisKK0FMVEVSIERFRkFV TFQgUFJJVklMRUdFUworICAgRk9SIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcgorICAgSU4g U0NIRU1BIHN2YXJ0ZXN0CisgICBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIHJlZ3Jlc3Nf dmFyaWFibGVfcmVhZGVyOworCistLSBjcmVhdGluZyB2YXJpYWJsZSB3aXRoIGRlZmF1bHQgcHJp dmlsZWdlcworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJ QUJMRSBzdmFydGVzdC52YXIxIEFTIGludDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKKy0tIHNo b3VsZCBiZSBvay4gc2luY2UgQUxURVIgREVGQVVMVCBQUklWSUxFR0VTCistLSBhbGxvdyByZWdy ZXNzX3ZhcmlhYmxlX3JlYWRlciB0byBoYXZlIFNFTEVDVCBwcml2aWxlZGdlCitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcicsICdz dmFydGVzdC52YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3Qu dmFyMTsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0OworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVf cmVhZGVyOworCistLQorLS0gYmVnaW4gb2YgY2hlY2sgR1JBTlQgV0lUSCBHUkFOVCBPUFRJT04g YW5kIFJFVk9LRSBHUkFOVEVEIEJZCistLQorQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9y MTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CisKK1NFVCBST0xFIFRPIHJlZ3Jl c3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7ICAgICAgLS12 YXIxIHdpbGwgb3duZWQgYnkgcmVncmVzc192YXJpYWJsZV9vd25lcgorCitHUkFOVCBTRUxFQ1Qg T04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IxIFdJVEggR1JBTlQgT1BUSU9O OworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9yMTsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJ QUJMRSB2YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjIgV0lUSCBHUkFOVCBPUFRJT047CitTRVQg Uk9MRSBUTyBERUZBVUxUOworCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl KCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSB0CitT RUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3Iy JywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisKK1JFVk9LRSBBTEwgUFJJVklMRUdF UyBPTiBWQVJJQUJMRSB2YXIxIEZST00gcmVncmVzc192YXJpYWJsZV9yMSBDQVNDQURFOworCitT RUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3Ix JywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgJ3B1YmxpYy52YXIxJywgJ1NF TEVDVCcpOyAtLSBmCisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitHUkFO VCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IyOworCitTRUxF Q1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywg J3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVD VCcpOyAtLSB0CisKK1JFVk9LRSBBTEwgT04gVkFSSUFCTEUgdmFyMSBGUk9NIHJlZ3Jlc3NfdmFy aWFibGVfcjIgR1JBTlRFRCBCWSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworCitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1Ymxp Yy52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAt LSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zhcmlh YmxlX293bmVyJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSB0CitTRVQgUk9MRSBUTyBE RUZBVUxUOworCitEUk9QIFZBUklBQkxFIHZhcjE7CistLQorLS0gZW5kIG9mIGNoZWNrIEdSQU5U IFdJVEggR1JBTlQgT1BUSU9OIGFuZCBSRVZPS0UgR1JBTlRFRCBCWQorLS0KKworLS0KKy0tIGJl Z2luIG9mIHRlc3Q6IEdSQU5UfFJFVk9LRSBTRUxFQ1R8VVBEQVRFIE9OIEFMTCBWQVJJQUJMRVMg SU4gU0NIRU1BCistLQorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKK0dSQU5UIEFMTCBPTiBTQ0hF TUEgc3ZhcnRlc3QgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK1NFVCBST0xFIFRPIHJlZ3Jl c3NfdmFyaWFibGVfb3duZXI7CisKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIGlu dDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIyIEFTIGludDsKKworR1JBTlQgU0VMRUNU IE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIHN2YXJ0ZXN0IFRPIHJlZ3Jlc3NfdmFyaWFibGVf cjE7CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFy aWFibGVfcjEnLCAnc3ZhcnRlc3QudmFyMScsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICdzdmFydGVz dC52YXIyJywgJ1NFTEVDVCcpOyAtLSB0CisKK1JFVk9LRSBTRUxFQ1QgT04gQUxMIFZBUklBQkxF UyBJTiBTQ0hFTUEgc3ZhcnRlc3QgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3IxOworCitTRUxFQ1Qg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3N2 YXJ0ZXN0LnZhcjEnLCAnU0VMRUNUJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAnc3ZhcnRlc3QudmFyMicsICdTRUxF Q1QnKTsgLS0gZgorCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSBzdmFydGVz dC52YXIxOworRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIyOworRFJPUCBTQ0hFTUEgc3ZhcnRl c3Q7CistLQorLS0gZW5kIG9mIHRlc3Q6IEdSQU5UfFJFVk9LRSBTRUxFQ1R8VVBEQVRFIE9OIEFM TCBWQVJJQUJMRVMgSU4gU0NIRU1BCistLQorCistLQorLS0gZnVuY3Rpb24gaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlIGhhdmUgdmFyaW91cyBraW5kIG9mIHNpZ25hdHVyZS4KKy0tIHRo ZSBmb2xsb3dpbmcgYXJlIGV4dGVuc2l2ZSB0ZXN0IGZvciBpdC4KKy0tCitTRVQgUk9MRSBUTyBy ZWdyZXNzX3ZhcmlhYmxlX293bmVyOworCitDUkVBVEUgVkFSSUFCTEUgcHVibGljLnZhcjEgQVMg aW50OworCitTRVQgc2VhcmNoX3BhdGggVE8gcHVibGljOworCitHUkFOVCBTRUxFQ1QgT04gVkFS SUFCTEUgcHVibGljLnZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMTsKK0dSQU5UIFNFTEVDVCwg VVBEQVRFIE9OIFZBUklBQkxFIHB1YmxpYy52YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CisK K1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVf cjEnLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1YmxpYy5ub3RleGlzdHMnLCAn U0VMRUNUJykgSVMgTlVMTDsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9yMTsKKwor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9y MScsICd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3ZhcjEnLCAnVVBEQVRFJyk7IC0tIGYK K1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVf cjInLCAndmFyMScsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsICd2YXIxJywgJ1VQREFURScpOyAtLSB0 CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3ZhcjEnLCAnU0VMRUNU Jyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3ZhcjEnLCAn VVBEQVRFJyk7IC0tIGYKKworU0VMRUNUIG9pZCBBUyB2YXJpZAorICBGUk9NIHBnX3ZhcmlhYmxl CisgIFdIRVJFIHZhcm5hbWUgPSAndmFyMScgQU5EIHZhcm5hbWVzcGFjZSA9ICdwdWJsaWMnOjpy ZWduYW1lc3BhY2UgXGdzZXQKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSgndmFyMScsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSgndmFyMScsICdVUERBVEUnKTsgLS0gZgorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgOnZhcmlkLCAnU0VMRUNUJyk7 IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFy aWFibGVfcjEnLCA6dmFyaWQsICdVUERBVEUnKTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsIDp2YXJpZCwgJ1NFTEVDVCcp OyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zh cmlhYmxlX3IyJywgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIHQKKworU0VMRUNUIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSg6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSg6dmFyaWQsICdVUERBVEUnKTsgLS0gZgorCitTRUxF Q1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJzo6 cmVncm9sZSwgJ3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnOjpyZWdyb2xlLCAndmFyMScsICdV UERBVEUnKTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVn cmVzc192YXJpYWJsZV9yMic6OnJlZ3JvbGUsICd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0CitTRUxF Q1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJzo6 cmVncm9sZSwgJ3ZhcjEnLCAnVVBEQVRFJyk7IC0tIHQKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMSc6OnJlZ3JvbGUsIDp2YXJpZCwg J1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdy ZWdyZXNzX3ZhcmlhYmxlX3IxJzo6cmVncm9sZSwgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIGYKK1NF TEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjIn OjpyZWdyb2xlLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMic6OnJlZ3JvbGUsIDp2YXJpZCwg J1VQREFURScpOyAtLSB0CistLQorLS0gZW5kIG9mIGZ1bmN0aW9uIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSB0ZXN0cy4KKy0tCisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgc2Vh cmNoX3BhdGggVE8gREVGQVVMVDsKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMudmFyMTsKKworRFJP UCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9y MjsKKworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CmRpZmYgLS1naXQgYS9zcmMv dG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0CmluZGV4IDlmODNlY2YxODEuLjMyZGIyYzYzMGUgMTAwNjQ0Ci0tLSBhL3NyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0CkBAIC01MzcsNiArNTM3LDcgQEAgQ3JlYXRlUm9sZVN0bXQKIENyZWF0ZVNjaGVtYVN0 bXQKIENyZWF0ZVNjaGVtYVN0bXRDb250ZXh0CiBDcmVhdGVTZXFTdG10CitDcmVhdGVTZXNzaW9u VmFyU3RtdAogQ3JlYXRlU3RhdHNTdG10CiBDcmVhdGVTdG10CiBDcmVhdGVTdG10Q29udGV4dApA QCAtODc3LDYgKzg3OCw3IEBAIEZvcm1EYXRhX3BnX3RzX3BhcnNlcgogRm9ybURhdGFfcGdfdHNf dGVtcGxhdGUKIEZvcm1EYXRhX3BnX3R5cGUKIEZvcm1EYXRhX3BnX3VzZXJfbWFwcGluZworRm9y bURhdGFfcGdfdmFyaWFibGUKIEZvcm1FeHRyYURhdGFfcGdfYXR0cmlidXRlCiBGb3JtX3BnX2Fn Z3JlZ2F0ZQogRm9ybV9wZ19hbQpAQCAtOTM2LDYgKzkzOCw3IEBAIEZvcm1fcGdfdHNfcGFyc2Vy CiBGb3JtX3BnX3RzX3RlbXBsYXRlCiBGb3JtX3BnX3R5cGUKIEZvcm1fcGdfdXNlcl9tYXBwaW5n CitGb3JtX3BnX3ZhcmlhYmxlCiBGb3JtYXROb2RlCiBGcmVlQmxvY2tOdW1iZXJBcnJheQogRnJl ZUxpc3REYXRhCkBAIC0zMDg5LDYgKzMwOTIsNyBAQCBWYXJTdHJpbmcKIFZhclN0cmluZ1NvcnRT dXBwb3J0CiBWYXJpYWJsZQogVmFyaWFibGVBc3NpZ25Ib29rCitWYXJpYWJsZUluZm8KIFZhcmlh YmxlU2V0S2luZAogVmFyaWFibGVTZXRTdG10CiBWYXJpYWJsZVNob3dTdG10Ci0tIAoyLjQ3LjEK Cg== --0000000000008953c9062b346e70--