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 1tOAvq-004bmk-U9 for pgsql-hackers@arkaria.postgresql.org; Thu, 19 Dec 2024 07:26:52 +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 1tOAvq-008yNj-6T for pgsql-hackers@arkaria.postgresql.org; Thu, 19 Dec 2024 07:26:49 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tOAvp-008yNV-6y for pgsql-hackers@lists.postgresql.org; Thu, 19 Dec 2024 07:26:49 +0000 Received: from mail-yw1-x1129.google.com ([2607:f8b0:4864:20::1129]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1tOAvX-000Xrt-Fp for pgsql-hackers@lists.postgresql.org; Thu, 19 Dec 2024 07:26:48 +0000 Received: by mail-yw1-x1129.google.com with SMTP id 00721157ae682-6f14626c5d3so3757387b3.3 for ; Wed, 18 Dec 2024 23:26:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1734593190; x=1735197990; 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=lzQID+pl4lPtQQHxUXGyVq+FC9A7TQ2CYY2j8OZVfKw=; b=a+w60lCCAg1KSBEnrH6Dx4FsH8lMf7RjWixJbryMZTHH4lLa8XlarGQs9FUsffjfnO Yxcaz62mCzhcDpPsr+feXOt1SHucnLPxRpngamoGs8Jrz1gu/vX44mhFZDtG1cb6TcBd Ju8PKNZL0GUXi2qw2DPe45Hq68GjwE18bXNv9ZoopYtWxi0Al4hEvQPpRBtfcAIInXTu vF/cLA/E5uVfoiUC02R3fxsWag/WVoU0/zeHYqW2ljs1/Ze2vrZ58fvcQggxHydRxIbC wED7N/duhZ/y2eE67tT1b3I2lA0cd0r9xeJjQYnojzpKoGAYWlyzy6jNn0qGpUPvyiuB P8Jw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734593190; x=1735197990; 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=lzQID+pl4lPtQQHxUXGyVq+FC9A7TQ2CYY2j8OZVfKw=; b=uabv08Su8gkZ2t3J0DomHdgxrDjioGRtXedlKzA/KqZcAJPsE7bgqYGygiXUk7t/vc 6tjn9K2s93eRFpkecfYB7XJYIUdM3rvj9Bxbo6yOZFOhr3oH8OxXDvJ9M/0qJRppcJKx ji3ksJ/l5AD1MnEU7RZmVbUh4PC4HepzpSE3bcsmr29CPaoJBhgN8LPio9yb1fez38qq f3DIm5/cJtIU/1SNuucjadE5S6UVkl/TpbOA/myR5WSn3LDAhF5/0nbSwAz40hsWeg2M 9ti588/3uYSs9FF7P/fyw3acqLLEuiufIxW3C5gXfrUAJXARvl1XSkcaor8omW7cP4ue etFg== X-Forwarded-Encrypted: i=1; AJvYcCX9t7VjNY98CPHvk+8fZmOAUR0gbDTQ5YrK2PFPB0rBiNRs1GEpchj1wFtuwyQfmIqfFt4KnbTNbyergpQu@lists.postgresql.org X-Gm-Message-State: AOJu0Ywuo1n4TXAuYvAZv1uFA/qlBZXlyMSonZrB01JsP40HAFMmfiJq fCSNB5POHxBxfu3sQY8AbzOJiMctSGQOodDJK0JAwORtuirTUpr4ziEbzKsneeXwM0BXJIz7wR+ EJHbUzzSsVYxDsxIYxvEZI3CuA6c= X-Gm-Gg: ASbGncutrpPjEiwl8kCNA5wtWMIRvsBX2BSSi9T0kidKqse0eKqD5nAQibRqY+zL/uQ KIH1FJ8kCc6cNsj7uSI+4tKcOLsmS8Dsh4WMuKe/Q76Sl/JEWyWtFP7w0LIHDpszJa6lgVKo= X-Google-Smtp-Source: AGHT+IEdLjfqD9RZaakqfEcZ4QOXawPuOCLKG25rdjbaRRdHI/VdOiSvVIBMEDkd31ltj19+dQ7aZk9wlsFvfpCzCcE= X-Received: by 2002:a05:690c:9689:b0:6ef:7ac0:1ab8 with SMTP id 00721157ae682-6f3d26c87ecmr49169427b3.40.1734593190137; Wed, 18 Dec 2024 23:26:30 -0800 (PST) MIME-Version: 1.0 References: <3chredgnjcmccym2kczawfih226b4ac6co7p6z4jeofevrcosi@mrsxkx2x2c65> <20241120201313.t4wbhld4ktgielaf@erthalion.local> In-Reply-To: From: Pavel Stehule Date: Thu, 19 Dec 2024 08:25:51 +0100 Message-ID: Subject: 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="000000000000ee56b206299a729a" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000ee56b206299a729a Content-Type: multipart/alternative; boundary="000000000000ee56af06299a7298" --000000000000ee56af06299a7298 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable st 18. 12. 2024 v 4:00 odes=C3=ADlatel jian he napsal: > hi. > > /* > * has_session_variable_privilege variants > * These are all named "has_session_variable_privilege" at the SQL > level. > * They take various combinations of variable name, variable OID, > * user name, user OID, or implicit user =3D current_user. > * > * The result is a boolean value: true if user has the indicated > * privilege, false if not. The variants that take a relation OID > * return NULL if the OID doesn't exist. > */ > /* > * has_session_variable_privilege_name_name > * Check user privileges on a session variable given > * name username, text sessin variable name, and text priv name. > */ > "The variants that take a relation OID return NULL if the OID doesn't > exist." > should it be > "The variants that take an OID type return NULL if the OID doesn't exist.= " > ? > yes, this comment was wrong, and I fixed it *<><-->The result is a boolean value: true if user has the indicated *<><-->privilege, false if not, or NULL if session variable doesn't *<><-->exists. > > typo, "sessin" should be "session". > fixed > ----------------<<<>>>>------------------- > > Session Variables > only mentioned that "Session variables themselves are persistent, but the= ir > values are neither persistent nor shared (like the content of temporary > tables). > " > I feel like this sentence is not that explicit. we actually want to say > "Once a session exits, the variable value is reset to NULL, one > session cannot see another session variable value." > This is not fully true. I wrote new paragraph there The session variable holds a value in session memory. This value is private to each session and is released when the session ends. > > + > + A persistent database object that holds a value in session memory. > This > + value is private to each session and is released when the session > ends. > + Read or write access to session variables is controlled by > privileges, > + similar to other database objects. > + > i do like this description in glossary.sgml. > maybe we can copy it and put it to ddl.sgml " id=3D"ddl-session-variables"> > ok - I did it ----------------<<<>>>>------------------- > REVOKE [ GRANT OPTION FOR ] > { { SELECT | UPDATE } [, ...] | ALL [ PRIVILEGES ] } > ON { VARIABLE variable_name [, ...] > | ALL VARIABLES IN SCHEMA class=3D"parameter">schema_name [, ...] } > FROM { [ GROUP ] class=3D"parameter">role_specification | PUBLIC } [, ...] > [ GRANTED BY class=3D"parameter">role_specification ] > [ CASCADE | RESTRICT ] > revoke, seems still not right. > since with this, we can say: > REVOKE ALL PRIVILEGES ON VARIABLE v1 FROM group group alice CASCADE; > > i think the correct one should be: > REVOKE [ GRANT OPTION FOR ] > { { SELECT | UPDATE } [, ...] | ALL [ PRIVILEGES ] } > ON { VARIABLE variable_name [, ...] > | ALL VARIABLES IN SCHEMA class=3D"parameter">schema_name [, ...] } > FROM role_specification > [, ...] > [ GRANTED BY class=3D"parameter">role_specification ] > [ CASCADE | RESTRICT ] > fixed > > ----------------<<<>>>>------------------- > > CREATE VARIABLE public.current_user_id AS integer; > GRANT READ ON VARIABLE public.current_user_id TO PUBLIC; > LET current_user_id =3D (SELECT id FROM users WHERE usename =3D session_u= ser); > SELECT current_user_id; > > "GRANT READ" should be "GRANT SELECT". > fixed - note it is from second patch > ----------------<<<>>>>------------------- > doc/src/sgml/ref/alter_default_privileges.sgml > GRANT { SELECT | UPDATE | ALL [ PRIVILEGES ] } > ON VARIABLES > TO { [ GROUP ] class=3D"parameter">role_name | PUBLIC } [, ...] [ WITH > GRANT OPTION ] > the above part is wrong? > should be: > GRANT { { SELECT | UPDATE } [,...] > | ALL [ PRIVILEGES ] } > ON VARIABLES > TO { [ GROUP ] class=3D"parameter">role_name | PUBLIC } [, ...] [ WITH > GRANT OPTION ] > > since we can: > ALTER DEFAULT PRIVILEGES > FOR ROLE alice > IN SCHEMA svartest > GRANT SELECT, UPDATE ON VARIABLES TO bob; > fixed > ----------------<<<>>>>----------------------------- > CREATE VARIABLE IF NOT EXISTS v2 AS comp; > grant update on variable v2 to alice; > set role alice; > LET v2.a =3D 12; --acl permission error > LET v2.b =3D 12; --acl permission error > LET v2 =3D (11,12); --ok. > > > not sure this is the desired behavior, for composite type variables, you > are > allowed to change all the values, but you are not allowed to update the > field > value of the composite. The following are normal table test update cases= . > > create type comp as (a int, b int); > create table t2(a comp); > insert into t2 select '(11,12)'; > grant update (a ) on t2 to alice; > set role alice; > update t2 set a.a =3D 13; --ok > update t2 set a.b =3D 13; --ok > update t2 set a =3D '(11,13)'; --ok > I think this is a bug, but I need more time for investigation. For field update you need to read the content the variable, but you are missing SELECT right on the variable, and then the LET fails. Unfortunately this is done inside the executor, so it is harder to fix it. > ----------------<<<>>>>----------------------------- > domain seems to have an issue. > > CREATE domain d1 AS int; > CREATE VARIABLE var1 AS d1; > let var1 =3D 3; > --this should fail?. > alter domain d1 add check (value <> 3); > select var1; > ERROR: value for domain d1 violates check constraint "d1_check" > I fixed it CREATE DOMAIN testvar_domain AS int; CREATE VARIABLE var1 AS testvar_domain; (2024-12-18 21:21:15) postgres=3D# ALTER DOMAIN testvar_domain ADD CHECK(value <> 100); ERROR: cannot alter domain "testvar_domain" because session variable "public.var1" uses it Unfortunately I cannot force constraint check validation in other sessions, so the most safe solution for now is restriction of this ALTER when domain is used by some variable. I wrote regress tests for this. Note: looks so validation of domain check constraints doesn't work for temporary tables (what is expected, not sure if it is documented). ----------------<<<>>>>----------------------------- > doc/src/sgml/ref/alter_variable.sgml > Parameters section, the order should > be: name, new_owner, new_name, new_schema? > changed > > I am beginning to look around 0002. > Thank you very much Regards Pavel --000000000000ee56af06299a7298 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


st = 18. 12. 2024 v=C2=A04:00 odes=C3=ADlatel jian he <jian.universality@gmail.com&= gt; napsal:
hi.<= br>
/*
=C2=A0* has_session_variable_privilege variants
=C2=A0*=C2=A0 =C2=A0 =C2=A0 =C2=A0 These are all named "has_session_va= riable_privilege" at the SQL level.
=C2=A0*=C2=A0 =C2=A0 =C2=A0 =C2=A0 They take various combinations of variab= le name, variable OID,
=C2=A0*=C2=A0 =C2=A0 =C2=A0 =C2=A0 user name, user OID, or implicit user = =3D current_user.
=C2=A0*
=C2=A0*=C2=A0 =C2=A0 =C2=A0 =C2=A0 The result is a boolean value: true if u= ser has the indicated
=C2=A0*=C2=A0 =C2=A0 =C2=A0 =C2=A0 privilege, false if not.=C2=A0 The varia= nts that take a relation OID
=C2=A0*=C2=A0 =C2=A0 =C2=A0 =C2=A0 return NULL if the OID doesn't exist= .
=C2=A0*/
/*
=C2=A0* has_session_variable_privilege_name_name
=C2=A0*=C2=A0 =C2=A0 =C2=A0 =C2=A0 Check user privileges on a session varia= ble given
=C2=A0*=C2=A0 =C2=A0 =C2=A0 =C2=A0 name username, text sessin variable name= , and text priv name.
=C2=A0*/
"The variants that take a relation OID return NULL if the OID doesn= 9;t exist."
should it be
"The variants that take an OID type return NULL if the OID doesn't= exist."
?

yes, this comment was wrong, and I fi= xed it

=C2=A0*<><-->The result is a bo= olean value: true if user has the indicated
=C2=A0*<><-->pri= vilege, false if not, or NULL if session variable doesn't
=C2=A0*<= ;><-->exists.
=C2=A0

typo, "sessin" should be "session".

fixed
=C2=A0
----------------<<<>>>>-------------------
=C2=A0 <sect1 id=3D"ddl-session-variables">
=C2=A0 =C2=A0<title>Session Variables</title>
only mentioned that "Session variables themselves are persistent, but = their
values are neither persistent nor shared (like the content of temporary tab= les).
"
I feel like this sentence is not that explicit. we actually want to say
"Once a session exits, the variable value is reset to NULL, one
session cannot see another session variable value."

This is not fully true. I wrote new paragraph there
=

=C2=A0=C2=A0 <para>
=C2=A0 =C2=A0 The session = variable holds a value in session memory.=C2=A0 This value is private
= =C2=A0 =C2=A0 to each session and is released when the session ends.
=C2= =A0 =C2=A0</para>
=C2=A0

+=C2=A0 =C2=A0 <para>
+=C2=A0 =C2=A0 =C2=A0A persistent database object that holds a value in ses= sion memory.=C2=A0 This
+=C2=A0 =C2=A0 =C2=A0value is private to each session and is released when = the session ends.
+=C2=A0 =C2=A0 =C2=A0Read or write access to session variables is controlle= d by privileges,
+=C2=A0 =C2=A0 =C2=A0similar to other database objects.
+=C2=A0 =C2=A0 </para>
i do like this description in glossary.sgml.
maybe we can copy it and put it to ddl.sgml "<sect1 id=3D"ddl-= session-variables">

ok - I did it

----------------<<<>>>>-------------------
REVOKE [ GRANT OPTION FOR ]
=C2=A0 =C2=A0 { { SELECT | UPDATE } [, ...] | ALL [ PRIVILEGES ] }
=C2=A0 =C2=A0 ON { VARIABLE <replaceable>variable_name</replaceabl= e> [, ...]
=C2=A0 =C2=A0 =C2=A0 =C2=A0| ALL VARIABLES IN SCHEMA <replaceable
class=3D"parameter">schema_name</replaceable> [, ...] }<= br> =C2=A0 =C2=A0 FROM { [ GROUP ] <replaceable
class=3D"parameter">role_specification</replaceable> | P= UBLIC } [, ...]
=C2=A0 =C2=A0 [ GRANTED BY <replaceable
class=3D"parameter">role_specification</replaceable> ] =C2=A0 =C2=A0 [ CASCADE | RESTRICT ]
revoke, seems still not right.
since with this, we can say:
REVOKE ALL PRIVILEGES ON VARIABLE v1 FROM group group alice CASCADE;

i think the correct one should be:
REVOKE [ GRANT OPTION FOR ]
=C2=A0 =C2=A0 { { SELECT | UPDATE } [, ...] | ALL [ PRIVILEGES ] }
=C2=A0 =C2=A0 ON { VARIABLE <replaceable>variable_name</replaceabl= e> [, ...]
=C2=A0 =C2=A0 =C2=A0 =C2=A0| ALL VARIABLES IN SCHEMA <replaceable
class=3D"parameter">schema_name</replaceable> [, ...] }<= br> =C2=A0 =C2=A0 FROM <replaceable class=3D"parameter">role_sp= ecification</replaceable> [, ...]
=C2=A0 =C2=A0 [ GRANTED BY <replaceable
class=3D"parameter">role_specification</replaceable> ] =C2=A0 =C2=A0 [ CASCADE | RESTRICT ]

fi= xed
=C2=A0

----------------<<<>>>>-------------------
<programlisting>
CREATE VARIABLE public.current_user_id AS integer;
GRANT READ ON VARIABLE public.current_user_id TO PUBLIC;
LET current_user_id =3D (SELECT id FROM users WHERE usename =3D session_use= r);
SELECT current_user_id;
</programlisting>
"GRANT READ" should be "GRANT SELECT".
=

fixed - note it is from second patch
=C2=A0
----------------<<<>>>>-------------------
doc/src/sgml/ref/alter_default_privileges.sgml
GRANT { SELECT | UPDATE | ALL [ PRIVILEGES ] }
=C2=A0 =C2=A0 ON VARIABLES
=C2=A0 =C2=A0 TO { [ GROUP ] <replaceable
class=3D"parameter">role_name</replaceable> | PUBLIC } [= , ...] [ WITH
GRANT OPTION ]
the above part is wrong?
should be:
GRANT { { SELECT | UPDATE } [,...]
=C2=A0 =C2=A0 | ALL [ PRIVILEGES ] }
=C2=A0 =C2=A0 ON VARIABLES
=C2=A0 =C2=A0 TO { [ GROUP ] <replaceable
class=3D"parameter">role_name</replaceable> | PUBLIC } [= , ...] [ WITH
GRANT OPTION ]

since we can:
ALTER DEFAULT PRIVILEGES
FOR ROLE alice
IN SCHEMA svartest
GRANT SELECT, UPDATE ON VARIABLES TO bob;

fixed
=C2=A0
----------------<<<>>>>----------------------------- CREATE VARIABLE IF NOT EXISTS v2 AS comp;
grant update on variable v2 to alice;
set role alice;
LET v2.a=C2=A0 =3D 12; --acl permission error
LET v2.b =3D 12; --acl permission error
LET v2 =3D (11,12); --ok.

=C2=A0
<= blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l= eft:1px solid rgb(204,204,204);padding-left:1ex">
not sure this is the desired behavior, for composite type variables, you ar= e
allowed to change all the values, but you are not allowed to update the fie= ld
value of the composite.=C2=A0 The following are normal table test update ca= ses.

create type comp as (a int, b=C2=A0 int);
create table t2(a comp);
insert into t2 select '(11,12)';
grant update (a ) on t2 to alice;
set role alice;
update t2 set a.a =3D 13; --ok
update t2 set a.b =3D 13; --ok
update t2 set a =3D '(11,13)'; --ok

=
I think this is a bug, but I need more time for investigation. For fie= ld update you need to read the content
the variable, but you are = missing SELECT right on the variable, and then the LET fails. Unfortunately=
this is done inside the executor, so it is harder to fix it.

=C2=A0
----------------<<<>>>>----------------------------- domain seems to have an issue.

CREATE domain d1 AS int;
CREATE VARIABLE var1 AS d1;
let var1 =3D 3;
--this should fail?.
alter domain d1 add check (value <> 3);
select var1;
ERROR:=C2=A0 value for domain d1 violates check constraint "d1_check&q= uot;

I fixed it

CREATE DOMAIN testvar_domain AS int;
CREATE VARIABLE var1 AS te= stvar_domain;

(2024-12-18 21:21:15) postgres=3D# A= LTER DOMAIN testvar_domain ADD CHECK(value <> 100);
ERROR: =C2=A0c= annot alter domain "testvar_domain" because session variable &quo= t;public.var1" uses it

Unfortunately I ca= nnot force constraint check validation in other sessions, so the most safe = solution for now is
restriction of this ALTER when domain is used= by some variable.=C2=A0 I wrote regress tests for this.
Note: lo= oks so validation of domain check constraints doesn't work for temporar= y tables (what is expected,
not sure if it is documented).

----------------<<<>>>>----------------------------- doc/src/sgml/ref/alter_variable.sgml
<title>Parameters</title> section, the order should
be: name, new_owner, new_name, new_schema?

<= div>changed
=C2=A0

I am beginning to look around 0002.

Tha= nk you very much

Regards

= Pavel
=C2=A0
--000000000000ee56af06299a7298-- --000000000000ee56b206299a729a Content-Type: text/x-patch; charset="US-ASCII"; name="v20241219-0021-transactional-variables.patch" Content-Disposition: attachment; filename="v20241219-0021-transactional-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4uzyqr91 RnJvbSA2NDc4MGY0ZGQ4MTU5YTY1YTU4YWNhNzNjN2MxNDk5ZjE1Y2JjYjU2IE1vbiBTZXAgMTcg 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 Li9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDExMCArKysrKyst CiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAgNTggKysr KwogMTYgZmlsZXMgY2hhbmdlZCwgNTkyIGluc2VydGlvbnMoKyksIDUwIGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2Nh dGFsb2dzLnNnbWwKaW5kZXggODEzNjYwYWNlYi4uOTEzMDllNzJkYSAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwK QEAgLTk4NjgsNiArOTg2OCwxOCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRl cmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgPC9w YXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PHN0 cnVjdGZpZWxkPnZhcmlzdHJhbnNhY3Q8L3N0cnVjdGZpZWxkPjwvZW50cnk+CisgICAgICA8ZW50 cnk+PHR5cGU+Ym9vbGVhbjwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5PjwvZW50cnk+Cisg ICAgICA8ZW50cnk+CisgICAgICAgVHJ1ZSwgd2hlbiB0aGUgdmFyaWFibGUgaXMgPHF1b3RlPnRy YW5zYWN0aW9uYWw8L3F1b3RlPi4gSW4gdGhlIGNhc2UKKyAgICAgICBvZiBhIHRyYW5zYWN0aW9u IHJvbGxiYWNrLCB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcyBhcmUgcmVzZXQgdG8gdGhlCisgICAg ICAgdmFsdWUgdGhleSBoYWQgd2hlbiB0aGUgdHJhbnNhY3Rpb24gc3RhcnRlZC4gVGhlIGRlZmF1 bHQgdmFsdWUgaXMKKyAgICAgICA8bGl0ZXJhbD5mYWxzZTwvbGl0ZXJhbD4uCisgICAgICA8L2Vu dHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KICAgICAgICA8 c3RydWN0ZmllbGQ+dmFyZW94YWN0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2hhcjwvdHlwZT4K ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgYi9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCmluZGV4IDFmZWQ5N2QxNWEuLjQ0NGNk YWE4NzkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMjYsNyArMjYs NyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAogIDxyZWZzeW5vcHNpc2Rpdj4KIDxzeW5v cHNpcz4KLUNSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gWyBJTU1VVEFCTEUgXSBWQVJJ QUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0 YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCitDUkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRF TVAgfSBdIFsgeyBUUkFOU0FDVElPTkFMIHwgVFJBTlNBQ1RJT04gfSBdIFsgSU1NVVRBQkxFIF0g VkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQogICAgIFsgTk9UIE5VTEwgXSBbIERF RkFVTFQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRlZmF1bHRfZXhwcjwvcmVwbGFj ZWFibGU+IF0gWyB7IE9OIENPTU1JVCBEUk9QIHwgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIH0g XQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgpAQCAtNDcsNiArNDcsMTQgQEAgQ1JF QVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBbIElNTVVUQUJMRSBdIFZBUklBQkxFIFsgSUYg Tk9UIEVYSVNUUyBdIDxyZXBsYWMKICAgIHNhbWUgYXMgcmVndWxhciB2YXJpYWJsZXMgaW4gcHJv Y2VkdXJhbCBsYW5ndWFnZXMuCiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIFdoZW4gYSBzY2hl bWEgdmFyaWFibGUgaXMgY3JlYXRlZCB3aXRoIGEKKyAgIDxjb21tYW5kPkNSRUFURSBUUkFOU0FD VElPTkFMIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kLCB0aGUgdmFyaWFibGVzCisgICBjb250 ZW50IGNoYW5nZXMgYXJlIHRyYW5zYWN0aW9uYWw6IGluIGNhc2Ugb2Ygcm9sbGJhY2ssIHRoZXkg YXJlIHJlc2V0IHRvCisgICB0aGVpciB2YWx1ZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0cmFu c2FjdGlvbiBvciB0aGUgbGF0ZXN0IHN1YnRyYW5zYWN0aW9uLgorICAgVGhlIHZhcmlhYmxlIGNv bnRlbnQgaXMgb25seSBob2xkIGluIG1lbW9yeSwgYW5kIHRodXMgaXMgbm90IHBlcnNpc3RlbnQu CisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIFNlc3Npb24gdmFyaWFibGVzIGFyZSByZXRyaWV2 ZWQgYnkgdGhlIDxjb21tYW5kPlNFTEVDVDwvY29tbWFuZD4KICAgIGNvbW1hbmQuICBUaGVpciB2 YWx1ZSBpcyBzZXQgd2l0aCB0aGUgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ192YXJpYWJsZS5jCmluZGV4IGYyNjFlM2ZkNzcuLjc3MWMyODE2MDQgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYworKysgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAgLTQyLDYgKzQyLDcgQEAgc3RhdGljIE9iamVjdEFk ZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJCQkJCQkJCQkgYm9v bCBpZl9ub3RfZXhpc3RzLAogCQkJCQkJCQkJIGJvb2wgbm90X251bGwsCiAJCQkJCQkJCQkgYm9v bCBpc19pbW11dGFibGUsCisJCQkJCQkJCQkgYm9vbCBpc190cmFuc2FjdCwKIAkJCQkJCQkJCSBO b2RlICp2YXJEZWZleHByLAogCQkJCQkJCQkJIFZhcmlhYmxlWGFjdEVuZEFjdGlvbiB2YXJYYWN0 RW5kQWN0aW9uKTsKIApAQCAtNTksNiArNjAsNyBAQCBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hh ciAqdmFyTmFtZSwKIAkJCQlib29sIGlmX25vdF9leGlzdHMsCiAJCQkJYm9vbCBub3RfbnVsbCwK IAkJCQlib29sIGlzX2ltbXV0YWJsZSwKKwkJCQlib29sIGlzX3RyYW5zYWN0LAogCQkJCU5vZGUg KnZhckRlZmV4cHIsCiAJCQkJVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RFbmRBY3Rpb24p CiB7CkBAIC0xMjMsNiArMTI1LDcgQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5h bWUsCiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyY29sbGF0aW9uIC0gMV0gPSBPYmplY3RJ ZEdldERhdHVtKHZhckNvbGxhdGlvbik7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFybm90 bnVsbCAtIDFdID0gQm9vbEdldERhdHVtKG5vdF9udWxsKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJp YWJsZV92YXJpc2ltbXV0YWJsZSAtIDFdID0gQm9vbEdldERhdHVtKGlzX2ltbXV0YWJsZSk7CisJ dmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyaXN0cmFuc2FjdCAtIDFdID0gQm9vbEdldERhdHVt KGlzX3RyYW5zYWN0KTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ4YWN0ZW5kYWN0aW9u IC0gMV0gPSBDaGFyR2V0RGF0dW0odmFyWGFjdEVuZEFjdGlvbik7CiAKIAlpZiAodmFyRGVmZXhw cikKQEAgLTI2Nyw2ICsyNzAsNyBAQCBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUs IENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCQkJCQkJCSAgIHN0bXQtPmlmX25vdF9leGlz dHMsCiAJCQkJCQkJICAgc3RtdC0+bm90X251bGwsCiAJCQkJCQkJICAgc3RtdC0+aXNfaW1tdXRh YmxlLAorCQkJCQkJCSAgIHN0bXQtPmlzX3RyYW5zYWN0LAogCQkJCQkJCSAgIGNvb2tlZF9kZWZh dWx0LAogCQkJCQkJCSAgIHN0bXQtPlhhY3RFbmRBY3Rpb24pOwogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXggNWUwMmNiOTkwYy4uY2Q5MTA3MTIzOCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtNTUsNiArNTUsMTkgQEAgdHlw ZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlWEFjdERyb3BJdGVtCiBpbnQJCXNlc3Npb25fdmFyaWFibGVz X3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkID0KIAkJCQkJCQkJU0VTU0lPTlZBUklBQkxFX1VTRV9G RU5DRV9DT05URVhUX0dVQVJEX05PTkU7CiAKKy8qCisgKiBVc2VkIGZvciB0cmFuc2FjdGlvbmFs IHZhcmlhYmxlcy4gSG9sZHMgcHJldiB2ZXJzaW9uLgorICovCit0eXBlZGVmIHN0cnVjdCBQcmV2 VmFsdWUKK3sKKwlEYXR1bQkJdmFsdWU7CisJYm9vbAkJaXNudWxsOworCisJU3ViVHJhbnNhY3Rp b25JZCBtb2RpZnlfc3ViaWQ7CisKKwlzdHJ1Y3QgUHJldlZhbHVlICpwcmV2X3ZhbHVlOworfSBQ cmV2VmFsdWU7CisKIC8qCiAgKiBUaGUgdmFsdWVzIG9mIHNlc3Npb24gdmFyaWFibGVzIGFyZSBz dG9yZWQgaW4gdGhlIGJhY2tlbmQncyBwcml2YXRlIG1lbW9yeQogICogaW4gdGhlIGRlZGljYXRl ZCBtZW1vcnkgY29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250ZXh0IGluIGJpbmFyeSBmb3JtYXQu CkBAIC03Niw2ICs4OSwyNSBAQCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVEYXRhCiAJYm9vbAkJ aXNudWxsOwogCURhdHVtCQl2YWx1ZTsKIAorCS8qCisJICogV2UgZG9uJ3QgbmVlZCBzdGFjayB2 ZXJzaW9ucyBtb2RpZmllZCBpbiBzYW1lIHN1YnRyYW5zYWN0aW9uLgorCSAqIFVzZWQgYnkgdHJh bnNhY3Rpb25hbCB2YXJpYWJsZXMgb25seS4gVGhlIHZhbHVlIG9mIHRyYW5zYWN0aW9uYWwKKwkg KiB2YXJpYWJsZSBjYW4gYmUgcmV0dXJuZWQgaW1tZWRpYXRlbHkgd2hlbiBtb2RpZnlfc3ViaWQg aXMgc2FtZQorCSAqIGxpa2UgY3VycmVudCBzdWJpZC4KKwkgKi8KKwlTdWJUcmFuc2FjdGlvbklk IG1vZGlmeV9zdWJpZDsKKworCS8qCisJICogV2hlbiB0aGUgbW9kaWZ5X3N1YmlkIGlzIGRpZmZl cmVudCB0aGFuIGN1cnJlbnQgc3ViaWQsIHRoZW4KKwkgKiB3ZSBuZWVkIHRvIHJlY2hlY2sgdmVy c2lvbnMgYW5kIHRocm93IHZlcnNpb25zIHJlbGF0ZWQgdG8KKwkgKiByZXZlcnRlZCB0cmFuc2Fj dGlvbnMuIFdoZW4gcHVyZ2Vfc3ViaWQgaXMgc2FtZSBsaWtlIGN1cnJlbnQgc3ViaWQKKwkgKiB3 ZSBjYW4gcmV0dXJuIHRoZSB2YWx1ZSBvZiB0cmFuc2FjdGlvbiB2YXJpYWJsZSB3aXRob3V0IHRo aXMKKwkgKiByZWNoZWNrLgorCSAqLworCVN1YlRyYW5zYWN0aW9uSWQgcHVyZ2Vfc3ViaWQ7CisK KwlQcmV2VmFsdWUgICpwcmV2X3ZhbHVlOworCiAJT2lkCQkJdHlwaWQ7CiAJaW50MTYJCXR5cGxl bjsKIAlib29sCQl0eXBieXZhbDsKQEAgLTk0LDYgKzEyNiw3IEBAIHR5cGVkZWYgc3RydWN0IFNW YXJpYWJsZURhdGEKIAogCWJvb2wJCW5vdF9udWxsOwogCWJvb2wJCWlzX2ltbXV0YWJsZTsKKwli b29sCQlpc190cmFuc2FjdDsKIAogCWJvb2wJCXJlc2V0X2F0X2VveDsKIApAQCAtMTMzLDYgKzE2 Niw5IEBAIHN0YXRpYyBib29sIG5lZWRzX3ZhbGlkYXRpb24gPSBmYWxzZTsKICAqLwogc3RhdGlj IGJvb2wgaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dpdGhfcmVzZXRfYXRfZW94ID0gZmFsc2U7CiAK Ky8qIHRydWUsIHdoZW4gdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMgd2FzIG1vZGlmaWVkICovCitz dGF0aWMgYm9vbCBoYXNfbW9kaWZpZWRfdHJhbnNhY3Rpb25hbF92YXJpYWJsZXMgPSBmYWxzZTsK KwogLyoKICAqIFRoZSBjb250ZW50IG9mIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaXMgbm90 IHJlbW92ZWQgaW1tZWRpYXRlbHkuICBJZgogICogcG9zc2libGUsIHdlIGRvIHRoYXQgYXQgdGhl IGVuZCBvZiB0aGUgdHJhbnNhY3Rpb24uICBCdXQgd2UgY2Fubm90IGRvIHRoYXQKQEAgLTE0OCw2 ICsxODQsNyBAQCBzdGF0aWMgTGlzdCAqeGFjdF9kcm9wX2l0ZW1zID0gTklMOwogCiBzdGF0aWMg dm9pZCByZWdpc3Rlcl9zZXNzaW9uX3ZhcmlhYmxlX3hhY3RfZHJvcChPaWQgdmFyaWQpOwogc3Rh dGljIHZvaWQgdW5yZWdpc3Rlcl9zZXNzaW9uX3ZhcmlhYmxlX3hhY3RfZHJvcChPaWQgdmFyaWQp Oworc3RhdGljIGJvb2wgcHVyZ2Vfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3Zhcik7CiAK IC8qCiAgKiBDYWxsYmFjayBmdW5jdGlvbiBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBpbnZhbGlkYXRp b24uCkBAIC0zMDAsOCArMzM3LDI1IEBAIHVucmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0 X2Ryb3AoT2lkIHZhcmlkKQogICogUmVsZWFzZSBzdG9yZWQgdmFsdWUsIGZyZWUgbWVtb3J5CiAg Ki8KIHN0YXRpYyB2b2lkCi1mcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoU1ZhcmlhYmxlIHN2 YXIpCitmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoU1ZhcmlhYmxlIHN2YXIsIGJvb2wgZGVl cF9mcmVlKQogeworCWlmIChkZWVwX2ZyZWUpCisJeworCQlQcmV2VmFsdWUgKnByZXZfdmFsdWUg PSBzdmFyLT5wcmV2X3ZhbHVlOworCQlQcmV2VmFsdWUgKm5leHRfdmFsdWU7CisKKwkJd2hpbGUg KHByZXZfdmFsdWUpCisJCXsKKwkJCWlmICghc3Zhci0+dHlwYnl2YWwpCisJCQkJcGZyZWUoRGF0 dW1HZXRQb2ludGVyKHByZXZfdmFsdWUtPnZhbHVlKSk7CisKKwkJCW5leHRfdmFsdWUgPSBwcmV2 X3ZhbHVlLT5wcmV2X3ZhbHVlOworCQkJcGZyZWUocHJldl92YWx1ZSk7CisKKwkJCXByZXZfdmFs dWUgPSBuZXh0X3ZhbHVlOworCQl9CisJfQorCiAJLyogY2xlYW4gdGhlIGN1cnJlbnQgdmFsdWUg Ki8KIAlpZiAoIXN2YXItPmlzbnVsbCkKIAl7CkBAIC0zOTgsNyArNDUyLDcgQEAgcmVtb3ZlX2lu dmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoYm9vbCBhdEVPWCkKIAkJCXsKIAkJCQlPaWQJCQl2YXJp ZCA9IHN2YXItPnZhcmlkOwogCi0JCQkJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIp OworCQkJCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyLCB0cnVlKTsKIAkJCQloYXNo X3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLCBIQVNIX1JFTU9WRSwgTlVMTCk7CiAJCQkJc3Zh ciA9IE5VTEw7CiAJCQl9CkBAIC00MzQsNiArNDg4LDk0IEBAIHJlbW92ZV9zZXNzaW9uX3Zhcmlh Ymxlc193aXRoX3Jlc2V0X2F0X2VveCh2b2lkKQogCWhhc19zZXNzaW9uX3ZhcmlhYmxlc193aXRo X3Jlc2V0X2F0X2VveCA9IGZhbHNlOwogfQogCisvKgorICogcmVtb3ZlIHByZXYgdmFsdWVzIGF0 IGVveAorICovCitzdGF0aWMgdm9pZAorcmVtb3ZlX3ByZXZfdmFsdWVzX2F0X2VveChib29sIGlz Q29tbWl0KQoreworCUhBU0hfU0VRX1NUQVRVUyBzdGF0dXM7CisJU1ZhcmlhYmxlCXN2YXI7CisK KwlpZiAoIXNlc3Npb252YXJzKQorCQlyZXR1cm47CisKKwkvKiBsZWF2ZSBxdWNrbHksIHdoZW4g dGhlcmUgYXJlIG5vdCB0aGF0IHZhcmlhYmxlcyAqLworCWlmICghaGFzX21vZGlmaWVkX3RyYW5z YWN0aW9uYWxfdmFyaWFibGVzKQorCQlyZXR1cm47CisKKwloYXNoX3NlcV9pbml0KCZzdGF0dXMs IHNlc3Npb252YXJzKTsKKwl3aGlsZSAoKHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFy Y2goJnN0YXR1cykpICE9IE5VTEwpCisJeworCQlpZiAoc3Zhci0+aXNfdHJhbnNhY3QgJiYgc3Zh ci0+bW9kaWZ5X3N1YmlkICE9IEludmFsaWRTdWJUcmFuc2FjdGlvbklkKQorCQl7CisJCQlpZiAo aXNDb21taXQpCisJCQl7CisJCQkJaWYgKHB1cmdlX3Nlc3Npb25fdmFyaWFibGUoc3ZhcikpCisJ CQkJeworCQkJCQlQcmV2VmFsdWUgKnByZXZfdmFsdWUgPSBzdmFyLT5wcmV2X3ZhbHVlOworCisJ CQkJCXdoaWxlIChwcmV2X3ZhbHVlKQorCQkJCQl7CisJCQkJCQlQcmV2VmFsdWUgKmN1cnJlbnRf cHYgPSBwcmV2X3ZhbHVlOworCisJCQkJCQlpZiAoIXN2YXItPnR5cGJ5dmFsICYmICFjdXJyZW50 X3B2LT5pc251bGwpCisJCQkJCQkJcGZyZWUoRGF0dW1HZXRQb2ludGVyKGN1cnJlbnRfcHYtPnZh bHVlKSk7CisKKwkJCQkJCXByZXZfdmFsdWUgPSBjdXJyZW50X3B2LT5wcmV2X3ZhbHVlOworCQkJ CQkJcGZyZWUoY3VycmVudF9wdik7CisJCQkJCX0KKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJ CQkJaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZzdmFyLT52YXJpZCwgSEFTSF9SRU1PVkUsIE5V TEwpOworCQkJCQlzdmFyID0gTlVMTDsKKwkJCQl9CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJ UHJldlZhbHVlICpwcmV2X3ZhbHVlID0gc3Zhci0+cHJldl92YWx1ZTsKKworCQkJCXdoaWxlIChw cmV2X3ZhbHVlKQorCQkJCXsKKwkJCQkJUHJldlZhbHVlICpjdXJyZW50X3B2ID0gcHJldl92YWx1 ZTsKKworCQkJCQlpZiAoY3VycmVudF9wdi0+bW9kaWZ5X3N1YmlkID09IEludmFsaWRTdWJUcmFu c2FjdGlvbklkKQorCQkJCQkJYnJlYWs7CisKKwkJCQkJaWYgKCFzdmFyLT50eXBieXZhbCAmJiAh Y3VycmVudF9wdi0+aXNudWxsKQorCQkJCQkJcGZyZWUoRGF0dW1HZXRQb2ludGVyKGN1cnJlbnRf cHYtPnZhbHVlKSk7CisKKwkJCQkJcHJldl92YWx1ZSA9IGN1cnJlbnRfcHYtPnByZXZfdmFsdWU7 CisJCQkJCXBmcmVlKGN1cnJlbnRfcHYpOworCQkJCX0KKworCQkJCWlmIChwcmV2X3ZhbHVlKQor CQkJCXsKKwkJCQkJc3Zhci0+dmFsdWUgPSBwcmV2X3ZhbHVlLT52YWx1ZTsKKwkJCQkJc3Zhci0+ aXNudWxsID0gcHJldl92YWx1ZS0+aXNudWxsOworCisJCQkJCXBmcmVlKHByZXZfdmFsdWUpOwor CQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQloYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnN2 YXItPnZhcmlkLCBIQVNIX1JFTU9WRSwgTlVMTCk7CisJCQkJCXN2YXIgPSBOVUxMOworCQkJCX0K KwkJCX0KKworCQkJLyogd2hlbiBzdmFyIGlzIHN0aWxsIHZhbGlkIChub3QgcmVtb3ZlZCBmcm9t IHNlc3Npb252YXJzICovCisJCQlpZiAoc3ZhcikKKwkJCXsKKwkJCQlzdmFyLT5tb2RpZnlfc3Vi aWQgPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKKwkJCQlzdmFyLT5wcmV2X3ZhbHVlID0gTlVM TDsKKwkJCX0KKwkJfQorCX0KKworCWhhc19tb2RpZmllZF90cmFuc2FjdGlvbmFsX3ZhcmlhYmxl cyA9IGZhbHNlOworfQorCiAvKgogICAqIFBlcmZvcm0gT04gQ09NTUlUIERST1AgZm9yIHRlbXBv cmFyeSBzZXNzaW9uIHZhcmlhYmxlcywKICAgKiBhbmQgcmVtb3ZlIGFsbCBkcm9wcGVkIHZhcmlh YmxlcyBmcm9tIG1lbW9yeS4KQEAgLTQ4MSw2ICs2MjMsOCBAQCBBdFByZUVPWGFjdF9TZXNzaW9u VmFyaWFibGVzKGJvb2wgaXNDb21taXQpCiAJCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFi bGVzKHRydWUpOwogCX0KIAorCXJlbW92ZV9wcmV2X3ZhbHVlc19hdF9lb3goaXNDb21taXQpOwor CiAJLyoKIAkgKiBXZSBoYXZlIHRvIGNsZWFuIHhhY3RfZHJvcF9pdGVtcy4gQWxsIHJlbGF0ZWQg dmFyaWFibGVzIGFyZSBkcm9wcGVkCiAJICogbm93LCBvciBsb3N0IGluc2lkZSBhYm9ydGVkIHRy YW5zYWN0aW9uLgpAQCAtNjI2LDYgKzc3MCw3IEBAIHNldHVwX3Nlc3Npb25fdmFyaWFibGUoU1Zh cmlhYmxlIHN2YXIsIE9pZCB2YXJpZCwgYm9vbCBpc193cml0ZSkKIAogCXN2YXItPm5vdF9udWxs ID0gdmFyZm9ybS0+dmFybm90bnVsbDsKIAlzdmFyLT5pc19pbW11dGFibGUgPSB2YXJmb3JtLT52 YXJpc2ltbXV0YWJsZTsKKwlzdmFyLT5pc190cmFuc2FjdCA9IHZhcmZvcm0tPnZhcmlzdHJhbnNh Y3Q7CiAKIAlzdmFyLT5pc19kb21haW4gPSAoZ2V0X3R5cHR5cGUodmFyZm9ybS0+dmFydHlwZSkg PT0gVFlQVFlQRV9ET01BSU4pOwogCXN2YXItPmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7CkBA IC02NTEsNiArNzk2LDE3IEBAIHNldHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIs IE9pZCB2YXJpZCwgYm9vbCBpc193cml0ZSkKIAlzdmFyLT5pc251bGwgPSB0cnVlOwogCXN2YXIt PnZhbHVlID0gKERhdHVtKSAwOwogCisJaWYgKHN2YXItPmlzX3RyYW5zYWN0KQorCXsKKwkJc3Zh ci0+bW9kaWZ5X3N1YmlkID0gR2V0Q3VycmVudFN1YlRyYW5zYWN0aW9uSWQoKTsKKwkJaGFzX21v ZGlmaWVkX3RyYW5zYWN0aW9uYWxfdmFyaWFibGVzID0gdHJ1ZTsKKwl9CisJZWxzZQorCQlzdmFy LT5tb2RpZnlfc3ViaWQgPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKKworCXN2YXItPnB1cmdl X3N1YmlkID0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQ7CisJc3Zhci0+cHJldl92YWx1ZSA9IE5V TEw7CisKIAlzdmFyLT5pc192YWxpZCA9IHRydWU7CiAKIAlzdmFyLT5oYXNodmFsdWUgPSBHZXRT eXNDYWNoZUhhc2hWYWx1ZTEoVkFSSUFCTEVPSUQsCkBAIC02ODQsNiArODQwLDY5IEBAIHNldHVw X3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCwgYm9vbCBpc193cml0 ZSkKIAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKIH0KIAorLyoKKyAqIFRyeSB0byByZW1vdmUgYWxs IHByZXZpb3VzIHZlcnNpb25zIHJlbGF0ZWQgdG8gcmV2ZXJ0ZWQgdHJhbnNhY3Rpb25zLgorICog UmV0dXJucyB0cnVlLCB3aGVuIHZhbGlkIHZlcnNpb24gd2FzIGZvdW5kLgorICovCitzdGF0aWMg Ym9vbAorcHVyZ2Vfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhcikKK3sKKwlTdWJUcmFu c2FjdGlvbklkIGN1cnJlbnRfc3ViaWQ7CisJUHJldlZhbHVlCSAgICpwcmV2X3ZhbHVlOworCWJv b2wJCQlmb3VuZCA9IHRydWU7CisKKwlBc3NlcnQoc3Zhci0+aXNfdHJhbnNhY3QpOworCisJaWYg KHN2YXItPm1vZGlmeV9zdWJpZCA9PSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZCkKKwkJcmV0dXJu IHRydWU7CisKKwljdXJyZW50X3N1YmlkID0gR2V0Q3VycmVudFN1YlRyYW5zYWN0aW9uSWQoKTsK KworCWlmIChzdmFyLT5tb2RpZnlfc3ViaWQgPT0gY3VycmVudF9zdWJpZCkKKwkJcmV0dXJuIHRy dWU7CisKKwlpZiAoc3Zhci0+cHVyZ2Vfc3ViaWQgPT0gY3VycmVudF9zdWJpZCkKKwkJcmV0dXJu IHRydWU7CisKKwlpZiAoU3ViVHJhbnNhY3Rpb25Jc0FjdGl2ZShzdmFyLT5tb2RpZnlfc3ViaWQp KQorCXsKKwkJc3Zhci0+cHVyZ2Vfc3ViaWQgPSBjdXJyZW50X3N1YmlkOworCQlyZXR1cm4gdHJ1 ZTsKKwl9CisKKwlwcmV2X3ZhbHVlID0gc3Zhci0+cHJldl92YWx1ZTsKKworCXdoaWxlIChwcmV2 X3ZhbHVlKQorCXsKKwkJUHJldlZhbHVlICpjdXJyZW50X3B2ID0gcHJldl92YWx1ZTsKKworCQlp ZiAoY3VycmVudF9wdi0+bW9kaWZ5X3N1YmlkID09IEludmFsaWRTdWJUcmFuc2FjdGlvbklkIHx8 CisJCQlTdWJUcmFuc2FjdGlvbklzQWN0aXZlKGN1cnJlbnRfcHYtPm1vZGlmeV9zdWJpZCkpCisJ CXsKKwkJCXN2YXItPnZhbHVlID0gY3VycmVudF9wdi0+dmFsdWU7CisJCQlzdmFyLT5pc251bGwg PSBjdXJyZW50X3B2LT5pc251bGw7CisJCQlzdmFyLT5tb2RpZnlfc3ViaWQgPSBjdXJyZW50X3B2 LT5tb2RpZnlfc3ViaWQ7CisKKwkJCXByZXZfdmFsdWUgPSBjdXJyZW50X3B2LT5wcmV2X3ZhbHVl OworCQkJcGZyZWUoY3VycmVudF9wdik7CisKKwkJCWZvdW5kID0gdHJ1ZTsKKwkJCWJyZWFrOwor CQl9CisKKwkJaWYgKCFzdmFyLT50eXBieXZhbCAmJiAhY3VycmVudF9wdi0+aXNudWxsKQorCQkJ cGZyZWUoRGF0dW1HZXRQb2ludGVyKGN1cnJlbnRfcHYtPnZhbHVlKSk7CisKKwkJcHJldl92YWx1 ZSA9IGN1cnJlbnRfcHYtPnByZXZfdmFsdWU7CisJCXBmcmVlKGN1cnJlbnRfcHYpOworCX0KKwor CXN2YXItPnByZXZfdmFsdWUgPSBwcmV2X3ZhbHVlOworCXN2YXItPnB1cmdlX3N1YmlkID0gY3Vy cmVudF9zdWJpZDsKKworCXJldHVybiBmb3VuZDsKK30KKwogLyoKICAqIEFzc2lnbiBhIG5ldyB2 YWx1ZSB0byB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4gIEl0IGlzIGNvcGllZCB0bwogICogU1Zhcmlh YmxlTWVtb3J5Q29udGV4dCBpZiBuZWNlc3NhcnkuCkBAIC02OTYsNiArOTE1LDEwIEBAIHNldF9z ZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwp CiAJRGF0dW0JCW5ld3ZhbDsKIAlTVmFyaWFibGVEYXRhIGxvY3N2YXIsCiAJCQkgICAqX3N2YXI7 CisJU3ViVHJhbnNhY3Rpb25JZCBjdXJyZW50X3N1YmlkID0gR2V0Q3VycmVudFN1YlRyYW5zYWN0 aW9uSWQoKTsKKwlTdWJUcmFuc2FjdGlvbklkIHByZXZfcHVyZ2Vfc3ViaWQgPSBJbnZhbGlkU3Vi VHJhbnNhY3Rpb25JZDsKKwlib29sCQlzYXZlX3ByZXZfdmFsdWU7CisJUHJldlZhbHVlICAqcHJl dl92YWx1ZTsKIAogCUFzc2VydChzdmFyKTsKIAlBc3NlcnQoIWlzbnVsbCB8fCB2YWx1ZSA9PSAo RGF0dW0pIDApOwpAQCAtNzMxLDYgKzk1NCwyMSBAQCBzZXRfc2Vzc2lvbl92YXJpYWJsZShTVmFy aWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQogCWVsc2UKIAkJX3N2YXIgPSBz dmFyOwogCisJaWYgKF9zdmFyLT5pc190cmFuc2FjdCAmJiBfc3Zhci0+Y3JlYXRlX2xzbiA9PSBz dmFyLT5jcmVhdGVfbHNuKQorCXsKKwkJQXNzZXJ0KHN2YXItPnR5cGlkID09IF9zdmFyLT50eXBp ZCk7CisJCUFzc2VydChzdmFyLT50eXBieXZhbCA9PSBfc3Zhci0+dHlwYnl2YWwpOworCQlBc3Nl cnQoc3Zhci0+dHlwbGVuID09IF9zdmFyLT50eXBsZW4pOworCisJCXNhdmVfcHJldl92YWx1ZSA9 IHN2YXItPm1vZGlmeV9zdWJpZCAhPSBjdXJyZW50X3N1YmlkOworCQlwcmV2X3ZhbHVlID0gc3Zh ci0+cHJldl92YWx1ZTsKKwl9CisJZWxzZQorCXsKKwkJc2F2ZV9wcmV2X3ZhbHVlID0gZmFsc2U7 CisJCXByZXZfdmFsdWUgPSBOVUxMOworCX0KKwogCWlmICghaXNudWxsKQogCXsKIAkJTWVtb3J5 Q29udGV4dCBvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oU1ZhcmlhYmxlTWVtb3J5Q29u dGV4dCk7CkBAIC03NDIsNyArOTgwLDM3IEBAIHNldF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJs ZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAJZWxzZQogCQluZXd2YWwgPSB2YWx1 ZTsKIAotCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKwlpZiAoc2F2ZV9wcmV2 X3ZhbHVlKQorCXsKKwkJdm9sYXRpbGUgUHJldlZhbHVlICpuZXdfcHJldl92YWx1ZTsKKworCQlQ R19UUlkoKTsKKwkJeworCQkJbmV3X3ByZXZfdmFsdWUgPSBNZW1vcnlDb250ZXh0QWxsb2MoU1Zh cmlhYmxlTWVtb3J5Q29udGV4dCwKKwkJCQkJCQkJCQkJCXNpemVvZihQcmV2VmFsdWUpKTsKKwkJ fQorCQlQR19DQVRDSCgpOworCQl7CisJCQkvKiByZWxlYXNlIG1lbSBmcm9tIHBlcnNpc3RlbnQg Y29udGVudCAqLworCQkJaWYgKG5ld3ZhbCAhPSB2YWx1ZSkKKwkJCQlwZnJlZShEYXR1bUdldFBv aW50ZXIobmV3dmFsKSk7CisJCQlQR19SRV9USFJPVygpOworCQl9CisJCVBHX0VORF9UUlkoKTsK KworCQluZXdfcHJldl92YWx1ZS0+dmFsdWUgPSBzdmFyLT52YWx1ZTsKKwkJbmV3X3ByZXZfdmFs dWUtPmlzbnVsbCA9IHN2YXItPmlzbnVsbDsKKwkJbmV3X3ByZXZfdmFsdWUtPm1vZGlmeV9zdWJp ZCA9IHN2YXItPm1vZGlmeV9zdWJpZDsKKwkJbmV3X3ByZXZfdmFsdWUtPnByZXZfdmFsdWUgPSBw cmV2X3ZhbHVlOworCisJCXByZXZfdmFsdWUgPSAoUHJldlZhbHVlICopIG5ld19wcmV2X3ZhbHVl OworCQlwcmV2X3B1cmdlX3N1YmlkID0gc3Zhci0+cHVyZ2Vfc3ViaWQ7CisKKwkJaGFzX21vZGlm aWVkX3RyYW5zYWN0aW9uYWxfdmFyaWFibGVzID0gdHJ1ZTsKKworCX0KKwllbHNlCisJCWZyZWVf c2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyLCBwcmV2X3ZhbHVlID09IE5VTEwpOwogCiAJZWxv ZyhERUJVRzEsICJzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiAob2lkOiV1KSBoYXMgbmV3IHZh bHVlIiwKIAkJIGdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3Bh Y2Uoc3Zhci0+dmFyaWQpKSwKQEAgLTc1NSw2ICsxMDIzLDkgQEAgc2V0X3Nlc3Npb25fdmFyaWFi bGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAogCXN2YXItPnZh bHVlID0gbmV3dmFsOwogCXN2YXItPmlzbnVsbCA9IGlzbnVsbDsKKwlzdmFyLT5tb2RpZnlfc3Vi aWQgPSBjdXJyZW50X3N1YmlkOworCXN2YXItPnB1cmdlX3N1YmlkID0gcHJldl9wdXJnZV9zdWJp ZDsKKwlzdmFyLT5wcmV2X3ZhbHVlID0gcHJldl92YWx1ZTsKIAogCS8qIGRvbid0IGFsbG93IG1v cmUgY2hhbmdlcyBvZiB2YWx1ZSB3aGVuIHZhcmlhYmxlIGlzIElNTVVUQUJMRSAqLwogCWlmIChz dmFyLT5pc19pbW11dGFibGUpCkBAIC04NTYsNiArMTEyNyw4IEBAIGdldF9zZXNzaW9uX3Zhcmlh YmxlKE9pZCB2YXJpZCkKIAllbHNlCiAJCXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CiAKK3JlaW5p dDoKKwogCS8qCiAJICogRm9yY2Ugc2V0dXAgZm9yIG5vdCB5ZXQgaW5pdGlhbGl6ZWQgdmFyaWFi bGVzIG9yIHZhcmlhYmxlcyB0aGF0IGNhbm5vdAogCSAqIGJlIHZhbGlkYXRlZC4KQEAgLTg4OCw2 ICsxMTYxLDI4IEBAIGdldF9zZXNzaW9uX3ZhcmlhYmxlKE9pZCB2YXJpZCkKIAkJCSB2YXJpZCk7 CiAJfQogCisJLyoKKwkgKiBUcmFuc2FjdGlvbmFsIHZhcmlhYmxlcyBzaG91bGQgYmUgcHVyZ2Vk IGJlZm9yZSAocmVtb3ZlCisJICogdmVyc2lvbnMgY3JlYXRlZCBieSBwb3NzaWJseSByZXZlcnRl ZCBzdWJ0cmFuc2FjdGlvbnMpLgorCSAqLworCWlmIChzdmFyLT5pc190cmFuc2FjdCAmJgorCQlz dmFyLT5tb2RpZnlfc3ViaWQgIT0gR2V0Q3VycmVudFN1YlRyYW5zYWN0aW9uSWQoKSAmJgorCQlz dmFyLT5tb2RpZnlfc3ViaWQgIT0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQpCisJeworCQlpZiAo IXB1cmdlX3Nlc3Npb25fdmFyaWFibGUoc3ZhcikpCisJCXsKKwkJCS8qIGZvcmNlIHJlaW5pdCAq LworCQkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKKworCQkJLyoKKwkJCSAqIEluIG5leHQgaXRl cmF0aW9uIG1vZGlmeV9zdWJpZCBzaG91bGQgYmUKKwkJCSAqIEludmFsaWRTdWJUcmFuc2FjdGlv bklkIG9yIGN1cnJlbnQgc3ViaWQsCisJCQkgKiBzbyB0aGVyZSBpcyBub3QgcmlzayBvZiBpbmZp bml0eSBjeWNsZS4KKwkJCSAqLworCQkJZ290byByZWluaXQ7CisJCX0KKwl9CisKIAkvKiBlbnN1 cmUgdGhlIHJldHVybmVkIGRhdGEgaXMgc3RpbGwgb2YgdGhlIGNvcnJlY3QgZG9tYWluICovCiAJ aWYgKHN2YXItPmlzX2RvbWFpbikKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA1OTUxZDgyMzNjLi5hZDY2 ZWI0NTBiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTY2OCw3ICs2NjgsNyBAQCBzdGF0aWMgTm9kZSAqbWFr ZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAq cXVlcnkpOwogCQkJCWpzb25fb2JqZWN0X2NvbnN0cnVjdG9yX251bGxfY2xhdXNlX29wdAogCQkJ CWpzb25fYXJyYXlfY29uc3RydWN0b3JfbnVsbF9jbGF1c2Vfb3B0CiAKLSV0eXBlIDxib29sZWFu PgkJT3B0Tm90TnVsbCBPcHRJbW11dGFibGUKKyV0eXBlIDxib29sZWFuPgkJT3B0Tm90TnVsbCBP cHRJbW11dGFibGUgT3B0VHJhbnNhY3Rpb25hbAogCiAvKgogICogTm9uLWtleXdvcmQgdG9rZW4g dHlwZXMuICBUaGVzZSBhcmUgaGFyZC13aXJlZCBpbnRvIHRoZSAiZmxleCIgbGV4ZXIuCkBAIC03 NzMsNyArNzczLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIg KnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlTVUJTQ1JJUFRJT04gU1VC U1RSSU5HIFNVUFBPUlQgU1lNTUVUUklDIFNZU0lEIFNZU1RFTV9QIFNZU1RFTV9VU0VSCiAKIAlU QUJMRSBUQUJMRVMgVEFCTEVTQU1QTEUgVEFCTEVTUEFDRSBUQVJHRVQgVEVNUCBURU1QTEFURSBU RU1QT1JBUlkgVEVYVF9QIFRIRU4KLQlUSUVTIFRJTUUgVElNRVNUQU1QIFRPIFRSQUlMSU5HIFRS QU5TQUNUSU9OIFRSQU5TRk9STQorCVRJRVMgVElNRSBUSU1FU1RBTVAgVE8gVFJBSUxJTkcgVFJB TlNBQ1RJT04gVFJBTlNBQ1RJT05BTCBUUkFOU0ZPUk0KIAlUUkVBVCBUUklHR0VSIFRSSU0gVFJV RV9QCiAJVFJVTkNBVEUgVFJVU1RFRCBUWVBFX1AgVFlQRVNfUAogCkBAIC01MjQwLDMxICs1MjQw LDMzIEBAIGNyZWF0ZV9leHRlbnNpb25fb3B0X2l0ZW06CiAgKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiov CiAKIENyZWF0ZVNlc3Npb25WYXJTdG10OgotCQkJQ1JFQVRFIE9wdFRlbXAgT3B0SW1tdXRhYmxl IFZBUklBQkxFIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1 c2UgT3B0Tm90TnVsbCBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCisJ CQlDUkVBVEUgT3B0VGVtcCBPcHRUcmFuc2FjdGlvbmFsIE9wdEltbXV0YWJsZSBWQVJJQUJMRSBx dWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdE5vdE51 bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJCQkJ Q3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7 Ci0JCQkJCSQ1LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOwotCQkJCQluLT5pc19pbW11dGFibGUgPSAk MzsKLQkJCQkJbi0+dmFyaWFibGUgPSAkNTsKLQkJCQkJbi0+dHlwZU5hbWUgPSAkNzsKLQkJCQkJ bi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ4OwotCQkJCQluLT5ub3RfbnVsbCA9 ICQ5OwotCQkJCQluLT5kZWZleHByID0gJDEwOwotCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDEx OworCQkJCQkkNi0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+aXNfaW1tdXRhYmxlID0g JDQ7CisJCQkJCW4tPmlzX3RyYW5zYWN0ID0gJDM7CisJCQkJCW4tPnZhcmlhYmxlID0gJDY7CisJ CQkJCW4tPnR5cGVOYW1lID0gJDg7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVz ZSAqKSAkOTsKKwkJCQkJbi0+bm90X251bGwgPSAkMTA7CisJCQkJCW4tPmRlZmV4cHIgPSAkMTE7 CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTI7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSBm YWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KLQkJCXwgQ1JFQVRFIE9wdFRlbXAg T3B0SW1tdXRhYmxlIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRf YXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdE5vdE51bGwgT3B0U2Vzc2lvblZhckRl ZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgorCQkJfCBDUkVBVEUgT3B0VGVtcCBPcHRUcmFuc2Fj dGlvbmFsIE9wdEltbXV0YWJsZSBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25h bWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHROb3ROdWxsIE9wdFNlc3Np b25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KIAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Np b25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOwotCQkJCQkkOC0+ cmVscGVyc2lzdGVuY2UgPSAkMjsKLQkJCQkJbi0+aXNfaW1tdXRhYmxlID0gJDM7Ci0JCQkJCW4t PnZhcmlhYmxlID0gJDg7Ci0JCQkJCW4tPnR5cGVOYW1lID0gJDEwOwotCQkJCQluLT5jb2xsQ2xh dXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDExOwotCQkJCQluLT5ub3RfbnVsbCA9ICQxMjsKLQkJ CQkJbi0+ZGVmZXhwciA9ICQxMzsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxNDsKKwkJCQkJ JDktPnJlbHBlcnNpc3RlbmNlID0gJDI7CisJCQkJCW4tPmlzX2ltbXV0YWJsZSA9ICQ0OworCQkJ CQluLT5pc190cmFuc2FjdCA9ICQzOworCQkJCQluLT52YXJpYWJsZSA9ICQ5OworCQkJCQluLT50 eXBlTmFtZSA9ICQxMTsKKwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQx MjsKKwkJCQkJbi0+bm90X251bGwgPSAkMTM7CisJCQkJCW4tPmRlZmV4cHIgPSAkMTQ7CisJCQkJ CW4tPlhhY3RFbmRBY3Rpb24gPSAkMTU7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOwog CQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQpAQCAtNTI5Miw2ICs1Mjk0LDEyIEBAIE9wdElt bXV0YWJsZTogSU1NVVRBQkxFCQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQogCQkJfCAvKiBFTVBUWSAq LwkJCQkJCQl7ICQkID0gZmFsc2U7IH0KIAkJOwogCitPcHRUcmFuc2FjdGlvbmFsOgorCQkJVFJB TlNBQ1RJT04JCQkJCQkJCXsgJCQgPSB0cnVlOyB9CisJCQl8IFRSQU5TQUNUSU9OQUwJCQkJCQkJ eyAkJCA9IHRydWU7IH0KKwkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAkJCA9IGZhbHNlOyB9CisJ CTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgRVhURU5TSU9OIG5hbWUg VVBEQVRFIFsgVE8gdmVyc2lvbiBdCkBAIC0xODEwOCw2ICsxODExNiw3IEBAIHVucmVzZXJ2ZWRf a2V5d29yZDoKIAkJCXwgVEVYVF9QCiAJCQl8IFRJRVMKIAkJCXwgVFJBTlNBQ1RJT04KKwkJCXwg VFJBTlNBQ1RJT05BTAogCQkJfCBUUkFOU0ZPUk0KIAkJCXwgVFJJR0dFUgogCQkJfCBUUlVOQ0FU RQpAQCAtMTg3NTYsNiArMTg3NjUsNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IFRJTUVT VEFNUAogCQkJfCBUUkFJTElORwogCQkJfCBUUkFOU0FDVElPTgorCQkJfCBUUkFOU0FDVElPTkFM CiAJCQl8IFRSQU5TRk9STQogCQkJfCBUUkVBVAogCQkJfCBUUklHR0VSCmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRl eCBhNDBlMDc1YWQyLi5mMDY4MmE1YjQwIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTU0NDIsNiArNTQ0Miw3 IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCWludAkJCWlfdmFyY29sbGF0aW9uOwog CWludAkJCWlfdmFybm90bnVsbDsKIAlpbnQJCQlpX3ZhcmlzaW1tdXRhYmxlOworCWludAkJCWlf dmFyaXN0cmFuc2FjdDsKIAlpbnQJCQlpX3ZhcmFjbDsKIAlpbnQJCQlpX2FjbGRlZmF1bHQ7CiAJ aW50CQkJaSwKQEAgLTU0NjYsNiArNTQ2Nyw3IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0 KQogCQkJCQkgICIgICAgICAgRU5EIEFTIHZhcmNvbGxhdGlvbixcbiIKIAkJCQkJICAiICAgICAg IHYudmFybm90bnVsbCxcbiIKIAkJCQkJICAiICAgICAgIHYudmFyaXNpbW11dGFibGUsXG4iCisJ CQkJCSAgIiAgICAgICB2LnZhcmlzdHJhbnNhY3QsXG4iCiAJCQkJCSAgIiAgICAgICBwZ19jYXRh bG9nLnBnX2dldF9leHByKHYudmFyZGVmZXhwciwwKSBhcyB2YXJkZWZleHByLFxuIgogCQkJCQkg ICIgICAgICAgdi52YXJvd25lciwgdi52YXJhY2wsXG4iCiAJCQkJCSAgIiAgICAgICBhY2xkZWZh dWx0KCdWJywgdi52YXJvd25lcikgQVMgYWNsZGVmYXVsdFxuIgpAQCAtNTQ4OCw2ICs1NDkwLDcg QEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaV92YXJjb2xsYXRpb24gPSBQUWZudW1i ZXIocmVzLCAidmFyY29sbGF0aW9uIik7CiAJaV92YXJub3RudWxsID0gUFFmbnVtYmVyKHJlcywg InZhcm5vdG51bGwiKTsKIAlpX3ZhcmlzaW1tdXRhYmxlID0gUFFmbnVtYmVyKHJlcywgInZhcmlz aW1tdXRhYmxlIik7CisJaV92YXJpc3RyYW5zYWN0ID0gUFFmbnVtYmVyKHJlcywgInZhcmlzdHJh bnNhY3QiKTsKIAogCWlfdmFyb3duZXIgPSBQUWZudW1iZXIocmVzLCAidmFyb3duZXIiKTsKIAlp X3ZhcmFjbCA9IFBRZm51bWJlcihyZXMsICJ2YXJhY2wiKTsKQEAgLTU1MTYsNiArNTUxOSw3IEBA IGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCQl2YXJpbmZvW2ldLnZhcmNvbGxhdGlvbiA9 IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJjb2xsYXRpb24pKTsKIAkJdmFyaW5mb1tp XS52YXJub3RudWxsID0gKihQUWdldHZhbHVlKHJlcywgaSwgaV92YXJub3RudWxsKSkgPT0gJ3Qn OwogCQl2YXJpbmZvW2ldLnZhcmlzaW1tdXRhYmxlID0gKihQUWdldHZhbHVlKHJlcywgaSwgaV92 YXJpc2ltbXV0YWJsZSkpID09ICd0JzsKKwkJdmFyaW5mb1tpXS52YXJpc3RyYW5zYWN0ID0gKihQ UWdldHZhbHVlKHJlcywgaSwgaV92YXJpc3RyYW5zYWN0KSkgPT0gJ3QnOwogCiAJCXZhcmluZm9b aV0uZGFjbC5hY2wgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyYWNsKSk7CiAJ CXZhcmluZm9baV0uZGFjbC5hY2xkZWZhdWx0ID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBp LCBpX2FjbGRlZmF1bHQpKTsKQEAgLTU1NjMsNiArNTU2Nyw3IEBAIGR1bXBWYXJpYWJsZShBcmNo aXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJY29uc3QgY2hhciAqdmFy ZGVmZXhwcjsKIAljb25zdCBjaGFyICp2YXJ4YWN0ZW5kYWN0aW9uOwogCWNvbnN0IGNoYXIgKnZh cmlzaW1tdXRhYmxlOworCWNvbnN0IGNoYXIgKnZhcmlzdHJhbnNhY3Q7CiAJT2lkCQkJdmFyY29s bGF0aW9uOwogCWJvb2wJCXZhcm5vdG51bGw7CiAKQEAgLTU1ODAsMTIgKzU1ODUsMTMgQEAgZHVt cFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAl2 YXJjb2xsYXRpb24gPSB2YXJpbmZvLT52YXJjb2xsYXRpb247CiAJdmFybm90bnVsbCA9IHZhcmlu Zm8tPnZhcm5vdG51bGw7CiAJdmFyaXNpbW11dGFibGUgPSB2YXJpbmZvLT52YXJpc2ltbXV0YWJs ZSA/ICJJTU1VVEFCTEUgIiA6ICIiOworCXZhcmlzdHJhbnNhY3QgPSB2YXJpbmZvLT52YXJpc3Ry YW5zYWN0ID8gIlRSQU5TQUNUSU9OQUwgIiA6ICIiOwogCiAJYXBwZW5kUFFFeHBCdWZmZXIoZGVs cSwgIkRST1AgVkFSSUFCTEUgJXM7XG4iLAogCQkJCQkgIHF1YWx2YXJuYW1lKTsKIAotCWFwcGVu ZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFICVzVkFSSUFCTEUgJXMgQVMgJXMiLAotCQkJCQkg IHZhcmlzaW1tdXRhYmxlLCBxdWFsdmFybmFtZSwgdmFydHlwbmFtZSk7CisJYXBwZW5kUFFFeHBC dWZmZXIocXVlcnksICJDUkVBVEUgJXMlc1ZBUklBQkxFICVzIEFTICVzIiwKKwkJCQkJICB2YXJp c3RyYW5zYWN0LCB2YXJpc2ltbXV0YWJsZSwgcXVhbHZhcm5hbWUsIHZhcnR5cG5hbWUpOwogCiAJ aWYgKE9pZElzVmFsaWQodmFyY29sbGF0aW9uKSkKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCA4OTFlOGQ3 YzEzLi42MjIyYWQyMzI4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisr KyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTcyNyw2ICs3MjcsNyBAQCB0eXBlZGVm IHN0cnVjdCBfVmFyaWFibGVJbmZvCiAJY29uc3QgY2hhciAqcm9sbmFtZTsJCS8qIG5hbWUgb2Yg b3duZXIsIG9yIGVtcHR5IHN0cmluZyAqLwogCWJvb2wJCXZhcm5vdG51bGw7CiAJYm9vbAkJdmFy aXNpbW11dGFibGU7CisJYm9vbAkJdmFyaXN0cmFuc2FjdDsKIH0gVmFyaWFibGVJbmZvOwogCiAv KgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgYi9zcmMvYmlu L3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCA0N2NiNTkzNTZlLi5iMzliZGRkM2U0IDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmlu L3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtNDA3Nyw2ICs0MDc3LDQyIEBAIG15ICV0ZXN0 cyA9ICgKIAkJfSwKIAl9LAogCisJJ0NSRUFURSBUUkFOU0FDVElPTkFMIFZBUklBQkxFIHRlc3Rf dmFyaWFibGUnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2FsbCAgICA9PiAn Q1JFQVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJY3JlYXRlX3Nx bCAgID0+ICdDUkVBVEUgVFJBTlNBQ1RJT05BTCBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU4 IEFTIGludGVnZXInLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgVFJBTlNBQ1RJT05B TCBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU4IEFTIGludGVnZXI7XEUveG0sCisJCWxpa2Ug PT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0 aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBf dGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9 LAorCX0sCisKKwknQ1JFQVRFIFRSQU5TQUNUSU9OQUwgSU1NVVRBQkxFIFZBUklBQkxFIHRlc3Rf dmFyaWFibGUnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2FsbCAgICA9PiAn Q1JFQVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJY3JlYXRlX3Nx bCAgID0+ICdDUkVBVEUgVFJBTlNBQ1RJT05BTCBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0 LnZhcmlhYmxlOSBBUyBpbnRlZ2VyJywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFRS QU5TQUNUSU9OQUwgSU1NVVRBQkxFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTkgQVMgaW50 ZWdlcjtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9z Y2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+ IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1 cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDUkVBVEUgVklFVyB0ZXN0X3ZpZXcnID0+ IHsKIAkJY3JlYXRlX29yZGVyID0+IDYxLAogCQljcmVhdGVfc3FsID0+ICdDUkVBVEUgVklFVyBk dW1wX3Rlc3QudGVzdF92aWV3CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBi L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDYyNGU4ZDlhOWUuLjM0YjFkN2M5ZWMgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNj cmliZS5jCkBAIC01MjQ4LDcgKzUyNDgsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBh dHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlQUUV4cEJ1ZmZlckRhdGEgYnVmOwogCVBHcmVzdWx0ICAg KnJlczsKIAlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OwotCXN0YXRpYyBjb25zdCBi b29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKwlzdGF0aWMg Y29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs c2V9OwogCiAJaWYgKHBzZXQuc3ZlcnNpb24gPCAxODAwMDApCiAJewpAQCAtNTI3MSw2ICs1Mjcx LDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJ CQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wi LFxuIgogCQkJCQkgICIgIE5PVCB2LnZhcm5vdG51bGwgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIg IE5PVCB2LnZhcmlzaW1tdXRhYmxlIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICB2LnZhcmlzdHJh bnNhY3QgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIodi52 YXJkZWZleHByLCAwKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgQ0FTRSB2LnZhcnhhY3RlbmRh Y3Rpb25cbiIKIAkJCQkJICAiICAgIFdIRU4gJ2QnIFRIRU4gJ09OIENPTU1JVCBEUk9QJ1xuIgpA QCAtNTI4Myw2ICs1Mjg0LDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBi b29sIHZlcmJvc2UpCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpLAogCQkJCQkgIGdldHRl eHRfbm9vcCgiTnVsbGFibGUiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIk11dGFibGUiKSwKKwkJ CQkJICBnZXR0ZXh0X25vb3AoIlRyYW5zYWN0aW9uYWwiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3Ao IkRlZmF1bHQiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlRyYW5zYWN0aW9uYWwgZW5kIGFjdGlv biIpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDY4ZjliY2FkZjUuLjcxY2IzNTE2NzIg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTEzMDUsNiArMTMwNSw4IEBAIHN0YXRpYyBjb25z dCBwZ3NxbF90aGluZ190IHdvcmRzX2FmdGVyX2NyZWF0ZVtdID0gewogCQkJCQkJCQkJCQkJCQkJ CQkJCSAqIFRBQkxFIC4uLiAqLwogCXsiVEVYVCBTRUFSQ0giLCBOVUxMLCBOVUxMLCBOVUxMfSwK IAl7IlRSQU5TRk9STSIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIFRISU5HX05PX0FMVEVSfSwK Kwl7IlRSQU5TQUNUSU9OQUwiLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBUSElOR19OT19EUk9Q IHwgVEhJTkdfTk9fQUxURVJ9LCAvKiBmb3IgQ1JFQVRFIFRSQU5TQUNUSU9OQUwKKwkJCQkJCQkJ CQkJCQkJCQkJCQkJKiBWQVJJQUJMRSAuLi4gKi8KIAl7IlRSSUdHRVIiLCAiU0VMRUNUIHRnbmFt ZSBGUk9NIHBnX2NhdGFsb2cucGdfdHJpZ2dlciBXSEVSRSB0Z25hbWUgTElLRSAnJXMnIEFORCBO T1QgdGdpc2ludGVybmFsIn0sCiAJeyJUWVBFIiwgTlVMTCwgTlVMTCwgJlF1ZXJ5X2Zvcl9saXN0 X29mX2RhdGF0eXBlc30sCiAJeyJVTklRVUUiLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBUSElO R19OT19EUk9QIHwgVEhJTkdfTk9fQUxURVJ9LCAvKiBmb3IgQ1JFQVRFIFVOSVFVRQpAQCAtMzk2 Miw4ICszOTY0LDExIEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCX0K IC8qIENSRUFURSBWQVJJQUJMRSAtLS0gaXMgYWxsb3dlZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwg c28gdXNlIFRhaWxNYXRjaGVzICovCiAJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1l PiB3aXRoIEFTICovCisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlRSQU5TQUNUSU9OfFRS QU5TQUNUSU9OQUwiKSkKKwkJQ09NUExFVEVfV0lUSCgiSU1NVVRBQkxFIiwgIlZBUklBQkxFIik7 CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSB8 fAogCQkJIFRhaWxNYXRjaGVzKCJURU1QfFRFTVBPUkFSWSIsICJWQVJJQUJMRSIsIE1hdGNoQW55 KSB8fAorCQkJIFRhaWxNYXRjaGVzKCJUUkFOU0FDVElPTnxUUkFOU0FDVElPTkFMIiwgIlZBUklB QkxFIiwgTWF0Y2hBbnkpIHx8CiAJCQkgVGFpbE1hdGNoZXMoIklNTVVUQUJMRSIsICJWQVJJQUJM RSIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiQVMiKTsKIAllbHNlIGlmIChUYWlsTWF0 Y2hlcygiVkFSSUFCTEUiLCBNYXRjaEFueSwgIkFTIikpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxl LmgKaW5kZXggNzdmMmM1MzQ3OS4uNDE0Zjc4N2E2NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFi bGUuaApAQCAtNjIsNiArNjIsOSBAQCBDQVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVS ZWxhdGlvbklkKQogCS8qIGRvbid0IGFsbG93IGNoYW5nZXMgKi8KIAlib29sCQl2YXJpc2ltbXV0 YWJsZSBCS0lfREVGQVVMVChmKTsKIAorCS8qIHN1cHBvcnRzIHRyYW5zYWN0aW9ucyAqLworCWJv b2wJCXZhcmlzdHJhbnNhY3QgQktJX0RFRkFVTFQoZik7CisKIAkvKiBhY3Rpb24gb24gdHJhbnNh Y3Rpb24gZW5kICovCiAJY2hhcgkJdmFyeGFjdGVuZGFjdGlvbiBCS0lfREVGQVVMVChuKTsKIApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGM0ZmUyOWE1MGQuLjk3ZWQ4NDVlMDcgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rl cy9wYXJzZW5vZGVzLmgKQEAgLTM0OTEsNiArMzQ5MSw3IEBAIHR5cGVkZWYgc3RydWN0IENyZWF0 ZVNlc3Npb25WYXJTdG10CiAJYm9vbAkJaWZfbm90X2V4aXN0czsJLyogZG8gbm90aGluZyBpZiBp dCBhbHJlYWR5IGV4aXN0cyAqLwogCWJvb2wJCW5vdF9udWxsOwkJLyogZGlzYWxsb3cgbnVsbHMg Ki8KIAlib29sCQlpc19pbW11dGFibGU7CS8qIGRvbid0IGFsbG93IGNoYW5nZXMgKi8KKwlib29s CQlpc190cmFuc2FjdDsJLyogc3VwcG9ydHMgdHJhbnNhY3Rpb25zICovCiAJTm9kZQkgICAqZGVm ZXhwcjsJCS8qIGRlZmF1bHQgZXhwcmVzc2lvbiAqLwogCWNoYXIJCVhhY3RFbmRBY3Rpb247CS8q IG9uIHRyYW5zYWN0aW9uIGVuZCBhY3Rpb24gKi8KIH0gQ3JlYXRlU2Vzc2lvblZhclN0bXQ7CmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9wYXJz ZXIva3dsaXN0LmgKaW5kZXggYWVmZTUxZjMzNS4uMTI1ZWI4MTliNyAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3Qu aApAQCAtNDU1LDYgKzQ1NSw3IEBAIFBHX0tFWVdPUkQoInRpbWVzdGFtcCIsIFRJTUVTVEFNUCwg Q09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInRvIiwgVE8sIFJFU0VS VkVEX0tFWVdPUkQsIEFTX0xBQkVMKQogUEdfS0VZV09SRCgidHJhaWxpbmciLCBUUkFJTElORywg UkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInRyYW5zYWN0aW9uIiwg VFJBTlNBQ1RJT04sIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQo InRyYW5zYWN0aW9uYWwiLCBUUkFOU0FDVElPTkFMLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCiBQR19LRVlXT1JEKCJ0cmFuc2Zvcm0iLCBUUkFOU0ZPUk0sIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInRyZWF0IiwgVFJFQVQsIENPTF9OQU1FX0tF WVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ0cmlnZ2VyIiwgVFJJR0dFUiwgVU5SRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5k ZXggZTE2MzVmNjg2Yy4uZGE5ZjRhNzAzMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9wc3FsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0 CkBAIC01OTM1LDIwICs1OTM1LDIwIEBAIENSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXI7CiBTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwogQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgdmFyY2hhciBDT0xMQVRFICJDIjsKIFxkVisgdmFyMQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwg Q29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8 IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCBBY2Nlc3MgcHJpdmlsZWdlcyB8 IERlc2NyaXB0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0KLSBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAg fCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0ICAgICAgIHwgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCAgICAg ICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBOdWxs YWJsZSB8IE11dGFibGUgfCBUcmFuc2FjdGlvbmFsIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwg ZW5kIGFjdGlvbiB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSst LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0K KyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNz X3ZhcmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICAgICAgICB8ICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IAog KDEgcm93KQogCiBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyBQVUJMSUM7CiBDT01N RU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgZGVzY3JpcHRpb24nOwogXGRWKyB2YXIxCi0g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hl bWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVy ICAgICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwg ZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAg ICAgICB8ICAgRGVzY3JpcHRpb24gICAgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQot IHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3Zhcmlh YmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgotICAgICAgICB8ICAgICAgfCAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8 ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVz c192YXJpYWJsZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8 IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAg ICAgICAgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBUcmFuc2FjdGlvbmFsIHwgRGVmYXVsdCB8IFRy YW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2Vz ICAgICAgICAgICAgICAgICB8ICAgRGVzY3JpcHRpb24gICAgCistLS0tLS0tLSstLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZh cnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0 ICAgICAgIHwgZiAgICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCBz b21lIGRlc2NyaXB0aW9uCisgICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8ICAg ICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVn cmVzc192YXJpYWJsZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAK IERST1AgVkFSSUFCTEUgdmFyMTsKQEAgLTY0MTYsOSArNjQxNiw5IEBAIExpc3Qgb2Ygc2NoZW1h cwogKDAgcm93cykKIAogXGRWICJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUg fCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0 IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xs YXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZh dWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWlu LCBidXQgd2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpAQCAtNjU5MSw5ICs2NTkx LDkgQEAgaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJu by5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guaW5zdGEKIFxkeSAibm8uc3VjaC5zY2hlbWEiLiJuby5z dWNoLmV2ZW50LnRyaWdnZXIiCiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90 dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgogXGRW ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8 IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQg fCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxh dGlvbiB8IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgVHJhbnNhY3Rpb25hbCB8IERlZmF1 bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4s IGJ1dCB3aXRoIGN1cnJlbnQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlv bnMuCkBAIC02NzMwLDkgKzY3MzAsOSBAQCBMaXN0IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRlcwog KDAgcm93cykKIAogXGRWIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJp YWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2 YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgTnVs bGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKLS0t LS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNj aGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFi bGUgfCBUcmFuc2FjdGlvbmFsIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAK Ky0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBk b3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCAyZjU1YWI5YTUxLi4wMTFjNTg4MTk5IDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApA QCAtMTE2LDExICsxMTYsMTEgQEAgU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsK IENSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIGludDsKIFNFVCBST0xFIFRPIERFRkFV TFQ7CiBcZFYrIHN2YXJ0ZXN0LnZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHZhcmlhYmxlcwotICBTY2hlbWEgIHwgTmFtZSB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCAg ICAgICAgIE93bmVyICAgICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRy YW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2Vz ICAgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0tLSstLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHN2YXJ0 ZXN0IHwgdmFyMSB8IGludGVnZXIgfCAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVy IHwgdCAgICAgICAgfCB0ICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IAot ICAgICAgICAgIHwgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyPXIvcmVncmVzc192YXJpYWJsZV9vd25l ciB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJs ZXMKKyAgU2NoZW1hICB8IE5hbWUgfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25l ciAgICAgICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0 IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZp bGVnZXMgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tKy0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLQorIHN2YXJ0ZXN0IHwgdmFyMSB8IGludGVnZXIgfCAgICAgICAgICAgfCBy ZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICAgICAg ICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxl X293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCAKKyAgICAgICAgICB8ICAgICAgfCAg ICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwg ICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgcmVncmVzc192YXJpYWJsZV9yZWFkZXI9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwg CiAoMSByb3cpCiAKIERST1AgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMTsKQEAgLTIyMDgsMyArMjIw OCwxMDMgQEAgU0VMRUNUIHZhcjE7CiBMRVQgdmFyMSA9IDMwOwogRVJST1I6ICBzZXNzaW9uIHZh cmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCiBEUk9QIFZBUklBQkxF IHZhcjE7CistLSB0ZXN0IHRyYW5zYWN0aW9uYWwgdmFyaWFibGVzCitDUkVBVEUgVFJBTlNBQ1RJ T04gVkFSSUFCTEUgdHYgQVMgaW50IERFRkFVTFQgMDsKK0JFR0lOOworICBMRVQgdHYgPSAxMDA7 CisgIFNFTEVDVCB0djsKKyB0diAgCistLS0tLQorIDEwMAorKDEgcm93KQorCitST0xMQkFDSzsK K1NFTEVDVCB0djsKKyB0diAKKy0tLS0KKyAgMAorKDEgcm93KQorCitMRVQgdHYgPSAxMDA7CitC RUdJTjsKKyAgTEVUIHR2ID0gMTAwMDsKK0NPTU1JVDsKK1NFTEVDVCB0djsKKyAgdHYgIAorLS0t LS0tCisgMTAwMAorKDEgcm93KQorCitCRUdJTjsKKyAgTEVUIHR2ID0gMDsKKyAgU0VMRUNUIHR2 OworIHR2IAorLS0tLQorICAwCisoMSByb3cpCisKK1JPTExCQUNLOworU0VMRUNUIHR2OworICB0 diAgCistLS0tLS0KKyAxMDAwCisoMSByb3cpCisKKy0tIHRlc3Qgc3VidHJhbnNhY3Rpb25zCitC RUdJTjsKKyAgTEVUIHR2ID0gMTsKK1NBVkVQT0lOVCB4MTsKKyAgTEVUIHR2ID0gMjsKK1NBVkVQ T0lOVCB4MjsKKyAgTEVUIHR2ID0gMzsKK1JPTExCQUNLIFRPIHgyOworICBTRUxFQ1QgdHY7Cisg dHYgCistLS0tCisgIDIKKygxIHJvdykKKworICBMRVQgdHYgPSAxMDsKK1JPTExCQUNLIFRPIHgx OworICBTRUxFQ1QgdHY7CisgdHYgCistLS0tCisgIDEKKygxIHJvdykKKworUk9MTEJBQ0s7CitT RUxFQ1QgdHY7CisgIHR2ICAKKy0tLS0tLQorIDEwMDAKKygxIHJvdykKKworQkVHSU47CisgIExF VCB0diA9IDE7CitTQVZFUE9JTlQgeDE7CisgIExFVCB0diA9IDI7CitTQVZFUE9JTlQgeDI7Cisg IExFVCB0diA9IDM7CitST0xMQkFDSyBUTyB4MjsKKyAgU0VMRUNUIHR2OworIHR2IAorLS0tLQor ICAyCisoMSByb3cpCisKKyAgTEVUIHR2ID0gMTA7CitST0xMQkFDSyBUTyB4MTsKKyAgU0VMRUNU IHR2OworIHR2IAorLS0tLQorICAxCisoMSByb3cpCisKK0NPTU1JVDsKK1NFTEVDVCB0djsKKyB0 diAKKy0tLS0KKyAgMQorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHR2OwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4IDlkMmE3ZTA0NGYuLjcxNTU4NjBh MDQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTE1 MjQsMyArMTUyNCw2MSBAQCBTRUxFQ1QgdmFyMTsKIExFVCB2YXIxID0gMzA7CiAKIERST1AgVkFS SUFCTEUgdmFyMTsKKworLS0gdGVzdCB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcworQ1JFQVRFIFRS QU5TQUNUSU9OIFZBUklBQkxFIHR2IEFTIGludCBERUZBVUxUIDA7CisKK0JFR0lOOworICBMRVQg dHYgPSAxMDA7CisgIFNFTEVDVCB0djsKK1JPTExCQUNLOworCitTRUxFQ1QgdHY7CisKK0xFVCB0 diA9IDEwMDsKK0JFR0lOOworICBMRVQgdHYgPSAxMDAwOworQ09NTUlUOworCitTRUxFQ1QgdHY7 CisKK0JFR0lOOworICBMRVQgdHYgPSAwOworICBTRUxFQ1QgdHY7CitST0xMQkFDSzsKKworU0VM RUNUIHR2OworCistLSB0ZXN0IHN1YnRyYW5zYWN0aW9ucworCitCRUdJTjsKKyAgTEVUIHR2ID0g MTsKK1NBVkVQT0lOVCB4MTsKKyAgTEVUIHR2ID0gMjsKK1NBVkVQT0lOVCB4MjsKKyAgTEVUIHR2 ID0gMzsKK1JPTExCQUNLIFRPIHgyOworICBTRUxFQ1QgdHY7CisgIExFVCB0diA9IDEwOworUk9M TEJBQ0sgVE8geDE7CisgIFNFTEVDVCB0djsKK1JPTExCQUNLOworCitTRUxFQ1QgdHY7CisKK0JF R0lOOworICBMRVQgdHYgPSAxOworU0FWRVBPSU5UIHgxOworICBMRVQgdHYgPSAyOworU0FWRVBP SU5UIHgyOworICBMRVQgdHYgPSAzOworUk9MTEJBQ0sgVE8geDI7CisgIFNFTEVDVCB0djsKKyAg TEVUIHR2ID0gMTA7CitST0xMQkFDSyBUTyB4MTsKKyAgU0VMRUNUIHR2OworQ09NTUlUOworCitT RUxFQ1QgdHY7CisKK0RST1AgVkFSSUFCTEUgdHY7Ci0tIAoyLjQ3LjEKCg== --000000000000ee56b206299a729a Content-Type: text/x-patch; charset="US-ASCII"; name="v20241219-0018-plpgsql-implementation-for-LET-statement.patch" Content-Disposition: attachment; filename="v20241219-0018-plpgsql-implementation-for-LET-statement.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4uzyqs94 RnJvbSA1YThkZDJhYWFkZDNmNGM5NTJiMzhmNGJiNDM0OTVlMmU4MTBiZGY3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDg6NTY6MTcgKzAxMDAKU3ViamVjdDogW1BBVENIIDE4 LzIyXSBwbHBnc3FsIGltcGxlbWVudGF0aW9uIGZvciBMRVQgc3RhdGVtZW50CgpQTHBnU1FMIGFs bG93cyB0byBjYWxsIGV4cHJlc3Npb24gZXhlY3V0b3IgZGlyZWN0bHkgKGZvciBzaW1wbGUgZXhw cmVzc2lvbikuClRoaXMgcG9zc2liaWxpdHkgc3Ryb25nbHkgcmVkdWNlcyBvdmVyaGVhZCByZWxh dGVkIHRvIGV4ZWN1dGlvbi4gUmVpbXBsZW1lbnRhdGlvbgpvZiBMRVQgc3RhdGVtZW50IChpbnNp ZGUgUExwZ1NRTCkgYWxsb3dzIHRvIHVzZSB0aGlzIHBvc3NpYmlsaXR5LCBhbmQgc3Ryb25nbHkK aW5jcmVhc2UgcGVyZm9ybWFuY2U6CgpDUkVBVEUgVkFSSUFCTEUgc3ZhciBpbnQ7CgpETyAkJApC RUdJTgogIEZPUiBpIElOIDEuLjEwMDAwCiAgTE9PUAogICAgTEVUIHN2YXIgPSBpOwogIEVORCBM T09QOwpFTkQ7CiQkOwoKRnJvbSAxMjBtcyB0byA4bXMgKHdpdGggYXNzZXJ0aW9ucykgKHRoaXMg aXMgYmVzdCBjYXNlLCBidXQgd2l0aG91dCBpdCwgdGhlIExFVCBzdGF0ZW1lbnQKY2FuIGJlIGJv dHRsZSBuZWNrKS4KCkFuIGFsdGVybmF0aXZlIGNhbiBiZSByZWltcGxlbWVudGF0aW9uIG9mIExF VCBzdGF0ZW1lbnQgaW5zaWRlIGV4cHJlc3Npb24KZXhlY3V0b3IsIGFuZCB0aGVuIFNRTCBMRVQg Y29tbWFuZCBjYW4gYmUgZXhlY3V0ZWQgaW4gc2ltcGxlIGV4cHJlc3Npb24KZXhlY3V0aW9uLCBi dXQgdGhpcyBpbmNyZWFzZSBhbiBjb21wbGV4aXR5IG9mIGV4ZWN1dG9yLCBidXQgc3RpbGwgdGhl CmJlbmVmaXRzIGlzIG9ubHkgaW5zaWRlIHBscGdzcWwsIHNvIGl0IGlzIGJldHRlciB0byB0aGlz IG9wdGltaXphdGlvbgppbnNpZGUgcGxwZ3NxbC4KLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9z cGkuYyAgICAgICAgICAgICAgICB8ICAzICsrCiBzcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5j ICAgICAgICAgICAgICB8IDEyICsrKysrCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAg ICAgICAgICAgICB8ICA4ICsrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZXIuYyAgICAgICAg ICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAg fCAgMiArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VyLmggICAgICAgICAgICAgICB8ICA0ICsr CiBzcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jICAgICAgICAgICAgICB8IDU1ICsrKysrKysr KysrKysrKysrKysrKysrCiBzcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZnVuY3MuYyAgICAgICAgICAg ICB8IDI0ICsrKysrKysrKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkgICAgICAgICAg ICAgIHwgMjggKysrKysrKysrKystCiBzcmMvcGwvcGxwZ3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3ds aXN0LmggICB8ICAxICsKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF91bnJlc2VydmVkX2t3bGlzdC5o IHwgIDEgKwogc3JjL3BsL3BscGdzcWwvc3JjL3BscGdzcWwuaCAgICAgICAgICAgICAgfCAxMiAr KysrKwogc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgICAgICAgICAgfCAgMSArCiAx MyBmaWxlcyBjaGFuZ2VkLCAxNTEgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv c3BpLmMKaW5kZXggNjU5YmFlMGZiYy4uMzQxN2VkNDlhNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivc3BpLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKQEAgLTI5 OTksNiArMjk5OSw5IEBAIF9TUElfZXJyb3JfY2FsbGJhY2sodm9pZCAqYXJnKQogCQkJY2FzZSBS QVdfUEFSU0VfUExQR1NRTF9BU1NJR04zOgogCQkJCWVycmNvbnRleHQoIlBML3BnU1FMIGFzc2ln bm1lbnQgXCIlc1wiIiwgcXVlcnkpOwogCQkJCWJyZWFrOworCQkJY2FzZSBSQVdfUEFSU0VfUExQ R1NRTF9MRVQ6CisJCQkJZXJyY29udGV4dCgiTEVUIHN0YXRlbWVudCBcIiVzXCIiLCBxdWVyeSk7 CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCWVycmNvbnRleHQoIlNRTCBzdGF0ZW1lbnQg XCIlc1wiIiwgcXVlcnkpOwogCQkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggYjIyYzIx N2FmNC4uNDkwZWJjNjM2ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUu YworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBAIC0yMDEyLDYgKzIwMTIsMTgg QEAgdHJhbnNmb3JtTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQpCiAK IAlzdG10LT5xdWVyeSA9IChOb2RlICopIHF1ZXJ5OwogCisJLyoKKwkgKiBJbnNpZGUgUEwvcGdT UUwgd2UgZG9uJ3Qgd2FudCB0byBleGVjdXRlIExFVCBzdGF0ZW1lbnQgYXMgdXRpbGl0eQorCSAq IGNvbW1hbmQsIGJlY2F1c2UgaXQgZGlzYWxsb3cgdG8gZXhlY3V0ZSBleHByZXNzaW9uIGFzIHNp bXBsZQorCSAqIGV4cHJlc3Npb24uIFNvIGZvciBQTC9wZ1NRTCB3ZSBoYXZlIGV4dHJhIHBhdGgs IGFuZCB3ZSByZXR1cm4gU0VMRUNULgorCSAqIFRoZW4gaXQgY2FuIGJlIGV4ZWN1dGVkIGJ5IGV4 ZWNfZXZhbF9leHByLiBSZXN1bHQgaXMgZGlycmVjdGx5IGFzc2lnbmVkCisJICogdG8gdGFyZ2V0 IHNlc3Npb24gdmFyaWFibGUgaW5zaWRlIFBML3BnU1FMIExFVCBzdGF0ZW1lbnQgaGFuZGxlci4g VGhpcworCSAqIGlzIGV4dHJhIGNvZGUsIGV4dHJhIHBhdGgsIGJ1dCBwb3NzaWJpbGl0eSB0byBn ZXQgZmFzdGVyIGV4ZWN1dGlvbiBpcworCSAqIHRvbyBhdHRyYWN0aXZlLgorCSAqLworCWlmIChz dG10LT5wbHBnc3FsX21vZGUpCisJCXJldHVybiBxdWVyeTsKKwogCS8qIHJlcHJlc2VudCB0aGUg Y29tbWFuZCBhcyBhIHV0aWxpdHkgUXVlcnkgKi8KIAlyZXN1bHQgPSBtYWtlTm9kZShRdWVyeSk7 CiAJcmVzdWx0LT5jb21tYW5kVHlwZSA9IENNRF9VVElMSVRZOwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggMjZk MjI3ZjkyZC4uNTk1MWQ4MjMzYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC04MTcsNiArODE3LDcgQEAgc3Rh dGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFs aWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0b2tlbgkJTU9ERV9QTFBHU1FMX0FTU0lHTjEKICV0b2tl bgkJTU9ERV9QTFBHU1FMX0FTU0lHTjIKICV0b2tlbgkJTU9ERV9QTFBHU1FMX0FTU0lHTjMKKyV0 b2tlbgkJTU9ERV9QTFBHU1FMX0xFVAogCiAKIC8qIFByZWNlZGVuY2U6IGxvd2VzdCB0byBoaWdo ZXN0ICovCkBAIC05NDgsNiArOTQ5LDEzIEBAIHBhcnNlX3RvcGxldmVsOgogCQkJCXBnX3l5Z2V0 X2V4dHJhKHl5c2Nhbm5lciktPnBhcnNldHJlZSA9CiAJCQkJCWxpc3RfbWFrZTEobWFrZVJhd1N0 bXQoKE5vZGUgKikgbiwgQDIpKTsKIAkJCX0KKwkJCXwgTU9ERV9QTFBHU1FMX0xFVCBMZXRTdG10 CisJCQl7CisJCQkJTGV0U3RtdCAqbiA9IChMZXRTdG10ICopICQyOworCQkJCW4tPnBscGdzcWxf bW9kZSA9IHRydWU7CisJCQkJcGdfeXlnZXRfZXh0cmEoeXlzY2FubmVyKS0+cGFyc2V0cmVlID0K KwkJCQkJbGlzdF9tYWtlMShtYWtlUmF3U3RtdCgoTm9kZSAqKSBuLCAwKSk7CisJCQl9CiAJCTsK IAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZXIuYyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZXIuYwppbmRleCAxMTg0ODhjM2YzLi5mOTQzMGEzMjkxIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlci5jCkBAIC02Miw2ICs2Miw3IEBAIHJhd19wYXJzZXIoY29uc3QgY2hhciAqc3RyLCBS YXdQYXJzZU1vZGUgbW9kZSkKIAkJCVtSQVdfUEFSU0VfUExQR1NRTF9BU1NJR04xXSA9IE1PREVf UExQR1NRTF9BU1NJR04xLAogCQkJW1JBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjJdID0gTU9ERV9Q TFBHU1FMX0FTU0lHTjIsCiAJCQlbUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOM10gPSBNT0RFX1BM UEdTUUxfQVNTSUdOMywKKwkJCVtSQVdfUEFSU0VfUExQR1NRTF9MRVRdID0gTU9ERV9QTFBHU1FM X0xFVCwKIAkJfTsKIAogCQl5eWV4dHJhLmhhdmVfbG9va2FoZWFkID0gdHJ1ZTsKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaAppbmRleCA0ZWM4MzQwNmZkLi5jNGZlMjlhNTBkIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oCkBAIC0yMTI0LDYgKzIxMjQsOCBAQCB0eXBlZGVmIHN0cnVjdCBMZXRTdG10CiAJTm9k ZVRhZwkJdHlwZTsKIAlMaXN0CSAgICp0YXJnZXQ7CQkJLyogdGFyZ2V0IHZhcmlhYmxlICovCiAJ Tm9kZQkgICAqcXVlcnk7CQkJLyogc291cmNlIGV4cHJlc3Npb24gKi8KKwlib29sCQlwbHBnc3Fs X21vZGU7CS8qIHRydWUsIHdoZW4gY29tbWFuZCB3aWxsIGJlIGV4ZWN1dGVkCisJCQkJCQkJCSAq IChwYXJzZWQpIGJ5IHBscGdzcWwgcnVudGltZSAqLwogCWludAkJCWxvY2F0aW9uOwogfSBMZXRT dG10OwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VyLmggYi9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2VyLmgKaW5kZXggYmUxODRlYzUwNi4uZWZiYzc2ZjBhZCAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZXIuaApAQCAtMzMsNiArMzMsOSBAQAogICogUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdO bjogcGFyc2UgYSBQTC9wZ1NRTCBhc3NpZ25tZW50IHN0YXRlbWVudCwKICAqIGFuZCByZXR1cm4g YSBvbmUtZWxlbWVudCBMaXN0IGNvbnRhaW5pbmcgYSBSYXdTdG10IG5vZGUuICAibiIKICAqIGdp dmVzIHRoZSBudW1iZXIgb2YgZG90dGVkIG5hbWVzIGNvbXByaXNpbmcgdGhlIHRhcmdldCBDb2x1 bW5SZWYuCisgKgorICogUkFXX1BBUlNFX1BMUEdTUUxfTEVUOiBwYXJzZSBhIExFVCBzdGF0ZW1l bnQsIGFuZCByZXR1cm4gYQorICogb25lLWVsZW1lbnQgTGlzdCBjb250YWluaW5nIGEgUmF3U3Rt dCBub2RlLgogICovCiB0eXBlZGVmIGVudW0KIHsKQEAgLTQyLDYgKzQ1LDcgQEAgdHlwZWRlZiBl bnVtCiAJUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOMSwKIAlSQVdfUEFSU0VfUExQR1NRTF9BU1NJ R04yLAogCVJBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjMsCisJUkFXX1BBUlNFX1BMUEdTUUxfTEVU LAogfSBSYXdQYXJzZU1vZGU7CiAKIC8qIFZhbHVlcyBmb3IgdGhlIGJhY2tzbGFzaF9xdW90ZSBH VUMgKi8KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgYi9zcmMvcGwv cGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IGUzMTIwNmU3ZjQuLjg1N2ZmMDAwMjYgMTAwNjQ0 Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKKysrIGIvc3JjL3BsL3BscGdzcWwv c3JjL3BsX2V4ZWMuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy90dXBjb252 ZXJ0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z190eXBlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1 ZGUgImV4ZWN1dG9yL2V4ZWNFeHByLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivc3BpLmgiCiAjaW5j bHVkZSAiZXhlY3V0b3IvdHN0b3JlUmVjZWl2ZXIuaCIKQEAgLTMyMyw2ICszMjQsOCBAQCBzdGF0 aWMgaW50CWV4ZWNfc3RtdF9jb21taXQoUExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwKIAkJCQkJ CQkgUExwZ1NRTF9zdG10X2NvbW1pdCAqc3RtdCk7CiBzdGF0aWMgaW50CWV4ZWNfc3RtdF9yb2xs YmFjayhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAogCQkJCQkJCSAgIFBMcGdTUUxfc3RtdF9y b2xsYmFjayAqc3RtdCk7CitzdGF0aWMgaW50CWV4ZWNfc3RtdF9sZXQoUExwZ1NRTF9leGVjc3Rh dGUgKmVzdGF0ZSwKKwkJCQkJCSAgUExwZ1NRTF9zdG10X2xldCAqbGV0KTsKIAogc3RhdGljIHZv aWQgcGxwZ3NxbF9lc3RhdGVfc2V0dXAoUExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwKIAkJCQkJ CQkJIFBMcGdTUUxfZnVuY3Rpb24gKmZ1bmMsCkBAIC0yMTE2LDYgKzIxMTksMTAgQEAgZXhlY19z dG10cyhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBMaXN0ICpzdG10cykKIAkJCQlyYyA9IGV4 ZWNfc3RtdF9yb2xsYmFjayhlc3RhdGUsIChQTHBnU1FMX3N0bXRfcm9sbGJhY2sgKikgc3RtdCk7 CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgUExQR1NRTF9TVE1UX0xFVDoKKwkJCQlyYyA9IGV4ZWNf c3RtdF9sZXQoZXN0YXRlLCAoUExwZ1NRTF9zdG10X2xldCAqKSBzdG10KTsKKwkJCQlicmVhazsK KwogCQkJZGVmYXVsdDoKIAkJCQkvKiBwb2ludCBlcnJfc3RtdCB0byBwYXJlbnQsIHNpbmNlIHRo aXMgb25lIHNlZW1zIGNvcnJ1cHQgKi8KIAkJCQllc3RhdGUtPmVycl9zdG10ID0gc2F2ZV9lc3Rt dDsKQEAgLTQ5OTksNiArNTAwNiw1NCBAQCBleGVjX3N0bXRfcm9sbGJhY2soUExwZ1NRTF9leGVj c3RhdGUgKmVzdGF0ZSwgUExwZ1NRTF9zdG10X3JvbGxiYWNrICpzdG10KQogCXJldHVybiBQTFBH U1FMX1JDX09LOwogfQogCisvKiAtLS0tLS0tLS0tCisgKiBleGVjX3N0bXRfbGV0CQkJRXZhbHVh dGUgYW4gZXhwcmVzc2lvbiBhbmQKKyAqCQkJCQlwdXQgdGhlIHJlc3VsdCBpbnRvIGEgc2Vzc2lv biB2YXJpYWJsZS4KKyAqIC0tLS0tLS0tLS0KKyAqLworc3RhdGljIGludAorZXhlY19zdG10X2xl dChQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBQTHBnU1FMX3N0bXRfbGV0ICpzdG10KQorewor CWJvb2wJCWlzTnVsbDsKKwlPaWQJCQl2YWx0eXBlOworCWludDMyCQl2YWx0eXBtb2Q7CisJRGF0 dW0JCXZhbHVlOworCU9pZAkJCXZhcmlkOworCisJTGlzdAkgICAqcGxhbnNvdXJjZXM7CisJQ2Fj aGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZTsKKworCXZhbHVlID0gZXhlY19ldmFsX2V4cHIoZXN0 YXRlLAorCQkJCQkJICAgc3RtdC0+ZXhwciwKKwkJCQkJCSAgICZpc051bGwsCisJCQkJCQkgICAm dmFsdHlwZSwKKwkJCQkJCSAgICZ2YWx0eXBtb2QpOworCisJLyoKKwkgKiBPaWQgb2YgdGFyZ2V0 IHNlc3Npb24gdmFyaWFibGUgaXMgc3RvcmVkIGluIFF1ZXJ5IHN0cnVjdHVyZS4gSXQgaXMKKwkg KiBzYWZlciB0byByZWFkIHRoaXMgdmFsdWUgZGlyZWN0bHkgZnJvbSB0aGUgcGxhbiB0aGFuIHRv IGhvbGQgdGhpcyB2YWx1ZQorCSAqIGluIHRoZSBwbHBnc3FsIGNvbnRleHQsIGJlY2F1c2UgaXQn cyBub3QgbmVjZXNzYXJ5IHRvIGhhbmRsZQorCSAqIGludmFsaWRhdGlvbiBvZiB0aGUgY2FjaGVk IHZhbHVlLiBOZXh0IG9wZXJhdGlvbnMgYXJlIHJlYWQgb25seSB3aXRob3V0CisJICogYW55IGFs bG9jYXRpb25zLCBzbyB3ZSBjYW4gZXhwZWN0IHRoYXQgcmV0cmlldmluZyB2YXJpZCBmcm9tIFF1 ZXJ5CisJICogc2hvdWxkIGJlIGZhc3QuCisJICovCisJcGxhbnNvdXJjZXMgPSBTUElfcGxhbl9n ZXRfcGxhbl9zb3VyY2VzKHN0bXQtPmV4cHItPnBsYW4pOworCWlmIChsaXN0X2xlbmd0aChwbGFu c291cmNlcykgIT0gMSkKKwkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgbGVuZ3RoIG9mIHBsYW5z b3VyY2VzIG9mIHF1ZXJ5IGZvciBMRVQgc3RhdGVtZW50Iik7CisKKwlwbGFuc291cmNlID0gKENh Y2hlZFBsYW5Tb3VyY2UgKikgbGluaXRpYWwocGxhbnNvdXJjZXMpOworCWlmIChsaXN0X2xlbmd0 aChwbGFuc291cmNlLT5xdWVyeV9saXN0KSAhPSAxKQorCQllbG9nKEVSUk9SLCAidW5leHBlY3Rl ZCBsZW5ndGggb2YgcGxhbnNvdXJjZSBvZiBxdWVyeSBmb3IgTEVUIHN0YXRlbWVudCIpOworCisJ dmFyaWQgPSBsaW5pdGlhbF9ub2RlKFF1ZXJ5LCBwbGFuc291cmNlLT5xdWVyeV9saXN0KS0+cmVz dWx0VmFyaWFibGU7CisJaWYgKCFPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJZWxvZyhFUlJPUiwgIm9p ZCBvZiB0YXJnZXQgc2Vzc2lvbiB2YXJpYWJsZSBpcyBub3QgdmFsaWQiKTsKKworCVNldFNlc3Np b25WYXJpYWJsZVdpdGhTZWN1cml0eUNoZWNrKHZhcmlkLCB2YWx1ZSwgaXNOdWxsKTsKKworCXJl dHVybiBQTFBHU1FMX1JDX09LOworfQorCiAvKiAtLS0tLS0tLS0tCiAgKiBleGVjX2Fzc2lnbl9l eHByCQkJUHV0IGFuIGV4cHJlc3Npb24ncyByZXN1bHQgaW50byBhIHZhcmlhYmxlLgogICogLS0t LS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2Z1bmNzLmMgYi9zcmMv cGwvcGxwZ3NxbC9zcmMvcGxfZnVuY3MuYwppbmRleCBlZWI3YzRkN2MwLi4xYjM5MzUxZGI3IDEw MDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZnVuY3MuYworKysgYi9zcmMvcGwvcGxw Z3NxbC9zcmMvcGxfZnVuY3MuYwpAQCAtMjg4LDYgKzI4OCw4IEBAIHBscGdzcWxfc3RtdF90eXBl bmFtZShQTHBnU1FMX3N0bXQgKnN0bXQpCiAJCQlyZXR1cm4gIkNPTU1JVCI7CiAJCWNhc2UgUExQ R1NRTF9TVE1UX1JPTExCQUNLOgogCQkJcmV0dXJuICJST0xMQkFDSyI7CisJCWNhc2UgUExQR1NR TF9TVE1UX0xFVDoKKwkJCXJldHVybiAiTEVUIjsKIAl9CiAKIAlyZXR1cm4gInVua25vd24iOwpA QCAtMzcwLDYgKzM3Miw3IEBAIHN0YXRpYyB2b2lkIGZyZWVfcGVyZm9ybShQTHBnU1FMX3N0bXRf cGVyZm9ybSAqc3RtdCk7CiBzdGF0aWMgdm9pZCBmcmVlX2NhbGwoUExwZ1NRTF9zdG10X2NhbGwg KnN0bXQpOwogc3RhdGljIHZvaWQgZnJlZV9jb21taXQoUExwZ1NRTF9zdG10X2NvbW1pdCAqc3Rt dCk7CiBzdGF0aWMgdm9pZCBmcmVlX3JvbGxiYWNrKFBMcGdTUUxfc3RtdF9yb2xsYmFjayAqc3Rt dCk7CitzdGF0aWMgdm9pZCBmcmVlX2xldChQTHBnU1FMX3N0bXRfbGV0ICpzdG10KTsKIHN0YXRp YyB2b2lkIGZyZWVfZXhwcihQTHBnU1FMX2V4cHIgKmV4cHIpOwogCiAKQEAgLTQ1OSw2ICs0NjIs OSBAQCBmcmVlX3N0bXQoUExwZ1NRTF9zdG10ICpzdG10KQogCQljYXNlIFBMUEdTUUxfU1RNVF9S T0xMQkFDSzoKIAkJCWZyZWVfcm9sbGJhY2soKFBMcGdTUUxfc3RtdF9yb2xsYmFjayAqKSBzdG10 KTsKIAkJCWJyZWFrOworCQljYXNlIFBMUEdTUUxfU1RNVF9MRVQ6CisJCQlmcmVlX2xldCgoUExw Z1NRTF9zdG10X2xldCAqKSBzdG10KTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhF UlJPUiwgInVucmVjb2duaXplZCBjbWRfdHlwZTogJWQiLCBzdG10LT5jbWRfdHlwZSk7CiAJCQli cmVhazsKQEAgLTcxMyw2ICs3MTksMTIgQEAgZnJlZV9nZXRkaWFnKFBMcGdTUUxfc3RtdF9nZXRk aWFnICpzdG10KQogewogfQogCitzdGF0aWMgdm9pZAorZnJlZV9sZXQoUExwZ1NRTF9zdG10X2xl dCAqc3RtdCkKK3sKKwlmcmVlX2V4cHIoc3RtdC0+ZXhwcik7Cit9CisKIHN0YXRpYyB2b2lkCiBm cmVlX2V4cHIoUExwZ1NRTF9leHByICpleHByKQogewpAQCAtODE1LDYgKzgyNyw3IEBAIHN0YXRp YyB2b2lkIGR1bXBfcGVyZm9ybShQTHBnU1FMX3N0bXRfcGVyZm9ybSAqc3RtdCk7CiBzdGF0aWMg dm9pZCBkdW1wX2NhbGwoUExwZ1NRTF9zdG10X2NhbGwgKnN0bXQpOwogc3RhdGljIHZvaWQgZHVt cF9jb21taXQoUExwZ1NRTF9zdG10X2NvbW1pdCAqc3RtdCk7CiBzdGF0aWMgdm9pZCBkdW1wX3Jv bGxiYWNrKFBMcGdTUUxfc3RtdF9yb2xsYmFjayAqc3RtdCk7CitzdGF0aWMgdm9pZCBkdW1wX2xl dChQTHBnU1FMX3N0bXRfbGV0ICpzdG10KTsKIHN0YXRpYyB2b2lkIGR1bXBfZXhwcihQTHBnU1FM X2V4cHIgKmV4cHIpOwogCiAKQEAgLTkxNCw2ICs5MjcsOSBAQCBkdW1wX3N0bXQoUExwZ1NRTF9z dG10ICpzdG10KQogCQljYXNlIFBMUEdTUUxfU1RNVF9ST0xMQkFDSzoKIAkJCWR1bXBfcm9sbGJh Y2soKFBMcGdTUUxfc3RtdF9yb2xsYmFjayAqKSBzdG10KTsKIAkJCWJyZWFrOworCQljYXNlIFBM UEdTUUxfU1RNVF9MRVQ6CisJCQlkdW1wX2xldCgoUExwZ1NRTF9zdG10X2xldCAqKSBzdG10KTsK KwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBjbWRf dHlwZTogJWQiLCBzdG10LT5jbWRfdHlwZSk7CiAJCQlicmVhazsKQEAgLTE1OTAsNiArMTYwNiwx NCBAQCBkdW1wX2dldGRpYWcoUExwZ1NRTF9zdG10X2dldGRpYWcgKnN0bXQpCiAJcHJpbnRmKCJc biIpOwogfQogCitzdGF0aWMgdm9pZAorZHVtcF9sZXQoUExwZ1NRTF9zdG10X2xldCAqc3RtdCkK K3sKKwlkdW1wX2luZCgpOworCWR1bXBfZXhwcihzdG10LT5leHByKTsKKwlwcmludGYoIlxuIik7 Cit9CisKIHN0YXRpYyB2b2lkCiBkdW1wX2V4cHIoUExwZ1NRTF9leHByICpleHByKQogewpkaWZm IC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2dyYW0ueSBiL3NyYy9wbC9wbHBnc3FsL3Ny Yy9wbF9ncmFtLnkKaW5kZXggODE4MmNlMjhhYS4uM2YxNTVjNGY4YSAxMDA2NDQKLS0tIGEvc3Jj L3BsL3BscGdzcWwvc3JjL3BsX2dyYW0ueQorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZ3Jh bS55CkBAIC0yMDAsNyArMjAwLDcgQEAgc3RhdGljCXZvaWQJCQljaGVja19yYWlzZV9wYXJhbWV0 ZXJzKFBMcGdTUUxfc3RtdF9yYWlzZSAqc3RtdCk7CiAldHlwZSA8c3RtdD4Jc3RtdF9yZXR1cm4g c3RtdF9yYWlzZSBzdG10X2Fzc2VydCBzdG10X2V4ZWNzcWwKICV0eXBlIDxzdG10PglzdG10X2R5 bmV4ZWN1dGUgc3RtdF9mb3Igc3RtdF9wZXJmb3JtIHN0bXRfY2FsbCBzdG10X2dldGRpYWcKICV0 eXBlIDxzdG10PglzdG10X29wZW4gc3RtdF9mZXRjaCBzdG10X21vdmUgc3RtdF9jbG9zZSBzdG10 X251bGwKLSV0eXBlIDxzdG10PglzdG10X2NvbW1pdCBzdG10X3JvbGxiYWNrCisldHlwZSA8c3Rt dD4Jc3RtdF9jb21taXQgc3RtdF9yb2xsYmFjayBzdG10X2xldAogJXR5cGUgPHN0bXQ+CXN0bXRf Y2FzZSBzdG10X2ZvcmVhY2hfYQogCiAldHlwZSA8bGlzdD4JcHJvY19leGNlcHRpb25zCkBAIC0z MDcsNiArMzA3LDcgQEAgc3RhdGljCXZvaWQJCQljaGVja19yYWlzZV9wYXJhbWV0ZXJzKFBMcGdT UUxfc3RtdF9yYWlzZSAqc3RtdCk7CiAldG9rZW4gPGtleXdvcmQ+CUtfSU5UTwogJXRva2VuIDxr ZXl3b3JkPglLX0lTCiAldG9rZW4gPGtleXdvcmQ+CUtfTEFTVAorJXRva2VuIDxrZXl3b3JkPglL X0xFVAogJXRva2VuIDxrZXl3b3JkPglLX0xPRwogJXRva2VuIDxrZXl3b3JkPglLX0xPT1AKICV0 b2tlbiA8a2V5d29yZD4JS19NRVJHRQpAQCAtODc2LDYgKzg3Nyw4IEBAIHByb2Nfc3RtdAkJOiBw bF9ibG9jayAnOycKIAkJCQkJCXsgJCQgPSAkMTsgfQogCQkJCXwgc3RtdF9yb2xsYmFjawogCQkJ CQkJeyAkJCA9ICQxOyB9CisJCQkJfCBzdG10X2xldAorCQkJCQkJeyAkJCA9ICQxOyB9CiAJCQkJ OwogCiBzdG10X3BlcmZvcm0JOiBLX1BFUkZPUk0KQEAgLTk5Miw2ICs5OTUsMjkgQEAgc3RtdF9h c3NpZ24JCTogVF9EQVRVTQogCQkJCQl9CiAJCQkJOwogCitzdG10X2xldAkJOiBLX0xFVAorCQkJ CQl7CisJCQkJCQlQTHBnU1FMX3N0bXRfbGV0ICpuZXc7CisJCQkJCQlSYXdQYXJzZU1vZGUgcG1v ZGU7CisKKwkJCQkJCXBtb2RlID0gUkFXX1BBUlNFX1BMUEdTUUxfTEVUOworCisJCQkJCQluZXcg PSBwYWxsb2MwKHNpemVvZihQTHBnU1FMX3N0bXRfbGV0KSk7CisJCQkJCQluZXctPmNtZF90eXBl ID0gUExQR1NRTF9TVE1UX0xFVDsKKwkJCQkJCW5ldy0+bGluZW5vICAgPSBwbHBnc3FsX2xvY2F0 aW9uX3RvX2xpbmVubyhAMSk7CisJCQkJCQluZXctPnN0bXRpZCA9ICsrcGxwZ3NxbF9jdXJyX2Nv bXBpbGUtPm5zdGF0ZW1lbnRzOworCisJCQkJCQkvKiBwdXNoIGJhY2sgdGhlIGhlYWQgbmFtZSB0 byBpbmNsdWRlIGl0IGluIHRoZSBzdG10ICovCisJCQkJCQlwbHBnc3FsX3B1c2hfYmFja190b2tl bihLX0xFVCk7CisJCQkJCQluZXctPmV4cHIgPSByZWFkX3NxbF9jb25zdHJ1Y3QoJzsnLCAwLCAw LCAiOyIsCisJCQkJCQkJCQkJCQkJICAgcG1vZGUsCisJCQkJCQkJCQkJCQkJICAgZmFsc2UsIHRy dWUsCisJCQkJCQkJCQkJCQkJICAgTlVMTCwgTlVMTCk7CisKKwkJCQkJCSQkID0gKFBMcGdTUUxf c3RtdCAqKW5ldzsKKwkJCQkJfQorCQkJCTsKKwogc3RtdF9nZXRkaWFnCTogS19HRVQgZ2V0ZGlh Z19hcmVhX29wdCBLX0RJQUdOT1NUSUNTIGdldGRpYWdfbGlzdCAnOycKIAkJCQkJewogCQkJCQkJ UExwZ1NRTF9zdG10X2dldGRpYWcgKm5ldzsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3Ny Yy9wbF9yZXNlcnZlZF9rd2xpc3QuaCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9yZXNlcnZlZF9r d2xpc3QuaAppbmRleCBkMzM4ZTlmNjM3Li5iZTk0YWE3NTFhIDEwMDY0NAotLS0gYS9zcmMvcGwv cGxwZ3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3dsaXN0LmgKKysrIGIvc3JjL3BsL3BscGdzcWwvc3Jj L3BsX3Jlc2VydmVkX2t3bGlzdC5oCkBAIC00MCw2ICs0MCw3IEBAIFBHX0tFWVdPUkQoImZyb20i LCBLX0ZST00pCiBQR19LRVlXT1JEKCJpZiIsIEtfSUYpCiBQR19LRVlXT1JEKCJpbiIsIEtfSU4p CiBQR19LRVlXT1JEKCJpbnRvIiwgS19JTlRPKQorUEdfS0VZV09SRCgibGV0IiwgS19MRVQpCiBQ R19LRVlXT1JEKCJsb29wIiwgS19MT09QKQogUEdfS0VZV09SRCgibm90IiwgS19OT1QpCiBQR19L RVlXT1JEKCJudWxsIiwgS19OVUxMKQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3Bs X3VucmVzZXJ2ZWRfa3dsaXN0LmggYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfdW5yZXNlcnZlZF9r d2xpc3QuaAppbmRleCA2NzBiNGNmMGMxLi42MDI2MjhkN2QyIDEwMDY0NAotLS0gYS9zcmMvcGwv cGxwZ3NxbC9zcmMvcGxfdW5yZXNlcnZlZF9rd2xpc3QuaAorKysgYi9zcmMvcGwvcGxwZ3NxbC9z cmMvcGxfdW5yZXNlcnZlZF9rd2xpc3QuaApAQCAtNjksNiArNjksNyBAQCBQR19LRVlXT1JEKCJp bmZvIiwgS19JTkZPKQogUEdfS0VZV09SRCgiaW5zZXJ0IiwgS19JTlNFUlQpCiBQR19LRVlXT1JE KCJpcyIsIEtfSVMpCiBQR19LRVlXT1JEKCJsYXN0IiwgS19MQVNUKQorUEdfS0VZV09SRCgibGV0 IiwgS19MRVQpCiBQR19LRVlXT1JEKCJsb2ciLCBLX0xPRykKIFBHX0tFWVdPUkQoIm1lcmdlIiwg S19NRVJHRSkKIFBHX0tFWVdPUkQoIm1lc3NhZ2UiLCBLX01FU1NBR0UpCmRpZmYgLS1naXQgYS9z cmMvcGwvcGxwZ3NxbC9zcmMvcGxwZ3NxbC5oIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BscGdzcWwu aAppbmRleCA1MGMzYjI4NDcyLi5iYjQwMDYyOWFkIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvcGxwZ3NxbC5oCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbHBnc3FsLmgKQEAgLTEy OCw2ICsxMjgsNyBAQCB0eXBlZGVmIGVudW0gUExwZ1NRTF9zdG10X3R5cGUKIAlQTFBHU1FMX1NU TVRfQ0FMTCwKIAlQTFBHU1FMX1NUTVRfQ09NTUlULAogCVBMUEdTUUxfU1RNVF9ST0xMQkFDSywK KwlQTFBHU1FMX1NUTVRfTEVULAogfSBQTHBnU1FMX3N0bXRfdHlwZTsKIAogLyoKQEAgLTUyMCw2 ICs1MjEsMTcgQEAgdHlwZWRlZiBzdHJ1Y3QgUExwZ1NRTF9zdG10X2Fzc2lnbgogCVBMcGdTUUxf ZXhwciAqZXhwcjsKIH0gUExwZ1NRTF9zdG10X2Fzc2lnbjsKIAorLyoKKyAqIExldCBzdGF0ZW1l bnQKKyAqLwordHlwZWRlZiBzdHJ1Y3QgUExwZ1NRTF9zdG10X2xldAoreworCVBMcGdTUUxfc3Rt dF90eXBlIGNtZF90eXBlOworCWludAkJCWxpbmVubzsKKwl1bnNpZ25lZCBpbnQgc3RtdGlkOwor CVBMcGdTUUxfZXhwciAqZXhwcjsKK30gUExwZ1NRTF9zdG10X2xldDsKKwogLyoKICAqIFBFUkZP Uk0gc3RhdGVtZW50CiAgKi8KZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggODFmNzRmZTlh Mi4uZjIyYWQyNjEwMCAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTE4OTIsNiArMTg5 Miw3IEBAIFBMcGdTUUxfc3RtdF9mb3JxCiBQTHBnU1FMX3N0bXRfZm9ycwogUExwZ1NRTF9zdG10 X2dldGRpYWcKIFBMcGdTUUxfc3RtdF9pZgorUExwZ1NRTF9zdG10X2xldAogUExwZ1NRTF9zdG10 X2xvb3AKIFBMcGdTUUxfc3RtdF9vcGVuCiBQTHBnU1FMX3N0bXRfcGVyZm9ybQotLSAKMi40Ny4x Cgo= --000000000000ee56b206299a729a Content-Type: text/x-patch; charset="US-ASCII"; name="v20241219-0022-pg_restore-A-variable.patch" Content-Disposition: attachment; filename="v20241219-0022-pg_restore-A-variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4uzyqpu0 RnJvbSBhZmM2Mzk5MDg5ZjdlMWNhNmJhZDIyYzQ1N2RjMTdjNzE5OGRjMTFiIE1vbiBTZXAgMTcg 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== --000000000000ee56b206299a729a Content-Type: text/x-patch; charset="US-ASCII"; name="v20241219-0019-expression-with-session-variables-can-be-inlined.patch" Content-Disposition: attachment; filename="v20241219-0019-expression-with-session-variables-can-be-inlined.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4uzyqrw3 RnJvbSA0NjcxMzkzNTQwZWIwYWY0NWU4ZjJlOTQ5OWUyOTQ1OGJjOWRjYzI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMjA6MzU6MzggKzAxMDAKU3ViamVjdDogW1BBVENIIDE5 LzIyXSBleHByZXNzaW9uIHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGlubGluZWQKClRo ZXJlIGlzIG5vdCBhbiByZWFzb24gd2h5IHNlc3Npb24gdmFyaWFibGVzIHNob3VsZCB0byBibG9j ayBpbmxpbmluZy4KKG9mIFNRTCBmdW5jdGlvbnMpLiBJIGNhbiBpbWFnaW5lIHNvbWUgdXNlIGNh c2VzIGxpa2Ugd3JhcHBpbmcsIGFuZAppbmxpbmluZyBzaWduaWZpY2FudGx5IHJlZHVjZXMgYW4g b3ZlcmhlYWQgb2YgU1FMIGZ1bmN0aW9ucy4KLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRp bC9jbGF1c2VzLmMgICAgICAgICAgfCAzNyArKysrKysrKysrKysrKy0tLS0tCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAgNyArKy0tCiAyIGZpbGVzIGNo YW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL2NsYXVzZXMuYwppbmRleCA4ZjMyNTM5MmU1Li44MzE3MDU5Zjg3IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKKysrIGIvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCkBAIC00NzQzLDggKzQ3NDMsNyBAQCBpbmxpbmVfZnVu Y3Rpb24oT2lkIGZ1bmNpZCwgT2lkIHJlc3VsdF90eXBlLCBPaWQgcmVzdWx0X2NvbGxpZCwKIAkJ cXVlcnl0cmVlLT5saW1pdE9mZnNldCB8fAogCQlxdWVyeXRyZWUtPmxpbWl0Q291bnQgfHwKIAkJ cXVlcnl0cmVlLT5zZXRPcGVyYXRpb25zIHx8Ci0JCShsaXN0X2xlbmd0aChxdWVyeXRyZWUtPnRh cmdldExpc3QpICE9IDEpIHx8Ci0JCXF1ZXJ5dHJlZS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKKwkJ KGxpc3RfbGVuZ3RoKHF1ZXJ5dHJlZS0+dGFyZ2V0TGlzdCkgIT0gMSkpCiAJCWdvdG8gZmFpbDsK IAogCS8qIElmIHRoZSBmdW5jdGlvbiByZXN1bHQgaXMgY29tcG9zaXRlLCByZXNvbHZlIGl0ICov CkBAIC00OTQ4LDIxICs0OTQ3LDM5IEBAIHN1YnN0aXR1dGVfYWN0dWFsX3BhcmFtZXRlcnNfbXV0 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 c3Npb25fdmFyaWFibGVzLm91dAppbmRleCAyYmIzMGFlYTY2Li5lMTY5Zjc2MTU5IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtNDAy LDcgKzQwMiw2IEBAIFNFTEVDVCB2YXIxOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Ig c2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBTRUxFQ1Qgc3FsZngoMjApOwogRVJST1I6ICBwZXJtaXNz aW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCi1DT05URVhUOiAgU1FMIGZ1bmN0 aW9uICJzcWxmeCIgc3RhdGVtZW50IDEKIFNFTEVDVCBwbHBnc3FsZngoMjApOwogRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBDT05URVhUOiAgUEwv cGdTUUwgZnVuY3Rpb24gcGxwZ3NxbGZ4KGludGVnZXIpIGxpbmUgMSBhdCBSRVRVUk4KQEAgLTUw OSwxMCArNTA4LDEwIEBAIFNFTEVDVCBzcWxmeDEoc3FsZngyKCdIZWxsbycpKTsKIAogLS0gaW5s aW5pbmcgaXMgYmxvY2tlZAogRVhQTEFJTiAoQ09TVFMgT0ZGLCBWRVJCT1NFKSBTRUxFQ1Qgc3Fs ZngxKHNxbGZ4MignSGVsbG8nKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgUmVzdWx0Ci0gICBPdXRwdXQ6IHNxbGZ4MShzcWxmeDIoJ0hlbGxvJzo6Y2hhcmFj dGVyIHZhcnlpbmcpKQorICAgT3V0cHV0OiAoKHZhcjEgfHwgJywgJzo6dGV4dCkgfHwgKCh2YXIy IHx8ICcsICc6OnRleHQpIHx8ICdIZWxsbyc6OnRleHQpKQogKDIgcm93cykKIAogRFJPUCBGVU5D VElPTiBzcWxmeDEodmFyY2hhcik7Ci0tIAoyLjQ3LjEKCg== --000000000000ee56b206299a729a Content-Type: text/x-patch; charset="US-ASCII"; name="v20241219-0020-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Disposition: attachment; filename="v20241219-0020-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4uzyqrm2 RnJvbSAyMzY4OTJkZGNmNDUwYzUzMmZlZjQzOGRkNjYwM2UwZDQyZjhhMTQxIE1vbiBTZXAgMTcg 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 L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCA4MzM4NTY4MDFiLi5mZWNmMjJiOGI5 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTUyNiw3ICs1MjYsNyBAQCB0cmFuc2Zvcm1J bmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKICAqIHBy aW50ZWQuICBXaGVuIHdlIGFyZSBpbiBhbiBleHByZXNzaW9uIHdoZXJlIHNlc3Npb24gdmFyaWFi bGVzIGNhbm5vdCBiZQogICogdXNlZCwgd2UgcmFpc2UgdGhlIGZpcnN0IGZvcm0gb2YgZXJyb3Ig bWVzc2FnZS4KICAqLwotc3RhdGljIGJvb2wKK2Jvb2wKIGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lv bl92YXJpYWJsZXMoUGFyc2VFeHByS2luZCBwX2V4cHJfa2luZCkKIHsKIAlib29sCQlyZXN1bHQg PSBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5j IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKaW5kZXggOTVhZTIxMDgwNC4u ZmE5YTMwYmQxMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9u 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 cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKaW5kZXggY2M2M2I0NGJiYS4uOWQ0YWRj MGY1ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCisrKyBi 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 ci9wYXJzZV9leHByLmgKaW5kZXggMDk0OGEwYjFiNy4uZDFmMmU1OWQyZCAxMDA2NDQKLS0tIGEv 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 aW4ub3V0CmluZGV4IDU1ZDQ0YTliY2UuLjExMzJhMjcyOTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9qb2luLm91dApAQCAtNjM5NiwxMyArNjM5NiwxMyBAQCBMSU5FIDE6IHNlbGVjdCB0Mi51dW5p cXVlMSBmcm9tCiBISU5UOiAgUGVyaGFwcyB5b3UgbWVhbnQgdG8gcmVmZXJlbmNlIHRoZSBjb2x1 bW4gInQyLnVuaXF1ZTEiLgogc2VsZWN0IHV1bmlxdWUxIGZyb20KICAgdGVuazEgdDEgam9pbiB0 ZW5rMiB0MiBvbiB0MS50d28gPSB0Mi50d287IC0tIGVycm9yLCBzdWdnZXN0IGJvdGggYXQgb25j ZQotRVJST1I6ICBjb2x1bW4gInV1bmlxdWUxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1 bW4gb3IgdmFyaWFibGUgInV1bmlxdWUxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3Qg dXVuaXF1ZTEgZnJvbQogICAgICAgICAgICAgICAgXgogSElOVDogIFBlcmhhcHMgeW91IG1lYW50 IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uICJ0MS51bmlxdWUxIiBvciB0aGUgY29sdW1uICJ0Mi51 bmlxdWUxIi4KIHNlbGVjdCBjdGlkIGZyb20KICAgdGVuazEgdDEgam9pbiB0ZW5rMiB0MiBvbiB0 MS50d28gPSB0Mi50d287IC0tIGVycm9yLCBuZWVkIHF1YWxpZmljYXRpb24KLUVSUk9SOiAgY29s dW1uICJjdGlkIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImN0 aWQiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBjdGlkIGZyb20KICAgICAgICAgICAg ICAgIF4KIERFVEFJTDogIFRoZXJlIGFyZSBjb2x1bW5zIG5hbWVkICJjdGlkIiwgYnV0IHRoZXkg YXJlIGluIHRhYmxlcyB0aGF0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9m IHRoZSBxdWVyeS4KQEAgLTc0OTksNyArNzQ5OSw3IEBAIGxhdGVyYWwgKHNlbGVjdCAqIGZyb20g aW50OF90YmwgdDEsCiAKIC0tIHRlc3Qgc29tZSBlcnJvciBjYXNlcyB3aGVyZSBMQVRFUkFMIHNo b3VsZCBoYXZlIGJlZW4gdXNlZCBidXQgd2Fzbid0CiBzZWxlY3QgZjEsZyBmcm9tIGludDRfdGJs IGEsIChzZWxlY3QgZjEgYXMgZykgc3M7Ci1FUlJPUjogIGNvbHVtbiAiZjEiIGRvZXMgbm90IGV4 aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEiIGRvZXMgbm90IGV4aXN0CiBMSU5F IDE6IHNlbGVjdCBmMSxnIGZyb20gaW50NF90YmwgYSwgKHNlbGVjdCBmMSBhcyBnKSBzczsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRo ZXJlIGlzIGEgY29sdW1uIG5hbWVkICJmMSIgaW4gdGFibGUgImEiLCBidXQgaXQgY2Fubm90IGJl IHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpAQCAtNzUxMSw3ICs3NTEx LDcgQEAgTElORSAxOiBzZWxlY3QgZjEsZyBmcm9tIGludDRfdGJsIGEsIChzZWxlY3QgYS5mMSBh cyBnKSBzczsKIERFVEFJTDogIFRoZXJlIGlzIGFuIGVudHJ5IGZvciB0YWJsZSAiYSIsIGJ1dCBp dCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnkuCiBISU5U OiAgVG8gcmVmZXJlbmNlIHRoYXQgdGFibGUsIHlvdSBtdXN0IG1hcmsgdGhpcyBzdWJxdWVyeSB3 aXRoIExBVEVSQUwuCiBzZWxlY3QgZjEsZyBmcm9tIGludDRfdGJsIGEgY3Jvc3Mgam9pbiAoc2Vs ZWN0IGYxIGFzIGcpIHNzOwotRVJST1I6ICBjb2x1bW4gImYxIiBkb2VzIG5vdCBleGlzdAorRVJS T1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImYxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxl Y3QgZjEsZyBmcm9tIGludDRfdGJsIGEgY3Jvc3Mgam9pbiAoc2VsZWN0IGYxIGFzIGcpIHNzOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K IERFVEFJTDogIFRoZXJlIGlzIGEgY29sdW1uIG5hbWVkICJmMSIgaW4gdGFibGUgImEiLCBidXQg aXQgY2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpAQCAt NzU0OCw3ICs3NTQ4LDcgQEAgTElORSAxOiBzZWxlY3QgMSBmcm9tIHRlbmsxIGEsIGxhdGVyYWwg KHNlbGVjdCBtYXgoYS51bmlxdWUxKSBmcm9tIGkuLi4KIGNyZWF0ZSB0ZW1wIHRhYmxlIHh4MSBh cyBzZWxlY3QgZjEgYXMgeDEsIC1mMSBhcyB4MiBmcm9tIGludDRfdGJsOwogLS0gZXJyb3IsIGNh bid0IGRvIHRoaXM6CiB1cGRhdGUgeHgxIHNldCB4MiA9IGYxIGZyb20gKHNlbGVjdCAqIGZyb20g aW50NF90Ymwgd2hlcmUgZjEgPSB4MSkgc3M7Ci1FUlJPUjogIGNvbHVtbiAieDEiIGRvZXMgbm90 IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAieDEiIGRvZXMgbm90IGV4aXN0CiBM SU5FIDE6IC4uLiBzZXQgeDIgPSBmMSBmcm9tIChzZWxlY3QgKiBmcm9tIGludDRfdGJsIHdoZXJl IGYxID0geDEpIHNzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoZXJlIGlzIGEgY29sdW1uIG5hbWVk ICJ4MSIgaW4gdGFibGUgInh4MSIsIGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRo aXMgcGFydCBvZiB0aGUgcXVlcnkuCkBAIC03NTY4LDcgKzc1NjgsNyBAQCB1cGRhdGUgeHgxIHNl 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 Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggZTE2OWY3NjE1OS4uMmY1NWFiOWE1MSAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQK QEAgLTYwNyw3ICs2MDcsNyBAQCBFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInZhcjEiIGRvZXNu J3QgZXhpc3QKIExJTkUgMTogTEVUIHZhcjEgPSBwaSgpOwogICAgICAgICAgICAgXgogU0VMRUNU IHZhcjE7Ci1FUlJPUjogIGNvbHVtbiAidmFyMSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29s dW1uIG9yIHZhcmlhYmxlICJ2YXIxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1QgdmFy MTsKICAgICAgICAgICAgICAgIF4KIC0tIHNob3VsZCBiZSBvawpAQCAtODE5LDcgKzgxOSw3IEBA IFNFTEVDVCB2MTsKIAogLS0gc2hvdWxkIGZhaWwsIGF0dHJpYnV0ZSBkb2Vzbid0IGV4aXN0CiBM RVQgdjEueCA9IDEwOwotRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1 bW4gInYxIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSB0MQor RVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gb3IgdmFyaWFibGUg InYxIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSB0MQogTElO RSAxOiBMRVQgdjEueCA9IDEwOwogICAgICAgICAgICAgXgogLS0gc2hvdWxkIGZhaWwsIGRvbid0 IGFsbG93IG11bHRpIGNvbHVtbiBxdWVyeQpAQCAtMTM2Nyw3ICsxMzY3LDcgQEAgQkVHSU47CiBE Uk9QIFZBUklBQkxFIHZhcjE7CiAtLSBzaG91bGQgZmFpbAogU0VMRUNUIHZhcjE7Ci1FUlJPUjog IGNvbHVtbiAidmFyMSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxl ICJ2YXIxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1QgdmFyMTsKICAgICAgICAgICAg ICAgIF4KIFJPTExCQUNLOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90 cmFuc2FjdGlvbnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMu b3V0CmluZGV4IDdmNTc1N2U4OWMuLmIwNWIxNmQ5NGIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvdHJhbnNhY3Rpb25zLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3RyYW5zYWN0aW9ucy5vdXQKQEAgLTI1Niw3ICsyNTYsNyBAQCBTRUxFQ1QgKiBGUk9N IHRyYW5zX2JhcmJhejsJLS0gc2hvdWxkIGhhdmUgMQogQkVHSU47CiAJU0FWRVBPSU5UIG9uZTsK IAkJU0VMRUNUIHRyYW5zX2ZvbzsKLUVSUk9SOiAgY29sdW1uICJ0cmFuc19mb28iIGRvZXMgbm90 IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAidHJhbnNfZm9vIiBkb2VzIG5vdCBl eGlzdAogTElORSAxOiBTRUxFQ1QgdHJhbnNfZm9vOwogICAgICAgICAgICAgICAgXgogCVJPTExC QUNLIFRPIFNBVkVQT0lOVCBvbmU7CkBAIC0zMDUsNyArMzA1LDcgQEAgQkVHSU47CiAJU0FWRVBP SU5UIG9uZTsKIAkJSU5TRVJUIElOVE8gc2F2ZXBvaW50cyBWQUxVRVMgKDUpOwogCQlTRUxFQ1Qg dHJhbnNfZm9vOwotRVJST1I6ICBjb2x1bW4gInRyYW5zX2ZvbyIgZG9lcyBub3QgZXhpc3QKK0VS Uk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ0cmFuc19mb28iIGRvZXMgbm90IGV4aXN0CiBMSU5F IDE6IFNFTEVDVCB0cmFuc19mb287CiAgICAgICAgICAgICAgICBeCiBDT01NSVQ7CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VuaW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvdW5pb24ub3V0CmluZGV4IGM3MzYzMWE5YTEuLjVjMGVhY2M1ZjEgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0CkBAIC05MjIsNyArOTIyLDcgQEAgT1JERVIgQlkg cTIscTE7CiAKIC0tIFRoaXMgc2hvdWxkIGZhaWwsIGJlY2F1c2UgcTIgaXNuJ3QgYSBuYW1lIG9m IGFuIEVYQ0VQVCBvdXRwdXQgY29sdW1uCiBTRUxFQ1QgcTEgRlJPTSBpbnQ4X3RibCBFWENFUFQg U0VMRUNUIHEyIEZST00gaW50OF90YmwgT1JERVIgQlkgcTIgTElNSVQgMTsKLUVSUk9SOiAgY29s dW1uICJxMiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJxMiIg ZG9lcyBub3QgZXhpc3QKIExJTkUgMTogLi4uIGludDhfdGJsIEVYQ0VQVCBTRUxFQ1QgcTIgRlJP TSBpbnQ4X3RibCBPUkRFUiBCWSBxMiBMSU1JVCAxLi4uCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUg aXMgYSBjb2x1bW4gbmFtZWQgInEyIiBpbiB0YWJsZSAiKlNFTEVDVCogMiIsIGJ1dCBpdCBjYW5u b3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnkuCi0tIAoyLjQ3LjEK Cg== --000000000000ee56b206299a729a Content-Type: text/x-patch; charset="US-ASCII"; name="v20241219-0017-allow-parallel-execution-queries-with-session-variab.patch" Content-Disposition: attachment; filename="v20241219-0017-allow-parallel-execution-queries-with-session-variab.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4uzyqsj5 RnJvbSBkY2NmYzdjMDYzZmZiYzEyMzBhNzI5MDY2ZDgxYTg0MGIyOGU0NTk5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowODoxNyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTcvMjJdIGFsbG93IHBhcmFsbGVsIGV4ZWN1dGlvbiBxdWVyaWVzIHdpdGggc2Vzc2lvbiB2YXJp YWJsZXMKCi0tLQogZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgICA2IC0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICAgICAgICB8 ICAxNCArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMgICAgICAgICAgIHwg MTQ3ICsrKysrKysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNl cy5jICAgICAgICAgIHwgIDE4ICstLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXMub3V0ICAgIHwgIDEyICstCiA1IGZpbGVzIGNoYW5nZWQsIDE3MSBpbnNlcnRpb25zKCsp LCAyNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dt bCBiL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCmluZGV4IDY4M2RlZGU2YWQuLjFjZTlhYmY4 NmYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9wYXJhbGxlbC5zZ21sCkBAIC01MTUsMTIgKzUxNSw2IEBAIEVYUExBSU4gU0VMRUNUICog RlJPTSBwZ2JlbmNoX2FjY291bnRzIFdIRVJFIGZpbGxlciBMSUtFICcleCUnOwogICAgICAgICBQ bGFuIG5vZGVzIHRoYXQgcmVmZXJlbmNlIGEgY29ycmVsYXRlZCA8bGl0ZXJhbD5TdWJQbGFuPC9s aXRlcmFsPi4KICAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgotCi0gICAgPGxpc3RpdGVt PgotICAgICAgPHBhcmE+Ci0gICAgICAgIFBsYW4gbm9kZXMgdGhhdCB1c2UgYSBzZXNzaW9uIHZh cmlhYmxlLgotICAgICAgPC9wYXJhPgotICAgIDwvbGlzdGl0ZW0+CiAgIDwvaXRlbWl6ZWRsaXN0 PgogCiAgPHNlY3QyIGlkPSJwYXJhbGxlbC1sYWJlbGluZyI+CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4u YwppbmRleCBkY2Y1NzFjYTAzLi4xOTYyZWY1Yjc1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjTWFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMK QEAgLTIxMCw3ICsyMTAsMTkgQEAgc3RhbmRhcmRfRXhlY3V0b3JTdGFydChRdWVyeURlc2MgKnF1 ZXJ5RGVzYywgaW50IGVmbGFncykKIAkgKiAgICBiZSBjaGFuZ2VkIGluc2lkZSBxdWVyeSBleGVj dXRpb24gdGltZSwgYW5kIHRoZW4gYSByZWZlcmVuY2UgdG8KIAkgKiAgICBwcmV2aW91c2x5IHJl dHVybmVkIHZhbHVlIGNhbiBiZSBjb3JydXB0ZWQpLgogCSAqLwotCWlmIChxdWVyeURlc2MtPnBs YW5uZWRzdG10LT5zZXNzaW9uVmFyaWFibGVzKQorCWlmIChxdWVyeURlc2MtPm51bV9zZXNzaW9u X3ZhcmlhYmxlcyA+IDApCisJeworCQkvKgorCQkgKiBXaGVuIGEgcGFyYWxsZWwgcXVlcnkgbmVl ZHMgdG8gYWNjZXNzIHF1ZXJ5IHBhcmFtZXRlcnMgKGluY2x1ZGluZworCQkgKiByZWxhdGVkIHNl c3Npb24gdmFyaWFibGVzKSwgdGhlbiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGVzIGFyZQorCQkg KiByZXN0b3JlZCAoZGVzZXJpYWxpemVkKSBpbiBxdWVyeURlc2MgYWxyZWFkeS4gU28ganVzdCBw dXNoIHBvaW50ZXIKKwkJICogb2YgdGhpcyBhcnJheSB0byBleGVjdXRvcidzIGVzdGF0ZS4KKwkJ ICovCisJCUFzc2VydChJc1BhcmFsbGVsV29ya2VyKCkpOworCQllc3RhdGUtPmVzX3Nlc3Npb25f dmFyaWFibGVzID0gcXVlcnlEZXNjLT5zZXNzaW9uX3ZhcmlhYmxlczsKKwkJZXN0YXRlLT5lc19u dW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBxdWVyeURlc2MtPm51bV9zZXNzaW9uX3ZhcmlhYmxlczsK Kwl9CisJZWxzZSBpZiAocXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykK IAl7CiAJCWludAkJCW5TZXNzaW9uVmFyaWFibGVzOwogCQlpbnQJCQlpID0gMDsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY1BhcmFsbGVsLmMKaW5kZXggODQ2ZWM3MjdkZS4uNjQxNjRhYmVkOCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKKysrIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKQEAgLTEyLDggKzEyLDkgQEAKICAqIHdvcmtlcnMg YW5kIGVuc3VyaW5nIHRoYXQgdGhlaXIgc3RhdGUgZ2VuZXJhbGx5IG1hdGNoZXMgdGhhdCBvZiB0 aGUKICAqIGxlYWRlcjsgc2VlIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL1JFQURNRS5wYXJh bGxlbCBmb3IgZGV0YWlscy4KICAqIEhvd2V2ZXIsIHdlIG11c3Qgc2F2ZSBhbmQgcmVzdG9yZSBy ZWxldmFudCBleGVjdXRvciBzdGF0ZSwgc3VjaCBhcwotICogYW55IFBhcmFtTGlzdEluZm8gYXNz b2NpYXRlZCB3aXRoIHRoZSBxdWVyeSwgYnVmZmVyL1dBTCB1c2FnZSBpbmZvLCBhbmQKLSAqIHRo ZSBhY3R1YWwgcGxhbiB0byBiZSBwYXNzZWQgZG93biB0byB0aGUgd29ya2VyLgorICogYW55IFBh cmFtTGlzdEluZm8gYXNzb2NpYXRlZCB3aXRoIHRoZSBxdWVyeSwgYnVmZmVyL1dBTCB1c2FnZSBp bmZvLAorICogc2Vzc2lvbiB2YXJpYWJsZXMgYnVmZmVyLCBhbmQgdGhlIGFjdHVhbCBwbGFuIHRv IGJlIHBhc3NlZCBkb3duIHRvCisgKiB0aGUgd29ya2VyLgogICoKICAqIElERU5USUZJQ0FUSU9O CiAgKgkgIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jCkBAIC02NCw2ICs2NSw3 IEBACiAjZGVmaW5lIFBBUkFMTEVMX0tFWV9RVUVSWV9URVhUCQlVSU5UNjRDT05TVCgweEUwMDAw MDAwMDAwMDAwMDgpCiAjZGVmaW5lIFBBUkFMTEVMX0tFWV9KSVRfSU5TVFJVTUVOVEFUSU9OIFVJ TlQ2NENPTlNUKDB4RTAwMDAwMDAwMDAwMDAwOSkKICNkZWZpbmUgUEFSQUxMRUxfS0VZX1dBTF9V U0FHRQkJCVVJTlQ2NENPTlNUKDB4RTAwMDAwMDAwMDAwMDAwQSkKKyNkZWZpbmUgUEFSQUxMRUxf S0VZX1NFU1NJT05fVkFSSUFCTEVTCVVJTlQ2NENPTlNUKDB4RTAwMDAwMDAwMDAwMDAwQikKIAog I2RlZmluZSBQQVJBTExFTF9UVVBMRV9RVUVVRV9TSVpFCQk2NTUzNgogCkBAIC0xMzgsNiArMTQw LDEyIEBAIHN0YXRpYyBib29sIEV4ZWNQYXJhbGxlbFJldHJpZXZlSW5zdHJ1bWVudGF0aW9uKFBs YW5TdGF0ZSAqcGxhbnN0YXRlLAogLyogSGVscGVyIGZ1bmN0aW9uIHRoYXQgcnVucyBpbiB0aGUg cGFyYWxsZWwgd29ya2VyLiAqLwogc3RhdGljIERlc3RSZWNlaXZlciAqRXhlY1BhcmFsbGVsR2V0 UmVjZWl2ZXIoZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKTsKIAorLyogSGVscGVyIGZ1 bmN0aW9ucyB0aGF0IGNhbiBwYXNzIHZhbHVlcyBvZiBzZXNzaW9uIHZhcmlhYmxlcyAqLworc3Rh dGljIFNpemUgRXN0aW1hdGVTZXNzaW9uVmFyaWFibGVzKEVTdGF0ZSAqZXN0YXRlKTsKK3N0YXRp YyB2b2lkIFNlcmlhbGl6ZVNlc3Npb25WYXJpYWJsZXMoRVN0YXRlICplc3RhdGUsIGNoYXIgKipz dGFydF9hZGRyZXNzKTsKK3N0YXRpYyBTZXNzaW9uVmFyaWFibGVWYWx1ZSAqUmVzdG9yZVNlc3Np b25WYXJpYWJsZXMoY2hhciAqKnN0YXJ0X2FkZHJlc3MsCisJCQkJCQkJCQkJCQkJIGludCAqbnVt X3Nlc3Npb25fdmFyaWFibGVzKTsKKwogLyoKICAqIENyZWF0ZSBhIHNlcmlhbGl6ZWQgcmVwcmVz ZW50YXRpb24gb2YgdGhlIHBsYW4gdG8gYmUgc2VudCB0byBlYWNoIHdvcmtlci4KICAqLwpAQCAt NTk2LDYgKzYwNCw3IEBAIEV4ZWNJbml0UGFyYWxsZWxQbGFuKFBsYW5TdGF0ZSAqcGxhbnN0YXRl LCBFU3RhdGUgKmVzdGF0ZSwKIAljaGFyCSAgICpwc3RtdF9kYXRhOwogCWNoYXIJICAgKnBzdG10 X3NwYWNlOwogCWNoYXIJICAgKnBhcmFtbGlzdGluZm9fc3BhY2U7CisJY2hhcgkgICAqc2Vzc2lv bl92YXJpYWJsZXNfc3BhY2U7CiAJQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlX3NwYWNlOwogCVdhbFVz YWdlICAgKndhbHVzYWdlX3NwYWNlOwogCVNoYXJlZEV4ZWN1dG9ySW5zdHJ1bWVudGF0aW9uICpp bnN0cnVtZW50YXRpb24gPSBOVUxMOwpAQCAtNjA1LDYgKzYxNCw3IEBAIEV4ZWNJbml0UGFyYWxs ZWxQbGFuKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAlpbnQJCQlpbnN0 cnVtZW50YXRpb25fbGVuID0gMDsKIAlpbnQJCQlqaXRfaW5zdHJ1bWVudGF0aW9uX2xlbiA9IDA7 CiAJaW50CQkJaW5zdHJ1bWVudF9vZmZzZXQgPSAwOworCWludAkJCXNlc3Npb25fdmFyaWFibGVz X2xlbiA9IDA7CiAJU2l6ZQkJZHNhX21pbnNpemUgPSBkc2FfbWluaW11bV9zaXplKCk7CiAJY2hh cgkgICAqcXVlcnlfc3RyaW5nOwogCWludAkJCXF1ZXJ5X2xlbjsKQEAgLTY2MCw2ICs2NzAsMTEg QEAgRXhlY0luaXRQYXJhbGxlbFBsYW4oUGxhblN0YXRlICpwbGFuc3RhdGUsIEVTdGF0ZSAqZXN0 YXRlLAogCXNobV90b2NfZXN0aW1hdGVfY2h1bmsoJnBjeHQtPmVzdGltYXRvciwgcGFyYW1saXN0 aW5mb19sZW4pOwogCXNobV90b2NfZXN0aW1hdGVfa2V5cygmcGN4dC0+ZXN0aW1hdG9yLCAxKTsK IAorCS8qIEVzdGltYXRlIHNwYWNlIGZvciBzZXJpYWxpemVkIHNlc3Npb24gdmFyaWFibGVzLiAq LworCXNlc3Npb25fdmFyaWFibGVzX2xlbiA9IEVzdGltYXRlU2Vzc2lvblZhcmlhYmxlcyhlc3Rh dGUpOworCXNobV90b2NfZXN0aW1hdGVfY2h1bmsoJnBjeHQtPmVzdGltYXRvciwgc2Vzc2lvbl92 YXJpYWJsZXNfbGVuKTsKKwlzaG1fdG9jX2VzdGltYXRlX2tleXMoJnBjeHQtPmVzdGltYXRvciwg MSk7CisKIAkvKgogCSAqIEVzdGltYXRlIHNwYWNlIGZvciBCdWZmZXJVc2FnZS4KIAkgKgpAQCAt NzYxLDYgKzc3NiwxMSBAQCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3RhdGUgKnBsYW5zdGF0 ZSwgRVN0YXRlICplc3RhdGUsCiAJc2htX3RvY19pbnNlcnQocGN4dC0+dG9jLCBQQVJBTExFTF9L RVlfUEFSQU1MSVNUSU5GTywgcGFyYW1saXN0aW5mb19zcGFjZSk7CiAJU2VyaWFsaXplUGFyYW1M aXN0KGVzdGF0ZS0+ZXNfcGFyYW1fbGlzdF9pbmZvLCAmcGFyYW1saXN0aW5mb19zcGFjZSk7CiAK KwkvKiBTdG9yZSBzZXJpYWxpemVkIHNlc3Npb24gdmFyaWFibGVzLiAqLworCXNlc3Npb25fdmFy aWFibGVzX3NwYWNlID0gc2htX3RvY19hbGxvY2F0ZShwY3h0LT50b2MsIHNlc3Npb25fdmFyaWFi bGVzX2xlbik7CisJc2htX3RvY19pbnNlcnQocGN4dC0+dG9jLCBQQVJBTExFTF9LRVlfU0VTU0lP Tl9WQVJJQUJMRVMsIHNlc3Npb25fdmFyaWFibGVzX3NwYWNlKTsKKwlTZXJpYWxpemVTZXNzaW9u VmFyaWFibGVzKGVzdGF0ZSwgJnNlc3Npb25fdmFyaWFibGVzX3NwYWNlKTsKKwogCS8qIEFsbG9j YXRlIHNwYWNlIGZvciBlYWNoIHdvcmtlcidzIEJ1ZmZlclVzYWdlOyBubyBuZWVkIHRvIGluaXRp YWxpemUuICovCiAJYnVmdXNhZ2Vfc3BhY2UgPSBzaG1fdG9jX2FsbG9jYXRlKHBjeHQtPnRvYywK IAkJCQkJCQkJCSAgbXVsX3NpemUoc2l6ZW9mKEJ1ZmZlclVzYWdlKSwgcGN4dC0+bndvcmtlcnMp KTsKQEAgLTE0MTEsNiArMTQzMSw3IEBAIFBhcmFsbGVsUXVlcnlNYWluKGRzbV9zZWdtZW50ICpz ZWcsIHNobV90b2MgKnRvYykKIAlTaGFyZWRKaXRJbnN0cnVtZW50YXRpb24gKmppdF9pbnN0cnVt ZW50YXRpb247CiAJaW50CQkJaW5zdHJ1bWVudF9vcHRpb25zID0gMDsKIAl2b2lkCSAgICphcmVh X3NwYWNlOworCWNoYXIJICAgKnNlc3Npb252YXJpYWJsZV9zcGFjZTsKIAlkc2FfYXJlYSAgICph cmVhOwogCVBhcmFsbGVsV29ya2VyQ29udGV4dCBwd2N4dDsKIApAQCAtMTQzNiw2ICsxNDU3LDE0 IEBAIFBhcmFsbGVsUXVlcnlNYWluKGRzbV9zZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYykKIAlh cmVhX3NwYWNlID0gc2htX3RvY19sb29rdXAodG9jLCBQQVJBTExFTF9LRVlfRFNBLCBmYWxzZSk7 CiAJYXJlYSA9IGRzYV9hdHRhY2hfaW5fcGxhY2UoYXJlYV9zcGFjZSwgc2VnKTsKIAorCS8qIFJl Y29uc3RydWN0IHNlc3Npb24gdmFyaWFibGVzLiAqLworCXNlc3Npb252YXJpYWJsZV9zcGFjZSA9 IHNobV90b2NfbG9va3VwKHRvYywKKwkJCQkJCQkJCQkgICBQQVJBTExFTF9LRVlfU0VTU0lPTl9W QVJJQUJMRVMsCisJCQkJCQkJCQkJICAgZmFsc2UpOworCXF1ZXJ5RGVzYy0+c2Vzc2lvbl92YXJp YWJsZXMgPQorCQlSZXN0b3JlU2Vzc2lvblZhcmlhYmxlcygmc2Vzc2lvbnZhcmlhYmxlX3NwYWNl LAorCQkJCQkJCQkmcXVlcnlEZXNjLT5udW1fc2Vzc2lvbl92YXJpYWJsZXMpOworCiAJLyogU3Rh cnQgdXAgdGhlIGV4ZWN1dG9yICovCiAJcXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+aml0RmxhZ3Mg PSBmcGVzLT5qaXRfZmxhZ3M7CiAJRXhlY3V0b3JTdGFydChxdWVyeURlc2MsIGZwZXMtPmVmbGFn cyk7CkBAIC0xNTAzLDMgKzE1MzIsMTE3IEBAIFBhcmFsbGVsUXVlcnlNYWluKGRzbV9zZWdtZW50 ICpzZWcsIHNobV90b2MgKnRvYykKIAlGcmVlUXVlcnlEZXNjKHF1ZXJ5RGVzYyk7CiAJcmVjZWl2 ZXItPnJEZXN0cm95KHJlY2VpdmVyKTsKIH0KKworLyoKKyAqIEVzdGltYXRlIHRoZSBhbW91bnQg b2Ygc3BhY2UgcmVxdWlyZWQgdG8gc2VyaWFsaXplIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLwor c3RhdGljIFNpemUKK0VzdGltYXRlU2Vzc2lvblZhcmlhYmxlcyhFU3RhdGUgKmVzdGF0ZSkKK3sK KwlpbnQJCQlpOworCVNpemUJCXN6ID0gc2l6ZW9mKGludCk7CisKKwlpZiAoZXN0YXRlLT5lc19z ZXNzaW9uX3ZhcmlhYmxlcyA9PSBOVUxMKQorCQlyZXR1cm4gc3o7CisKKwlmb3IgKGkgPSAwOyBp IDwgZXN0YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXM7IGkrKykKKwl7CisJCVNlc3Npb25W YXJpYWJsZVZhbHVlICpzdmFydmFsOworCQlPaWQJCQl0eXBlT2lkOworCQlpbnQxNgkJdHlwTGVu OworCQlib29sCQl0eXBCeVZhbDsKKworCQlzdmFydmFsID0gJmVzdGF0ZS0+ZXNfc2Vzc2lvbl92 YXJpYWJsZXNbaV07CisKKwkJdHlwZU9pZCA9IHN2YXJ2YWwtPnR5cGlkOworCisJCXN6ID0gYWRk X3NpemUoc3osIHNpemVvZihPaWQpKTsgLyogc3BhY2UgZm9yIHR5cGUgT0lEICovCisKKwkJLyog c3BhY2UgZm9yIGRhdHVtL2lzbnVsbCAqLworCQlBc3NlcnQoT2lkSXNWYWxpZCh0eXBlT2lkKSk7 CisJCWdldF90eXBsZW5ieXZhbCh0eXBlT2lkLCAmdHlwTGVuLCAmdHlwQnlWYWwpOworCisJCXN6 ID0gYWRkX3NpemUoc3osCisJCQkJCSAgZGF0dW1Fc3RpbWF0ZVNwYWNlKHN2YXJ2YWwtPnZhbHVl LCBzdmFydmFsLT5pc251bGwsIHR5cEJ5VmFsLCB0eXBMZW4pKTsKKwl9CisKKwlyZXR1cm4gc3o7 Cit9CisKKy8qCisgKiBTZXJpYWxpemUgYSBzZXNzaW9uIHZhcmlhYmxlcyBidWZmZXIgaW50byBj YWxsZXItcHJvdmlkZWQgc3RvcmFnZS4KKyAqCisgKiBXZSB3cml0ZSB0aGUgbnVtYmVyIG9mIHBh cmFtZXRlcnMgZmlyc3QsIGFzIGEgNC1ieXRlIGludGVnZXIsIGFuZCB0aGVuCisgKiB3cml0ZSBk ZXRhaWxzIGZvciBlYWNoIHBhcmFtZXRlciBpbiB0dXJuLiAgVGhlIGRldGFpbHMgZm9yIGVhY2gg cGFyYW1ldGVyCisgKiBjb25zaXN0IG9mIGEgNC1ieXRlIHR5cGUgT0lELCBhbmQgdGhlbiB0aGUg ZGF0dW0gYXMgc2VyaWFsaXplZCBieQorICogZGF0dW1TZXJpYWxpemUoKS4gIFRoZSBjYWxsZXIg aXMgcmVzcG9uc2libGUgZm9yIGVuc3VyaW5nIHRoYXQgdGhlcmUgaXMKKyAqIGVub3VnaCBzdG9y YWdlIHRvIHN0b3JlIHRoZSBudW1iZXIgb2YgYnl0ZXMgdGhhdCB3aWxsIGJlIHdyaXR0ZW47IHVz ZQorICogRXN0aW1hdGVTZXNzaW9uVmFyaWFibGVzIHRvIGZpbmQgb3V0IGhvdyBtYW55IHdpbGwg YmUgbmVlZGVkLgorICogKnN0YXJ0X2FkZHJlc3MgaXMgdXBkYXRlZCB0byBwb2ludCB0byB0aGUg Ynl0ZSBpbW1lZGlhdGVseSBmb2xsb3dpbmcgdGhvc2UKKyAqIHdyaXR0ZW4uCisgKgorICogUmVz dG9yZVNlc3Npb25WYXJpYWJsZXMgY2FuIGJlIHVzZWQgdG8gcmVjcmVhdGUgYSBzZXNzaW9uIHZh cmlhYmxlIGJ1ZmZlcgorICogYmFzZWQgb24gdGhlIHNlcmlhbGl6ZWQgcmVwcmVzZW50YXRpb247 CisgKi8KK3N0YXRpYyB2b2lkCitTZXJpYWxpemVTZXNzaW9uVmFyaWFibGVzKEVTdGF0ZSAqZXN0 YXRlLCBjaGFyICoqc3RhcnRfYWRkcmVzcykKK3sKKwlpbnQJCQlucGFyYW1zOworCWludAkJCWk7 CisKKwkvKiBXcml0ZSBudW1iZXIgb2YgcGFyYW1ldGVycy4gKi8KKwlucGFyYW1zID0gZXN0YXRl LT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXM7CisJbWVtY3B5KCpzdGFydF9hZGRyZXNzLCAmbnBh cmFtcywgc2l6ZW9mKGludCkpOworCSpzdGFydF9hZGRyZXNzICs9IHNpemVvZihpbnQpOworCisJ LyogV3JpdGUgZWFjaCBwYXJhbWV0ZXIgaW4gdHVybi4gKi8KKwlmb3IgKGkgPSAwOyBpIDwgbnBh cmFtczsgaSsrKQorCXsKKwkJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKnN2YXJ2YWw7CisJCU9pZAkJ CXR5cGVPaWQ7CisJCWludDE2CQl0eXBMZW47CisJCWJvb2wJCXR5cEJ5VmFsOworCisJCXN2YXJ2 YWwgPSAmZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlc1tpXTsKKwkJdHlwZU9pZCA9IHN2YXJ2 YWwtPnR5cGlkOworCisJCS8qIFdyaXRlIHR5cGUgT0lELiAqLworCQltZW1jcHkoKnN0YXJ0X2Fk ZHJlc3MsICZ0eXBlT2lkLCBzaXplb2YoT2lkKSk7CisJCSpzdGFydF9hZGRyZXNzICs9IHNpemVv ZihPaWQpOworCisJCUFzc2VydChPaWRJc1ZhbGlkKHR5cGVPaWQpKTsKKwkJZ2V0X3R5cGxlbmJ5 dmFsKHR5cGVPaWQsICZ0eXBMZW4sICZ0eXBCeVZhbCk7CisKKwkJZGF0dW1TZXJpYWxpemUoc3Zh cnZhbC0+dmFsdWUsIHN2YXJ2YWwtPmlzbnVsbCwgdHlwQnlWYWwsIHR5cExlbiwKKwkJCQkJICAg c3RhcnRfYWRkcmVzcyk7CisJfQorfQorCitzdGF0aWMgU2Vzc2lvblZhcmlhYmxlVmFsdWUgKgor UmVzdG9yZVNlc3Npb25WYXJpYWJsZXMoY2hhciAqKnN0YXJ0X2FkZHJlc3MsIGludCAqbnVtX3Nl c3Npb25fdmFyaWFibGVzKQoreworCVNlc3Npb25WYXJpYWJsZVZhbHVlICpzZXNzaW9uX3Zhcmlh YmxlczsKKwlpbnQJCQlpOworCWludAkJCW5wYXJhbXM7CisKKwltZW1jcHkoJm5wYXJhbXMsICpz dGFydF9hZGRyZXNzLCBzaXplb2YoaW50KSk7CisJKnN0YXJ0X2FkZHJlc3MgKz0gc2l6ZW9mKGlu dCk7CisKKwkqbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gbnBhcmFtczsKKwlzZXNzaW9uX3Zhcmlh YmxlcyA9IChTZXNzaW9uVmFyaWFibGVWYWx1ZSAqKQorCQlwYWxsb2MobnBhcmFtcyAqIHNpemVv ZihTZXNzaW9uVmFyaWFibGVWYWx1ZSkpOworCisJZm9yIChpID0gMDsgaSA8IG5wYXJhbXM7IGkr KykKKwl7CisJCVNlc3Npb25WYXJpYWJsZVZhbHVlICpzdmFydmFsID0gJnNlc3Npb25fdmFyaWFi bGVzW2ldOworCisJCS8qIFJlYWQgdHlwZSBPSUQuICovCisJCW1lbWNweSgmc3ZhcnZhbC0+dHlw aWQsICpzdGFydF9hZGRyZXNzLCBzaXplb2YoT2lkKSk7CisJCSpzdGFydF9hZGRyZXNzICs9IHNp emVvZihPaWQpOworCisJCS8qIFJlYWQgZGF0dW0vaXNudWxsLiAqLworCQlzdmFydmFsLT52YWx1 ZSA9IGRhdHVtUmVzdG9yZShzdGFydF9hZGRyZXNzLCAmc3ZhcnZhbC0+aXNudWxsKTsKKwl9CisK KwlyZXR1cm4gc2Vzc2lvbl92YXJpYWJsZXM7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1 c2VzLmMKaW5kZXggZWZlODcyYjhhMy4uOGYzMjUzOTJlNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91 dGlsL2NsYXVzZXMuYwpAQCAtOTIzLDI1ICs5MjMsMTkgQEAgbWF4X3BhcmFsbGVsX2hhemFyZF93 YWxrZXIoTm9kZSAqbm9kZSwgbWF4X3BhcmFsbGVsX2hhemFyZF9jb250ZXh0ICpjb250ZXh0KQog CiAJLyoKIAkgKiBXZSBjYW4ndCBwYXNzIFBhcmFtcyB0byB3b3JrZXJzIGF0IHRoZSBtb21lbnQg ZWl0aGVyLCBzbyB0aGV5IGFyZSBhbHNvCi0JICogcGFyYWxsZWwtcmVzdHJpY3RlZCwgdW5sZXNz IHRoZXkgYXJlIFBBUkFNX0VYVEVSTiBQYXJhbXMgb3IgYXJlCi0JICogUEFSQU1fRVhFQyBQYXJh bXMgbGlzdGVkIGluIHNhZmVfcGFyYW1faWRzLCBtZWFuaW5nIHRoZXkgY291bGQgYmUKLQkgKiBl aXRoZXIgZ2VuZXJhdGVkIHdpdGhpbiB3b3JrZXJzIG9yIGNhbiBiZSBjb21wdXRlZCBieSB0aGUg bGVhZGVyIGFuZAotCSAqIHRoZW4gdGhlaXIgdmFsdWUgY2FuIGJlIHBhc3NlZCB0byB3b3JrZXJz LgorCSAqIHBhcmFsbGVsLXJlc3RyaWN0ZWQsIHVubGVzcyB0aGV5IGFyZSBQQVJBTV9FWFRFUk4g b3IgUEFSQU1fVkFSSUFCTEUKKwkgKiBQYXJhbXMgb3IgYXJlIFBBUkFNX0VYRUMgUGFyYW1zIGxp c3RlZCBpbiBzYWZlX3BhcmFtX2lkcywgbWVhbmluZyB0aGV5CisJICogY291bGQgYmUgZWl0aGVy IGdlbmVyYXRlZCB3aXRoaW4gd29ya2VycyBvciBjYW4gYmUgY29tcHV0ZWQgYnkgdGhlCisJICog bGVhZGVyIGFuZCB0aGVuIHRoZWlyIHZhbHVlIGNhbiBiZSBwYXNzZWQgdG8gd29ya2Vycy4KIAkg Ki8KIAllbHNlIGlmIChJc0Eobm9kZSwgUGFyYW0pKQogCXsKIAkJUGFyYW0JICAgKnBhcmFtID0g KFBhcmFtICopIG5vZGU7CiAKLQkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fRVhURVJO KQorCQlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9FWFRFUk4gfHwKKwkJCXBhcmFtLT5w YXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCiAJCQlyZXR1cm4gZmFsc2U7CiAKLQkJLyogd2Ug ZG9uJ3Qgc3VwcG9ydCBwYXNzaW5nIHNlc3Npb24gdmFyaWFibGVzIHRvIHdvcmtlcnMgKi8KLQkJ aWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCi0JCXsKLQkJCWlmIChtYXhf cGFyYWxsZWxfaGF6YXJkX3Rlc3QoUFJPUEFSQUxMRUxfUkVTVFJJQ1RFRCwgY29udGV4dCkpCi0J CQkJcmV0dXJuIHRydWU7Ci0JCX0KLQogCQlpZiAocGFyYW0tPnBhcmFta2luZCAhPSBQQVJBTV9F WEVDIHx8CiAJCQkhbGlzdF9tZW1iZXJfaW50KGNvbnRleHQtPnNhZmVfcGFyYW1faWRzLCBwYXJh bS0+cGFyYW1pZCkpCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQKaW5kZXggMGYxNDljNTAxNi4uMmJiMzBhZWE2NiAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTk0MSwxMiAr OTQxLDE0IEBAIFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCBXSEVSRSBhJTEwID0gemVy bzsKIAogLS0gcGFyYWxsZWwgZXhlY3V0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgeWV0CiBFWFBMQUlO IChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCBXSEVSRSBhJTEwID0g emVybzsKLSAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICBRVUVSWSBQTEFOICAgICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAgQWdncmVnYXRlCi0gICAtPiAgU2VxIFNjYW4gb24gc3Zhcl90ZXN0Ci0gICAgICAgICBGaWx0 ZXI6ICgoYSAlIDEwKSA9IHplcm8pCi0oMyByb3dzKQorICAgLT4gIEdhdGhlcgorICAgICAgICAg V29ya2VycyBQbGFubmVkOiAyCisgICAgICAgICAtPiAgUGFyYWxsZWwgU2VxIFNjYW4gb24gc3Zh cl90ZXN0CisgICAgICAgICAgICAgICBGaWx0ZXI6ICgoYSAlIDEwKSA9IHplcm8pCisoNSByb3dz KQogCiBMRVQgemVybyA9IChTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QpOwogLS0gcmVz dWx0IHNob3VsZCBiZSAxMDAwCi0tIAoyLjQ3LjEKCg== --000000000000ee56b206299a729a Content-Type: text/x-patch; charset="US-ASCII"; name="v20241219-0016-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Disposition: attachment; filename="v20241219-0016-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4uzyqss6 RnJvbSBjNjM4MzE0MjQxYjg2YjJkZjIyYTdlZGMzOTAxMmY2MGFhMGQwNWZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowNzowMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTYvMjJdIGFsbG93IHJlYWQgYW4gdmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBkaXJlY3RseSBm cm9tCiBleHByZXNzaW9uIGV4ZWN1dG9yCgpUaGUgZXhwcmVzc2lvbiBleGVjdXRvciBjYW4gYmUg Y2FsbGVkIGRpcmVjdGx5IChub3QgaW5zaWRlIHF1ZXJ5IGV4ZWN1dG9yKQp3aGVuIGV4cHJlc3Np b24gaXMgZXZhbHVhdGVkIGFzIHNpbXBsZSBleHByZXNzaW9uIGluIHBscGdzcWwgb3Igd2hlbiBl eHByZXNzaW9uCmlzIGFuIGFyZ3VtZW50IG9mIENBTEwgb3IgRVhFQ1VURSBzdGF0ZW1lbnRzLiBG b3IgdGhlc2UgY2FzZXMgd2UgbmVlZCB0byBhbGxvdyBkaXJlY3QKYWNjZXNzIHRvIGNvbnRlbnQg b2Ygc2Vzc2lvbiB2YXJpYWJsZXMgZnJvbSBleGVjdXRvci4gV2UgY2FuIGRvIGl0LCBiZWNhdXNl CndlIGtub3cgc28gdGhlIGV4cHJlc3Npb24gaXMgbm90IGV2YWx1YXRlZCB1bmRlciBxdWVyeSBh bmQgY2Fubm90IGJlCmV2YWx1YXRlZCBpbnNpZGUgcGFyYWxsZWwgd29ya2VyLgoKVGhpcyBwYXRj aCBlbmFibGVzIHNlc3Npb24gdmFyaWFibGVzIGZvciBzaW1wbGUgZXhwcmVzc2lvbiBldmFsdWF0 aW9uLgoKVGhpcyBwYXRjaCBlbmFibGVzIHVzYWdlIHNlc3Npb24gdmFyaWFibGVzIGluIGFyZ3Vt ZW50cyBvZiBDQUxMIHN0bXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jICAg ICAgICAgICAgICAgIHwgIDggLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAg ICAgICAgICAgICB8IDgyICsrKysrKysrKysrKysrLS0tLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHBySW50ZXJwLmMgICAgICAgICB8IDE2ICsrKysKIHNyYy9iYWNrZW5kL2ppdC9sbHZt L2xsdm1qaXRfZXhwci5jICAgICAgICAgICB8ICA2ICsrCiBzcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jICAgICAgICAgICAgICAgICAgfCAgOCAtLQogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhl Y0V4cHIuaCAgICAgICAgICAgICAgIHwgMTIgKystCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxf c2Vzc2lvbl92YXJpYWJsZS5vdXQgfCAgMyArLQogc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMu YyAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzLm91dCAgICB8IDI5ICsrKystLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Np b25fdmFyaWFibGVzLnNxbCAgICB8IDEyICstLQogMTAgZmlsZXMgY2hhbmdlZCwgMTE4IGluc2Vy dGlvbnMoKyksIDYxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3ByZXBhcmUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwppbmRleCBhZjQy NDk2MjYzLi5jNjU1MmFhYWM5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVw YXJlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCkBAIC0zMzgsMTQgKzMz OCw2IEBAIEV2YWx1YXRlUGFyYW1zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUHJlcGFyZWRTdGF0ZW1l bnQgKnBzdG10LCBMaXN0ICpwYXJhbXMsCiAJCWkrKzsKIAl9CiAKLQkvKgotCSAqIFRoZSBhcmd1 bWVudHMgb2YgRVhFQ1VURSBhcmUgZXZhbHVhdGVkIGJ5IGEgZGlyZWN0IGV4cHJlc3Npb24KLQkg KiBleGVjdXRvciBjYWxsLiAgVGhpcyBtb2RlIGRvZXNuJ3Qgc3VwcG9ydCBzZXNzaW9uIHZhcmlh YmxlcyB5ZXQuCi0JICogSXQgd2lsbCBiZSBlbmFibGVkIGxhdGVyLgotCSAqLwotCWlmIChwc3Rh dGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcykKLQkJZWxvZyhFUlJPUiwgInNlc3Npb24gdmFyaWFi bGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQiKTsKLQogCS8qIFByZXBhcmUgdGhlIGV4 cHJlc3Npb25zIGZvciBleGVjdXRpb24gKi8KIAlleHByc3RhdGVzID0gRXhlY1ByZXBhcmVFeHBy TGlzdChwYXJhbXMsIGVzdGF0ZSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHByLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCmluZGV4IDUwNjU0 MmY0MzMuLjA4OWQ2NTNjMzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNF eHByLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpAQCAtMTAwOSwyNSAr MTAwOSw2OSBAQCBFeGVjSW5pdEV4cHJSZWMoRXhwciAqbm9kZSwgRXhwclN0YXRlICpzdGF0ZSwK IAkJCQkJCQkJZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gc3RhdGUtPnBhcmVudC0+c3RhdGUt PmVzX251bV9zZXNzaW9uX3ZhcmlhYmxlczsKIAkJCQkJCQl9CiAKLQkJCQkJCQlBc3NlcnQoZXNf c2Vzc2lvbl92YXJpYWJsZXMpOwotCi0JCQkJCQkJLyogcGFyYW1ldGVyIHNhbml0eSBjaGVja3Mg Ki8KLQkJCQkJCQlpZiAocGFyYW0tPnBhcmFtaWQgPj0gZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVz KQotCQkJCQkJCQllbG9nKEVSUk9SLCAicGFyYW1pZCBvZiBQQVJBTV9WQVJJQUJMRSBwYXJhbSBp cyBvdXQgb2YgcmFuZ2UiKTsKLQotCQkJCQkJCXZhciA9ICZlc19zZXNzaW9uX3ZhcmlhYmxlc1tw YXJhbS0+cGFyYW1pZF07Ci0KLQkJCQkJCQlpZiAodmFyLT50eXBpZCAhPSBwYXJhbS0+cGFyYW10 eXBlKQotCQkJCQkJCQllbG9nKEVSUk9SLCAidHlwZSBvZiBidWZmZXJlZCB2YWx1ZSBpcyBkaWZm ZXJlbnQgdGhhbiBQQVJBTV9WQVJJQUJMRSB0eXBlIik7Ci0KLQkJCQkJCQkvKgotCQkJCQkJCSAq IEluIHRoaXMgY2FzZSwgcGFzcyB0aGUgdmFsdWUgbGlrZSBhCi0JCQkJCQkJICogY29uc3RhbnQu Ci0JCQkJCQkJICovCi0JCQkJCQkJc2NyYXRjaC5vcGNvZGUgPSBFRU9QX0NPTlNUOwotCQkJCQkJ CXNjcmF0Y2guZC5jb25zdHZhbC52YWx1ZSA9IHZhci0+dmFsdWU7Ci0JCQkJCQkJc2NyYXRjaC5k LmNvbnN0dmFsLmlzbnVsbCA9IHZhci0+aXNudWxsOwotCQkJCQkJCUV4cHJFdmFsUHVzaFN0ZXAo c3RhdGUsICZzY3JhdGNoKTsKKwkJCQkJCQlpZiAoZXNfc2Vzc2lvbl92YXJpYWJsZXMpCisJCQkJ CQkJeworCQkJCQkJCQkvKgorCQkJCQkJCQkgKiBUaGlzIHBhdGggaXMgdXNlZCB3aGVuIGV4cHJl c3Npb24gaXMKKwkJCQkJCQkJICogZXZhbHVhdGVkIGluc2lkZSBxdWVyeSBldmFsdWF0aW9uLiBG b3IKKwkJCQkJCQkJICogZW5zdXJpbmcgb2YgaW1tdXRhYmlsaXR5IG9mIHNlc3Npb24gdmFyaWFi bGUKKwkJCQkJCQkJICogaW5zaWRlIHF1ZXJ5IHdlIHVzZSBzcGVjaWFsIGJ1ZmZlciB3aXRoIGNv cHkKKwkJCQkJCQkJICogb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcy4gVGhpcyBtZXRob2QgaGVs cHMKKwkJCQkJCQkJICogd2l0aCBwYXJhbGxlbCBleGVjdXRpb24gdG9vLgorCQkJCQkJCQkgKi8K KworCQkJCQkJCQkvKiBwYXJhbWV0ZXIgc2FuaXR5IGNoZWNrcyAqLworCQkJCQkJCQlpZiAocGFy YW0tPnBhcmFtaWQgPj0gZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzKQorCQkJCQkJCQkJZWxvZyhF UlJPUiwgInBhcmFtaWQgb2YgUEFSQU1fVkFSSUFCTEUgcGFyYW0gaXMgb3V0IG9mIHJhbmdlIik7 CisKKwkJCQkJCQkJdmFyID0gJmVzX3Nlc3Npb25fdmFyaWFibGVzW3BhcmFtLT5wYXJhbWlkXTsK KworCQkJCQkJCQlpZiAodmFyLT50eXBpZCAhPSBwYXJhbS0+cGFyYW10eXBlKQorCQkJCQkJCQkJ ZWxvZyhFUlJPUiwgInR5cGUgb2YgYnVmZmVyZWQgdmFsdWUgaXMgZGlmZmVyZW50IHRoYW4gUEFS QU1fVkFSSUFCTEUgdHlwZSIpOworCisJCQkJCQkJCS8qCisJCQkJCQkJCSAqIEluIHRoaXMgY2Fz ZSwgcGFzcyB0aGUgdmFsdWUgbGlrZSBhCisJCQkJCQkJCSAqIGNvbnN0YW50LgorCQkJCQkJCQkg Ki8KKwkJCQkJCQkJc2NyYXRjaC5vcGNvZGUgPSBFRU9QX0NPTlNUOworCQkJCQkJCQlzY3JhdGNo LmQuY29uc3R2YWwudmFsdWUgPSB2YXItPnZhbHVlOworCQkJCQkJCQlzY3JhdGNoLmQuY29uc3R2 YWwuaXNudWxsID0gdmFyLT5pc251bGw7CisJCQkJCQkJCUV4cHJFdmFsUHVzaFN0ZXAoc3RhdGUs ICZzY3JhdGNoKTsKKwkJCQkJCQl9CisJCQkJCQkJZWxzZQorCQkJCQkJCXsKKwkJCQkJCQkJQWNs UmVzdWx0CWFjbHJlc3VsdDsKKwkJCQkJCQkJT2lkCQkJdmFyaWQgPSBwYXJhbS0+cGFyYW12YXJp ZDsKKwkJCQkJCQkJT2lkCQkJdmFydHlwZSA9IHBhcmFtLT5wYXJhbXR5cGU7CisKKwkJCQkJCQkJ QXNzZXJ0KCFJc1BhcmFsbGVsV29ya2VyKCkpOworCisJCQkJCQkJCS8qCisJCQkJCQkJCSAqIElu IHNvbWUgY2FzZXMgKHBscGdzcWwncyBzaW1wbGUgZXhwcmVzc2lvbgorCQkJCQkJCQkgKiBldmFs dWF0aW9uIG9yIGV2YWx1YXRpb24gb2YgQ0FMTCBhcmd1bWVudHMpLAorCQkJCQkJCQkgKiB0aGUg ZXhwcmVzc2lvbiBleGVjdXRvciBpcyBjYWxsZWQgZGlyZWN0bHkuCisJCQkJCQkJCSAqIFdlIGNh biBhbGxvdyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24KKwkJCQkJCQkJICogdmFyaWFibGVzIChj b3B5IG9ubHkpLCBiZWNhdXNlIHdlIGtub3csIHNvCisJCQkJCQkJCSAqIG91dHNpZGUgaXMgbm90 IGFueSBxdWVyeSAoYW5kIGV4cHJlc3Npb24KKwkJCQkJCQkJICogY2Fubm90IGJlIGV4ZWN1dGVk IHBhcmFsbGVsKS4KKwkJCQkJCQkJICoKKwkJCQkJCQkJICogSW4gdGhpcyBjYXNlIHdlIHNob3Vs ZCB0byBkbyBhY2xjaGVjaywKKwkJCQkJCQkJICogYmVjYXVzZSB1c3VhbCBhY2xjaGVjayBmcm9t CisJCQkJCQkJCSAqIHN0YW5kYXJkX0V4ZWN1dG9yU3RhcnQgaXMgbm90IGV4ZWN1dGVkIGluCisJ CQkJCQkJCSAqIHRoaXMgY2FzZS4gRm9ydHVuYXRlbHkgaXQgaXMganVzdCBvbmNlIHBlcgorCQkJ CQkJCQkgKiB0cmFuc2FjdGlvbi4KKwkJCQkJCQkJICovCisJCQkJCQkJCWFjbHJlc3VsdCA9IG9i amVjdF9hY2xjaGVjayhWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJCQkJCQkJ R2V0VXNlcklkKCksIEFDTF9TRUxFQ1QpOworCQkJCQkJCQlpZiAoYWNscmVzdWx0ICE9IEFDTENI RUNLX09LKQorCQkJCQkJCQkJYWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfVkFSSUFC TEUsCisJCQkJCQkJCQkJCQkgICBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSk7CisK KwkJCQkJCQkJc2NyYXRjaC5vcGNvZGUgPSBFRU9QX1BBUkFNX1ZBUklBQkxFOworCQkJCQkJCQlz Y3JhdGNoLmQudnBhcmFtLnZhcmlkID0gdmFyaWQ7CisJCQkJCQkJCXNjcmF0Y2guZC52cGFyYW0u dmFydHlwZSA9IHZhcnR5cGU7CisJCQkJCQkJCUV4cHJFdmFsUHVzaFN0ZXAoc3RhdGUsICZzY3Jh dGNoKTsKKwkJCQkJCQl9CiAJCQkJCQl9CiAJCQkJCQlicmVhazsKIApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHBySW50ZXJwLmMKaW5kZXggNjBkY2JjYmU1OS4uYTc3YmVmODgyNyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYworKysgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCkBAIC01OSw2ICs1OSw3IEBACiAjaW5jbHVkZSAi YWNjZXNzL2hlYXB0b2FzdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL3NlcXVlbmNlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNFeHByLmgiCiAjaW5jbHVkZSAiZXhlY3V0 b3Ivbm9kZVN1YnBsYW4uaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC01MTIsNiArNTEzLDcg QEAgRXhlY0ludGVycEV4cHIoRXhwclN0YXRlICpzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0 LCBib29sICppc251bGwpCiAJCSYmQ0FTRV9FRU9QX1BBUkFNX0VYRUMsCiAJCSYmQ0FTRV9FRU9Q X1BBUkFNX0VYVEVSTiwKIAkJJiZDQVNFX0VFT1BfUEFSQU1fQ0FMTEJBQ0ssCisJCSYmQ0FTRV9F RU9QX1BBUkFNX1ZBUklBQkxFLAogCQkmJkNBU0VfRUVPUF9QQVJBTV9TRVQsCiAJCSYmQ0FTRV9F RU9QX0NBU0VfVEVTVFZBTCwKIAkJJiZDQVNFX0VFT1BfTUFLRV9SRUFET05MWSwKQEAgLTExNjEs NiArMTE2MywyMCBAQCBFeGVjSW50ZXJwRXhwcihFeHByU3RhdGUgKnN0YXRlLCBFeHByQ29udGV4 dCAqZWNvbnRleHQsIGJvb2wgKmlzbnVsbCkKIAkJCUVFT19ORVhUKCk7CiAJCX0KIAorCQlFRU9f Q0FTRShFRU9QX1BBUkFNX1ZBUklBQkxFKQorCQl7CisJCQkvKgorCQkJICogRGlyZWN0IGFjY2Vz cyB0byBzZXNzaW9uIHZhcmlhYmxlICh3aXRob3V0IGJ1ZmZlcmluZykuIEJlY2F1c2UKKwkJCSAq IHJldHVybmVkIHZhbHVlIGNhbiBiZSB1c2VkICh3aXRob3V0IGFuIGFzc2lnbmVtZW50KSBhZnRl ciB0aGUKKwkJCSAqIHJlZmVyZW5jZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaXMgdXBkYXRlZCwgd2Ug aGF2ZSB0byB1c2UgYW4gY29weQorCQkJICogb2Ygc3RvcmVkIHZhbHVlIGV2ZXJ5IHRpbWUuCisJ CQkgKi8KKwkJCSpvcC0+cmVzdmFsdWUgPSBHZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlwZUNoZWNr KG9wLT5kLnZwYXJhbS52YXJpZCwKKwkJCQkJCQkJCQkJCQkJCW9wLT5yZXNudWxsLAorCQkJCQkJ CQkJCQkJCQkJb3AtPmQudnBhcmFtLnZhcnR5cGUpOworCQkJRUVPX05FWFQoKTsKKwkJfQorCiAJ CUVFT19DQVNFKEVFT1BfUEFSQU1fU0VUKQogCQl7CiAJCQkvKiBvdXQgb2YgbGluZSwgdW5saWtl bHkgdG8gbWF0dGVyIHBlcmZvcm1hbmNlLXdpc2UgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jIGIvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9l eHByLmMKaW5kZXggYzUzM2Y1NTI1NC4uZDQyMWFlODI4ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2 bWppdF9leHByLmMKQEAgLTExMzYsNiArMTEzNiwxMiBAQCBsbHZtX2NvbXBpbGVfZXhwcihFeHBy U3RhdGUgKnN0YXRlKQogCQkJCQlicmVhazsKIAkJCQl9CiAKKwkJCWNhc2UgRUVPUF9QQVJBTV9W QVJJQUJMRToKKwkJCQlidWlsZF9FdmFsWEZ1bmMoYiwgbW9kLCAiRXhlY0V2YWxQYXJhbVZhcmlh YmxlIiwKKwkJCQkJCQkJdl9zdGF0ZSwgb3AsIHZfZWNvbnRleHQpOworCQkJCUxMVk1CdWlsZEJy KGIsIG9wYmxvY2tzW29wbm8gKyAxXSk7CisJCQkJYnJlYWs7CisKIAkJCWNhc2UgRUVPUF9QQVJB TV9TRVQ6CiAJCQkJYnVpbGRfRXZhbFhGdW5jKGIsIG1vZCwgIkV4ZWNFdmFsUGFyYW1TZXQiLAog CQkJCQkJCQl2X3N0YXRlLCBvcCwgdl9lY29udGV4dCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9wYXJzZXIvYW5hbHl6ZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwppbmRleCBm ODI2NGIwYWY5Li5iMjJjMjE3YWY0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTM0NjgsMTQgKzM0 NjgsNiBAQCB0cmFuc2Zvcm1DYWxsU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIENhbGxTdG10ICpz dG10KQogCQkJCQkJCSB0cnVlLAogCQkJCQkJCSBzdG10LT5mdW5jY2FsbC0+bG9jYXRpb24pOwog Ci0JLyoKLQkgKiBUaGUgYXJndW1lbnRzIG9mIENBTEwgc3RhdGVtZW50IGFyZSBldmFsdWF0ZWQg YnkgYSBkaXJlY3QgZXhwcmVzc2lvbgotCSAqIGV4ZWN1dG9yIGNhbGwuICBUaGlzIHBhdGggaXMg dW5zdXBwb3J0ZWQgeWV0LCBzbyBibG9jayBpdC4gIEl0IHdpbGwgYmUKLQkgKiBlbmFibGVkIGxh dGVyLgotCSAqLwotCWlmIChwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcykKLQkJZWxvZyhF UlJPUiwgInNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQiKTsK LQogCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCBub2RlKTsKIAogCWZleHByID0gY2Fz dE5vZGUoRnVuY0V4cHIsIG5vZGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3Iv ZXhlY0V4cHIuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmgKaW5kZXggNTZmYjBk MGFkYi4uYjQxMTNmNmQ2MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4 cHIuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oCkBAIC0xNTYsMTAgKzE1 NiwxMSBAQCB0eXBlZGVmIGVudW0gRXhwckV2YWxPcAogCUVFT1BfQk9PTFRFU1RfSVNfRkFMU0Us CiAJRUVPUF9CT09MVEVTVF9JU19OT1RfRkFMU0UsCiAKLQkvKiBldmFsdWF0ZSBQQVJBTV9FWEVD L0VYVEVSTiBwYXJhbWV0ZXJzICovCisJLyogZXZhbHVhdGUgUEFSQU1fRVhFQy9FWFRFUk4vVkFS SUFCTEUgcGFyYW1ldGVycyAqLwogCUVFT1BfUEFSQU1fRVhFQywKIAlFRU9QX1BBUkFNX0VYVEVS TiwKIAlFRU9QX1BBUkFNX0NBTExCQUNLLAorCUVFT1BfUEFSQU1fVkFSSUFCTEUsCiAJLyogc2V0 IFBBUkFNX0VYRUMgdmFsdWUgKi8KIAlFRU9QX1BBUkFNX1NFVCwKIApAQCAtNDEwLDYgKzQxMSwx MyBAQCB0eXBlZGVmIHN0cnVjdCBFeHByRXZhbFN0ZXAKIAkJCU9pZAkJCXBhcmFtdHlwZTsJLyog T0lEIG9mIHBhcmFtZXRlcidzIGRhdGF0eXBlICovCiAJCX0JCQljcGFyYW07CiAKKwkJLyogZm9y IEVFT1BfUEFSQU1fVkFSSUFCTEUgKi8KKwkJc3RydWN0CisJCXsKKwkJCU9pZAkJCXZhcmlkOwkJ LyogT0lEIG9mIGFzc2lnbmVkIHZhcmlhYmxlICovCisJCQlPaWQJCQl2YXJ0eXBlOwkvKiBPSUQg b2YgcGFyYW1ldGVyJ3MgZGF0YXR5cGUgKi8KKwkJfQkJCXZwYXJhbTsKKwogCQkvKiBmb3IgRUVP UF9DQVNFX1RFU1RWQUwvRE9NQUlOX1RFU1RWQUwgKi8KIAkJc3RydWN0CiAJCXsKQEAgLTgzMiw2 ICs4NDAsOCBAQCBleHRlcm4gdm9pZCBFeGVjRXZhbFBhcmFtU2V0KEV4cHJTdGF0ZSAqc3RhdGUs IEV4cHJFdmFsU3RlcCAqb3AsCiAJCQkJCQkJIEV4cHJDb250ZXh0ICplY29udGV4dCk7CiBleHRl cm4gdm9pZCBFeGVjRXZhbFBhcmFtRXh0ZXJuKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3Rl cCAqb3AsCiAJCQkJCQkJCUV4cHJDb250ZXh0ICplY29udGV4dCk7CitleHRlcm4gdm9pZCBFeGVj RXZhbFBhcmFtVmFyaWFibGUoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKKwkJ CQkJCQkJICBFeHByQ29udGV4dCAqZWNvbnRleHQpOwogZXh0ZXJuIHZvaWQgRXhlY0V2YWxDb2Vy Y2VWaWFJT1NhZmUoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCk7CiBleHRlcm4g dm9pZCBFeGVjRXZhbFNRTFZhbHVlRnVuY3Rpb24oRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxT dGVwICpvcCk7CiBleHRlcm4gdm9pZCBFeGVjRXZhbEN1cnJlbnRPZkV4cHIoRXhwclN0YXRlICpz dGF0ZSwgRXhwckV2YWxTdGVwICpvcCk7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMv ZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9wbHBnc3FsL3Ny Yy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CmluZGV4IGE2NTIzZjdhZmUu LmVjYWM2NGZjZmIgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBn c3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3Rl ZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CkBAIC0yMTEsOCArMjExLDcgQEAgU0VUIFJP TEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOwogLS0gc2hvdWxkIGZhaWwKIFNFTEVDVCB2YXJf cmVhZF9mdW5jKCk7CiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlh YmxlIHBscGdzcWxfc3ZfdmFyMQotQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gInBscGdz cWxfc3ZfdmFyMSIKLVBML3BnU1FMIGZ1bmN0aW9uIHZhcl9yZWFkX2Z1bmMoKSBsaW5lIDMgYXQg UkFJU0UKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiB2YXJfcmVhZF9mdW5jKCkgbGluZSAz IGF0IFJBSVNFCiBTRVQgUk9MRSBUTyBERUZBVUxUOwogU0VUIFJPTEUgVE8gcmVncmVzc192YXJf b3duZXJfcm9sZTsKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgVE8g cmVncmVzc192YXJfcmVhZGVyX3JvbGU7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMv cGxfZXhlYy5jIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwppbmRleCA4YjVkZjFkNWI3 Li5lMzEyMDZlN2Y0IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCisr KyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKQEAgLTgwOTksOCArODA5OSw3IEBAIGV4 ZWNfaXNfc2ltcGxlX3F1ZXJ5KFBMcGdTUUxfZXhwciAqZXhwcikKIAkJcXVlcnktPnNvcnRDbGF1 c2UgfHwKIAkJcXVlcnktPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5LT5saW1pdENvdW50IHx8Ci0J CXF1ZXJ5LT5zZXRPcGVyYXRpb25zIHx8Ci0JCXF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzKQor CQlxdWVyeS0+c2V0T3BlcmF0aW9ucykKIAkJcmV0dXJuIGZhbHNlOwogCiAJLyoKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggNDZjNGU4 NDM5YS4uMGYxNDljNTAxNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTQwNSw4ICs0MDUsNyBAQCBFUlJPUjogIHBlcm1pc3Npb24g ZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKIENPTlRFWFQ6ICBTUUwgZnVuY3Rpb24g InNxbGZ4IiBzdGF0ZW1lbnQgMQogU0VMRUNUIHBscGdzcWxmeCgyMCk7CiBFUlJPUjogIHBlcm1p c3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKLUNPTlRFWFQ6ICBQTC9wZ1NR TCBleHByZXNzaW9uICIkMSArIHZhcjEiCi1QTC9wZ1NRTCBmdW5jdGlvbiBwbHBnc3FsZngoaW50 ZWdlcikgbGluZSAxIGF0IFJFVFVSTgorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHBscGdz cWxmeChpbnRlZ2VyKSBsaW5lIDEgYXQgUkVUVVJOCiAtLSBzaG91bGQgYmUgb2sKIFNFTEVDVCBz cWxmeF9zZCgyMCk7CiAgc3FsZnhfc2QgCkBAIC01NzYsMjcgKzU3NSwyOCBAQCAkJDsKIE5PVElD RTogIHJlc3VsdCBhcnJheTogezEsMiwzLDQsNSw2LDcsOCw5LDEwfQogRFJPUCBWQVJJQUJMRSB2 YXIxOwogRFJPUCBWQVJJQUJMRSB2YXIyOwotLS0gQ0FMTCBzdGF0ZW1lbnQgaXMgbm90IHN1cHBv cnRlZCB5ZXQKLS0tIHJlcXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSBm cm9tIGV4cHJlc3Npb24gZXhlY3V0b3IKKy0tIENBTEwgc3RhdGVtZW50IGlzIHN1cHBvcnRlZAog Q1JFQVRFIFZBUklBQkxFIHYgaW50OworTEVUIHYgPSAxOwogQ1JFQVRFIFBST0NFRFVSRSBwKGFy ZyBpbnQpIEFTICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIGFyZzsgRU5EICQkIExBTkdVQUdF IHBscGdzcWw7Ci0tLSBzaG91bGQgbm90IGNyYXNoIChidXQgaXMgbm90IHN1cHBvcnRlZCB5ZXQp CistLSBzaG91bGQgdG8gd29yawogQ0FMTCBwKHYpOwotRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxl IGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50CitOT1RJQ0U6ICAxCiBETyAkJCBCRUdJTiBD QUxMIHAodik7IEVORCAkJDsKLUVSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNl ZCBhcyBhbiBhcmd1bWVudAotQ09OVEVYVDogIFNRTCBzdGF0ZW1lbnQgIkNBTEwgcCh2KSIKLVBM L3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBDQUxMCitOT1RJQ0U6 ICAxCiBEUk9QIFBST0NFRFVSRSBwKGludCk7CiBEUk9QIFZBUklBQkxFIHY7Ci0tLSBFWEVDVVRF IHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVkIHlldAotLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2Vz cyB0byBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorLS0gRVhFQ1VU RSBzdGF0ZW1lbnQKIENSRUFURSBWQVJJQUJMRSB2IGludDsKIExFVCB2ID0gMjA7CiBQUkVQQVJF IHB0ZXN0KGludCkgQVMgU0VMRUNUICQxOwotLS0gc2hvdWxkIGZhaWwKKy0tIHNob3VsZCBiZSBv awogRVhFQ1VURSBwdGVzdCh2KTsKLUVSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUg dXNlZCBhcyBhbiBhcmd1bWVudAorID9jb2x1bW4/IAorLS0tLS0tLS0tLQorICAgICAgIDIwCiso MSByb3cpCisKIERFQUxMT0NBVEUgcHRlc3Q7CiBEUk9QIFZBUklBQkxFIHY7CiAtLSB0ZXN0IHNl YXJjaCBwYXRoCkBAIC0xNjkxLDggKzE2OTEsNyBAQCAkJDsKIEVSUk9SOiAgc2Vzc2lvbiB2YXJp YWJsZSAicHVibGljLnZhcjEiIGlzIG5vdCB1c2VkIGluc2lkZSB2YXJpYWJsZSBmZW5jZQogREVU QUlMOiAgVGhlcmUgaXMgYSByaXNrIG9mIHVud2FudGVkIHVzYWdlIG9mIHNlc3Npb24gdmFyaWFi bGUuCiBISU5UOiAgVXNlIHZhcmlhYmxlIGZlbmNlICJWQVJJQUJMRSh2YXJuYW1lKSBmb3IgYWNj ZXNzIHRvIHZhcmlhYmxlIi4KLUNPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9uICJ2YXIxIgot UEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSA0IGF0IFJBSVNFCitDT05U RVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSA0IGF0IFJBSVNF CiAtLSBzaG91bGQgYmUgb2sKIFNFTEVDVCBWQVJJQUJMRSh2YXIxKSwgVkFSSUFCTEUodmFyMSk7 CiAgdmFyMSB8IHZhcjEgCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwKaW5kZXggYjQ4MzIyZjUxNS4uOWQyYTdlMDQ0ZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtNDA5LDEzICs0MDksMTQgQEAgJCQ7CiBEUk9QIFZB UklBQkxFIHZhcjE7CiBEUk9QIFZBUklBQkxFIHZhcjI7CiAKLS0tIENBTEwgc3RhdGVtZW50IGlz IG5vdCBzdXBwb3J0ZWQgeWV0Ci0tLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24g dmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCistLSBDQUxMIHN0YXRlbWVudCBpcyBz dXBwb3J0ZWQKIENSRUFURSBWQVJJQUJMRSB2IGludDsKIAorTEVUIHYgPSAxOworCiBDUkVBVEUg UFJPQ0VEVVJFIHAoYXJnIGludCkgQVMgJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgYXJnOyBF TkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKIAotLS0gc2hvdWxkIG5vdCBjcmFzaCAoYnV0IGlzIG5v dCBzdXBwb3J0ZWQgeWV0KQorLS0gc2hvdWxkIHRvIHdvcmsKIENBTEwgcCh2KTsKIAogRE8gJCQg QkVHSU4gQ0FMTCBwKHYpOyBFTkQgJCQ7CkBAIC00MjMsMTMgKzQyNCwxMiBAQCBETyAkJCBCRUdJ TiBDQUxMIHAodik7IEVORCAkJDsKIERST1AgUFJPQ0VEVVJFIHAoaW50KTsKIERST1AgVkFSSUFC TEUgdjsKIAotLS0gRVhFQ1VURSBzdGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRlZCB5ZXQKLS0tIHJl cXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIGV4cHJlc3Npb24g ZXhlY3V0b3IKKy0tIEVYRUNVVEUgc3RhdGVtZW50CiBDUkVBVEUgVkFSSUFCTEUgdiBpbnQ7CiBM RVQgdiA9IDIwOwogUFJFUEFSRSBwdGVzdChpbnQpIEFTIFNFTEVDVCAkMTsKIAotLS0gc2hvdWxk IGZhaWwKKy0tIHNob3VsZCBiZSBvawogRVhFQ1VURSBwdGVzdCh2KTsKIAogREVBTExPQ0FURSBw dGVzdDsKLS0gCjIuNDcuMQoK --000000000000ee56b206299a729a Content-Type: text/x-patch; charset="US-ASCII"; name="v20241219-0015-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Disposition: attachment; filename="v20241219-0015-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4uzyqt57 RnJvbSA1MzFkN2RlMTk1N2Y3MTUxZmMyZmM2NTQ1MGFjODI5NjIwZDBhMDZiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowNTowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTUvMjJdIEltcGxlbWVudGF0aW9uIG9mIE5PVCBOVUxMIGFuZCBJTU1VVEFCTEUgY2xhdXNlcwoK QWxtb3N0IHRyaXZpYWwgcGF0Y2ggLSBwc3FsLCBwZ19kdW1wIHN1cHBvcnQKLS0tCiBkb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMjAgKysrCiBkb2Mvc3Jj L3NnbWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIGRvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAzMiArKystCiBzcmMvYmFj a2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDggKwogc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgIDY5ICsrKysrKystCiBzcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgNDEgKysrLS0KIHNy Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8ICAxOSArKy0KIHNy Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMv YmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAgICAgfCAgMzYgKysrKwogc3Jj L2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBzcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgICAgfCAgMTIgKy0KIHNyYy9p bmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAgNiArCiBzcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAgICAgICAgIHwgIDM2ICsrLS0KIC4uLi9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDE1NSArKysrKysrKysrKysr KysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDEy MiArKysrKysrKysrKysrKwogMTYgZmlsZXMgY2hhbmdlZCwgNTIzIGluc2VydGlvbnMoKyksIDQ2 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIv ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggNDNiODRmZDg5Ni4uODEzNjYwYWNlYiAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwKQEAgLTk4NTEsNiArOTg1MSwyNiBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBs YWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJs ZT4mbAogCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRy eSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52 YXJub3RudWxsPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRydWUgaWYgdGhlIHNlc3Npb24gdmFyaWFibGUgZG9l c24ndCBhbGxvdyBudWxsIHZhbHVlcy4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UuCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmlzaW1tdXRhYmxlPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRy dWUgaWYgdGhlIHZhcmlhYmxlIGlzIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZS1p bW11dGFibGUiPmltbXV0YWJsZTwvbGluaz4gKGNhbm5vdCBiZSBtb2RpZmllZCkuCisgICAgICAg VGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAg PC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk PnZhcmVveGFjdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXI8L3R5cGU+CiAgICAgICAgPHN0 cnVjdGZpZWxkPnZhcnhhY3RlbmRhY3Rpb248L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFyPC90eXBl PgogICAgICAgPC9wYXJhPgogICAgICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cGxwZ3NxbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAppbmRleCBiZmJmZjlhYjc0 Li5lNzA0ZTA1YTk5IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKQEAgLTYwNDQsNyArNjA0NCw4IEBAICQkIExBTkdV QUdFIHBscGdzcWwgU1RSSUNUIElNTVVUQUJMRTsKICAgICAgWW91IGNhbiBjb25zaWRlciB0cmFu c2xhdGluZyBhbiBPcmFjbGUgcGFja2FnZSBpbnRvIGEgc2NoZW1hIGluCiAgICAgIDxwcm9kdWN0 bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4uICBQYWNrYWdlIGZ1bmN0aW9ucyBhbmQgcHJv Y2VkdXJlcwogICAgICB3b3VsZCB0aGVuIGJlY29tZSBmdW5jdGlvbnMgYW5kIHByb2NlZHVyZXMg aW4gdGhhdCBzY2hlbWEsIGFuZCBwYWNrYWdlCi0gICAgIHZhcmlhYmxlcyBjb3VsZCBiZSB0cmFu c2xhdGVkIHRvIHNlc3Npb24gdmFyaWFibGVzIGluIHRoYXQgc2NoZW1hLgorICAgICB2YXJpYWJs ZXMgY291bGQgYmUgdHJhbnNsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxlcyBvciBpbW11dGFibGUg c2Vzc2lvbgorICAgICB2YXJpYWJsZXMgaW4gdGhhdCBzY2hlbWEuCiAgICAgIChzZWUgPHhyZWYg bGlua2VuZD0iZGRsLXNlc3Npb24tdmFyaWFibGVzIi8+KS4KICAgICA8L3BhcmE+CiAgICA8L3Nl Y3QzPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKaW5kZXggNTczOTE1MjgxMS4u MWZlZDk3ZDE1YSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCkBAIC0yNiw4 ICsyNiw4IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAgPHJlZnN5bm9wc2lzZGl2Pgog PHN5bm9wc2lzPgotQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElG IE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFj ZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9y ZXBsYWNlYWJsZT4gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2xs YXRpb248L3JlcGxhY2VhYmxlPiBdCi0gICAgWyBERUZBVUxUIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5kZWZhdWx0X2V4cHI8L3JlcGxhY2VhYmxlPiBdIFsgeyBPTiBDT01NSVQgRFJP UCB8IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCB9IF0KK0NSRUFURSBbIHsgVEVNUE9SQVJZIHwg VEVNUCB9IF0gWyBJTU1VVEFCTEUgXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBDT0xMQVRF IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBd CisgICAgWyBOT1QgTlVMTCBdIFsgREVGQVVMVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT4gXSBbIHsgT04gQ09NTUlUIERST1AgfCBPTiBU UkFOU0FDVElPTiBFTkQgUkVTRVQgfSBdCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+ CiAgPHJlZnNlY3QxPgpAQCAtNjUsNiArNjUsMjIgQEAgQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBU RU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InAK IAogICA8dmFyaWFibGVsaXN0PgogCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFy aWFibGUtaW1tdXRhYmxlIj4KKyAgICA8dGVybT48bGl0ZXJhbD5JTU1VVEFCTEU8L2xpdGVyYWw+ PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgYXNzaWduZWQg dmFsdWUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgY2FuIG5vdCBiZSBjaGFuZ2VkLgorICAgICAg T25seSBpZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBkb2Vzbid0IGhhdmUgYSBkZWZhdWx0IHZhbHVl LCBhIHNpbmdsZQorICAgICAgaW5pdGlhbGl6YXRpb24gaXMgYWxsb3dlZCB1c2luZyB0aGUgPGNv bW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLiBPbmNlCisgICAgICBkb25lLCBubyBmdXJ0aGVy IGNoYW5nZSBpcyBhbGxvd2VkIHVudGlsIGVuZCBvZiB0cmFuc2FjdGlvbgorICAgICAgaWYgdGhl IHNlc3Npb24gdmFyaWFibGUgd2FzIGNyZWF0ZWQgd2l0aCBjbGF1c2UgPGxpdGVyYWw+T04gVFJB TlNBQ1RJT04KKyAgICAgIEVORCBSRVNFVDwvbGl0ZXJhbD4sIG9yIHVudGlsIHJlc2V0IG9mIGFs bCBzZXNzaW9uIHZhcmlhYmxlcyBieQorICAgICAgPGNvbW1hbmQ+RElTQ0FSRCBWQVJJQUJMRVM8 L2NvbW1hbmQ+LCBvciB1bnRpbCByZXNldCBvZiBhbGwgc2Vzc2lvbgorICAgICAgb2JqZWN0cyBi eSBjb21tYW5kIDxjb21tYW5kPkRJU0NBUkQgQUxMPC9jb21tYW5kPi4KKyAgICAgPC9wYXJhPgor ICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeSAg aWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1pZi1ub3QtZXhpc3RzIj4KICAgICA8dGVybT48bGl0ZXJh bD5JRiBOT1QgRVhJU1RTPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC0xMDUs NiArMTIxLDE4IEBAIENSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJ RiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwCiAgICAgPC9saXN0aXRlbT4KICAg IDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFi bGUtbm90LW51bGwiPgorICAgIDx0ZXJtPjxsaXRlcmFsPk5PVCBOVUxMPC9saXRlcmFsPjwvdGVy bT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIDxsaXRlcmFsPk5PVCBO VUxMPC9saXRlcmFsPiBjbGF1c2UgZm9yYmlkcyBzZXR0aW5nIHRoZSBzZXNzaW9uCisgICAgICB2 YXJpYWJsZSB0byBhIG51bGwgdmFsdWUuIEEgc2Vzc2lvbiB2YXJpYWJsZSBjcmVhdGVkIGFzIE5P VCBOVUxMCisgICAgICBzaG91bGQgbm90IHRvIGhhdmUgYSBkZWNsYXJlZCBkZWZhdWx0IHZhbHVl LCBhbmQgaWYgdGhlIHZhcmlhYmxlCisgICAgICBoYXMgbm90IGFzc2lnbmVkIHZhbHVlLCB0aGVu IHRoZSByZWFkaW5nIG9mIHRoaXMgdmFyaWFibGUgZmFpbHMuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNx bC1jcmVhdGV2YXJpYWJsZS1kZWZhdWx0Ij4KICAgICA8dGVybT48bGl0ZXJhbD5ERUZBVUxUIDxy ZXBsYWNlYWJsZT5kZWZhdWx0X2V4cHI8L3JlcGxhY2VhYmxlPjwvbGl0ZXJhbD48L3Rlcm0+CiAg ICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJs ZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCmluZGV4IDM2ZGUxMjU4N2Mu LmYyNjFlM2ZkNzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUu YworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAgLTQwLDYgKzQwLDgg QEAgc3RhdGljIE9iamVjdEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5h bWUsCiAJCQkJCQkJCQkgT2lkIHZhck93bmVyLAogCQkJCQkJCQkJIE9pZCB2YXJDb2xsYXRpb24s CiAJCQkJCQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzLAorCQkJCQkJCQkJIGJvb2wgbm90X251bGws CisJCQkJCQkJCQkgYm9vbCBpc19pbW11dGFibGUsCiAJCQkJCQkJCQkgTm9kZSAqdmFyRGVmZXhw ciwKIAkJCQkJCQkJCSBWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFyWGFjdEVuZEFjdGlvbik7CiAK QEAgLTU1LDYgKzU3LDggQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJ CQkJT2lkIHZhck93bmVyLAogCQkJCU9pZCB2YXJDb2xsYXRpb24sCiAJCQkJYm9vbCBpZl9ub3Rf ZXhpc3RzLAorCQkJCWJvb2wgbm90X251bGwsCisJCQkJYm9vbCBpc19pbW11dGFibGUsCiAJCQkJ Tm9kZSAqdmFyRGVmZXhwciwKIAkJCQlWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFyWGFjdEVuZEFj dGlvbikKIHsKQEAgLTExNyw2ICsxMjEsOCBAQCBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAq dmFyTmFtZSwKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBtb2QgLSAxXSA9IEludDMy R2V0RGF0dW0odmFyVHlwbW9kKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJvd25lciAt IDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJPd25lcik7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFi bGVfdmFyY29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxhdGlvbik7CisJ dmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFybm90bnVsbCAtIDFdID0gQm9vbEdldERhdHVtKG5v dF9udWxsKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJpc2ltbXV0YWJsZSAtIDFdID0g Qm9vbEdldERhdHVtKGlzX2ltbXV0YWJsZSk7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFy eGFjdGVuZGFjdGlvbiAtIDFdID0gQ2hhckdldERhdHVtKHZhclhhY3RFbmRBY3Rpb24pOwogCiAJ aWYgKHZhckRlZmV4cHIpCkBAIC0yNTksNiArMjY1LDggQEAgQ3JlYXRlVmFyaWFibGUoUGFyc2VT dGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAkJCQkJCQkgICB2YXJv d25lciwKIAkJCQkJCQkgICBjb2xsYXRpb24sCiAJCQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0 cywKKwkJCQkJCQkgICBzdG10LT5ub3RfbnVsbCwKKwkJCQkJCQkgICBzdG10LT5pc19pbW11dGFi bGUsCiAJCQkJCQkJICAgY29va2VkX2RlZmF1bHQsCiAJCQkJCQkJICAgc3RtdC0+WGFjdEVuZEFj dGlvbik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFi bGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCA4NjBj YjNiMzQzLi41ZTAyY2I5OTBjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5jCkBAIC05Miw2ICs5Miw5IEBAIHR5cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKIAl2b2lk CSAgICpkb21haW5fY2hlY2tfZXh0cmE7CiAJTG9jYWxUcmFuc2FjdGlvbklkIGRvbWFpbl9jaGVj a19leHRyYV9seGlkOwogCisJYm9vbAkJbm90X251bGw7CisJYm9vbAkJaXNfaW1tdXRhYmxlOwor CiAJYm9vbAkJcmVzZXRfYXRfZW94OwogCiAJLyoKQEAgLTExMCw2ICsxMTMsOSBAQCB0eXBlZGVm IHN0cnVjdCBTVmFyaWFibGVEYXRhCiAJYm9vbAkJaXNfdmFsaWQ7CiAKIAl1aW50MzIJCWhhc2h2 YWx1ZTsJCS8qIHVzZWQgZm9yIHBhaXJpbmcgc2ludmFsIG1lc3NhZ2UgKi8KKworCS8qIHRydWUs IHdoZW4gdGhlIHZhbHVlIGlzIGFscmVhZHkgc2V0LCBhbmQgY2Fubm90IGJlIGNoYW5nZWQgbW9y ZSAqLworCWJvb2wJCXByb3RlY3RfdmFsdWU7CiB9IFNWYXJpYWJsZURhdGE7CiAKIHR5cGVkZWYg U1ZhcmlhYmxlRGF0YSAqU1ZhcmlhYmxlOwpAQCAtNTcxLDYgKzU3NywyMyBAQCBldmFsX2Fzc2ln bl9kZWZleHByKFNWYXJpYWJsZSBzdmFyLCBIZWFwVHVwbGUgdHVwKQogCiAJCQlNZW1vcnlDb250 ZXh0U3dpdGNoVG8ob2xkY3h0KTsKIAkJfQorCQllbHNlCisJCXsKKwkJCS8qCisJCQkgKiBSYWlz ZSBhbiBlcnJvciBpZiB0aGlzIGlzIGEgTk9UIE5VTEwgdmFyaWFibGUgYnV0IHRoZSByZXN1bHQg b2YKKwkJCSAqIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBOVUxMLgorCQkJICovCisJCQlpZiAoc3Zh ci0+bm90X251bGwpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVf TlVMTF9WQUxVRV9OT1RfQUxMT1dFRCksCisJCQkJCQkgZXJybXNnKCJudWxsIHZhbHVlIGlzIG5v dCBhbGxvd2VkIGZvciBOT1QgTlVMTCBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiIsCisJCQkJ CQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uoc3Zh ci0+dmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShzdmFyLT52YXJp ZCkpLAorCQkJCQkJIGVycmRldGFpbCgiVGhlIHJlc3VsdCBvZiBERUZBVUxUIGV4cHJlc3Npb24g aXMgTlVMTC4iKSkpOworCQl9CisKKwkJaWYgKHN2YXItPmlzX2ltbXV0YWJsZSkKKwkJCXN2YXIt PnByb3RlY3RfdmFsdWUgPSB0cnVlOwogCiAJCUZyZWVFeGVjdXRvclN0YXRlKGVzdGF0ZSk7CiAJ fQpAQCAtNjAxLDYgKzYyNCw5IEBAIHNldHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2 YXIsIE9pZCB2YXJpZCwgYm9vbCBpc193cml0ZSkKIAogCWdldF90eXBsZW5ieXZhbChzdmFyLT50 eXBpZCwgJnN2YXItPnR5cGxlbiwgJnN2YXItPnR5cGJ5dmFsKTsKIAorCXN2YXItPm5vdF9udWxs ID0gdmFyZm9ybS0+dmFybm90bnVsbDsKKwlzdmFyLT5pc19pbW11dGFibGUgPSB2YXJmb3JtLT52 YXJpc2ltbXV0YWJsZTsKKwogCXN2YXItPmlzX2RvbWFpbiA9IChnZXRfdHlwdHlwZSh2YXJmb3Jt LT52YXJ0eXBlKSA9PSBUWVBUWVBFX0RPTUFJTik7CiAJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJh ID0gTlVMTDsKIAlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmFfbHhpZCA9IEludmFsaWRMb2NhbFRy YW5zYWN0aW9uSWQ7CkBAIC02MzAsOSArNjU2LDMxIEBAIHNldHVwX3Nlc3Npb25fdmFyaWFibGUo U1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCwgYm9vbCBpc193cml0ZSkKIAlzdmFyLT5oYXNodmFs dWUgPSBHZXRTeXNDYWNoZUhhc2hWYWx1ZTEoVkFSSUFCTEVPSUQsCiAJCQkJCQkJCQkJCU9iamVj dElkR2V0RGF0dW0odmFyaWQpKTsKIAotCWlmICghaXNfd3JpdGUpCisJc3Zhci0+cHJvdGVjdF92 YWx1ZSA9IGZhbHNlOworCisJLyoKKwkgKiBXaGVuIHRoZSB2YXJpYWJsZSBpcyBtYXJrZWQgYXMg SU1NVVRBQkxFLCB3ZSBwcmVmZXIgdG8gZXZhbHVhdGUKKwkgKiBwb3NzaWJsZSBERUZBVUxUIGJl Zm9yZSB3cml0ZSBvcC4gSW4gdGhpcyBjYXNlIHdlIHdhbnQgdG8gcHJvdGVjdAorCSAqIGRlZmF1 bHQgdmFsdWUgYWdhaW5zdCBhbnkgb3ZlcndyaXRlLgorCSAqLworCWlmICghaXNfd3JpdGUgfHwK KwkJc3Zhci0+aXNfaW1tdXRhYmxlKQorCXsKIAkJZXZhbF9hc3NpZ25fZGVmZXhwcihzdmFyLCB0 dXApOwogCisJCS8qCisJCSAqIFJhaXNlIGFuIGVycm9yIGlmIHRoaXMgaXMgYSBOT1QgTlVMTCB2 YXJpYWJsZSB3aXRob3V0IGRlZmF1bHQKKwkJICogZXhwcmVzc2lvbi4KKwkJICovCisJCWlmIChz dmFyLT5pc251bGwgJiYgc3Zhci0+bm90X251bGwpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQko ZXJyY29kZShFUlJDT0RFX05VTExfVkFMVUVfTk9UX0FMTE9XRUQpLAorCQkJCQkgZXJybXNnKCJu dWxsIHZhbHVlIGlzIG5vdCBhbGxvd2VkIGZvciBOT1QgTlVMTCBzZXNzaW9uIHZhcmlhYmxlIFwi JXMuJXNcIiIsCisJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxl X25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFy aWQpKSwKKwkJCQkJIGVycmRldGFpbCgiVGhlIHNlc3Npb24gdmFyaWFibGUgd2FzIG5vdCBpbml0 aWFsaXplZCB5ZXQuIikpKTsKKwl9CisKIAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKIH0KIApAQCAt NjUyLDYgKzcwMCwyMSBAQCBzZXRfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgRGF0 dW0gdmFsdWUsIGJvb2wgaXNudWxsKQogCUFzc2VydChzdmFyKTsKIAlBc3NlcnQoIWlzbnVsbCB8 fCB2YWx1ZSA9PSAoRGF0dW0pIDApOwogCisJaWYgKHN2YXItPnByb3RlY3RfdmFsdWUpCisJCWVy ZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9FUlJPUl9JTl9BU1NJR05NRU5UKSwK KwkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiBpcyBkZWNsYXJlZCBJTU1V VEFCTEUiLAorCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWVzcGFjZShzdmFyLT52YXJpZCkpLAorCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShz dmFyLT52YXJpZCkpKSk7CisKKwkvKiBkb24ndCBhbGxvdyBhc3NpZ25tZW50IG9mIG51bGwgdG8g Tk9UIE5VTEwgdmFyaWFibGUgKi8KKwlpZiAoaXNudWxsICYmIHN2YXItPm5vdF9udWxsKQorCQll cmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfTlVMTF9WQUxVRV9OT1RfQUxMT1dF RCksCisJCQkJIGVycm1zZygibnVsbCB2YWx1ZSBpcyBub3QgYWxsb3dlZCBmb3IgTk9UIE5VTEwg c2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIiLAorCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdl dF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShzdmFyLT52YXJpZCkpLAorCQkJCQkJZ2V0X3Nl c3Npb25fdmFyaWFibGVfbmFtZShzdmFyLT52YXJpZCkpKSk7CisKIAkvKgogCSAqIFVzZSB0eXBi eXZhbCwgdHlwYnlsZW4gZnJvbSBzZXNzaW9uIHZhcmlhYmxlIG9ubHkgd2hlbiB0aGV5IGFyZQog CSAqIHRydXN0d29ydGh5ICh0aGUgaW52YWxpZGF0aW9uIG1lc3NhZ2Ugd2FzIG5vdCBhY2NlcHRl ZCBmb3IgdGhpcwpAQCAtNjkyLDYgKzc1NSwxMCBAQCBzZXRfc2Vzc2lvbl92YXJpYWJsZShTVmFy aWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQogCiAJc3Zhci0+dmFsdWUgPSBu ZXd2YWw7CiAJc3Zhci0+aXNudWxsID0gaXNudWxsOworCisJLyogZG9uJ3QgYWxsb3cgbW9yZSBj aGFuZ2VzIG9mIHZhbHVlIHdoZW4gdmFyaWFibGUgaXMgSU1NVVRBQkxFICovCisJaWYgKHN2YXIt PmlzX2ltbXV0YWJsZSkKKwkJc3Zhci0+cHJvdGVjdF92YWx1ZSA9IHRydWU7CiB9CiAKIC8qCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueQppbmRleCA5M2Y2NjY1NTBkLi4yNmQyMjdmOTJkIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTY2 OCw2ICs2NjgsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAq cmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQkJCWpzb25fb2JqZWN0X2Nv bnN0cnVjdG9yX251bGxfY2xhdXNlX29wdAogCQkJCWpzb25fYXJyYXlfY29uc3RydWN0b3JfbnVs bF9jbGF1c2Vfb3B0CiAKKyV0eXBlIDxib29sZWFuPgkJT3B0Tm90TnVsbCBPcHRJbW11dGFibGUK IAogLyoKICAqIE5vbi1rZXl3b3JkIHRva2VuIHR5cGVzLiAgVGhlc2UgYXJlIGhhcmQtd2lyZWQg aW50byB0aGUgImZsZXgiIGxleGVyLgpAQCAtNTIzMSwyNyArNTIzMiwzMSBAQCBjcmVhdGVfZXh0 ZW5zaW9uX29wdF9pdGVtOgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiBDcmVhdGVTZXNzaW9u VmFyU3RtdDoKLQkJCUNSRUFURSBPcHRUZW1wIFZBUklBQkxFIHF1YWxpZmllZF9uYW1lIG9wdF9h cyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVu ZEFjdGlvbk9wdGlvbgorCQkJQ1JFQVRFIE9wdFRlbXAgT3B0SW1tdXRhYmxlIFZBUklBQkxFIHF1 YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0Tm90TnVs bCBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCiAJCQkJewogCQkJCQlD cmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsK LQkJCQkJJDQtPnJlbHBlcnNpc3RlbmNlID0gJDI7Ci0JCQkJCW4tPnZhcmlhYmxlID0gJDQ7Ci0J CQkJCW4tPnR5cGVOYW1lID0gJDY7Ci0JCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVz ZSAqKSAkNzsKLQkJCQkJbi0+ZGVmZXhwciA9ICQ4OwotCQkJCQluLT5YYWN0RW5kQWN0aW9uID0g JDk7CisJCQkJCSQ1LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOworCQkJCQluLT5pc19pbW11dGFibGUg PSAkMzsKKwkJCQkJbi0+dmFyaWFibGUgPSAkNTsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkNzsKKwkJ CQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ4OworCQkJCQluLT5ub3RfbnVs bCA9ICQ5OworCQkJCQluLT5kZWZleHByID0gJDEwOworCQkJCQluLT5YYWN0RW5kQWN0aW9uID0g JDExOwogCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikg bjsKIAkJCQl9Ci0JCQl8IENSRUFURSBPcHRUZW1wIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBx dWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdFNlc3Np b25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KKwkJCXwgQ1JFQVRFIE9wdFRlbXAgT3B0 SW1tdXRhYmxlIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMg VHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdE5vdE51bGwgT3B0U2Vzc2lvblZhckRlZkV4 cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQg Km4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7Ci0JCQkJCSQ3LT5yZWxwZXJzaXN0 ZW5jZSA9ICQyOwotCQkJCQluLT52YXJpYWJsZSA9ICQ3OwotCQkJCQluLT50eXBlTmFtZSA9ICQ5 OwotCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDEwOwotCQkJCQluLT5k ZWZleHByID0gJDExOwotCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDEyOworCQkJCQkkOC0+cmVs cGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+aXNfaW1tdXRhYmxlID0gJDM7CisJCQkJCW4tPnZh cmlhYmxlID0gJDg7CisJCQkJCW4tPnR5cGVOYW1lID0gJDEwOworCQkJCQluLT5jb2xsQ2xhdXNl ID0gKENvbGxhdGVDbGF1c2UgKikgJDExOworCQkJCQluLT5ub3RfbnVsbCA9ICQxMjsKKwkJCQkJ bi0+ZGVmZXhwciA9ICQxMzsKKwkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxNDsKIAkJCQkJbi0+ aWZfbm90X2V4aXN0cyA9IHRydWU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CkBAIC01 MjcxLDYgKzUyNzYsMTQgQEAgWGFjdEVuZEFjdGlvbk9wdGlvbjogIE9OIENPTU1JVCBEUk9QCQkJ CXsgJCQgPSBWQVJJQUJMRV9YQUNURU5EX0RST1A7IH0KIAkJOwogCiAKK09wdE5vdE51bGw6IE5P VCBOVUxMX1AJCQkJCQkJCXsgJCQgPSB0cnVlOyB9CisJCQl8IC8qIEVNUFRZICovCQkJCQkJCXsg JCQgPSBmYWxzZTsgfQorCQk7CisKK09wdEltbXV0YWJsZTogSU1NVVRBQkxFCQkJCQkJCQl7ICQk ID0gdHJ1ZTsgfQorCQkJfCAvKiBFTVBUWSAqLwkJCQkJCQl7ICQkID0gZmFsc2U7IH0KKwkJOwor CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKiBBTFRFUiBFWFRFTlNJT04gbmFtZSBVUERB VEUgWyBUTyB2ZXJzaW9uIF0KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMg Yi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IGRlMzRkMmFjNzAuLmE0MGUwNzVhZDIg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuYwpAQCAtNTQ0MCw2ICs1NDQwLDggQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUg KmZvdXQpCiAJaW50CQkJaV92YXJ4YWN0ZW5kYWN0aW9uOwogCWludAkJCWlfdmFyb3duZXI7CiAJ aW50CQkJaV92YXJjb2xsYXRpb247CisJaW50CQkJaV92YXJub3RudWxsOworCWludAkJCWlfdmFy aXNpbW11dGFibGU7CiAJaW50CQkJaV92YXJhY2w7CiAJaW50CQkJaV9hY2xkZWZhdWx0OwogCWlu dAkJCWksCkBAIC01NDYyLDYgKzU0NjQsOCBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkK IAkJCQkJICAiICAgICAgICAgICAgVEhFTiB2LnZhcmNvbGxhdGlvblxuIgogCQkJCQkgICIgICAg ICAgICAgICBFTFNFIDBcbiIKIAkJCQkJICAiICAgICAgIEVORCBBUyB2YXJjb2xsYXRpb24sXG4i CisJCQkJCSAgIiAgICAgICB2LnZhcm5vdG51bGwsXG4iCisJCQkJCSAgIiAgICAgICB2LnZhcmlz aW1tdXRhYmxlLFxuIgogCQkJCQkgICIgICAgICAgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcih2LnZh cmRlZmV4cHIsMCkgYXMgdmFyZGVmZXhwcixcbiIKIAkJCQkJICAiICAgICAgIHYudmFyb3duZXIs IHYudmFyYWNsLFxuIgogCQkJCQkgICIgICAgICAgYWNsZGVmYXVsdCgnVicsIHYudmFyb3duZXIp IEFTIGFjbGRlZmF1bHRcbiIKQEAgLTU0ODIsNiArNTQ4Niw4IEBAIGdldFZhcmlhYmxlcyhBcmNo aXZlICpmb3V0KQogCWlfdmFyZGVmZXhwciA9IFBRZm51bWJlcihyZXMsICJ2YXJkZWZleHByIik7 CiAJaV92YXJ4YWN0ZW5kYWN0aW9uID0gUFFmbnVtYmVyKHJlcywgInZhcnhhY3RlbmRhY3Rpb24i KTsKIAlpX3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRpb24iKTsKKwlp X3Zhcm5vdG51bGwgPSBQUWZudW1iZXIocmVzLCAidmFybm90bnVsbCIpOworCWlfdmFyaXNpbW11 dGFibGUgPSBQUWZudW1iZXIocmVzLCAidmFyaXNpbW11dGFibGUiKTsKIAogCWlfdmFyb3duZXIg PSBQUWZudW1iZXIocmVzLCAidmFyb3duZXIiKTsKIAlpX3ZhcmFjbCA9IFBRZm51bWJlcihyZXMs ICJ2YXJhY2wiKTsKQEAgLTU1MDgsNiArNTUxNCw4IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpm b3V0KQogCQkJcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcnhhY3RlbmRhY3Rpb24p KTsKIAogCQl2YXJpbmZvW2ldLnZhcmNvbGxhdGlvbiA9IGF0b29pZChQUWdldHZhbHVlKHJlcywg aSwgaV92YXJjb2xsYXRpb24pKTsKKwkJdmFyaW5mb1tpXS52YXJub3RudWxsID0gKihQUWdldHZh bHVlKHJlcywgaSwgaV92YXJub3RudWxsKSkgPT0gJ3QnOworCQl2YXJpbmZvW2ldLnZhcmlzaW1t dXRhYmxlID0gKihQUWdldHZhbHVlKHJlcywgaSwgaV92YXJpc2ltbXV0YWJsZSkpID09ICd0JzsK IAogCQl2YXJpbmZvW2ldLmRhY2wuYWNsID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBp X3ZhcmFjbCkpOwogCQl2YXJpbmZvW2ldLmRhY2wuYWNsZGVmYXVsdCA9IHBnX3N0cmR1cChQUWdl dHZhbHVlKHJlcywgaSwgaV9hY2xkZWZhdWx0KSk7CkBAIC01NTU0LDcgKzU1NjIsOSBAQCBkdW1w VmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCWNv bnN0IGNoYXIgKnZhcnR5cG5hbWU7CiAJY29uc3QgY2hhciAqdmFyZGVmZXhwcjsKIAljb25zdCBj aGFyICp2YXJ4YWN0ZW5kYWN0aW9uOworCWNvbnN0IGNoYXIgKnZhcmlzaW1tdXRhYmxlOwogCU9p ZAkJCXZhcmNvbGxhdGlvbjsKKwlib29sCQl2YXJub3RudWxsOwogCiAJLyogc2tpcCBpZiBub3Qg dG8gYmUgZHVtcGVkICovCiAJaWYgKCF2YXJpbmZvLT5kb2JqLmR1bXAgfHwgIWRvcHQtPmR1bXBT Y2hlbWEpCkBAIC01NTY4LDEyICs1NTc4LDE0IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0 LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJdmFyZGVmZXhwciA9IHZhcmluZm8tPnZh cmRlZmV4cHI7CiAJdmFyeGFjdGVuZGFjdGlvbiA9IHZhcmluZm8tPnZhcnhhY3RlbmRhY3Rpb247 CiAJdmFyY29sbGF0aW9uID0gdmFyaW5mby0+dmFyY29sbGF0aW9uOworCXZhcm5vdG51bGwgPSB2 YXJpbmZvLT52YXJub3RudWxsOworCXZhcmlzaW1tdXRhYmxlID0gdmFyaW5mby0+dmFyaXNpbW11 dGFibGUgPyAiSU1NVVRBQkxFICIgOiAiIjsKIAogCWFwcGVuZFBRRXhwQnVmZmVyKGRlbHEsICJE Uk9QIFZBUklBQkxFICVzO1xuIiwKIAkJCQkJICBxdWFsdmFybmFtZSk7CiAKLQlhcHBlbmRQUUV4 cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBWQVJJQUJMRSAlcyBBUyAlcyIsCi0JCQkJCSAgcXVhbHZh cm5hbWUsIHZhcnR5cG5hbWUpOworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFICVz VkFSSUFCTEUgJXMgQVMgJXMiLAorCQkJCQkgIHZhcmlzaW1tdXRhYmxlLCBxdWFsdmFybmFtZSwg dmFydHlwbmFtZSk7CiAKIAlpZiAoT2lkSXNWYWxpZCh2YXJjb2xsYXRpb24pKQogCXsKQEAgLTU1 ODUsNiArNTU5Nyw5IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJs ZUluZm8gKnZhcmluZm8pCiAJCQkJCQkJICBmbXRRdWFsaWZpZWREdW1wYWJsZShjb2xsKSk7CiAJ fQogCisJaWYgKHZhcm5vdG51bGwpCisJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIE5PVCBO VUxMIik7CisKIAlpZiAodmFyZGVmZXhwcikKIAkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIg REVGQVVMVCAlcyIsCiAJCQkJCQkgIHZhcmRlZmV4cHIpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggMDU5MzU1 MzM5ZC4uODkxZThkN2MxMyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAor KysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC03MjUsNiArNzI1LDggQEAgdHlwZWRl ZiBzdHJ1Y3QgX1ZhcmlhYmxlSW5mbwogCWNoYXIJICAgKmluaXRydmFyYWNsOwogCU9pZAkJCXZh cmNvbGxhdGlvbjsKIAljb25zdCBjaGFyICpyb2xuYW1lOwkJLyogbmFtZSBvZiBvd25lciwgb3Ig ZW1wdHkgc3RyaW5nICovCisJYm9vbAkJdmFybm90bnVsbDsKKwlib29sCQl2YXJpc2ltbXV0YWJs ZTsKIH0gVmFyaWFibGVJbmZvOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3Qv MDAyX3BnX2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCBm NThlZGU1MzM0Li40N2NiNTkzNTZlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJf cGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtNDA0 MSw2ICs0MDQxLDQyIEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAogCisJJ0NSRUFURSBJTU1V VEFCTEUgVkFSSUFCTEUgdGVzdF92YXJpYWJsZScgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwK KwkJY2F0Y2hfYWxsICAgID0+ICdDUkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVy ID0+IDYxLAorCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgZHVt cF90ZXN0LnZhcmlhYmxlNSBBUyBpbnRlZ2VyJywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JF QVRFIElNTVVUQUJMRSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU1IEFTIGludGVnZXI7XEUv eG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1 bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQll eGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAg ICA9PiAxLAorCQl9LAorCX0sCisKKwknQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSB0ZXN0X3Zh cmlhYmxlIE5PVCBOVUxMIERFRkFVTFQnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+IDEsCisJCWNh dGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9vcmRlciA9PiA2 MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIGR1bXBfdGVz dC52YXJpYWJsZTcgQVMgaW50ZWdlciBOT1QgTlVMTCBERUZBVUxUIDEwJywKKwkJcmVnZXhwID0+ IHFyL14KKwkJCVxRQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU3 IEFTIGludGVnZXIgTk9UIE5VTEwgREVGQVVMVCAxMDtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQkl ZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2Rh dGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVt YSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwog CSdDUkVBVEUgVklFVyB0ZXN0X3ZpZXcnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDYxLAogCQlj cmVhdGVfc3FsID0+ICdDUkVBVEUgVklFVyBkdW1wX3Rlc3QudGVzdF92aWV3CmRpZmYgLS1naXQg YS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4 IDQ4ZTVlYWVjNDMuLjYyNGU4ZDlhOWUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmli ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC01MjQ4LDcgKzUyNDgsNyBAQCBs aXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlQUUV4cEJ1 ZmZlckRhdGEgYnVmOwogCVBHcmVzdWx0ICAgKnJlczsKIAlwcmludFF1ZXJ5T3B0IG15b3B0ID0g cHNldC5wb3B0OwotCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZX07CisJc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZSwgZmFsc2V9OwogCiAJaWYgKHBzZXQuc3ZlcnNpb24gPCAxODAwMDApCiAJewpAQCAtNTI2OSw2 ICs1MjY5LDggQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJv c2UpCiAJCQkJCSAgIiAgKFNFTEVDVCBjLmNvbGxuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19jb2xs YXRpb24gYywgcGdfY2F0YWxvZy5wZ190eXBlIGJ0XG4iCiAJCQkJCSAgIiAgIFdIRVJFIGMub2lk ID0gdi52YXJjb2xsYXRpb24gQU5EIGJ0Lm9pZCA9IHYudmFydHlwZSBBTkQgdi52YXJjb2xsYXRp b24gPD4gYnQudHlwY29sbGF0aW9uKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxv Zy5wZ19nZXRfdXNlcmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIE5P VCB2LnZhcm5vdG51bGwgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIE5PVCB2LnZhcmlzaW1tdXRh YmxlIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF9leHByKHYudmFy ZGVmZXhwciwgMCkgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIENBU0Ugdi52YXJ4YWN0ZW5kYWN0 aW9uXG4iCiAJCQkJCSAgIiAgICBXSEVOICdkJyBUSEVOICdPTiBDT01NSVQgRFJPUCdcbiIKQEAg LTUyNzksNiArNTI4MSw4IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9v bCB2ZXJib3NlKQogCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpLAogCQkJCQkgIGdldHRleHRf bm9vcCgiQ29sbGF0aW9uIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpLAorCQkJCQkg IGdldHRleHRfbm9vcCgiTnVsbGFibGUiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk11dGFibGUi KSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIkRlZmF1bHQiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3Ao IlRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiIpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4 IDMzOWVjNTI1MzEuLjY4ZjliY2FkZjUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29t cGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTEyNzMs NiArMTI3Myw4IEBAIHN0YXRpYyBjb25zdCBwZ3NxbF90aGluZ190IHdvcmRzX2FmdGVyX2NyZWF0 ZVtdID0gewogCXsiRk9SRUlHTiBUQUJMRSIsIE5VTEwsIE5VTEwsIE5VTEx9LAogCXsiRlVOQ1RJ T04iLCBOVUxMLCBOVUxMLCBRdWVyeV9mb3JfbGlzdF9vZl9mdW5jdGlvbnN9LAogCXsiR1JPVVAi LCBRdWVyeV9mb3JfbGlzdF9vZl9yb2xlc30sCisJeyJJTU1VVEFCTEUgVkFSSUFCTEUiLCBOVUxM LCBOVUxMLCBOVUxMLCBOVUxMLCBUSElOR19OT19EUk9QIHwgVEhJTkdfTk9fQUxURVJ9LCAvKiBm b3IgQ1JFQVRFIElNTVVUQUJMRQorCQkJCQkJCQkJCQkJCQkJCQkJCQkJICogVkFSSUFCTEUgLi4u ICovCiAJeyJJTkRFWCIsIE5VTEwsIE5VTEwsICZRdWVyeV9mb3JfbGlzdF9vZl9pbmRleGVzfSwK IAl7IkxBTkdVQUdFIiwgUXVlcnlfZm9yX2xpc3Rfb2ZfbGFuZ3VhZ2VzfSwKIAl7IkxBUkdFIE9C SkVDVCIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIFRISU5HX05PX0NSRUFURSB8IFRISU5HX05P X0RST1B9LApAQCAtMzYwOCw3ICszNjEwLDggQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBh dHRlcm5faWQsCiAvKiBDUkVBVEUgVEFCTEUgLS0tIGlzIGFsbG93ZWQgaW5zaWRlIENSRUFURSBT Q0hFTUEsIHNvIHVzZSBUYWlsTWF0Y2hlcyAqLwogCS8qIENvbXBsZXRlICJDUkVBVEUgVEVNUC9U RU1QT1JBUlkiIHdpdGggdGhlIHBvc3NpYmxlIHRlbXAgb2JqZWN0cyAqLwogCWVsc2UgaWYgKFRh aWxNYXRjaGVzKCJDUkVBVEUiLCAiVEVNUHxURU1QT1JBUlkiKSkKLQkJQ09NUExFVEVfV0lUSCgi U0VRVUVOQ0UiLCAiVEFCTEUiLCAiVkFSSUFCTEUiLCAiVklFVyIpOworCQlDT01QTEVURV9XSVRI KCJJTU1VVEFCTEUgVkFSSUFCTEUiLCAiU0VRVUVOQ0UiLCAiVEFCTEUiLCAiVkFSSUFCTEUiLAor CQkJCQkgICJWSUVXIik7CiAJLyogQ29tcGxldGUgIkNSRUFURSBVTkxPR0dFRCIgd2l0aCBUQUJM RSBvciBTRVFVRU5DRSAqLwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAiVU5MT0dH RUQiKSkKIAkJQ09NUExFVEVfV0lUSCgiVEFCTEUiLCAiU0VRVUVOQ0UiKTsKQEAgLTM5NjAsNyAr Mzk2Myw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogLyogQ1JFQVRF IFZBUklBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFp bE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMg Ki8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkp IHx8Ci0JCQkgVGFpbE1hdGNoZXMoIlRFTVB8VEVNUE9SQVJZIiwgIlZBUklBQkxFIiwgTWF0Y2hB bnkpKQorCQkJIFRhaWxNYXRjaGVzKCJURU1QfFRFTVBPUkFSWSIsICJWQVJJQUJMRSIsIE1hdGNo QW55KSB8fAorCQkJIFRhaWxNYXRjaGVzKCJJTU1VVEFCTEUiLCAiVkFSSUFCTEUiLCBNYXRjaEFu eSkpCiAJCUNPTVBMRVRFX1dJVEgoIkFTIik7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlZBUklB QkxFIiwgTWF0Y2hBbnksICJBUyIpKQogCQkvKiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5h bWU+IHdpdGggQVMgdHlwZXMgKi8KQEAgLTQ2MjAsNiArNDYyNCwxMCBAQCBtYXRjaF9wcmV2aW91 c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiRlJPTSIsICJT RVJWRVIiLCBNYXRjaEFueSwgIklOVE8iLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIk9Q VElPTlMgKCIpOwogCisvKiBJTU1VVEFCTEUgLS0gY2FuIGJlIGV4cGVuZCB0byBJTU1VVEFCTEUg VkFSSUFCTEUgKi8KKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIklNTVVUQUJMRSIp KQorCQlDT01QTEVURV9XSVRIKCJWQVJJQUJMRSIpOworCiAvKiBJTlNFUlQgLS0tIGNhbiBiZSBp bnNpZGUgRVhQTEFJTiwgUlVMRSwgZXRjICovCiAJLyogQ29tcGxldGUgTk9UIE1BVENIRUQgVEhF TiBJTlNFUlQgKi8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiTk9UIiwgIk1BVENIRUQiLCAiVEhF TiIsICJJTlNFUlQiKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFi bGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAppbmRleCAzNTI4YTk4ZjY3 Li43N2YyYzUzNDc5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxl LmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCkBAIC01Niw2ICs1Niwx MiBAQCBDQVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQogCS8qIHR5 cG1vZCBmb3IgdmFyaWFibGUncyB0eXBlICovCiAJaW50MzIJCXZhcnR5cG1vZCBCS0lfREVGQVVM VCgtMSk7CiAKKwkvKiBkb24ndCBhbGxvdyBOVUxMICovCisJYm9vbAkJdmFybm90bnVsbCBCS0lf REVGQVVMVChmKTsKKworCS8qIGRvbid0IGFsbG93IGNoYW5nZXMgKi8KKwlib29sCQl2YXJpc2lt bXV0YWJsZSBCS0lfREVGQVVMVChmKTsKKwogCS8qIGFjdGlvbiBvbiB0cmFuc2FjdGlvbiBlbmQg Ki8KIAljaGFyCQl2YXJ4YWN0ZW5kYWN0aW9uIEJLSV9ERUZBVUxUKG4pOwogCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmgKaW5kZXggZWRhNmM0ZDMwYi4uNGVjODM0MDZmZCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaApAQCAtMzQ4Nyw2ICszNDg3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU2Vzc2lvblZh clN0bXQKIAlUeXBlTmFtZSAgICp0eXBlTmFtZTsJCS8qIHRoZSB0eXBlIG9mIHZhcmlhYmxlICov CiAJQ29sbGF0ZUNsYXVzZSAqY29sbENsYXVzZTsKIAlib29sCQlpZl9ub3RfZXhpc3RzOwkvKiBk byBub3RoaW5nIGlmIGl0IGFscmVhZHkgZXhpc3RzICovCisJYm9vbAkJbm90X251bGw7CQkvKiBk aXNhbGxvdyBudWxscyAqLworCWJvb2wJCWlzX2ltbXV0YWJsZTsJLyogZG9uJ3QgYWxsb3cgY2hh bmdlcyAqLwogCU5vZGUJICAgKmRlZmV4cHI7CQkvKiBkZWZhdWx0IGV4cHJlc3Npb24gKi8KIAlj aGFyCQlYYWN0RW5kQWN0aW9uOwkvKiBvbiB0cmFuc2FjdGlvbiBlbmQgYWN0aW9uICovCiB9IENy ZWF0ZVNlc3Npb25WYXJTdG10OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXggYmM3 YjYwYTk3ZS4uNzdhN2JmNDVjOCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wc3FsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CkBAIC01 OTM1LDIwICs1OTM1LDIwIEBAIENSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBT RVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwogQ1JFQVRFIFZBUklBQkxFIHZhcjEg QVMgdmFyY2hhciBDT0xMQVRFICJDIjsKIFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJs ZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAg ICAgIE93bmVyICAgICAgICAgIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8 IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8 IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlh YmxlcworIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAg ICAgICAgT3duZXIgICAgICAgICAgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJh bnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAK Ky0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcHVi bGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJp YWJsZV9vd25lciB8IHQgICAgICAgIHwgdCAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBHUkFOVCBTRUxF Q1QgT04gVkFSSUFCTEUgdmFyMSBUTyBQVUJMSUM7CiBDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEg SVMgJ3NvbWUgZGVzY3JpcHRpb24nOwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8 IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBEZWZhdWx0IHwgVHJhbnNhY3Rp b25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAg ICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCi0gcHVibGljIHwgdmFyMSB8 IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8 ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293 bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCi0gICAgICAg IHwgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNz X3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCAg ICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBO dWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwg ICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgICBEZXNj cmlwdGlvbiAgICAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgcHVibGljIHwgdmFy MSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25l ciB8IHQgICAgICAgIHwgdCAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCBz b21lIGRlc2NyaXB0aW9uCisgICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8ICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNzX3ZhcmlhYmxlX293 bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogRFJPUCBWQVJJQUJMRSB2 YXIxOwpAQCAtNjQxNiw5ICs2NDE2LDkgQEAgTGlzdCBvZiBzY2hlbWFzCiAoMCByb3dzKQogCiBc ZFYgIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVy IHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSst LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2 YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgTnVs bGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0t LS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0t IGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpAQCAtNjU5MSw5 ICs2NTkxLDkgQEAgaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1l cyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guaW5zdGEKIFxkeSAibm8uc3VjaC5zY2hlbWEi LiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1h bnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2Vy IgogXGRWICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlw ZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlv biAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENv bGxhdGlvbiB8IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5zYWN0 aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBjdXJyZW50IGRhdGFiYXNlIGFu ZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpAQCAtNjczMCw5ICs2NzMwLDkgQEAgTGlz dCBvZiB0ZXh0IHNlYXJjaCB0ZW1wbGF0ZXMKICgwIHJvd3MpCiAKIFxkViByZWdyZXNzaW9uLiJu by5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxh dGlvbiB8IE93bmVyIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKLS0tLS0t LS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8 IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5k IGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICgw IHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgZGF0YWJhc2UgYW5kIGRvdHRlZCBz Y2hlbWEgcXVhbGlmaWNhdGlvbnMuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vz c2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDE3NjUwMTAyYjEuLjQ2YzRlODQzOWEgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0xMTYs MTEgKzExNiwxMSBAQCBTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwogQ1JFQVRF IFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50OwogU0VUIFJPTEUgVE8gREVGQVVMVDsKIFxk Visgc3ZhcnRlc3QudmFyMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotICBT Y2hlbWEgIHwgTmFtZSB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAg ICAgIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAg IEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8IERlc2NyaXB0aW9uIAotLS0tLS0t LS0tLSstLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHN2YXJ0ZXN0 IHwgdmFyMSB8IGludGVnZXIgfCAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IAotICAgICAgICAgIHwgICAgICB8ICAgICAg ICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyPXIvcmVncmVzc192 YXJpYWJsZV9vd25lciB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFy aWFibGVzCisgIFNjaGVtYSAgfCBOYW1lIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8ICAgICAgICAg T3duZXIgICAgICAgICAgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rp b25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAg ICAgICAgICAgIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgc3ZhcnRlc3QgfCB2 YXIxIHwgaW50ZWdlciB8ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAg ICAgICB8IHQgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVn cmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgCisgICAgICAg ICAgfCAgICAgIHwgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg IHwgcmVncmVzc192YXJpYWJsZV9yZWFkZXI9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgCiAo MSByb3cpCiAKIERST1AgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMTsKQEAgLTIwNjMsMyArMjA2Mywx NDggQEAgU0VMRUNUIHZhcjE7CiAKIERST1AgVkFSSUFCTEUgdmFyMTsKIERST1AgRlVOQ1RJT04g dmFydGVzdF9meCgpOworLS0gdGVzdCBOT1QgTlVMTAorLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyBpbnQgTk9UIE5VTEw7CistLSBzaG91bGQgdG8gZmFpbAorU0VMRUNU IHZhcjE7CitFUlJPUjogIG51bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5PVCBOVUxMIHNl c3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIgorREVUQUlMOiAgVGhlIHNlc3Npb24gdmFyaWFi bGUgd2FzIG5vdCBpbml0aWFsaXplZCB5ZXQuCistLXNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAx MDsKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK0RST1Ag VkFSSUFCTEUgdmFyMTsKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg aW50IE5PVCBOVUxMIERFRkFVTFQgMDsKKy0tc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2 YXIxIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIx ID0gMTA7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitE SVNDQVJEIFZBUklBQkxFUzsKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IE5VTEw7CitF UlJPUjogIG51bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5PVCBOVUxMIHNlc3Npb24gdmFy aWFibGUgInB1YmxpYy52YXIxIgorRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gdGVzdCBOT1QgTlVM TAorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFydGVzdF9meCgpCitSRVRVUk5TIGludCBB UyAkJAorQkVHSU4KKyAgUkVUVVJOIE5VTEw7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOwor Q1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50IE5PVCBOVUxMIERFRkFVTFQgdmFydGVzdF9meCgp OworLS0gc2hvdWxkIHRvIGZhaWwKK1NFTEVDVCB2YXIxOworRVJST1I6ICBudWxsIHZhbHVlIGlz IG5vdCBhbGxvd2VkIGZvciBOT1QgTlVMTCBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIK K0RFVEFJTDogIFRoZSByZXN1bHQgb2YgREVGQVVMVCBleHByZXNzaW9uIGlzIE5VTEwuCitESVND QVJEIFZBUklBQkxFUzsKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsKK1NFTEVDVCB2 YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK0NSRUFURSBPUiBSRVBMQUNF IEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIFJFVFVS TiAwOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0RJU0NBUkQgVkFSSUFCTEVTOworLS0g c2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAgMAorKDEgcm93 KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIEZVTkNUSU9OIHZhcnRlc3RfZngoKTsKKy0t IHRlc3QgSU1NVVRCTEUKK0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7Cist LSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAgCisoMSBy b3cpCisKKy0tIGZpcnN0IHdyaXRlIHNob3VsZCBvaworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFy MSA9IDEwOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMjA7CitFUlJPUjogIHNlc3Npb24g dmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFCTEUKK0RJU0NBUkQgVkFS SUFCTEVTOworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOworLS0gc2hvdWxkIGZhaWwK K0xFVCB2YXIxID0gMjA7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBp cyBkZWNsYXJlZCBJTU1VVEFCTEUKK0RJU0NBUkQgVkFSSUFCTEVTOworLS0gc2hvdWxkIGJlIG9r CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAgIAorKDEgcm93KQorCistLSBzaG91 bGQgYmUgb2sKK0xFVCB2YXIxID0gTlVMTDsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDIw OworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1N VVRBQkxFCitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIHZh cjEgQVMgaW50IERFRkFVTFQgMTA7CistLSBkb24ndCBhbGxvdyBjaGFuZ2Ugd2hlbiB2YXJpYWJs ZSBoYXMgREVGQVVMVCB2YWx1ZQorLS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gMjA7CitF UlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFC TEUKK0RJU0NBUkQgVkFSSUFCTEVTOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2 YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEg PSAyMDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVk IElNTVVUQUJMRQorRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUg SU1NVVRBQkxFIFZBUklBQkxFIHZhcjEgQVMgSU5UIE5PVCBOVUxMIERFRkFVTFQgMTA7CistLSBz aG91bGQgdG8gZmFpbAorTEVUIHZhcjEgPSAxMDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAi cHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQorTEVUIHZhcjEgPSAyMDsKK0VSUk9S OiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQor LS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEg cm93KQorCistLSBzaG91bGQgdG8gZmFpbAorTEVUIHZhcjEgPSAzMDsKK0VSUk9SOiAgc2Vzc2lv biB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQorRFJPUCBWQVJJ QUJMRSB2YXIxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJp YWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmlu ZGV4IGY5ZGYzNjAzZGUuLmI0ODMyMmY1MTUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNz aW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTE0MDIsMyArMTQwMiwxMjUgQEAgU0VMRUNUIHZhcjE7CiAK IERST1AgVkFSSUFCTEUgdmFyMTsKIERST1AgRlVOQ1RJT04gdmFydGVzdF9meCgpOworCistLSB0 ZXN0IE5PVCBOVUxMCistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGlu dCBOT1QgTlVMTDsKKy0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgdmFyMTsKKworLS1zaG91bGQg YmUgb2sKK0xFVCB2YXIxID0gMTA7CitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIx OworCistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBOT1QgTlVM TCBERUZBVUxUIDA7CisKKy0tc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxk IGJlIG9rCitMRVQgdmFyMSA9IDEwOworU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQgVkFSSUFCTEVT OworCistLSBzaG91bGQgdG8gZmFpbAorTEVUIHZhcjEgPSBOVUxMOworCitEUk9QIFZBUklBQkxF IHZhcjE7CisKKy0tIHRlc3QgTk9UIE5VTEwKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZh cnRlc3RfZngoKQorUkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIFJFVFVSTiBOVUxMOworRU5E OworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50IE5P VCBOVUxMIERFRkFVTFQgdmFydGVzdF9meCgpOworCistLSBzaG91bGQgdG8gZmFpbAorU0VMRUNU IHZhcjE7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIx ID0gMTA7CitTRUxFQ1QgdmFyMTsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFydGVz dF9meCgpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIDA7CitFTkQ7CiskJCBM QU5HVUFHRSBwbHBnc3FsOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxkIGJlIG9r CitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiB2YXJ0 ZXN0X2Z4KCk7CisKKy0tIHRlc3QgSU1NVVRCTEUKK0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUg dmFyMSBBUyBpbnQ7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CistLSBmaXJzdCB3 cml0ZSBzaG91bGQgb2sKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsKKy0tIHNob3Vs ZCBmYWlsCitMRVQgdmFyMSA9IDIwOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxk IGJlIG9rCitMRVQgdmFyMSA9IDEwOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMjA7CisK K0RJU0NBUkQgVkFSSUFCTEVTOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworLS0g c2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IE5VTEw7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEg PSAyMDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCitDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxF IHZhcjEgQVMgaW50IERFRkFVTFQgMTA7CisKKy0tIGRvbid0IGFsbG93IGNoYW5nZSB3aGVuIHZh cmlhYmxlIGhhcyBERUZBVUxUIHZhbHVlCistLSBzaG91bGQgdG8gZmFpbAorTEVUIHZhcjEgPSAy MDsKKworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7 CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOwor CistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdmFyMSBBUyBJTlQg Tk9UIE5VTEwgREVGQVVMVCAxMDsKKworLS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gMTA7 CitMRVQgdmFyMSA9IDIwOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworCistLSBz aG91bGQgdG8gZmFpbAorTEVUIHZhcjEgPSAzMDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOwotLSAK Mi40Ny4xCgo= --000000000000ee56b206299a729a Content-Type: text/x-patch; charset="US-ASCII"; name="v20241219-0013-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Disposition: attachment; filename="v20241219-0013-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4uzyqtx9 RnJvbSAwNTZmYWU1ZjRjMzFmYzA0MWQyMDFkYzM2M2IzZWI0Mzg4MGY4MGZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMjoxMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTMvMjJdIEltcGxlbWVudGF0aW9uIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCBjbGF1c2UKClRo aXMgaXMgc2ltcGxlIHBhdGNoIC0ganVzdCBhZGQgc3BlY2lhbCBmbGFnIHRvIHNlc3Npb24gdmFy aWFibGUgbWVtb3J5IGVudHJ5LgpUaGUgZW50cmllcyB3aXRoIGFjdGl2ZSB0aGlzIGZsYWcgYXJl IHJlbW92ZWQgZnJvbSBzZXNzaW9udmFycyBoYXNoIHRhYmxlCmF0IHRyYW5zYWN0aW9uIGVuZC4g VGhlICJUUkFOU0FDVElPTiBFTkQiIGlzIHN5bm9ueW1zIGZvciAiQ09NTUlUIFJPTExCQUNLIgpi dXQgdGhlICJUUkFOU0FDVElPTiBFTkQiIGlzIG1vcmUgaWxsdXN0cmF0aXZlIGFuZCBsZXNzIGNv bmZ1c2luZyB0aGVuICJDT01NSVQgUk9MTEJBQ0siLgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAzICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAxMyArKysrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgNTEgKysrKysrKysrKysrKysrKysrKwogc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgMTEgKysrKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgMTggKysrKysrKwogc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgIDEgKwogLi4uL2lzb2xhdGlvbi9l eHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgIDQgKy0KIC4uLi9pc29sYXRpb24vc3Bl Y3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICA0ICstCiAuLi4vcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAzNCArKysrKysrKysrKysrCiBzcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyMCArKysrKysrKwogMTMgZmls ZXMgY2hhbmdlZCwgMTU4IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bAppbmRleCA1Yjk1Zjg1MzU0Li5kN2EyMzM0NzMxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtOTg1NSw3 ICs5ODU1LDggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3Vu dCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT4KICAgICAg IDxwYXJhPgogICAgICAgIEFjdGlvbiBwZXJmb3JtZWQgYXQgZW5kIG9mIHRyYW5zYWN0aW9uOgot ICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0gbm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRl cmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLgorICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0g bm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRlcmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLAorICAg ICAgIDxsaXRlcmFsPnI8L2xpdGVyYWw+ID0gcmVzZXQgdGhlIHZhcmlhYmxlIHRvIGl0cyBkZWZh dWx0IHZhbHVlLgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCA4MWZmYmNjM2M2Li5kODEzNjY4YTc3IDEw 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 ZS5jCmluZGV4IDcyYTUxYmQzZjAuLjRkZmI4MmVmMmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k 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 L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBmMWViZTE5YjgyLi4xMjJlM2M1MDVlIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKQEAgLTUyNTksNiArNTI1OSw3IEBAIENyZWF0ZVNlc3Npb25WYXJTdG10OgogICog dHJhbnNhY3Rpb24gZW5kIGxpa2UgdGFibGVzLgogICovCiBYYWN0RW5kQWN0aW9uT3B0aW9uOiAg T04gQ09NTUlUIERST1AJCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfRFJPUDsgfQorCQkJfCBP TiBUUkFOU0FDVElPTiBFTkRfUCBSRVNFVAkJCXsgJCQgPSBWQVJJQUJMRV9YQUNURU5EX1JFU0VU OyB9CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfTk9PUDsg fQogCQk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IGEwYjM5ZDEzZjEuLmMyNGExNjQyZjcgMTAwNjQ0Ci0t 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 Yi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IGU0NjJkMzIyZmQuLmU5NzJhNjk5OTUg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuaApAQCAtNzE3LDYgKzcxNyw3IEBAIHR5cGVkZWYgc3RydWN0IF9WYXJpYWJs ZUluZm8KIAlEdW1wYWJsZUFjbCBkYWNsOwogCU9pZAkJCXZhcnR5cGU7CiAJY2hhcgkgICAqdmFy dHlwbmFtZTsKKwljaGFyCSAgICp2YXJ4YWN0ZW5kYWN0aW9uOwogCWNoYXIJICAgKnZhcmFjbDsK IAljaGFyCSAgICpydmFyYWNsOwogCWNoYXIJICAgKmluaXR2YXJhY2w7CmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9w Z19kdW1wLnBsCmluZGV4IGRkOGMwNTRhNmEuLjQxOWVhMzk3MjcgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9w Z19kdW1wLnBsCkBAIC0zOTg3LDYgKzM5ODcsMjQgQEAgbXkgJXRlc3RzID0gKAogCQl9LAogCX0s CiAKKwknQ1JFQVRFIFZBUklBQkxFIHRlc3RfdmFyaWFibGUgT04gVFJBTlNBQ1RJT04gRU5EIFJF U0VUJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFU RSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9 PiAnQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTIgQVMgaW50ZWdlciBPTiBUUkFO U0FDVElPTiBFTkQgUkVTRVQ7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFZBUklB QkxFIGR1bXBfdGVzdC52YXJpYWJsZTIgQVMgaW50ZWdlciBPTiBUUkFOU0FDVElPTiBFTkQgUkVT RVQ7XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2No ZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7 CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJl bWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKIAknQ1JFQVRFIFZJRVcgdGVzdF92aWV3JyA9PiB7 CiAJCWNyZWF0ZV9vcmRlciA9PiA2MSwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFZJRVcgZHVt cF90ZXN0LnRlc3RfdmlldwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9z cmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBhY2M0NzMzNGViLi40ZTkyNTc0MmFjIDEwMDY0 NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3Jp YmUuYwpAQCAtNTI3MSw2ICs1MjcxLDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0 ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQo di52YXJvd25lcikgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIENBU0Ugdi52YXJ4YWN0ZW5kYWN0 aW9uXG4iCiAJCQkJCSAgIiAgICBXSEVOICdkJyBUSEVOICdPTiBDT01NSVQgRFJPUCdcbiIKKwkJ CQkJICAiICAgIFdIRU4gJ3InIFRIRU4gJ09OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCdcbiIKIAkJ CQkJICAiICBFTkQgYXMgXCIlc1wiXG4iLAogCQkJCQkgIGdldHRleHRfbm9vcCgiU2NoZW1hIiks CiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgK aW5kZXggNjQyYTUyNzMzZi4uMmM1MTk4OWFhNCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 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 ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDRjNTk4OWI1NDEuLmM3YTY4NWRj ZTUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJs ZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMu b3V0CkBAIC0xOTY2LDMgKzE5NjYsMzcgQEAgU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lv bl92YXJpYWJsZXMoKTsKICAgICAgMAogKDEgcm93KQogCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUOworQkVHSU47CisgIExFVCB2YXIxID0gMTAw OworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitDT01N SVQ7CistLSBzaG91bGQgYmUgTlVMTDsKK1NFTEVDVCB2YXIxIElTIE5VTEw7CisgP2NvbHVtbj8g CistLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitCRUdJTjsKKyAgTEVUIHZhcjEgPSAxMDA7Cisg IFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK1JPTExCQUNL OworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxIElTIE5VTEw7CisgP2NvbHVtbj8gCist LS0tLS0tLS0tCisgdAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggMjg4YTM5YzMyMS4uMjA5OGMx ZmRlYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAt MTMzNCwzICsxMzM0LDIzIEBAIENPTU1JVDsKIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Zhcmlh YmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CiAtLSBzaG91bGQgYmUgemVybwogU0VMRUNUIGNv dW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgaW50IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDsKKworQkVHSU47CisgIExFVCB2YXIx ID0gMTAwOworICBTRUxFQ1QgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIE5VTEw7CitT RUxFQ1QgdmFyMSBJUyBOVUxMOworCitCRUdJTjsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVD VCB2YXIxOworUk9MTEJBQ0s7CisKKy0tIHNob3VsZCBiZSBOVUxMCitTRUxFQ1QgdmFyMSBJUyBO VUxMOworCitEUk9QIFZBUklBQkxFIHZhcjE7Ci0tIAoyLjQ3LjEKCg== --000000000000ee56b206299a729a Content-Type: text/x-patch; charset="US-ASCII"; name="v20241219-0012-implementation-of-temporary-session-variables.patch" Content-Disposition: attachment; filename="v20241219-0012-implementation-of-temporary-session-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4uzyqu610 RnJvbSA2ZTMwMDc5NDk1NzZkMzhiYjk5MmRiNTZmNWZhODJiMTE4YzM1YjViIE1vbiBTZXAgMTcg 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 ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMTMwICsrKysrKysrKystCiBzcmMv dGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAgNjYgKysrKysrCiBz cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgIDEgKwogMjMg ZmlsZXMgY2hhbmdlZCwgNTQ5IGluc2VydGlvbnMoKyksIDcwIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dz LnNnbWwKaW5kZXggNmRhMzk1MGQ2Yy4uNWI5NWY4NTM1NCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTk4 NDksNiArOTg0OSwxNiBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9u IGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgPC9wYXJhPjwv ZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD52YXJ4YWN0ZW5kYWN0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2hhcjwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIEFjdGlvbiBwZXJmb3Jt ZWQgYXQgZW5kIG9mIHRyYW5zYWN0aW9uOgorICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0g bm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRlcmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLgorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJjb2xsYXRpb248L3N0cnVjdGZpZWxkPiA8dHlw ZT5vaWQ8L3R5cGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvZGRsLnNnbWwKaW5kZXggOGVhZjQxZTA3NC4uNTkxNmU3ZThmOSAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTM4 NSw5ICs1Mzg1LDkgQEAgU0VMRUNUIGN1cnJlbnRfdXNlcl9pZDsKICAgICA8Y29tbWFuZD5MRVQ8 L2NvbW1hbmQ+IGNvbW1hbmQuICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgbm90IHRyYW5zYWN0aW9u YWw6CiAgICAgYW55IGNoYW5nZXMgbWFkZSB0byB0aGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlh YmxlIGluIGEgdHJhbnNhY3Rpb24gd29uJ3QKICAgICBiZSB1bmRvbmUgaWYgdGhlIHRyYW5zYWN0 aW9uIGlzIHJvbGxlZCBiYWNrIChqdXN0IGxpa2UgdmFyaWFibGVzIGluCi0gICAgcHJvY2VkdXJh bCBsYW5ndWFnZXMpLiAgU2Vzc2lvbiB2YXJpYWJsZXMgdGhlbXNlbHZlcyBhcmUgcGVyc2lzdGVu dCwgYnV0Ci0gICAgdGhlaXIgdmFsdWVzIGFyZSBuZWl0aGVyIHBlcnNpc3RlbnQgbm9yIHNoYXJl ZCAobGlrZSB0aGUgY29udGVudCBvZgotICAgIHRlbXBvcmFyeSB0YWJsZXMpLgorICAgIHByb2Nl ZHVyYWwgbGFuZ3VhZ2VzKS4gIFNlc3Npb24gdmFyaWFibGVzIHRoZW1zZWx2ZXMgY2FuIGJlIHBl cnNpc3RlbnQKKyAgICBvciB0ZW1wb3JhcnksIGJ1dCB0aGVpciB2YWx1ZXMgYXJlIG5laXRoZXIg cGVyc2lzdGVudCBub3Igc2hhcmVkIChsaWtlIHRoZQorICAgIGNvbnRlbnQgb2YgdGVtcG9yYXJ5 IHRhYmxlcykuCiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zh cmlhYmxlLnNnbWwKaW5kZXggZDY4MTQwNDA1NS4uODFmZmJjYzNjNiAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV92YXJpYWJsZS5zZ21sCkBAIC0yNiw3ICsyNiw4IEBAIFBvc3RncmVTUUwgZG9jdW1l bnRhdGlvbgogCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgotQ1JFQVRFIFZBUklBQkxF IFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9y ZXBsYWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5 cGU8L3JlcGxhY2VhYmxlPiBbIENPTExBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KK0NSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9 IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQorICAgIFsgT04gQ09NTUlUIERS T1AgXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgogIDxyZWZzZWN0MT4KQEAgLTEw NCw2ICsxMDUsMTggQEAgQ1JFQVRFIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWIKICAgICA8L2xpc3RpdGVtPgog ICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJp YWJsZS1vbi1jb21taXQtZHJvcCI+CisgICAgPHRlcm0+PGxpdGVyYWw+T04gQ09NTUlUIERST1A8 L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUg PGxpdGVyYWw+T04gQ09NTUlUIERST1A8L2xpdGVyYWw+IGNsYXVzZSBzcGVjaWZpZXMgdGhlIGJl aGF2aW91ciBvZiBhCisgICAgICB0ZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZSBhdCB0cmFuc2Fj dGlvbiBjb21taXQuIFdpdGggdGhpcyBjbGF1c2UsIHRoZQorICAgICAgc2Vzc2lvbiB2YXJpYWJs ZSBpcyBkcm9wcGVkIGF0IGNvbW1pdCB0aW1lLiBUaGUgY2xhdXNlIGlzIG9ubHkgYWxsb3dlZAor ICAgICAgZm9yIHRlbXBvcmFyeSB2YXJpYWJsZXMuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3Rp dGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgPC92YXJpYWJsZWxpc3Q+CiAgPC9yZWZzZWN0 MT4KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCmluZGV4IDNlYmQ3YzQwNDEuLjdlNjZiNzVl NzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3QuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNs dWRlICJjYXRhbG9nL3BnX2VudW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3N0b3JhZ2UuaCIKICNp bmNsdWRlICJjb21tYW5kcy9hc3luYy5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZWNtZHMuaCIKICNpbmNsdWRlICJjb21t YW5kcy90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY29tbW9uL3BnX3BybmcuaCIKQEAgLTIzMTYsNiAr MjMxNyw5IEBAIENvbW1pdFRyYW5zYWN0aW9uKHZvaWQpCiAJICovCiAJc21nckRvUGVuZGluZ1N5 bmNzKHRydWUsIGlzX3BhcmFsbGVsX3dvcmtlcik7CiAKKwkvKiByZW1vdmUgdmFsdWVzIG9mIGRy b3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgZnJvbSBtZW1vcnkgKi8KKwlBdFByZUVPWGFjdF9TZXNz aW9uVmFyaWFibGVzKHRydWUpOworCiAJLyogY2xvc2UgbGFyZ2Ugb2JqZWN0cyBiZWZvcmUgbG93 ZXItbGV2ZWwgY2xlYW51cCAqLwogCUF0RU9YYWN0X0xhcmdlT2JqZWN0KHRydWUpOwogCkBAIC0y OTEyLDYgKzI5MTYsNyBAQCBBYm9ydFRyYW5zYWN0aW9uKHZvaWQpCiAJQXRBYm9ydF9Qb3J0YWxz KCk7CiAJc21nckRvUGVuZGluZ1N5bmNzKGZhbHNlLCBpc19wYXJhbGxlbF93b3JrZXIpOwogCUF0 RU9YYWN0X0xhcmdlT2JqZWN0KGZhbHNlKTsKKwlBdFByZUVPWGFjdF9TZXNzaW9uVmFyaWFibGVz KGZhbHNlKTsKIAlBdEFib3J0X05vdGlmeSgpOwogCUF0RU9YYWN0X1JlbGF0aW9uTWFwKGZhbHNl LCBpc19wYXJhbGxlbF93b3JrZXIpOwogCUF0QWJvcnRfVHdvcGhhc2UoKTsKQEAgLTUxNzcsNiAr NTE4Miw4IEBAIENvbW1pdFN1YlRyYW5zYWN0aW9uKHZvaWQpCiAJQXRFT1N1YlhhY3RfU1BJKHRy dWUsIHMtPnN1YlRyYW5zYWN0aW9uSWQpOwogCUF0RU9TdWJYYWN0X29uX2NvbW1pdF9hY3Rpb25z KHRydWUsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCiAJCQkJCQkJCSAgcy0+cGFyZW50LT5zdWJUcmFu c2FjdGlvbklkKTsKKwlBdEVPU3ViWGFjdF9TZXNzaW9uVmFyaWFibGVzKHRydWUsIHMtPnN1YlRy YW5zYWN0aW9uSWQsCisJCQkJCQkJCSBzLT5wYXJlbnQtPnN1YlRyYW5zYWN0aW9uSWQpOwogCUF0 RU9TdWJYYWN0X05hbWVzcGFjZSh0cnVlLCBzLT5zdWJUcmFuc2FjdGlvbklkLAogCQkJCQkJICBz LT5wYXJlbnQtPnN1YlRyYW5zYWN0aW9uSWQpOwogCUF0RU9TdWJYYWN0X0ZpbGVzKHRydWUsIHMt PnN1YlRyYW5zYWN0aW9uSWQsCkBAIC01MzQyLDYgKzUzNDksOCBAQCBBYm9ydFN1YlRyYW5zYWN0 aW9uKHZvaWQpCiAJCUF0RU9TdWJYYWN0X1NQSShmYWxzZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCk7 CiAJCUF0RU9TdWJYYWN0X29uX2NvbW1pdF9hY3Rpb25zKGZhbHNlLCBzLT5zdWJUcmFuc2FjdGlv bklkLAogCQkJCQkJCQkJICBzLT5wYXJlbnQtPnN1YlRyYW5zYWN0aW9uSWQpOworCQlBdEVPU3Vi WGFjdF9TZXNzaW9uVmFyaWFibGVzKGZhbHNlLCBzLT5zdWJUcmFuc2FjdGlvbklkLAorCQkJCQkJ CQkJIHMtPnBhcmVudC0+c3ViVHJhbnNhY3Rpb25JZCk7CiAJCUF0RU9TdWJYYWN0X05hbWVzcGFj ZShmYWxzZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCwKIAkJCQkJCQkgIHMtPnBhcmVudC0+c3ViVHJh bnNhY3Rpb25JZCk7CiAJCUF0RU9TdWJYYWN0X0ZpbGVzKGZhbHNlLCBzLT5zdWJUcmFuc2FjdGlv bklkLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCmluZGV4IDJmMTc2MjllN2QuLjQ1MjBlZWQ2 ZGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYworKysgYi9z cmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAgLTM2LDcgKzM2LDggQEAgc3RhdGlj IE9iamVjdEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJCQkJ CQkJCQkgaW50MzIgdmFyVHlwbW9kLAogCQkJCQkJCQkJIE9pZCB2YXJPd25lciwKIAkJCQkJCQkJ CSBPaWQgdmFyQ29sbGF0aW9uLAotCQkJCQkJCQkJIGJvb2wgaWZfbm90X2V4aXN0cyk7CisJCQkJ CQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzLAorCQkJCQkJCQkJIFZhcmlhYmxlWGFjdEVuZEFjdGlv biB2YXJYYWN0RW5kQWN0aW9uKTsKIAogCiAvKgpAQCAtNDksNyArNTAsOCBAQCBjcmVhdGVfdmFy aWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQlpbnQzMiB2YXJUeXBtb2QsCiAJCQkJT2lk IHZhck93bmVyLAogCQkJCU9pZCB2YXJDb2xsYXRpb24sCi0JCQkJYm9vbCBpZl9ub3RfZXhpc3Rz KQorCQkJCWJvb2wgaWZfbm90X2V4aXN0cywKKwkJCQlWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFy WGFjdEVuZEFjdGlvbikKIHsKIAlBY2wJCSAgICp2YXJhY2w7CiAJTmFtZURhdGEJdmFybmFtZTsK QEAgLTExMCw2ICsxMTIsNyBAQCBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwK IAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBtb2QgLSAxXSA9IEludDMyR2V0RGF0dW0o dmFyVHlwbW9kKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJvd25lciAtIDFdID0gT2Jq ZWN0SWRHZXREYXR1bSh2YXJPd25lcik7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyY29s bGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxhdGlvbik7CisJdmFsdWVzW0Fu dW1fcGdfdmFyaWFibGVfdmFyeGFjdGVuZGFjdGlvbiAtIDFdID0gQ2hhckdldERhdHVtKHZhclhh Y3RFbmRBY3Rpb24pOwogCiAJdmFyYWNsID0gZ2V0X3VzZXJfZGVmYXVsdF9hY2woT0JKRUNUX1ZB UklBQkxFLCB2YXJPd25lciwKIAkJCQkJCQkJICB2YXJOYW1lc3BhY2UpOwpAQCAtMTgzLDYgKzE4 NiwxMyBAQCBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25W YXJTdG10ICpzdG10KQogCU9pZAkJCXR5cGNvbGxhdGlvbjsKIAlPYmplY3RBZGRyZXNzIHZhcmlh YmxlOwogCisJLyogY2hlY2sgY29uc2lzdGVuY3kgb2YgYXJndW1lbnRzICovCisJaWYgKHN0bXQt PlhhY3RFbmRBY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9EUk9QCisJCSYmIHN0bXQtPnZhcmlh YmxlLT5yZWxwZXJzaXN0ZW5jZSAhPSBSRUxQRVJTSVNURU5DRV9URU1QKQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJ CQkJIGVycm1zZygiT04gQ09NTUlUIERST1AgY2FuIG9ubHkgYmUgdXNlZCBvbiB0ZW1wb3Jhcnkg dmFyaWFibGVzIikpKTsKKwogCW5hbWVzcGFjZWlkID0KIAkJUmFuZ2VWYXJHZXRBbmRDaGVja0Ny ZWF0aW9uTmFtZXNwYWNlKHN0bXQtPnZhcmlhYmxlLCBOb0xvY2ssIE5VTEwpOwogCkBAIC0yMjIs MTEgKzIzMiwxNyBAQCBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNl c3Npb25WYXJTdG10ICpzdG10KQogCQkJCQkJCSAgIHR5cG1vZCwKIAkJCQkJCQkgICB2YXJvd25l ciwKIAkJCQkJCQkgICBjb2xsYXRpb24sCi0JCQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0cyk7 CisJCQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0cywKKwkJCQkJCQkgICBzdG10LT5YYWN0RW5k QWN0aW9uKTsKIAogCWVsb2coREVCVUcxLCAicmVjb3JkIGZvciBzZXNzaW9uIHZhcmlhYmxlIFwi JXNcIiAob2lkOiVkKSB3YXMgY3JlYXRlZCBpbiBwZ192YXJpYWJsZSIsCiAJCSBzdG10LT52YXJp YWJsZS0+cmVsbmFtZSwgdmFyaWFibGUub2JqZWN0SWQpOwogCisJLyogd2Ugd2FudCBTZXNzaW9u VmFyaWFibGVDcmVhdGVQb3N0cHJvY2VzcyB0byBzZWUgdGhlIGNhdGFsb2cgY2hhbmdlcy4gKi8K KwlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOworCisJU2Vzc2lvblZhcmlhYmxlQ3JlYXRlUG9z dHByb2Nlc3ModmFyaWFibGUub2JqZWN0SWQsIHN0bXQtPlhhY3RFbmRBY3Rpb24pOworCiAJcmV0 dXJuIHZhcmlhYmxlOwogfQogCkBAIC0yMzksNiArMjU1LDcgQEAgRHJvcFZhcmlhYmxlQnlJZChP aWQgdmFyaWQpCiB7CiAJUmVsYXRpb24JcmVsOwogCUhlYXBUdXBsZQl0dXA7CisJY2hhcgkJWGFj dEVuZEFjdGlvbjsKIAogCXJlbCA9IHRhYmxlX29wZW4oVmFyaWFibGVSZWxhdGlvbklkLCBSb3dF eGNsdXNpdmVMb2NrKTsKIApAQCAtMjQ3LDYgKzI2NCw4IEBAIERyb3BWYXJpYWJsZUJ5SWQoT2lk IHZhcmlkKQogCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQogCQllbG9nKEVSUk9SLCAiY2Fj aGUgbG9va3VwIGZhaWxlZCBmb3IgdmFyaWFibGUgJXUiLCB2YXJpZCk7CiAKKwlYYWN0RW5kQWN0 aW9uID0gKChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKSktPnZhcnhhY3RlbmRhY3Rp b247CisKIAlDYXRhbG9nVHVwbGVEZWxldGUocmVsLCAmdHVwLT50X3NlbGYpOwogCiAJUmVsZWFz ZVN5c0NhY2hlKHR1cCk7CkBAIC0yNTQsNSArMjczLDUgQEAgRHJvcFZhcmlhYmxlQnlJZChPaWQg dmFyaWQpCiAJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAogCS8qIGRvIHRo ZSBuZWNlc3NhcnkgY2xlYW51cCBpbiBsb2NhbCBtZW1vcnksIGlmIG5lZWRlZCAqLwotCVNlc3Np b25WYXJpYWJsZURyb3BQb3N0cHJvY2Vzcyh2YXJpZCk7CisJU2Vzc2lvblZhcmlhYmxlRHJvcFBv c3Rwcm9jZXNzKHZhcmlkLCBYYWN0RW5kQWN0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuYwppbmRleCBlOGIyMzY4YmQwLi43MmE1MWJkM2YwIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0xNiw2ICsxNiw4IEBACiAKICNpbmNs dWRlICJhY2Nlc3MveGFjdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKKyNp bmNsdWRlICJjYXRhbG9nL2RlcGVuZGVuY3kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFj ZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJl eGVjdXRvci9zcGkuaCIKICNpbmNsdWRlICJleGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIgpA QCAtMzIsNiArMzQsMTkgQEAKICNpbmNsdWRlICJ1dGlscy9zbmFwbWdyLmgiCiAjaW5jbHVkZSAi dXRpbHMvc3lzY2FjaGUuaCIKIAordHlwZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlWEFjdERyb3BJdGVt Cit7CisJT2lkCQkJdmFyaWQ7CQkJLyogdmFyaWQgb2Ygc2Vzc2lvbiB2YXJpYWJsZSAqLworCisJ LyoKKwkgKiBjcmVhdGluZ19zdWJpZCBpcyB0aGUgSUQgb2YgdGhlIGNyZWF0aW5nIHN1YnhhY3Qu IElmIHRoZSBhY3Rpb24gd2FzCisJICogdW5yZWdpc3RlcmVkIGR1cmluZyB0aGUgY3VycmVudCB0 cmFuc2FjdGlvbiwgZGVsZXRpbmdfc3ViaWQgaXMgdGhlIElECisJICogb2YgdGhlIGRlbGV0aW5n IHN1YnhhY3QsIG90aGVyd2lzZSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZC4KKwkgKi8KKwlTdWJU cmFuc2FjdGlvbklkIGNyZWF0aW5nX3N1YmlkOworCVN1YlRyYW5zYWN0aW9uSWQgZGVsZXRpbmdf c3ViaWQ7Cit9IFNWYXJpYWJsZVhBY3REcm9wSXRlbTsKKwogLyoKICAqIFRoZSBzZXNzaW9uIHZh cmlhYmxlcyB1c2UgZmVuY2UgY29udGV4dCBhbGxvdyB0byBzcGVjaWZ5CiAgKiB0aGUgY29udGV4 dHMgd2hlcmUgdXNpbmcgc2Vzc2lvbiB2YXJpYWJsZSBmZW5jZXMgYXJlIHJlcXVpcmVkLgpAQCAt MTA0LDEzICsxMTksMjEgQEAgc3RhdGljIE1lbW9yeUNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29u dGV4dCA9IE5VTEw7CiBzdGF0aWMgYm9vbCBuZWVkc192YWxpZGF0aW9uID0gZmFsc2U7CiAKIC8q Ci0gKiBUaGUgY29udGVudCBvZiBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdCByZW1v dmVkIGltbWVkaWF0ZWx5LiAgV2UgZG8KLSAqIHRoYXQgaW4gdGhlIG5leHQgdHJhbnNhY3Rpb24g dGhhdCByZWFkcyBvciB3cml0ZXMgYSBzZXNzaW9uIHZhcmlhYmxlLgotICogInZhbGlkYXRlZF9s eGlkIiBzdG9yZXMgdGhlIHRyYW5zYWN0aW9uIHRoYXQgcGVyZm9ybWVkIHNhaWQgdmFsaWRhdGlv biwgc28KLSAqIHRoYXQgd2UgY2FuIGF2b2lkIHJlcGVhdGluZyB0aGUgZWZmb3J0LgorICogVGhl IGNvbnRlbnQgb2YgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QgcmVtb3ZlZCBpbW1l ZGlhdGVseS4gIElmCisgKiBwb3NzaWJsZSwgd2UgZG8gdGhhdCBhdCB0aGUgZW5kIG9mIHRoZSB0 cmFuc2FjdGlvbi4gIEJ1dCB3ZSBjYW5ub3QgZG8gdGhhdAorICogaWYgdGhlIHRyYW5zYWN0aW9u IGFib3J0ZWQsIGJlY2F1c2Ugd2UgbG9zdCBhY2Nlc3MgdG8gdGhlIHN5c3RlbSBjYXRhbG9nLgor ICogSW4gdGhhdCBjYXNlLCB3ZSBjbGVhbiB1cCBpbiB0aGUgbmV4dCB0cmFuc2FjdGlvbiB0aGF0 IHJlYWRzIG9yIHdyaXRlcyBhCisgKiBzZXNzaW9uIHZhcmlhYmxlLiAgInZhbGlkYXRlZF9seGlk IiBzdG9yZXMgdGhlIHRyYW5zYWN0aW9uIHRoYXQgcGVyZm9ybWVkCisgKiBzYWlkIHZhbGlkYXRp b24sIHNvIHRoYXQgd2UgY2FuIGF2b2lkIHJlcGVhdGluZyB0aGUgZWZmb3J0LgogICovCiBzdGF0 aWMgTG9jYWxUcmFuc2FjdGlvbklkIHZhbGlkYXRlZF9seGlkID0gSW52YWxpZExvY2FsVHJhbnNh Y3Rpb25JZDsKIAorLyogbGlzdCBob2xkcyBmaWVsZHMgb2YgU1ZhcmlhYmxlWEFjdERyb3BJdGVt IHR5cGUgKi8KK3N0YXRpYyBMaXN0ICp4YWN0X2Ryb3BfaXRlbXMgPSBOSUw7CisKK3N0YXRpYyB2 b2lkIHJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCk7CitzdGF0 aWMgdm9pZCB1bnJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCk7 CisKIC8qCiAgKiBDYWxsYmFjayBmdW5jdGlvbiBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBpbnZhbGlk YXRpb24uCiAgKi8KQEAgLTE0NywxNiArMTcwLDQ1IEBAIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxi YWNrKERhdHVtIGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCiAJfQogfQogCisv KgorICogRG8gdGhlIG5lY2Vzc2FyeSB3b3JrIHRvIHNldHVwIGxvY2FsIG1lbW9yeSBtYW5hZ2Vt ZW50IG9mIGEgbmV3CisgKiB2YXJpYWJsZS4KKyAqCisgKiBDYWxsZXIgc2hvdWxkIGFscmVhZHkg aGF2ZSBjcmVhdGVkIHRoZSBuZWNlc3NhcnkgZW50cnkgaW4gY2F0YWxvZworICogYW5kIG1hZGUg dGhlbSB2aXNpYmxlLgorICovCit2b2lkCitTZXNzaW9uVmFyaWFibGVDcmVhdGVQb3N0cHJvY2Vz cyhPaWQgdmFyaWQsIGNoYXIgWGFjdEVuZEFjdGlvbikKK3sKKwkvKgorCSAqIEZvciB0ZW1wb3Jh cnkgdmFyaWFibGVzLCB3ZSBuZWVkIHRvIGNyZWF0ZSBhIG5ldyBlbmQgb2YgeGFjdCBhY3Rpb24g dG8KKwkgKiBlbnN1cmUgZGVsZXRpb24gZnJvbSBjYXRhbG9nLgorCSAqLworCWlmIChYYWN0RW5k QWN0aW9uID09IFZBUklBQkxFX1hBQ1RFTkRfRFJPUCkKKwl7CisJCUFzc2VydChpc1RlbXBOYW1l c3BhY2UoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSkpOworCisJCXJlZ2lz dGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKHZhcmlkKTsKKwl9Cit9CisKIC8qCiAgKiBI YW5kbGUgdGhlIGxvY2FsIG1lbW9yeSBjbGVhbnVwIGZvciBhIERST1AgVkFSSUFCTEUgY29tbWFu ZC4KICAqCiAgKiBDYWxsZXIgc2hvdWxkIHRha2UgY2FyZSBvZiByZW1vdmluZyB0aGUgcGdfdmFy aWFibGUgZW50cnkgZmlyc3QuCiAgKi8KIHZvaWQKLVNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJv Y2VzcyhPaWQgdmFyaWQpCitTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZhcmlk LCBjaGFyIFhhY3RFbmRBY3Rpb24pCiB7CiAJQXNzZXJ0KExvY2FsVHJhbnNhY3Rpb25JZElzVmFs aWQoTXlQcm9jLT52eGlkLmx4aWQpKTsKIAorCWlmIChYYWN0RW5kQWN0aW9uID09IFZBUklBQkxF X1hBQ1RFTkRfRFJPUCkKKwl7CisJCUFzc2VydChpc1RlbXBOYW1lc3BhY2UoZ2V0X3Nlc3Npb25f dmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSkpOworCisJCXVucmVnaXN0ZXJfc2Vzc2lvbl92YXJp YWJsZV94YWN0X2Ryb3AodmFyaWQpOworCX0KKwogCWlmIChzZXNzaW9udmFycykKIAl7CiAJCWJv b2wJCWZvdW5kOwpAQCAtMTc4LDYgKzIzMCw1NyBAQCBTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHBy b2Nlc3MoT2lkIHZhcmlkKQogCX0KIH0KIAorLyoKKyAqIFJlZ2lzdHJhdGlvbiBvZiBhY3Rpb25z IHRvIGJlIGV4ZWN1dGVkIG9uIHNlc3Npb24gdmFyaWFibGVzIGF0IHRyYW5zYWN0aW9uCisgKiBl bmQgdGltZS4gV2Ugd2FudCB0byBkcm9wIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlcyB3aXRo IGNsYXVzZSBPTiBDT01NSVQKKyAqIERST1AuCisgKi8KKworLyoKKyAqIFJlZ2lzdGVyIGEgc2Vz c2lvbiB2YXJpYWJsZSB4YWN0IGFjdGlvbi4KKyAqLworc3RhdGljIHZvaWQKK3JlZ2lzdGVyX3Nl c3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCkKK3sKKwlTVmFyaWFibGVYQWN0RHJv cEl0ZW0gKnhhY3RfYWk7CisJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CisKKwlvbGRjeHQgPSBNZW1v cnlDb250ZXh0U3dpdGNoVG8oQ2FjaGVNZW1vcnlDb250ZXh0KTsKKworCXhhY3RfYWkgPSAoU1Zh cmlhYmxlWEFjdERyb3BJdGVtICopCisJCXBhbGxvYyhzaXplb2YoU1ZhcmlhYmxlWEFjdERyb3BJ dGVtKSk7CisKKwl4YWN0X2FpLT52YXJpZCA9IHZhcmlkOworCisJeGFjdF9haS0+Y3JlYXRpbmdf c3ViaWQgPSBHZXRDdXJyZW50U3ViVHJhbnNhY3Rpb25JZCgpOworCXhhY3RfYWktPmRlbGV0aW5n X3N1YmlkID0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQ7CisKKwl4YWN0X2Ryb3BfaXRlbXMgPSBs Y29ucyh4YWN0X2FpLCB4YWN0X2Ryb3BfaXRlbXMpOworCisJTWVtb3J5Q29udGV4dFN3aXRjaFRv KG9sZGN4dCk7Cit9CisKKy8qCisgKiBVbnJlZ2lzdGVyIGFuIGlkIG9mIGEgZ2l2ZW4gc2Vzc2lv biB2YXJpYWJsZSBmcm9tIGRyb3AgbGlzdC4gSW4gdGhpcworICogbW9tZW50LCB0aGUgYWN0aW9u IGlzIGp1c3QgbWFya2VkIGFzIGRlbGV0ZWQgYnkgc2V0dGluZyBkZWxldGluZ19zdWJpZC4gVGhl CisgKiBjYWxsaW5nIGV2ZW4gbWlnaHQgYmUgcm9sbGJhY2tlZCwgaW4gd2hpY2ggY2FzZSB3ZSBz aG91bGQgbm90IGxvc2UgdGhpcworICogYWN0aW9uLgorICovCitzdGF0aWMgdm9pZAordW5yZWdp c3Rlcl9zZXNzaW9uX3ZhcmlhYmxlX3hhY3RfZHJvcChPaWQgdmFyaWQpCit7CisJTGlzdENlbGwg ICAqbDsKKworCWZvcmVhY2gobCwgeGFjdF9kcm9wX2l0ZW1zKQorCXsKKwkJU1ZhcmlhYmxlWEFj dERyb3BJdGVtICp4YWN0X2FpID0KKwkJCShTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKikgbGZpcnN0 KGwpOworCisJCWlmICh4YWN0X2FpLT52YXJpZCA9PSB2YXJpZCkKKwkJCXhhY3RfYWktPmRlbGV0 aW5nX3N1YmlkID0gR2V0Q3VycmVudFN1YlRyYW5zYWN0aW9uSWQoKTsKKwl9Cit9CisKIC8qCiAg KiBSZWxlYXNlIHN0b3JlZCB2YWx1ZSwgZnJlZSBtZW1vcnkKICAqLwpAQCAtMjMwLDkgKzMzMywx MSBAQCBpc19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKFNWYXJpYWJsZSBzdmFyKQogLyoKICAqIENo ZWNrIGFsbCBwb3RlbnRpYWxseSBpbnZhbGlkIHNlc3Npb24gdmFyaWFibGUgZGF0YSBpbiBsb2Nh bCBtZW1vcnkgYW5kIGZyZWUKICAqIHRoZSBtZW1vcnkgZm9yIGFsbCBpbnZhbGlkIG9uZXMuICBU aGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBiZWZvcmUgYW55IHJlYWQgb3IKLSAqIHdyaXRlIG9mIGEg c2Vzc2lvbiB2YXJpYWJsZS4gIEZyZWVpbmcgb2YgYSB2YXJpYWJsZSdzIG1lbW9yeSBpcyBwb3N0 cG9uZWQgaWYKLSAqIHRoZSB2YXJpYWJsZSBoYXMgYmVlbiBkcm9wcGVkIGJ5IHRoZSBjdXJyZW50 IHRyYW5zYWN0aW9uLCBzaW5jZSB0aGF0Ci0gKiBvcGVyYXRpb24gY291bGQgc3RpbGwgYmUgcm9s bGVkIGJhY2suCisgKiB3cml0ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgb3Igd2hlbiB0aGUgdHJh bnNhY3Rpb24gZW5kcy4gIEF0IHRoZSBlbmQgb2YgYQorICogdHJhbnNhY3Rpb24gKGF0RU9YIGlz IHRydWUpIHdlIGNhbiBkaXNjYXJkIGFsbCBpbnZhbGlkIHZhcmlhYmxlcy4gIEluc2lkZSBhCisg KiB0cmFuc2FjdGlvbiAoYXRFT1ggaXMgZmFsc2UpIHdlIHBvc3Rwb25lIGZyZWVpbmcgYSB2YXJp YWJsZSdzIG1lbW9yeSBpZiB0aGUKKyAqIHZhcmlhYmxlIGhhcyBiZWVuIGRyb3BwZWQgYnkgdGhl IGN1cnJlbnQgdHJhbnNhY3Rpb24sIHNpbmNlIHRoYXQgb3BlcmF0aW9uCisgKiBjb3VsZCBzdGls bCBiZSByb2xsZWQgYmFjay4KICAqCiAgKiBJdCBpcyBwb3NzaWJsZSB0aGF0IHdlIHJlY2VpdmUg YSBjYWNoZSBpbnZhbGlkYXRpb24gbWVzc2FnZSB3aGlsZQogICogcmVtb3ZlX2ludmFsaWRfc2Vz c2lvbl92YXJpYWJsZXMoKSBpcyBleGVjdXRpbmcsIHNvIHdlIGNhbm5vdCBndWFyYW50ZWUgdGhh dApAQCAtMjQwLDcgKzM0NSw3IEBAIGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoU1ZhcmlhYmxl IHN2YXIpCiAgKiBkb25lLiAgSG93ZXZlciwgd2UgY2FuIGd1YXJhbnRlZSB0aGF0IGFsbCBlbnRy aWVzIGdldCBjaGVja2VkIG9uY2UuCiAgKi8KIHN0YXRpYyB2b2lkCi1yZW1vdmVfaW52YWxpZF9z ZXNzaW9uX3ZhcmlhYmxlcyh2b2lkKQorcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMo Ym9vbCBhdEVPWCkKIHsKIAlIQVNIX1NFUV9TVEFUVVMgc3RhdHVzOwogCVNWYXJpYWJsZQlzdmFy OwpAQCAtMjY3LDcgKzM3Miw3IEBAIHJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKHZv aWQpCiAJewogCQlpZiAoIXN2YXItPmlzX3ZhbGlkKQogCQl7Ci0JCQlpZiAoc3Zhci0+ZHJvcF9s eGlkID09IE15UHJvYy0+dnhpZC5seGlkKQorCQkJaWYgKCFhdEVPWCAmJiBzdmFyLT5kcm9wX2x4 aWQgPT0gTXlQcm9jLT52eGlkLmx4aWQpCiAJCQl7CiAJCQkJLyogdHJ5IGFnYWluIGluIHRoZSBu ZXh0IHRyYW5zYWN0aW9uICovCiAJCQkJbmVlZHNfdmFsaWRhdGlvbiA9IHRydWU7CkBAIC0yODgs NiArMzkzLDk1IEBAIHJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKHZvaWQpCiAJfQog fQogCisvKgorICAqIFBlcmZvcm0gT04gQ09NTUlUIERST1AgZm9yIHRlbXBvcmFyeSBzZXNzaW9u IHZhcmlhYmxlcywKKyAgKiBhbmQgcmVtb3ZlIGFsbCBkcm9wcGVkIHZhcmlhYmxlcyBmcm9tIG1l bW9yeS4KKyAqLwordm9pZAorQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29t bWl0KQoreworCWlmIChpc0NvbW1pdCkKKwl7CisJCWlmICh4YWN0X2Ryb3BfaXRlbXMpCisJCXsK KwkJCUxpc3RDZWxsICAgKmw7CisKKwkJCWZvcmVhY2gobCwgeGFjdF9kcm9wX2l0ZW1zKQorCQkJ eworCQkJCVNWYXJpYWJsZVhBY3REcm9wSXRlbSAqeGFjdF9haSA9CisJCQkJCShTVmFyaWFibGVY QWN0RHJvcEl0ZW0gKikgbGZpcnN0KGwpOworCisJCQkJLyogaXRlcmF0ZSBvbmx5IG92ZXIgZW50 cmllcyB0aGF0IGFyZSBzdGlsbCBwZW5kaW5nICovCisJCQkJaWYgKHhhY3RfYWktPmRlbGV0aW5n X3N1YmlkID09IEludmFsaWRTdWJUcmFuc2FjdGlvbklkKQorCQkJCXsKKwkJCQkJT2JqZWN0QWRk cmVzcyBvYmplY3Q7CisKKwkJCQkJb2JqZWN0LmNsYXNzSWQgPSBWYXJpYWJsZVJlbGF0aW9uSWQ7 CisJCQkJCW9iamVjdC5vYmplY3RJZCA9IHhhY3RfYWktPnZhcmlkOworCQkJCQlvYmplY3Qub2Jq ZWN0U3ViSWQgPSAwOworCisJCQkJCS8qCisJCQkJCSAqIFNpbmNlIHRoaXMgaXMgYW4gYXV0b21h dGljIGRyb3AsIHJhdGhlciB0aGFuIG9uZQorCQkJCQkgKiBkaXJlY3RseSBpbml0aWF0ZWQgYnkg dGhlIHVzZXIsIHdlIHBhc3MgdGhlCisJCQkJCSAqIFBFUkZPUk1fREVMRVRJT05fSU5URVJOQUwg ZmxhZy4KKwkJCQkJICovCisJCQkJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSAob2lk OiV1KSB3aWxsIGJlIGRlbGV0ZWQgKGZvcmNlZCBieSBPTiBDT01NSVQgRFJPUCBjbGF1c2UpIiwK KwkJCQkJCSB4YWN0X2FpLT52YXJpZCk7CisKKwkJCQkJcGVyZm9ybURlbGV0aW9uKCZvYmplY3Qs IERST1BfQ0FTQ0FERSwKKwkJCQkJCQkJCVBFUkZPUk1fREVMRVRJT05fSU5URVJOQUwgfAorCQkJ CQkJCQkJUEVSRk9STV9ERUxFVElPTl9RVUlFVExZKTsKKwkJCQl9CisJCQl9CisJCX0KKworCQly ZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyh0cnVlKTsKKwl9CisKKwkvKgorCSAqIFdl IGhhdmUgdG8gY2xlYW4geGFjdF9kcm9wX2l0ZW1zLiBBbGwgcmVsYXRlZCB2YXJpYWJsZXMgYXJl IGRyb3BwZWQKKwkgKiBub3csIG9yIGxvc3QgaW5zaWRlIGFib3J0ZWQgdHJhbnNhY3Rpb24uCisJ ICovCisJbGlzdF9mcmVlX2RlZXAoeGFjdF9kcm9wX2l0ZW1zKTsKKwl4YWN0X2Ryb3BfaXRlbXMg PSBOVUxMOworfQorCisvKgorICogUG9zdC1zdWJjb21taXQgb3IgcG9zdC1zdWJhYm9ydCBjbGVh bnVwIG9mIHhhY3QgZHJvcCBsaXN0LgorICoKKyAqIER1cmluZyBzdWJhYm9ydCwgd2UgY2FuIGlt bWVkaWF0ZWx5IHJlbW92ZSBlbnRyaWVzIGNyZWF0ZWQgZHVyaW5nIHRoaXMKKyAqIHN1YnRyYW5z YWN0aW9uLiBEdXJpbmcgc3ViY29tbWl0LCBqdXN0IHRyYW5zZmVyIGVudHJpZXMgbWFya2VkIGR1 cmluZworICogdGhpcyBzdWJ0cmFuc2FjdGlvbiBhcyBiZWluZyB0aGUgcGFyZW50J3MgcmVzcG9u c2liaWxpdHkuCisgKi8KK3ZvaWQKK0F0RU9TdWJYYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBp c0NvbW1pdCwKKwkJCQkJCQkgU3ViVHJhbnNhY3Rpb25JZCBteVN1YmlkLAorCQkJCQkJCSBTdWJU cmFuc2FjdGlvbklkIHBhcmVudFN1YmlkKQoreworCUxpc3RDZWxsICAgKmN1cl9pdGVtOworCisJ Zm9yZWFjaChjdXJfaXRlbSwgeGFjdF9kcm9wX2l0ZW1zKQorCXsKKwkJU1ZhcmlhYmxlWEFjdERy b3BJdGVtICp4YWN0X2FpID0KKwkJCShTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKikgbGZpcnN0KGN1 cl9pdGVtKTsKKworCQlpZiAoIWlzQ29tbWl0ICYmIHhhY3RfYWktPmNyZWF0aW5nX3N1YmlkID09 IG15U3ViaWQpCisJCXsKKwkJCS8qIGN1cl9pdGVtIG11c3QgYmUgcmVtb3ZlZCAqLworCQkJeGFj dF9kcm9wX2l0ZW1zID0gZm9yZWFjaF9kZWxldGVfY3VycmVudCh4YWN0X2Ryb3BfaXRlbXMsIGN1 cl9pdGVtKTsKKwkJCXBmcmVlKHhhY3RfYWkpOworCQl9CisJCWVsc2UKKwkJeworCQkJLyogY3Vy X2l0ZW0gbXVzdCBiZSBwcmVzZXJ2ZWQgKi8KKwkJCWlmICh4YWN0X2FpLT5jcmVhdGluZ19zdWJp ZCA9PSBteVN1YmlkKQorCQkJCXhhY3RfYWktPmNyZWF0aW5nX3N1YmlkID0gcGFyZW50U3ViaWQ7 CisJCQlpZiAoeGFjdF9haS0+ZGVsZXRpbmdfc3ViaWQgPT0gbXlTdWJpZCkKKwkJCQl4YWN0X2Fp LT5kZWxldGluZ19zdWJpZCA9IGlzQ29tbWl0ID8gcGFyZW50U3ViaWQgOiBJbnZhbGlkU3ViVHJh bnNhY3Rpb25JZDsKKwkJfQorCX0KK30KKwogLyoKICAqIEluaXRpYWxpemUgYXR0cmlidXRlcyBj YWNoZWQgaW4gInN2YXIiCiAgKi8KQEAgLTQ0Niw3ICs2NDAsNyBAQCBnZXRfc2Vzc2lvbl92YXJp YWJsZShPaWQgdmFyaWQpCiAJCXZhbGlkYXRlZF9seGlkICE9IE15UHJvYy0+dnhpZC5seGlkKQog CXsKIAkJLyogZnJlZSB0aGUgbWVtb3J5IGZyb20gZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyAq LwotCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcygpOworCQlyZW1vdmVfaW52YWxp ZF9zZXNzaW9uX3ZhcmlhYmxlcyhmYWxzZSk7CiAKIAkJLyogZG9uJ3QgcmVwZWF0IHRoZSBhYm92 ZSBzdGVwIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uICovCiAJCXZhbGlkYXRlZF9seGlkID0gTXlQ cm9jLT52eGlkLmx4aWQ7CkBAIC01NDIsNyArNzM2LDcgQEAgU2V0U2Vzc2lvblZhcmlhYmxlKE9p ZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQogCQl2YWxpZGF0ZWRfbHhpZCAhPSBN eVByb2MtPnZ4aWQubHhpZCkKIAl7CiAJCS8qIGZyZWUgdGhlIG1lbW9yeSBmcm9tIGRyb3BwZWQg c2Vzc2lvbiB2YXJpYWJsZXMgKi8KLQkJcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMo KTsKKwkJcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoZmFsc2UpOwogCiAJCS8qIGRv bid0IHJlcGVhdCB0aGUgYWJvdmUgc3RlcCBpbiB0aGUgc2FtZSB0cmFuc2FjdGlvbiAqLwogCQl2 YWxpZGF0ZWRfbHhpZCA9IE15UHJvYy0+dnhpZC5seGlkOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdmlldy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmlldy5jCmluZGV4IDJi ZDQ5ZWI1NWUuLmM3MzZjNWM0NmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Zp ZXcuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMKQEAgLTQ4NCw3ICs0ODQsNyBA QCBEZWZpbmVWaWV3KFZpZXdTdG10ICpzdG10LCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywKIAkg Ki8KIAl2aWV3ID0gY29weU9iamVjdChzdG10LT52aWV3KTsJLyogZG9uJ3QgY29ycnVwdCBvcmln aW5hbCBjb21tYW5kICovCiAJaWYgKHZpZXctPnJlbHBlcnNpc3RlbmNlID09IFJFTFBFUlNJU1RF TkNFX1BFUk1BTkVOVAotCQkmJiBpc1F1ZXJ5VXNpbmdUZW1wUmVsYXRpb24odmlld1BhcnNlKSkK KwkJJiYgaXNRdWVyeVVzaW5nVGVtcE9iamVjdCh2aWV3UGFyc2UpKQogCXsKIAkJdmlldy0+cmVs cGVyc2lzdGVuY2UgPSBSRUxQRVJTSVNURU5DRV9URU1QOwogCQllcmVwb3J0KE5PVElDRSwKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgYi9zcmMvYmFja2VuZC9wYXJz ZXIvYW5hbHl6ZS5jCmluZGV4IGQ0YTk5NmJjYzIuLmY4MjY0YjBhZjkgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5 emUuYwpAQCAtMzM4OCwxMCArMzM4OCwxMCBAQCB0cmFuc2Zvcm1DcmVhdGVUYWJsZUFzU3RtdChQ YXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVRhYmxlQXNTdG10ICpzdG10KQogCQkgKiBjcmVhdGlv biBxdWVyeS4gSXQgd291bGQgYmUgaGFyZCB0byByZWZyZXNoIGRhdGEgb3IgaW5jcmVtZW50YWxs eQogCQkgKiBtYWludGFpbiBpdCBpZiBhIHNvdXJjZSBkaXNhcHBlYXJlZC4KIAkJICovCi0JCWlm IChpc1F1ZXJ5VXNpbmdUZW1wUmVsYXRpb24ocXVlcnkpKQorCQlpZiAoaXNRdWVyeVVzaW5nVGVt cE9iamVjdChxdWVyeSkpCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RF X0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJCSBlcnJtc2coIm1hdGVyaWFsaXplZCB2aWV3 cyBtdXN0IG5vdCB1c2UgdGVtcG9yYXJ5IHRhYmxlcyBvciB2aWV3cyIpKSk7CisJCQkJCSBlcnJt c2coIm1hdGVyaWFsaXplZCB2aWV3cyBtdXN0IG5vdCB1c2UgdGVtcG9yYXJ5IHRhYmxlcywgdmll d3Mgb3Igc2Vzc2lvbiB2YXJpYWJsZXMiKSkpOwogCiAJCS8qCiAJCSAqIEEgbWF0ZXJpYWxpemVk IHZpZXcgd291bGQgZWl0aGVyIG5lZWQgdG8gc2F2ZSBwYXJhbWV0ZXJzIGZvciB1c2UgaW4KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CmluZGV4IGRkYjM4ZTMwYjIuLmYxZWJlMTliODIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNDY2 LDYgKzQ2Niw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpy ZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8aXZhbD4JIE9wdFRl bXAKICV0eXBlIDxpdmFsPgkgT3B0Tm9Mb2cKICV0eXBlIDxvbmNvbW1pdD4gT25Db21taXRPcHRp b24KKyV0eXBlIDxpdmFsPgkgWGFjdEVuZEFjdGlvbk9wdGlvbgogCiAldHlwZSA8aXZhbD4JZm9y X2xvY2tpbmdfc3RyZW5ndGgKICV0eXBlIDxub2RlPglmb3JfbG9ja2luZ19pdGVtCkBAIC01MjI5 LDI2ICs1MjMwLDM5IEBAIGNyZWF0ZV9leHRlbnNpb25fb3B0X2l0ZW06CiAgKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCiAKIENyZWF0ZVNlc3Npb25WYXJTdG10OgotCQkJQ1JFQVRFIFZBUklBQkxFIHF1 YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UKKwkJCUNSRUFU RSBPcHRUZW1wIFZBUklBQkxFIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29s bGF0ZV9jbGF1c2UgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lv blZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7Ci0JCQkJCW4tPnZh cmlhYmxlID0gJDM7Ci0JCQkJCW4tPnR5cGVOYW1lID0gJDU7Ci0JCQkJCW4tPmNvbGxDbGF1c2Ug PSAoQ29sbGF0ZUNsYXVzZSAqKSAkNjsKKwkJCQkJJDQtPnJlbHBlcnNpc3RlbmNlID0gJDI7CisJ CQkJCW4tPnZhcmlhYmxlID0gJDQ7CisJCQkJCW4tPnR5cGVOYW1lID0gJDY7CisJCQkJCW4tPmNv bGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkNzsKKwkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9 ICQ4OwogCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikg bjsKIAkJCQl9Ci0JCQl8IENSRUFURSBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVk X25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZQorCQkJfCBDUkVBVEUgT3B0 VGVtcCBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVu YW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBYYWN0RW5kQWN0aW9uT3B0aW9uCiAJCQkJewogCQkJCQlD cmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsK LQkJCQkJbi0+dmFyaWFibGUgPSAkNjsKLQkJCQkJbi0+dHlwZU5hbWUgPSAkODsKLQkJCQkJbi0+ Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ5OworCQkJCQkkNy0+cmVscGVyc2lzdGVu Y2UgPSAkMjsKKwkJCQkJbi0+dmFyaWFibGUgPSAkNzsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkOTsK KwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQxMDsKKwkJCQkJbi0+WGFj dEVuZEFjdGlvbiA9ICQxMTsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IHRydWU7CiAJCQkJCSQk ID0gKE5vZGUgKikgbjsKIAkJCQl9CiAJCTsKIAorLyoKKyAqIFRlbXBvcmFyeSBzZXNzaW9uIHZh cmlhYmxlcyBjYW4gYmUgZHJvcHBlZCBvbiBzdWNjZXNzZnVsCisgKiB0cmFuc2FjdGlvbiBlbmQg bGlrZSB0YWJsZXMuCisgKi8KK1hhY3RFbmRBY3Rpb25PcHRpb246ICBPTiBDT01NSVQgRFJPUAkJ CQl7ICQkID0gVkFSSUFCTEVfWEFDVEVORF9EUk9QOyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCQkJ eyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfTk9PUDsgfQorCQk7CisKKwogLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCiAgKgogICogQUxURVIgRVhURU5TSU9OIG5hbWUgVVBEQVRFIFsgVE8gdmVyc2lvbiBd CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jCmluZGV4IDgwNzViMWI4YTEuLjk1YWUyMTA4 MDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jCkBAIC0xMDEsNyArMTAxLDcgQEAg c3RhdGljIHZvaWQgZXhwYW5kVHVwbGVEZXNjKFR1cGxlRGVzYyB0dXBkZXNjLCBBbGlhcyAqZXJl ZiwKIHN0YXRpYyBpbnQJc3BlY2lhbEF0dE51bShjb25zdCBjaGFyICphdHRuYW1lKTsKIHN0YXRp YyBib29sIHJ0ZV92aXNpYmxlX2lmX2xhdGVyYWwoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSYW5nZVRi bEVudHJ5ICpydGUpOwogc3RhdGljIGJvb2wgcnRlX3Zpc2libGVfaWZfcXVhbGlmaWVkKFBhcnNl U3RhdGUgKnBzdGF0ZSwgUmFuZ2VUYmxFbnRyeSAqcnRlKTsKLXN0YXRpYyBib29sIGlzUXVlcnlV c2luZ1RlbXBSZWxhdGlvbl93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCk7CitzdGF0 aWMgYm9vbCBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0X3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpj b250ZXh0KTsKIAogCiAvKgpAQCAtMzg5NiwxMyArMzg5NiwxMyBAQCBydGVfdmlzaWJsZV9pZl9x dWFsaWZpZWQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBSYW5nZVRibEVudHJ5ICpydGUpCiAgKiB0aGUg cXVlcnkgaXMgYSB0ZW1wb3JhcnkgcmVsYXRpb24gKHRhYmxlLCB2aWV3LCBvciBtYXRlcmlhbGl6 ZWQgdmlldykuCiAgKi8KIGJvb2wKLWlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbihRdWVyeSAqcXVl cnkpCitpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0KFF1ZXJ5ICpxdWVyeSkKIHsKLQlyZXR1cm4gaXNR dWVyeVVzaW5nVGVtcFJlbGF0aW9uX3dhbGtlcigoTm9kZSAqKSBxdWVyeSwgTlVMTCk7CisJcmV0 dXJuIGlzUXVlcnlVc2luZ1RlbXBPYmplY3Rfd2Fsa2VyKChOb2RlICopIHF1ZXJ5LCBOVUxMKTsK IH0KIAogc3RhdGljIGJvb2wKLWlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbl93YWxrZXIoTm9kZSAq bm9kZSwgdm9pZCAqY29udGV4dCkKK2lzUXVlcnlVc2luZ1RlbXBPYmplY3Rfd2Fsa2VyKE5vZGUg Km5vZGUsIHZvaWQgKmNvbnRleHQpCiB7CiAJaWYgKG5vZGUgPT0gTlVMTCkKIAkJcmV0dXJuIGZh bHNlOwpAQCAtMzkyOCwxMyArMzkyOCwyMyBAQCBpc1F1ZXJ5VXNpbmdUZW1wUmVsYXRpb25fd2Fs a2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiAJCX0KIAogCQlyZXR1cm4gcXVlcnlfdHJl ZV93YWxrZXIocXVlcnksCi0JCQkJCQkJCSBpc1F1ZXJ5VXNpbmdUZW1wUmVsYXRpb25fd2Fsa2Vy LAorCQkJCQkJCQkgaXNRdWVyeVVzaW5nVGVtcE9iamVjdF93YWxrZXIsCiAJCQkJCQkJCSBjb250 ZXh0LAogCQkJCQkJCQkgUVRXX0lHTk9SRV9KT0lOQUxJQVNFUyk7CiAJfQorCWVsc2UgaWYgKElz QShub2RlLCBQYXJhbSkpCisJeworCQlQYXJhbQkgICAqcCA9IChQYXJhbSAqKSBub2RlOworCisJ CWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJCXsKKwkJCWlmIChpc0FueVRl bXBOYW1lc3BhY2UoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHAtPnBhcmFtdmFyaWQp KSkKKwkJCQlyZXR1cm4gdHJ1ZTsKKwkJfQorCX0KIAogCXJldHVybiBleHByZXNzaW9uX3RyZWVf d2Fsa2VyKG5vZGUsCi0JCQkJCQkJCSAgaXNRdWVyeVVzaW5nVGVtcFJlbGF0aW9uX3dhbGtlciwK KwkJCQkJCQkJICBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0X3dhbGtlciwKIAkJCQkJCQkJICBjb250 ZXh0KTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuYwppbmRleCA5NmQ1ODU1NzhkLi5hY2M0NzMzNGViIDEwMDY0NAotLS0g YS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpA QCAtNTI0OCw3ICs1MjQ4LDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBi b29sIHZlcmJvc2UpCiAJUFFFeHBCdWZmZXJEYXRhIGJ1ZjsKIAlQR3Jlc3VsdCAgICpyZXM7CiAJ cHJpbnRRdWVyeU9wdCBteW9wdCA9IHBzZXQucG9wdDsKLQlzdGF0aWMgY29uc3QgYm9vbCB0cmFu c2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs c2UsIGZhbHNlfTsKKwlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2Zh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CiAK IAlpZiAocHNldC5zdmVyc2lvbiA8IDE4MDAwMCkKIAl7CkBAIC01MjY4LDEyICs1MjY4LDE2IEBA IGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCQkJCQkg ICIgIHBnX2NhdGFsb2cuZm9ybWF0X3R5cGUodi52YXJ0eXBlLCB2LnZhcnR5cG1vZCkgYXMgXCIl c1wiLFxuIgogCQkJCQkgICIgIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdf Y29sbGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlwZSBidFxuIgogCQkJCQkgICIgICBXSEVSRSBj Lm9pZCA9IHYudmFyY29sbGF0aW9uIEFORCBidC5vaWQgPSB2LnZhcnR5cGUgQU5EIHYudmFyY29s bGF0aW9uIDw+IGJ0LnR5cGNvbGxhdGlvbikgYXMgXCIlc1wiLFxuIgotCQkJCQkgICIgIHBnX2Nh dGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFyb3duZXIpIGFzIFwiJXNcIlxuIiwKKwkJCQkJICAi ICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZCh2LnZhcm93bmVyKSBhcyBcIiVzXCIsXG4iCisJ CQkJCSAgIiAgQ0FTRSB2LnZhcnhhY3RlbmRhY3Rpb25cbiIKKwkJCQkJICAiICAgIFdIRU4gJ2Qn IFRIRU4gJ09OIENPTU1JVCBEUk9QJ1xuIgorCQkJCQkgICIgIEVORCBhcyBcIiVzXCJcbiIsCiAJ CQkJCSAgZ2V0dGV4dF9ub29wKCJTY2hlbWEiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIk5hbWUi KSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlR5cGUiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIkNv bGxhdGlvbiIpLAotCQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSk7CisJCQkJCSAgZ2V0dGV4 dF9ub29wKCJPd25lciIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiVHJhbnNhY3Rpb25hbCBlbmQg YWN0aW9uIikpOwogCiAJaWYgKHZlcmJvc2UpCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4 IGJhZDRjMzBhNzIuLjMzOWVjNTI1MzEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29t cGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTM2MDgs NyArMzYwOCw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogLyogQ1JF QVRFIFRBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFp bE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSAiQ1JFQVRFIFRFTVAvVEVNUE9SQVJZIiB3aXRoIHRo ZSBwb3NzaWJsZSB0ZW1wIG9iamVjdHMgKi8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRF IiwgIlRFTVB8VEVNUE9SQVJZIikpCi0JCUNPTVBMRVRFX1dJVEgoIlNFUVVFTkNFIiwgIlRBQkxF IiwgIlZJRVciKTsKKwkJQ09NUExFVEVfV0lUSCgiU0VRVUVOQ0UiLCAiVEFCTEUiLCAiVkFSSUFC TEUiLCAiVklFVyIpOwogCS8qIENvbXBsZXRlICJDUkVBVEUgVU5MT0dHRUQiIHdpdGggVEFCTEUg b3IgU0VRVUVOQ0UgKi8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlVOTE9HR0VE IikpCiAJCUNPTVBMRVRFX1dJVEgoIlRBQkxFIiwgIlNFUVVFTkNFIik7CkBAIC0zOTU5LDcgKzM5 NTksOCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAl9CiAvKiBDUkVB VEUgVkFSSUFCTEUgLS0tIGlzIGFsbG93ZWQgaW5zaWRlIENSRUFURSBTQ0hFTUEsIHNvIHVzZSBU YWlsTWF0Y2hlcyAqLwogCS8qIENvbXBsZXRlIENSRUFURSBWQVJJQUJMRSA8bmFtZT4gd2l0aCBB UyAqLwotCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAiVkFSSUFCTEUiLCBNYXRjaEFu eSkpCisJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJWQVJJQUJMRSIsIE1hdGNoQW55 KSB8fAorCQkJIFRhaWxNYXRjaGVzKCJURU1QfFRFTVBPUkFSWSIsICJWQVJJQUJMRSIsIE1hdGNo QW55KSkKIAkJQ09NUExFVEVfV0lUSCgiQVMiKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiVkFS SUFCTEUiLCBNYXRjaEFueSwgIkFTIikpCiAJCS8qIENvbXBsZXRlIENSRUFURSBWQVJJQUJMRSA8 bmFtZT4gd2l0aCBBUyB0eXBlcyAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCmluZGV4IGRi NThlNmFjMDEuLjY0MmE1MjczM2YgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf dmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKQEAgLTU2 LDYgKzU2LDkgQEAgQ0FUQUxPRyhwZ192YXJpYWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkK IAkvKiB0eXBtb2QgZm9yIHZhcmlhYmxlJ3MgdHlwZSAqLwogCWludDMyCQl2YXJ0eXBtb2QgQktJ X0RFRkFVTFQoLTEpOwogCisJLyogYWN0aW9uIG9uIHRyYW5zYWN0aW9uIGVuZCAqLworCWNoYXIJ CXZhcnhhY3RlbmRhY3Rpb24gQktJX0RFRkFVTFQobik7CisKIAkvKiB2YXJpYWJsZSBjb2xsYXRp b24gKi8KIAlPaWQJCQl2YXJjb2xsYXRpb24gQktJX0RFRkFVTFQoMCkgQktJX0xPT0tVUF9PUFQo cGdfY29sbGF0aW9uKTsKIApAQCAtNjgsNiArNzEsMTIgQEAgQ0FUQUxPRyhwZ192YXJpYWJsZSw5 MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkKICNlbmRpZgogfSBGb3JtRGF0YV9wZ192YXJpYWJsZTsK IAordHlwZWRlZiBlbnVtIFZhcmlhYmxlWGFjdEVuZEFjdGlvbgoreworCVZBUklBQkxFX1hBQ1RF TkRfTk9PUCA9ICduJywJLyogTk9PUCAqLworCVZBUklBQkxFX1hBQ1RFTkRfRFJPUCA9ICdkJywJ LyogT04gQ09NTUlUIERST1AgKi8KK30JCQlWYXJpYWJsZVhhY3RFbmRBY3Rpb247CisKIC8qIC0t LS0tLS0tLS0tLS0tLS0KICAqCQlGb3JtX3BnX3ZhcmlhYmxlIGNvcnJlc3BvbmRzIHRvIGEgcG9p bnRlciB0byBhIHR1cGxlIHdpdGgKICAqCQl0aGUgZm9ybWF0IG9mIHRoZSBwZ192YXJpYWJsZSBy ZWxhdGlvbi4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFi bGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAppbmRleCA0M2Rj OGY5MzcyLi4xZmI5N2I3ZmUxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5oCkBAIC0yMSw3ICsyMSwxMSBAQAogI2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCiAjaW5jbHVk ZSAidXRpbHMvcXVlcnllbnZpcm9ubWVudC5oIgogCi1leHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFi bGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZhcmlkKTsKK2V4dGVybiB2b2lkIFNlc3Npb25WYXJpYWJs ZUNyZWF0ZVBvc3Rwcm9jZXNzKE9pZCB2YXJpZCwgY2hhciBYYWN0RW5kQWN0aW9uKTsKK2V4dGVy biB2b2lkIFNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQsIGNoYXIgWGFj dEVuZEFjdGlvbik7CitleHRlcm4gdm9pZCBBdFByZUVPWGFjdF9TZXNzaW9uVmFyaWFibGVzKGJv b2wgaXNDb21taXQpOworZXh0ZXJuIHZvaWQgQXRFT1N1YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyhi b29sIGlzQ29tbWl0LCBTdWJUcmFuc2FjdGlvbklkIG15U3ViaWQsCisJCQkJCQkJCQkJIFN1YlRy YW5zYWN0aW9uSWQgcGFyZW50U3ViaWQpOwogCiBleHRlcm4gdm9pZCBTZXRTZXNzaW9uVmFyaWFi bGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpOwogZXh0ZXJuIHZvaWQgU2V0 U2Vzc2lvblZhcmlhYmxlV2l0aFNlY3VyaXR5Q2hlY2soT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwg Ym9vbCBpc051bGwpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o IGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDAxYmMzMWU4YTkuLjA3YWRh NmM2ZmMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9z cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTM0ODcsNiArMzQ4Nyw3IEBAIHR5cGVk ZWYgc3RydWN0IENyZWF0ZVNlc3Npb25WYXJTdG10CiAJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkv KiB0aGUgdHlwZSBvZiB2YXJpYWJsZSAqLwogCUNvbGxhdGVDbGF1c2UgKmNvbGxDbGF1c2U7CiAJ Ym9vbAkJaWZfbm90X2V4aXN0czsJLyogZG8gbm90aGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cyAq LworCWNoYXIJCVhhY3RFbmRBY3Rpb247CS8qIG9uIHRyYW5zYWN0aW9uIGVuZCBhY3Rpb24gKi8K IH0gQ3JlYXRlU2Vzc2lvblZhclN0bXQ7CiAKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9k ZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCAwNTNh ZjZhZTA5Li4yZTU2NjVmZmViIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9k ZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtNTEsNyArNTEsOSBA QCB0eXBlZGVmIHN0cnVjdCBBbGlhcwogCUxpc3QJICAgKmNvbG5hbWVzOwkJLyogb3B0aW9uYWwg bGlzdCBvZiBjb2x1bW4gYWxpYXNlcyAqLwogfSBBbGlhczsKIAotLyogV2hhdCB0byBkbyBhdCBj b21taXQgdGltZSBmb3IgdGVtcG9yYXJ5IHJlbGF0aW9ucyAqLworLyoKKyAqIFdoYXQgdG8gZG8g YXQgY29tbWl0IHRpbWUgZm9yIHRlbXBvcmFyeSByZWxhdGlvbnMgb3Igc2Vzc2lvbiB2YXJpYWJs ZXMuCisgKi8KIHR5cGVkZWYgZW51bSBPbkNvbW1pdEFjdGlvbgogewogCU9OQ09NTUlUX05PT1As CQkJCS8qIE5vIE9OIENPTU1JVCBjbGF1c2UgKGRvIG5vdGhpbmcpICovCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9w YXJzZV9yZWxhdGlvbi5oCmluZGV4IDkxZmQ4ZTI0M2IuLmE4MTE3YmNhZTMgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5oCisrKyBiL3NyYy9pbmNsdWRlL3Bh cnNlci9wYXJzZV9yZWxhdGlvbi5oCkBAIC0xMjYsNiArMTI2LDYgQEAgZXh0ZXJuIGludAlhdHRu YW1lQXR0TnVtKFJlbGF0aW9uIHJkLCBjb25zdCBjaGFyICphdHRuYW1lLCBib29sIHN5c0NvbE9L KTsKIGV4dGVybiBjb25zdCBOYW1lRGF0YSAqYXR0bnVtQXR0TmFtZShSZWxhdGlvbiByZCwgaW50 IGF0dGlkKTsKIGV4dGVybiBPaWQJYXR0bnVtVHlwZUlkKFJlbGF0aW9uIHJkLCBpbnQgYXR0aWQp OwogZXh0ZXJuIE9pZAlhdHRudW1Db2xsYXRpb25JZChSZWxhdGlvbiByZCwgaW50IGF0dGlkKTsK LWV4dGVybiBib29sIGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbihRdWVyeSAqcXVlcnkpOworZXh0 ZXJuIGJvb2wgaXNRdWVyeVVzaW5nVGVtcE9iamVjdChRdWVyeSAqcXVlcnkpOwogCiAjZW5kaWYJ CQkJCQkJLyogUEFSU0VfUkVMQVRJT05fSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0IGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4 cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CmluZGV4IDBhNTU3OWRjN2MuLmE2MDk3OTdkYzUg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxl Lm91dAorKysgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5v dXQKQEAgLTg2LDEwICs4NiwxMSBAQCBteXZhcgogCiBzdGVwIHNyMTogUk9MTEJBQ0s7CiAKLXN0 YXJ0aW5nIHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRy b3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQorc3RhcnRpbmcgcGVybXV0YXRpb246IGNyZWF0 ZTMgbGV0MyBzMyBvX2NfZCBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQg c2MzIHN0YXRlCiBzdGVwIGNyZWF0ZTM6IENSRUFURSBWQVJJQUJMRSBteXZhcjMgQVMgdGV4dDsK IHN0ZXAgbGV0MzogTEVUIG15dmFyMyA9ICd0ZXN0JzsKIHN0ZXAgczM6IEJFR0lOOworc3RlcCBv X2NfZDogQ1JFQVRFIFRFTVAgVkFSSUFCTEUgbXl2YXJfb19jX2QgQVMgdGV4dCBPTiBDT01NSVQg RFJPUDsKIHN0ZXAgY3JlYXRlNDogQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0Owogc3Rl cCBsZXQ0OiBMRVQgbXl2YXI0ID0gJ3Rlc3QnOwogc3RlcCBkcm9wNDogRFJPUCBWQVJJQUJMRSBt eXZhcjQ7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJp YWJsZS5zcGVjIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3Bl YwppbmRleCBjODY0ZmVlNDAwLi40NWU2NWQ0MDg1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29s YXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlv bi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKQEAgLTI0LDYgKzI0LDcgQEAgc3RlcCBjcmVh dGUJCXsgQ1JFQVRFIFZBUklBQkxFIG15dmFyIEFTIHRleHQ7IH0KIHNlc3Npb24gczMKIHN0ZXAg czMJCQl7IEJFR0lOOyB9CiBzdGVwIGxldDMJCXsgTEVUIG15dmFyMyA9ICd0ZXN0JzsgfQorc3Rl cCBvX2NfZAkJeyBDUkVBVEUgVEVNUCBWQVJJQUJMRSBteXZhcl9vX2NfZCBBUyB0ZXh0IE9OIENP TU1JVCBEUk9QOyB9CiBzdGVwIGNyZWF0ZTQJeyBDUkVBVEUgVkFSSUFCTEUgbXl2YXI0IEFTIHRl eHQ7IH0KIHN0ZXAgbGV0NAkJeyBMRVQgbXl2YXI0ID0gJ3Rlc3QnOyB9CiBzdGVwIGRyb3A0CQl7 IERST1AgVkFSSUFCTEUgbXl2YXI0OyB9CkBAIC00Nyw0ICs0OCw0IEBAIHBlcm11dGF0aW9uIGxl dCB2YWwgZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwKICMgY2FsbGluZyB0aGUgZGJnIHN0ZXAgYWZ0 ZXIgdGhlIGNvbmN1cnJlbnQgZHJvcAogcGVybXV0YXRpb24gbGV0IHZhbCBzMSBkYmcgZHJvcCBj cmVhdGUgZGJnIHZhbCBzcjEKICMgdGVzdCBmb3IgRElTQ0FSRCBBTEwgd2hlbiBhbGwgaW50ZXJu YWwgcXVldWVzIGhhdmUgYWN0aW9ucyByZWdpc3RlcmVkCi1wZXJtdXRhdGlvbiBjcmVhdGUzIGxl dDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQor cGVybXV0YXRpb24gY3JlYXRlMyBsZXQzIHMzIG9fY19kIGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9w MyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0Cmlu ZGV4IDg4ZTIxMTk0NzEuLjYxMDc3YTUyYjEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91 dApAQCAtNTkzNSwyMCArNTkzNSwyMCBAQCBDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293 bmVyOwogU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJM RSB2YXIxIEFTIHZhcmNoYXIgQ09MTEFURSAiQyI7CiBcZFYrIHZhcjEKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEg fCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAg ICAgICAgIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tKy0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2YXIxIHwgY2hh cmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAg ICAgICAgICAgICAgICAgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCAg ICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBU cmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9u IAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWlu ZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBHUkFOVCBTRUxFQ1Qg T04gVkFSSUFCTEUgdmFyMSBUTyBQVUJMSUM7CiBDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMg J3NvbWUgZGVzY3JpcHRpb24nOwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0g U2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBP d25lciAgICAgICAgICB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAg ICAgICAgICB8ICAgRGVzY3JpcHRpb24gICAgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ci0gcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVz c192YXJpYWJsZV9vd25lciB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJp YWJsZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KLSAgICAgICAgfCAgICAgIHwgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVz c192YXJpYWJsZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAg ICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAg ICAgIHwgICBEZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlp bmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293 bmVyK3wgc29tZSBkZXNjcmlwdGlvbgorICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgICAgfCA9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAg ICAgfCAKICgxIHJvdykKIAogRFJPUCBWQVJJQUJMRSB2YXIxOwpAQCAtNjQxNiw5ICs2NDE2LDkg QEAgTGlzdCBvZiBzY2hlbWFzCiAoMCByb3dzKQogCiBcZFYgIm5vLnN1Y2gudmFyaWFibGUiCi0g ICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29s bGF0aW9uIHwgT3duZXIgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEg fCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0 aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVk IHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY1OTEsOSArNjU5MSw5IEBAIGltcHJvcGVyIHF1 YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJu by5zdWNoLmluc3RhCiBcZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2Vy IgogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5z dWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIFxkViAibm8uc3VjaC5zY2hlbWEi LiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hl bWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAotLS0tLS0tLS0rLS0tLS0tKy0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8 IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0g YWdhaW4sIGJ1dCB3aXRoIGN1cnJlbnQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlm aWNhdGlvbnMuCkBAIC02NzMwLDkgKzY3MzAsOSBAQCBMaXN0IG9mIHRleHQgc2VhcmNoIHRlbXBs YXRlcwogKDAgcm93cykKIAogXGRWIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC52YXJpYWJsZSIKLSAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFt ZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlh YmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBUcmFuc2Fj dGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBi dXQgd2l0aCBkb3R0ZWQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMu CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0Cmlu ZGV4IDMzMDUyMjNkMDAuLjRjNTk4OWI1NDEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0xMTYsMTEgKzExNiwxMSBAQCBTRVQgUk9M RSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwogQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZh cjEgQVMgaW50OwogU0VUIFJPTEUgVE8gREVGQVVMVDsKIFxkVisgc3ZhcnRlc3QudmFyMQotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHZhcmlhYmxlcwotICBTY2hlbWEgIHwgTmFtZSB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCAg ICAgICAgIE93bmVyICAgICAgICAgIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMg ICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBzdmFydGVz dCB8IHZhcjEgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8 IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IAotICAg ICAgICAgIHwgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAg ICAgIHwgcmVncmVzc192YXJpYWJsZV9yZWFkZXI9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwg CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworICBTY2hlbWEgIHwgTmFtZSB8ICBUeXBl ICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAg ICAgIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0KKyBzdmFydGVzdCB8IHZhcjEgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgcmVncmVzc192 YXJpYWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFi bGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IAorICAgICAgICAgIHwgICAgICB8 ICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9yZWFkZXI9ci9yZWdyZXNzX3Zhcmlh YmxlX293bmVyIHwgCiAoMSByb3cpCiAKIERST1AgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMTsKQEAg LTE4NDYsMyArMTg0NiwxMjMgQEAgU0VMRUNUIHZhcjE7CiAKIERFQUxMT0NBVEUgcDE7CiBEUk9Q IFZBUklBQkxFIHZhcjE7CistLSB0ZW1wb3JhcnkgdmFyaWFibGVzCitDUkVBVEUgVEVNUCBWQVJJ QUJMRSB2YXIxIEFTIGludDsKKy0tIHRoaXMgdmlldyBzaG91bGQgYmUgdGVtcG9yYXJ5CitDUkVB VEUgVklFVyB2YXJfdGVzdF92aWV3IEFTIFNFTEVDVCB2YXIxOworTk9USUNFOiAgdmlldyAidmFy X3Rlc3RfdmlldyIgd2lsbCBiZSBhIHRlbXBvcmFyeSB2aWV3CitEUk9QIFZBUklBQkxFIHZhcjEg Q0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gdmlldyB2YXJfdGVzdF92aWV3CitC RUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7 CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEw MAorKDEgcm93KQorCitDT01NSVQ7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCop IEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyBjb3VudCAKKy0tLS0t LS0KKyAgICAgMAorKDEgcm93KQorCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCop IEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAor KDEgcm93KQorCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04g Q09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAor LS0tLS0tCisgIDEwMAorKDEgcm93KQorCitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSB6ZXJvCitT RUxFQ1QgY291bnQoKikgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOwor IGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSB6ZXJvCitT RUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0t LS0tLQorICAgICAwCisoMSByb3cpCisKK0JFR0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2 YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIERST1AgVkFS SUFCTEUgdmFyMTsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikg RlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworIGNvdW50IAorLS0tLS0t LQorICAgICAwCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikg RlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCiso MSByb3cpCisKK0JFR0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBD T01NSVQgRFJPUDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKK1JP TExCQUNLOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Zhcmlh YmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygx IHJvdykKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Np b25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworQkVH SU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOwor ICBMRVQgdmFyMSA9IDEwMDsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxFIHZhcjE7 CisgIFJPTExCQUNLIFRPIHMxOworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEw MAorKDEgcm93KQorCitDT01NSVQ7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCop IEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyBjb3VudCAKKy0tLS0t LS0KKyAgICAgMAorKDEgcm93KQorCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCop IEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAor KDEgcm93KQorCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zhcmlh Ymxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5k ZXggZWVjNjJhZDQ4My4uMjg4YTM5YzMyMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Np b25fdmFyaWFibGVzLnNxbApAQCAtMTAyOCw2ICsxMDI4LDcgQEAgQkVHSU47CiAgIERST1AgVkFS SUFCTEUgdmFyMTsKICAgU0VMRUNUIHZhcjI7CiBST0xMQkFDSzsKKwogLS0gc2hvdWxkIGJlIG9r CiBTRUxFQ1QgdmFyMTsKIApAQCAtMTI2OCwzICsxMjY5LDY4IEBAIFNFTEVDVCB2YXIxOwogCiBE RUFMTE9DQVRFIHAxOwogRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSB0ZW1wb3JhcnkgdmFyaWFi bGVzCitDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludDsKKy0tIHRoaXMgdmlldyBzaG91 bGQgYmUgdGVtcG9yYXJ5CitDUkVBVEUgVklFVyB2YXJfdGVzdF92aWV3IEFTIFNFTEVDVCB2YXIx OworCitEUk9QIFZBUklBQkxFIHZhcjEgQ0FTQ0FERTsKKworQkVHSU47CisgIENSRUFURSBURU1Q IFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsK KyAgU0VMRUNUIHZhcjE7CitDT01NSVQ7CisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291 bnQoKikgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworLS0gc2hvdWxk IGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisK K0JFR0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJP UDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworUk9MTEJBQ0s7CisKKy0tIHNo b3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJu YW1lID0gJ3ZhcjEnOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBn X3Nlc3Npb25fdmFyaWFibGVzKCk7CisKK0JFR0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2 YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIERST1AgVkFS SUFCTEUgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CistLSBzaG91bGQgYmUg emVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQkVH SU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOwor ICBMRVQgdmFyMSA9IDEwMDsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworUk9MTEJBQ0s7CisKKy0t IHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2 YXJuYW1lID0gJ3ZhcjEnOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9N IHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKK0JFR0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJM RSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNBVkVQ T0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICBST0xMQkFDSyBUTyBzMTsKKyAgU0VM RUNUIHZhcjE7CitDT01NSVQ7CisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikg RlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworLS0gc2hvdWxkIGJlIHpl cm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CmRpZmYgLS1n aXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVu dC90eXBlZGVmcy5saXN0CmluZGV4IDcxY2Q3NWRkOGIuLjgxZjc0ZmU5YTIgMTAwNjQ0Ci0tLSBh L3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVu dC90eXBlZGVmcy5saXN0CkBAIC0yODAzLDYgKzI4MDMsNyBAQCBTdXBwb3J0UmVxdWVzdFdGdW5j TW9ub3RvbmljCiBTVmFyaWFibGUKIFNWYXJpYWJsZURhdGEKIFNWYXJpYWJsZVN0YXRlCitTVmFy aWFibGVYQWN0RHJvcEl0ZW0KIFN5bgogU3luY09wcwogU3luY1JlcENvbmZpZ0RhdGEKLS0gCjIu NDcuMQoK --000000000000ee56b206299a729a Content-Type: text/x-patch; charset="US-ASCII"; name="v20241219-0014-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Disposition: attachment; filename="v20241219-0014-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4uzyqtk8 RnJvbSA0ZDdkMmFkMTBlNDFhNTU1OTMyM2U5N2VkOGVjOTU0MjA1YzhlZDg5IE1vbiBTZXAgMTcg 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 ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgNzMgKysrKysrKysrKysrKystLQog c3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgNDggKysrKysr KysrKwogMjAgZmlsZXMgY2hhbmdlZCwgMzU1IGluc2VydGlvbnMoKyksIDQ2IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwKaW5kZXggZDdhMjMzNDczMS4uNDNiODRmZDg5NiAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNn bWwKQEAgLTk4ODMsNiArOTg4MywxNCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7 aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAg PC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJkZWZleHByPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+cGdf bm9kZV90cmVlPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhl IGludGVybmFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YXJpYWJsZSBkZWZhdWx0IHZhbHVlCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CiAgICAgPC90Ym9keT4KICAgIDwvdGdy b3VwPgogICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9j L3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IDU5MTZlN2U4ZjkuLjRkMGE2NWFjZWYgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAg LTUzODAsMTQgKzUzODAsMTQgQEAgU0VMRUNUIGN1cnJlbnRfdXNlcl9pZDsKIAogICAgPHBhcmE+ CiAgICAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBsb2NhbCB0byB0aGUgY3Vy cmVudCBzZXNzaW9uLiBSZXRyaWV2aW5nCi0gICAgYSB2YXJpYWJsZSdzIHZhbHVlIHJldHVybnMg YSA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiwgdW5sZXNzIGl0cyB2YWx1ZSBoYXMKLSAgICBiZWVu IHNldCB0byBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBzZXNzaW9uIHVzaW5nIHRoZQot ICAgIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4gIFNlc3Npb24gdmFyaWFibGVzIGFy ZSBub3QgdHJhbnNhY3Rpb25hbDoKLSAgICBhbnkgY2hhbmdlcyBtYWRlIHRvIHRoZSB2YWx1ZSBv ZiBhIHNlc3Npb24gdmFyaWFibGUgaW4gYSB0cmFuc2FjdGlvbiB3b24ndAotICAgIGJlIHVuZG9u ZSBpZiB0aGUgdHJhbnNhY3Rpb24gaXMgcm9sbGVkIGJhY2sgKGp1c3QgbGlrZSB2YXJpYWJsZXMg aW4KLSAgICBwcm9jZWR1cmFsIGxhbmd1YWdlcykuICBTZXNzaW9uIHZhcmlhYmxlcyB0aGVtc2Vs dmVzIGNhbiBiZSBwZXJzaXN0ZW50Ci0gICAgb3IgdGVtcG9yYXJ5LCBidXQgdGhlaXIgdmFsdWVz IGFyZSBuZWl0aGVyIHBlcnNpc3RlbnQgbm9yIHNoYXJlZCAobGlrZSB0aGUKLSAgICBjb250ZW50 IG9mIHRlbXBvcmFyeSB0YWJsZXMpLgorICAgIGEgdmFyaWFibGUncyB2YWx1ZSByZXR1cm5zIGEg PGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4gb3IgYSBkZWZhdWx0IHZhbHVlLAorICAgIHVubGVzcyBp dHMgdmFsdWUgaGFzICBiZWVuIHNldCB0byBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBz ZXNzaW9uCisgICAgdXNpbmcgdGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4gIFNl c3Npb24gdmFyaWFibGVzIGFyZSBub3QKKyAgICB0cmFuc2FjdGlvbmFsOiBhbnkgY2hhbmdlcyBt YWRlIHRvIHRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaW4KKyAgICBhIHRyYW5zYWN0 aW9uIHdvbid0IGJlIHVuZG9uZSBpZiB0aGUgdHJhbnNhY3Rpb24gaXMgcm9sbGVkIGJhY2sgKGp1 c3QgbGlrZQorICAgIHZhcmlhYmxlcyBpbiBwcm9jZWR1cmFsIGxhbmd1YWdlcykuICBTZXNzaW9u IHZhcmlhYmxlcyB0aGVtc2VsdmVzIGNhbiBiZQorICAgIHBlcnNpc3RlbnQgb3IgdGVtcG9yYXJ5 LCBidXQgdGhlaXIgdmFsdWVzIGFyZSBuZWl0aGVyIHBlcnNpc3RlbnQgbm9yIHNoYXJlZAorICAg IChsaWtlIHRoZSBjb250ZW50IG9mIHRlbXBvcmFyeSB0YWJsZXMpLgogICAgPC9wYXJhPgogCiAg ICA8cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNn bWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCmluZGV4IGQ4MTM2Njhh NzcuLjU3MzkxNTI4MTEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zhcmlh YmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAt MjcsNyArMjcsNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICA8cmVmc3lub3BzaXNkaXY+ CiA8c3lub3BzaXM+CiBDUkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxFIFsg SUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBs YWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8 L3JlcGxhY2VhYmxlPiBbIENPTExBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNv bGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KLSAgICBbIHsgT04gQ09NTUlUIERST1AgfCBPTiBUUkFO U0FDVElPTiBFTkQgUkVTRVQgfSBdCisgICAgWyBERUZBVUxUIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5kZWZhdWx0X2V4cHI8L3JlcGxhY2VhYmxlPiBdIFsgeyBPTiBDT01NSVQgRFJP UCB8IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCB9IF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5v cHNpc2Rpdj4KICA8cmVmc2VjdDE+CkBAIC00MSwxMCArNDEsMTAgQEAgQ1JFQVRFIFsgeyBURU1Q T1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUg Y2xhc3M9InAKIAogICA8cGFyYT4KICAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUg aXMgbG9jYWwgdG8gdGhlIGN1cnJlbnQgc2Vzc2lvbi4gIFJldHJpZXZpbmcKLSAgIGEgc2Vzc2lv biB2YXJpYWJsZSdzIHZhbHVlIHJldHVybnMgTlVMTCwgdW5sZXNzIGl0cyB2YWx1ZSBpcyBzZXQg dG8KLSAgIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50IHNlc3Npb24gd2l0aCBhIDxjb21t YW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4KLSAgIFRoZSBjb250ZW50IG9mIGEgc2Vzc2lvbiB2 YXJpYWJsZSBpcyBub3QgdHJhbnNhY3Rpb25hbC4gVGhpcyBpcyB0aGUgc2FtZSBhcwotICAgcmVn dWxhciB2YXJpYWJsZXMgaW4gcHJvY2VkdXJhbCBsYW5ndWFnZXMuCisgICBhIHNlc3Npb24gdmFy aWFibGUncyB2YWx1ZSByZXR1cm5zIE5VTEwgb3IgYSBkZWZhdWx0IHZhbHVlLCB1bmxlc3MgaXRz IHZhbHVlCisgICBpcyBzZXQgdG8gc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lv biB3aXRoIGEgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPgorICAgY29tbWFuZC4gIFRoZSBjb250ZW50 IG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBub3QgdHJhbnNhY3Rpb25hbC4gIFRoaXMgaXMgdGhl CisgICBzYW1lIGFzIHJlZ3VsYXIgdmFyaWFibGVzIGluIHByb2NlZHVyYWwgbGFuZ3VhZ2VzLgog ICA8L3BhcmE+CiAKICAgPHBhcmE+CkBAIC0xMDUsNiArMTA1LDE3IEBAIENSRUFURSBbIHsgVEVN UE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFy bGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtZGVmYXVsdCI+CisgICAgPHRlcm0+PGxp dGVyYWw+REVGQVVMVCA8cmVwbGFjZWFibGU+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT48L2xp dGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgPGxp dGVyYWw+REVGQVVMVDwvbGl0ZXJhbD4gY2xhdXNlIGNhbiBiZSB1c2VkIHRvIGFzc2lnbiBhIGRl ZmF1bHQKKyAgICAgIHZhbHVlIHRvIGEgc2Vzc2lvbiB2YXJpYWJsZS4gVGhpcyBleHByZXNzaW9u IGlzIGV2YWx1YXRlZCB3aGVuIHRoZSBzZXNzaW9uCisgICAgICB2YXJpYWJsZSBpcyBmaXJzdCBh Y2Nlc3NlZCBmb3IgcmVhZGluZyBhbmQgaGFkIG5vdCB5ZXQgYmVlbiBhc3NpZ25lZCBhIHZhbHVl LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAg ICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtb24tY29tbWl0LWRyb3AiPgog ICAgIDx0ZXJtPjxsaXRlcmFsPk9OIENPTU1JVCBEUk9QPC9saXRlcmFsPjwvdGVybT4KICAgICA8 bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sCmluZGV4IDYxYjk2N2Y5YzkuLjZiMGNiOTUwMzQg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9yZWYvZGlzY2FyZC5zZ21sCkBAIC03MSw3ICs3MSw4IEBAIERJU0NBUkQgeyBBTEwgfCBQ TEFOUyB8IFNFUVVFTkNFUyB8IFRFTVBPUkFSWSB8IFRFTVAgfCBWQVJJQUJMRVMgfQogICAgIDxs aXN0aXRlbT4KICAgICAgPHBhcmE+CiAgICAgICBSZXNldHMgdGhlIHZhbHVlIG9mIGFsbCBzZXNz aW9uIHZhcmlhYmxlcy4gSWYgYSB2YXJpYWJsZQotICAgICAgaXMgbGF0ZXIgcmV1c2VkLCBpdCBp cyByZS1pbml0aWFsaXplZCB0byA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPi4KKyAgICAgIGlzIGxh dGVyIHJldXNlZCwgaXQgaXMgcmUtaW5pdGlhbGl6ZWQgdG8gZWl0aGVyCisgICAgICA8bGl0ZXJh bD5OVUxMPC9saXRlcmFsPiBvciBpdHMgZGVmYXVsdCB2YWx1ZS4KICAgICAgPC9wYXJhPgogICAg IDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUu YwppbmRleCA0NTIwZWVkNmRhLi4zNmRlMTI1ODdjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJs ZS5jCkBAIC0yNCw2ICsyNCw5IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgog I2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJtaXNjYWRt aW4uaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfY29lcmNlLmgiCisjaW5jbHVkZSAicGFyc2Vy L3BhcnNlX2NvbGxhdGUuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfZXhwci5oIgogI2luY2x1 ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNp bmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKQEAgLTM3LDYgKzQwLDcgQEAgc3RhdGljIE9iamVj dEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJCQkJCQkJCQkg T2lkIHZhck93bmVyLAogCQkJCQkJCQkJIE9pZCB2YXJDb2xsYXRpb24sCiAJCQkJCQkJCQkgYm9v bCBpZl9ub3RfZXhpc3RzLAorCQkJCQkJCQkJIE5vZGUgKnZhckRlZmV4cHIsCiAJCQkJCQkJCQkg VmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RFbmRBY3Rpb24pOwogCiAKQEAgLTUxLDYgKzU1 LDcgQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJCQkJT2lkIHZhck93 bmVyLAogCQkJCU9pZCB2YXJDb2xsYXRpb24sCiAJCQkJYm9vbCBpZl9ub3RfZXhpc3RzLAorCQkJ CU5vZGUgKnZhckRlZmV4cHIsCiAJCQkJVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RFbmRB Y3Rpb24pCiB7CiAJQWNsCQkgICAqdmFyYWNsOwpAQCAtMTE0LDYgKzExOSwxMSBAQCBjcmVhdGVf dmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92 YXJjb2xsYXRpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyQ29sbGF0aW9uKTsKIAl2YWx1 ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ4YWN0ZW5kYWN0aW9uIC0gMV0gPSBDaGFyR2V0RGF0dW0o dmFyWGFjdEVuZEFjdGlvbik7CiAKKwlpZiAodmFyRGVmZXhwcikKKwkJdmFsdWVzW0FudW1fcGdf dmFyaWFibGVfdmFyZGVmZXhwciAtIDFdID0gQ1N0cmluZ0dldFRleHREYXR1bShub2RlVG9TdHJp bmcodmFyRGVmZXhwcikpOworCWVsc2UKKwkJbnVsbHNbQW51bV9wZ192YXJpYWJsZV92YXJkZWZl eHByIC0gMV0gPSB0cnVlOworCiAJdmFyYWNsID0gZ2V0X3VzZXJfZGVmYXVsdF9hY2woT0JKRUNU X1ZBUklBQkxFLCB2YXJPd25lciwKIAkJCQkJCQkJICB2YXJOYW1lc3BhY2UpOwogCWlmICh2YXJh Y2wgIT0gTlVMTCkKQEAgLTE1MCw2ICsxNjAsMTEgQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNo YXIgKnZhck5hbWUsCiAJcmVjb3JkX29iamVjdF9hZGRyZXNzX2RlcGVuZGVuY2llcygmbXlzZWxm LCBhZGRycywgREVQRU5ERU5DWV9OT1JNQUwpOwogCWZyZWVfb2JqZWN0X2FkZHJlc3NlcyhhZGRy cyk7CiAKKwkvKiBkZXBlbmRlbmN5IG9uIGRlZmF1bHQgZXhwciAqLworCWlmICh2YXJEZWZleHBy KQorCQlyZWNvcmREZXBlbmRlbmN5T25FeHByKCZteXNlbGYsIChOb2RlICopIHZhckRlZmV4cHIs CisJCQkJCQkJICAgTklMLCBERVBFTkRFTkNZX05PUk1BTCk7CisKIAkvKiBkZXBlbmRlbmN5IG9u IG93bmVyICovCiAJcmVjb3JkRGVwZW5kZW5jeU9uT3duZXIoVmFyaWFibGVSZWxhdGlvbklkLCB2 YXJpZCwgdmFyT3duZXIpOwogCkBAIC0xODUsNiArMjAwLDcgQEAgQ3JlYXRlVmFyaWFibGUoUGFy c2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAlPaWQJCQljb2xs YXRpb247CiAJT2lkCQkJdHlwY29sbGF0aW9uOwogCU9iamVjdEFkZHJlc3MgdmFyaWFibGU7CisJ Tm9kZQkgICAqY29va2VkX2RlZmF1bHQgPSBOVUxMOwogCiAJLyogY2hlY2sgY29uc2lzdGVuY3kg b2YgYXJndW1lbnRzICovCiAJaWYgKHN0bXQtPlhhY3RFbmRBY3Rpb24gPT0gVkFSSUFCTEVfWEFD VEVORF9EUk9QCkBAIC0yMjYsNiArMjQyLDE2IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQlmb3JtYXRfdHlwZV9i ZSh0eXBpZCkpLAogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10LT5jb2xsQ2xh dXNlLT5sb2NhdGlvbikpKTsKIAorCWlmIChzdG10LT5kZWZleHByKQorCXsKKwkJY29va2VkX2Rl ZmF1bHQgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwgc3RtdC0+ZGVmZXhwciwKKwkJCQkJCQkJCSAg IEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUKTsKKworCQljb29rZWRfZGVmYXVsdCA9IGNvZXJj ZV90b19zcGVjaWZpY190eXBlKHBzdGF0ZSwKKwkJCQkJCQkJCQkJCSBjb29rZWRfZGVmYXVsdCwg dHlwaWQsICJERUZBVUxUIik7CisJCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCBjb29r ZWRfZGVmYXVsdCk7CisJfQorCiAJdmFyaWFibGUgPSBjcmVhdGVfdmFyaWFibGUoc3RtdC0+dmFy aWFibGUtPnJlbG5hbWUsCiAJCQkJCQkJICAgbmFtZXNwYWNlaWQsCiAJCQkJCQkJICAgdHlwaWQs CkBAIC0yMzMsNiArMjU5LDcgQEAgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBD cmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAkJCQkJCQkgICB2YXJvd25lciwKIAkJCQkJCQkg ICBjb2xsYXRpb24sCiAJCQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0cywKKwkJCQkJCQkgICBj b29rZWRfZGVmYXVsdCwKIAkJCQkJCQkgICBzdG10LT5YYWN0RW5kQWN0aW9uKTsKIAogCWVsb2co REVCVUcxLCAicmVjb3JkIGZvciBzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiAob2lkOiVkKSB3YXMg Y3JlYXRlZCBpbiBwZ192YXJpYWJsZSIsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKaW5kZXggNGRmYjgyZWYyZS4uODYwY2IzYjM0MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgImV4ZWN1dG9y L3N2YXJpYWJsZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5oIgogI2luY2x1ZGUgIm1p c2NhZG1pbi5oIgorI2luY2x1ZGUgIm9wdGltaXplci9vcHRpbWl6ZXIuaCIKICNpbmNsdWRlICJy ZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgiCiAjaW5j bHVkZSAic3RvcmFnZS9wcm9jLmgiCkBAIC01MTgsMTEgKzUxOSw2OCBAQCBBdEVPU3ViWGFjdF9T ZXNzaW9uVmFyaWFibGVzKGJvb2wgaXNDb21taXQsCiAJfQogfQogCisvKgorICogZXZhbHVhdGUg YW4gZXhwcmVzc2lvbgorICovCitzdGF0aWMgdm9pZAorZXZhbF9hc3NpZ25fZGVmZXhwcihTVmFy aWFibGUgc3ZhciwgSGVhcFR1cGxlIHR1cCkKK3sKKwlEYXR1bQkJZGVmZXhwcl92YWx1ZTsKKwli b29sCQlpc251bGw7CisKKwlBc3NlcnQoc3Zhcik7CisJQXNzZXJ0KHN2YXItPmlzX3ZhbGlkKTsK KwlBc3NlcnQoSGVhcFR1cGxlSXNWYWxpZCh0dXApKTsKKworCWRlZmV4cHJfdmFsdWUgPSBTeXND YWNoZUdldEF0dHIoVkFSSUFCTEVPSUQsCisJCQkJCQkJCQl0dXAsCisJCQkJCQkJCQlBbnVtX3Bn X3ZhcmlhYmxlX3ZhcmRlZmV4cHIsCisJCQkJCQkJCQkmaXNudWxsKTsKKworCWlmICghaXNudWxs KQorCXsKKwkJRVN0YXRlCSAgICplc3RhdGU7CisJCUV4cHJTdGF0ZSAgKmRlZmV4cHJzOworCQlF eHByCSAgICpkZWZleHByOworCQljaGFyCSAgICpkZWZleHByX3N0cjsKKwkJRGF0dW0JCXZhbHVl OworCQlNZW1vcnlDb250ZXh0IG9sZGN4dDsKKworCQllc3RhdGUgPSBDcmVhdGVFeGVjdXRvclN0 YXRlKCk7CisKKwkJZGVmZXhwcl9zdHIgPSBUZXh0RGF0dW1HZXRDU3RyaW5nKGRlZmV4cHJfdmFs dWUpOworCQlkZWZleHByID0gKEV4cHIgKikgc3RyaW5nVG9Ob2RlKGRlZmV4cHJfc3RyKTsKKwor CQlvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oZXN0YXRlLT5lc19xdWVyeV9jeHQpOwor CisJCWRlZmV4cHIgPSBleHByZXNzaW9uX3BsYW5uZXIoKEV4cHIgKikgZGVmZXhwcik7CisJCWRl ZmV4cHJzID0gRXhlY0luaXRFeHByKGRlZmV4cHIsIE5VTEwpOworCisJCXZhbHVlID0gRXhlY0V2 YWxFeHByU3dpdGNoQ29udGV4dChkZWZleHBycywKKwkJCQkJCQkJCQkgIEdldFBlclR1cGxlRXhw ckNvbnRleHQoZXN0YXRlKSwKKwkJCQkJCQkJCQkgICZpc251bGwpOworCisJCU1lbW9yeUNvbnRl eHRTd2l0Y2hUbyhvbGRjeHQpOworCisJCWlmICghaXNudWxsKQorCQl7CisJCQlvbGRjeHQgPSBN ZW1vcnlDb250ZXh0U3dpdGNoVG8oU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCk7CisKKwkJCXN2YXIt PnZhbHVlID0gZGF0dW1Db3B5KHZhbHVlLCBzdmFyLT50eXBieXZhbCwgc3Zhci0+dHlwbGVuKTsK KwkJCXN2YXItPmlzbnVsbCA9IGZhbHNlOworCisJCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xk Y3h0KTsKKwkJfQorCisJCUZyZWVFeGVjdXRvclN0YXRlKGVzdGF0ZSk7CisJfQorfQorCiAvKgog ICogSW5pdGlhbGl6ZSBhdHRyaWJ1dGVzIGNhY2hlZCBpbiAic3ZhciIKICAqLwogc3RhdGljIHZv aWQKLXNldHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCkKK3Nl dHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCwgYm9vbCBpc193 cml0ZSkKIHsKIAlIZWFwVHVwbGUJdHVwOwogCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKQEAg LTU3Miw2ICs2MzAsOSBAQCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBP aWQgdmFyaWQpCiAJc3Zhci0+aGFzaHZhbHVlID0gR2V0U3lzQ2FjaGVIYXNoVmFsdWUxKFZBUklB QkxFT0lELAogCQkJCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CiAKKwlpZiAoIWlz X3dyaXRlKQorCQlldmFsX2Fzc2lnbl9kZWZleHByKHN2YXIsIHR1cCk7CisKIAlSZWxlYXNlU3lz Q2FjaGUodHVwKTsKIH0KIApAQCAtNjAxLDcgKzY2Miw3IEBAIHNldF9zZXNzaW9uX3ZhcmlhYmxl KFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAJICovCiAJaWYgKCFz dmFyLT5pc192YWxpZCkKIAl7Ci0JCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoJmxvY3N2YXIsIHN2 YXItPnZhcmlkKTsKKwkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZSgmbG9jc3Zhciwgc3Zhci0+dmFy aWQsIGZhbHNlKTsKIAkJX3N2YXIgPSAmbG9jc3ZhcjsKIAl9CiAJZWxzZQpAQCAtNzM0LDcgKzc5 NSwyNSBAQCBnZXRfc2Vzc2lvbl92YXJpYWJsZShPaWQgdmFyaWQpCiAJICovCiAJaWYgKCFzdmFy LT5pc192YWxpZCkKIAl7Ci0JCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoc3ZhciwgdmFyaWQpOwor CQkvKiBpbiB0aGlzIGNhc2Ugd2Ugd2FudCB0byB1c2UgZGVmZXhwIGlmIGl0IGlzIGRlZmluZWQg Ki8KKwkJUEdfVFJZKCk7CisJCXsKKwkJCS8qCisJCQkgKiBJbiB0aGlzIGNhc2UsIHRoZSBzZXR1 cCBjYW4gZXhlY3V0ZSBkZWZhdWx0IGV4cHJlc3Npb24uIFdoZW4KKwkJCSAqIHRoZSBleGVjdXRp b24gb2YgZGVmYXVsdCBleHByZXNzaW9uIGZhaWxzLCB0aGVuIHdlIG5lZWQgdG8KKwkJCSAqIHJl bW92ZSBlbnRyeSBmcm9tIHNlc3Npb24gdmFycy4KKwkJCSAqLworCQkJc2V0dXBfc2Vzc2lvbl92 YXJpYWJsZShzdmFyLCB2YXJpZCwgZmFsc2UpOworCQl9CisJCVBHX0NBVENIKCk7CisJCXsKKwkJ CS8qIHRoaXMgZW50cnkgY2Fubm90IGJlIHZhbGlkLCByZW1vdmUgZnJvbSBzZXNzaW9udmFycyAq LworCQkJaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwgSEFTSF9SRU1PVkUsIE5VTEwp OworCisJCQkvKiBwcm9wYWdhdGUgdGhlIGVycm9yICovCisJCQlQR19SRV9USFJPVygpOworCQl9 CisJCVBHX0VORF9UUlkoKTsKIAogCQllbG9nKERFQlVHMSwgInNlc3Npb24gdmFyaWFibGUgXCIl cy4lc1wiIChvaWQ6JXUpIGhhcyBhc3NpZ25lZCBlbnRyeSBpbiBtZW1vcnkgKGVtaXR0ZWQgYnkg UkVBRCkiLAogCQkJIGdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l c3BhY2UodmFyaWQpKSwKQEAgLTc5OCw3ICs4NzcsNyBAQCBTZXRTZXNzaW9uVmFyaWFibGUoT2lk IHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpCiAKIAlpZiAoIWZvdW5kKQogCXsKLQkJ c2V0dXBfc2Vzc2lvbl92YXJpYWJsZShzdmFyLCB2YXJpZCk7CisJCXNldHVwX3Nlc3Npb25fdmFy aWFibGUoc3ZhciwgdmFyaWQsIHRydWUpOwogCiAJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJp YWJsZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFzIGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAoZW1p dHRlZCBieSBXUklURSkiLAogCQkJIGdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDEyMmUzYzUwNWUu LjkzZjY2NjU1MGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNjM4LDYgKzYzOCw3IEBAIHN0YXRpYyBOb2Rl ICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBO b2RlICpxdWVyeSk7CiAldHlwZSA8cGFydGJvdW5kc3BlYz4gUGFydGl0aW9uQm91bmRTcGVjCiAl dHlwZSA8bGlzdD4JCWhhc2hfcGFydGJvdW5kCiAldHlwZSA8ZGVmZWx0PgkJaGFzaF9wYXJ0Ym91 bmRfZWxlbQorJXR5cGUgPG5vZGU+CQlPcHRTZXNzaW9uVmFyRGVmRXhwcgogCiAldHlwZSA8bm9k ZT4JanNvbl9mb3JtYXRfY2xhdXNlCiAJCQkJanNvbl9mb3JtYXRfY2xhdXNlX29wdApAQCAtNTIz MCwzMCArNTIzMSwzNiBAQCBjcmVhdGVfZXh0ZW5zaW9uX29wdF9pdGVtOgogICoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqLwogCiBDcmVhdGVTZXNzaW9uVmFyU3RtdDoKLQkJCUNSRUFURSBPcHRUZW1wIFZB UklBQkxFIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2Ug WGFjdEVuZEFjdGlvbk9wdGlvbgorCQkJQ1JFQVRFIE9wdFRlbXAgVkFSSUFCTEUgcXVhbGlmaWVk X25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHRTZXNzaW9uVmFyRGVm RXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCiAJCQkJewogCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3Rt dCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsKIAkJCQkJJDQtPnJlbHBlcnNp c3RlbmNlID0gJDI7CiAJCQkJCW4tPnZhcmlhYmxlID0gJDQ7CiAJCQkJCW4tPnR5cGVOYW1lID0g JDY7CiAJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkNzsKLQkJCQkJbi0+ WGFjdEVuZEFjdGlvbiA9ICQ4OworCQkJCQluLT5kZWZleHByID0gJDg7CisJCQkJCW4tPlhhY3RF bmRBY3Rpb24gPSAkOTsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZhbHNlOwogCQkJCQkkJCA9 IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBJRl9QIE5P VCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVz ZSBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQl8IENSRUFURSBPcHRUZW1wIFZBUklBQkxFIElGX1Ag Tk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xh dXNlIE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KIAkJCQl7CiAJCQkJ CUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQp OwogCQkJCQkkNy0+cmVscGVyc2lzdGVuY2UgPSAkMjsKIAkJCQkJbi0+dmFyaWFibGUgPSAkNzsK IAkJCQkJbi0+dHlwZU5hbWUgPSAkOTsKIAkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xh dXNlICopICQxMDsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMTsKKwkJCQkJbi0+ZGVmZXhw ciA9ICQxMTsKKwkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMjsKIAkJCQkJbi0+aWZfbm90X2V4 aXN0cyA9IHRydWU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CiAJCTsKIAorT3B0U2Vz c2lvblZhckRlZkV4cHI6IERFRkFVTFQgYl9leHByCQkJCQl7ICQkID0gJDI7IH0KKwkJCXwgLyog RU1QVFkgKi8JCQkJCQkJeyAkJCA9IE5VTEw7IH0KKwkJOworCiAvKgogICogVGVtcG9yYXJ5IHNl c3Npb24gdmFyaWFibGVzIGNhbiBiZSBkcm9wcGVkIG9uIHN1Y2Nlc3NmdWwKICAqIHRyYW5zYWN0 aW9uIGVuZCBsaWtlIHRhYmxlcy4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9hZ2cuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwppbmRleCA5ODgzOWYxMjQ5 Li45ZjcwNDk1YmFmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMK KysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCkBAIC00ODgsNiArNDg4LDcgQEAg Y2hlY2tfYWdnbGV2ZWxzX2FuZF9jb25zdHJhaW50cyhQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUg KmV4cHIpCiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNh c2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX1ZBUklBQkxF X0RFRkFVTFQ6CiAKIAkJCWlmIChpc0FnZykKIAkJCQllcnIgPSBfKCJhZ2dyZWdhdGUgZnVuY3Rp b25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZBVUxUIGV4cHJlc3Npb25zIik7CkBAIC05MzcsNiAr OTM4LDcgQEAgdHJhbnNmb3JtV2luZG93RnVuY0NhbGwoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaW5k b3dGdW5jICp3ZnVuYywKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVM VDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRf VkFSSUFCTEVfREVGQVVMVDoKIAkJCWVyciA9IF8oIndpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBh bGxvd2VkIGluIERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJf S0lORF9JTkRFWF9FWFBSRVNTSU9OOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggZDA5NGFj MzAxMy4uODMzODU2ODAxYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4 cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC01ODgsNiArNTg4 LDcgQEAgZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3ZhcmlhYmxlcyhQYXJzZUV4cHJLaW5kIHBf ZXhwcl9raW5kKQogCQljYXNlIEVYUFJfS0lORF9KT0lOX1VTSU5HOgogCQljYXNlIEVYUFJfS0lO RF9DWUNMRV9NQVJLOgogCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQljYXNlIEVY UFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUOgogCQkJcmVzdWx0ID0gZmFsc2U7CiAJCQlicmVhazsK IAl9CkBAIC02NzMsNiArNjc0LDcgQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgogCQlj YXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgogCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VU OgorCQljYXNlIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUOgogCQkJLyogb2theSAqLwogCQkJ YnJlYWs7CiAKQEAgLTIxNDMsNiArMjE0NSw3IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJsaW5rKQogCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5E X0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgorCQlj YXNlIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUOgogCQkJZXJyID0gXygiY2Fubm90IHVzZSBz dWJxdWVyeSBpbiBERUZBVUxUIGV4cHJlc3Npb24iKTsKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJf S0lORF9JTkRFWF9FWFBSRVNTSU9OOgpAQCAtMzQ5NSw2ICszNDk4LDcgQEAgUGFyc2VFeHByS2lu ZE5hbWUoUGFyc2VFeHByS2luZCBleHByS2luZCkKIAkJCXJldHVybiAiQ0hFQ0siOwogCQljYXNl IEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVG QVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCXJldHVybiAiREVG QVVMVCI7CiAJCWNhc2UgRVhQUl9LSU5EX0lOREVYX0VYUFJFU1NJT046CiAJCQlyZXR1cm4gImlu ZGV4IGV4cHJlc3Npb24iOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1 bmMuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKaW5kZXggOWFhNGY2MDc2OC4u ZmNhYzY5NDQ1NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwor KysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCkBAIC0yNjIwLDYgKzI2MjAsNyBA QCBjaGVja19zcmZfY2FsbF9wbGFjZW1lbnQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpsYXN0 X3NyZiwgaW50IGxvY2F0aW9uKQogCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9E RUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgorCQljYXNlIEVYUFJf S0lORF9WQVJJQUJMRV9ERUZBVUxUOgogCQkJZXJyID0gXygic2V0LXJldHVybmluZyBmdW5jdGlv bnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKIAkJCWJyZWFrOwog CQljYXNlIEVYUFJfS0lORF9JTkRFWF9FWFBSRVNTSU9OOgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggYzI0YTE2 NDJmNy4uZGUzNGQyYWM3MCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwor KysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC01NDM2LDYgKzU0MzYsNyBAQCBnZXRW YXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAlpbnQJCQlpX3Zhcm5hbWVzcGFjZTsKIAlpbnQJCQlp X3ZhcnR5cGU7CiAJaW50CQkJaV92YXJ0eXBuYW1lOworCWludAkJCWlfdmFyZGVmZXhwcjsKIAlp bnQJCQlpX3ZhcnhhY3RlbmRhY3Rpb247CiAJaW50CQkJaV92YXJvd25lcjsKIAlpbnQJCQlpX3Zh cmNvbGxhdGlvbjsKQEAgLTU0NjEsNiArNTQ2Miw3IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpm b3V0KQogCQkJCQkgICIgICAgICAgICAgICBUSEVOIHYudmFyY29sbGF0aW9uXG4iCiAJCQkJCSAg IiAgICAgICAgICAgIEVMU0UgMFxuIgogCQkJCQkgICIgICAgICAgRU5EIEFTIHZhcmNvbGxhdGlv bixcbiIKKwkJCQkJICAiICAgICAgIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIodi52YXJkZWZleHBy LDApIGFzIHZhcmRlZmV4cHIsXG4iCiAJCQkJCSAgIiAgICAgICB2LnZhcm93bmVyLCB2LnZhcmFj bCxcbiIKIAkJCQkJICAiICAgICAgIGFjbGRlZmF1bHQoJ1YnLCB2LnZhcm93bmVyKSBBUyBhY2xk ZWZhdWx0XG4iCiAJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ192YXJpYWJsZSB2XG4iCkBAIC01 NDc3LDYgKzU0NzksNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAlpX3Zhcm5hbWVz cGFjZSA9IFBRZm51bWJlcihyZXMsICJ2YXJuYW1lc3BhY2UiKTsKIAlpX3ZhcnR5cGUgPSBQUWZu dW1iZXIocmVzLCAidmFydHlwZSIpOwogCWlfdmFydHlwbmFtZSA9IFBRZm51bWJlcihyZXMsICJ2 YXJ0eXBuYW1lIik7CisJaV92YXJkZWZleHByID0gUFFmbnVtYmVyKHJlcywgInZhcmRlZmV4cHIi KTsKIAlpX3ZhcnhhY3RlbmRhY3Rpb24gPSBQUWZudW1iZXIocmVzLCAidmFyeGFjdGVuZGFjdGlv biIpOwogCWlfdmFyY29sbGF0aW9uID0gUFFmbnVtYmVyKHJlcywgInZhcmNvbGxhdGlvbiIpOwog CkBAIC01NTEyLDYgKzU1MTUsMTEgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJCXZh cmluZm9baV0uZGFjbC5pbml0cHJpdnMgPSBOVUxMOwogCQl2YXJpbmZvW2ldLnJvbG5hbWUgPSBn ZXRSb2xlTmFtZShQUWdldHZhbHVlKHJlcywgaSwgaV92YXJvd25lcikpOwogCisJCWlmIChQUWdl dGlzbnVsbChyZXMsIGksIGlfdmFyZGVmZXhwcikpCisJCQl2YXJpbmZvW2ldLnZhcmRlZmV4cHIg PSBOVUxMOworCQllbHNlCisJCQl2YXJpbmZvW2ldLnZhcmRlZmV4cHIgPSBwZ19zdHJkdXAoUFFn ZXR2YWx1ZShyZXMsIGksIGlfdmFyZGVmZXhwcikpOworCiAJCS8qIGRvIG5vdCB0cnkgdG8gZHVt cCBBQ0wgaWYgbm8gQUNMIGV4aXN0cyAqLwogCQlpZiAoIVBRZ2V0aXNudWxsKHJlcywgaSwgaV92 YXJhY2wpKQogCQkJdmFyaW5mb1tpXS5kb2JqLmNvbXBvbmVudHMgfD0gRFVNUF9DT01QT05FTlRf QUNMOwpAQCAtNTU0NCw2ICs1NTUyLDcgQEAgZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNv bnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAlQUUV4cEJ1ZmZlciBxdWVyeTsKIAljaGFyCSAg ICpxdWFsdmFybmFtZTsKIAljb25zdCBjaGFyICp2YXJ0eXBuYW1lOworCWNvbnN0IGNoYXIgKnZh cmRlZmV4cHI7CiAJY29uc3QgY2hhciAqdmFyeGFjdGVuZGFjdGlvbjsKIAlPaWQJCQl2YXJjb2xs YXRpb247CiAKQEAgLTU1NTYsNiArNTU2NSw3IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0 LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAKIAlxdWFsdmFybmFtZSA9IHBnX3N0cmR1 cChmbXRRdWFsaWZpZWREdW1wYWJsZSh2YXJpbmZvKSk7CiAJdmFydHlwbmFtZSA9IHZhcmluZm8t PnZhcnR5cG5hbWU7CisJdmFyZGVmZXhwciA9IHZhcmluZm8tPnZhcmRlZmV4cHI7CiAJdmFyeGFj dGVuZGFjdGlvbiA9IHZhcmluZm8tPnZhcnhhY3RlbmRhY3Rpb247CiAJdmFyY29sbGF0aW9uID0g dmFyaW5mby0+dmFyY29sbGF0aW9uOwogCkBAIC01NTc1LDYgKzU1ODUsMTAgQEAgZHVtcFZhcmlh YmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAkJCQkJCQkg IGZtdFF1YWxpZmllZER1bXBhYmxlKGNvbGwpKTsKIAl9CiAKKwlpZiAodmFyZGVmZXhwcikKKwkJ YXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIgREVGQVVMVCAlcyIsCisJCQkJCQkgIHZhcmRlZmV4 cHIpOworCiAJaWYgKHN0cmNtcCh2YXJ4YWN0ZW5kYWN0aW9uLCAiciIpID09IDApCiAJCWFwcGVu ZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCIpOwogCmRpZmYg LS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuaAppbmRleCBlOTcyYTY5OTk1Li4wNTkzNTUzMzlkIDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTcxNyw2 ICs3MTcsNyBAQCB0eXBlZGVmIHN0cnVjdCBfVmFyaWFibGVJbmZvCiAJRHVtcGFibGVBY2wgZGFj bDsKIAlPaWQJCQl2YXJ0eXBlOwogCWNoYXIJICAgKnZhcnR5cG5hbWU7CisJY2hhcgkgICAqdmFy ZGVmZXhwcjsKIAljaGFyCSAgICp2YXJ4YWN0ZW5kYWN0aW9uOwogCWNoYXIJICAgKnZhcmFjbDsK IAljaGFyCSAgICpydmFyYWNsOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3Bn X2R1bXAucGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCA0MTllYTM5 NzI3Li5mNThlZGU1MzM0IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVt cC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtNDAwNSw2ICs0 MDA1LDQyIEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAogCisJJ0NSRUFURSBWQVJJQUJMRSB0 ZXN0X3ZhcmlhYmxlIERFRkFVTFQnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+IDEsCisJCWNhdGNo X2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9vcmRlciA9PiA2MSwK KwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMyBB UyBpbnRlZ2VyIERFRkFVTFQgMTA7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFZB UklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTMgQVMgaW50ZWdlciBERUZBVUxUIDEwO1xFL3htLAor CQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAor CQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVk ZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4g MSwKKwkJfSwKKwl9LAorCisJJ0NSRUFURSBWQVJJQUJMRSB0ZXN0X3ZhcmlhYmxlIERFRkFVTFQg T04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAorCQlj YXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIgPT4g NjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJs ZTQgQVMgaW50ZWdlciBERUZBVUxUIDEwIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCcsCisJCXJl Z2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU0IEFT IGludGVnZXIgREVGQVVMVCAxMCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ7XEUveG0sCisJCWxp a2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlz ZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1 bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAor CQl9LAorCX0sCisKIAknQ1JFQVRFIFZJRVcgdGVzdF92aWV3JyA9PiB7CiAJCWNyZWF0ZV9vcmRl ciA9PiA2MSwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFZJRVcgZHVtcF90ZXN0LnRlc3Rfdmll dwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVz Y3JpYmUuYwppbmRleCA0ZTkyNTc0MmFjLi40OGU1ZWFlYzQzIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtNTI0OCw3 ICs1MjQ4LDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJv c2UpCiAJUFFFeHBCdWZmZXJEYXRhIGJ1ZjsKIAlQR3Jlc3VsdCAgICpyZXM7CiAJcHJpbnRRdWVy eU9wdCBteW9wdCA9IHBzZXQucG9wdDsKLQlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29s dW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl LCBmYWxzZX07CisJc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxz ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl fTsKIAogCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTgwMDAwKQogCXsKQEAgLTUyNjksNiArNTI2OSw3 IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCQkJ CQkgICIgIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdfY29sbGF0aW9uIGMs IHBnX2NhdGFsb2cucGdfdHlwZSBidFxuIgogCQkJCQkgICIgICBXSEVSRSBjLm9pZCA9IHYudmFy Y29sbGF0aW9uIEFORCBidC5vaWQgPSB2LnZhcnR5cGUgQU5EIHYudmFyY29sbGF0aW9uIDw+IGJ0 LnR5cGNvbGxhdGlvbikgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0 X3VzZXJieWlkKHYudmFyb3duZXIpIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9n LnBnX2dldF9leHByKHYudmFyZGVmZXhwciwgMCkgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIENB U0Ugdi52YXJ4YWN0ZW5kYWN0aW9uXG4iCiAJCQkJCSAgIiAgICBXSEVOICdkJyBUSEVOICdPTiBD T01NSVQgRFJPUCdcbiIKIAkJCQkJICAiICAgIFdIRU4gJ3InIFRIRU4gJ09OIFRSQU5TQUNUSU9O IEVORCBSRVNFVCdcbiIKQEAgLTUyNzgsNiArNTI3OSw3IEBAIGxpc3RWYXJpYWJsZXMoY29uc3Qg Y2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIp LAogCQkJCQkgIGdldHRleHRfbm9vcCgiQ29sbGF0aW9uIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29w KCJPd25lciIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiRGVmYXVsdCIpLAogCQkJCQkgIGdldHRl eHRfbm9vcCgiVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIikpOwogCiAJaWYgKHZlcmJvc2UpCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXggMmM1MTk4OWFhNC4uMzUyOGE5OGY2NyAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaApAQCAtNjgsNiArNjgsOSBAQCBDQVRBTE9HKHBnX3Zh cmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQogCS8qIGFjY2VzcyBwZXJtaXNzaW9ucyAq LwogCWFjbGl0ZW0JCXZhcmFjbFsxXSBCS0lfREVGQVVMVChfbnVsbF8pOwogCisJLyogbGlzdCBv ZiBleHByZXNzaW9uIHRyZWVzIGZvciB2YXJpYWJsZSBkZWZhdWx0IChOVUxMIGlmIG5vbmUpICov CisJcGdfbm9kZV90cmVlIHZhcmRlZmV4cHIgQktJX0RFRkFVTFQoX251bGxfKTsKKwogI2VuZGlm CiB9IEZvcm1EYXRhX3BnX3ZhcmlhYmxlOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rl cy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggMDdh ZGE2YzZmYy4uZWRhNmM0ZDMwYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMzQ4Nyw2ICsz NDg3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAlUeXBlTmFtZSAg ICp0eXBlTmFtZTsJCS8qIHRoZSB0eXBlIG9mIHZhcmlhYmxlICovCiAJQ29sbGF0ZUNsYXVzZSAq Y29sbENsYXVzZTsKIAlib29sCQlpZl9ub3RfZXhpc3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0IGFs cmVhZHkgZXhpc3RzICovCisJTm9kZQkgICAqZGVmZXhwcjsJCS8qIGRlZmF1bHQgZXhwcmVzc2lv biAqLwogCWNoYXIJCVhhY3RFbmRBY3Rpb247CS8qIG9uIHRyYW5zYWN0aW9uIGVuZCBhY3Rpb24g Ki8KIH0gQ3JlYXRlU2Vzc2lvblZhclN0bXQ7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bh cnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCmluZGV4 IGMxMWZkYjNkOTcuLmZhNTY2YjE5NGQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9w YXJzZV9ub2RlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaApAQCAtODQs NiArODQsNyBAQCB0eXBlZGVmIGVudW0gUGFyc2VFeHByS2luZAogCUVYUFJfS0lORF9DWUNMRV9N QVJLLAkJLyogY3ljbGUgbWFyayB2YWx1ZSAqLwogCUVYUFJfS0lORF9BU1NJR05fVEFSR0VULAkv KiBQTC9wZ1NRTCBhc3NpZ25tZW50IHRhcmdldCAqLwogCUVYUFJfS0lORF9MRVRfVEFSR0VULAkJ LyogTEVUIHRhcmdldCAqLworCUVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxULCAvKiBkZWZhdWx0 IHZhbHVlIGZvciBzZXNzaW9uIHZhcmlhYmxlICovCiB9IFBhcnNlRXhwcktpbmQ7CiAKIApkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXggNjEwNzdhNTJiMS4uYmM3YjYwYTk3ZSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CkBAIC01OTM1LDIwICs1OTM1LDIwIEBAIENSRUFU RSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcmlh YmxlX293bmVyOwogQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhciBDT0xMQVRFICJDIjsK IFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5 cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IFRyYW5zYWN0 aW9uYWwgZW5kIGFjdGlvbiB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCi0tLS0t LS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tCi0gcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAg ICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVt YSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIg ICAgICAgICAgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNjZXNzIHBy aXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisg cHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192 YXJpYWJsZV9vd25lciB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFy MSBUTyBQVUJMSUM7CiBDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgZGVzY3JpcHRp b24nOwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBT Y2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93 bmVyICAgICAgICAgIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAgICAg QWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAKLS0t LS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KLSBw dWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3Zh cmlhYmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJs ZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgotICAg ICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNzX3Zhcmlh YmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAg IHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IERlZmF1bHQgfCBUcmFuc2Fj dGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAg ICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIx IHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVy IHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KKyAgICAg ICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jl c3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBE Uk9QIFZBUklBQkxFIHZhcjE7CkBAIC02NDE2LDkgKzY0MTYsOSBAQCBMaXN0IG9mIHNjaGVtYXMK ICgwIHJvd3MpCiAKIFxkViAibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlv biB8IE93bmVyIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBO YW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwg ZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWlu LCBidXQgd2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpAQCAtNjU5MSw5ICs2NTkx LDkgQEAgaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJu by5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guaW5zdGEKIFxkeSAibm8uc3VjaC5zY2hlbWEiLiJuby5z dWNoLmV2ZW50LnRyaWdnZXIiCiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90 dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgogXGRW ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRp b24gfCBPd25lciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSst LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwg TmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFs IGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2Fp biwgYnV0IHdpdGggY3VycmVudCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0 aW9ucy4KQEAgLTY3MzAsOSArNjczMCw5IEBAIExpc3Qgb2YgdGV4dCBzZWFyY2ggdGVtcGxhdGVz CiAoMCByb3dzKQogCiBcZFYgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZh cmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNj aGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBUcmFuc2FjdGlvbmFsIGVu ZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3du ZXIgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0t Ky0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBkYXRhYmFzZSBh bmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggYzdhNjg1ZGNlNS4uMTc2NTAxMDJi MSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQKQEAgLTExNiwxMSArMTE2LDExIEBAIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXI7CiBDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CiBTRVQgUk9MRSBUTyBE RUZBVUxUOwogXGRWKyBzdmFydGVzdC52YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxl cwotICBTY2hlbWEgIHwgTmFtZSB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVy ICAgICAgICAgIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNj ZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gCi0tLS0tLS0tLS0t Ky0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBzdmFydGVzdCB8IHZhcjEgfCBpbnRl Z2VyIHwgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9v d25lcit8IAotICAgICAgICAgIHwgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJp YWJsZV9yZWFkZXI9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2YgdmFyaWFibGVzCisgIFNjaGVtYSAgfCBOYW1lIHwgIFR5cGUgICB8IENvbGxhdGlv biB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQg YWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAg IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tCisgc3ZhcnRlc3QgfCB2YXIxIHwgaW50ZWdlciB8ICAgICAgICAgICB8IHJl Z3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAg IHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgCisg ICAgICAgICAgfCAgICAgIHwgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJp YWJsZV9yZWFkZXI9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgCiAoMSByb3cpCiAKIERST1Ag VkFSSUFCTEUgc3ZhcnRlc3QudmFyMTsKQEAgLTIwMDAsMyArMjAwMCw2NiBAQCBTRUxFQ1QgdmFy MSBJUyBOVUxMOwogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgT1IgUkVQ TEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBS QUlTRSBOT1RJQ0UgJ3ZhcnRlc3RfZnggZXhlY3V0ZWQnOworICBSRVRVUk4gMDsKK0VORDsKKyQk IExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgREVGQVVMVCB2 YXJ0ZXN0X2Z4KCk7CistLSB2YXJ0ZXN0X2Z4IHNob3VsZCBiZSBwcm90ZWN0ZWQgYnkgZGVwLCBz aG91bGQgZmFpbAorRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7CitFUlJPUjogIGNhbm5vdCBk cm9wIGZ1bmN0aW9uIHZhcnRlc3RfZngoKSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9u IGl0CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgZGVwZW5kcyBvbiBmdW5jdGlvbiB2 YXJ0ZXN0X2Z4KCkKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBl bmRlbnQgb2JqZWN0cyB0b28uCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworTk9USUNF OiAgdmFydGVzdF9meCBleGVjdXRlZAorIHZhcjEgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisK Ky0tIHRoZSBkZWZleHByIHNob3VsZCBiZSBldmFsdWF0ZWQgb25seSBvbmNlCitTRUxFQ1QgdmFy MTsKKyB2YXIxIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCitESVNDQVJEIFZBUklBQkxFUzsK Ky0tIGluIHRoaXMgY2FzZSwgdGhlIGRlZmV4cHIgc2hvdWxkIG5vdCBiZSBldmFsdWF0ZWQKK0xF VCB2YXIxID0gMTAwOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJv dykKKworRElTQ0FSRCBWQVJJQUJMRVM7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0 ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSQUlTRSBFWENFUFRJT04gJ3Zh cnRlc3RfZnggaXMgZXhlY3V0aW5nJzsKKyAgUkVUVVJOIDA7CitFTkQ7CiskJCBMQU5HVUFHRSBw bHBnc3FsOworLS0gc2hvdWxkIHRvIGZhaWwsIGJ1dCBub3QgdG8gY3Jhc2gKK1NFTEVDVCB2YXIx OworRVJST1I6ICB2YXJ0ZXN0X2Z4IGlzIGV4ZWN1dGluZworQ09OVEVYVDogIFBML3BnU1FMIGZ1 bmN0aW9uIHZhcnRlc3RfZngoKSBsaW5lIDMgYXQgUkFJU0UKKy0tIGFnYWluCitTRUxFQ1QgdmFy MTsKK0VSUk9SOiAgdmFydGVzdF9meCBpcyBleGVjdXRpbmcKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBm dW5jdGlvbiB2YXJ0ZXN0X2Z4KCkgbGluZSAzIGF0IFJBSVNFCistLSBidXQgd2UgY2FuIHdyaXRl CitMRVQgdmFyMSA9IDEwMDsKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCiso MSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gdmFydGVzdF9meCgp OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3Fs IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4IDIwOThj MWZkZWIuLmY5ZGYzNjAzZGUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Np b25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zhcmlh Ymxlcy5zcWwKQEAgLTEzNTQsMyArMTM1NCw1MSBAQCBST0xMQkFDSzsKIFNFTEVDVCB2YXIxIElT IE5VTEw7CiAKIERST1AgVkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJ T04gdmFydGVzdF9meCgpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNF ICd2YXJ0ZXN0X2Z4IGV4ZWN1dGVkJzsKKyAgUkVUVVJOIDA7CitFTkQ7CiskJCBMQU5HVUFHRSBw bHBnc3FsOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgREVGQVVMVCB2YXJ0ZXN0X2Z4 KCk7CisKKy0tIHZhcnRlc3RfZnggc2hvdWxkIGJlIHByb3RlY3RlZCBieSBkZXAsIHNob3VsZCBm YWlsCitEUk9QIEZVTkNUSU9OIHZhcnRlc3RfZngoKTsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxF Q1QgdmFyMTsKKworLS0gdGhlIGRlZmV4cHIgc2hvdWxkIGJlIGV2YWx1YXRlZCBvbmx5IG9uY2UK K1NFTEVDVCB2YXIxOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gaW4gdGhpcyBjYXNlLCB0 aGUgZGVmZXhwciBzaG91bGQgbm90IGJlIGV2YWx1YXRlZAorTEVUIHZhcjEgPSAxMDA7CitTRUxF Q1QgdmFyMTsKKworRElTQ0FSRCBWQVJJQUJMRVM7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNU SU9OIHZhcnRlc3RfZngoKQorUkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIEVYQ0VQ VElPTiAndmFydGVzdF9meCBpcyBleGVjdXRpbmcnOworICBSRVRVUk4gMDsKK0VORDsKKyQkIExB TkdVQUdFIHBscGdzcWw7CisKKy0tIHNob3VsZCB0byBmYWlsLCBidXQgbm90IHRvIGNyYXNoCitT RUxFQ1QgdmFyMTsKKworLS0gYWdhaW4KK1NFTEVDVCB2YXIxOworCistLSBidXQgd2UgY2FuIHdy aXRlCitMRVQgdmFyMSA9IDEwMDsKK1NFTEVDVCB2YXIxOworCitEUk9QIFZBUklBQkxFIHZhcjE7 CitEUk9QIEZVTkNUSU9OIHZhcnRlc3RfZngoKTsKLS0gCjIuNDcuMQoK --000000000000ee56b206299a729a Content-Type: text/x-patch; charset="US-ASCII"; name="v20241219-0011-PREPARE-LET-support.patch" Content-Disposition: attachment; filename="v20241219-0011-PREPARE-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4uzyquh11 RnJvbSAxMDlmOGYzYTgzZjY4ZWNjNmJiYWQ0MWI0Mjc4OGE5OTEyMWY2MDUxIE1vbiBTZXAgMTcg 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 cmFtLnkKaW5kZXggYTY3ZDUwNzMwZi4uZGRiMzhlMzBiMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0xMjE2 MSw3ICsxMjE2MSw4IEBAIFByZXBhcmFibGVTdG10OgogCQkJfCBJbnNlcnRTdG10CiAJCQl8IFVw ZGF0ZVN0bXQKIAkJCXwgRGVsZXRlU3RtdAotCQkJfCBNZXJnZVN0bXQJCQkJCQkvKiBieSBkZWZh dWx0IGFsbCBhcmUgJCQ9JDEgKi8KKwkJCXwgTWVyZ2VTdG10CisJCQl8IExldFN0bXQJCQkJCQkv KiBieSBkZWZhdWx0IGFsbCBhcmUgJCQ9JDEgKi8KIAkJOwogCiAvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jdGUuYyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9jdGUuYwppbmRleCA3NmEwMDgxMDI5Li5mMThkYTEyZjNjIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKKysrIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2N0ZS5jCkBAIC0xMjYsNiArMTI2LDEzIEBAIHRyYW5zZm9ybVdpdGhDbGF1 c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaXRoQ2xhdXNlICp3aXRoQ2xhdXNlKQogCQlDb21tb25U YWJsZUV4cHIgKmN0ZSA9IChDb21tb25UYWJsZUV4cHIgKikgbGZpcnN0KGxjKTsKIAkJTGlzdENl bGwgICAqcmVzdDsKIAorCQkvKiBMRVQgaXMgYWxsb3dlZCBieSBwYXJzZXIsIGJ1dCBub3Qgc3Vw cG9ydGVkLiBSZWplY3QgZm9yIG5vdyAqLworCQlpZiAoSXNBKGN0ZS0+Y3RlcXVlcnksIExldFN0 bXQpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRCksCisJCQkJCWVycm1zZygiTEVUIG5vdCBzdXBwb3J0ZWQgaW4gV0lUSCBxdWVy eSIpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjdGUtPmxvY2F0aW9uKSk7CisK IAkJZm9yX2VhY2hfY2VsbChyZXN0LCB3aXRoQ2xhdXNlLT5jdGVzLCBsbmV4dCh3aXRoQ2xhdXNl LT5jdGVzLCBsYykpCiAJCXsKIAkJCUNvbW1vblRhYmxlRXhwciAqY3RlMiA9IChDb21tb25UYWJs ZUV4cHIgKikgbGZpcnN0KHJlc3QpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDUxNWY3NThj ZjguLmJhZDRjMzBhNzIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4u YworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTQ2NjAsOSArNDY2MCw5 IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCWVsc2UgaWYgKFRhaWxN YXRjaGVzKCJWQUxVRVMiKSAmJiAhVGFpbE1hdGNoZXMoIkRFRkFVTFQiLCAiVkFMVUVTIikpCiAJ CUNPTVBMRVRFX1dJVEgoIigiKTsKIAotLyogTEVUICovCisvKiBMRVQsIEVYUExBSU4gTEVULCBQ UkVQQVJFIExFVCAqLwogCS8qIElmIHByZXYuIHdvcmQgaXMgTEVUIHN1Z2dlc3QgYSBsaXN0IG9m IHZhcmlhYmxlcyAqLwotCWVsc2UgaWYgKE1hdGNoZXMoIkxFVCIpKQorCWVsc2UgaWYgKFRhaWxN YXRjaGVzKCJMRVQiKSkKIAkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xp c3Rfb2ZfdmFyaWFibGVzKTsKIAkvKiBDb21wbGV0ZSBMRVQgPHZhcmlhYmxlPiB3aXRoICI9IiAq LwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJMRVQiLCBNYXRjaEFueSkpCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IGUzNWMyYTE0ZTQu LjMzMDUyMjNkMDAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXMub3V0CkBAIC03MzYsOSArNzM2LDkgQEAgRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIy OwogLS0gdGhlIExFVCBzdGF0ZW1lbnQgc2hvdWxkIGJlIGRpc2FsbG93ZWQgaW4gQ1RFCiBDUkVB VEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CiBXSVRIIHggQVMgKExFVCB2YXIxID0gMTAwKSBTRUxF Q1QgKiBGUk9NIHg7Ci1FUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICJMRVQiCitFUlJP UjogIExFVCBub3Qgc3VwcG9ydGVkIGluIFdJVEggcXVlcnkKIExJTkUgMTogV0lUSCB4IEFTIChM RVQgdmFyMSA9IDEwMCkgU0VMRUNUICogRlJPTSB4OwotICAgICAgICAgICAgICAgICAgIF4KKyAg ICAgICAgICAgICBeCiAtLSBzaG91bGQgYmUgb2sKIExFVCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVz KDEsIDEpOwogLS0gc2hvdWxkIGZhaWwKQEAgLTE3NjcsNSArMTc2Nyw4MiBAQCBTRUxFQ1QgdmFy 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 LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCBm MjM0MGVkNTk2Li5lZWM2MmFkNDgzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9z ZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsCkBAIC0xMjA5LDUgKzEyMDksNjIgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGLCBU SU1JTkcgT0ZGLCBBTkFMWVpFLCBTVU1NQVJZIE9GRiwgQlVGRkVSUyBPRkYpIExFVCB2YXIxID0g KFMKIC0tIHNob3VsZCBiZSAxMAogU0VMRUNUIHZhcjE7CiAKK1NFVCBwbGFuX2NhY2hlX21vZGUg VE8gZm9yY2VfZ2VuZXJpY19wbGFuOworCitQUkVQQVJFIHAxIEFTIExFVCB2YXIxID0gKFNFTEVD VCBjb3VudCgqKSBGUk9NIHZhcl90YWJfdGVzdF90YWJsZSk7CisKK0xFVCB2YXIxID0gTlVMTDsK KworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHAxOworCistLSBzaG91bGQgYmUgTlVMTAor U0VMRUNUIHZhcjE7CisKK0VYUExBSU4gKENPU1RTIE9GRiwgVElNSU5HIE9GRiwgQU5BTFlaRSwg U1VNTUFSWSBPRkYsIEJVRkZFUlMgT0ZGKSBFWEVDVVRFIHAxOworCistLSBzaG91bGQgYmUgMTAK K1NFTEVDVCB2YXIxOworCitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIERFRkFVTFQ7CisKK0RFQUxM T0NBVEUgcDE7CisKIERST1AgVkFSSUFCTEUgdmFyMTsKIERST1AgVEFCTEUgdmFyX3RhYl90ZXN0 X3RhYmxlOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1lcmljOworCitTRVQgcGxhbl9jYWNo ZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKKworUFJFUEFSRSBwMShudW1lcmljKSBBUyBM RVQgdmFyMSA9ICQxOworUFJFUEFSRSBwMiBBUyBTRUxFQ1QgdmFyMTsKKworRVhFQ1VURSBwMShw aSgpICsgMTAwKTsKK0VYRUNVVEUgcDI7CisKKy0tIHByZXBhcmVkIHBsYW4gY2FjaGUgaW52YWxp ZGF0aW9uIHRlc3QKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIG51 bWVyaWM7CisKKy0tIHNob3VsZCBiZSBOVUxMCitFWEVDVVRFIHAyOworCitERUFMTE9DQVRFIHAx OworREVBTExPQ0FURSBwMjsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCitTRVQgcGxhbl9jYWNo ZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgbnVt ZXJpY1tdOworCitQUkVQQVJFIHAxKGludCwgbnVtZXJpYykgQVMgTEVUIHZhcjFbJDFdID0gJDI7 CisKK0xFVCB2YXIxID0gJ3t9Jzo6bnVtZXJpY1tdOworRVhFQ1VURSBwMSgxLCAxMC4yKTsKK0VY RUNVVEUgcDEoMiwgMTAuMyk7CisKK1NFTEVDVCB2YXIxOworCitERUFMTE9DQVRFIHAxOworRFJP UCBWQVJJQUJMRSB2YXIxOwotLSAKMi40Ny4xCgo= --000000000000ee56b206299a729a Content-Type: text/x-patch; charset="US-ASCII"; name="v20241219-0010-EXPLAIN-LET-support.patch" Content-Disposition: attachment; filename="v20241219-0010-EXPLAIN-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4uzyqup12 RnJvbSA4YzcxMDdlNzcwMzQxMTIwNjNiNzgwY2YyYTJjODc5YTgyMmYyMjIwIE1vbiBTZXAgMTcg 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 IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IGEyMDFlZDMwODIuLmU3YWQ1 MjQzZWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYworKysgYi9z 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 ZXBhcmUuYwppbmRleCBlOWUzOTNhYTAyLi5hZjQyNDk2MjYzIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFy ZS5jCkBAIC02NjIsOCArNjYyLDkgQEAgRXhwbGFpbkV4ZWN1dGVRdWVyeShFeGVjdXRlU3RtdCAq ZXhlY3N0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJCVBsYW5uZWRT dG10ICpwc3RtdCA9IGxmaXJzdF9ub2RlKFBsYW5uZWRTdG10LCBwKTsKIAogCQlpZiAocHN0bXQt PmNvbW1hbmRUeXBlICE9IENNRF9VVElMSVRZKQotCQkJRXhwbGFpbk9uZVBsYW4ocHN0bXQsIGlu dG8sIGVzLCBxdWVyeV9zdHJpbmcsIHBhcmFtTEksIHBzdGF0ZS0+cF9xdWVyeUVudiwKLQkJCQkJ CSAgICZwbGFuZHVyYXRpb24sIChlcy0+YnVmZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwpLAorCQkJ RXhwbGFpbk9uZVBsYW4ocHN0bXQsIGludG8sIEludmFsaWRPaWQsIGVzLCBxdWVyeV9zdHJpbmcs IHBhcmFtTEksCisJCQkJCQkgICBwc3RhdGUtPnBfcXVlcnlFbnYsICZwbGFuZHVyYXRpb24sCisJ CQkJCQkgICAoZXMtPmJ1ZmZlcnMgPyAmYnVmdXNhZ2UgOiBOVUxMKSwKIAkJCQkJCSAgIGVzLT5t ZW1vcnkgPyAmbWVtX2NvdW50ZXJzIDogTlVMTCk7CiAJCWVsc2UKIAkJCUV4cGxhaW5PbmVVdGls aXR5KHBzdG10LT51dGlsaXR5U3RtdCwgaW50bywgZXMsIHBzdGF0ZSwgcGFyYW1MSSk7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQppbmRleCBmYmYwNmYxMTQ5Li5hNjdkNTA3MzBmIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTEyMTMw LDcgKzEyMTMwLDggQEAgRXhwbGFpbmFibGVTdG10OgogCQkJfCBDcmVhdGVBc1N0bXQKIAkJCXwg Q3JlYXRlTWF0Vmlld1N0bXQKIAkJCXwgUmVmcmVzaE1hdFZpZXdTdG10Ci0JCQl8IEV4ZWN1dGVT dG10CQkJCQkvKiBieSBkZWZhdWx0IGFsbCBhcmUgJCQ9JDEgKi8KKwkJCXwgRXhlY3V0ZVN0bXQK KwkJCXwgTGV0U3RtdAkJCQkJCS8qIGJ5IGRlZmF1bHQgYWxsIGFyZSAkJD0kMSAqLwogCQk7CiAK IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv ZXhwbGFpbi5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFpbi5oCmluZGV4IGFhNTg3MmJj MTUuLmY1YjA4ODU3YWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2V4cGxhaW4u aAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9leHBsYWluLmgKQEAgLTEwMyw3ICsxMDMsOCBA QCBleHRlcm4gdm9pZCBFeHBsYWluT25lVXRpbGl0eShOb2RlICp1dGlsaXR5U3RtdCwgSW50b0Ns YXVzZSAqaW50bywKIAkJCQkJCQkgIEV4cGxhaW5TdGF0ZSAqZXMsIFBhcnNlU3RhdGUgKnBzdGF0 ZSwKIAkJCQkJCQkgIFBhcmFtTGlzdEluZm8gcGFyYW1zKTsKIAotZXh0ZXJuIHZvaWQgRXhwbGFp bk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBJbnRvQ2xhdXNlICppbnRvLAorZXh0 ZXJuIHZvaWQgRXhwbGFpbk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LAorCQkJCQkJ ICAgSW50b0NsYXVzZSAqaW50bywgT2lkIHRhcmdldHZhciwKIAkJCQkJCSAgIEV4cGxhaW5TdGF0 ZSAqZXMsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAogCQkJCQkJICAgUGFyYW1MaXN0SW5mbyBw YXJhbXMsIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LAogCQkJCQkJICAgY29uc3QgaW5zdHJf dGltZSAqcGxhbmR1cmF0aW9uLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dAppbmRleCBkNDU0MzEyMDdmLi5lMzVjMmExNGU0IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTcyOSwz ICsxNzI5LDQzIEBAIE5PVElDRTogIDIwIHQKIFNFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVu Y2VfY29udGV4dF9ndWFyZCBUTyBERUZBVUxUOwogRFJPUCBWQVJJQUJMRSB2YXIxOwogRFJPUCBU QUJMRSB2YXJ0ZXN0X3RhYjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBiaWdpbnQ7CitDUkVBVEUg VEFCTEUgdmFyX3RhYl90ZXN0X3RhYmxlKGEgaW50KTsKK0lOU0VSVCBJTlRPIHZhcl90YWJfdGVz dF90YWJsZSBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsKK1ZBQ1VVTSBBTkFM WVpFIHZhcl90YWJfdGVzdF90YWJsZTsKK0VYUExBSU4gKENPU1RTIE9GRikgTEVUIHZhcjEgPSAo U0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKyAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTRVQgU0VTU0lPTiBWQVJJQUJMRQorIFJlc3VsdAor ICAgSW5pdFBsYW4gMQorICAgICAtPiAgQWdncmVnYXRlCisgICAgICAgICAgIC0+ICBTZXEgU2Nh biBvbiB2YXJfdGFiX3Rlc3RfdGFibGUKKyg1IHJvd3MpCisKKy0tIHNob3VsZCBiZSBOVUxMCitT RUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAgIAorKDEgcm93KQorCitFWFBMQUlOIChD T1NUUyBPRkYsIFRJTUlORyBPRkYsIEFOQUxZWkUsIFNVTU1BUlkgT0ZGLCBCVUZGRVJTIE9GRikg TEVUIHZhcjEgPSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNFVCBTRVNTSU9OIFZBUklBQkxFCisgUmVz dWx0IChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICBJbml0UGxhbiAxCisgICAgIC0+ICBBZ2dy ZWdhdGUgKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKKyAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9u IHZhcl90YWJfdGVzdF90YWJsZSAoYWN0dWFsIHJvd3M9MTAgbG9vcHM9MSkKKyg1IHJvd3MpCisK Ky0tIHNob3VsZCBiZSAxMAorU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygx IHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJfdGFiX3Rlc3RfdGFi bGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggNTI2 NTkzYmI3OS4uZjIzNDBlZDU5NiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFy aWFibGVzLnNxbApAQCAtMTE5MCwzICsxMTkwLDI0IEBAIFNFVCBzZXNzaW9uX3ZhcmlhYmxlc191 c2VfZmVuY2VfY29udGV4dF9ndWFyZCBUTyBERUZBVUxUOwogCiBEUk9QIFZBUklBQkxFIHZhcjE7 CiBEUk9QIFRBQkxFIHZhcnRlc3RfdGFiMTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgYmlnaW50 OworCitDUkVBVEUgVEFCTEUgdmFyX3RhYl90ZXN0X3RhYmxlKGEgaW50KTsKKworSU5TRVJUIElO VE8gdmFyX3RhYl90ZXN0X3RhYmxlIFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAp OworCitWQUNVVU0gQU5BTFlaRSB2YXJfdGFiX3Rlc3RfdGFibGU7CisKK0VYUExBSU4gKENPU1RT IE9GRikgTEVUIHZhcjEgPSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxl KTsKKworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxOworCitFWFBMQUlOIChDT1NUUyBP RkYsIFRJTUlORyBPRkYsIEFOQUxZWkUsIFNVTU1BUlkgT0ZGLCBCVUZGRVJTIE9GRikgTEVUIHZh cjEgPSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKworLS0gc2hv dWxkIGJlIDEwCitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJM RSB2YXJfdGFiX3Rlc3RfdGFibGU7Ci0tIAoyLjQ3LjEKCg== --000000000000ee56b206299a729a Content-Type: text/x-patch; charset="US-ASCII"; name="v20241219-0009-dynamic-check-of-usage-of-session-variable-fences.patch" Content-Disposition: attachment; filename="v20241219-0009-dynamic-check-of-usage-of-session-variable-fences.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4uzyqv113 RnJvbSA3N2RjN2FhYjhiYmJkZTA2ZjU1MjgwN2NhOWUwM2IzZTE4OGVmYWFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBGcmksIDEzIERlYyAyMDI0IDA2OjI4OjQ1ICswMTAwClN1YmplY3Q6IFtQ QVRDSCAwOS8yMl0gZHluYW1pYyBjaGVjayBvZiB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlIGZl bmNlcwoKVGhpcyBwYXRjaCBhbGxvd3MgdG8gc3BlY2lmeSBkeW5hbWljIGNvbnRleHQgd2hlcmUg ZmVuY2luZwpvZiBzZXNzaW9uIHZhcmlhYmxlcyBpcyByZXF1aXJlZC4gUG9zc2libGUgY29udGV4 dHMgYXJlCm5vbmUsIG5vc3BpIG9yIGFsbC4gV2l0aCB0aGlzIGNoZWNrIGlzIHBvc3NpYmxlIHRv IGZvcmNlCnZhcmlhYmxlIGZlbmNpbmcgb3V0c2lkZSBzdG9yZWQgcHJvY2VkdXJlcy4KLS0tCiBk b2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgICAgICAgICAgICAgICAgICAgICAgfCA1NiArKysrKysr KysrKysKIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAz ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAzMyAr KysrKysrCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jICAgICAgICAgICAgICAgfCAg NCArCiBzcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYyAgICAgICAgICAgICAgICAgICAgfCAgOCAr Kwogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgICAgICAgICAgIHwgMTkgKysr Kwogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIHwgIDEgKwog c3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oICAgICAgIHwgMTYgKysrKwog c3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3BpLmggICAgICAgICAgICAgICAgICAgIHwgIDEgKwogLi4u L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgOTAgKysrKysrKysr KysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAg IHwgNzMgKysrKysrKysrKysrKysrCiAxMSBmaWxlcyBjaGFuZ2VkLCAzMDMgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbCBi L2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAppbmRleCA2NWYxOTU5OGMyLi5iMWRkN2U1MGQwIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Nv bmZpZy5zZ21sCkBAIC0xMDg0MCw2ICsxMDg0MCw2MiBAQCBERVRBSUw6ICBTZXNzaW9uIHZhcmlh YmxlcyBjYW4gYmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGluZSdzIHZhcmlhYmxlcyBhbmQg cgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxp c3RlbnRyeSBpZD0iZ3VjLXNlc3Npb24tdmFyaWFibGVzLXVzZS1mZW5jZS1jb250ZXh0LWd1YXJk IiB4cmVmbGFiZWw9InNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkIj4K KyAgICAgIDx0ZXJtPjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0 X2d1YXJkPC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJt PgorICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9j b250ZXh0X2d1YXJkPC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4K KyAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAg ICAgPHBhcmE+CisgICAgICAgV2hlbiBvbiwgYW4gZXJyb3IgaXMgcmFpc2VkIHdoZW4gYSBzZXNz aW9uIHZhcmlhYmxlIGlkZW50aWZpZXIgaXMgdXNlZAorICAgICAgIGluc2lkZSBhIHF1ZXJ5IHdp dGhvdXQgdmFyaWFibGUgZmVuY2UgaW4gY2hvb3NlZCBjb250ZXh0LiBUaGUgZGVmYXVsdAorICAg ICAgIGlzIDxsaXRlcmFsPm5vbmU8L2xpdGVyYWw+LiBUaGUgZXJyb3IgaXMgcmFpc2VkIG9ubHkg d2hlbiB2YXJpYWJsZSBpcworICAgICAgIHVzZWQgaW4gcGxhY2VzLCB3aGVyZSBhbiBjb2xsaXNp b25zIHdpdGggY29sdW1uIG5hbWVzIGlzIHBvc3NpYmxlIChhbmQKKyAgICAgICB3aGVuIHZhcmlh YmxlIGZlbmNlcyBhcmUgcG9zc2libGUpLiBUaGUgYWxsb3dlZCB2YWx1ZXMgb2YKKyAgICAgICA8 dmFybmFtZT5zZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZDwvdmFybmFt ZT4gYXJlCisgICAgICAgPGxpdGVyYWw+bm9uZTwvbGl0ZXJhbD4gKGFsbG93IHVzaW5nIHNlc3Np b24gdmFyaWFibGVzIHdpdGhvdXQKKyAgICAgICB2YXJpYWJsZSdzIGZlbmNlcyBhbHdheXMpLCA8 bGl0ZXJhbD5hbGw8L2xpdGVyYWw+IChyZXF1aXJlcyB2YXJpYWJsZQorICAgICAgIGZlbmNpbmcg ZXZlcnl3aGVyZSksIGFuZCA8bGl0ZXJhbD5ub3NwaTwvbGl0ZXJhbD4gKHJlcXVpcmVzIHZhcmlh YmxlCisgICAgICAgZmVuY2luZyBvdXRzaWRlIFNQSSBjb250ZXh0cyAob3V0c2lkZSBzdG9yZWQg cHJvY2VkdXJlcykuCis8cHJvZ3JhbWxpc3Rpbmc+CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNl X2ZlbmNlX2NvbnRleHRfZ3VhcmQgVE8gJ25vc3BpJzsKK0NSRUFURSBWQVJJQUJMRSBhIGludDsK KworTEVUIGEgPSAxMDsKK0RPICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJ2EgPSAlJywgYTsK K0VORDsKKyQkOworCitTRUxFQ1QgYTsKK1NFTEVDVCBWQVJJQUJMRShzKTsKKzwvcHJvZ3JhbWxp c3Rpbmc+CisKKzxzY3JlZW4+CitOT1RJQ0U6ICBhID0gMTAKKworRVJST1I6ICBzZXNzaW9uIHZh cmlhYmxlICJwdWJsaWMuYSIgaXMgbm90IHVzZWQgaW5zaWRlIHZhcmlhYmxlIGZlbmNlCitERVRB SUw6ICBUaGVyZSBpcyBhIHJpc2sgb2YgdW53YW50ZWQgdXNhZ2Ugb2Ygc2Vzc2lvbiB2YXJpYWJs ZS4KK0hJTlQ6ICBVc2UgdmFyaWFibGUgZmVuY2UgIlZBUklBQkxFKHZhcm5hbWUpIGZvciBhY2Nl c3MgdG8gdmFyaWFibGUiLgorCitTRUxFQ1QgdmFyaWFibGUoYSk7CisgYSAgCistLS0tCisgMTAK KygxIHJvdykKKzwvc2NyZWVuPgorICAgICAgIDwvcGFyYT4KKworICAgICAgIDxwYXJhPgorICAg ICAgICBXaGVuIHlvdSBhZnJhaWQgYWJvdXQgdW53YW50ZWQgdXNhZ2Ugb2Ygc2Vzc2lvbiB2YXJp YWJsZXMsIHNldAorICAgICAgICB0aGlzIGZlYXR1cmUgdG8gPGxpdGVyYWw+YWxsPC9saXRlcmFs PiBvciBtaW5pbWFseSB0bworICAgICAgICA8bGl0ZXJhbD5ub3NwaTwvbGl0ZXJhbD4uCisgICAg ICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAg ICAgPHZhcmxpc3RlbnRyeSBpZD0iZ3VjLXNlc3Npb24tdmFyaWFibGVzLXVzZS1mZW5jZS13YXJu aW5nLWd1YXJkIiB4cmVmbGFiZWw9InNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5n X2d1YXJkIj4KICAgICAgIDx0ZXJtPjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5j ZV93YXJuaW5nX2d1YXJkPC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCiAgICAgICA8 aW5kZXh0ZXJtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9z Z21sL2RkbC5zZ21sCmluZGV4IGJlM2Y5M2IyY2IuLjhlYWY0MWUwNzQgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTU0MjQs NyArNTQyNCw4IEBAIFNFTEVDVCBWQVJJQUJMRShjdXJyZW50X3VzZXJfaWQpOwogICAgV2hlbiB0 aGVyZSBpcyBhIHJpc2sgb2YgcG9zc2libGUgY29sbGlzaW9ucyBiZXR3ZWVuIHZhcmlhYmxlIGlk ZW50aWZpZXJzCiAgICBhbmQgY29sdW1uIG5hbWVzLCB0aGVuIHVzaW5nIHZhcmlhYmxlIGZlbmNl IHN5bnRheCBjYW4gYmUgcmVjb21tZW5kZWQuCiAgICBVc2FnZSBzZXNzaW9uIHZhcmlhYmxlIHdp dGhvdXQgdmFyaWFibGUgZmVuY2UgY2FuIGJlIGRldGVjdGVkIGJ5Ci0gICB3YXJuaW5nIDx4cmVm IGxpbmtlbmQ9Imd1Yy1zZXNzaW9uLXZhcmlhYmxlcy11c2UtZmVuY2Utd2FybmluZy1ndWFyZCIv Pi4KKyAgIHdhcm5pbmcgPHhyZWYgbGlua2VuZD0iZ3VjLXNlc3Npb24tdmFyaWFibGVzLXVzZS1m ZW5jZS13YXJuaW5nLWd1YXJkIi8+CisgICBvciBieSBjaGVjayA8eHJlZiBsaW5rZW5kPSJndWMt c2Vzc2lvbi12YXJpYWJsZXMtdXNlLWZlbmNlLWNvbnRleHQtZ3VhcmQiLz4uCiAgIDwvcGFyYT4K ICAgPC9zZWN0MT4KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4 IGIzN2Y2YzNmYjEuLmU4YjIzNjhiZDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmMKQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9u X3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiZXhlY3V0b3Ivc3BpLmgiCiAjaW5jbHVkZSAiZXhlY3V0 b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCiAjaW5jbHVkZSAi bWlzY2FkbWluLmgiCkBAIC0zMSw2ICszMiwxMyBAQAogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3Iu aCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogCisvKgorICogVGhlIHNlc3Npb24gdmFy aWFibGVzIHVzZSBmZW5jZSBjb250ZXh0IGFsbG93IHRvIHNwZWNpZnkKKyAqIHRoZSBjb250ZXh0 cyB3aGVyZSB1c2luZyBzZXNzaW9uIHZhcmlhYmxlIGZlbmNlcyBhcmUgcmVxdWlyZWQuCisgKi8K K2ludAkJc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgPQorCQkJCQkJ CQlTRVNTSU9OVkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfTk9ORTsKKwogLyoKICAq IFRoZSB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHN0b3JlZCBpbiB0aGUgYmFja2Vu ZCdzIHByaXZhdGUgbWVtb3J5CiAgKiBpbiB0aGUgZGVkaWNhdGVkIG1lbW9yeSBjb250ZXh0IFNW YXJpYWJsZU1lbW9yeUNvbnRleHQgaW4gYmluYXJ5IGZvcm1hdC4KQEAgLTgzMiwzICs4NDAsMjgg QEAgUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpCiAJaWYgKFNWYXJpYWJsZU1lbW9yeUNvbnRl eHQgIT0gTlVMTCkKIAkJTWVtb3J5Q29udGV4dFJlc2V0KFNWYXJpYWJsZU1lbW9yeUNvbnRleHQp OwogfQorCisvKgorICogUmFpc2UgZXJyb3Igd2hlbiB1bmZlbmNlZCB2YXJpYWJsZSBpcyB1c2Vk IGluIHdyb25nIGNvbnRleHQuCisgKiBUaGlzIGNoZWNrIGFsbG93cyB0byBmb3JjZSBzZXNzaW9u IHZhcmlhYmxlIGZlbmNpbmcgb3V0c2lkZQorICogc3RvcmVkIHByb2NlZHVyZXMgZW52aXJvbm1l bnQuCisgKi8KK3ZvaWQKK1Nlc3Npb25WYXJpYWJsZXNVc2VGZW5jZUNvbnRleHRDaGVjayhPaWQg dmFyaWQsIGJvb2wgaXNfZmVuY2VkKQoreworCWlmIChpc19mZW5jZWQpCisJCXJldHVybjsKKwor CWlmICgoKHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkID09CisJCQlT RVNTSU9OVkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfQUxMKSAmJiAhaXNfZmVuY2Vk KSB8fAorCQkoKHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkID09CisJ CQlTRVNTSU9OVkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfTk9TUEkpICYmCisJCQkJ IVNQSV9pbnNpZGVfc3BpX2NvbnRleHQoKSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNv ZGUoRVJSQ09ERV9JTlZBTElEX0NPTFVNTl9SRUZFUkVOQ0UpLAorCQkJCSBlcnJtc2coInNlc3Np b24gdmFyaWFibGUgXCIlcy4lc1wiIGlzIG5vdCB1c2VkIGluc2lkZSB2YXJpYWJsZSBmZW5jZSIs CisJCQkJIGdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uo dmFyaWQpKSwKKwkJCQkgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpLAorCQkJCSBl cnJkZXRhaWwoIlRoZXJlIGlzIGEgcmlzayBvZiB1bndhbnRlZCB1c2FnZSBvZiBzZXNzaW9uIHZh cmlhYmxlLiIpLAorCQkJCSBlcnJoaW50KCJVc2UgdmFyaWFibGUgZmVuY2UgXCJWQVJJQUJMRSh2 YXJuYW1lKSBmb3IgYWNjZXNzIHRvIHZhcmlhYmxlXCIuIikpKTsKK30KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj RXhwci5jCmluZGV4IDBjMzM5YTBiM2QuLjUwNjU0MmY0MzMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHIuYwpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUu aCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhl Y3V0b3IvZXhlY0V4cHIuaCIKICNpbmNsdWRlICJleGVjdXRvci9ub2RlU3VicGxhbi5oIgogI2lu Y2x1ZGUgImZ1bmNhcGkuaCIKQEAgLTk5OSw2ICsxMDAwLDkgQEAgRXhlY0luaXRFeHByUmVjKEV4 cHIgKm5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAJCQkJCQkJU2Vzc2lvblZhcmlhYmxlVmFsdWUg KmVzX3Nlc3Npb25fdmFyaWFibGVzID0gTlVMTDsKIAkJCQkJCQlTZXNzaW9uVmFyaWFibGVWYWx1 ZSAqdmFyOwogCisJCQkJCQkJU2Vzc2lvblZhcmlhYmxlc1VzZUZlbmNlQ29udGV4dENoZWNrKHBh cmFtLT5wYXJhbXZhcmlkLAorCQkJCQkJCQkJCQkJCQkJCSBwYXJhbS0+cGFyYW12YXJmZW5jZWQp OworCiAJCQkJCQkJaWYgKHN0YXRlLT5wYXJlbnQgJiYgc3RhdGUtPnBhcmVudC0+c3RhdGUpCiAJ CQkJCQkJewogCQkJCQkJCQllc19zZXNzaW9uX3ZhcmlhYmxlcyA9IHN0YXRlLT5wYXJlbnQtPnN0 YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlczsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL3NwaS5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKaW5kZXggYzFkOGZkMDhjNi4u NjU5YmFlMGZiYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKKysrIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKQEAgLTU5MCw2ICs1OTAsMTQgQEAgU1BJX2luc2lk ZV9ub25hdG9taWNfY29udGV4dCh2b2lkKQogCXJldHVybiB0cnVlOwogfQogCisvKgorICogQXJl IHdlIGV4ZWN1dGVkIGluc2lkZSBhIFNQST8KKyAqLworYm9vbAorU1BJX2luc2lkZV9zcGlfY29u dGV4dCh2b2lkKQoreworCXJldHVybiAoX1NQSV9jdXJyZW50ICE9IE5VTEwpOworfQogCiAvKiBQ YXJzZSwgcGxhbiwgYW5kIGV4ZWN1dGUgYSBxdWVyeSBzdHJpbmcgKi8KIGludApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgYi9zcmMvYmFja2VuZC91dGls cy9taXNjL2d1Y190YWJsZXMuYwppbmRleCA4NTNhODBkNzlhLi4yZTM2NzliNjViIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpAQCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgImNh dGFsb2cvc3RvcmFnZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNlLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3VzZXIuaCIKQEAgLTQyMyw2ICs0 MjQsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjb25maWdfZW51bV9lbnRyeSBkZWJ1Z19sb2dp Y2FsX3JlcGxpY2F0aW9uX3N0cmVhbWluZ19vcHRpb24KIAl7TlVMTCwgMCwgZmFsc2V9CiB9Owog CitzdGF0aWMgY29uc3Qgc3RydWN0IGNvbmZpZ19lbnVtX2VudHJ5IHNlc3Npb25fdmFyaWFibGVz X3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkX29wdGlvbnNbXSA9IHsKKwl7Im5vbmUiLCBTRVNTSU9O VkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfTk9ORSwgZmFsc2V9LAorCXsiYWxsIiwg U0VTU0lPTlZBUklBQkxFX1VTRV9GRU5DRV9DT05URVhUX0dVQVJEX0FMTCwgZmFsc2V9LAorCXsi bm9zcGkiLCBTRVNTSU9OVkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfTk9TUEksIGZh bHNlfSwKKwl7TlVMTCwgMCwgZmFsc2V9Cit9OworCiBTdGF0aWNBc3NlcnREZWNsKGxlbmd0aG9m KHNzbF9wcm90b2NvbF92ZXJzaW9uc19pbmZvKSA9PSAoUEdfVExTMV8zX1ZFUlNJT04gKyAyKSwK IAkJCQkgImFycmF5IGxlbmd0aCBtaXNtYXRjaCIpOwogCkBAIC01MjQ0LDYgKzUyNTIsMTcgQEAg c3RydWN0IGNvbmZpZ19lbnVtIENvbmZpZ3VyZU5hbWVzRW51bVtdID0KIAkJTlVMTCwgTlVMTCwg TlVMTAogCX0sCiAKKwl7CisJCXsic2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRf Z3VhcmQiLCBQR0NfVVNFUlNFVCwgQ0xJRU5UX0NPTk5fU1RBVEVNRU5ULAorCQkJZ2V0dGV4dF9u b29wKCJDaG9vc2VzIHRoZSBjb250ZXh0IHdoZXJlIHNlc3Npb24gdmFyaWFibGVzIHNob3VsZCBi ZSB1c2VkIGluc2lkZSBmZW5jZS4iKSwKKwkJCU5VTEwKKwkJfSwKKwkJJnNlc3Npb25fdmFyaWFi bGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkLAorCQlTRVNTSU9OVkFSSUFCTEVfVVNFX0ZFTkNF X0NPTlRFWFRfR1VBUkRfTk9ORSwgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRf Z3VhcmRfb3B0aW9ucywKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCisKKwogCS8qIEVuZC1vZi1s aXN0IG1hcmtlciAqLwogCXsKIAkJe05VTEwsIDAsIDAsIE5VTEwsIE5VTEx9LCBOVUxMLCAwLCBO VUxMLCBOVUxMLCBOVUxMLCBOVUxMCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNj L3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVz cWwuY29uZi5zYW1wbGUKaW5kZXggNDcwNDFjYmU4MC4uYzMwNjJiMjI5MSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQpAQCAtNzE4LDYgKzcxOCw3 IEBACiAjc2Vzc2lvbl9yZXBsaWNhdGlvbl9yb2xlID0gJ29yaWdpbicKICNzZXNzaW9uX3Zhcmlh Ymxlc19hbWJpZ3VpdHlfd2FybmluZyA9IG9mZgogI3Nlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5j ZV93YXJuaW5nX2d1YXJkID0gb2ZmCisjc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRl eHRfZ3VhcmQgPSAnbm9uZScKICNzdGF0ZW1lbnRfdGltZW91dCA9IDAJCQkJIyBpbiBtaWxsaXNl Y29uZHMsIDAgaXMgZGlzYWJsZWQKICN0cmFuc2FjdGlvbl90aW1lb3V0ID0gMAkJCSMgaW4gbWls bGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCiAjbG9ja190aW1lb3V0ID0gMAkJCQkjIGluIG1pbGxp c2Vjb25kcywgMCBpcyBkaXNhYmxlZApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5oCmluZGV4IDNkYWI4YWUyYTQuLjQzZGM4ZjkzNzIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmgKQEAgLTMyLDUgKzMyLDIxIEBAIGV4dGVybiB2b2lkIEV4ZWN1dGVM ZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCwgUGFyYW1MaXN0SW5mbyBw YXJhCiAJCQkJCQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwgUXVlcnlDb21wbGV0aW9u ICpxYyk7CiAKIGV4dGVybiB2b2lkIFJlc2V0U2Vzc2lvblZhcmlhYmxlcyh2b2lkKTsKK2V4dGVy biB2b2lkIFNlc3Npb25WYXJpYWJsZXNVc2VGZW5jZUNvbnRleHRDaGVjayhPaWQgdmFyaWQsIGJv b2wgaXNfZmVuY2VkKTsKKworLyoKKyAqIFNwZWNpZnkgdGhlIGR5bmFtaWMgY29udGV4dCB3aGVy ZSB2YXJpYWJsZSBmZW5jZSBpcyByZXF1aXJlZAorICovCit0eXBlZGVmIGVudW0gU2Vzc2lvblZh cmlhYmxlc1VzZUZlbmNlQ29udGV4dEd1YXJkCit7CisJLyogRGlzYWJsZSBmZW5jZSB1c2FnZSBj b250ZXh0IGd1YXJkICovCisJU0VTU0lPTlZBUklBQkxFX1VTRV9GRU5DRV9DT05URVhUX0dVQVJE X05PTkUsCisJLyogRW5hYmxlIGZlbmNlIHVzYWdlIGNvbnRleHQgZ3VhcmQgZXZlcnl3aGVyZSAq LworCVNFU1NJT05WQVJJQUJMRV9VU0VfRkVOQ0VfQ09OVEVYVF9HVUFSRF9BTEwsCisJLyogRW5h YmxlIGZlbmNlIHVzYWdlIGNvbnRleHQgZ3VhcmQgd2hlbiBTUEkgaXMgbm90IHVzZWQgKi8KKwlT RVNTSU9OVkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfTk9TUEksCit9IFNlc3Npb25W YXJpYWJsZXNVc2VGZW5jZUNvbnRleHRHdWFyZDsKKworZXh0ZXJuIFBHRExMSU1QT1JUIGludCBz ZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZDsKIAogI2VuZGlmCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9zcGkuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9y L3NwaS5oCmluZGV4IDQ4Yjg3NzMwZWEuLjRlYThiZGE5MzEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2V4ZWN1dG9yL3NwaS5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3NwaS5oCkBAIC0y MDMsNSArMjAzLDYgQEAgZXh0ZXJuIHZvaWQgU1BJX3JvbGxiYWNrX2FuZF9jaGFpbih2b2lkKTsK IGV4dGVybiB2b2lkIEF0RU9YYWN0X1NQSShib29sIGlzQ29tbWl0KTsKIGV4dGVybiB2b2lkIEF0 RU9TdWJYYWN0X1NQSShib29sIGlzQ29tbWl0LCBTdWJUcmFuc2FjdGlvbklkIG15U3ViaWQpOwog ZXh0ZXJuIGJvb2wgU1BJX2luc2lkZV9ub25hdG9taWNfY29udGV4dCh2b2lkKTsKK2V4dGVybiBi b29sIFNQSV9pbnNpZGVfc3BpX2NvbnRleHQodm9pZCk7CiAKICNlbmRpZgkJCQkJCQkvKiBTUElf SCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dAppbmRleCA5Njk4MDY2NmI1Li5kNDU0MzEyMDdmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTYzOSwzICsxNjM5LDkzIEBAIERS T1AgU0NIRU1BIHRlc3R2YXI7CiBTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5p bmcgVE8gREVGQVVMVDsKIFNFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19n dWFyZCBUTyBERUZBVUxUOwogU0VUIHNlYXJjaF9wYXRoIFRPIERFRkFVTFQ7CistLSB0ZXN0IHNl c3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkCitDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyBpbnQ7CitDUkVBVEUgVEFCTEUgdmFydGVzdF90YWIxKGEgaW50KTsKK0xFVCB2YXIx ID0gMjA7CitJTlNFUlQgSU5UTyB2YXJ0ZXN0X3RhYjEgVkFMVUVTKDIwKTsKK1NFVCBzZXNzaW9u X3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZCBUTyAnbm9uZSc7CistLSBzaG91bGQg YmUgb2sKK1NFTEVDVCB2YXIxLCBWQVJJQUJMRSh2YXIxKTsKKyB2YXIxIHwgdmFyMSAKKy0tLS0t LSstLS0tLS0KKyAgIDIwIHwgICAyMAorKDEgcm93KQorCitETyAkJAorREVDTEFSRSB0IGludDsK K0JFR0lOCisgIFNFTEVDVCBhIEZST00gdmFydGVzdF90YWIxIFdIRVJFIGEgPSB2YXIxIElOVE8g dDsKKyAgUkFJU0UgTk9USUNFICclICUnLCB2YXIxLCB2YXIxID0gdDsKKyAgU0VMRUNUIGEgRlJP TSB2YXJ0ZXN0X3RhYjEgV0hFUkUgYSA9IFZBUklBQkxFKHZhcjEpIElOVE8gdDsKKyAgUkFJU0Ug Tk9USUNFICclICUnLCBWQVJJQUJMRSh2YXIxKSwgVkFSSUFCTEUodmFyMSkgPSB0OworRU5EOwor JCQ7CitOT1RJQ0U6ICAyMCB0CitOT1RJQ0U6ICAyMCB0CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNf dXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgVE8gJ2FsbCc7CistLSBzaG91bGQgZmFpbAorU0VMRUNU IHZhcjEsIFZBUklBQkxFKHZhcjEpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMu dmFyMSIgaXMgbm90IHVzZWQgaW5zaWRlIHZhcmlhYmxlIGZlbmNlCitERVRBSUw6ICBUaGVyZSBp cyBhIHJpc2sgb2YgdW53YW50ZWQgdXNhZ2Ugb2Ygc2Vzc2lvbiB2YXJpYWJsZS4KK0hJTlQ6ICBV c2UgdmFyaWFibGUgZmVuY2UgIlZBUklBQkxFKHZhcm5hbWUpIGZvciBhY2Nlc3MgdG8gdmFyaWFi bGUiLgorLS0gc2hvdWxkIGZhaWwKK0RPICQkCitERUNMQVJFIHQgaW50OworQkVHSU4KKyAgU0VM RUNUIGEgRlJPTSB2YXJ0ZXN0X3RhYjEgV0hFUkUgYSA9IHZhcjEgSU5UTyB0OworRU5EOworJCQ7 CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBub3QgdXNlZCBpbnNp ZGUgdmFyaWFibGUgZmVuY2UKK0RFVEFJTDogIFRoZXJlIGlzIGEgcmlzayBvZiB1bndhbnRlZCB1 c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlLgorSElOVDogIFVzZSB2YXJpYWJsZSBmZW5jZSAiVkFS SUFCTEUodmFybmFtZSkgZm9yIGFjY2VzcyB0byB2YXJpYWJsZSIuCitDT05URVhUOiAgU1FMIHN0 YXRlbWVudCAiU0VMRUNUIGEgRlJPTSB2YXJ0ZXN0X3RhYjEgV0hFUkUgYSA9IHZhcjEiCitQTC9w Z1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDQgYXQgU1FMIHN0YXRlbWVudAor LS0gc2hvdWxkIGZhaWwKK0RPICQkCitERUNMQVJFIHQgaW50IERFRkFVTFQgMjA7CitCRUdJTgor ICBSQUlTRSBOT1RJQ0UgJyUgJScsIHZhcjEsIHZhcjEgPSB0OworRU5EOworJCQ7CitFUlJPUjog IHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBub3QgdXNlZCBpbnNpZGUgdmFyaWFi bGUgZmVuY2UKK0RFVEFJTDogIFRoZXJlIGlzIGEgcmlzayBvZiB1bndhbnRlZCB1c2FnZSBvZiBz ZXNzaW9uIHZhcmlhYmxlLgorSElOVDogIFVzZSB2YXJpYWJsZSBmZW5jZSAiVkFSSUFCTEUodmFy bmFtZSkgZm9yIGFjY2VzcyB0byB2YXJpYWJsZSIuCitDT05URVhUOiAgUEwvcGdTUUwgZXhwcmVz c2lvbiAidmFyMSIKK1BML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgNCBh dCBSQUlTRQorLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgVkFSSUFCTEUodmFyMSksIFZBUklBQkxF KHZhcjEpOworIHZhcjEgfCB2YXIxIAorLS0tLS0tKy0tLS0tLQorICAgMjAgfCAgIDIwCisoMSBy b3cpCisKK0RPICQkCitERUNMQVJFIHQgaW50OworQkVHSU4KKyAgU0VMRUNUIGEgRlJPTSB2YXJ0 ZXN0X3RhYjEgV0hFUkUgYSA9IFZBUklBQkxFKHZhcjEpIElOVE8gdDsKKyAgUkFJU0UgTk9USUNF ICclICUnLCBWQVJJQUJMRSh2YXIxKSwgVkFSSUFCTEUodmFyMSkgPSB0OworRU5EOworJCQ7CitO T1RJQ0U6ICAyMCB0CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3Vh cmQgVE8gJ25vc3BpJzsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyMSwgVkFSSUFCTEUodmFy MSk7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBub3QgdXNlZCBp bnNpZGUgdmFyaWFibGUgZmVuY2UKK0RFVEFJTDogIFRoZXJlIGlzIGEgcmlzayBvZiB1bndhbnRl ZCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlLgorSElOVDogIFVzZSB2YXJpYWJsZSBmZW5jZSAi VkFSSUFCTEUodmFybmFtZSkgZm9yIGFjY2VzcyB0byB2YXJpYWJsZSIuCistLSBzaG91bGQgYmUg b2sKK0RPICQkCitERUNMQVJFIHQgaW50OworQkVHSU4KKyAgU0VMRUNUIGEgRlJPTSB2YXJ0ZXN0 X3RhYjEgV0hFUkUgYSA9IHZhcjEgSU5UTyB0OworICBSQUlTRSBOT1RJQ0UgJyUgJScsIHZhcjEs IHZhcjEgPSB0OworICBTRUxFQ1QgYSBGUk9NIHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gVkFSSUFC TEUodmFyMSkgSU5UTyB0OworICBSQUlTRSBOT1RJQ0UgJyUgJScsIFZBUklBQkxFKHZhcjEpLCBW QVJJQUJMRSh2YXIxKSA9IHQ7CitFTkQ7CiskJDsKK05PVElDRTogIDIwIHQKK05PVElDRTogIDIw IHQKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZCBUTyBERUZB VUxUOworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJ0ZXN0X3RhYjE7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggYTFmNjM3NDBjMS4u NTI2NTkzYmI3OSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJp YWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bApAQCAtMTExNywzICsxMTE3LDc2IEBAIERST1AgU0NIRU1BIHRlc3R2YXI7CiBTRVQgc2Vzc2lv bl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gREVGQVVMVDsKIFNFVCBzZXNzaW9uX3Zh cmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZCBUTyBERUZBVUxUOwogU0VUIHNlYXJjaF9w YXRoIFRPIERFRkFVTFQ7CisKKy0tIHRlc3Qgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2Nv bnRleHRfZ3VhcmQKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBUQUJMRSB2 YXJ0ZXN0X3RhYjEoYSBpbnQpOworCitMRVQgdmFyMSA9IDIwOworSU5TRVJUIElOVE8gdmFydGVz dF90YWIxIFZBTFVFUygyMCk7CisKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29u dGV4dF9ndWFyZCBUTyAnbm9uZSc7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjEsIFZB UklBQkxFKHZhcjEpOworRE8gJCQKK0RFQ0xBUkUgdCBpbnQ7CitCRUdJTgorICBTRUxFQ1QgYSBG Uk9NIHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gdmFyMSBJTlRPIHQ7CisgIFJBSVNFIE5PVElDRSAn JSAlJywgdmFyMSwgdmFyMSA9IHQ7CisgIFNFTEVDVCBhIEZST00gdmFydGVzdF90YWIxIFdIRVJF IGEgPSBWQVJJQUJMRSh2YXIxKSBJTlRPIHQ7CisgIFJBSVNFIE5PVElDRSAnJSAlJywgVkFSSUFC TEUodmFyMSksIFZBUklBQkxFKHZhcjEpID0gdDsKK0VORDsKKyQkOworCitTRVQgc2Vzc2lvbl92 YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgVE8gJ2FsbCc7CisKKy0tIHNob3VsZCBm YWlsCitTRUxFQ1QgdmFyMSwgVkFSSUFCTEUodmFyMSk7CisKKy0tIHNob3VsZCBmYWlsCitETyAk JAorREVDTEFSRSB0IGludDsKK0JFR0lOCisgIFNFTEVDVCBhIEZST00gdmFydGVzdF90YWIxIFdI RVJFIGEgPSB2YXIxIElOVE8gdDsKK0VORDsKKyQkOworCistLSBzaG91bGQgZmFpbAorRE8gJCQK K0RFQ0xBUkUgdCBpbnQgREVGQVVMVCAyMDsKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJSAlJywg dmFyMSwgdmFyMSA9IHQ7CitFTkQ7CiskJDsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgVkFS SUFCTEUodmFyMSksIFZBUklBQkxFKHZhcjEpOworRE8gJCQKK0RFQ0xBUkUgdCBpbnQ7CitCRUdJ TgorICBTRUxFQ1QgYSBGUk9NIHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gVkFSSUFCTEUodmFyMSkg SU5UTyB0OworICBSQUlTRSBOT1RJQ0UgJyUgJScsIFZBUklBQkxFKHZhcjEpLCBWQVJJQUJMRSh2 YXIxKSA9IHQ7CitFTkQ7CiskJDsKKworU0VUIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9j b250ZXh0X2d1YXJkIFRPICdub3NwaSc7CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyMSwg VkFSSUFCTEUodmFyMSk7CisKKy0tIHNob3VsZCBiZSBvaworRE8gJCQKK0RFQ0xBUkUgdCBpbnQ7 CitCRUdJTgorICBTRUxFQ1QgYSBGUk9NIHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gdmFyMSBJTlRP IHQ7CisgIFJBSVNFIE5PVElDRSAnJSAlJywgdmFyMSwgdmFyMSA9IHQ7CisgIFNFTEVDVCBhIEZS T00gdmFydGVzdF90YWIxIFdIRVJFIGEgPSBWQVJJQUJMRSh2YXIxKSBJTlRPIHQ7CisgIFJBSVNF IE5PVElDRSAnJSAlJywgVkFSSUFCTEUodmFyMSksIFZBUklBQkxFKHZhcjEpID0gdDsKK0VORDsK KyQkOworCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgVE8g REVGQVVMVDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJ0ZXN0X3RhYjE7 Ci0tIAoyLjQ3LjEKCg== --000000000000ee56b206299a729a Content-Type: text/x-patch; charset="US-ASCII"; name="v20241219-0006-plpgsql-tests.patch" Content-Disposition: attachment; filename="v20241219-0006-plpgsql-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4uzyqvr16 RnJvbSBiZjljMzc0MzU2MzVlOGEzNDhjYmUyZDZlZTliZTIxZmI0MDQzN2I4IE1vbiBTZXAgMTcg 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 c29uLmJ1aWxkIGIvc3JjL3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxkCmluZGV4IDNkZDczNGI3 NzYuLjM5MDVjMGI2ZDQgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9tZXNvbi5idWls 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== --000000000000ee56b206299a729a Content-Type: text/x-patch; charset="US-ASCII"; name="v20241219-0007-GUC-session_variables_ambiguity_warning.patch" Content-Disposition: attachment; filename="v20241219-0007-GUC-session_variables_ambiguity_warning.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4uzyqvi15 RnJvbSA3MWFjMDQyMjRiNDNmZDFmNTFjZDFhMGUyZTI3OTJhMGViZjk3ZjdiIE1vbiBTZXAgMTcg 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 c3Npb25fdmFyaWFibGVzLm91dCAgICB8IDIyICsrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDIwICsrKysrKysKIDEwIGZpbGVzIGNoYW5nZWQs IDIzMSBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9jb25maWcuc2dtbCBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAppbmRleCBmYmRkNmNl NTc0Li4xYTU1ZmE1OTUxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC0xMDc4MCw2ICsxMDc4MCw2NiBAQCBkeW5h bWljX2xpYnJhcnlfcGF0aCA9ICdDOlx0b29sc1xwb3N0Z3Jlc3FsO0g6XG15X3Byb2plY3RcbGli OyRsaWJkaXInCiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAg ICA8dmFybGlzdGVudHJ5IGlkPSJndWMtc2Vzc2lvbi12YXJpYWJsZXMtYW1iaWd1aXR5LXdhcm5p bmciIHhyZWZsYWJlbD0ic2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmciPgorICAg ICAgPHRlcm0+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmc8L3Zh cm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKKyAgICAgIDxpbmRleHRlcm0+CisgICAgICAg PHByaW1hcnk+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmc8L3Zh cm5hbWU+IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAgPC9pbmRleHRl cm0+CisgICAgICA8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAg ICAgIFdoZW4gb24sIGEgd2FybmluZyBpcyByYWlzZWQgd2hlbiBhbnkgaWRlbnRpZmllciBpbiBh IHF1ZXJ5IGNvdWxkIGJlCisgICAgICAgIHVzZWQgYXMgYm90aCBhIGNvbHVtbiBpZGVudGlmaWVy LCByb3V0aW5lIHZhcmlhYmxlIG9yIGEgc2Vzc2lvbgorICAgICAgICB2YXJpYWJsZSBpZGVudGlm aWVyLiBUaGUgZGVmYXVsdCBpcyA8bGl0ZXJhbD5vZmY8L2xpdGVyYWw+LgorICAgICAgIDwvcGFy YT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRv d2VkIGJ5IGNvbHVtbiByZWZlcmVuY2VzIGluIGEgcXVlcnksIHRoaXMKKyAgICAgICAgaXMgYW4g ZXhwZWN0ZWQgYmVoYXZpb3IuICBQcmV2aW91c2x5IHdvcmtpbmcgcXVlcmllcyBzaG91bGRuJ3Qg ZXJyb3Igb3V0CisgICAgICAgIGJ5IGNyZWF0aW5nIGFueSBzZXNzaW9uIHZhcmlhYmxlLCBzbyBz ZXNzaW9uIHZhcmlhYmxlcyBhcmUgYWx3YXlzIHNoYWRvd2VkCisgICAgICAgIGlmIGFuIGlkZW50 aWZpZXIgaXMgYW1iaWd1b3VzLiAgVmFyaWFibGVzIHNob3VsZCBiZSByZWZlcmVuY2VkIHVzaW5n CisgICAgICAgIGFudW5hbWJpZ3VvdXMgaWRlbnRpZmllciB3aXRob3V0IGFueSBwb3NzaWJpbGl0 eSBmb3IgYSBjb2xsaXNpb24gd2l0aAorICAgICAgICBpZGVudGlmaWVyIG9mIG90aGVyIGRhdGFi YXNlIG9iamVjdHMgKGNvbHVtbiBuYW1lcyBvciByZWNvcmQgZmllbGRzIG5hbWVzKS4KKyAgICAg ICAgVGhlIHdhcm5pbmcgbWVzc2FnZXMgZW1pdHRlZCB3aGVuIGVuYWJsaW5nIDx2YXJuYW1lPnNl c3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nPC92YXJuYW1lPgorICAgICAgICBjYW4g aGVscCBmaW5kaW5nIHN1Y2ggaWRlbnRpZmllciBjb2xsaXNpb24uCis8cHJvZ3JhbWxpc3Rpbmc+ CitDUkVBVEUgVEFCTEUgZm9vKGEgaW50KTsKK0lOU0VSVCBJTlRPIGZvbyBWQUxVRVMoMTApOwor Q1JFQVRFIFZBUklBQkxFIGEgaW50OworTEVUIGEgPSAxMDA7CitTRUxFQ1QgYSBGUk9NIGZvbzsK KzwvcHJvZ3JhbWxpc3Rpbmc+CisKKzxzY3JlZW4+CisgYQorLS0tLQorIDEwCisoMSByb3cpCis8 L3NjcmVlbj4KKworPHByb2dyYW1saXN0aW5nPgorU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmln dWl0eV93YXJuaW5nIFRPIG9uOworU0VMRUNUIGEgRlJPTSBmb287Cis8L3Byb2dyYW1saXN0aW5n PgorCis8c2NyZWVuPgorV0FSTklORzogIHNlc3Npb24gdmFyaWFibGUgImEiIGlzIHNoYWRvd2Vk CitMSU5FIDE6IFNFTEVDVCBhIEZST00gZm9vOworICAgICAgICAgICAgICAgXgorREVUQUlMOiAg U2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJvdXRpbmUncyB2 YXJpYWJsZXMgYW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUgc2FtZSBuYW1lLgorIGEK Ky0tLS0KKyAxMAorKDEgcm93KQorPC9zY3JlZW4+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxw YXJhPgorICAgICAgICBUaGlzIGZlYXR1cmUgY2FuIHNpZ25pZmljYW50bHkgaW5jcmVhc2UgbG9n IHNpemUsIHNvIGl0J3MgZGlzYWJsZWQgYnkKKyAgICAgICAgZGVmYXVsdC4gIEZvciB0ZXN0aW5n IG9yIGRldmVsb3BtZW50IGVudmlyb25tZW50cyBpdCdzIHJlY29tbWVuZGVkIHRvCisgICAgICAg IGVuYWJsZSBpdCBpZiB5b3UgdXNlIHNlc3Npb24gdmFyaWFibGVzLgorICAgICAgIDwvcGFyYT4K KyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0 ZW50cnkgaWQ9Imd1Yy1zdGFuZGFyZC1jb25mb3JtaW5nLXN0cmluZ3MiIHhyZWZsYWJlbD0ic3Rh bmRhcmRfY29uZm9ybWluZ19zdHJpbmdzIj4KICAgICAgIDx0ZXJtPjx2YXJuYW1lPnN0YW5kYXJk X2NvbmZvcm1pbmdfc3RyaW5nczwvdmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KQogICAg ICAgPGluZGV4dGVybT48cHJpbWFyeT5zdHJpbmdzPC9wcmltYXJ5PjxzZWNvbmRhcnk+c3RhbmRh cmQgY29uZm9ybWluZzwvc2Vjb25kYXJ5PjwvaW5kZXh0ZXJtPgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IDAyZmM4ODJiODYu LmI3YmFkNjg0NWEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwKQEAgLTU0MDAsNiArNTQwMCwxNyBAQCBTRUxFQ1QgY3VycmVudF91 c2VyX2lkOwogICAgIHRoZSBzY2hlbWEgbmFtZSwgY29sdW1ucyBjYW4gdXNlIHRhYmxlIGFsaWFz ZXMsIHJvdXRpbmUgdmFyaWFibGVzIGNhbiB1c2UKICAgICBibG9jayBsYWJlbHMsIGFuZCByb3V0 aW5lIGFyZ3VtZW50cyBjYW4gdXNlIHRoZSByb3V0aW5lIG5hbWUuCiAgICA8L3BhcmE+CisKKyAg IDxwYXJhPgorICAgIFdoZW4gYSBxdWVyeSBjb250YWlucyBpZGVudGlmaWVycyBvciBxdWFsaWZp ZWQgaWRlbnRpZmllcnMgdGhhdCBjb3VsZCBiZQorICAgIHVzZWQgYXMgYm90aCBhIHNlc3Npb24g dmFyaWFibGUgaWRlbnRpZmllcnMgYW5kIGFzIGNvbHVtbiBpZGVudGlmaWVyLAorICAgIHRoZW4g dGhlIGNvbHVtbiBpZGVudGlmaWVyIGlzIHByZWZlcnJlZCBldmVyeSB0aW1lLiAgV2FybmluZ3Mg Y2FuIGJlCisgICAgZW1pdHRlZCB3aGVuIHRoaXMgc2l0dWF0aW9uIGhhcHBlbnMgYnkgZW5hYmxp bmcgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgPHhyZWYKKyAgICBsaW5rZW5kPSJndWMtc2Vzc2lv bi12YXJpYWJsZXMtYW1iaWd1aXR5LXdhcm5pbmciLz4uIFVzZXIgY2FuIGV4cGxpY2l0bHkKKyAg ICBxdWFsaWZ5IHRoZSBzb3VyY2Ugb2JqZWN0IGJ5IHN5bnRheCA8bGl0ZXJhbD50YWJsZS5jb2x1 bW48L2xpdGVyYWw+IG9yCisgICAgPGxpdGVyYWw+c2NoZW1hLnZhcmlhYmxlPC9saXRlcmFsPi4g SXQgaXMgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG8gcmVuYW1lCisgICAgc2hhZG93ZWQgdmFyaWFi bGVzIG9yIHVzZSBxdWFsaWZpZWQgbmFtZXMgYWx3YXlzLgorICAgPC9wYXJhPgogICA8L3NlY3Qx PgogCiAgPHNlY3QxIGlkPSJkZGwtb3RoZXJzIj4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4 IGFiYTUyNTllMDIuLjM2MDJjMzU3MmQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtNDUs NiArNDUsNyBAQAogCiAvKiBHVUMgcGFyYW1ldGVycyAqLwogYm9vbAkJVHJhbnNmb3JtX251bGxf ZXF1YWxzID0gZmFsc2U7Citib29sCQlzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2Fybmlu ZyA9IGZhbHNlOwogCiAKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1FeHByUmVjdXJzZShQYXJzZVN0 YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIpOwpAQCAtOTYwLDExICs5NjEsNTEgQEAgdHJhbnNmb3Jt Q29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCQkgKgogCQkg KiBTRUxFQ1QgZm9vLmEsIGZvby5iLCBmb28uYyBGUk9NIGZvbzsKIAkJICoKLQkJICogSG93ZXZl ciwgdGhhdCBpcyB2ZXJ5IGNvbmZ1c2luZywgc28gd2UgZGlzYWxsb3cgaXQuICBXZSBkb24ndCB0 cnkgdG8KLQkJICogaWRlbnRpZnkgYSB2YXJpYWJsZSBpZiB3ZSBrbm93IHRoYXQgaXQgd291bGQg YmUgc2hhZG93ZWQuCi0JCSAqIC0tLS0tCisJCSAqIEhvd2V2ZXIsIHRoYXQgaXMgdmVyeSBjb25m dXNpbmcsIHNvIHdlIGRpc2FsbG93IGl0LgorCQkgKgorCQkgKiBXaGVuIHNlc3Npb25fdmFyaWFi bGVzX2FtYmlndWl0eV93YXJuaW5nIGlzIHJlcXVlc3RlZCwgdGhlbiB3ZQorCQkgKiBuZWVkIHRv IGlkZW50aWZ5IGEgdmFyaWFibGUgYWx0aG91Z2ggd2Uga25vdywgc28gdGhpcyB2YXJpYWJsZQor CQkgKiB3b3VsZCBiZSBzaGFkb3dlZC4KIAkJICovCi0JCWlmICghbm9kZSAmJiAhKHJlbG5hbWUg JiYgY3JlcnIgPT0gQ1JFUlJfTk9fQ09MVU1OKSkKKwkJaWYgKG5vZGUgfHwgKHJlbG5hbWUgJiYg Y3JlcnIgPT0gQ1JFUlJfTk9fQ09MVU1OKSkKKwkJeworCQkJLyoKKwkJCSAqIEluIHRoaXMgcGF0 aCB3ZSBqdXN0IHRyeSAoaWYgaXQgaXMgd2FudGVkKSBkZXRlY3QgaWYgc2Vzc2lvbgorCQkJICog dmFyaWFibGUgaXMgc2hhZG93ZWQuCisJCQkgKi8KKwkJCWlmIChzZXNzaW9uX3ZhcmlhYmxlc19h bWJpZ3VpdHlfd2FybmluZykKKwkJCXsKKwkJCQkvKgorCQkJCSAqIFRoZSBBY2Nlc3NTaGFyZUxv Y2sgaXMgY3JlYXRlZCBvbiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGUuCisJCQkJICogVGhlIGxv Y2sgd2lsbCBiZSBrZXB0IGZvciB0aGUgd2hvbGUgdHJhbnNhY3Rpb24uCisJCQkJICovCisJCQkJ dmFyaWQgPSBJZGVudGlmeVZhcmlhYmxlKGNyZWYtPmZpZWxkcywgJmF0dHJuYW1lLCAmbm90X3Vu aXF1ZSwgdHJ1ZSk7CisKKwkJCQlpZiAoT2lkSXNWYWxpZCh2YXJpZCkpCisJCQkJeworCQkJCQkv KiB0aGlzIHBhdGggd2lsbCBlbmRpbmcgYnkgV0FSTklORy4gVW5sb2NrIHZhcmlhYmxlIGZpcnN0 ICovCisJCQkJCVVubG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQs IDAsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwkJCQkJaWYgKG5vZGUpCisJCQkJCQllcmVwb3J0KFdB Uk5JTkcsCisJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfQU1CSUdVT1VTX0NPTFVNTiksCisJCQkJ CQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGlzIHNoYWRvd2VkIiwKKwkJCQkJ CQkJCQlOYW1lTGlzdFRvU3RyaW5nKGNyZWYtPmZpZWxkcykpLAorCQkJCQkJCQkgZXJyZGV0YWls KCJTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGluZSdz IHZhcmlhYmxlcyBhbmQgcm91dGluZSdzIGFyZ3VtZW50cyB3aXRoIHRoZSBzYW1lIG5hbWUuIiks CisJCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjcmVmLT5sb2NhdGlvbikpKTsK KwkJCQkJZWxzZQorCQkJCQkJLyogc2Vzc2lvbiB2YXJpYWJsZSBpcyBzaGFkb3dlZCBieSBSVEUg Ki8KKwkJCQkJCWVyZXBvcnQoV0FSTklORywKKwkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9BTUJJ R1VPVVNfQ09MVU1OKSwKKwkJCQkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVz XCIgaXMgc2hhZG93ZWQiLAorCQkJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lv bl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lKHZhcmlkKSksCisJCQkJCQkJCSBlcnJkZXRhaWwoIlNlc3Npb24gdmFyaWFibGVz IGNhbiBiZSBzaGFkb3dlZCBieSB0YWJsZXMgb3IgdGFibGUncyBhbGlhc2VzIHdpdGggdGhlIHNh bWUgbmFtZS4iKSwKKwkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGNyZWYtPmxv Y2F0aW9uKSkpOworCQkJCX0KKwkJCX0KKwkJfQorCQllbHNlCiAJCXsKIAkJCS8qIHRha2VzIGFu IEFjY2Vzc1NoYXJlTG9jayBvbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSAqLwogCQkJdmFyaWQgPSBJ ZGVudGlmeVZhcmlhYmxlKGNyZWYtPmZpZWxkcywgJmF0dHJuYW1lLCAmbm90X3VuaXF1ZSwgZmFs c2UpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgYi9z cmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwppbmRleCA4Y2YxYWZiYWQyLi40NjRi ZTA1YWQ3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpAQCAtMTYwNSw2ICsxNjA1 LDE1IEBAIHN0cnVjdCBjb25maWdfYm9vbCBDb25maWd1cmVOYW1lc0Jvb2xbXSA9CiAJCWZhbHNl LAogCQlOVUxMLCBOVUxMLCBOVUxMCiAJfSwKKwl7CisJCXsic2Vzc2lvbl92YXJpYWJsZXNfYW1i aWd1aXR5X3dhcm5pbmciLCBQR0NfVVNFUlNFVCwgQ0xJRU5UX0NPTk5fU1RBVEVNRU5ULAorCQkJ Z2V0dGV4dF9ub29wKCJSYWlzZSBhIHdhcm5pbmcgd2hlbiByZWZlcmVuY2UgdG8gYSBzZXNzaW9u IHZhcmlhYmxlIGlzIGFtYmlndW91cy4iKSwKKwkJCU5VTEwKKwkJfSwKKwkJJnNlc3Npb25fdmFy aWFibGVzX2FtYmlndWl0eV93YXJuaW5nLAorCQlmYWxzZSwKKwkJTlVMTCwgTlVMTCwgTlVMTAor CX0sCiAJewogCQl7ImRlZmF1bHRfdHJhbnNhY3Rpb25fcmVhZF9vbmx5IiwgUEdDX1VTRVJTRVQs IENMSUVOVF9DT05OX1NUQVRFTUVOVCwKIAkJCWdldHRleHRfbm9vcCgiU2V0cyB0aGUgZGVmYXVs dCByZWFkLW9ubHkgc3RhdHVzIG9mIG5ldyB0cmFuc2FjdGlvbnMuIiksCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2Vu ZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKaW5kZXggYTJhYzc1NzVjYS4uZDE4 YTE3NTQ0YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNv bmYuc2FtcGxlCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNh bXBsZQpAQCAtNzE2LDYgKzcxNiw3IEBACiAjZGVmYXVsdF90cmFuc2FjdGlvbl9yZWFkX29ubHkg PSBvZmYKICNkZWZhdWx0X3RyYW5zYWN0aW9uX2RlZmVycmFibGUgPSBvZmYKICNzZXNzaW9uX3Jl cGxpY2F0aW9uX3JvbGUgPSAnb3JpZ2luJworI3Nlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93 YXJuaW5nID0gb2ZmCiAjc3RhdGVtZW50X3RpbWVvdXQgPSAwCQkJCSMgaW4gbWlsbGlzZWNvbmRz LCAwIGlzIGRpc2FibGVkCiAjdHJhbnNhY3Rpb25fdGltZW91dCA9IDAJCQkjIGluIG1pbGxpc2Vj b25kcywgMCBpcyBkaXNhYmxlZAogI2xvY2tfdGltZW91dCA9IDAJCQkJIyBpbiBtaWxsaXNlY29u ZHMsIDAgaXMgZGlzYWJsZWQKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9l eHByLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCmluZGV4IDliNDZkZmQ5ZWMu LjBkNjRiMzAwZjggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgK KysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaApAQCAtMTcsNiArMTcsNyBAQAog CiAvKiBHVUMgcGFyYW1ldGVycyAqLwogZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgVHJhbnNmb3Jt X251bGxfZXF1YWxzOworZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgc2Vzc2lvbl92YXJpYWJsZXNf YW1iaWd1aXR5X3dhcm5pbmc7CiAKIGV4dGVybiBOb2RlICp0cmFuc2Zvcm1FeHByKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgUGFyc2VFeHByS2luZCBleHByS2luZCk7CiAKZGlmZiAt LWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFi bGUub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJp YWJsZS5vdXQKaW5kZXggYWI3Nzk5MDA1OS4uYTY1MjNmN2FmZSAxMDA2NDQKLS0tIGEvc3JjL3Bs L3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKKysrIGIv c3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQK QEAgLTM1NCw2ICszNTQsMzkgQEAgJCQ7CiBOT1RJQ0U6ICBzZXNzaW9uIHZhcmlhYmxlIGlzIDEw MAogTk9USUNFOiAgcGxwZ3NxbCB2YXJpYWJsZSBpcyAxMDAwCiBOT1RJQ0U6ICB2YXJpYWJsZSBp cyAxMDAwCistLSBhZ2FpbnQgd2l0aCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2Fybmlu ZyhvbikKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKK0RP ICQkCis8PG15YmxvY2s+PgorREVDTEFSRSBwbHBnc3FsX3N2X3ZhcjEgaW50OworQkVHSU4KKyAg TEVUIHBscGdzcWxfc3ZfdmFyMSA9IDEwMDsKKworICAtLSBzaG91bGQgYmUgb2sgd2l0aG91dCB3 YXJuaW5nCisgIHBscGdzcWxfc3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHNob3VsZCBiZSBvayB3 aXRob3V0IHdhcm5pbmcKKyAgLS0gcHJpbnQgMTAwOworICBSQUlTRSBOT1RJQ0UgJ3Nlc3Npb24g dmFyaWFibGUgaXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2X3ZhcjE7CisKKyAgLS0gc2hvdWxkIGJl IG9rIHdpdGhvdXQgd2FybmluZworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElDRSAncGxw Z3NxbCB2YXJpYWJsZSBpcyAlJywgbXlibG9jay5wbHBnc3FsX3N2X3ZhcjE7CisKKyAgLS0gc2hv dWxkIHRvIHByaW50IHBscGdzcWwgdmFyaWFibGUgd2l0aCB3YXJuaW5nCisgIC0tIHByaW50IDEw MDAKKyAgUkFJU0UgTk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5E OworJCQ7CitOT1RJQ0U6ICBzZXNzaW9uIHZhcmlhYmxlIGlzIDEwMAorTk9USUNFOiAgcGxwZ3Nx bCB2YXJpYWJsZSBpcyAxMDAwCitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJpYWJsZSAicGxwZ3NxbF9z dl92YXIxIiBpcyBzaGFkb3dlZAorTElORSAxOiBwbHBnc3FsX3N2X3ZhcjEKKyAgICAgICAgXgor REVUQUlMOiAgU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJv dXRpbmUncyB2YXJpYWJsZXMgYW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUgc2FtZSBu YW1lLgorUVVFUlk6ICBwbHBnc3FsX3N2X3ZhcjEKK05PVElDRTogIHZhcmlhYmxlIGlzIDEwMDAK K1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvZmY7CiBEUk9QIFZB UklBQkxFIHBscGdzcWxfc3ZfdmFyMTsKIC0tIHRoZSB2YWx1ZSBzaG91bGQgbm90IGJlIGNvcnJ1 cHRlZAogQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdiB0ZXh0OwpkaWZmIC0tZ2l0IGEvc3Jj L3BsL3BscGdzcWwvc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsIGIvc3JjL3Bs L3BscGdzcWwvc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsCmluZGV4IGEzY2My NjRjZjMuLjliOGU5MGU4MWYgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxw Z3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvc3FsL3Bs cGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKQEAgLTI2MCw2ICsyNjAsMzUgQEAgQkVHSU4KIEVO RDsKICQkOwogCistLSBhZ2FpbnQgd2l0aCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2Fy bmluZyhvbikKKworU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9u OworCitETyAkJAorPDxteWJsb2NrPj4KK0RFQ0xBUkUgcGxwZ3NxbF9zdl92YXIxIGludDsKK0JF R0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDA7CisKKyAgLS0gc2hvdWxkIGJlIG9rIHdp dGhvdXQgd2FybmluZworICBwbHBnc3FsX3N2X3ZhcjEgOj0gMTAwMDsKKworICAtLSBzaG91bGQg YmUgb2sgd2l0aG91dCB3YXJuaW5nCisgIC0tIHByaW50IDEwMDsKKyAgUkFJU0UgTk9USUNFICdz ZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwdWJsaWMucGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHNo b3VsZCBiZSBvayB3aXRob3V0IHdhcm5pbmcKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJ Q0UgJ3BscGdzcWwgdmFyaWFibGUgaXMgJScsIG15YmxvY2sucGxwZ3NxbF9zdl92YXIxOworCisg IC0tIHNob3VsZCB0byBwcmludCBwbHBnc3FsIHZhcmlhYmxlIHdpdGggd2FybmluZworICAtLSBw cmludCAxMDAwCisgIFJBSVNFIE5PVElDRSAndmFyaWFibGUgaXMgJScsIHBscGdzcWxfc3ZfdmFy MTsKK0VORDsKKyQkOworCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcg VE8gb2ZmOworCiBEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMTsKIAogLS0gdGhlIHZhbHVl IHNob3VsZCBub3QgYmUgY29ycnVwdGVkCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IGJjMTEzN2M5YjUuLjJkZTBiZmU2MjYgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0x NTU4LDMgKzE1NTgsMjUgQEAgU0VMRUNUIHZhcjE7CiAoMSByb3cpCiAKIERST1AgVkFSSUFCTEUg dmFyMSwgdmFyMjsKKy0tIHRlc3Qgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcK K0NSRUFURSBTQ0hFTUEgeHh0YWI7CitDUkVBVEUgVkFSSUFCTEUgeHh0YWIuYXZhciBpbnQ7CitD UkVBVEUgVEFCTEUgcHVibGljLnh4dGFiKGF2YXIgaW50KTsKK0lOU0VSVCBJTlRPIHB1YmxpYy54 eHRhYiBWQUxVRVMoMSk7CitMRVQgeHh0YWIuYXZhciA9IDIwOworU0VUIHNlc3Npb25fdmFyaWFi bGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9uOworLS0tIHNob3VsZCB0byByYWlzZSB3YXJuaW5n LCBzaG93IDEKK1NFTEVDVCB4eHRhYi5hdmFyIEZST00gcHVibGljLnh4dGFiOworV0FSTklORzog IHNlc3Npb24gdmFyaWFibGUgInh4dGFiLmF2YXIiIGlzIHNoYWRvd2VkCitMSU5FIDE6IFNFTEVD VCB4eHRhYi5hdmFyIEZST00gcHVibGljLnh4dGFiOworICAgICAgICAgICAgICAgXgorREVUQUlM OiAgU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJvdXRpbmUn cyB2YXJpYWJsZXMgYW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUgc2FtZSBuYW1lLgor IGF2YXIgCistLS0tLS0KKyAgICAxCisoMSByb3cpCisKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19h bWJpZ3VpdHlfd2FybmluZyBUTyBvZmY7CitEUk9QIFRBQkxFIHB1YmxpYy54eHRhYjsKK0RST1Ag U0NIRU1BIHh4dGFiIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24g dmFyaWFibGUgeHh0YWIuYXZhcgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsCmluZGV4IDYyZTkyNWJmMWQuLjFmODg3ZDhlNDEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTEwNTYsMyArMTA1NiwyMyBAQCBCRUdJTjsg RFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsKIFNFTEVDVCB2YXIxOwogCiBEUk9QIFZBUklB QkxFIHZhcjEsIHZhcjI7CisKKy0tIHRlc3Qgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dh cm5pbmcKK0NSRUFURSBTQ0hFTUEgeHh0YWI7CisKK0NSRUFURSBWQVJJQUJMRSB4eHRhYi5hdmFy IGludDsKKworQ1JFQVRFIFRBQkxFIHB1YmxpYy54eHRhYihhdmFyIGludCk7CisKK0lOU0VSVCBJ TlRPIHB1YmxpYy54eHRhYiBWQUxVRVMoMSk7CisKK0xFVCB4eHRhYi5hdmFyID0gMjA7CisKK1NF VCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKKy0tLSBzaG91bGQg dG8gcmFpc2Ugd2FybmluZywgc2hvdyAxCitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHB1YmxpYy54 eHRhYjsKKworU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9mZjsK KworRFJPUCBUQUJMRSBwdWJsaWMueHh0YWI7CitEUk9QIFNDSEVNQSB4eHRhYiBDQVNDQURFOwot LSAKMi40Ny4xCgo= --000000000000ee56b206299a729a Content-Type: text/x-patch; charset="US-ASCII"; name="v20241219-0008-variable-fence-syntax-support-and-variable-fence-usa.patch" Content-Disposition: attachment; filename="v20241219-0008-variable-fence-syntax-support-and-variable-fence-usa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4uzyqva14 RnJvbSAxZTBkZTkzYTM4MmFmOTI0M2RlZTY1MTgwMmJjYjc4MWU5YTg4MGEzIE1vbiBTZXAgMTcg 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 b2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggMWE1NWZhNTk1MS4uNjVmMTk1OThjMiAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jb25m aWcuc2dtbApAQCAtMTA4NDAsNiArMTA4NDAsNzEgQEAgREVUQUlMOiAgU2Vzc2lvbiB2YXJpYWJs 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 c3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggYjdiYWQ2ODQ1 YS4uYmUzZjkzYjJjYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTQxMSw2ICs1NDExLDIxIEBAIFNFTEVDVCBjdXJyZW50 X3VzZXJfaWQ7CiAgICAgPGxpdGVyYWw+c2NoZW1hLnZhcmlhYmxlPC9saXRlcmFsPi4gSXQgaXMg c3Ryb25nbHkgcmVjb21tZW5kZWQgdG8gcmVuYW1lCiAgICAgc2hhZG93ZWQgdmFyaWFibGVzIG9y IHVzZSBxdWFsaWZpZWQgbmFtZXMgYWx3YXlzLgogICAgPC9wYXJhPgorCisgICA8cGFyYT48Zmly c3R0ZXJtPlZhcmlhYmxlIGZlbmNlPC9maXJzdHRlcm0+IGlzIHNwZWNpYWwgc3ludGF4IGZvciBz ZXNzaW9uCisgICAgdmFyaWFibGUgaWRlbnRpZmllci4gT25seSBuYW1lIG9yIHF1YWxpZmllZCBu YW1lIGNhbiBiZSB1c2VkIGluc2lkZSB0aGUKKyAgICB2YXJpYWJsZSBmZW5jZSwgYW5kIHRoaXMg bmFtZSBpcyB1c2VkIGFzIG9ubHkgc2Vzc2lvbiB2YXJpYWJsZSBpZGVudGlmaWVyLgorPHByb2dy YW1saXN0aW5nPgorU0VMRUNUIFZBUklBQkxFKGN1cnJlbnRfdXNlcl9pZCk7Cis8L3Byb2dyYW1s aXN0aW5nPgorICAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgV2hlbiB0aGVyZSBpcyBhIHJpc2sg b2YgcG9zc2libGUgY29sbGlzaW9ucyBiZXR3ZWVuIHZhcmlhYmxlIGlkZW50aWZpZXJzCisgICBh bmQgY29sdW1uIG5hbWVzLCB0aGVuIHVzaW5nIHZhcmlhYmxlIGZlbmNlIHN5bnRheCBjYW4gYmUg cmVjb21tZW5kZWQuCisgICBVc2FnZSBzZXNzaW9uIHZhcmlhYmxlIHdpdGhvdXQgdmFyaWFibGUg ZmVuY2UgY2FuIGJlIGRldGVjdGVkIGJ5CisgICB3YXJuaW5nIDx4cmVmIGxpbmtlbmQ9Imd1Yy1z ZXNzaW9uLXZhcmlhYmxlcy11c2UtZmVuY2Utd2FybmluZy1ndWFyZCIvPi4KKyAgPC9wYXJhPgog ICA8L3NlY3QxPgogCiAgPHNlY3QxIGlkPSJkZGwtb3RoZXJzIj4KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL25vZGVzL25vZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMK aW5kZXggNDhkODZlZTcyMC4uM2VmOGJjODRlMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9k ZXMvbm9kZUZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTE2 NjIsNiArMTY2Miw5IEBAIGV4cHJMb2NhdGlvbihjb25zdCBOb2RlICpleHByKQogCQljYXNlIFRf UGFyYW1SZWY6CiAJCQlsb2MgPSAoKGNvbnN0IFBhcmFtUmVmICopIGV4cHIpLT5sb2NhdGlvbjsK IAkJCWJyZWFrOworCQljYXNlIFRfVmFyaWFibGVGZW5jZToKKwkJCWxvYyA9ICgoY29uc3QgVmFy aWFibGVGZW5jZSAqKSBleHByKS0+bG9jYXRpb247CisJCQlicmVhazsKIAkJY2FzZSBUX0FfQ29u c3Q6CiAJCQlsb2MgPSAoKGNvbnN0IEFfQ29uc3QgKikgZXhwciktPmxvY2F0aW9uOwogCQkJYnJl YWs7CkBAIC00NjgxLDYgKzQ2ODQsOSBAQCByYXdfZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBs KE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0cnVlOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2Ug VF9WYXJpYWJsZUZlbmNlOgorCQkJLyogd2UgYXNzdW1lIHRoZSBmaWVsZHMgY29udGFpbiBub3Ro aW5nIGludGVyZXN0aW5nICovCisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1Is ICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIG5vZGVUYWcobm9kZSkp OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKaW5kZXggYWFkNDczMDVmMi4uZmJmMDZmMTE0OSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBA IC01MTgsNyArNTE4LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNo YXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxub2RlPglk ZWZfYXJnIGNvbHVtbkVsZW0gd2hlcmVfY2xhdXNlIHdoZXJlX29yX2N1cnJlbnRfY2xhdXNlCiAJ CQkJYV9leHByIGJfZXhwciBjX2V4cHIgQWV4cHJDb25zdCBpbmRpcmVjdGlvbl9lbCBvcHRfc2xp Y2VfYm91bmQKIAkJCQljb2x1bW5yZWYgaW5fZXhwciBoYXZpbmdfY2xhdXNlIGZ1bmNfdGFibGUg eG1sdGFibGUgYXJyYXlfZXhwcgotCQkJCU9wdFdoZXJlQ2xhdXNlIG9wZXJhdG9yX2RlZl9hcmcK KwkJCQlPcHRXaGVyZUNsYXVzZSBvcGVyYXRvcl9kZWZfYXJnIHZhcmlhYmxlX2ZlbmNlCiAldHlw ZSA8bGlzdD4Jb3B0X2NvbHVtbl9hbmRfcGVyaW9kX2xpc3QKICV0eXBlIDxsaXN0Pglyb3dzZnJv bV9pdGVtIHJvd3Nmcm9tX2xpc3Qgb3B0X2NvbF9kZWZfbGlzdAogJXR5cGUgPGJvb2xlYW4+IG9w dF9vcmRpbmFsaXR5IG9wdF93aXRob3V0X292ZXJsYXBzCkBAIC04NzUsNyArODc1LDcgQEAgc3Rh dGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFs aWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICAqLwogJW5vbmFzc29jCVVOQk9VTkRFRCBORVNURUQgLyog aWRlYWxseSB3b3VsZCBoYXZlIHNhbWUgcHJlY2VkZW5jZSBhcyBJREVOVCAqLwogJW5vbmFzc29j CUlERU5UIFBBUlRJVElPTiBSQU5HRSBST1dTIEdST1VQUyBQUkVDRURJTkcgRk9MTE9XSU5HIENV QkUgUk9MTFVQCi0JCQlTRVQgS0VZUyBPQkpFQ1RfUCBTQ0FMQVIgVkFMVUVfUCBXSVRIIFdJVEhP VVQgUEFUSAorCQkJU0VUIEtFWVMgT0JKRUNUX1AgU0NBTEFSIFZBTFVFX1AgV0lUSCBXSVRIT1VU IFBBVEggVkFSSUFCTEUKICVsZWZ0CQlPcCBPUEVSQVRPUgkJLyogbXVsdGktY2hhcmFjdGVyIG9w cyBhbmQgdXNlci1kZWZpbmVkIG9wZXJhdG9ycyAqLwogJWxlZnQJCScrJyAnLScKICVsZWZ0CQkn KicgJy8nICclJwpAQCAtMTU2MDMsNiArMTU2MDMsMTkgQEAgY19leHByOgkJY29sdW1ucmVmCQkJ CQkJCQl7ICQkID0gJDE7IH0KIAkJCQkJZWxzZQogCQkJCQkJJCQgPSAkMjsKIAkJCQl9CisJCQl8 IHZhcmlhYmxlX2ZlbmNlIG9wdF9pbmRpcmVjdGlvbgorCQkJCXsKKwkJCQkJaWYgKCQyKQorCQkJ CQl7CisJCQkJCQlBX0luZGlyZWN0aW9uICpuID0gbWFrZU5vZGUoQV9JbmRpcmVjdGlvbik7CisK KwkJCQkJCW4tPmFyZyA9IChOb2RlICopICQxOworCQkJCQkJbi0+aW5kaXJlY3Rpb24gPSBjaGVj a19pbmRpcmVjdGlvbigkMiwgeXlzY2FubmVyKTsKKwkJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJ CQkJfQorCQkJCQllbHNlCisJCQkJCQkkJCA9ICQxOworCQkJCX0KIAkJCXwgY2FzZV9leHByCiAJ CQkJeyAkJCA9ICQxOyB9CiAJCQl8IGZ1bmNfZXhwcgpAQCAtMTY5ODksNiArMTcwMDIsMTcgQEAg Y2FzZV9hcmc6CWFfZXhwcgkJCQkJCQkJCXsgJCQgPSAkMTsgfQogCQkJfCAvKkVNUFRZKi8JCQkJ CQkJCXsgJCQgPSBOVUxMOyB9CiAJCTsKIAordmFyaWFibGVfZmVuY2U6CisJCQlWQVJJQUJMRSAn KCcgYW55X25hbWUgJyknCisJCQkJeworCQkJCQlWYXJpYWJsZUZlbmNlICp2ZiA9IG1ha2VOb2Rl KFZhcmlhYmxlRmVuY2UpOworCisJCQkJCXZmLT52YXJuYW1lID0gJDM7CisJCQkJCXZmLT5sb2Nh dGlvbiA9IEAzOworCQkJCQkkJCA9IChOb2RlICopIHZmOworCQkJCX0KKwkJOworCiBjb2x1bW5y ZWY6CUNvbElkCiAJCQkJewogCQkJCQkkJCA9IG1ha2VDb2x1bW5SZWYoJDEsIE5JTCwgQDEsIHl5 c2Nhbm5lcik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCAzNjAyYzM1NzJkLi5kMDk0YWMz MDEzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTQ2LDYgKzQ2LDcgQEAKIC8qIEdVQyBw YXJhbWV0ZXJzICovCiBib29sCQlUcmFuc2Zvcm1fbnVsbF9lcXVhbHMgPSBmYWxzZTsKIGJvb2wJ CXNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nID0gZmFsc2U7Citib29sCQlzZXNz aW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZCA9IGZhbHNlOwogCiAKIHN0YXRp YyBOb2RlICp0cmFuc2Zvcm1FeHByUmVjdXJzZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4 cHIpOwpAQCAtODEsNiArODIsNyBAQCBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtV2hvbGVSb3dSZWYo UGFyc2VTdGF0ZSAqcHN0YXRlLAogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUluZGlyZWN0aW9uKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKTsKIHN0YXRpYyBOb2RlICp0cmFu c2Zvcm1UeXBlQ2FzdChQYXJzZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0ICp0Yyk7CiBzdGF0aWMg Tm9kZSAqdHJhbnNmb3JtQ29sbGF0ZUNsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsIENvbGxhdGVD bGF1c2UgKmMpOworc3RhdGljIE5vZGUgKnRyYW5zZm9ybVZhcmlhYmxlRmVuY2UoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBWYXJpYWJsZUZlbmNlICp2Zik7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSnNv bk9iamVjdENvbnN0cnVjdG9yKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJSnNvbk9i amVjdENvbnN0cnVjdG9yICpjdG9yKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Kc29uQXJyYXlD b25zdHJ1Y3RvcihQYXJzZVN0YXRlICpwc3RhdGUsCkBAIC0xMTIsNyArMTE0LDcgQEAgc3RhdGlj IE5vZGUgKm1ha2VfbnVsbHRlc3RfZnJvbV9kaXN0aW5jdChQYXJzZVN0YXRlICpwc3RhdGUsCiAJ CQkJCQkJCQkJIEFfRXhwciAqZGlzdGluY3RhLCBOb2RlICphcmcpOwogc3RhdGljIE5vZGUgKm1h a2VQYXJhbVNlc3Npb25WYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkgIE9p ZCB2YXJpZCwgT2lkIHR5cGlkLCBpbnQzMiB0eXBtb2QsIE9pZCBjb2xsaWQsCi0JCQkJCQkJCQkg IGNoYXIgKmF0dHJuYW1lLCBpbnQgbG9jYXRpb24pOworCQkJCQkJCQkJICBjaGFyICphdHRybmFt ZSwgYm9vbCBmZW5jZWQsIGludCBsb2NhdGlvbik7CiAKIAogLyoKQEAgLTM3Nyw2ICszNzksMTAg QEAgdHJhbnNmb3JtRXhwclJlY3Vyc2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByKQog CQkJcmVzdWx0ID0gdHJhbnNmb3JtSnNvbkZ1bmNFeHByKHBzdGF0ZSwgKEpzb25GdW5jRXhwciAq KSBleHByKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVF9WYXJpYWJsZUZlbmNlOgorCQkJcmVzdWx0 ID0gdHJhbnNmb3JtVmFyaWFibGVGZW5jZShwc3RhdGUsIChWYXJpYWJsZUZlbmNlICopIGV4cHIp OworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCS8qIHNob3VsZCBub3QgcmVhY2ggaGVyZSAq LwogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwgKGludCkgbm9k ZVRhZyhleHByKSk7CkBAIC0xMDI4LDcgKzEwMzQsMjAgQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCiAJCQkJbm9kZSA9IG1ha2VQYXJh bVNlc3Npb25WYXJpYWJsZShwc3RhdGUsCiAJCQkJCQkJCQkJCQl2YXJpZCwgdHlwaWQsIHR5cG1v ZCwgY29sbGlkLAotCQkJCQkJCQkJCQkJYXR0cm5hbWUsIGNyZWYtPmxvY2F0aW9uKTsKKwkJCQkJ CQkJCQkJCWF0dHJuYW1lLCBmYWxzZSwgY3JlZi0+bG9jYXRpb24pOworCisJCQkJLyoKKwkJCQkg KiBUaGUgdmFyaWFibGUgaXMgbm90IGluc2lkZSB2YXJpYWJsZSdzIGZlbmNlLCBzbyByYWlzZSB3 YXJuaW5nCisJCQkJICogd2hlbiB2YXJpYWJsZSBmZW5jZSBndWFyZCBpcyBhY3RpdmUgYW5kIHRo ZSBxdWVyeSBoYXMgRlJPTQorCQkJCSAqIGNsYXVzZS4KKwkJCQkgKi8KKwkJCQlpZiAoc2Vzc2lv bl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQgJiYgcHN0YXRlLT5wX3J0YWJsZSkK KwkJCQkJZXJlcG9ydChXQVJOSU5HLAorCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfQU1CSUdVT1VT X0NPTFVNTiksCisJCQkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgaXMgbm90 IHVzZWQgaW5zaWRlIHZhcmlhYmxlIGZlbmNlIiwKKwkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmco Y3JlZi0+ZmllbGRzKSksCisJCQkJCQkJIGVycmRldGFpbCgiVGhlIGNvbGxpc2lvbiBvZiBzZXNz aW9uIHZhcmlhYmxlJyBuYW1lcyBhbmQgY29sdW1uIG5hbWVzIGlzIHBvc3NpYmxlLiIpLAorCQkJ CQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjcmVmLT5sb2NhdGlvbikpKTsKIAkJCX0K IAkJfQogCX0KQEAgLTEwNzEsNyArMTA5MCw3IEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJzZVN0 YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIHN0YXRpYyBOb2RlICoKIG1ha2VQYXJhbVNl c3Npb25WYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkgT2lkIHZhcmlkLCBPaWQg dHlwaWQsIGludDMyIHR5cG1vZCwgT2lkIGNvbGxpZCwKLQkJCQkJCSBjaGFyICphdHRybmFtZSwg aW50IGxvY2F0aW9uKQorCQkJCQkJIGNoYXIgKmF0dHJuYW1lLCBib29sIGZlbmNlZCwgaW50IGxv Y2F0aW9uKQogewogCVBhcmFtCSAgICpwYXJhbTsKIApAQCAtMTA3OSw2ICsxMDk4LDcgQEAgbWFr ZVBhcmFtU2Vzc2lvblZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAogCXBhcmFtLT5wYXJh bWtpbmQgPSBQQVJBTV9WQVJJQUJMRTsKIAlwYXJhbS0+cGFyYW12YXJpZCA9IHZhcmlkOworCXBh cmFtLT5wYXJhbXZhcmZlbmNlZCA9IGZlbmNlZDsKIAlwYXJhbS0+cGFyYW10eXBlID0gdHlwaWQ7 CiAJcGFyYW0tPnBhcmFtdHlwbW9kID0gdHlwbW9kOwogCXBhcmFtLT5wYXJhbWNvbGxpZCA9IGNv bGxpZDsKQEAgLTExNTQsNiArMTE3NCw1NCBAQCB0cmFuc2Zvcm1QYXJhbVJlZihQYXJzZVN0YXRl ICpwc3RhdGUsIFBhcmFtUmVmICpwcmVmKQogCXJldHVybiByZXN1bHQ7CiB9CiAKK3N0YXRpYyBO b2RlICoKK3RyYW5zZm9ybVZhcmlhYmxlRmVuY2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBWYXJpYWJs ZUZlbmNlICp2ZikKK3sKKwlOb2RlCSAgICpyZXN1bHQ7CisJT2lkCQkJdmFyaWQgPSBJbnZhbGlk T2lkOworCWNoYXIJICAgKmF0dHJuYW1lID0gTlVMTDsKKwlib29sCQlub3RfdW5pcXVlOworCisJ LyogVmFyaWFibGVGZW5jZSBjYW4gYmUgdXNlZCBvbmx5IGluIGNvbnRleHQgd2hlbiB2YXJpYWJs ZXMgYXJlIHN1cHBvcnRlZCAqLworCWlmICghZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3Zhcmlh Ymxlcyhwc3RhdGUtPnBfZXhwcl9raW5kKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCShlcnJjb2Rl KEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCSBlcnJtc2coInNlc3Npb24gdmFy aWFibGUgcmVmZXJlbmNlIGlzIG5vdCBzdXBwb3J0ZWQgaGVyZSIpLAorCQkJIHBhcnNlcl9lcnJw b3NpdGlvbihwc3RhdGUsIHZmLT5sb2NhdGlvbikpKTsKKworCS8qIHRha2VzIGFuIEFjY2Vzc1No YXJlTG9jayBvbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSAqLworCXZhcmlkID0gSWRlbnRpZnlWYXJp YWJsZSh2Zi0+dmFybmFtZSwgJmF0dHJuYW1lLCAmbm90X3VuaXF1ZSwgZmFsc2UpOworCisJaWYg KG5vdF91bmlxdWUpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9BTUJJ R1VPVVNfUEFSQU1FVEVSKSwKKwkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5j ZSBcIiVzXCIgaXMgYW1iaWd1b3VzIiwKKwkJCQkJCU5hbWVMaXN0VG9TdHJpbmcodmYtPnZhcm5h bWUpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgdmYtPmxvY2F0aW9uKSkpOwor CisJaWYgKE9pZElzVmFsaWQodmFyaWQpKQorCXsKKwkJT2lkCQkJdHlwaWQ7CisJCWludDMyCQl0 eXBtb2Q7CisJCU9pZAkJCWNvbGxpZDsKKworCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5 cG1vZF9jb2xsaWQodmFyaWQsICZ0eXBpZCwgJnR5cG1vZCwKKwkJCQkJCQkJCQkJCSZjb2xsaWQp OworCisJCXJlc3VsdCA9IG1ha2VQYXJhbVNlc3Npb25WYXJpYWJsZShwc3RhdGUsCisJCQkJCQkJ CQkJdmFyaWQsIHR5cGlkLCB0eXBtb2QsIGNvbGxpZCwKKwkJCQkJCQkJCQlhdHRybmFtZSwgdHJ1 ZSwgdmYtPmxvY2F0aW9uKTsKKwl9CisJZWxzZQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJj b2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJp YWJsZSBcIiVzXCIgZG9lc24ndCBleGlzdCIsCisJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKHZmLT52 YXJuYW1lKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHZmLT5sb2NhdGlvbikp KTsKKworCXJldHVybiByZXN1bHQ7Cit9CisKIC8qIFRlc3Qgd2hldGhlciBhbiBhX2V4cHIgaXMg YSBwbGFpbiBOVUxMIGNvbnN0YW50IG9yIG5vdCAqLwogc3RhdGljIGJvb2wKIGV4cHJJc051bGxD b25zdGFudChOb2RlICphcmcpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf dGFyZ2V0LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKaW5kZXggNzZiZjg4 YzNjYS4uY2M2M2I0NGJiYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Rh cmdldC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwpAQCAtMjAzNCw2 ICsyMDM0LDEzIEBAIEZpZ3VyZUNvbG5hbWVJbnRlcm5hbChOb2RlICpub2RlLCBjaGFyICoqbmFt ZSkKIAkJCQkJCSAoaW50KSAoKEpzb25GdW5jRXhwciAqKSBub2RlKS0+b3ApOwogCQkJfQogCQkJ YnJlYWs7CisJCWNhc2UgVF9WYXJpYWJsZUZlbmNlOgorCQkJeworCQkJCS8qIHJldHVybiBsYXN0 IGZpZWxkIG5hbWUgKi8KKwkJCQkqbmFtZSA9IHN0clZhbChsbGFzdCgoKFZhcmlhYmxlRmVuY2Ug Kikgbm9kZSktPnZhcm5hbWUpKTsKKwkJCQlyZXR1cm4gMjsKKwkJCX0KKwkJCWJyZWFrOwogCQlk ZWZhdWx0OgogCQkJYnJlYWs7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3J1bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IDNl MWUxYWU3OTguLmEyZTY1ZGZmOTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9y dWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTg2 MzAsOCArODYzMCwxNiBAQCBnZXRfcGFyYW1ldGVyKFBhcmFtICpwYXJhbSwgZGVwYXJzZV9jb250 ZXh0ICpjb250ZXh0KQogCS8qIHRyYW5zbGF0ZSBwYXJhbXZhcmlkIHRvIHNlc3Npb24gdmFyaWFi bGUgbmFtZSAqLwogCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQogCXsK LQkJYXBwZW5kU3RyaW5nSW5mbyhjb250ZXh0LT5idWYsICIlcyIsCi0JCQkJCQkgZ2VuZXJhdGVf c2Vzc2lvbl92YXJpYWJsZV9uYW1lKHBhcmFtLT5wYXJhbXZhcmlkKSk7CisJCWlmIChwYXJhbS0+ cGFyYW12YXJmZW5jZWQpCisJCXsKKwkJCWFwcGVuZFN0cmluZ0luZm8oY29udGV4dC0+YnVmLCAi VkFSSUFCTEUoJXMpIiwKKwkJCQkJCQkgZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHBh cmFtLT5wYXJhbXZhcmlkKSk7CisJCX0KKwkJZWxzZQorCQl7CisJCQlhcHBlbmRTdHJpbmdJbmZv KGNvbnRleHQtPmJ1ZiwgIiVzIiwKKwkJCQkJCQkgZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9u YW1lKHBhcmFtLT5wYXJhbXZhcmlkKSk7CisJCX0KIAkJcmV0dXJuOwogCX0KIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgYi9zcmMvYmFja2VuZC91dGls cy9taXNjL2d1Y190YWJsZXMuYwppbmRleCA0NjRiZTA1YWQ3Li44NTNhODBkNzlhIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpAQCAtMTYxNCw2ICsxNjE0LDE1IEBAIHN0cnVjdCBj b25maWdfYm9vbCBDb25maWd1cmVOYW1lc0Jvb2xbXSA9CiAJCWZhbHNlLAogCQlOVUxMLCBOVUxM LCBOVUxMCiAJfSwKKwl7CisJCXsic2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdf Z3VhcmQiLCBQR0NfVVNFUlNFVCwgQ0xJRU5UX0NPTk5fU1RBVEVNRU5ULAorCQkJZ2V0dGV4dF9u b29wKCJSYWlzZSBhIHdhcm5pbmcgd2hlbiB2YXJpYWJsZSBpcyBub3QgdXNlZCBpbnNpZGUgdmFy aWFibGUgZmVuY2UuIiksCisJCQlOVUxMCisJCX0sCisJCSZzZXNzaW9uX3ZhcmlhYmxlc191c2Vf ZmVuY2Vfd2FybmluZ19ndWFyZCwKKwkJZmFsc2UsCisJCU5VTEwsIE5VTEwsIE5VTEwKKwl9LAog CXsKIAkJeyJkZWZhdWx0X3RyYW5zYWN0aW9uX3JlYWRfb25seSIsIFBHQ19VU0VSU0VULCBDTElF TlRfQ09OTl9TVEFURU1FTlQsCiAJCQlnZXR0ZXh0X25vb3AoIlNldHMgdGhlIGRlZmF1bHQgcmVh ZC1vbmx5IHN0YXR1cyBvZiBuZXcgdHJhbnNhY3Rpb25zLiIpLApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4IGQxOGExNzU0NGEuLjQ3MDQxY2Jl ODAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNh bXBsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUK QEAgLTcxNyw2ICs3MTcsNyBAQAogI2RlZmF1bHRfdHJhbnNhY3Rpb25fZGVmZXJyYWJsZSA9IG9m ZgogI3Nlc3Npb25fcmVwbGljYXRpb25fcm9sZSA9ICdvcmlnaW4nCiAjc2Vzc2lvbl92YXJpYWJs ZXNfYW1iaWd1aXR5X3dhcm5pbmcgPSBvZmYKKyNzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vf d2FybmluZ19ndWFyZCA9IG9mZgogI3N0YXRlbWVudF90aW1lb3V0ID0gMAkJCQkjIGluIG1pbGxp c2Vjb25kcywgMCBpcyBkaXNhYmxlZAogI3RyYW5zYWN0aW9uX3RpbWVvdXQgPSAwCQkJIyBpbiBt aWxsaXNlY29uZHMsIDAgaXMgZGlzYWJsZWQKICNsb2NrX3RpbWVvdXQgPSAwCQkJCSMgaW4gbWls bGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggMDRhYjIy YmQ0OS4uMDFiYzMxZThhOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMzEyLDYgKzMxMiwx NiBAQCB0eXBlZGVmIHN0cnVjdCBQYXJhbVJlZgogCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9r ZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KIH0gUGFyYW1SZWY7CiAKKy8qCisgKiBW YXJpYWJsZUZlbmNlIC0gZW5zdXJlIHNvIGZpZWxkcyB3aWxsIGJlIGludGVycHJldHRlZCBhcyBh IHZhcmlhYmxlCisgKi8KK3R5cGVkZWYgc3RydWN0IFZhcmlhYmxlRmVuY2UKK3sKKwlOb2RlVGFn CQl0eXBlOworCUxpc3QJICAgKnZhcm5hbWU7CQkvKiB2YXJpYWJsZSBuYW1lIChTdHJpbmcgbm9k ZXMpICovCisJUGFyc2VMb2MJbG9jYXRpb247CQkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYg dW5rbm93biAqLworfSBWYXJpYWJsZUZlbmNlOworCiAvKgogICogQV9FeHByIC0gaW5maXgsIHBy ZWZpeCwgYW5kIHBvc3RmaXggZXhwcmVzc2lvbnMKICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRl eCA0YjI0MjRkNmQzLi4wNTNhZjZhZTA5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9w cmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtMzg2LDYg KzM4Niw4IEBAIHR5cGVkZWYgc3RydWN0IFBhcmFtCiAJT2lkCQkJcGFyYW1jb2xsaWQgcGdfbm9k ZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIE9JRCBvZiBzZXNzaW9uIHZhcmlhYmxl IGlmIGl0IGlzIHVzZWQgKi8KIAlPaWQJCQlwYXJhbXZhcmlkOworCS8qIHRydWUgd2hlbiB2YXJp YWJsZSBpcyB1c2VkIGluc2lkZSBhbiBmZW5jZSAqLworCWJvb2wJCXBhcmFtdmFyZmVuY2VkOwog CS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiAJUGFyc2VMb2MJbG9jYXRp b247CiB9IFBhcmFtOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIu aCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKaW5kZXggMGQ2NGIzMDBmOC4uMDk0 OGEwYjFiNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAorKysg Yi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCkBAIC0xOCw2ICsxOCw3IEBACiAvKiBH VUMgcGFyYW1ldGVycyAqLwogZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgVHJhbnNmb3JtX251bGxf ZXF1YWxzOwogZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1 aXR5X3dhcm5pbmc7CitleHRlcm4gUEdETExJTVBPUlQgYm9vbCBzZXNzaW9uX3ZhcmlhYmxlc191 c2VfZmVuY2Vfd2FybmluZ19ndWFyZDsKIAogZXh0ZXJuIE5vZGUgKnRyYW5zZm9ybUV4cHIoUGFy c2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKTsKIApk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRl eCAyZGUwYmZlNjI2Li45Njk4MDY2NmI1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTU4MCwzICsxNTgwLDYyIEBAIFNFVCBzZXNz aW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvZmY7CiBEUk9QIFRBQkxFIHB1Ymxp Yy54eHRhYjsKIERST1AgU0NIRU1BIHh4dGFiIENBU0NBREU7CiBOT1RJQ0U6ICBkcm9wIGNhc2Nh ZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgeHh0YWIuYXZhcgorLS0gdGVzdCBzZXNzaW9uX3Zhcmlh Ymxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZAorU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmln dWl0eV93YXJuaW5nIFRPIG9uOworU0VUIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJu aW5nX2d1YXJkIFRPIG9uOworQ1JFQVRFIFNDSEVNQSB0ZXN0dmFyOworU0VUIHNlYXJjaF9wYXRo IFRPICd0ZXN0dmFyJzsKK0NSRUFURSBWQVJJQUJMRSBhIEFTIGludDsKK0xFVCBhID0gMTA7CitD UkVBVEUgVEFCTEUgdGVzdF90YWJsZShhIGludCwgYiBpbnQpOworSU5TRVJUIElOVE8gdGVzdF90 YWJsZSBWQUxVRVMoMjAsIDIwKTsKKy0tIG5vIHdhcm5pbmcKK1NFTEVDVCBhOworIGEgIAorLS0t LQorIDEwCisoMSByb3cpCisKKy0tIHdhcm5pbmcgdmFyaWFibGUgaXMgc2hhZG93ZWQKK1NFTEVD VCBhLCBiIEZST00gdGVzdF90YWJsZTsKK1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlhYmxlICJhIiBp cyBzaGFkb3dlZAorTElORSAxOiBTRUxFQ1QgYSwgYiBGUk9NIHRlc3RfdGFibGU7CisgICAgICAg ICAgICAgICBeCitERVRBSUw6ICBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hhZG93ZWQgYnkg Y29sdW1ucywgcm91dGluZSdzIHZhcmlhYmxlcyBhbmQgcm91dGluZSdzIGFyZ3VtZW50cyB3aXRo IHRoZSBzYW1lIG5hbWUuCisgYSAgfCBiICAKKy0tLS0rLS0tLQorIDIwIHwgMjAKKygxIHJvdykK KworLS0gbm8gd2FybmluZworU0VMRUNUIHZhcmlhYmxlKGEpIEZST00gdGVzdF90YWJsZTsKKyBh ICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitBTFRFUiBUQUJMRSB0ZXN0X3RhYmxlIERST1AgQ09M VU1OIGE7CistLSB3YXJuaW5nIC0gdmFyaWFibGUgZmVuY2UgaXMgbm90IHVzZWQKK1NFTEVDVCBh LCBiIEZST00gdGVzdF90YWJsZTsKK1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlhYmxlICJhIiBpcyBu b3QgdXNlZCBpbnNpZGUgdmFyaWFibGUgZmVuY2UKK0xJTkUgMTogU0VMRUNUIGEsIGIgRlJPTSB0 ZXN0X3RhYmxlOworICAgICAgICAgICAgICAgXgorREVUQUlMOiAgVGhlIGNvbGxpc2lvbiBvZiBz ZXNzaW9uIHZhcmlhYmxlJyBuYW1lcyBhbmQgY29sdW1uIG5hbWVzIGlzIHBvc3NpYmxlLgorIGEg IHwgYiAgCistLS0tKy0tLS0KKyAxMCB8IDIwCisoMSByb3cpCisKKy0tIG5vIHdhcm5pbmcKK1NF TEVDVCB2YXJpYWJsZShhKSwgYiBGUk9NIHRlc3RfdGFibGU7CisgYSAgfCBiICAKKy0tLS0rLS0t LQorIDEwIHwgMjAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSBhOworRFJPUCBUQUJMRSB0ZXN0 X3RhYmxlOworRFJPUCBTQ0hFTUEgdGVzdHZhcjsKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJp Z3VpdHlfd2FybmluZyBUTyBERUZBVUxUOworU0VUIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5j ZV93YXJuaW5nX2d1YXJkIFRPIERFRkFVTFQ7CitTRVQgc2VhcmNoX3BhdGggVE8gREVGQVVMVDsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCAxZjg4N2Q4 ZTQxLi5hMWY2Mzc0MGMxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsCkBAIC0xMDc2LDMgKzEwNzYsNDQgQEAgU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmln dWl0eV93YXJuaW5nIFRPIG9mZjsKIAogRFJPUCBUQUJMRSBwdWJsaWMueHh0YWI7CiBEUk9QIFND SEVNQSB4eHRhYiBDQVNDQURFOworCistLSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5j ZV93YXJuaW5nX2d1YXJkCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcg VE8gb247CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQgVE8g b247CisKK0NSRUFURSBTQ0hFTUEgdGVzdHZhcjsKKworU0VUIHNlYXJjaF9wYXRoIFRPICd0ZXN0 dmFyJzsKKworQ1JFQVRFIFZBUklBQkxFIGEgQVMgaW50OworTEVUIGEgPSAxMDsKKworQ1JFQVRF IFRBQkxFIHRlc3RfdGFibGUoYSBpbnQsIGIgaW50KTsKKworSU5TRVJUIElOVE8gdGVzdF90YWJs ZSBWQUxVRVMoMjAsIDIwKTsKKworLS0gbm8gd2FybmluZworU0VMRUNUIGE7CisKKy0tIHdhcm5p bmcgdmFyaWFibGUgaXMgc2hhZG93ZWQKK1NFTEVDVCBhLCBiIEZST00gdGVzdF90YWJsZTsKKwor LS0gbm8gd2FybmluZworU0VMRUNUIHZhcmlhYmxlKGEpIEZST00gdGVzdF90YWJsZTsKKworQUxU RVIgVEFCTEUgdGVzdF90YWJsZSBEUk9QIENPTFVNTiBhOworCistLSB3YXJuaW5nIC0gdmFyaWFi bGUgZmVuY2UgaXMgbm90IHVzZWQKK1NFTEVDVCBhLCBiIEZST00gdGVzdF90YWJsZTsKKworLS0g bm8gd2FybmluZworU0VMRUNUIHZhcmlhYmxlKGEpLCBiIEZST00gdGVzdF90YWJsZTsKKworRFJP UCBWQVJJQUJMRSBhOworRFJPUCBUQUJMRSB0ZXN0X3RhYmxlOworCitEUk9QIFNDSEVNQSB0ZXN0 dmFyOworCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gREVGQVVM VDsKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZCBUTyBERUZB VUxUOworU0VUIHNlYXJjaF9wYXRoIFRPIERFRkFVTFQ7Ci0tIAoyLjQ3LjEKCg== --000000000000ee56b206299a729a Content-Type: text/x-patch; charset="US-ASCII"; name="v20241219-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20241219-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4uzyqw017 RnJvbSAzOTg2NjllYTkyNjFlZDBkYmM2YzhhNGI4NWMxMGRmYmRiNGQ5MjE5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAwOTozMToyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDUvMjJdIG1lbW9yeSBjbGVhbmluZyBhZnRlciBEUk9QIFZBUklBQkxFCgpBY2NlcHRpbmcgYSBz aW52YWwgbWVzc2FnZSBpbnZhbGlkYXRlcyBlbnRyaWVzIGluIHRoZSAic2Vzc2lvbnZhcnMiIGhh c2ggdGFibGUuClRoZXNlIGVudHJpZXMgYXJlIHZhbGlkYXRlZCBiZWZvcmUgYW55IHJlYWQgb3Ig d3JpdGUgb3BlcmF0aW9ucyBvbiBzZXNzaW9uIHZhcmlhYmxlcy4KV2hlbiB0aGUgZW50cnkgY2Fu bm90IGJlIHZhbGlkYXRlZCwgaXQgaXMgcmVtb3ZlZC4gIFJlbW92YWwgd2lsbCBiZSBkZWxheWVk IHdoZW4KdGhlIHZhcmlhYmxlIHdhcyBkcm9wcGVkIGJ5IHRoZSBjdXJyZW50IHRyYW5zYWN0aW9u LCB3aGljaCBjb3VsZCBzdGlsbCBiZSByb2xsZWQgYmFjay4KLS0tCiBzcmMvYmFja2VuZC9jYXRh bG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDE1MyArKysrKysrKysrKy0KIHNyYy9pbmNs dWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgMiArCiAuLi4vaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0ICAgfCAxMTAgKysrKysrKysrCiBzcmMv dGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlICAgICAgICAgfCAgIDEgKwogLi4uL2lz b2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgICAgIHwgIDUwICsrKysKIC4uLi9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDIxNyArKysrKysrKysr KysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8 IDEyMCArKysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDY1NSBpbnNlcnRpb25zKCspLCA1IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3Rl ZC9zZXNzaW9uLXZhcmlhYmxlLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xh dGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxl LmMKaW5kZXggYzk5YTJlYWMwMy4uMmYxNzYyOWU3ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFi bGUuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2lu Y2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAjaW5j bHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKQEAgLTIzMCw3ICsyMzEsOCBAQCBDcmVhdGVWYXJpYWJs ZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogfQogCiAv KgotICogRHJvcCB2YXJpYWJsZSBieSBPSUQKKyAqIERyb3AgdmFyaWFibGUgYnkgT0lELCBhbmQg cmVnaXN0ZXIgdGhlIG5lZWRlZCBzZXNzaW9uIHZhcmlhYmxlCisgKiBjbGVhbnVwLgogICovCiB2 b2lkCiBEcm9wVmFyaWFibGVCeUlkKE9pZCB2YXJpZCkKQEAgLTI1MCw0ICsyNTIsNyBAQCBEcm9w VmFyaWFibGVCeUlkKE9pZCB2YXJpZCkKIAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKIAogCXRhYmxl X2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwkvKiBkbyB0aGUgbmVjZXNzYXJ5IGNs ZWFudXAgaW4gbG9jYWwgbWVtb3J5LCBpZiBuZWVkZWQgKi8KKwlTZXNzaW9uVmFyaWFibGVEcm9w UG9zdHByb2Nlc3ModmFyaWQpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5jCmluZGV4IDZkMGMyYzAwMmUuLmIzN2Y2YzNmYjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k 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 YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggNDQzYWZiYWZkNC4uM2RhYjhhZTJhNCAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3Ny Yy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMjEsNiArMjEsOCBAQAog I2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCiAjaW5jbHVkZSAidXRpbHMvcXVlcnllbnZpcm9ubWVu dC5oIgogCitleHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZh cmlkKTsKKwogZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0g dmFsdWUsIGJvb2wgaXNOdWxsKTsKIGV4dGVybiB2b2lkIFNldFNlc3Npb25WYXJpYWJsZVdpdGhT ZWN1cml0eUNoZWNrKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsKIGV4dGVy biBEYXR1bSBHZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBib29sICppc051bGwsIE9pZCAq dHlwaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24t dmFyaWFibGUub3V0IGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFi bGUub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjBhNTU3OWRjN2MK LS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12 YXJpYWJsZS5vdXQKQEAgLTAsMCArMSwxMTAgQEAKK1BhcnNlZCB0ZXN0IHNwZWMgd2l0aCA0IHNl c3Npb25zCisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIGRyb3AgdmFsCitzdGVwIGxl dDogTEVUIG15dmFyID0gJ3Rlc3QnOworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK215dmFyCist LS0tLQordGVzdCAKKygxIHJvdykKKworc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOwor c3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK0VSUk9SOiAgY29sdW1uICJteXZhciIgZG9lcyBub3Qg ZXhpc3QKKworc3RhcnRpbmcgcGVybXV0YXRpb246IGxldCB2YWwgczEgZHJvcCB2YWwgc3IxCitz dGVwIGxldDogTEVUIG15dmFyID0gJ3Rlc3QnOworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK215 dmFyCistLS0tLQordGVzdCAKKygxIHJvdykKKworc3RlcCBzMTogQkVHSU47CitzdGVwIGRyb3A6 IERST1AgVkFSSUFCTEUgbXl2YXI7CitzdGVwIHZhbDogU0VMRUNUIG15dmFyOworRVJST1I6ICBj b2x1bW4gIm15dmFyIiBkb2VzIG5vdCBleGlzdAorc3RlcCBzcjE6IFJPTExCQUNLOworCitzdGFy dGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbAorc3RlcCBs ZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitteXZhcgor LS0tLS0KK3Rlc3QgCisoMSByb3cpCisKK3N0ZXAgZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCBy ZW1vdmVkIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKK3NjaGVtYXxuYW1lIHxyZW1vdmVk CistLS0tLS0rLS0tLS0rLS0tLS0tLQorcHVibGljfG15dmFyfGYgICAgICAKKygxIHJvdykKKwor c3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOworc3RlcCBjcmVhdGU6IENSRUFURSBWQVJJ QUJMRSBteXZhciBBUyB0ZXh0Oworc3RlcCBkYmc6IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92 ZWQgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworc2NoZW1hfG5hbWV8cmVtb3ZlZAorLS0t LS0tKy0tLS0rLS0tLS0tLQorICAgICAgfCAgICB8dCAgICAgIAorKDEgcm93KQorCitzdGVwIHZh bDogU0VMRUNUIG15dmFyOworbXl2YXIKKy0tLS0tCisgICAgIAorKDEgcm93KQorCisKK3N0YXJ0 aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIHMxIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFsIHNyMQor c3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7Citt eXZhcgorLS0tLS0KK3Rlc3QgCisoMSByb3cpCisKK3N0ZXAgczE6IEJFR0lOOworc3RlcCBkYmc6 IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygp Oworc2NoZW1hfG5hbWUgfHJlbW92ZWQKKy0tLS0tLSstLS0tLSstLS0tLS0tCitwdWJsaWN8bXl2 YXJ8ZiAgICAgIAorKDEgcm93KQorCitzdGVwIGRyb3A6IERST1AgVkFSSUFCTEUgbXl2YXI7Citz dGVwIGNyZWF0ZTogQ1JFQVRFIFZBUklBQkxFIG15dmFyIEFTIHRleHQ7CitzdGVwIGRiZzogU0VM RUNUIHNjaGVtYSwgbmFtZSwgcmVtb3ZlZCBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7Citz Y2hlbWF8bmFtZSB8cmVtb3ZlZAorLS0tLS0tKy0tLS0tKy0tLS0tLS0KK3B1YmxpY3xteXZhcnxm ICAgICAgCisoMSByb3cpCisKK3N0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitteXZhcgorLS0tLS0K KyAgICAgCisoMSByb3cpCisKK3N0ZXAgc3IxOiBST0xMQkFDSzsKKworc3RhcnRpbmcgcGVybXV0 YXRpb246IGNyZWF0ZTMgbGV0MyBzMyBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRp c2NhcmQgc2MzIHN0YXRlCitzdGVwIGNyZWF0ZTM6IENSRUFURSBWQVJJQUJMRSBteXZhcjMgQVMg dGV4dDsKK3N0ZXAgbGV0MzogTEVUIG15dmFyMyA9ICd0ZXN0JzsKK3N0ZXAgczM6IEJFR0lOOwor c3RlcCBjcmVhdGU0OiBDUkVBVEUgVkFSSUFCTEUgbXl2YXI0IEFTIHRleHQ7CitzdGVwIGxldDQ6 IExFVCBteXZhcjQgPSAndGVzdCc7CitzdGVwIGRyb3A0OiBEUk9QIFZBUklBQkxFIG15dmFyNDsK K3N0ZXAgZHJvcDM6IERST1AgVkFSSUFCTEUgbXl2YXIzOworc3RlcCBpbnZhbDM6IFNFTEVDVCBD T1VOVCgqKSA+PSAwIEZST00gcGdfZm9yZWlnbl90YWJsZTsKKz9jb2x1bW4/CistLS0tLS0tLQor dCAgICAgICAKKygxIHJvdykKKworc3RlcCBkaXNjYXJkOiBESVNDQVJEIFZBUklBQkxFUzsKK3N0 ZXAgc2MzOiBDT01NSVQ7CitzdGVwIHN0YXRlOiBTRUxFQ1QgdmFybmFtZSBGUk9NIHBnX3Zhcmlh YmxlOwordmFybmFtZQorLS0tLS0tLQorbXl2YXIgIAorKDEgcm93KQorCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlIGIvc3JjL3Rlc3QvaXNvbGF0aW9u L2lzb2xhdGlvbl9zY2hlZHVsZQppbmRleCAxNDMxMDlhYTRkLi43NDUzNjg1ZDA0IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0 L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKQEAgLTExNSwzICsxMTUsNCBAQCB0ZXN0OiBz ZXJpYWxpemFibGUtcGFyYWxsZWwtMgogdGVzdDogc2VyaWFsaXphYmxlLXBhcmFsbGVsLTMKIHRl c3Q6IG1hdHZpZXctd3JpdGUtc2tldwogdGVzdDogbG9jay1ub3dhaXQKK3Rlc3Q6IHNlc3Npb24t dmFyaWFibGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZh cmlhYmxlLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5z cGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmM4NjRmZWU0MDAKLS0t IC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJs ZS5zcGVjCkBAIC0wLDAgKzEsNTAgQEAKKyMgVGVzdCBzZXNzaW9uIHZhcmlhYmxlcyBtZW1vcnkg Y2xlYW51cCBmb3Igc2ludmFsCisKK3NldHVwCit7CisgICAgQ1JFQVRFIFZBUklBQkxFIG15dmFy IEFTIHRleHQ7Cit9CisKK3RlYXJkb3duCit7CisgICAgRFJPUCBWQVJJQUJMRSBJRiBFWElTVFMg bXl2YXI7Cit9CisKK3Nlc3Npb24gczEKK3N0ZXAgczEJCXsgQkVHSU47IH0KK3N0ZXAgbGV0CXsg TEVUIG15dmFyID0gJ3Rlc3QnOyB9CitzdGVwIHZhbAl7IFNFTEVDVCBteXZhcjsgfQorc3RlcCBk YmcJeyBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00gcGdfc2Vzc2lvbl92YXJpYWJs ZXMoKTsgfQorc3RlcCBzcjEJeyBST0xMQkFDSzsgfQorCitzZXNzaW9uIHMyCitzdGVwIGRyb3AJ CXsgRFJPUCBWQVJJQUJMRSBteXZhcjsgfQorc3RlcCBjcmVhdGUJCXsgQ1JFQVRFIFZBUklBQkxF IG15dmFyIEFTIHRleHQ7IH0KKworc2Vzc2lvbiBzMworc3RlcCBzMwkJCXsgQkVHSU47IH0KK3N0 ZXAgbGV0MwkJeyBMRVQgbXl2YXIzID0gJ3Rlc3QnOyB9CitzdGVwIGNyZWF0ZTQJeyBDUkVBVEUg VkFSSUFCTEUgbXl2YXI0IEFTIHRleHQ7IH0KK3N0ZXAgbGV0NAkJeyBMRVQgbXl2YXI0ID0gJ3Rl c3QnOyB9CitzdGVwIGRyb3A0CQl7IERST1AgVkFSSUFCTEUgbXl2YXI0OyB9CitzdGVwIGludmFs MwkJeyBTRUxFQ1QgQ09VTlQoKikgPj0gMCBGUk9NIHBnX2ZvcmVpZ25fdGFibGU7IH0KK3N0ZXAg ZGlzY2FyZAl7IERJU0NBUkQgVkFSSUFCTEVTOyB9CitzdGVwIHNjMwkJeyBDT01NSVQ7IH0KK3N0 ZXAgc3RhdGUJCXsgU0VMRUNUIHZhcm5hbWUgRlJPTSBwZ192YXJpYWJsZTsgfQorCitzZXNzaW9u IHM0CitzdGVwIGNyZWF0ZTMJeyBDUkVBVEUgVkFSSUFCTEUgbXl2YXIzIEFTIHRleHQ7IH0KK3N0 ZXAgZHJvcDMJCXsgRFJPUCBWQVJJQUJMRSBteXZhcjM7IH0KKworIyBDb25jdXJyZW50IGRyb3Ag b2YgYSBrbm93biB2YXJpYWJsZSBzaG91bGQgbGVhZCB0byBhbiBlcnJvcgorcGVybXV0YXRpb24g bGV0IHZhbCBkcm9wIHZhbAorIyBTYW1lLCBidXQgd2l0aCBhbiBleHBsaWNpdCB0cmFuc2FjdGlv bgorcGVybXV0YXRpb24gbGV0IHZhbCBzMSBkcm9wIHZhbCBzcjEKKyMgQ29uY3VycmVudCBkcm9w L2NyZWF0ZSBvZiBhIGtub3duIHZhcmlhYmxlIHNob3VsZCBsZWFkIHRvIGVtcHR5IHZhcmlhYmxl CitwZXJtdXRhdGlvbiBsZXQgdmFsIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFsCisjIENvbmN1cnJl bnQgZHJvcC9jcmVhdGUgb2YgYSBrbm93biB2YXJpYWJsZSBzaG91bGQgbGVhZCB0byBlbXB0eSB2 YXJpYWJsZQorIyBXZSBuZWVkIGEgdHJhbnNhY3Rpb24gdG8gbWFrZSBzdXJlIHRoYXQgd2Ugd29u J3QgYWNjZXB0IGludmFsaWRhdGlvbiB3aGVuCisjIGNhbGxpbmcgdGhlIGRiZyBzdGVwIGFmdGVy IHRoZSBjb25jdXJyZW50IGRyb3AKK3Blcm11dGF0aW9uIGxldCB2YWwgczEgZGJnIGRyb3AgY3Jl YXRlIGRiZyB2YWwgc3IxCisjIHRlc3QgZm9yIERJU0NBUkQgQUxMIHdoZW4gYWxsIGludGVybmFs IHF1ZXVlcyBoYXZlIGFjdGlvbnMgcmVnaXN0ZXJlZAorcGVybXV0YXRpb24gY3JlYXRlMyBsZXQz IHMzIGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXgg M2U1ZTEwNGFiMC4uYmMxMTM3YzliNSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTEzNDEsMyArMTM0MSwyMjAgQEAgU0VMRUNUIGNv dW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKICAgICAgMAogKDEgcm93KQogCist LSBkcm9wcGVkIHZhcmlhYmxlcyBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIG1lbW9yeSBiZWZvcmUg dGhlIG5leHQgdXNhZ2UKKy0tIG9mIGFueSBzZXNzaW9uIHZhcmlhYmxlIGluIHRoZSBuZXh0IHRy YW5zYWN0aW9uCitMRVQgdmFyMSA9ICdBaG9qJzsKK1NFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5f c2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBuYW1lIHwg ICAgICB0eXBuYW1lICAgICAgfCBjYW5fc2VsZWN0IHwgY2FuX3VwZGF0ZSAKKy0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2YXIxIHwgY2hhcmFj dGVyIHZhcnlpbmcgfCB0ICAgICAgICAgIHwgdAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZh cjE7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92 YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAor KDEgcm93KQorCistLSB0aGUgY29udGVudCBvZiB0aGUgdmFsdWUgc2hvdWxkIGJlIHByZXNlcnZl ZCB3aGVuIGEgdmFyaWFibGUgaXMgZHJvcHBlZAorLS0gYnkgYW4gYWJvcnRlZCB0cmFuc2FjdGlv bgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhcjsKK0xFVCB2YXIxID0gJ0Fob2onOwor QkVHSU47CitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjE7 CitFUlJPUjogIGNvbHVtbiAidmFyMSIgZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUIHZh cjE7CisgICAgICAgICAgICAgICBeCitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNU IHZhcjE7CisgdmFyMSAKKy0tLS0tLQorIEFob2oKKygxIHJvdykKKworLS0gYW5vdGhlciB0ZXN0 CitCRUdJTjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGlu dDsKK0xFVCB2YXIxID0gMTAwOworLS0gc2hvdWxkIGJlIG9rLCByZXN1bHQgMTAwCitTRUxFQ1Qg dmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitST0xMQkFDSzsKKy0tIHNo b3VsZCBiZSBvaywgcmVzdWx0ICdBaG9qJworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQor IEFob2oKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gc2hvdWxkIGJlIHplcm8K K1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkgV0hFUkUgTk9UIHJl bW92ZWQ7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworQkVHSU47CisgIENS RUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2 YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKKyAgU0VMRUNUIG5hbWUsIHR5 cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygp OworIG5hbWUgfCB0eXBuYW1lIHwgY2FuX3NlbGVjdCB8IGNhbl91cGRhdGUgCistLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2YXIxIHwgaW50ZWdlciB8IHQgICAg ICAgICAgfCB0CisoMSByb3cpCisKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworQ09NTUlUOworLS0g c2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVz KCkgV0hFUkUgTk9UIHJlbW92ZWQ7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykK KworQkVHSU47CisgIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKyAgTEVUIHZhcjEgPSAx MDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKKyAg U0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNz aW9uX3ZhcmlhYmxlcygpOworIG5hbWUgfCB0eXBuYW1lIHwgY2FuX3NlbGVjdCB8IGNhbl91cGRh dGUgCistLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2YXIxIHwg aW50ZWdlciB8IHQgICAgICAgICAgfCB0CisoMSByb3cpCisKKyAgRFJPUCBWQVJJQUJMRSB2YXIx OworQ09NTUlUOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nl c3Npb25fdmFyaWFibGVzKCkgV0hFUkUgTk9UIHJlbW92ZWQ7CisgY291bnQgCistLS0tLS0tCisg ICAgIDAKKygxIHJvdykKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRFIFZB UklBQkxFIHZhcjIgQVMgaW50OworTEVUIHZhcjEgPSAxMDsKK0xFVCB2YXIyID0gMDsKK0JFR0lO OworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xl YW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIy OworIHZhcjIgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKKyAgUk9MTEJBQ0sgVE8gczE7Cisg IFNBVkVQT0lOVCBzMjsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICBTRUxFQ1QgdmFyMjsKKyB2 YXIyIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMyOworQ09NTUlU OworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAor KDEgcm93KQorCitCRUdJTjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxFIHZhcjE7 CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJs ZQorICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCisgIFJP TExCQUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAg U0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworUk9MTEJBQ0s7 CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCiso MSByb3cpCisKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsK KyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxl CisgIFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKKyAgU0FW RVBPSU5UIHMyOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Np b24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJv dykKKworICBST0xMQkFDSyBUTyBzMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcg YW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0K KyAgICAwCisoMSByb3cpCisKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7 CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworLS0gcmVwZWF0ZWQgYWJvcnRlZCB0 cmFuc2FjdGlvbgorQkVHSU47IERST1AgVkFSSUFCTEUgdmFyMTsgUk9MTEJBQ0s7CitCRUdJTjsg RFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsKK0JFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7 IFJPTExCQUNLOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0t CisgICAxMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggMWMxNzFjNDEwMi4uNjJlOTI1 YmYxZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAt OTM2LDMgKzkzNiwxMjMgQEAgRElTQ0FSRCBWQVJJQUJMRVM7CiAKIC0tIHNob3VsZCBiZSB6ZXJv IGFnYWluCiBTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCist LSBkcm9wcGVkIHZhcmlhYmxlcyBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIG1lbW9yeSBiZWZvcmUg dGhlIG5leHQgdXNhZ2UKKy0tIG9mIGFueSBzZXNzaW9uIHZhcmlhYmxlIGluIHRoZSBuZXh0IHRy YW5zYWN0aW9uCisKK0xFVCB2YXIxID0gJ0Fob2onOworU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNh bl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworRFJPUCBW QVJJQUJMRSB2YXIxOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00g cGdfc2Vzc2lvbl92YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKworLS0gdGhlIGNvbnRl bnQgb2YgdGhlIHZhbHVlIHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBhIHZhcmlhYmxlIGlzIGRy b3BwZWQKKy0tIGJ5IGFuIGFib3J0ZWQgdHJhbnNhY3Rpb24KK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIHZhcmNoYXI7CitMRVQgdmFyMSA9ICdBaG9qJzsKK0JFR0lOOworRFJPUCBWQVJJQUJMRSB2 YXIxOworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjE7CisKK1JPTExCQUNLOworCistLSBz aG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworCistLSBhbm90aGVyIHRlc3QKK0JFR0lOOworRFJP UCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworTEVUIHZhcjEg PSAxMDA7CistLSBzaG91bGQgYmUgb2ssIHJlc3VsdCAxMDAKK1NFTEVDVCB2YXIxOworUk9MTEJB Q0s7CistLSBzaG91bGQgYmUgb2ssIHJlc3VsdCAnQWhvaicKK1NFTEVDVCB2YXIxOworCitEUk9Q IFZBUklBQkxFIHZhcjE7CisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJP TSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOworCitCRUdJTjsKKyAg Q1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNU IHZhcjE7CisgIFNFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBkYXRlIEZS T00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworQ09NTUlU OworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92 YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKworQkVHSU47CisgIENSRUFURSBWQVJJQUJM RSB2YXIxIEFTIGludDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworICBTRUxF Q1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3VwZGF0ZSBGUk9NIHBnX3Nlc3Npb25f dmFyaWFibGVzKCk7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxk IGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkgV0hF UkUgTk9UIHJlbW92ZWQ7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBW QVJJQUJMRSB2YXIyIEFTIGludDsKK0xFVCB2YXIxID0gMTA7CitMRVQgdmFyMiA9IDA7CitCRUdJ TjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIC0tIGZvcmNlIGNs ZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFy MjsKKyAgUk9MTEJBQ0sgVE8gczE7CisgIFNBVkVQT0lOVCBzMjsKKyAgRFJPUCBWQVJJQUJMRSB2 YXIxOworICBTRUxFQ1QgdmFyMjsKKyAgUk9MTEJBQ0sgVE8gczI7CitDT01NSVQ7CistLSBzaG91 bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworCitCRUdJTjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9Q IFZBUklBQkxFIHZhcjE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIg c2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKyAgUk9MTEJBQ0sgVE8gczE7CisgIFNB VkVQT0lOVCBzMjsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICBTRUxFQ1QgdmFyMjsKK1JPTExC QUNLOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworQkVHSU47CisgIFNBVkVQT0lO VCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3Vj aGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisKKyAgU0FWRVBP SU5UIHMyOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24g dmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgIFJPTExCQUNLIFRPIHMxOworICAtLSBmb3JjZSBj bGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZh cjI7CitDT01NSVQ7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworCistLSByZXBlYXRl ZCBhYm9ydGVkIHRyYW5zYWN0aW9uCitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFD SzsKK0JFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOworQkVHSU47IERST1AgVkFS SUFCTEUgdmFyMTsgUk9MTEJBQ0s7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisK K0RST1AgVkFSSUFCTEUgdmFyMSwgdmFyMjsKLS0gCjIuNDcuMQoK --000000000000ee56b206299a729a Content-Type: text/x-patch; charset="US-ASCII"; name="v20241219-0004-DISCARD-VARIABLES.patch" Content-Disposition: attachment; filename="v20241219-0004-DISCARD-VARIABLES.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4uzyqw818 RnJvbSBhYWE4ZDdhYWNmYzdjMWI5ZjcxNWFiMzZkYTdjZTVlNWM0OWU5YmQ0IE1vbiBTZXAgMTcg 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 Y2FyZC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jCmluZGV4IDkyZDk4M2FjNzQu LmQwNmViYWJhNmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Rpc2NhcmQuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJkLmMKQEAgLTE4LDYgKzE4LDcgQEAKICNp bmNsdWRlICJjb21tYW5kcy9hc3luYy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2Rpc2NhcmQuaCIK ICNpbmNsdWRlICJjb21tYW5kcy9wcmVwYXJlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNlLmgiCiAjaW5jbHVkZSAi dXRpbHMvZ3VjLmgiCiAjaW5jbHVkZSAidXRpbHMvcG9ydGFsLmgiCkBAIC00OCw2ICs0OSwxMCBA QCBEaXNjYXJkQ29tbWFuZChEaXNjYXJkU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogCQkJ UmVzZXRUZW1wVGFibGVOYW1lc3BhY2UoKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgRElTQ0FSRF9W QVJJQUJMRVM6CisJCQlSZXNldFNlc3Npb25WYXJpYWJsZXMoKTsKKwkJCWJyZWFrOworCiAJCWRl ZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIERJU0NBUkQgdGFyZ2V0OiAlZCIs IHN0bXQtPnRhcmdldCk7CiAJfQpAQCAtNzUsNCArODAsNSBAQCBEaXNjYXJkQWxsKGJvb2wgaXNU b3BMZXZlbCkKIAlSZXNldFBsYW5DYWNoZSgpOwogCVJlc2V0VGVtcFRhYmxlTmFtZXNwYWNlKCk7 CiAJUmVzZXRTZXF1ZW5jZUNhY2hlcygpOworCVJlc2V0U2Vzc2lvblZhcmlhYmxlcygpOwogfQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDEwMWY0ZDhmNGUuLjZk MGMyYzAwMmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFi bGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTk0 LDcgKzk0LDEzIEBAIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywgaW50IGNh Y2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCiAKIAllbG9nKERFQlVHMSwgInBnX3ZhcmlhYmxlX2Nh Y2hlX2NhbGxiYWNrICV1ICV1IiwgY2FjaGVpZCwgaGFzaHZhbHVlKTsKIAotCUFzc2VydChzZXNz aW9udmFycyk7CisJLyoKKwkgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgb2Ygc2Vzc2lvbiB2YXJp YWJsZXMgYmVpbmcgaW5pdGlhbGl6ZWQsIGV2ZW4gd2hlbgorCSAqIHJlY2VpdmluZyBhbiBpbnZh bGlkYXRpb24gY2FsbGJhY2ssIGFzIERJU0NBUkQgWyBBTEwgfCBWQVJJQUJMRVMgXQorCSAqIGRl c3Ryb3lzIHRoZSBoYXNoIHRhYmxlIGVudGlyZWx5LgorCSAqLworCWlmICghc2Vzc2lvbnZhcnMp CisJCXJldHVybjsKIAogCS8qCiAJICogSWYgdGhlIGhhc2h2YWx1ZSBpcyBub3Qgc3BlY2lmaWVk LCB3ZSBoYXZlIHRvIHJlY2hlY2sgYWxsIGN1cnJlbnRseQpAQCAtNjYxLDMgKzY2NywyMyBAQCBw Z19zZXNzaW9uX3ZhcmlhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCiAJcmV0dXJuIChEYXR1bSkg MDsKIH0KKworLyoKKyAqIEZhc3QgZHJvcCBvZiB0aGUgY29tcGxldGUgY29udGVudCBvZiB0aGUg c2Vzc2lvbiB2YXJpYWJsZXMgaGFzaCB0YWJsZSwgYW5kCisgKiBjbGVhbnVwIG9mIGFueSBsaXN0 IHRoYXQgd291bGRuJ3QgYmUgcmVsZXZhbnQgYW55bW9yZS4KKyAqIFRoaXMgaXMgdXNlZCBieSB0 aGUgRElTQ0FSRCBWQVJJQUJMRVMgKGFuZCBESVNDQVJEIEFMTCkgY29tbWFuZC4KKyAqLwordm9p ZAorUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpCit7CisJLyogZGVzdHJveSBoYXNoIHRhYmxl IGFuZCByZXNldCByZWxhdGVkIG1lbW9yeSBjb250ZXh0ICovCisJaWYgKHNlc3Npb252YXJzKQor CXsKKwkJaGFzaF9kZXN0cm95KHNlc3Npb252YXJzKTsKKwkJc2Vzc2lvbnZhcnMgPSBOVUxMOwor CX0KKworCS8qIHJlbGVhc2UgbWVtb3J5IGFsbG9jYXRlZCBieSBzZXNzaW9uIHZhcmlhYmxlcyAq LworCWlmIChTVmFyaWFibGVNZW1vcnlDb250ZXh0ICE9IE5VTEwpCisJCU1lbW9yeUNvbnRleHRS ZXNldChTVmFyaWFibGVNZW1vcnlDb250ZXh0KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDhhZTM2OGM1 MTMuLmFhZDQ3MzA1ZjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjA3Nyw3ICsyMDc3LDEzIEBAIERpc2Nh cmRTdG10OgogCQkJCQluLT50YXJnZXQgPSBESVNDQVJEX1NFUVVFTkNFUzsKIAkJCQkJJCQgPSAo Tm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgRElTQ0FSRCBWQVJJQUJMRVMKKwkJCQl7CisJCQkJCURp c2NhcmRTdG10ICpuID0gbWFrZU5vZGUoRGlzY2FyZFN0bXQpOwogCisJCQkJCW4tPnRhcmdldCA9 IERJU0NBUkRfVkFSSUFCTEVTOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQogCQk7CiAK IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90 Y29wL3V0aWxpdHkuYwppbmRleCAxOWVjZjJlNDI1Li41N2NlOTc3N2IzIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHku YwpAQCAtMjk2Miw2ICsyOTYyLDkgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUp CiAJCQkJY2FzZSBESVNDQVJEX1NFUVVFTkNFUzoKIAkJCQkJdGFnID0gQ01EVEFHX0RJU0NBUkRf U0VRVUVOQ0VTOwogCQkJCQlicmVhazsKKwkJCQljYXNlIERJU0NBUkRfVkFSSUFCTEVTOgorCQkJ CQl0YWcgPSBDTURUQUdfRElTQ0FSRF9WQVJJQUJMRVM7CisJCQkJCWJyZWFrOwogCQkJCWRlZmF1 bHQ6CiAJCQkJCXRhZyA9IENNRFRBR19VTktOT1dOOwogCQkJfQpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j CmluZGV4IDdlNDRlYzczNTkuLjUxNWY3NThjZjggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAg LTQxMTMsNyArNDExMyw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAog CiAvKiBESVNDQVJEICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiRElTQ0FSRCIpKQotCQlDT01QTEVU RV9XSVRIKCJBTEwiLCAiUExBTlMiLCAiU0VRVUVOQ0VTIiwgIlRFTVAiKTsKKwkJQ09NUExFVEVf V0lUSCgiQUxMIiwgIlBMQU5TIiwgIlNFUVVFTkNFUyIsICJURU1QIiwgIlZBUklBQkxFUyIpOwog CiAvKiBETyAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkRPIikpCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggYjNmMDNjNjU4Mi4uNDQzYWZiYWZkNCAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNs dWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMjksNCArMjksNiBAQCBleHRlcm4g RGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlV2l0aFR5cGVDaGVjayhPaWQgdmFyaWQsIGJvb2wgKmlz TnVsbCwgT2lkIGV4cGVjdAogZXh0ZXJuIHZvaWQgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAq cHN0YXRlLCBMZXRTdG10ICpzdG10LCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKIAkJCQkJCSAgIFF1 ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LCBRdWVyeUNvbXBsZXRpb24gKnFjKTsKIAorZXh0ZXJu IHZvaWQgUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpOworCiAjZW5kaWYKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaAppbmRleCA3NzhkYjZhZDRmLi4wNGFiMjJiZDQ5IDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oCkBAIC0zOTg4LDYgKzM5ODgsNyBAQCB0eXBlZGVmIGVudW0gRGlzY2FyZE1vZGUKIAlESVND QVJEX1BMQU5TLAogCURJU0NBUkRfU0VRVUVOQ0VTLAogCURJU0NBUkRfVEVNUCwKKwlESVNDQVJE X1ZBUklBQkxFUywKIH0gRGlzY2FyZE1vZGU7CiAKIHR5cGVkZWYgc3RydWN0IERpc2NhcmRTdG10 CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCBiL3NyYy9pbmNsdWRl L3Rjb3AvY21kdGFnbGlzdC5oCmluZGV4IGE5MjFhZjI0ODYuLmJkNzk2NGFlYTYgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3Av Y21kdGFnbGlzdC5oCkBAIC0xMzUsNiArMTM1LDcgQEAgUEdfQ01EVEFHKENNRFRBR19ESVNDQVJE X0FMTCwgIkRJU0NBUkQgQUxMIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURU QUdfRElTQ0FSRF9QTEFOUywgIkRJU0NBUkQgUExBTlMiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQog UEdfQ01EVEFHKENNRFRBR19ESVNDQVJEX1NFUVVFTkNFUywgIkRJU0NBUkQgU0VRVUVOQ0VTIiwg ZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FSRF9URU1QLCAiRElT Q0FSRCBURU1QIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfRElTQ0FS RF9WQVJJQUJMRVMsICJESVNDQVJEIFZBUklBQkxFUyIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQ R19DTURUQUcoQ01EVEFHX0RPLCAiRE8iLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFH KENNRFRBR19EUk9QX0FDQ0VTU19NRVRIT0QsICJEUk9QIEFDQ0VTUyBNRVRIT0QiLCB0cnVlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQUdHUkVHQVRFLCAiRFJPUCBBR0dS RUdBVEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDEwMzliZTcwYzYuLjNlNWUxMDRhYjAgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBA IC0xMjc4LDMgKzEyNzgsNjYgQEAgRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmI7 CiBEUk9QIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiOwogRFJPUCBTQ0hF TUEgOiJEQk5BTUUiOwogUkVTRVQgc2VhcmNoX3BhdGg7CistLSBtZW1vcnkgY2xlYW5pbmcgYnkg RElTQ0FSRCBjb21tYW5kCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOworTEVUIHZh cjEgPSAnSGVsbG8nOworU0VMRUNUIHZhcjE7CisgdmFyMSAgCistLS0tLS0tCisgSGVsbG8KKygx IHJvdykKKworRElTQ0FSRCBBTEw7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgCiso MSByb3cpCisKK0xFVCB2YXIxID0gJ0FIT0onOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0t LQorIEFIT0oKKygxIHJvdykKKworRElTQ0FSRCBWQVJJQUJMRVM7CitTRUxFQ1QgdmFyMTsKKyB2 YXIxIAorLS0tLS0tCisgCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIGluaXRp YWwgdGVzdCBvZiBkZWJ1ZyBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmdW5jdGlvbgorLS0gc2hvdWxk IGJlIHplcm8gbm93CitESVNDQVJEIFZBUklBQkxFUzsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBn X3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykK KworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhcjsKKy0tIHNob3VsZCBiZSB6ZXJvIHN0 aWxsCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50 IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0xFVCB2YXIxID0gJ0FIT0onOworU0VMRUNU IG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3Zh cmlhYmxlcygpOworIG5hbWUgfCAgICAgIHR5cG5hbWUgICAgICB8IGNhbl9zZWxlY3QgfCBjYW5f dXBkYXRlIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IHQgICAgICAgICAgfCB0CisoMSByb3cp CisKK0RJU0NBUkQgVkFSSUFCTEVTOworLS0gc2hvdWxkIGJlIHplcm8gYWdhaW4KK1NFTEVDVCBj b3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisg ICAgIDAKKygxIHJvdykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCmluZGV4IGEzNDcxZWY1ZDAuLjFjMTcxYzQxMDIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTkwMCwzICs5MDAsMzkgQEAgRFJPUCBWQVJJQUJM RSA6IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJOQU1FIjsKIERST1AgU0NIRU1BIDoiREJOQU1FIjsK IAogUkVTRVQgc2VhcmNoX3BhdGg7CisKKy0tIG1lbW9yeSBjbGVhbmluZyBieSBESVNDQVJEIGNv bW1hbmQKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXI7CitMRVQgdmFyMSA9ICdIZWxs byc7CitTRUxFQ1QgdmFyMTsKKworRElTQ0FSRCBBTEw7CitTRUxFQ1QgdmFyMTsKKworTEVUIHZh cjEgPSAnQUhPSic7CitTRUxFQ1QgdmFyMTsKKworRElTQ0FSRCBWQVJJQUJMRVM7CitTRUxFQ1Qg dmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBpbml0aWFsIHRlc3Qgb2YgZGVidWcg cGdfc2Vzc2lvbl92YXJpYWJsZXMgZnVuY3Rpb24KKy0tIHNob3VsZCBiZSB6ZXJvIG5vdworRElT Q0FSRCBWQVJJQUJMRVM7CisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFi bGVzKCk7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXI7CisKKy0tIHNob3VsZCBi ZSB6ZXJvIHN0aWxsCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygp OworCitMRVQgdmFyMSA9ICdBSE9KJzsKKworU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxl Y3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitESVNDQVJEIFZB UklBQkxFUzsKKworLS0gc2hvdWxkIGJlIHplcm8gYWdhaW4KK1NFTEVDVCBjb3VudCgqKSBGUk9N IHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7Ci0tIAoyLjQ3LjEKCg== --000000000000ee56b206299a729a Content-Type: text/x-patch; charset="US-ASCII"; name="v20241219-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Disposition: attachment; filename="v20241219-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4uzyqwi19 RnJvbSBjOTNkN2RkN2UyODUxY2U2NTY0ZjVlMzM3NjkzZGRiZWI4Mzg0OGY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMjA6MDE6NTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDAz LzIyXSBmdW5jdGlvbiBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmb3IgY2xlYW5pbmcgdGVzdHMKClRo aXMgaXMgYSBmdW5jdGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQg cmV0dXJucyB0aGUKY29udGVudCBvZiBzZXNzaW9udmFycyBhcy1pcywgYW5kIGNhbiB0aGVyZWZv cmUgZGlzcGxheSBlbnRyaWVzIGFib3V0CnNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9w cGVkIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndApwcm9jZXNzIHRoZSBzaGFyZWQg aW52YWxpZGF0aW9ucyB5ZXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICAgIHwgIDggKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEwMCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDY1 Nzc2ODQxNWQuLjEwMWY0ZDhmNGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKQEAgLTU2OSwzICs1NjksOTUgQEAgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0 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 cGdfcHJvYy5kYXQKaW5kZXggNmVkZTc0MDM2ZC4uNTkyYzhhMTUzMCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuZGF0CkBAIC0xMjQ1Miw0ICsxMjQ1MiwxMiBAQAogICBwcm9hcmd0eXBlcyA9PiAnaW50 MicsCiAgIHByb3NyYyA9PiAnZ2lzdF9zdHJhdG51bV9pZGVudGl0eScgfSwKIAorIyBTZXNzaW9u IHZhcmlhYmxlcyBzdXBwb3J0Cit7IG9pZCA9PiAnODQ4OCcsIGRlc2NyID0+ICdsaXN0IG9mIHVz ZWQgc2Vzc2lvbiB2YXJpYWJsZXMnLAorICBwcm9uYW1lID0+ICdwZ19zZXNzaW9uX3ZhcmlhYmxl cycsIHByb3Jvd3MgPT4gJzEwMDAnLCBwcm9yZXRzZXQgPT4gJ3QnLAorICBwcm92b2xhdGlsZSA9 PiAncycsIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAncmVjb3JkJywKKyAgcHJv YXJndHlwZXMgPT4gJycsIHByb2FsbGFyZ3R5cGVzID0+ICd7b2lkLHRleHQsdGV4dCxvaWQsdGV4 dCxib29sLGJvb2wsYm9vbH0nLAorICBwcm9hcmdtb2RlcyA9PiAne28sbyxvLG8sbyxvLG8sb30n LAorICBwcm9hcmduYW1lcyA9PiAne3ZhcmlkLHNjaGVtYSxuYW1lLHR5cGlkLHR5cG5hbWUscmVt b3ZlZCxjYW5fc2VsZWN0LGNhbl91cGRhdGV9JywKKyAgcHJvc3JjID0+ICdwZ19zZXNzaW9uX3Zh cmlhYmxlcycgfSwKIF0KLS0gCjIuNDcuMQoK --000000000000ee56b206299a729a Content-Type: text/x-patch; charset="US-ASCII"; name="v20241219-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Disposition: attachment; filename="v20241219-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4uzyqws20 RnJvbSAwYTYzYzBmZTFkMmQzNTZlM2VjN2JhNjFlZTU1NWM0YjViNjZlZThjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAwODoyOToyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIv MjJdIFN0b3JhZ2UgZm9yIHNlc3Npb24gdmFyaWFibGVzIGFuZCBTUUwgaW50ZXJmYWNlCgpTZXNz aW9uIHZhcmlhYmxlcyBhcmUgc3RvcmVkIGluIHNlc3Npb24gbWVtb3J5IGluIGEgZGVkaWNhdGVk IGhhc2ggdGFibGUuClRoZXkgYXJlIHNldCBieSB0aGUgTEVUIGNvbW1hbmQgYW5kIHJlYWQgYnkg dGhlIFNFTEVDVCBjb21tYW5kLgpUaGUgYWNjZXNzIHJpZ2h0cyBzaG91bGQgYmUgY2hlY2tlZC4K ClRoZSBpZGVudGlmaWVycyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBzaG91bGQgYWx3YXlzIGJlIHNo YWRvd2VkIGJ5IHBvc3NpYmxlCmNvbHVtbiBpZGVudGlmaWVyczogd2UgZG9uJ3Qgd2FudCB0byBi cmVhayBhbiBhcHBsaWNhdGlvbiBieSBjcmVhdGluZyBzb21lCmJhZGx5IG5hbWVkIHNlc3Npb24g dmFyaWFibGUuCgpUaGUgbGltaXRzIG9mIHRoaXMgcGF0Y2ggKHNvbHZlZCBieSBvdGhlciBwYXRj aGVzKToKCi0gc2Vzc2lvbiB2YXJpYWJsZXMgYmxvY2sgcGFyYWxsZWwgZXhlY3V0aW9uCi0gc2Vz c2lvbiB2YXJpYWJsZXMgYmxvY2tzIHNpbXBsZSBleHByZXNzaW9uIGV2YWx1YXRpb24gKGluIHBs cGdzcWwpCi0gU1FMIGZ1bmN0aW9ucyB3aXRoIHNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgaW5s aW5lZAotIENBTEwgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgKHVzYWdlIG9mIGRpcmVjdCBh Y2Nlc3MgdG8gZXhwcmVzcyBleGVjdXRvcikKLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBub3Qgc3Vw cG9ydGVkICh1c2FnZSBvZiBkaXJlY3QgYWNjZXNzIHRvIGV4cHJlc3MgZXhlY3V0b3IpCi0gbWVt b3J5IHVzZWQgYnkgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QgcmVsZWFzZWQKCklt cGxlbWVudGF0aW9ucyBvZiBFWFBMQUlOIExFVCBhbmQgUFJFUEFSRSBMRVQgc3RhdGVtZW50cwph cmUgaW4gc2VwYXJhdGUgcGF0Y2hlcyAoZm9yIGJldHRlciByZWFkYWJpbGl0eSkKLS0tCiBkb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTMgKwogZG9jL3Ny Yy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDQzICsKIGRvYy9zcmMv c2dtbC9wYXJhbGxlbC5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAgNiArCiBkb2Mvc3JjL3Nn bWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKwogZG9jL3NyYy9zZ21s L3JlZi9hbGxmaWxlcy5zZ21sICAgICAgICAgICAgICAgIHwgICAxICsKIGRvYy9zcmMvc2dtbC9y ZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCAgICAgICAgICB8ICAgMSArCiBkb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAgIDMgKwogZG9jL3NyYy9zZ21sL3JlZi9k cm9wX3ZhcmlhYmxlLnNnbWwgICAgICAgICAgIHwgICAxICsKIGRvYy9zcmMvc2dtbC9yZWYvbGV0 LnNnbWwgICAgICAgICAgICAgICAgICAgICB8ICA5NiArKwogZG9jL3NyYy9zZ21sL3JlZmVyZW5j ZS5zZ21sICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvZGVw ZW5kZW5jeS5jICAgICAgICAgICAgICB8ICAgNSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL25hbWVz cGFjZS5jICAgICAgICAgICAgICAgfCAyODkgKysrKysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFr ZWZpbGUgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29u LmJ1aWxkICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJl LmMgICAgICAgICAgICAgICAgfCAgIDggKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5jICAgICAgIHwgNTcxICsrKysrKysrKysrCiBzcmMvYmFja2VuZC9leGVjdXRvci9N YWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y0V4cHIuYyAgICAgICAgICAgICAgIHwgIDM2ICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNN YWluLmMgICAgICAgICAgICAgICB8ICA1NSArKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVzb24u YnVpbGQgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJs ZVJlY2VpdmVyLmMgICAgICB8IDIwMSArKysrCiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3Mu YyAgICAgICAgICAgICAgICAgfCAgMTAgKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxh bm5lci5jICAgICAgICAgIHwgICA5ICsKIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJl ZnMuYyAgICAgICAgICB8IDEzNCArKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBq b2ludHJlZS5jICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2Vz LmMgICAgICAgICAgfCAgMzUgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgICAgICAg ICAgICAgICAgICB8IDI2OSArKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAg ICAgICAgICAgICAgIHwgIDQ5ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgICAg ICAgICAgICAgICAgfCAgIDkgKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICAg ICAgICAgICAgIHwgMjIwICsrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jICAg ICAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMgICAgICAgICAgICAg ICAgICAgICAgIHwgICA3ICsKIHNyYy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMgICAgICAgICAgICAg ICAgICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAgICAg ICAgICAgfCAgMTYgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAg ICAgIHwgIDQ2ICsKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jICAgICAgICAg ICB8ICA0MSArLQogc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMgICAgICAgICAgICAgICAg IHwgIDEwICstCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgICAg fCAgMTIgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmggICAgICAgICAgICAgICB8 ICAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAg IDkgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oICAgICAgIHwgIDMy ICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNkZXNjLmggICAgICAgICAgICAgICB8ICAgNCAr CiBzcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oICAgICAgfCAgMjIgKwog c3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggICAgICAgICAgICAgICAgIHwgIDE2ICsKIHNy Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxNyArCiBzcmMv aW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDUgKwogc3JjL2lu Y2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmggICAgICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvaW5j bHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1 ZGUvb3B0aW1pemVyL3BsYW5tYWluLmggICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRl L3BhcnNlci9rd2xpc3QuaCAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2Vfbm9kZS5oICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvdGNv cC9jbWR0YWdsaXN0LmggICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3Rjb3Av ZGVzdC5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvcGwvcGxwZ3NxbC9zcmMv cGxfZXhlYy5jICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDkyNSArKysrKysrKysrKysrKysrKysKIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDYzOSArKysrKysrKysr KysKIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgNSAr CiA1OCBmaWxlcyBjaGFuZ2VkLCAzODk4IGluc2VydGlvbnMoKyksIDIzIGRlbGV0aW9ucygtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIu aAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwKaW5kZXggODdiNTM3MGE0OS4uNmRhMzk1MGQ2YyAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNn bWwKQEAgLTk3OTQsNiArOTc5NCwxOSBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7 aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAg PC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJjcmVhdGVfbHNuPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+ WExvZ1JlY1B0cjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIExT TiBvZiB0aGUgdHJhbnNhY3Rpb24gd2hlcmUgdGhlIHZhcmlhYmxlIHdhcyBjcmVhdGVkLgorICAg ICAgIDxzdHJ1Y3RmaWVsZD52YXJjcmVhdGVfbHNuPC9zdHJ1Y3RmaWVsZD4gYW5kCisgICAgICAg PHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+IHRvZ2V0aGVyIGZvcm0gdGhlIGFsbC10aW1l IHVuaXF1ZQorICAgICAgIGlkZW50aWZpZXIgKDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxk PiBhbG9uZSBpcyBub3QgZW5vdWdoLCBzaW5jZQorICAgICAgIG9iamVjdCBpZGVudGlmaWVycyBj YW4gZ2V0IHJldXNlZCkuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAg ICAgPHJvdz4KICAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPnZhcm5hbWU8L3N0 cnVjdGZpZWxkPiA8dHlwZT5uYW1lPC90eXBlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Rk bC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IDE2Y2JmNTEzYTkuLjAyZmM4ODJi ODYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv ZGRsLnNnbWwKQEAgLTUzNTcsNiArNTM1Nyw0OSBAQCBFWFBMQUlOIFNFTEVDVCBjb3VudCgqKSBG Uk9NIG1lYXN1cmVtZW50IFdIRVJFIGxvZ2RhdGUgJmd0Oz0gREFURSAnMjAwOC0wMS0wMSc7CiAg ICAgVGhlIHNlc3Npb24gdmFyaWFibGUgaG9sZHMgdmFsdWUgaW4gc2Vzc2lvbiBtZW1vcnkuICBU aGlzIHZhbHVlIGlzIHByaXZhdGUKICAgICB0byBlYWNoIHNlc3Npb24gYW5kIGlzIHJlbGVhc2Vk IHdoZW4gdGhlIHNlc3Npb24gZW5kcy4KICAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgVGhl IHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBzZXQgd2l0aCB0aGUgU1FMIHN0YXRlbWVu dAorICAgIDxjb21tYW5kPkxFVDwvY29tbWFuZD4uICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZh cmlhYmxlIGNhbiBiZSByZXRyaWV2ZWQKKyAgICB3aXRoIHRoZSBTUUwgc3RhdGVtZW50IDxjb21t YW5kPlNFTEVDVDwvY29tbWFuZD4uCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyBkYXRlOworTEVUIHZhcjEgPSBjdXJyZW50X2RhdGU7CitTRUxFQ1QgdmFyMTsKKzwv cHJvZ3JhbWxpc3Rpbmc+CisKKyAgICBvcgorCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVkFS SUFCTEUgcHVibGljLmN1cnJlbnRfdXNlcl9pZCBBUyBpbnRlZ2VyOworR1JBTlQgU0VMRUNUIE9O IFZBUklBQkxFIHB1YmxpYy5jdXJyZW50X3VzZXJfaWQgVE8gUFVCTElDOworTEVUIGN1cnJlbnRf dXNlcl9pZCA9IChTRUxFQ1QgaWQgRlJPTSB1c2VycyBXSEVSRSB1c2VuYW1lID0gc2Vzc2lvbl91 c2VyKTsKK1NFTEVDVCBjdXJyZW50X3VzZXJfaWQ7Cis8L3Byb2dyYW1saXN0aW5nPgorICAgPC9w YXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlz IGxvY2FsIHRvIHRoZSBjdXJyZW50IHNlc3Npb24uIFJldHJpZXZpbmcKKyAgICBhIHZhcmlhYmxl J3MgdmFsdWUgcmV0dXJucyBhIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+LCB1bmxlc3MgaXRzIHZh bHVlIGhhcworICAgIGJlZW4gc2V0IHRvIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50IHNl c3Npb24gdXNpbmcgdGhlCisgICAgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLiAgU2Vz c2lvbiB2YXJpYWJsZXMgYXJlIG5vdCB0cmFuc2FjdGlvbmFsOgorICAgIGFueSBjaGFuZ2VzIG1h ZGUgdG8gdGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpbiBhIHRyYW5zYWN0aW9uIHdv bid0CisgICAgYmUgdW5kb25lIGlmIHRoZSB0cmFuc2FjdGlvbiBpcyByb2xsZWQgYmFjayAoanVz dCBsaWtlIHZhcmlhYmxlcyBpbgorICAgIHByb2NlZHVyYWwgbGFuZ3VhZ2VzKS4gIFNlc3Npb24g dmFyaWFibGVzIHRoZW1zZWx2ZXMgYXJlIHBlcnNpc3RlbnQsIGJ1dAorICAgIHRoZWlyIHZhbHVl cyBhcmUgbmVpdGhlciBwZXJzaXN0ZW50IG5vciBzaGFyZWQgKGxpa2UgdGhlIGNvbnRlbnQgb2YK KyAgICB0ZW1wb3JhcnkgdGFibGVzKS4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgSW5z aWRlIGEgcXVlcnkgb3IgYW4gZXhwcmVzc2lvbiwgYSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBiZQor ICAgIDxxdW90ZT5zaGFkb3dlZDwvcXVvdGU+IGJ5IGEgY29sdW1uIHdpdGggdGhlIHNhbWUgbmFt ZS4gIFNpbWlsYXJseSwgdGhlCisgICAgbmFtZSBvZiBhIGZ1bmN0aW9uIG9yIHByb2NlZHVyZSBh cmd1bWVudCBvciBhIFBML3BnU1FMIHZhcmlhYmxlIChzZWUKKyAgICA8eHJlZiBsaW5rZW5kPSJw bHBnc3FsLWRlY2xhcmF0aW9ucyIvPikgY2FuIHNoYWRvdyBhIHNlc3Npb24gdmFyaWFibGUKKyAg ICBpbiB0aGUgcm91dGluZSdzIGJvZHkuICBTdWNoIGNvbGxpc2lvbnMgb2YgaWRlbnRpZmllcnMg Y2FuIGJlIHJlc29sdmVkCisgICAgYnkgdXNpbmcgcXVhbGlmaWVkIGlkZW50aWZpZXJzOiBTZXNz aW9uIHZhcmlhYmxlcyBjYW4gYmUgcXVhbGlmaWVkIHdpdGgKKyAgICB0aGUgc2NoZW1hIG5hbWUs IGNvbHVtbnMgY2FuIHVzZSB0YWJsZSBhbGlhc2VzLCByb3V0aW5lIHZhcmlhYmxlcyBjYW4gdXNl CisgICAgYmxvY2sgbGFiZWxzLCBhbmQgcm91dGluZSBhcmd1bWVudHMgY2FuIHVzZSB0aGUgcm91 dGluZSBuYW1lLgorICAgPC9wYXJhPgogICA8L3NlY3QxPgogCiAgPHNlY3QxIGlkPSJkZGwtb3Ro ZXJzIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sIGIvZG9jL3NyYy9z Z21sL3BhcmFsbGVsLnNnbWwKaW5kZXggMWNlOWFiZjg2Zi4uNjgzZGVkZTZhZCAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3BhcmFsbGVs LnNnbWwKQEAgLTUxNSw2ICs1MTUsMTIgQEAgRVhQTEFJTiBTRUxFQ1QgKiBGUk9NIHBnYmVuY2hf YWNjb3VudHMgV0hFUkUgZmlsbGVyIExJS0UgJyV4JSc7CiAgICAgICAgIFBsYW4gbm9kZXMgdGhh dCByZWZlcmVuY2UgYSBjb3JyZWxhdGVkIDxsaXRlcmFsPlN1YlBsYW48L2xpdGVyYWw+LgogICAg ICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CisKKyAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFy YT4KKyAgICAgICAgUGxhbiBub2RlcyB0aGF0IHVzZSBhIHNlc3Npb24gdmFyaWFibGUuCisgICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KICAgPC9pdGVtaXplZGxpc3Q+CiAKICA8c2VjdDIg aWQ9InBhcmFsbGVsLWxhYmVsaW5nIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9wbHBnc3Fs LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCmluZGV4IDc4ZTQ5ODMxMzkuLmJmYmZm OWFiNzQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3BscGdzcWwuc2dtbApAQCAtNjAzNCw2ICs2MDM0LDIwIEBAICQkIExBTkdVQUdFIHBs cGdzcWwgU1RSSUNUIElNTVVUQUJMRTsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgICAgPC9wYXJhPgog ICAgPC9zZWN0Mz4KKworICAgPHNlY3QzIGlkPSJwbHBnc3FsLXBvcnRpbmctcGFja2FnZS12YXJp YWJsZXMiPgorICAgIDx0aXRsZT48Y29tbWFuZD5QYWNrYWdlcyBhbmQgcGFja2FnZSB2YXJpYWJs ZXM8L2NvbW1hbmQ+PC90aXRsZT4KKworICAgIDxwYXJhPgorICAgICBUaGUgPGFwcGxpY2F0aW9u PlBML3BnU1FMPC9hcHBsaWNhdGlvbj4gbGFuZ3VhZ2UgaGFzIG5vIHBhY2thZ2VzLCBhbmQKKyAg ICAgdGhlcmVmb3JlIG5vIHBhY2thZ2UgdmFyaWFibGVzIG9yIHBhY2thZ2UgY29uc3RhbnRzLgor ICAgICBZb3UgY2FuIGNvbnNpZGVyIHRyYW5zbGF0aW5nIGFuIE9yYWNsZSBwYWNrYWdlIGludG8g YSBzY2hlbWEgaW4KKyAgICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPi4g IFBhY2thZ2UgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzCisgICAgIHdvdWxkIHRoZW4gYmVjb21l IGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyBpbiB0aGF0IHNjaGVtYSwgYW5kIHBhY2thZ2UKKyAg ICAgdmFyaWFibGVzIGNvdWxkIGJlIHRyYW5zbGF0ZWQgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgaW4g dGhhdCBzY2hlbWEuCisgICAgIChzZWUgPHhyZWYgbGlua2VuZD0iZGRsLXNlc3Npb24tdmFyaWFi bGVzIi8+KS4KKyAgICA8L3BhcmE+CisgICA8L3NlY3QzPgogICA8L3NlY3QyPgogCiAgIDxzZWN0 MiBpZD0icGxwZ3NxbC1wb3J0aW5nLWFwcGVuZGl4Ij4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWYvYWxsZmlsZXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAppbmRl eCAyZjY3ZGUzZTIxLi5jYzNiZDVhYjU0IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Fs bGZpbGVzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCkBAIC0xNTgs NiArMTU4LDcgQEAgQ29tcGxldGUgbGlzdCBvZiB1c2FibGUgc2dtbCBzb3VyY2UgZmlsZXMgaW4g dGhpcyBkaXJlY3RvcnkuCiA8IUVOVElUWSBncmFudCAgICAgICAgICAgICAgU1lTVEVNICJncmFu dC5zZ21sIj4KIDwhRU5USVRZIGltcG9ydEZvcmVpZ25TY2hlbWEgU1lTVEVNICJpbXBvcnRfZm9y ZWlnbl9zY2hlbWEuc2dtbCI+CiA8IUVOVElUWSBpbnNlcnQgICAgICAgICAgICAgU1lTVEVNICJp bnNlcnQuc2dtbCI+Cis8IUVOVElUWSBsZXQgICAgICAgICAgICAgICAgU1lTVEVNICJsZXQuc2dt bCI+CiA8IUVOVElUWSBsaXN0ZW4gICAgICAgICAgICAgU1lTVEVNICJsaXN0ZW4uc2dtbCI+CiA8 IUVOVElUWSBsb2FkICAgICAgICAgICAgICAgU1lTVEVNICJsb2FkLnNnbWwiPgogPCFFTlRJVFkg bG9jayAgICAgICAgICAgICAgIFNZU1RFTSAibG9jay5zZ21sIj4KZGlmZiAtLWdpdCBhL2RvYy9z cmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf dmFyaWFibGUuc2dtbAppbmRleCA5NmQyNTg2NDIzLi4yMjFhNjk5NDY5IDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3Jl Zi9hbHRlcl92YXJpYWJsZS5zZ21sCkBAIC0xNzMsNiArMTczLDcgQEAgQUxURVIgVkFSSUFCTEUg Ym9vIFNFVCBTQ0hFTUEgcHJpdmF0ZTsKICAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KICAg IDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+PC9tZW1iZXI+CiAg ICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAg IDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWxldCIvPjwvbWVtYmVyPgogICA8L3NpbXBsZWxp c3Q+CiAgPC9yZWZzZWN0MT4KIDwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFi bGUuc2dtbAppbmRleCA2ZTk4OGYyZTQ3Li5kNjgxNDA0MDU1IDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTEyMyw2ICsxMjMsOCBAQCBDUkVBVEUgVkFSSUFCTEUgWyBJ RiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxh Y2VhYgogICAgQ3JlYXRlIGFuIGRhdGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0ZXJhbD52YXIxPC9s aXRlcmFsPjoKIDxwcm9ncmFtbGlzdGluZz4KIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGRhdGU7 CitMRVQgdmFyMSA9IGN1cnJlbnRfZGF0ZTsKK1NFTEVDVCB2YXIxOwogPC9wcm9ncmFtbGlzdGlu Zz4KICAgPC9wYXJhPgogCkBAIC0xNDMsNiArMTQ1LDcgQEAgQ1JFQVRFIFZBUklBQkxFIHZhcjEg QVMgZGF0ZTsKICAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KICAgIDxtZW1iZXI+PHhyZWYg bGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUiLz48L21lbWJlcj4KICAgIDxtZW1iZXI+PHhyZWYg bGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBs aW5rZW5kPSJzcWwtbGV0Ii8+PC9tZW1iZXI+CiAgIDwvc2ltcGxlbGlzdD4KICA8L3JlZnNlY3Qx PgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCmluZGV4IDViZGIzNTYwZjAuLjY3OTg4 YjVmY2QgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCkBAIC0xMTEsNiArMTExLDcg QEAgRFJPUCBWQVJJQUJMRSB2YXIxOwogICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgogICAg PG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgogICAg PG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4KKyAg IDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWxldCIvPjwvbWVtYmVyPgogICA8L3NpbXBsZWxp c3Q+CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9sZXQuc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMC4uZjY2NDA1NzZiZQotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dtbC9y ZWYvbGV0LnNnbWwKQEAgLTAsMCArMSw5NiBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9sZXQu c2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwt bGV0Ij4KKyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1sZXQiPgorICA8cHJpbWFyeT5MRVQ8L3ByaW1h cnk+CisgPC9pbmRleHRlcm0+CisKKyA8aW5kZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNzaW9uIHZh cmlhYmxlPC9wcmltYXJ5PgorICA8c2Vjb25kYXJ5PmNoYW5naW5nPC9zZWNvbmRhcnk+CisgPC9p bmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+TEVUPC9yZWZlbnRyeXRp dGxlPgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExh bmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1l ZGl2PgorICA8cmVmbmFtZT5MRVQ8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPmNoYW5nZSBhIHNl c3Npb24gdmFyaWFibGUncyB2YWx1ZTwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8 cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitMRVQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnNlc3Npb25fdmFyaWFibGU8L3JlcGxhY2VhYmxlPiA9IDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5zcWxfZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+Cis8L3N5bm9wc2lzPgor IDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwv dGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5k IGFzc2lnbnMgYSB2YWx1ZSB0byB0aGUgc3BlY2lmaWVkIHNlc3Npb24KKyAgIHZhcmlhYmxlLgor ICA8L3BhcmE+CisKKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1l dGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+CisgICAg PHRlcm0+PGxpdGVyYWw+c2Vzc2lvbl92YXJpYWJsZTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxp c3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIG9mIHRoZSBzZXNzaW9uIHZhcmlh YmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5Pgor CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPnNxbF9leHByZXNzaW9uPC9s aXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQW4gYXJi aXRyYXJ5IFNRTCBleHByZXNzaW9uLiAgVGhlIHJlc3VsdCBtdXN0IGJlIG9mIGEgZGF0YSB0eXBl IHRoYXQgY2FuCisgICAgICBiZSBjYXN0IHRvIHRoZSB0eXBlIG9mIHRoZSBzZXNzaW9uIHZhcmlh YmxlIGluIGFuIGFzc2lnbm1lbnQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAg PC92YXJsaXN0ZW50cnk+CisKKyAgPC92YXJpYWJsZWxpc3Q+CisKKyAgPHBhcmE+CisgICBFeGFt cGxlOgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIG15dmFyIEFTIGludGVnZXI7 CitMRVQgbXl2YXIgPSAxMDsKK0xFVCBteXZhciA9IChTRUxFQ1Qgc3VtKHZhbCkgRlJPTSB0YWIp OworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2Vj dDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8 Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGlzIGEgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1 Y3RuYW1lPgorICAgZXh0ZW5zaW9uLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZz ZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJp bmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwv bWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48 L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIvPjwv bWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKzwvcmVmZW50cnk+CmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmZXJl bmNlLnNnbWwKaW5kZXggMjU1NzhmMzk0Ni4uMTNlNGFkYzVkZiAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL3JlZmVyZW5jZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbApA QCAtMTg2LDYgKzE4Niw3IEBACiAgICAmZ3JhbnQ7CiAgICAmaW1wb3J0Rm9yZWlnblNjaGVtYTsK ICAgICZpbnNlcnQ7CisgICAmbGV0OwogICAgJmxpc3RlbjsKICAgICZsb2FkOwogICAgJmxvY2s7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCmluZGV4IGQ2NjJlNzZhY2YuLmYxODEzNDI4ZTEgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCkBAIC0xODY0LDYgKzE4NjQsMTEgQEAgZmluZF9leHBy X3JlZmVyZW5jZXNfd2Fsa2VyKE5vZGUgKm5vZGUsCiAJewogCQlQYXJhbQkgICAqcGFyYW0gPSAo UGFyYW0gKikgbm9kZTsKIAorCQkvKiBhIHZhcmlhYmxlIHBhcmFtZXRlciBkZXBlbmRzIG9uIHRo ZSBzZXNzaW9uIHZhcmlhYmxlICovCisJCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZB UklBQkxFKQorCQkJYWRkX29iamVjdF9hZGRyZXNzKFZhcmlhYmxlUmVsYXRpb25JZCwgcGFyYW0t PnBhcmFtdmFyaWQsIDAsCisJCQkJCQkJICAgY29udGV4dC0+YWRkcnMpOworCiAJCS8qIEEgcGFy YW1ldGVyIG11c3QgZGVwZW5kIG9uIHRoZSBwYXJhbWV0ZXIncyBkYXRhdHlwZSAqLwogCQlhZGRf b2JqZWN0X2FkZHJlc3MoVHlwZVJlbGF0aW9uSWQsIHBhcmFtLT5wYXJhbXR5cGUsIDAsCiAJCQkJ CQkgICBjb250ZXh0LT5hZGRycyk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL25h bWVzcGFjZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYwppbmRleCA1M2Q1Y2Q2 YzE0Li5iODYxYzZjMTk3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFj ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKQEAgLTM0OTcsNiArMzQ5 NywyOTUgQEAgTmFtZXNGcm9tTGlzdChMaXN0ICpuYW1lcykKIAlyZXR1cm4gcmVzdWx0OwogfQog CisvKiAtLS0tLQorICogSWRlbnRpZnlWYXJpYWJsZSAtIHRyeSB0byBmaW5kIGEgdmFyaWFibGUg ZnJvbSBhIGxpc3Qgb2YgaWRlbnRpZmllcnMKKyAqCisgKiBSZXR1cm5zIHRoZSBPSUQgb2YgdGhl IHZhcmlhYmxlIGZvdW5kLCBvciBJbnZhbGlkT2lkLgorICoKKyAqICJuYW1lcyIgaXMgYSBsaXN0 IG9mIHVwIHRvIGZvdXIgaWRlbnRpZmllcnM7IHBvc3NpYmxlIG1lYW5pbmdzIGFyZToKKyAqIC0g dmFyaWFibGUgIChzZWFyY2hlZCBvbiB0aGUgc2VhcmNoX3BhdGgpCisgKiAtIHNjaGVtYS52YXJp YWJsZQorICogLSB2YXJpYWJsZS5hdHRyaWJ1dGUgIChzZWFyY2hlZCBvbiB0aGUgc2VhcmNoX3Bh dGgpCisgKiAtIHNjaGVtYS52YXJpYWJsZS5hdHRyaWJ1dGUKKyAqIC0gZGF0YWJhc2Uuc2NoZW1h LnZhcmlhYmxlCisgKiAtIGRhdGFiYXNlLnNjaGVtYS52YXJpYWJsZS5hdHRyaWJ1dGUKKyAqCisg KiBJZiB0aGVyZSBpcyBtb3JlIHRoYW4gb25lIHdheSB0byBpZGVudGlmeSBhIHZhcmlhYmxlLCAi bm90X3VuaXF1ZSIgd2lsbCBiZQorICogc2V0IHRvIHRydWUuCisgKgorICogVW5sZXNzICJub2Vy cm9yIiBpcyB0cnVlLCBhbiBlcnJvciBpcyByYWlzZWQgaWYgdGhlcmUgYXJlIG1vcmUgdGhhbiBm b3VyCisgKiAgaWRlbnRpZmllcnMgaW4gdGhlIGxpc3QsIG9yIGlmIHRoZSBuYW1lZCBkYXRhYmFz ZSBpcyBub3QgdGhlIGN1cnJlbnQgb25lLgorICogVGhpcyBpcyB1c2VmdWwgaWYgd2Ugd2FudCB0 byBpZGVudGlmeSBhIHNoYWRvd2VkIHZhcmlhYmxlLgorICoKKyAqIElmIGFuIGF0dHJpYnV0ZSBp cyBpZGVudGlmaWVkLCBpdCBpcyBzdG9yZWQgaW4gImF0dHJuYW1lIiwgb3RoZXJ3aXNlIHRoZQor ICogcGFyYW1ldGVyIGlzIHNldCB0byBOVUxMLgorICoKKyAqIFRoZSBpZGVudGlmaWVkIHNlc3Np b24gdmFyaWFibGUgd2lsbCBiZSBsb2NrZWQgd2l0aCBhbiBBY2Nlc3NTaGFyZUxvY2suCisgKiAt LS0tLQorICovCitPaWQKK0lkZW50aWZ5VmFyaWFibGUoTGlzdCAqbmFtZXMsIGNoYXIgKiphdHRy bmFtZSwgYm9vbCAqbm90X3VuaXF1ZSwgYm9vbCBub2Vycm9yKQoreworCU9pZAkJCXZhcmlkID0g SW52YWxpZE9pZDsKKwlPaWQJCQlvbGRfdmFyaWQgPSBJbnZhbGlkT2lkOworCXVpbnQ2NAkJaW52 YWxfY291bnQ7CisJYm9vbAkJcmV0cnkgPSBmYWxzZTsKKworCS8qCisJICogRERMIG9wZXJhdGlv bnMgY2FuIGNoYW5nZSB0aGUgcmVzdWx0cyBvZiBhIG5hbWUgbG9va3VwLiAgU2luY2UgYWxsIHN1 Y2gKKwkgKiBvcGVyYXRpb25zIHdpbGwgZ2VuZXJhdGUgaW52YWxpZGF0aW9uIG1lc3NhZ2VzLCB3 ZSBrZWVwIHRyYWNrIG9mCisJICogd2hldGhlciBhbnkgc3VjaCBtZXNzYWdlcyBzaG93IHVwIHdo aWxlIHdlJ3JlIHBlcmZvcm1pbmcgdGhlIG9wZXJhdGlvbiwKKwkgKiBhbmQgcmV0cnkgdW50aWwg ZWl0aGVyICgxKSBubyBtb3JlIGludmFsaWRhdGlvbiBtZXNzYWdlcyBzaG93IHVwIG9yICgyKQor CSAqIHRoZSBhbnN3ZXIgZG9lc24ndCBjaGFuZ2UuCisJICovCisJZm9yICg7OykKKwl7CisJCU5v ZGUJICAgKmZpZWxkMSA9IE5VTEw7CisJCU5vZGUJICAgKmZpZWxkMiA9IE5VTEw7CisJCU5vZGUJ ICAgKmZpZWxkMyA9IE5VTEw7CisJCU5vZGUJICAgKmZpZWxkNCA9IE5VTEw7CisJCWNoYXIJICAg KmEgPSBOVUxMOworCQljaGFyCSAgICpiID0gTlVMTDsKKwkJY2hhcgkgICAqYyA9IE5VTEw7CisJ CWNoYXIJICAgKmQgPSBOVUxMOworCQlPaWQJCQl2YXJvaWRfd2l0aG91dF9hdHRyID0gSW52YWxp ZE9pZDsKKwkJT2lkCQkJdmFyb2lkX3dpdGhfYXR0ciA9IEludmFsaWRPaWQ7CisKKwkJKm5vdF91 bmlxdWUgPSBmYWxzZTsKKwkJKmF0dHJuYW1lID0gTlVMTDsKKwkJdmFyaWQgPSBJbnZhbGlkT2lk OworCisJCWludmFsX2NvdW50ID0gU2hhcmVkSW52YWxpZE1lc3NhZ2VDb3VudGVyOworCisJCXN3 aXRjaCAobGlzdF9sZW5ndGgobmFtZXMpKQorCQl7CisJCQljYXNlIDE6CisJCQkJZmllbGQxID0g bGluaXRpYWwobmFtZXMpOworCisJCQkJQXNzZXJ0KElzQShmaWVsZDEsIFN0cmluZykpOworCisJ CQkJdmFyaWQgPSBMb29rdXBWYXJpYWJsZShOVUxMLCBzdHJWYWwoZmllbGQxKSwgdHJ1ZSk7CisJ CQkJYnJlYWs7CisKKwkJCWNhc2UgMjoKKwkJCQlmaWVsZDEgPSBsaW5pdGlhbChuYW1lcyk7CisJ CQkJZmllbGQyID0gbHNlY29uZChuYW1lcyk7CisKKwkJCQlBc3NlcnQoSXNBKGZpZWxkMSwgU3Ry aW5nKSk7CisJCQkJYSA9IHN0clZhbChmaWVsZDEpOworCisJCQkJaWYgKElzQShmaWVsZDIsIFN0 cmluZykpCisJCQkJeworCQkJCQkvKiB3aGVuIGJvdGggZmllbGRzIGFyZSBvZiBzdHJpbmcgdHlw ZSAqLworCQkJCQliID0gc3RyVmFsKGZpZWxkMik7CisKKwkJCQkJLyoKKwkJCQkJICogYS5iIGNh biBtZWFuICJzY2hlbWEiLiJ2YXJpYWJsZSIgb3IgInZhcmlhYmxlIi4iZmllbGQiLgorCQkJCQkg KiBDaGVjayBib3RoIHZhcmlhbnRzLCBhbmQgcmV0dXJucyBJbnZhbGlkT2lkIHdpdGgKKwkJCQkJ ICogbm90X3VuaXF1ZSBmbGFnLCB3aGVuIGJvdGggaW50ZXJwcmV0YXRpb25zIGFyZQorCQkJCQkg KiBwb3NzaWJsZS4KKwkJCQkJICovCisJCQkJCXZhcm9pZF93aXRob3V0X2F0dHIgPSBMb29rdXBW YXJpYWJsZShhLCBiLCB0cnVlKTsKKwkJCQkJdmFyb2lkX3dpdGhfYXR0ciA9IExvb2t1cFZhcmlh YmxlKE5VTEwsIGEsIHRydWUpOworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQkvKiB0aGUg bGFzdCBmaWVsZCBvZiBsaXN0IGNhbiBiZSBzdGFyIHRvbyAqLworCQkJCQlBc3NlcnQoSXNBKGZp ZWxkMiwgQV9TdGFyKSk7CisKKwkJCQkJLyoKKwkJCQkJICogSW4gdGhpcyBjYXNlLCB0aGUgZmll bGQxIHNob3VsZCBiZSB2YXJpYWJsZSBuYW1lLiBCdXQKKwkJCQkJICogZGlyZWN0IHVuYm94aW5n IG9mIGNvbXBvc2l0ZSBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QKKwkJCQkJICogc3VwcG9ydGVk IG5vdywgYW5kIHRoZW4gd2UgZG9uJ3QgbmVlZCB0byB0cnkgbG9va3VwCisJCQkJCSAqIHJlbGF0 ZWQgdmFyaWFibGUuCisJCQkJCSAqCisJCQkJCSAqIFVuYm94aW5nIGlzIHN1cHBvcnRlZCBieSBz eW50YXggKHZhcikuKgorCQkJCQkgKi8KKwkJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCQkJfQor CisJCQkJaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhvdXRfYXR0cikgJiYgT2lkSXNWYWxpZCh2 YXJvaWRfd2l0aF9hdHRyKSkKKwkJCQl7CisJCQkJCSpub3RfdW5pcXVlID0gdHJ1ZTsKKwkJCQkJ dmFyaWQgPSB2YXJvaWRfd2l0aG91dF9hdHRyOworCQkJCX0KKwkJCQllbHNlIGlmIChPaWRJc1Zh bGlkKHZhcm9pZF93aXRob3V0X2F0dHIpKQorCQkJCXsKKwkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0 aG91dF9hdHRyOworCQkJCX0KKwkJCQllbHNlIGlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRoX2F0 dHIpKQorCQkJCXsKKwkJCQkJKmF0dHJuYW1lID0gYjsKKwkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0 aF9hdHRyOworCQkJCX0KKwkJCQlicmVhazsKKworCQkJY2FzZSAzOgorCQkJCXsKKwkJCQkJYm9v bAkJZmllbGQxX2lzX2NhdGFsb2cgPSBmYWxzZTsKKworCQkJCQlmaWVsZDEgPSBsaW5pdGlhbChu YW1lcyk7CisJCQkJCWZpZWxkMiA9IGxzZWNvbmQobmFtZXMpOworCQkJCQlmaWVsZDMgPSBsdGhp cmQobmFtZXMpOworCisJCQkJCUFzc2VydChJc0EoZmllbGQxLCBTdHJpbmcpKTsKKwkJCQkJQXNz ZXJ0KElzQShmaWVsZDIsIFN0cmluZykpOworCisJCQkJCWEgPSBzdHJWYWwoZmllbGQxKTsKKwkJ CQkJYiA9IHN0clZhbChmaWVsZDIpOworCisJCQkJCWlmIChJc0EoZmllbGQzLCBTdHJpbmcpKQor CQkJCQl7CisJCQkJCQljID0gc3RyVmFsKGZpZWxkMyk7CisKKwkJCQkJCS8qCisJCQkJCQkgKiBh LmIuYyBjYW4gbWVhbiBjYXRhbG9nLnNjaGVtYS52YXJpYWJsZSBvcgorCQkJCQkJICogc2NoZW1h LnZhcmlhYmxlLmZpZWxkLgorCQkJCQkJICoKKwkJCQkJCSAqIENoZWNrIGJvdGggdmFyaWFudHMs 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 IGlmIChPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJl bGF0aW9uSWQsIHZhcmlkLCAwLCBBY2Nlc3NTaGFyZUxvY2spOworCisJCWlmIChpbnZhbF9jb3Vu dCA9PSBTaGFyZWRJbnZhbGlkTWVzc2FnZUNvdW50ZXIpCisJCQlicmVhazsKKworCQlyZXRyeSA9 IHRydWU7CisJCW9sZF92YXJpZCA9IHZhcmlkOworCQl2YXJpZCA9IEludmFsaWRPaWQ7CisJfQor CisJcmV0dXJuIHZhcmlkOworfQorCiAvKgogICogRGVjb25zdHJ1Y3RRdWFsaWZpZWROYW1lCiAg KgkJR2l2ZW4gYSBwb3NzaWJseS1xdWFsaWZpZWQgbmFtZSBleHByZXNzZWQgYXMgYSBsaXN0IG9m IFN0cmluZyBub2RlcywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFi bGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCBhMjFjYWEwZTBm Li5jOTlhMmVhYzAzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxl LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCkBAIC0yNiw2ICsyNiw3 IEBACiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNpbmNsdWRlICJ1dGlscy9idWls dGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3Bn X2xzbi5oIgogI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAKIHN0YXRpYyBPYmplY3RBZGRy ZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLApAQCAtMTAxLDYgKzEwMiw3 IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCXZhcmlkID0gR2V0TmV3 T2lkV2l0aEluZGV4KHJlbCwgVmFyaWFibGVPaWRJbmRleElkLCBBbnVtX3BnX3ZhcmlhYmxlX29p ZCk7CiAKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV9vaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0 dW0odmFyaWQpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmNyZWF0ZV9sc24gLSAxXSA9 IExTTkdldERhdHVtKEdldFhMb2dJbnNlcnRSZWNQdHIoKSk7CiAJdmFsdWVzW0FudW1fcGdfdmFy aWFibGVfdmFybmFtZSAtIDFdID0gTmFtZUdldERhdHVtKCZ2YXJuYW1lKTsKIAl2YWx1ZXNbQW51 bV9wZ192YXJpYWJsZV92YXJuYW1lc3BhY2UgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyTmFt ZXNwYWNlKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBlIC0gMV0gPSBPYmplY3RJ ZEdldERhdHVtKHZhclR5cGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFr ZWZpbGUgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQppbmRleCA0OGY3MzQ4ZjkxLi4x Y2ZhZWNhNTFlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQorKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQpAQCAtNTAsNiArNTAsNyBAQCBPQkpTID0g XAogCXNjaGVtYWNtZHMubyBcCiAJc2VjbGFiZWwubyBcCiAJc2VxdWVuY2UubyBcCisJc2Vzc2lv bl92YXJpYWJsZS5vIFwKIAlzdGF0c2NtZHMubyBcCiAJc3Vic2NyaXB0aW9uY21kcy5vIFwKIAl0 YWJsZWNtZHMubyBcCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWls ZCBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCmluZGV4IDZkZDAwYTRhYmQuLmNh NjIxYmU1ZWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCisr KyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCkBAIC0zOCw2ICszOCw3IEBAIGJh Y2tlbmRfc291cmNlcyArPSBmaWxlcygKICAgJ3NjaGVtYWNtZHMuYycsCiAgICdzZWNsYWJlbC5j JywKICAgJ3NlcXVlbmNlLmMnLAorICAnc2Vzc2lvbl92YXJpYWJsZS5jJywKICAgJ3N0YXRzY21k cy5jJywKICAgJ3N1YnNjcmlwdGlvbmNtZHMuYycsCiAgICd0YWJsZWNtZHMuYycsCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9wcmVwYXJlLmMKaW5kZXggMzlhNzFjMWRlMi4uZTllMzkzYWEwMiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3By ZXBhcmUuYwpAQCAtMzM4LDYgKzMzOCwxNCBAQCBFdmFsdWF0ZVBhcmFtcyhQYXJzZVN0YXRlICpw c3RhdGUsIFByZXBhcmVkU3RhdGVtZW50ICpwc3RtdCwgTGlzdCAqcGFyYW1zLAogCQlpKys7CiAJ fQogCisJLyoKKwkgKiBUaGUgYXJndW1lbnRzIG9mIEVYRUNVVEUgYXJlIGV2YWx1YXRlZCBieSBh IGRpcmVjdCBleHByZXNzaW9uCisJICogZXhlY3V0b3IgY2FsbC4gIFRoaXMgbW9kZSBkb2Vzbid0 IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMgeWV0LgorCSAqIEl0IHdpbGwgYmUgZW5hYmxlZCBs YXRlci4KKwkgKi8KKwlpZiAocHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMpCisJCWVsb2co RVJST1IsICJzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50Iik7 CisKIAkvKiBQcmVwYXJlIHRoZSBleHByZXNzaW9ucyBmb3IgZXhlY3V0aW9uICovCiAJZXhwcnN0 YXRlcyA9IEV4ZWNQcmVwYXJlRXhwckxpc3QocGFyYW1zLCBlc3RhdGUpOwogCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMC4uNjU3NzY4NDE1ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtMCwwICsxLDU3MSBAQAorLyotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgKgorICogc2Vzc2lvbl92YXJpYWJsZS5jCisgKgkgIHNlc3Npb24gdmFyaWFibGUgY3Jl YXRpb24vbWFuaXB1bGF0aW9uIGNvbW1hbmRzCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChj KSAxOTk2LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0 aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2Fs aWZvcm5pYQorICoKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lu Y2x1ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisj aW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgorI2luY2x1ZGUgImV4ZWN1dG9y L3N2YXJpYWJsZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiZnVuY2FwaS5oIgorI2luY2x1ZGUgIm1p c2NhZG1pbi5oIgorI2luY2x1ZGUgInJld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKKyNpbmNsdWRl ICJzdG9yYWdlL2xtZ3IuaCIKKyNpbmNsdWRlICJzdG9yYWdlL3Byb2MuaCIKKyNpbmNsdWRlICJ0 Y29wL3Rjb3Bwcm90LmgiCisjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1 dGlscy9kYXR1bS5oIgorI2luY2x1ZGUgInV0aWxzL2ludmFsLmgiCisjaW5jbHVkZSAidXRpbHMv bHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgorI2luY2x1ZGUgInV0aWxz L3N5c2NhY2hlLmgiCisKKy8qCisgKiBUaGUgdmFsdWVzIG9mIHNlc3Npb24gdmFyaWFibGVzIGFy ZSBzdG9yZWQgaW4gdGhlIGJhY2tlbmQncyBwcml2YXRlIG1lbW9yeQorICogaW4gdGhlIGRlZGlj YXRlZCBtZW1vcnkgY29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250ZXh0IGluIGJpbmFyeSBmb3Jt YXQuCisgKiBUaGV5IGFyZSBzdG9yZWQgaW4gdGhlICJzZXNzaW9udmFycyIgaGFzaCB0YWJsZSwg d2hvc2Uga2V5IGlzIHRoZSBPSUQgb2YgdGhlCisgKiB2YXJpYWJsZS4gIEhvd2V2ZXIsIHRoZSBP SUQgaXMgbm90IGdvb2QgZW5vdWdoIHRvIGlkZW50aWZ5IGEgc2Vzc2lvbgorICogdmFyaWFibGU6 IGNvbmN1cnJlbnQgc2Vzc2lvbnMgY291bGQgZHJvcCB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBhbmQg Y3JlYXRlIGEKKyAqIG5ldyBvbmUsIHdoaWNoIGNvdWxkIGJlIGFzc2lnbmVkIHRoZSBzYW1lIE9J RC4gIFRvIGVuc3VyZSB0aGF0IHRoZSB2YWx1ZXMKKyAqIHN0b3JlZCBpbiBtZW1vcnkgYW5kIHRo ZSBjYXRhbG9nIGRlZmluaXRpb24gbWF0Y2gsIHdlIGFsc28ga2VlcCB0cmFjayBvZgorICogdGhl ICJjcmVhdGVfbHNuIi4gIEJlZm9yZSBhbnkgYWNjZXNzIHRvIHRoZSB2YXJpYWJsZSB2YWx1ZXMs IHdlIG5lZWQgdG8KKyAqIGNoZWNrIGlmIHRoZSBMU04gc3RvcmVkIGluIG1lbW9yeSBtYXRjaGVz IHRoZSBMU04gaW4gdGhlIGNhdGFsb2cuICBJZiB0aGVyZQorICogaXMgYSBtaXNtYXRjaCBiZXR3 ZWVuIHRoZSBMU05zLCBvciBpZiB0aGUgT0lEIGlzIG5vdCBwcmVzZW50IGluIHBnX3ZhcmlhYmxl CisgKiBhdCBhbGwsIHRoZSB2YWx1ZSBzdG9yZWQgaW4gbWVtb3J5IGlzIHJlbGVhc2VkLgorICov Cit0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVEYXRhCit7CisJT2lkCQkJdmFyaWQ7CQkJLyogcGdf dmFyaWFibGUgT0lEIG9mIHRoZSB2YXJpYWJsZSAoaGFzaCBrZXkpICovCisJWExvZ1JlY1B0cglj cmVhdGVfbHNuOworCisJYm9vbAkJaXNudWxsOworCURhdHVtCQl2YWx1ZTsKKworCU9pZAkJCXR5 cGlkOworCWludDE2CQl0eXBsZW47CisJYm9vbAkJdHlwYnl2YWw7CisKKwlib29sCQlpc19kb21h aW47CisKKwkvKgorCSAqIGRvbWFpbl9jaGVja19leHRyYSBob2xkcyBjYWNoZWQgZG9tYWluIG1l dGFkYXRhLiAgVGhpcyAiZXh0cmEiIGlzCisJICogdXN1YWxseSBzdG9yZWQgaW4gZm5fbWN4dC4g IFdlIGRvIG5vdCBoYXZlIGFjY2VzcyB0byB0aGF0IG1lbW9yeSBjb250ZXh0CisJICogZm9yIHNl c3Npb24gdmFyaWFibGVzLCBidXQgd2UgY2FuIHVzZSBUb3BUcmFuc2FjdGlvbkNvbnRleHQgaW5z dGVhZC4KKwkgKiBBIGZyZXNoIHZhbHVlIGlzIGZvcmNlZCB3aGVuIHdlIGRldGVjdCB3ZSBhcmUg aW4gYSBkaWZmZXJlbnQgdHJhbnNhY3Rpb24KKwkgKiAodGhlIGxvY2FsIHRyYW5zYWN0aW9uIElE IGRpZmZlcnMgZnJvbSBkb21haW5fY2hlY2tfZXh0cmFfbHhpZCkuCisJICovCisJdm9pZAkgICAq ZG9tYWluX2NoZWNrX2V4dHJhOworCUxvY2FsVHJhbnNhY3Rpb25JZCBkb21haW5fY2hlY2tfZXh0 cmFfbHhpZDsKKworCS8qCisJICogU3RvcmVkIHZhbHVlIGFuZCB0eXBlIGRlc2NyaXB0aW9uIGNh biBiZSBvdXRkYXRlZCB3aGVuIHdlIHJlY2VpdmUgYQorCSAqIHNpbnZhbCBtZXNzYWdlLiAgV2Ug dGhlbiBoYXZlIHRvIGNoZWNrIGlmIHRoZSBzdG9yZWQgZGF0YSBhcmUgc3RpbGwKKwkgKiB0cnVz dHdvcnRoeS4KKwkgKi8KKwlib29sCQlpc192YWxpZDsKKworCXVpbnQzMgkJaGFzaHZhbHVlOwkJ LyogdXNlZCBmb3IgcGFpcmluZyBzaW52YWwgbWVzc2FnZSAqLworfSBTVmFyaWFibGVEYXRhOwor Cit0eXBlZGVmIFNWYXJpYWJsZURhdGEgKlNWYXJpYWJsZTsKKworc3RhdGljIEhUQUIgKnNlc3Np b252YXJzID0gTlVMTDsJLyogaGFzaCB0YWJsZSBmb3Igc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwor c3RhdGljIE1lbW9yeUNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9IE5VTEw7CisKKy8q CisgKiBDYWxsYmFjayBmdW5jdGlvbiBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBpbnZhbGlkYXRpb24u CisgKi8KK3N0YXRpYyB2b2lkCitwZ192YXJpYWJsZV9jYWNoZV9jYWxsYmFjayhEYXR1bSBhcmcs IGludCBjYWNoZWlkLCB1aW50MzIgaGFzaHZhbHVlKQoreworCUhBU0hfU0VRX1NUQVRVUyBzdGF0 dXM7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwllbG9nKERFQlVHMSwgInBnX3ZhcmlhYmxlX2NhY2hl X2NhbGxiYWNrICV1ICV1IiwgY2FjaGVpZCwgaGFzaHZhbHVlKTsKKworCUFzc2VydChzZXNzaW9u dmFycyk7CisKKwkvKgorCSAqIElmIHRoZSBoYXNodmFsdWUgaXMgbm90IHNwZWNpZmllZCwgd2Ug aGF2ZSB0byByZWNoZWNrIGFsbCBjdXJyZW50bHkKKwkgKiB1c2VkIHNlc3Npb24gdmFyaWFibGVz LiAgU2luY2Ugd2UgY2FuJ3QgdGVsbCB0aGUgZXhhY3Qgc2Vzc2lvbiB2YXJpYWJsZQorCSAqIGZy b20gaXRzIGhhc2h2YWx1ZSwgd2UgaGF2ZSB0byBpdGVyYXRlIG92ZXIgYWxsIGl0ZW1zIGluIHRo ZSBoYXNoIGJ1Y2tldC4KKwkgKi8KKwloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJz KTsKKworCXdoaWxlICgoc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VxX3NlYXJjaCgmc3RhdHVz KSkgIT0gTlVMTCkKKwl7CisJCWlmIChoYXNodmFsdWUgPT0gMCB8fCBzdmFyLT5oYXNodmFsdWUg PT0gaGFzaHZhbHVlKQorCQl7CisJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCQl9CisJfQor fQorCisvKgorICogUmVsZWFzZSBzdG9yZWQgdmFsdWUsIGZyZWUgbWVtb3J5CisgKi8KK3N0YXRp YyB2b2lkCitmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoU1ZhcmlhYmxlIHN2YXIpCit7CisJ LyogY2xlYW4gdGhlIGN1cnJlbnQgdmFsdWUgKi8KKwlpZiAoIXN2YXItPmlzbnVsbCkKKwl7CisJ CWlmICghc3Zhci0+dHlwYnl2YWwpCisJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIoc3Zhci0+dmFs dWUpKTsKKworCQlzdmFyLT5pc251bGwgPSB0cnVlOworCX0KKworCXN2YXItPnZhbHVlID0gKERh dHVtKSAwOworfQorCisvKgorICogUmV0dXJucyB0cnVlIHdoZW4gdGhlIGVudHJ5IGluIHBnX3Zh cmlhYmxlIGlzIGNvbnNpc3RlbnQgd2l0aCB0aGUgZ2l2ZW4KKyAqIHNlc3Npb24gdmFyaWFibGUu CisgKi8KK3N0YXRpYyBib29sCitpc19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKFNWYXJpYWJsZSBz dmFyKQoreworCUhlYXBUdXBsZQl0cDsKKwlib29sCQlyZXN1bHQgPSBmYWxzZTsKKworCUFzc2Vy dChPaWRJc1ZhbGlkKHN2YXItPnZhcmlkKSk7CisKKwl0cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJ QUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bShzdmFyLT52YXJpZCkpOworCisJaWYgKEhlYXBUdXBs ZUlzVmFsaWQodHApKQorCXsKKwkJLyoKKwkJICogVGhlIE9JRCBhbG9uZSBpcyBub3QgZW5vdWdo IGFzIGFuIHVuaXF1ZSBpZGVudGlmaWVyLCBiZWNhdXNlIE9JRAorCQkgKiB2YWx1ZXMgZ2V0IHJl Y3ljbGVkLCBhbmQgYSBuZXcgc2Vzc2lvbiB2YXJpYWJsZSBjb3VsZCBoYXZlIGdvdAorCQkgKiB0 aGUgc2FtZSBPSUQuICBXZSBkbyBhIHNlY29uZCBjaGVjayBhZ2FpbnN0IHRoZSA2NC1iaXQgTFNO IHdoZW4KKwkJICogdGhlIHZhcmlhYmxlIHdhcyBjcmVhdGVkLgorCQkgKi8KKwkJaWYgKHN2YXIt PmNyZWF0ZV9sc24gPT0gKChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHApKS0+dmFyY3Jl YXRlX2xzbikKKwkJCXJlc3VsdCA9IHRydWU7CisKKwkJUmVsZWFzZVN5c0NhY2hlKHRwKTsKKwl9 CisKKwlyZXR1cm4gcmVzdWx0OworfQorCisvKgorICogSW5pdGlhbGl6ZSBhdHRyaWJ1dGVzIGNh Y2hlZCBpbiAic3ZhciIKKyAqLworc3RhdGljIHZvaWQKK3NldHVwX3Nlc3Npb25fdmFyaWFibGUo U1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdf dmFyaWFibGUgdmFyZm9ybTsKKworCUFzc2VydChPaWRJc1ZhbGlkKHZhcmlkKSk7CisKKwl0dXAg PSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsK KworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9v a3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZvcm0g PSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwlzdmFyLT52YXJpZCA9IHZh cmlkOworCXN2YXItPmNyZWF0ZV9sc24gPSB2YXJmb3JtLT52YXJjcmVhdGVfbHNuOworCisJc3Zh ci0+dHlwaWQgPSB2YXJmb3JtLT52YXJ0eXBlOworCisJZ2V0X3R5cGxlbmJ5dmFsKHN2YXItPnR5 cGlkLCAmc3Zhci0+dHlwbGVuLCAmc3Zhci0+dHlwYnl2YWwpOworCisJc3Zhci0+aXNfZG9tYWlu ID0gKGdldF90eXB0eXBlKHZhcmZvcm0tPnZhcnR5cGUpID09IFRZUFRZUEVfRE9NQUlOKTsKKwlz dmFyLT5kb21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOworCXN2YXItPmRvbWFpbl9jaGVja19leHRy YV9seGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKKworCXN2YXItPmlzbnVsbCA9IHRy dWU7CisJc3Zhci0+dmFsdWUgPSAoRGF0dW0pIDA7CisKKwlzdmFyLT5pc192YWxpZCA9IHRydWU7 CisKKwlzdmFyLT5oYXNodmFsdWUgPSBHZXRTeXNDYWNoZUhhc2hWYWx1ZTEoVkFSSUFCTEVPSUQs CisJCQkJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCVJlbGVhc2VTeXNDYWNo ZSh0dXApOworfQorCisvKgorICogQXNzaWduIGEgbmV3IHZhbHVlIHRvIHRoZSBzZXNzaW9uIHZh cmlhYmxlLiAgSXQgaXMgY29waWVkIHRvCisgKiBTVmFyaWFibGVNZW1vcnlDb250ZXh0IGlmIG5l Y2Vzc2FyeS4KKyAqCisgKiBJZiBhbnkgZXJyb3IgaGFwcGVucywgdGhlIGV4aXN0aW5nIHZhbHVl IHdvbid0IGJlIG1vZGlmaWVkLgorICovCitzdGF0aWMgdm9pZAorc2V0X3Nlc3Npb25fdmFyaWFi bGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKK3sKKwlEYXR1bQkJ bmV3dmFsOworCVNWYXJpYWJsZURhdGEgbG9jc3ZhciwKKwkJCSAgICpfc3ZhcjsKKworCUFzc2Vy dChzdmFyKTsKKwlBc3NlcnQoIWlzbnVsbCB8fCB2YWx1ZSA9PSAoRGF0dW0pIDApOworCisJLyoK KwkgKiBVc2UgdHlwYnl2YWwsIHR5cGJ5bGVuIGZyb20gc2Vzc2lvbiB2YXJpYWJsZSBvbmx5IHdo ZW4gdGhleSBhcmUKKwkgKiB0cnVzdHdvcnRoeSAodGhlIGludmFsaWRhdGlvbiBtZXNzYWdlIHdh cyBub3QgYWNjZXB0ZWQgZm9yIHRoaXMKKwkgKiB2YXJpYWJsZSkuICBJZiB0aGUgdmFyaWFibGUg bWlnaHQgYmUgaW52YWxpZCwgZm9yY2Ugc2V0dXAuCisJICoKKwkgKiBEbyBub3Qgb3ZlcndyaXRl IHRoZSBwYXNzZWQgc2Vzc2lvbiB2YXJpYWJsZSB1bnRpbCB3ZSBjYW4gYmUgY2VydGFpbgorCSAq IHRoYXQgbm8gZXJyb3IgY2FuIGJlIHRocm93bi4KKwkgKi8KKwlpZiAoIXN2YXItPmlzX3ZhbGlk KQorCXsKKwkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZSgmbG9jc3Zhciwgc3Zhci0+dmFyaWQpOwor CQlfc3ZhciA9ICZsb2NzdmFyOworCX0KKwllbHNlCisJCV9zdmFyID0gc3ZhcjsKKworCWlmICgh aXNudWxsKQorCXsKKwkJTWVtb3J5Q29udGV4dCBvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNo VG8oU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCk7CisKKwkJbmV3dmFsID0gZGF0dW1Db3B5KHZhbHVl LCBfc3Zhci0+dHlwYnl2YWwsIF9zdmFyLT50eXBsZW4pOworCisJCU1lbW9yeUNvbnRleHRTd2l0 Y2hUbyhvbGRjeHQpOworCX0KKwllbHNlCisJCW5ld3ZhbCA9IHZhbHVlOworCisJZnJlZV9zZXNz aW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIpOworCisJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZhcmlh YmxlIFwiJXMuJXNcIiAob2lkOiV1KSBoYXMgbmV3IHZhbHVlIiwKKwkJIGdldF9uYW1lc3BhY2Vf bmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJIGdl dF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoc3Zhci0+dmFyaWQpLAorCQkgc3Zhci0+dmFyaWQpOwor CisJLyogbm8gbW9yZSBlcnJvciBleHBlY3RlZCwgc28gd2UgY2FuIG92ZXJ3cml0ZSB0aGUgb2xk IHZhcmlhYmxlIG5vdyAqLworCWlmIChzdmFyICE9IF9zdmFyKQorCQltZW1jcHkoc3ZhciwgX3N2 YXIsIHNpemVvZihTVmFyaWFibGVEYXRhKSk7CisKKwlzdmFyLT52YWx1ZSA9IG5ld3ZhbDsKKwlz dmFyLT5pc251bGwgPSBpc251bGw7Cit9CisKKy8qCisgKiBDcmVhdGUgdGhlIGhhc2ggdGFibGUg Zm9yIHN0b3Jpbmcgc2Vzc2lvbiB2YXJpYWJsZXMuCisgKi8KK3N0YXRpYyB2b2lkCitjcmVhdGVf c2Vzc2lvbnZhcnNfaGFzaHRhYmxlcyh2b2lkKQoreworCUhBU0hDVEwJCXZhcnNfY3RsOworCisJ QXNzZXJ0KCFzZXNzaW9udmFycyk7CisKKwlpZiAoIVNWYXJpYWJsZU1lbW9yeUNvbnRleHQpCisJ eworCQkvKiByZWFkIHNpbnZhbCBtZXNzYWdlcyAqLworCQlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVD YWxsYmFjayhWQVJJQUJMRU9JRCwKKwkJCQkJCQkJCSAgcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJh Y2ssCisJCQkJCQkJCQkgIChEYXR1bSkgMCk7CisKKwkJLyogd2UgbmVlZCBvdXIgb3duIGxvbmct bGl2ZWQgbWVtb3J5IGNvbnRleHQgKi8KKwkJU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9CisJCQlB bGxvY1NldENvbnRleHRDcmVhdGUoVG9wTWVtb3J5Q29udGV4dCwKKwkJCQkJCQkJICAic2Vzc2lv biB2YXJpYWJsZXMiLAorCQkJCQkJCQkgIEFMTE9DU0VUX1NUQVJUX1NNQUxMX1NJWkVTKTsKKwl9 CisKKwltZW1zZXQoJnZhcnNfY3RsLCAwLCBzaXplb2YodmFyc19jdGwpKTsKKwl2YXJzX2N0bC5r ZXlzaXplID0gc2l6ZW9mKE9pZCk7CisJdmFyc19jdGwuZW50cnlzaXplID0gc2l6ZW9mKFNWYXJp YWJsZURhdGEpOworCXZhcnNfY3RsLmhjeHQgPSBTVmFyaWFibGVNZW1vcnlDb250ZXh0OworCisJ c2Vzc2lvbnZhcnMgPSBoYXNoX2NyZWF0ZSgiU2Vzc2lvbiB2YXJpYWJsZXMiLCA2NCwgJnZhcnNf Y3RsLAorCQkJCQkJCSAgSEFTSF9FTEVNIHwgSEFTSF9CTE9CUyB8IEhBU0hfQ09OVEVYVCk7Cit9 CisKKy8qCisgKiBTZWFyY2ggYSBzZXNzaW9uIHZhcmlhYmxlIGluIHRoZSBoYXNoIHRhYmxlIGdp dmVuIGl0cyBPSUQuICBJZiBpdAorICogZG9lc24ndCBleGlzdCwgdGhlbiBpbnNlcnQgaXQgdGhl cmUuCisgKgorICogVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZG9pbmcgcGVybWlzc2lv biBjaGVja3MuCisgKgorICogQXMgYSBzaWRlIGVmZmVjdCwgdGhpcyBmdW5jdGlvbiBhY3F1aXJl cyBhIEFjY2Vzc1NoYXJlTG9jayBvbiB0aGUKKyAqIHNlc3Npb24gdmFyaWFibGUgdW50aWwgdGhl IGVuZCBvZiB0aGUgdHJhbnNhY3Rpb24uCisgKi8KK3N0YXRpYyBTVmFyaWFibGUKK2dldF9zZXNz aW9uX3ZhcmlhYmxlKE9pZCB2YXJpZCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsKKwlib29sCQlmb3Vu ZDsKKworCS8qIHByb3RlY3QgdGhlIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZSBhZ2FpbnN0IERST1Ag Ki8KKwlMb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgQWNj ZXNzU2hhcmVMb2NrKTsKKworCWlmICghc2Vzc2lvbnZhcnMpCisJCWNyZWF0ZV9zZXNzaW9udmFy c19oYXNodGFibGVzKCk7CisKKwlzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZWFyY2goc2Vzc2lv bnZhcnMsICZ2YXJpZCwKKwkJCQkJCQkJICAgSEFTSF9FTlRFUiwgJmZvdW5kKTsKKworCWlmIChm b3VuZCkKKwl7CisJCWlmICghc3Zhci0+aXNfdmFsaWQpCisJCXsKKwkJCS8qCisJCQkgKiBJZiB0 aGVyZSB3YXMgYW4gaW52YWxpZGF0aW9uIG1lc3NhZ2UsIHRoZSB2YXJpYWJsZSBtaWdodCBzdGls bCBiZQorCQkJICogdmFsaWQsIGJ1dCB3ZSBoYXZlIHRvIGNoZWNrIHdpdGggdGhlIHN5c3RlbSBj YXRhbG9nLgorCQkJICovCisJCQlpZiAoaXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChzdmFyKSkK KwkJCQlzdmFyLT5pc192YWxpZCA9IHRydWU7CisJCQllbHNlCisJCQkJLyogaWYgdGhlIHZhbHVl IGNhbm5vdCBiZSB2YWxpZGF0ZWQsIHdlIGhhdmUgdG8gZGlzY2FyZCBpdCAqLworCQkJCWZyZWVf c2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKwkJfQorCX0KKwllbHNlCisJCXN2YXItPmlz X3ZhbGlkID0gZmFsc2U7CisKKwkvKgorCSAqIEZvcmNlIHNldHVwIGZvciBub3QgeWV0IGluaXRp YWxpemVkIHZhcmlhYmxlcyBvciB2YXJpYWJsZXMgdGhhdCBjYW5ub3QKKwkgKiBiZSB2YWxpZGF0 ZWQuCisJICovCisJaWYgKCFzdmFyLT5pc192YWxpZCkKKwl7CisJCXNldHVwX3Nlc3Npb25fdmFy aWFibGUoc3ZhciwgdmFyaWQpOworCisJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSBc IiVzLiVzXCIgKG9pZDoldSkgaGFzIGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAoZW1pdHRlZCBi eSBSRUFEKSIsCisJCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWVzcGFjZSh2YXJpZCkpLAorCQkJIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpLAor CQkJIHZhcmlkKTsKKwl9CisKKwkvKiBlbnN1cmUgdGhlIHJldHVybmVkIGRhdGEgaXMgc3RpbGwg b2YgdGhlIGNvcnJlY3QgZG9tYWluICovCisJaWYgKHN2YXItPmlzX2RvbWFpbikKKwl7CisJCS8q CisJCSAqIFN0b3JlICJleHRyYSIgZm9yIGRvbWFpbl9jaGVjaygpIGluIFRvcFRyYW5zYWN0aW9u Q29udGV4dC4gIFdoZW4gd2UKKwkJICogYXJlIGluIGEgbmV3IHRyYW5zYWN0aW9uLCBkb21haW5f Y2hlY2tfZXh0cmEgY2FjaGUgaXMgbm90IHZhbGlkIGFueQorCQkgKiBtb3JlLgorCQkgKi8KKwkJ aWYgKHN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlkICE9IE15UHJvYy0+dnhpZC5seGlkKQor CQkJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKKworCQlkb21haW5fY2hlY2soc3Zh ci0+dmFsdWUsIHN2YXItPmlzbnVsbCwKKwkJCQkJIHN2YXItPnR5cGlkLCAmc3Zhci0+ZG9tYWlu X2NoZWNrX2V4dHJhLAorCQkJCQkgVG9wVHJhbnNhY3Rpb25Db250ZXh0KTsKKworCQlzdmFyLT5k b21haW5fY2hlY2tfZXh0cmFfbHhpZCA9IE15UHJvYy0+dnhpZC5seGlkOworCX0KKworCXJldHVy biBzdmFyOworfQorCisvKgorICogU3RvcmUgdGhlIGdpdmVuIHZhbHVlIGluIGEgc2Vzc2lvbiB2 YXJpYWJsZSBpbiB0aGUgY2FjaGUuCisgKgorICogVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBm b3IgZG9pbmcgcGVybWlzc2lvbiBjaGVja3MuCisgKgorICogQXMgYSBzaWRlIGVmZmVjdCwgdGhp cyBmdW5jdGlvbiBhY3F1aXJlcyBhIEFjY2Vzc1NoYXJlTG9jayBvbiB0aGUgc2Vzc2lvbgorICog dmFyaWFibGUgdW50aWwgdGhlIGVuZCBvZiB0aGUgdHJhbnNhY3Rpb24uCisgKi8KK3ZvaWQKK1Nl dFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCkKK3sK KwlTVmFyaWFibGUJc3ZhcjsKKwlib29sCQlmb3VuZDsKKworCS8qIHByb3RlY3QgdXNlZCBzZXNz aW9uIHZhcmlhYmxlIGFnYWluc3QgRFJPUCAqLworCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJs ZVJlbGF0aW9uSWQsIHZhcmlkLCAwLCBBY2Nlc3NTaGFyZUxvY2spOworCisJaWYgKCFzZXNzaW9u dmFycykKKwkJY3JlYXRlX3Nlc3Npb252YXJzX2hhc2h0YWJsZXMoKTsKKworCXN2YXIgPSAoU1Zh cmlhYmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZhcmlkLAorCQkJCQkJCQkgICBIQVNI X0VOVEVSLCAmZm91bmQpOworCisJaWYgKCFmb3VuZCkKKwl7CisJCXNldHVwX3Nlc3Npb25fdmFy aWFibGUoc3ZhciwgdmFyaWQpOworCisJCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSBc IiVzLiVzXCIgKG9pZDoldSkgaGFzIGFzc2lnbmVkIGVudHJ5IGluIG1lbW9yeSAoZW1pdHRlZCBi eSBXUklURSkiLAorCQkJIGdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJCSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHN2 YXItPnZhcmlkKSwKKwkJCSB2YXJpZCk7CisJfQorCisJLyogaWYgdGhpcyBmYWlscywgaXQgd29u J3QgY2hhbmdlIHRoZSBzdG9yZWQgdmFsdWUgKi8KKwlzZXRfc2Vzc2lvbl92YXJpYWJsZShzdmFy LCB2YWx1ZSwgaXNOdWxsKTsKK30KKworLyoKKyAqIFdyYXBwZXIgYXJvdW5kIFNldFNlc3Npb25W YXJpYWJsZSB3aXRoIHBlcm1pc3Npb24gY2hlY2tzLgorICovCit2b2lkCitTZXRTZXNzaW9uVmFy aWFibGVXaXRoU2VjdXJpdHlDaGVjayhPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVs bCkKK3sKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCisJLyogaXMgdGhlIGNhbGxlciBhbGxvd2Vk IHRvIHVwZGF0ZSB0aGUgc2Vzc2lvbiB2YXJpYWJsZT8gKi8KKwlhY2xyZXN1bHQgPSBvYmplY3Rf YWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgR2V0VXNlcklkKCksIEFDTF9VUERB VEUpOworCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCWFjbGNoZWNrX2Vycm9yKGFj bHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLCBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlk KSk7CisKKwlTZXRTZXNzaW9uVmFyaWFibGUodmFyaWQsIHZhbHVlLCBpc051bGwpOworfQorCisv KgorICogUmV0dXJucyBhIGNvcHkgb2YgdGhlIHZhbHVlIHN0b3JlZCBpbiBhIHZhcmlhYmxlLgor ICovCitzdGF0aWMgaW5saW5lIERhdHVtCitjb3B5X3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoU1Zh cmlhYmxlIHN2YXIsIGJvb2wgKmlzTnVsbCkKK3sKKwlEYXR1bQkJdmFsdWU7CisKKwkvKiBmb3Jj ZSBjb3B5IG9mIG5vbiBOVUxMIHZhbHVlICovCisJaWYgKCFzdmFyLT5pc251bGwpCisJeworCQl2 YWx1ZSA9IGRhdHVtQ29weShzdmFyLT52YWx1ZSwgc3Zhci0+dHlwYnl2YWwsIHN2YXItPnR5cGxl bik7CisJCSppc051bGwgPSBmYWxzZTsKKwl9CisJZWxzZQorCXsKKwkJdmFsdWUgPSAoRGF0dW0p IDA7CisJCSppc051bGwgPSB0cnVlOworCX0KKworCXJldHVybiB2YWx1ZTsKK30KKworLyoKKyAq IFJldHVybnMgYSBjb3B5IG9mIHRoZSB2YWx1ZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSAoaW4g dGhlIGN1cnJlbnQgbWVtb3J5CisgKiBjb250ZXh0KS4gIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2li bGUgZm9yIHBlcm1pc3Npb24gY2hlY2tzLgorICovCitEYXR1bQorR2V0U2Vzc2lvblZhcmlhYmxl KE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsLCBPaWQgKnR5cGlkKQoreworCVNWYXJpYWJsZQlzdmFy OworCisJc3ZhciA9IGdldF9zZXNzaW9uX3ZhcmlhYmxlKHZhcmlkKTsKKworCS8qCisJICogQWx0 aG91Z2ggInN2YXIiIGlzIGZyZXNobHkgdmFsaWRhdGVkIGluIHRoaXMgcG9pbnQsIHN2YXItPmlz X3ZhbGlkIGNhbgorCSAqIGJlIGZhbHNlLCBpZiBhbiBpbnZhbGlkYXRpb24gbWVzc2FnZSB3cyBw cm9jZXNzZWQgZHVyaW5nIHRoZSBkb21haW4gY2hlY2suCisJICogQnV0IHRoZSB2YXJpYWJsZSBh bmQgYWxsIGl0cyBkZXBlbmRlbmNpZXMgYXJlIGxvY2tlZCBub3csIHNvIHdlIGRvbid0IG5lZWQK KwkgKiB0byByZXBlYXQgdGhlIHZhbGlkYXRpb24uCisJICovCisJQXNzZXJ0KHN2YXIpOworCisJ KnR5cGlkID0gc3Zhci0+dHlwaWQ7CisKKwlyZXR1cm4gY29weV9zZXNzaW9uX3ZhcmlhYmxlX3Zh bHVlKHN2YXIsIGlzTnVsbCk7Cit9CisKKy8qCisgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFs dWUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgYWZ0ZXIgY2hlY2tpbmcgaWYgdGhlCisgKiB0eXBl IGlzIHRoZSBzYW1lIGFzICJleHBlY3RlZF90eXBpZCIuICBUaGUgY2FsbGVyIGlzIHJlc3BvbnNp YmxlIGZvcgorICogcGVybWlzc2lvbiBjaGVja3MuCisgKi8KK0RhdHVtCitHZXRTZXNzaW9uVmFy aWFibGVXaXRoVHlwZUNoZWNrKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsLCBPaWQgZXhwZWN0ZWRf dHlwaWQpCit7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwlzdmFyID0gZ2V0X3Nlc3Npb25fdmFyaWFi bGUodmFyaWQpOworCisJQXNzZXJ0KHN2YXIgJiYgc3Zhci0+aXNfdmFsaWQpOworCisJaWYgKGV4 cGVjdGVkX3R5cGlkICE9IHN2YXItPnR5cGlkKQorCQllbG9nKEVSUk9SLCAidHlwZSBvZiB2YXJp YWJsZSBcIiVzLiVzXCIgaXMgZGlmZmVyZW50IHRoYW4gZXhwZWN0ZWQiLAorCQkJIGdldF9uYW1l c3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCSBn ZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSk7CisKKwlyZXR1cm4gY29weV9zZXNzaW9u X3ZhcmlhYmxlX3ZhbHVlKHN2YXIsIGlzTnVsbCk7Cit9CisKKy8qCisgKiBBc3NpZ24gdGhlIHJl c3VsdCBvZiB0aGUgZXZhbHVhdGVkIGV4cHJlc3Npb24gdG8gdGhlIHNlc3Npb24gdmFyaWFibGUK KyAqLwordm9pZAorRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJICAgTGV0 U3RtdCAqc3RtdCwKKwkJCSAgIFBhcmFtTGlzdEluZm8gcGFyYW1zLAorCQkJICAgUXVlcnlFbnZp cm9ubWVudCAqcXVlcnlFbnYsCisJCQkgICBRdWVyeUNvbXBsZXRpb24gKnFjKQoreworCVF1ZXJ5 CSAgICpxdWVyeSA9IGNhc3ROb2RlKFF1ZXJ5LCBzdG10LT5xdWVyeSk7CisJTGlzdAkgICAqcmV3 cml0dGVuOworCURlc3RSZWNlaXZlciAqZGVzdDsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCVBs YW5uZWRTdG10ICpwbGFuOworCVF1ZXJ5RGVzYyAgKnF1ZXJ5RGVzYzsKKwlPaWQJCQl2YXJpZCA9 IHF1ZXJ5LT5yZXN1bHRWYXJpYWJsZTsKKworCUFzc2VydChPaWRJc1ZhbGlkKHZhcmlkKSk7CisK KwkvKiBkbyB3ZSBoYXZlIHBlcm1pc3Npb24gdG8gd3JpdGUgdG8gdGhlIHNlc3Npb24gdmFyaWFi bGU/ICovCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVsYXRpb25JZCwg dmFyaWQsIEdldFVzZXJJZCgpLCBBQ0xfVVBEQVRFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENI RUNLX09LKQorCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9WQVJJQUJMRSwgZ2V0 X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOworCisJLyogY3JlYXRlIGEgZGVzdCByZWNl aXZlciBmb3IgTEVUICovCisJZGVzdCA9IENyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKHZhcmlk KTsKKworCS8qIHJ1biB0aGUgcXVlcnkgcmV3cml0ZXIgKi8KKwlxdWVyeSA9IGNvcHlPYmplY3Qo cXVlcnkpOworCisJcmV3cml0dGVuID0gUXVlcnlSZXdyaXRlKHF1ZXJ5KTsKKworCUFzc2VydChs aXN0X2xlbmd0aChyZXdyaXR0ZW4pID09IDEpOworCisJcXVlcnkgPSBsaW5pdGlhbF9ub2RlKFF1 ZXJ5LCByZXdyaXR0ZW4pOworCUFzc2VydChxdWVyeS0+Y29tbWFuZFR5cGUgPT0gQ01EX1NFTEVD VCk7CisKKwkvKiBwbGFuIHRoZSBxdWVyeSAqLworCXBsYW4gPSBwZ19wbGFuX3F1ZXJ5KHF1ZXJ5 LCBwc3RhdGUtPnBfc291cmNldGV4dCwKKwkJCQkJCSBDVVJTT1JfT1BUX1BBUkFMTEVMX09LLCBw YXJhbXMpOworCisJLyoKKwkgKiBVc2UgYSBzbmFwc2hvdCB3aXRoIGFuIHVwZGF0ZWQgY29tbWFu ZCBJRCB0byBlbnN1cmUgdGhpcyBxdWVyeSBzZWVzIHRoZQorCSAqIHJlc3VsdHMgb2YgYW55IHBy ZXZpb3VzbHkgZXhlY3V0ZWQgcXVlcmllcy4gIChUaGlzIGNvdWxkIG9ubHkgbWF0dGVyIGlmCisJ ICogdGhlIHBsYW5uZXIgZXhlY3V0ZWQgYW4gYWxsZWdlZGx5LXN0YWJsZSBmdW5jdGlvbiB0aGF0 IGNoYW5nZWQgdGhlCisJICogZGF0YWJhc2UgY29udGVudHMsIGJ1dCBsZXQncyBkbyBpdCBhbnl3 YXkgdG8gYmUgcGFyYWxsZWwgdG8gdGhlIEVYUExBSU4KKwkgKiBjb2RlIHBhdGguKQorCSAqLwor CVB1c2hDb3BpZWRTbmFwc2hvdChHZXRBY3RpdmVTbmFwc2hvdCgpKTsKKwlVcGRhdGVBY3RpdmVT bmFwc2hvdENvbW1hbmRJZCgpOworCisJLyogY3JlYXRlIGEgUXVlcnlEZXNjLCByZWRpcmVjdGlu ZyBvdXRwdXQgdG8gb3VyIHR1cGxlIHJlY2VpdmVyICovCisJcXVlcnlEZXNjID0gQ3JlYXRlUXVl cnlEZXNjKHBsYW4sIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAorCQkJCQkJCQlHZXRBY3RpdmVTbmFw c2hvdCgpLCBJbnZhbGlkU25hcHNob3QsCisJCQkJCQkJCWRlc3QsIHBhcmFtcywgcXVlcnlFbnYs IDApOworCisJLyogY2FsbCBFeGVjdXRvclN0YXJ0IHRvIHByZXBhcmUgdGhlIHBsYW4gZm9yIGV4 ZWN1dGlvbiAqLworCUV4ZWN1dG9yU3RhcnQocXVlcnlEZXNjLCAwKTsKKworCS8qCisJICogUnVu IHRoZSBwbGFuIHRvIGNvbXBsZXRpb24uICBUaGUgcmVzdWx0IHNob3VsZCBiZSBvbmx5IG9uZSBy b3cuICBUbworCSAqIGNoZWNrIGlmIHRoZXJlIGFyZSB0b28gbWFueSByZXN1bHQgcm93cywgd2Ug dHJ5IHRvIGZldGNoIHR3by4KKwkgKi8KKwlFeGVjdXRvclJ1bihxdWVyeURlc2MsIEZvcndhcmRT Y2FuRGlyZWN0aW9uLCAyTCk7CisKKwkvKiBzYXZlIHRoZSByb3djb3VudCBpZiB3ZSdyZSBnaXZl biBhIFF1ZXJ5Q29tcGxldGlvbiB0byBmaWxsICovCisJaWYgKHFjKQorCQlTZXRRdWVyeUNvbXBs ZXRpb24ocWMsIENNRFRBR19MRVQsIHF1ZXJ5RGVzYy0+ZXN0YXRlLT5lc19wcm9jZXNzZWQpOwor CisJLyogYW5kIGNsZWFuIHVwICovCisJRXhlY3V0b3JGaW5pc2gocXVlcnlEZXNjKTsKKwlFeGVj dXRvckVuZChxdWVyeURlc2MpOworCisJRnJlZVF1ZXJ5RGVzYyhxdWVyeURlc2MpOworCisJUG9w QWN0aXZlU25hcHNob3QoKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01h a2VmaWxlIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUKaW5kZXggMTExMThkMGNlMC4u NzEyNDhhMzRmMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUKKysr IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUKQEAgLTc2LDYgKzc2LDcgQEAgT0JKUyA9 IFwKIAlub2RlV2luZG93QWdnLm8gXAogCW5vZGVXb3JrdGFibGVzY2FuLm8gXAogCXNwaS5vIFwK KwlzdmFyaWFibGVSZWNlaXZlci5vIFwKIAl0cXVldWUubyBcCiAJdHN0b3JlUmVjZWl2ZXIubwog CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0V4cHIuYwppbmRleCA4MTcxNDM0MWYwLi4wYzMzOWEwYjNkIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCisrKyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNFeHByLmMKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJjYXRhbG9n L29iamVjdGFjY2Vzcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNp bmNsdWRlICJleGVjdXRvci9leGVjRXhwci5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL25vZGVTdWJw bGFuLmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5oIgpAQCAtOTkxLDYgKzk5Miw0MSBAQCBFeGVjSW5p dEV4cHJSZWMoRXhwciAqbm9kZSwgRXhwclN0YXRlICpzdGF0ZSwKIAkJCQkJCXNjcmF0Y2guZC5w YXJhbS5wYXJhbXR5cGUgPSBwYXJhbS0+cGFyYW10eXBlOwogCQkJCQkJRXhwckV2YWxQdXNoU3Rl cChzdGF0ZSwgJnNjcmF0Y2gpOwogCQkJCQkJYnJlYWs7CisKKwkJCQkJY2FzZSBQQVJBTV9WQVJJ QUJMRToKKwkJCQkJCXsKKwkJCQkJCQlpbnQJCQllc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSAw OworCQkJCQkJCVNlc3Npb25WYXJpYWJsZVZhbHVlICplc19zZXNzaW9uX3ZhcmlhYmxlcyA9IE5V TEw7CisJCQkJCQkJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKnZhcjsKKworCQkJCQkJCWlmIChzdGF0 ZS0+cGFyZW50ICYmIHN0YXRlLT5wYXJlbnQtPnN0YXRlKQorCQkJCQkJCXsKKwkJCQkJCQkJZXNf c2Vzc2lvbl92YXJpYWJsZXMgPSBzdGF0ZS0+cGFyZW50LT5zdGF0ZS0+ZXNfc2Vzc2lvbl92YXJp YWJsZXM7CisJCQkJCQkJCWVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IHN0YXRlLT5wYXJlbnQt PnN0YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXM7CisJCQkJCQkJfQorCisJCQkJCQkJQXNz ZXJ0KGVzX3Nlc3Npb25fdmFyaWFibGVzKTsKKworCQkJCQkJCS8qIHBhcmFtZXRlciBzYW5pdHkg Y2hlY2tzICovCisJCQkJCQkJaWYgKHBhcmFtLT5wYXJhbWlkID49IGVzX251bV9zZXNzaW9uX3Zh cmlhYmxlcykKKwkJCQkJCQkJZWxvZyhFUlJPUiwgInBhcmFtaWQgb2YgUEFSQU1fVkFSSUFCTEUg cGFyYW0gaXMgb3V0IG9mIHJhbmdlIik7CisKKwkJCQkJCQl2YXIgPSAmZXNfc2Vzc2lvbl92YXJp YWJsZXNbcGFyYW0tPnBhcmFtaWRdOworCisJCQkJCQkJaWYgKHZhci0+dHlwaWQgIT0gcGFyYW0t PnBhcmFtdHlwZSkKKwkJCQkJCQkJZWxvZyhFUlJPUiwgInR5cGUgb2YgYnVmZmVyZWQgdmFsdWUg aXMgZGlmZmVyZW50IHRoYW4gUEFSQU1fVkFSSUFCTEUgdHlwZSIpOworCisJCQkJCQkJLyoKKwkJ CQkJCQkgKiBJbiB0aGlzIGNhc2UsIHBhc3MgdGhlIHZhbHVlIGxpa2UgYQorCQkJCQkJCSAqIGNv bnN0YW50LgorCQkJCQkJCSAqLworCQkJCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9DT05TVDsK KwkJCQkJCQlzY3JhdGNoLmQuY29uc3R2YWwudmFsdWUgPSB2YXItPnZhbHVlOworCQkJCQkJCXNj cmF0Y2guZC5jb25zdHZhbC5pc251bGwgPSB2YXItPmlzbnVsbDsKKwkJCQkJCQlFeHByRXZhbFB1 c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisJCQkJCQl9CisJCQkJCQlicmVhazsKKwogCQkJCQlj YXNlIFBBUkFNX0VYVEVSTjoKIAogCQkJCQkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNNYWluLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCmluZGV4 IDFjMTJkNmViZmYuLmRjZjU3MWNhMDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYwpAQCAtNDMs NyArNDMsOSBAQAogI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9u YW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BhcnRpdGlvbi5oIgorI2luY2x1ZGUgImNh dGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9tYXR2aWV3LmgiCisjaW5j bHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Ry aWdnZXIuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgogI2luY2x1ZGUgImV4ZWN1 dG9yL25vZGVTdWJwbGFuLmgiCkBAIC0xOTMsNiArMTk1LDU5IEBAIHN0YW5kYXJkX0V4ZWN1dG9y U3RhcnQoUXVlcnlEZXNjICpxdWVyeURlc2MsIGludCBlZmxhZ3MpCiAJQXNzZXJ0KHF1ZXJ5RGVz Yy0+c291cmNlVGV4dCAhPSBOVUxMKTsKIAllc3RhdGUtPmVzX3NvdXJjZVRleHQgPSBxdWVyeURl c2MtPnNvdXJjZVRleHQ7CiAKKwkvKgorCSAqIFRoZSBleGVjdXRvciBkb2Vzbid0IHdvcmsgd2l0 aCBzZXNzaW9uIHZhcmlhYmxlcyBkaXJlY3RseS4gVmFsdWVzIG9mCisJICogcmVsYXRlZCBzZXNz aW9uIHZhcmlhYmxlcyBhcmUgY29waWVkIHRvIGEgZGVkaWNhdGVkIGFycmF5LCBhbmQgdGhpcyBh cnJheQorCSAqIGlzIHBhc3NlZCB0byB0aGUgZXhlY3V0b3IuIFRoaXMgYXJyYXkgaXMgc3RhYmxl ICJzbmFwc2hvdCIgb2YgdmFsdWVzIG9mCisJICogdXNlZCBzZXNzaW9uIHZhcmlhYmxlcy4gVGhl cmUgYXJlIHRocmVlIGJlbmVmaXRzIG9mIHRoaXMgc3RyYXRlZ3k6CisJICoKKwkgKiAtIGNvbnNp c3RlbmN5IHdpdGggZXh0ZXJuYWwgcGFyYW1ldGVycyBhbmQgcGxwZ3NxbCB2YXJpYWJsZXMsCisJ ICoKKwkgKiAtIHNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBwYXJhbGxlbCBzYWZlLAorCSAqCisJ ICogLSB3ZSBkb24ndCBuZWVkIG1ha2UgZnJlc2ggY29weSBmb3IgYW55IHJlYWQgb2Ygc2Vzc2lv biB2YXJpYWJsZQorCSAqICAgICh0aGlzIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSBpbnRlcm5h bGx5IHRoZSBzZXNzaW9uIHZhcmlhYmxlIGNhbgorCSAqICAgIGJlIGNoYW5nZWQgaW5zaWRlIHF1 ZXJ5IGV4ZWN1dGlvbiB0aW1lLCBhbmQgdGhlbiBhIHJlZmVyZW5jZSB0bworCSAqICAgIHByZXZp b3VzbHkgcmV0dXJuZWQgdmFsdWUgY2FuIGJlIGNvcnJ1cHRlZCkuCisJICovCisJaWYgKHF1ZXJ5 RGVzYy0+cGxhbm5lZHN0bXQtPnNlc3Npb25WYXJpYWJsZXMpCisJeworCQlpbnQJCQluU2Vzc2lv blZhcmlhYmxlczsKKwkJaW50CQkJaSA9IDA7CisKKwkJLyoKKwkJICogSW4gdGhpcyBjYXNlLCB0 aGUgcXVlcnkgdXNlcyBzZXNzaW9uIHZhcmlhYmxlcywgYnV0IHdlIGhhdmUgdG8KKwkJICogcHJl cGFyZSB0aGUgYXJyYXkgd2l0aCBwYXNzZWQgdmFsdWVzIChvZiB1c2VkIHNlc3Npb24gdmFyaWFi bGVzKQorCQkgKiBmaXJzdC4KKwkJICovCisJCUFzc2VydCghSXNQYXJhbGxlbFdvcmtlcigpKTsK KwkJblNlc3Npb25WYXJpYWJsZXMgPSBsaXN0X2xlbmd0aChxdWVyeURlc2MtPnBsYW5uZWRzdG10 LT5zZXNzaW9uVmFyaWFibGVzKTsKKworCQkvKiBjcmVhdGUgdGhlIGFycmF5IHVzZWQgZm9yIHBh c3NpbmcgdmFsdWVzIG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwkJZXN0YXRlLT5lc19z ZXNzaW9uX3ZhcmlhYmxlcyA9IChTZXNzaW9uVmFyaWFibGVWYWx1ZSAqKQorCQkJcGFsbG9jKG5T ZXNzaW9uVmFyaWFibGVzICogc2l6ZW9mKFNlc3Npb25WYXJpYWJsZVZhbHVlKSk7CisKKwkJLyog ZmlsbCB0aGUgYXJyYXkgKi8KKwkJZm9yZWFjaF9vaWQodmFyaWQsIHF1ZXJ5RGVzYy0+cGxhbm5l ZHN0bXQtPnNlc3Npb25WYXJpYWJsZXMpCisJCXsKKwkJCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisK KwkJCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlk LCBHZXRVc2VySWQoKSwgQUNMX1NFTEVDVCk7CisJCQlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNL X09LKQorCQkJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLAorCQkJ CQkJCSAgIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKTsKKworCQkJZXN0YXRlLT5l c19zZXNzaW9uX3ZhcmlhYmxlc1tpXS52YXJpZCA9IHZhcmlkOworCQkJZXN0YXRlLT5lc19zZXNz aW9uX3ZhcmlhYmxlc1tpXS52YWx1ZSA9IEdldFNlc3Npb25WYXJpYWJsZSh2YXJpZCwKKwkJCQkJ CQkJCQkJCQkJCQkJICAgJmVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0uaXNudWxsLAor CQkJCQkJCQkJCQkJCQkJCQkgICAmZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlc1tpXS50eXBp ZCk7CisKKwkJCWkrKzsKKwkJfQorCisJCWVzdGF0ZS0+ZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVz ID0gblNlc3Npb25WYXJpYWJsZXM7CisJfQorCiAJLyoKIAkgKiBGaWxsIGluIHRoZSBxdWVyeSBl bnZpcm9ubWVudCwgaWYgYW55LCBmcm9tIHF1ZXJ5RGVzYy4KIAkgKi8KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxkIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVz b24uYnVpbGQKaW5kZXggYjUxMWE0MjlhZC4uYjY2NjJjNmU4ZiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvbWVzb24uYnVpbGQKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVz b24uYnVpbGQKQEAgLTY0LDYgKzY0LDcgQEAgYmFja2VuZF9zb3VyY2VzICs9IGZpbGVzKAogICAn bm9kZVdpbmRvd0FnZy5jJywKICAgJ25vZGVXb3JrdGFibGVzY2FuLmMnLAogICAnc3BpLmMnLAor ICAnc3ZhcmlhYmxlUmVjZWl2ZXIuYycsCiAgICd0cXVldWUuYycsCiAgICd0c3RvcmVSZWNlaXZl ci5jJywKICkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2Vp dmVyLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmM0Y2ZmNDRlY2YKLS0tIC9kZXYvbnVsbAor KysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCkBAIC0wLDAgKzEs MjAxIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBzdmFyaWFibGVSZWNlaXZlci5jCisg KgkgIEFuIGltcGxlbWVudGF0aW9uIG9mIERlc3RSZWNlaXZlciB0aGF0IHN0b3JlcyB0aGUgcmVz dWx0IHZhbHVlIGluCisgKgkgIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqCisgKiBQb3J0aW9ucyBD b3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3Jv dXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVy c2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2JhY2tl bmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICovCisKKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorCisj aW5jbHVkZSAiYWNjZXNzL2RldG9hc3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxl LmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgorI2luY2x1ZGUgImV4 ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAic3RvcmFnZS9sb2NrLmgiCisj aW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIK KyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgorCisvKgorICogVGhpcyBEZXN0UmVjZWl2ZXIg aXMgdXNlZCBieSB0aGUgTEVUIGNvbW1hbmQgZm9yIHN0b3JpbmcgdGhlIHJlc3VsdCB0byBhCisg KiBzZXNzaW9uIHZhcmlhYmxlLiAgVGhlIHJlc3VsdCBoYXMgdG8gaGF2ZSBvbmx5IG9uZSB0dXBs ZSB3aXRoIG9ubHkgb25lCisgKiBub24tZGVsZXRlZCBhdHRyaWJ1dGUuICBUaGUgcm93IGNvdW50 ZXIgKGZpZWxkICJyb3dzIikgaXMgaW5jcmVtZW50ZWQKKyAqIGFmdGVyIHJlY2VpdmluZyBhIHJv dywgYW5kIGFuIGVycm9yIGlzIHJhaXNlZCB3aGVuIHRoZXJlIGFyZSBubyByb3dzIG9yCisgKiB0 aGVyZSBhcmUgbW9yZSB0aGFuIG9uZSByZWNlaXZlZCByb3dzLiAgQmVjYXVzZSBhIHJlY2VpdmVk IHR1cGxlIGNhbiBoYXZlCisgKiBkZWxldGVkIGF0dHJpYnV0ZXMsIHdlIG5lZWQgdG8gZmluZCB0 aGUgZmlyc3Qgbm9uLWRlbGV0ZWQgYXR0cmlidXRlCisgKiAoZmllbGQgInNsb3Rfb2Zmc2V0Iiku ICBUaGUgdmFsdWUgaXMgZGV0b2FzdGVkIGJlZm9yZSBzdG9yaW5nIGl0IGluIHRoZQorICogc2Vz c2lvbiB2YXJpYWJsZS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QKK3sKKwlEZXN0UmVjZWl2ZXIgcHVi OworCU9pZAkJCXZhcmlkOworCWJvb2wJCW5lZWRfZGV0b2FzdDsJCS8qIGRvIHdlIG5lZWQgdG8g ZGV0b2FzdCB0aGUgYXR0cmlidXRlPyAqLworCWludAkJCXNsb3Rfb2Zmc2V0OwkJLyogcG9zaXRp b24gb2Ygbm9uLWRlbGV0ZWQgYXR0cmlidXRlICovCisJaW50CQkJcm93czsJCQkJLyogcm93IGNv dW50ZXIgKi8KK30gU1ZhcmlhYmxlU3RhdGU7CisKKy8qCisgKiBQcmVwYXJlIHRvIHJlY2VpdmUg dHVwbGVzIGZyb20gZXhlY3V0b3IuCisgKi8KK3N0YXRpYyB2b2lkCitzdmFyaWFibGVTdGFydHVw UmVjZWl2ZXIoRGVzdFJlY2VpdmVyICpzZWxmLCBpbnQgb3BlcmF0aW9uLCBUdXBsZURlc2MgdHlw ZWluZm8pCit7CisJU1ZhcmlhYmxlU3RhdGUgKm15U3RhdGUgPSAoU1ZhcmlhYmxlU3RhdGUgKikg c2VsZjsKKwlpbnQJCQluYXR0cyA9IHR5cGVpbmZvLT5uYXR0czsKKwlpbnQJCQlvdXRjb2xzID0g MDsKKwlpbnQJCQlpOworCUxPQ0tUQUcJCWxvY2t0YWcgUEdfVVNFRF9GT1JfQVNTRVJUU19PTkxZ OworCisJQXNzZXJ0KG15U3RhdGUtPnB1Yi5teWRlc3QgPT0gRGVzdFZhcmlhYmxlKTsKKwlBc3Nl cnQoT2lkSXNWYWxpZChteVN0YXRlLT52YXJpZCkpOworCUFzc2VydChTZWFyY2hTeXNDYWNoZUV4 aXN0czEoVkFSSUFCTEVPSUQsIG15U3RhdGUtPnZhcmlkKSk7CisKKyNpZmRlZiBVU0VfQVNTRVJU X0NIRUNLSU5HCisKKwlTRVRfTE9DS1RBR19PQkpFQ1QobG9ja3RhZywKKwkJCQkJICAgTXlEYXRh YmFzZUlkLAorCQkJCQkgICBWYXJpYWJsZVJlbGF0aW9uSWQsCisJCQkJCSAgIG15U3RhdGUtPnZh cmlkLAorCQkJCQkgICAwKTsKKworCUFzc2VydChMb2NrSGVsZEJ5TWUoJmxvY2t0YWcsIEFjY2Vz c1NoYXJlTG9jaywgZmFsc2UpKTsKKworI2VuZGlmCisKKwlmb3IgKGkgPSAwOyBpIDwgbmF0dHM7 IGkrKykKKwl7CisJCUZvcm1fcGdfYXR0cmlidXRlIGF0dHIgPSBUdXBsZURlc2NBdHRyKHR5cGVp bmZvLCBpKTsKKwkJT2lkCQkJdHlwaWQ7CisJCU9pZAkJCWNvbGxpZDsKKwkJaW50MzIJCXR5cG1v ZDsKKworCQlpZiAoYXR0ci0+YXR0aXNkcm9wcGVkKQorCQkJY29udGludWU7CisKKwkJaWYgKCsr b3V0Y29scyA+IDEpCisJCQljb250aW51ZTsKKworCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBl X3R5cG1vZF9jb2xsaWQobXlTdGF0ZS0+dmFyaWQsCisJCQkJCQkJCQkJCQkmdHlwaWQsCisJCQkJ CQkJCQkJCQkmdHlwbW9kLAorCQkJCQkJCQkJCQkJJmNvbGxpZCk7CisKKwkJLyoKKwkJICogRG91 YmxlIGNoZWNrIC0gdGhlIHR5cGUgYW5kIHR5cG1vZCBvZiB0YXJnZXQgdmFyaWFibGUgc2hvdWxk IGJlIHRoZQorCQkgKiBzYW1lIGFzIHRoZSB0eXBlIGFuZCB0eXBtb2Qgb2YgYXNzaWdubWVudCBl eHByZXNzaW9uLiAgVGhlCisJCSAqIGV4cHJlc3Npb24gc2hvdWxkIGJlIHdyYXBwZWQgYnkgYSBj YXN0IHRvIHRoZSB0YXJnZXQgdHlwZS90eXBtb2QuCisJCSAqLworCQlpZiAoYXR0ci0+YXR0dHlw aWQgIT0gdHlwaWQgfHwKKwkJCShhdHRyLT5hdHR0eXBtb2QgPj0gMCAmJgorCQkJIGF0dHItPmF0 dHR5cG1vZCAhPSB0eXBtb2QpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJS Q09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCSBlcnJtc2coInRhcmdldCBzZXNzaW9uIHZh cmlhYmxlIGlzIG9mIHR5cGUgJXMiCisJCQkJCQkJIiBidXQgZXhwcmVzc2lvbiBpcyBvZiB0eXBl ICVzIiwKKwkJCQkJCQlmb3JtYXRfdHlwZV93aXRoX3R5cGVtb2QodHlwaWQsIHR5cG1vZCksCisJ CQkJCQkJZm9ybWF0X3R5cGVfd2l0aF90eXBlbW9kKGF0dHItPmF0dHR5cGlkLAorCQkJCQkJCQkJ CQkJCSBhdHRyLT5hdHR0eXBtb2QpKSkpOworCisJCW15U3RhdGUtPm5lZWRfZGV0b2FzdCA9IGF0 dHItPmF0dGxlbiA9PSAtMTsKKwkJbXlTdGF0ZS0+c2xvdF9vZmZzZXQgPSBpOworCX0KKworCWlm IChvdXRjb2xzICE9IDEpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9T WU5UQVhfRVJST1IpLAorCQkJCSBlcnJtc2dfcGx1cmFsKCJhc3NpZ25tZW50IGV4cHJlc3Npb24g cmV0dXJuZWQgJWQgY29sdW1uIiwKKwkJCQkJCQkgICAiYXNzaWdubWVudCBleHByZXNzaW9uIHJl dHVybmVkICVkIGNvbHVtbnMiLAorCQkJCQkJCSAgIG91dGNvbHMsCisJCQkJCQkJICAgb3V0Y29s cykpKTsKKworCW15U3RhdGUtPnJvd3MgPSAwOworfQorCisvKgorICogUmVjZWl2ZSBhIHR1cGxl IGZyb20gdGhlIGV4ZWN1dG9yIGFuZCBzdG9yZSBpdCBpbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4K KyAqLworc3RhdGljIGJvb2wKK3N2YXJpYWJsZVJlY2VpdmVTbG90KFR1cGxlVGFibGVTbG90ICpz bG90LCBEZXN0UmVjZWl2ZXIgKnNlbGYpCit7CisJU1ZhcmlhYmxlU3RhdGUgKm15U3RhdGUgPSAo U1ZhcmlhYmxlU3RhdGUgKikgc2VsZjsKKwlEYXR1bQkJdmFsdWU7CisJYm9vbAkJaXNudWxsOwor CWJvb2wJCWZyZWV2YWwgPSBmYWxzZTsKKworCS8qIG1ha2Ugc3VyZSB0aGUgdHVwbGUgaXMgZnVs bHkgZGVjb25zdHJ1Y3RlZCAqLworCXNsb3RfZ2V0YWxsYXR0cnMoc2xvdCk7CisKKwl2YWx1ZSA9 IHNsb3QtPnR0c192YWx1ZXNbbXlTdGF0ZS0+c2xvdF9vZmZzZXRdOworCWlzbnVsbCA9IHNsb3Qt PnR0c19pc251bGxbbXlTdGF0ZS0+c2xvdF9vZmZzZXRdOworCisJaWYgKG15U3RhdGUtPm5lZWRf ZGV0b2FzdCAmJiAhaXNudWxsICYmIFZBUkFUVF9JU19FWFRFUk5BTChEYXR1bUdldFBvaW50ZXIo dmFsdWUpKSkKKwl7CisJCXZhbHVlID0gUG9pbnRlckdldERhdHVtKGRldG9hc3RfZXh0ZXJuYWxf YXR0cigoc3RydWN0IHZhcmxlbmEgKikKKwkJCQkJCQkJCQkJCQkgIERhdHVtR2V0UG9pbnRlcih2 YWx1ZSkpKTsKKwkJZnJlZXZhbCA9IHRydWU7CisJfQorCisJbXlTdGF0ZS0+cm93cyArPSAxOwor CisJaWYgKG15U3RhdGUtPnJvd3MgPiAxKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfVE9PX01BTllfUk9XUyksCisJCQkJIGVycm1zZygiZXhwcmVzc2lvbiByZXR1cm5l ZCBtb3JlIHRoYW4gb25lIHJvdyIpKSk7CisKKwlTZXRTZXNzaW9uVmFyaWFibGUobXlTdGF0ZS0+ dmFyaWQsIHZhbHVlLCBpc251bGwpOworCisJaWYgKGZyZWV2YWwpCisJCXBmcmVlKERhdHVtR2V0 UG9pbnRlcih2YWx1ZSkpOworCisJcmV0dXJuIHRydWU7Cit9CisKKy8qCisgKiBDbGVhbiB1cCBh dCBlbmQgb2YgdGhlIGV4ZWN1dG9yIHJ1bgorICovCitzdGF0aWMgdm9pZAorc3ZhcmlhYmxlU2h1 dGRvd25SZWNlaXZlcihEZXN0UmVjZWl2ZXIgKnNlbGYpCit7CisJaWYgKCgoU1ZhcmlhYmxlU3Rh dGUgKikgc2VsZiktPnJvd3MgPT0gMCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShF UlJDT0RFX05PX0RBVEFfRk9VTkQpLAorCQkJCSBlcnJtc2coImV4cHJlc3Npb24gcmV0dXJuZWQg bm8gcm93cyIpKSk7Cit9CisKKy8qCisgKiBEZXN0cm95IHRoZSByZWNlaXZlciB3aGVuIHdlIGFy ZSBkb25lIHdpdGggaXQKKyAqLworc3RhdGljIHZvaWQKK3N2YXJpYWJsZURlc3Ryb3lSZWNlaXZl cihEZXN0UmVjZWl2ZXIgKnNlbGYpCit7CisJcGZyZWUoc2VsZik7Cit9CisKKy8qCisgKiBJbml0 aWFsbHkgY3JlYXRlIGEgRGVzdFJlY2VpdmVyIG9iamVjdC4KKyAqLworRGVzdFJlY2VpdmVyICoK K0NyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKE9pZCB2YXJpZCkKK3sKKwlTVmFyaWFibGVTdGF0 ZSAqc2VsZiA9IChTVmFyaWFibGVTdGF0ZSAqKSBwYWxsb2MwKHNpemVvZihTVmFyaWFibGVTdGF0 ZSkpOworCisJc2VsZi0+cHViLnJlY2VpdmVTbG90ID0gc3ZhcmlhYmxlUmVjZWl2ZVNsb3Q7CisJ c2VsZi0+cHViLnJTdGFydHVwID0gc3ZhcmlhYmxlU3RhcnR1cFJlY2VpdmVyOworCXNlbGYtPnB1 Yi5yU2h1dGRvd24gPSBzdmFyaWFibGVTaHV0ZG93blJlY2VpdmVyOworCXNlbGYtPnB1Yi5yRGVz dHJveSA9IHN2YXJpYWJsZURlc3Ryb3lSZWNlaXZlcjsKKwlzZWxmLT5wdWIubXlkZXN0ID0gRGVz dFZhcmlhYmxlOworCisJc2VsZi0+dmFyaWQgPSB2YXJpZDsKKworCXJldHVybiAoRGVzdFJlY2Vp dmVyICopIHNlbGY7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3Mu YyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IDUwNzA1YTFlMTUuLjQ4ZDg2 ZWU3MjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC00MzQxLDYgKzQzNDEsMTYgQEAgcmF3X2V4 cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsK IAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfTGV0U3RtdDoKKwkJCXsKKwkJCQlMZXRTdG10ICAg ICpzdG10ID0gKExldFN0bXQgKikgbm9kZTsKKworCQkJCWlmIChXQUxLKHN0bXQtPnRhcmdldCkp CisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChXQUxLKHN0bXQtPnF1ZXJ5KSkKKwkJCQkJcmV0 dXJuIHRydWU7CisJCQl9CisJCQlicmVhazsKIAkJY2FzZSBUX1BMQXNzaWduU3RtdDoKIAkJCXsK IAkJCQlQTEFzc2lnblN0bXQgKnN0bXQgPSAoUExBc3NpZ25TdG10ICopIG5vZGU7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgYi9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKaW5kZXggZjM4NTZjNTE5Zi4uMTE0NjgzZTcyMiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCisrKyBiL3NyYy9i YWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwpAQCAtMzMzLDYgKzMzMyw3IEBAIHN0YW5k YXJkX3BsYW5uZXIoUXVlcnkgKnBhcnNlLCBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsIGludCBj dXJzb3JPcHRpb25zLAogCWdsb2ItPmxhc3RQbGFuTm9kZUlkID0gMDsKIAlnbG9iLT50cmFuc2ll bnRQbGFuID0gZmFsc2U7CiAJZ2xvYi0+ZGVwZW5kc09uUm9sZSA9IGZhbHNlOworCWdsb2ItPnNl c3Npb25WYXJpYWJsZXMgPSBOSUw7CiAKIAkvKgogCSAqIEFzc2VzcyB3aGV0aGVyIGl0J3MgZmVh c2libGUgdG8gdXNlIHBhcmFsbGVsIG1vZGUgZm9yIHRoaXMgcXVlcnkuIFdlCkBAIC01NjcsNiAr NTY4LDcgQEAgc3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFyc2UsIGNvbnN0IGNoYXIgKnF1ZXJ5 X3N0cmluZywgaW50IGN1cnNvck9wdGlvbnMsCiAJcmVzdWx0LT5wYXJhbUV4ZWNUeXBlcyA9IGds b2ItPnBhcmFtRXhlY1R5cGVzOwogCS8qIHV0aWxpdHlTdG10IHNob3VsZCBiZSBudWxsLCBidXQg d2UgbWlnaHQgYXMgd2VsbCBjb3B5IGl0ICovCiAJcmVzdWx0LT51dGlsaXR5U3RtdCA9IHBhcnNl LT51dGlsaXR5U3RtdDsKKwlyZXN1bHQtPnNlc3Npb25WYXJpYWJsZXMgPSBnbG9iLT5zZXNzaW9u VmFyaWFibGVzOwogCXJlc3VsdC0+c3RtdF9sb2NhdGlvbiA9IHBhcnNlLT5zdG10X2xvY2F0aW9u OwogCXJlc3VsdC0+c3RtdF9sZW4gPSBwYXJzZS0+c3RtdF9sZW47CiAKQEAgLTczNyw2ICs3Mzks MTMgQEAgc3VicXVlcnlfcGxhbm5lcihQbGFubmVyR2xvYmFsICpnbG9iLCBRdWVyeSAqcGFyc2Us IFBsYW5uZXJJbmZvICpwYXJlbnRfcm9vdCwKIAkgKi8KIAlwdWxsX3VwX3N1YnF1ZXJpZXMocm9v dCk7CiAKKwkvKgorCSAqIENoZWNrIGlmIHNvbWUgc3VicXVlcnkgdXNlcyBhIHNlc3Npb24gdmFy aWFibGUuICBUaGUgZmxhZworCSAqIGhhc1Nlc3Npb25WYXJpYWJsZXMgc2hvdWxkIGJlIHRydWUg aWYgdGhlIHF1ZXJ5IG9yIHNvbWUgc3VicXVlcnkgdXNlcyBhCisJICogc2Vzc2lvbiB2YXJpYWJs ZS4KKwkgKi8KKwlwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlcyhyb290KTsKKwogCS8qCiAJ ICogSWYgdGhpcyBpcyBhIHNpbXBsZSBVTklPTiBBTEwgcXVlcnksIGZsYXR0ZW4gaXQgaW50byBh biBhcHBlbmRyZWwuIFdlCiAJICogZG8gdGhpcyBub3cgYmVjYXVzZSBpdCByZXF1aXJlcyBhcHBs eWluZyBwdWxsX3VwX3N1YnF1ZXJpZXMgdG8gdGhlIGxlYWYKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFu L3NldHJlZnMuYwppbmRleCA2ZDIzZGYxMDhkLi43MTFlMzhhZjk2IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1p emVyL3BsYW4vc2V0cmVmcy5jCkBAIC0yMTAsNiArMjEwLDkgQEAgc3RhdGljIExpc3QgKnNldF9y ZXR1cm5pbmdfY2xhdXNlX3JlZmVyZW5jZXMoUGxhbm5lckluZm8gKnJvb3QsCiBzdGF0aWMgTGlz dCAqc2V0X3dpbmRvd2FnZ19ydW5jb25kaXRpb25fcmVmZXJlbmNlcyhQbGFubmVySW5mbyAqcm9v dCwKIAkJCQkJCQkJCQkJCSAgIExpc3QgKnJ1bmNvbmRpdGlvbiwKIAkJCQkJCQkJCQkJCSAgIFBs YW4gKnBsYW4pOworc3RhdGljIGJvb2wgcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2Fs a2VyKE5vZGUgKm5vZGUsCisJCQkJCQkJCQkJCQkgUGxhbm5lckluZm8gKnJvb3QpOworc3RhdGlj IHZvaWQgcmVjb3JkX3BsYW5fdmFyaWFibGVfZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9vdCwg T2lkIHZhcmlkKTsKIAogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTEzMDksNiArMTMxMiw1 MCBAQCBzZXRfcGxhbl9yZWZzKFBsYW5uZXJJbmZvICpyb290LCBQbGFuICpwbGFuLCBpbnQgcnRv ZmZzZXQpCiAJcmV0dXJuIHBsYW47CiB9CiAKKy8qCisgKiBTZWFyY2ggdXNhZ2Ugb2Ygc2Vzc2lv biB2YXJpYWJsZXMgaW4gc3VicXVlcmllcworICovCit2b2lkCitwdWxsX3VwX2hhc19zZXNzaW9u X3ZhcmlhYmxlcyhQbGFubmVySW5mbyAqcm9vdCkKK3sKKwlRdWVyeQkgICAqcXVlcnkgPSByb290 LT5wYXJzZTsKKworCWlmIChxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKKwl7CisJCXJvb3Qt Pmhhc1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOworCX0KKwllbHNlCisJeworCQkodm9pZCkgcXVl cnlfdHJlZV93YWxrZXIocXVlcnksCisJCQkJCQkJCSBwdWxsX3VwX2hhc19zZXNzaW9uX3Zhcmlh Ymxlc193YWxrZXIsCisJCQkJCQkJCSAodm9pZCAqKSByb290LCAwKTsKKwl9Cit9CisKK3N0YXRp YyBib29sCitwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIoTm9kZSAqbm9kZSwg UGxhbm5lckluZm8gKnJvb3QpCit7CisJaWYgKG5vZGUgPT0gTlVMTCkKKwkJcmV0dXJuIGZhbHNl OworCWlmIChJc0Eobm9kZSwgUXVlcnkpKQorCXsKKwkJUXVlcnkJICAgKnF1ZXJ5ID0gKFF1ZXJ5 ICopIG5vZGU7CisKKwkJaWYgKHF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzKQorCQl7CisJCQly b290LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gdHJ1ZTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQor CisJCS8qIHJlY3Vyc2UgaW50byBzdWJzZWxlY3RzICovCisJCXJldHVybiBxdWVyeV90cmVlX3dh bGtlcigoUXVlcnkgKikgbm9kZSwKKwkJCQkJCQkJIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFi bGVzX3dhbGtlciwKKwkJCQkJCQkJICh2b2lkICopIHJvb3QsIDApOworCX0KKwlyZXR1cm4gZXhw cmVzc2lvbl90cmVlX3dhbGtlcihub2RlLCBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193 YWxrZXIsCisJCQkJCQkJCSAgKHZvaWQgKikgcm9vdCk7Cit9CisKIC8qCiAgKiBzZXRfaW5kZXhv bmx5c2Nhbl9yZWZlcmVuY2VzCiAgKgkJRG8gc2V0X3BsYW5fcmVmZXJlbmNlcyBwcm9jZXNzaW5n IG9uIGFuIEluZGV4T25seVNjYW4KQEAgLTE5NTcsOCArMjAwNCw5IEBAIGNvcHlWYXIoVmFyICp2 YXIpCiAgKiBUaGlzIGlzIGNvZGUgdGhhdCBpcyBjb21tb24gdG8gYWxsIHZhcmlhbnRzIG9mIGV4 cHJlc3Npb24tZml4aW5nLgogICogV2UgbXVzdCBsb29rIHVwIG9wZXJhdG9yIG9wY29kZSBpbmZv IGZvciBPcEV4cHIgYW5kIHJlbGF0ZWQgbm9kZXMsCiAgKiBhZGQgT0lEcyBmcm9tIHJlZ2NsYXNz IENvbnN0IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVsYXRpb25PaWRzLCBhbmQKLSAqIGFkZCBQ bGFuSW52YWxJdGVtcyBmb3IgdXNlci1kZWZpbmVkIGZ1bmN0aW9ucyBpbnRvIHJvb3QtPmdsb2It PmludmFsSXRlbXMuCi0gKiBXZSBhbHNvIGZpbGwgaW4gY29sdW1uIGluZGV4IGxpc3RzIGZvciBH Uk9VUElORygpIGV4cHJlc3Npb25zLgorICogYWRkIFBsYW5JbnZhbEl0ZW1zIGZvciB1c2VyLWRl ZmluZWQgZnVuY3Rpb25zIGFuZCBzZXNzaW9uIHZhcmlhYmxlcyBpbnRvCisgKiByb290LT5nbG9i LT5pbnZhbEl0ZW1zLiAgV2UgYWxzbyBmaWxsIGluIGNvbHVtbiBpbmRleCBsaXN0cyBmb3IgR1JP VVBJTkcoKQorICogZXhwcmVzc2lvbnMuCiAgKgogICogV2UgYXNzdW1lIGl0J3Mgb2theSB0byB1 cGRhdGUgb3Bjb2RlIGluZm8gaW4tcGxhY2UuICBTbyB0aGlzIGNvdWxkIHBvc3NpYmx5CiAgKiBz Y3JpYmJsZSBvbiB0aGUgcGxhbm5lcidzIGlucHV0IGRhdGEgc3RydWN0dXJlcywgYnV0IGl0J3Mg T0suCkBAIC0yMDQ4LDYgKzIwOTYsMTMgQEAgZml4X2V4cHJfY29tbW9uKFBsYW5uZXJJbmZvICpy b290LCBOb2RlICpub2RlKQogCQkJCWctPmNvbHMgPSBjb2xzOwogCQl9CiAJfQorCWVsc2UgaWYg KElzQShub2RlLCBQYXJhbSkpCisJeworCQlQYXJhbQkgICAqcCA9IChQYXJhbSAqKSBub2RlOwor CisJCWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJCQlyZWNvcmRfcGxhbl92 YXJpYWJsZV9kZXBlbmRlbmN5KHJvb3QsIHAtPnBhcmFtdmFyaWQpOworCX0KIH0KIAogLyoKQEAg LTIwNTcsNiArMjExMiwxMCBAQCBmaXhfZXhwcl9jb21tb24oUGxhbm5lckluZm8gKnJvb3QsIE5v ZGUgKm5vZGUpCiAgKiBJZiBpdCdzIGEgUEFSQU1fTVVMVElFWFBSLCByZXBsYWNlIGl0IHdpdGgg dGhlIGFwcHJvcHJpYXRlIFBhcmFtIGZyb20KICAqIHJvb3QtPm11bHRpZXhwcl9wYXJhbXM7IG90 aGVyd2lzZSBubyBjaGFuZ2UgaXMgbmVlZGVkLgogICogSnVzdCBmb3IgcGFyYW5vaWEncyBzYWtl LCB3ZSBtYWtlIGEgY29weSBvZiB0aGUgbm9kZSBpbiBlaXRoZXIgY2FzZS4KKyAqCisgKiBJZiBp dCdzIGEgUEFSQU1fVkFSSUFCTEUsIHRoZW4gd2UgY29sbGVjdCB1c2VkIHNlc3Npb24gdmFyaWFi bGVzIGluCisgKiB0aGUgbGlzdCByb290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGUuICBBbHNvLCBh c3NpZ24gdGhlIHBhcmFtZXRlcidzCisgKiAicGFyYW1pZCIgdG8gdGhlIHBhcmFtZXRlcidzIHBv c2l0aW9uIGluIHRoYXQgbGlzdC4KICAqLwogc3RhdGljIE5vZGUgKgogZml4X3BhcmFtX25vZGUo UGxhbm5lckluZm8gKnJvb3QsIFBhcmFtICpwKQpAQCAtMjA3NSw2ICsyMTM0LDQwIEBAIGZpeF9w YXJhbV9ub2RlKFBsYW5uZXJJbmZvICpyb290LCBQYXJhbSAqcCkKIAkJCWVsb2coRVJST1IsICJ1 bmV4cGVjdGVkIFBBUkFNX01VTFRJRVhQUiBJRDogJWQiLCBwLT5wYXJhbWlkKTsKIAkJcmV0dXJu IGNvcHlPYmplY3QobGlzdF9udGgocGFyYW1zLCBjb2xubyAtIDEpKTsKIAl9CisKKwlpZiAocC0+ cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCXsKKwkJaW50CQkJbiA9IDA7CisJCWJvb2wJ CWZvdW5kID0gZmFsc2U7CisKKwkJLyogd2Ugd2lsbCBtb2RpZnkgb2JqZWN0ICovCisJCXAgPSAo UGFyYW0gKikgY29weU9iamVjdChwKTsKKworCQkvKgorCQkgKiBOb3csIHdlIGNhbiBhY3R1YWxp emUgbGlzdCBvZiBzZXNzaW9uIHZhcmlhYmxlcywgYW5kIHdlIGNhbgorCQkgKiBjb21wbGV0ZSBw YXJhbWlkIHBhcmFtZXRlci4KKwkJICovCisJCWZvcmVhY2hfb2lkKHZhcmlkLCByb290LT5nbG9i LT5zZXNzaW9uVmFyaWFibGVzKQorCQl7CisJCQlpZiAodmFyaWQgPT0gcC0+cGFyYW12YXJpZCkK KwkJCXsKKwkJCQlwLT5wYXJhbWlkID0gbjsKKwkJCQlmb3VuZCA9IHRydWU7CisJCQkJYnJlYWs7 CisJCQl9CisJCQluICs9IDE7CisJCX0KKworCQlpZiAoIWZvdW5kKQorCQl7CisJCQlyb290LT5n bG9iLT5zZXNzaW9uVmFyaWFibGVzID0gbGFwcGVuZF9vaWQocm9vdC0+Z2xvYi0+c2Vzc2lvblZh cmlhYmxlcywKKwkJCQkJCQkJCQkJCQkgICBwLT5wYXJhbXZhcmlkKTsKKwkJCXAtPnBhcmFtaWQg PSBuOworCQl9CisKKwkJcmV0dXJuIChOb2RlICopIHA7CisJfQorCiAJcmV0dXJuIChOb2RlICop IGNvcHlPYmplY3QocCk7CiB9CiAKQEAgLTIxMzYsNyArMjIyOSwxMCBAQCBmaXhfYWx0ZXJuYXRp dmVfc3VicGxhbihQbGFubmVySW5mbyAqcm9vdCwgQWx0ZXJuYXRpdmVTdWJQbGFuICphc3BsYW4s CiAgKiByZXBsYWNpbmcgQWdncmVmIG5vZGVzIHRoYXQgc2hvdWxkIGJlIHJlcGxhY2VkIGJ5IGlu aXRwbGFuIG91dHB1dCBQYXJhbXMsCiAgKiBjaG9vc2luZyB0aGUgYmVzdCBpbXBsZW1lbnRhdGlv biBmb3IgQWx0ZXJuYXRpdmVTdWJQbGFucywKICAqIGxvb2tpbmcgdXAgb3BlcmF0b3Igb3Bjb2Rl IGluZm8gZm9yIE9wRXhwciBhbmQgcmVsYXRlZCBub2RlcywKLSAqIGFuZCBhZGRpbmcgT0lEcyBm cm9tIHJlZ2NsYXNzIENvbnN0IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVsYXRpb25PaWRzLgor ICogYWRkaW5nIE9JRHMgZnJvbSByZWdjbGFzcyBDb25zdCBub2RlcyBpbnRvIHJvb3QtPmdsb2It PnJlbGF0aW9uT2lkcywKKyAqIGFzc2lnbmluZyBwYXJhbXZhcmlkIHRvIFBBUkFNX1ZBUklBQkxF IHBhcmFtcywgYW5kIGNvbGxlY3RpbmcgdGhlCisgKiBPSURzIG9mIHNlc3Npb24gdmFyaWFibGVz IGluIHRoZSByb290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzIGxpc3QKKyAqIChwYXJhbXZhcmlk IGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGlzIGxpc3QpLgog ICoKICAqICdub2RlJzogdGhlIGV4cHJlc3Npb24gdG8gYmUgbW9kaWZpZWQKICAqICdydG9mZnNl dCc6IGhvdyBtdWNoIHRvIGluY3JlbWVudCB2YXJub3MgYnkKQEAgLTIxNTgsNyArMjI1NCw4IEBA IGZpeF9zY2FuX2V4cHIoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUsIGludCBydG9mZnNl dCwgZG91YmxlIG51bV9leGVjKQogCQlyb290LT5tdWx0aWV4cHJfcGFyYW1zICE9IE5JTCB8fAog CQlyb290LT5nbG9iLT5sYXN0UEhJZCAhPSAwIHx8CiAJCXJvb3QtPm1pbm1heF9hZ2dzICE9IE5J TCB8fAotCQlyb290LT5oYXNBbHRlcm5hdGl2ZVN1YlBsYW5zKQorCQlyb290LT5oYXNBbHRlcm5h dGl2ZVN1YlBsYW5zIHx8CisJCXJvb3QtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJewogCQlyZXR1 cm4gZml4X3NjYW5fZXhwcl9tdXRhdG9yKG5vZGUsICZjb250ZXh0KTsKIAl9CkBAIC0zNTM2LDYg KzM2MzMsMjUgQEAgcmVjb3JkX3BsYW5fdHlwZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290 LCBPaWQgdHlwaWQpCiAJfQogfQogCisvKgorICogUmVjb3JkIGRlcGVuZGVuY3kgb24gYSBzZXNz aW9uIHZhcmlhYmxlLiAgVGhlIHZhcmlhYmxlIGNhbiBiZSB1c2VkIGFzIGEKKyAqIHNlc3Npb24g dmFyaWFibGUgaW4gYW4gZXhwcmVzc2lvbiBsaXN0LCBvciBhcyB0aGUgdGFyZ2V0IG9mIGEgTEVU IHN0YXRlbWVudC4KKyAqLworc3RhdGljIHZvaWQKK3JlY29yZF9wbGFuX3ZhcmlhYmxlX2RlcGVu ZGVuY3koUGxhbm5lckluZm8gKnJvb3QsIE9pZCB2YXJpZCkKK3sKKwlQbGFuSW52YWxJdGVtICpp bnZhbF9pdGVtID0gbWFrZU5vZGUoUGxhbkludmFsSXRlbSk7CisKKwkvKiBwYXJhbWlkIGlzIHN0 aWxsIHNlc3Npb24gdmFyaWFibGUgaWQgKi8KKwlpbnZhbF9pdGVtLT5jYWNoZUlkID0gVkFSSUFC TEVPSUQ7CisJaW52YWxfaXRlbS0+aGFzaFZhbHVlID0gR2V0U3lzQ2FjaGVIYXNoVmFsdWUxKFZB UklBQkxFT0lELAorCQkJCQkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwkv KiBhcHBlbmQgdGhpcyB2YXJpYWJsZSB0byBnbG9iYWwsIHJlZ2lzdGVyIGRlcGVuZGVuY3kgKi8K Kwlyb290LT5nbG9iLT5pbnZhbEl0ZW1zID0gbGFwcGVuZChyb290LT5nbG9iLT5pbnZhbEl0ZW1z LAorCQkJCQkJCQkJIGludmFsX2l0ZW0pOworfQorCiAvKgogICogZXh0cmFjdF9xdWVyeV9kZXBl bmRlbmNpZXMKICAqCQlHaXZlbiBhIHJld3JpdHRlbiwgYnV0IG5vdCB5ZXQgcGxhbm5lZCwgcXVl cnkgb3IgcXVlcmllcwpAQCAtMzYyMSw5ICszNzM3LDkgQEAgZXh0cmFjdF9xdWVyeV9kZXBlbmRl bmNpZXNfd2Fsa2VyKE5vZGUgKm5vZGUsIFBsYW5uZXJJbmZvICpjb250ZXh0KQogCQkJfQogCiAJ CQkvKgotCQkJICogSWdub3JlIG90aGVyIHV0aWxpdHkgc3RhdGVtZW50cywgZXhjZXB0IHRob3Nl IChzdWNoIGFzIEVYUExBSU4pCi0JCQkgKiB0aGF0IGNvbnRhaW4gYSBwYXJzZWQtYnV0LW5vdC1w bGFubmVkIHF1ZXJ5LiAgRm9yIHRob3NlLCB3ZQotCQkJICoganVzdCBuZWVkIHRvIHRyYW5zZmVy IG91ciBhdHRlbnRpb24gdG8gdGhlIGNvbnRhaW5lZCBxdWVyeS4KKwkJCSAqIElnbm9yZSBvdGhl ciB1dGlsaXR5IHN0YXRlbWVudHMsIGV4Y2VwdCB0aG9zZSAoc3VjaCBhcyBFWFBMQUlOCisJCQkg KiBvciBMRVQpIHRoYXQgY29udGFpbiBhIHBhcnNlZC1idXQtbm90LXBsYW5uZWQgcXVlcnkuICBG b3IgdGhvc2UsCisJCQkgKiB3ZSBqdXN0IG5lZWQgdG8gdHJhbnNmZXIgb3VyIGF0dGVudGlvbiB0 byB0aGUgY29udGFpbmVkIHF1ZXJ5LgogCQkJICovCiAJCQlxdWVyeSA9IFV0aWxpdHlDb250YWlu c1F1ZXJ5KHF1ZXJ5LT51dGlsaXR5U3RtdCk7CiAJCQlpZiAocXVlcnkgPT0gTlVMTCkKQEAgLTM2 NDYsNiArMzc2MiwxMCBAQCBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llc193YWxrZXIoTm9kZSAq bm9kZSwgUGxhbm5lckluZm8gKmNvbnRleHQpCiAJCQkJCWxhcHBlbmRfb2lkKGNvbnRleHQtPmds b2ItPnJlbGF0aW9uT2lkcywgcnRlLT5yZWxpZCk7CiAJCX0KIAorCQkvKiByZWNvcmQgZGVwZW5k ZW5jeSBvbiB0aGUgdGFyZ2V0IHZhcmlhYmxlIG9mIGEgTEVUIGNvbW1hbmQgKi8KKwkJaWYgKE9p ZElzVmFsaWQocXVlcnktPnJlc3VsdFZhcmlhYmxlKSkKKwkJCXJlY29yZF9wbGFuX3ZhcmlhYmxl X2RlcGVuZGVuY3koY29udGV4dCwgcXVlcnktPnJlc3VsdFZhcmlhYmxlKTsKKwogCQkvKiBBbmQg cmVjdXJzZSBpbnRvIHRoZSBxdWVyeSdzIHN1YmV4cHJlc3Npb25zICovCiAJCXJldHVybiBxdWVy eV90cmVlX3dhbGtlcihxdWVyeSwgZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXNfd2Fsa2VyLAog CQkJCQkJCQkgY29udGV4dCwgMCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cHJlcC9wcmVwam9pbnRyZWUuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2lu dHJlZS5jCmluZGV4IGFkYWQ3ZWE5YTkuLmUyMWMxYjgxOWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGlt aXplci9wcmVwL3ByZXBqb2ludHJlZS5jCkBAIC0xNDMyLDYgKzE0MzIsOSBAQCBwdWxsX3VwX3Np bXBsZV9zdWJxdWVyeShQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqanRub2RlLCBSYW5nZVRibEVu dHJ5ICpydGUsCiAJLyogSWYgc3VicXVlcnkgaGFkIGFueSBSTFMgY29uZGl0aW9ucywgbm93IG1h aW4gcXVlcnkgZG9lcyB0b28gKi8KIAlwYXJzZS0+aGFzUm93U2VjdXJpdHkgfD0gc3VicXVlcnkt Pmhhc1Jvd1NlY3VyaXR5OwogCisJLyogaWYgdGhlIHN1YnF1ZXJ5IGhhZCBzZXNzaW9uIHZhcmlh YmxlcywgdGhlIG1haW4gcXVlcnkgZG9lcyB0b28gKi8KKwlwYXJzZS0+aGFzU2Vzc2lvblZhcmlh YmxlcyB8PSBzdWJxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlczsKKwogCS8qCiAJICogc3VicXVl cnkgd29uJ3QgYmUgcHVsbGVkIHVwIGlmIGl0IGhhc0FnZ3MsIGhhc1dpbmRvd0Z1bmNzLCBvcgog CSAqIGhhc1RhcmdldFNSRnMsIHNvIG5vIHdvcmsgbmVlZGVkIG9uIHRob3NlIGZsYWdzCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMgYi9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKaW5kZXggYmI3YTliNzcyOC4uZWZlODcyYjhhMyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCisrKyBiL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwpAQCAtMjQsNiArMjQsNyBAQAogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfb3BlcmF0b3IuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2Mu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRl ICJleGVjdXRvci9mdW5jdGlvbnMuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC05MzQsNiAr OTM1LDEzIEBAIG1heF9wYXJhbGxlbF9oYXphcmRfd2Fsa2VyKE5vZGUgKm5vZGUsIG1heF9wYXJh bGxlbF9oYXphcmRfY29udGV4dCAqY29udGV4dCkKIAkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0g UEFSQU1fRVhURVJOKQogCQkJcmV0dXJuIGZhbHNlOwogCisJCS8qIHdlIGRvbid0IHN1cHBvcnQg cGFzc2luZyBzZXNzaW9uIHZhcmlhYmxlcyB0byB3b3JrZXJzICovCisJCWlmIChwYXJhbS0+cGFy YW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQl7CisJCQlpZiAobWF4X3BhcmFsbGVsX2hhemFy ZF90ZXN0KFBST1BBUkFMTEVMX1JFU1RSSUNURUQsIGNvbnRleHQpKQorCQkJCXJldHVybiB0cnVl OworCQl9CisKIAkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhFQyB8fAogCQkJIWxp c3RfbWVtYmVyX2ludChjb250ZXh0LT5zYWZlX3BhcmFtX2lkcywgcGFyYW0tPnBhcmFtaWQpKQog CQl7CkBAIC0yMzg4LDYgKzIzOTYsNyBAQCBjb252ZXJ0X3Nhb3BfdG9faGFzaGVkX3Nhb3Bfd2Fs a2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCiAgKgkgIHZhbHVlIG9mIHRoZSBQYXJhbS4K ICAqIDIuIEZvbGQgc3RhYmxlLCBhcyB3ZWxsIGFzIGltbXV0YWJsZSwgZnVuY3Rpb25zIHRvIGNv bnN0YW50cy4KICAqIDMuIFJlZHVjZSBQbGFjZUhvbGRlclZhciBub2RlcyB0byB0aGVpciBjb250 YWluZWQgZXhwcmVzc2lvbnMuCisgKiA0LiBDdXJyZW50IHZhbHVlIG9mIHNlc3Npb24gdmFyaWFi bGUgY2FuIGJlIHVzZWQgZm9yIGVzdGltYXRpb24gdG9vLgogICotLS0tLS0tLS0tLS0tLS0tLS0t LQogICovCiBOb2RlICoKQEAgLTI1MTQsNiArMjUyMywyOSBAQCBldmFsX2NvbnN0X2V4cHJlc3Np b25zX211dGF0b3IoTm9kZSAqbm9kZSwKIAkJCQkJCX0KIAkJCQkJfQogCQkJCX0KKwkJCQllbHNl IGlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFICYmCisJCQkJCQkgY29udGV4 dC0+ZXN0aW1hdGUpCisJCQkJeworCQkJCQlpbnQxNgkJdHlwTGVuOworCQkJCQlib29sCQl0eXBC eVZhbDsKKwkJCQkJRGF0dW0JCXB2YWw7CisJCQkJCWJvb2wJCWlzbnVsbDsKKworCQkJCQlnZXRf dHlwbGVuYnl2YWwocGFyYW0tPnBhcmFtdHlwZSwKKwkJCQkJCQkJCSZ0eXBMZW4sICZ0eXBCeVZh bCk7CisKKwkJCQkJcHZhbCA9IEdldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlQ2hlY2socGFyYW0t PnBhcmFtdmFyaWQsCisJCQkJCQkJCQkJCQkJCSAgICZpc251bGwsCisJCQkJCQkJCQkJCQkJCSAg IHBhcmFtLT5wYXJhbXR5cGUpOworCisJCQkJCXJldHVybiAoTm9kZSAqKSBtYWtlQ29uc3QocGFy YW0tPnBhcmFtdHlwZSwKKwkJCQkJCQkJCQkJICBwYXJhbS0+cGFyYW10eXBtb2QsCisJCQkJCQkJ CQkJCSAgcGFyYW0tPnBhcmFtY29sbGlkLAorCQkJCQkJCQkJCQkgIChpbnQpIHR5cExlbiwKKwkJ CQkJCQkJCQkJICBwdmFsLAorCQkJCQkJCQkJCQkgIGlzbnVsbCwKKwkJCQkJCQkJCQkJICB0eXBC eVZhbCk7CisJCQkJfQogCiAJCQkJLyoKIAkJCQkgKiBOb3QgcmVwbGFjZWFibGUsIHNvIGp1c3Qg Y29weSB0aGUgUGFyYW0gKG5vIG5lZWQgdG8KQEAgLTQ3MTcsNyArNDc0OSw4IEBAIGlubGluZV9m dW5jdGlvbihPaWQgZnVuY2lkLCBPaWQgcmVzdWx0X3R5cGUsIE9pZCByZXN1bHRfY29sbGlkLAog CQlxdWVyeXRyZWUtPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5dHJlZS0+bGltaXRDb3VudCB8fAog CQlxdWVyeXRyZWUtPnNldE9wZXJhdGlvbnMgfHwKLQkJbGlzdF9sZW5ndGgocXVlcnl0cmVlLT50 YXJnZXRMaXN0KSAhPSAxKQorCQkobGlzdF9sZW5ndGgocXVlcnl0cmVlLT50YXJnZXRMaXN0KSAh PSAxKSB8fAorCQlxdWVyeXRyZWUtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJCWdvdG8gZmFpbDsK IAogCS8qIElmIHRoZSBmdW5jdGlvbiByZXN1bHQgaXMgY29tcG9zaXRlLCByZXNvbHZlIGl0ICov CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jIGIvc3JjL2JhY2tlbmQv cGFyc2VyL2FuYWx5emUuYwppbmRleCAzODY0YTY3NWQyLi5kNGE5OTZiY2MyIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9h bmFseXplLmMKQEAgLTI1LDkgKzI1LDEyIEBACiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAogI2lu Y2x1ZGUgImFjY2Vzcy9zeXNhdHRyLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUu aCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv ZGVmcmVtLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1 ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1ZGUg Im5vZGVzL25vZGVGdW5jcy5oIgpAQCAtNTEsNiArNTQsNyBAQAogI2luY2x1ZGUgInV0aWxzL2Jh Y2tlbmRfc3RhdHVzLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1 dGlscy9ndWMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGls cy9yZWwuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogCkBAIC04Myw2ICs4Nyw4IEBA IHN0YXRpYyBRdWVyeSAqdHJhbnNmb3JtQ3JlYXRlVGFibGVBc1N0bXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLAogCQkJCQkJCQkJCSBDcmVhdGVUYWJsZUFzU3RtdCAqc3RtdCk7CiBzdGF0aWMgUXVlcnkg KnRyYW5zZm9ybUNhbGxTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJQ2FsbFN0bXQg KnN0bXQpOworc3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1MZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0 ZSwKKwkJCQkJCQkgICBMZXRTdG10ICpzdG10KTsKIHN0YXRpYyB2b2lkIHRyYW5zZm9ybUxvY2tp bmdDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBRdWVyeSAqcXJ5LAogCQkJCQkJCQkgICBMb2Nr aW5nQ2xhdXNlICpsYywgYm9vbCBwdXNoZWREb3duKTsKICNpZmRlZiBERUJVR19OT0RFX1RFU1RT X0VOQUJMRUQKQEAgLTQxNCw2ICs0MjAsNyBAQCB0cmFuc2Zvcm1TdG10KFBhcnNlU3RhdGUgKnBz dGF0ZSwgTm9kZSAqcGFyc2VUcmVlKQogCQkJY2FzZSBUX1VwZGF0ZVN0bXQ6CiAJCQljYXNlIFRf RGVsZXRlU3RtdDoKIAkJCWNhc2UgVF9NZXJnZVN0bXQ6CisJCQljYXNlIFRfTGV0U3RtdDoKIAkJ CQkodm9pZCkgdGVzdF9yYXdfZXhwcmVzc2lvbl9jb3ZlcmFnZShwYXJzZVRyZWUsIE5VTEwpOwog CQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKQEAgLTQ5Myw2ICs1MDAsMTEgQEAgdHJhbnNmb3JtU3Rt dChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKnBhcnNlVHJlZSkKIAkJCQkJCQkJCSAgIChDYWxs U3RtdCAqKSBwYXJzZVRyZWUpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQly ZXN1bHQgPSB0cmFuc2Zvcm1MZXRTdG10KHBzdGF0ZSwKKwkJCQkJCQkJCSAgKExldFN0bXQgKikg cGFyc2VUcmVlKTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAKIAkJCS8qCkBAIC01NDUsNiAr NTU3LDcgQEAgc3RtdF9yZXF1aXJlc19wYXJzZV9hbmFseXNpcyhSYXdTdG10ICpwYXJzZVRyZWUp CiAJCWNhc2UgVF9TZWxlY3RTdG10OgogCQljYXNlIFRfUmV0dXJuU3RtdDoKIAkJY2FzZSBUX1BM QXNzaWduU3RtdDoKKwkJY2FzZSBUX0xldFN0bXQ6CiAJCQlyZXN1bHQgPSB0cnVlOwogCQkJYnJl YWs7CiAKQEAgLTY1Myw2ICs2NjYsNyBAQCB0cmFuc2Zvcm1EZWxldGVTdG10KFBhcnNlU3RhdGUg KnBzdGF0ZSwgRGVsZXRlU3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRl LT5wX2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNU YXJnZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFz U2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNz aWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0xMDc5LDYgKzEwOTMsNyBA QCB0cmFuc2Zvcm1JbnNlcnRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgSW5zZXJ0U3RtdCAqc3Rt dCkKIAogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFy eS0+aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5LT5oYXNTZXNzaW9u VmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVl cnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTE1NDQsNiArMTU1OSw3IEBAIHRyYW5z Zm9ybVNlbGVjdFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpzdG10KQogCXFy eS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNU YXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0 YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hh c1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlmb3JlYWNoKGwsIHN0bXQtPmxvY2tpbmdDbGF1c2UpCiAJ ewpAQCAtMTc3MCwxMiArMTc4NiwyNDAgQEAgdHJhbnNmb3JtVmFsdWVzQ2xhdXNlKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCkKIAlxcnktPmpvaW50cmVlID0gbWFrZUZyb21F eHByKHBzdGF0ZS0+cF9qb2lubGlzdCwgTlVMTCk7CiAKIAlxcnktPmhhc1N1YkxpbmtzID0gcHN0 YXRlLT5wX2hhc1N1YkxpbmtzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+ cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRl LCBxcnkpOwogCiAJcmV0dXJuIHFyeTsKIH0KIAorLyoKKyAqIHRyYW5zZm9ybUxldFN0bXQgLQor ICoJICB0cmFuc2Zvcm0gYW4gTGV0IFN0YXRlbWVudAorICovCitzdGF0aWMgUXVlcnkgKgordHJh bnNmb3JtTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQpCit7CisJUXVl cnkJICAgKnF1ZXJ5OworCVF1ZXJ5CSAgICpyZXN1bHQ7CisJTGlzdAkgICAqZXhwckxpc3QgPSBO SUw7CisJTGlzdAkgICAqZXhwckxpc3RDb2VyID0gTklMOworCUxpc3RDZWxsICAgKmxjOworCUxp c3RDZWxsICAgKmluZGlyZWN0aW9uX2hlYWQgPSBOVUxMOworCVF1ZXJ5CSAgICpzZWxlY3RRdWVy eTsKKwlPaWQJCQl2YXJpZDsKKwljaGFyCSAgICphdHRybmFtZSA9IE5VTEw7CisJYm9vbAkJbm90 X3VuaXF1ZTsKKwlib29sCQlpc19yb3d0eXBlOworCU9pZAkJCXR5cGlkOworCWludDMyCQl0eXBt b2Q7CisJT2lkCQkJY29sbGlkOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJTGlzdAkgICAqbmFt ZXMgPSBOVUxMOworCWludAkJCWluZGlyZWN0aW9uX3N0YXJ0OworCWludAkJCWkgPSAwOworCisJ LyogdGhlcmUgY2FuJ3QgYmUgYW55IG91dGVyIFdJVEggdG8gd29ycnkgYWJvdXQgKi8KKwlBc3Nl cnQocHN0YXRlLT5wX2N0ZW5hbWVzcGFjZSA9PSBOSUwpOworCisJbmFtZXMgPSBOYW1lc0Zyb21M aXN0KHN0bXQtPnRhcmdldCk7CisKKwkvKiBsb2NrcyB0aGUgdmFyaWFibGUgd2l0aCBhbiBBY2Nl c3NTaGFyZUxvY2sgKi8KKwl2YXJpZCA9IElkZW50aWZ5VmFyaWFibGUobmFtZXMsICZhdHRybmFt ZSwgJm5vdF91bmlxdWUsIGZhbHNlKTsKKwlpZiAobm90X3VuaXF1ZSkKKwkJZXJlcG9ydChFUlJP UiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0FNQklHVU9VU19QQVJBTUVURVIpLAorCQkJCSBlcnJt c2coInRhcmdldCBcIiVzXCIgb2YgTEVUIGNvbW1hbmQgaXMgYW1iaWd1b3VzIiwKKwkJCQkJCU5h bWVMaXN0VG9TdHJpbmcobmFtZXMpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwg c3RtdC0+bG9jYXRpb24pKSk7CisKKwlpZiAoIU9pZElzVmFsaWQodmFyaWQpKQorCQllcmVwb3J0 KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJIGVy cm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgZG9lc24ndCBleGlzdCIsCisJCQkJCQlOYW1l TGlzdFRvU3RyaW5nKG5hbWVzKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHN0 bXQtPmxvY2F0aW9uKSkpOworCisJLyoKKwkgKiBDYWxjdWxhdGUgc3RhcnQgb2YgcG9zc2libGUg cG9zaXRpb24gb2YgYW4gaW5kaXJlY3Rpb24gaW4gbGlzdCwgYW5kCisJICogd2hlbiBpdCBpcyBp bnNpZGUgdGhlIGxpc3QsIHN0b3JlIHBvaW50ZXIgb24gZmlyc3Qgbm9kZSBvZiBpbmRpcmVjdGlv bi4KKwkgKi8KKwlpbmRpcmVjdGlvbl9zdGFydCA9IGxpc3RfbGVuZ3RoKG5hbWVzKSAtIChhdHRy bmFtZSA/IDEgOiAwKTsKKwlpZiAobGlzdF9sZW5ndGgoc3RtdC0+dGFyZ2V0KSA+IGluZGlyZWN0 aW9uX3N0YXJ0KQorCQlpbmRpcmVjdGlvbl9oZWFkID0gbGlzdF9udGhfY2VsbChzdG10LT50YXJn ZXQsIGluZGlyZWN0aW9uX3N0YXJ0KTsKKworCWdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlw bW9kX2NvbGxpZCh2YXJpZCwgJnR5cGlkLCAmdHlwbW9kLCAmY29sbGlkKTsKKworCWlzX3Jvd3R5 cGUgPSB0eXBlX2lzX3Jvd3R5cGUodHlwaWQpOworCisJaWYgKGF0dHJuYW1lICYmICFpc19yb3d0 eXBlKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNU X1RZUEUpLAorCQkJCSBlcnJtc2coInR5cGUgXCIlc1wiIG9mIHRhcmdldCBzZXNzaW9uIHZhcmlh YmxlIFwiJXMuJXNcIiBpcyBub3QgYSBjb21wb3NpdGUgdHlwZSIsCisJCQkJCQlmb3JtYXRfdHlw ZV9iZSh0eXBpZCksCisJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFi bGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZh cmlkKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHN0bXQtPmxvY2F0aW9uKSkp OworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFy aWQsIEdldFVzZXJJZCgpLCBBQ0xfVVBEQVRFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNL X09LKQorCQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9WQVJJQUJMRSwgTmFtZUxp c3RUb1N0cmluZyhuYW1lcykpOworCisJcHN0YXRlLT5wX2V4cHJfa2luZCA9IEVYUFJfS0lORF9M RVRfVEFSR0VUOworCisJLyogd2UgbmVlZCB0byBwb3N0cG9uZSBjb252ZXJzaW9uIG9mICJ1bmtu b3duIiB0byB0ZXh0ICovCisJcHN0YXRlLT5wX3Jlc29sdmVfdW5rbm93bnMgPSBmYWxzZTsKKwor CXNlbGVjdFF1ZXJ5ID0gdHJhbnNmb3JtU3RtdChwc3RhdGUsIHN0bXQtPnF1ZXJ5KTsKKworCS8q IHRoZSBncmFtbWFyIHNob3VsZCBoYXZlIHByb2R1Y2VkIGEgU0VMRUNUICovCisJQXNzZXJ0KElz QShzZWxlY3RRdWVyeSwgUXVlcnkpICYmIHNlbGVjdFF1ZXJ5LT5jb21tYW5kVHlwZSA9PSBDTURf U0VMRUNUKTsKKworCS8qCisJICogR2VuZXJhdGUgYW4gZXhwcmVzc2lvbiBsaXN0IGZvciB0aGUg TEVUIHRoYXQgc2VsZWN0cyBhbGwgdGhlIG5vbi1yZXNqdW5rCisJICogY29sdW1ucyBmcm9tIHRo ZSBzdWJxdWVyeS4KKwkgKi8KKwlleHByTGlzdCA9IE5JTDsKKwlmb3JlYWNoX25vZGUoVGFyZ2V0 RW50cnksIHRsZSwgc2VsZWN0UXVlcnktPnRhcmdldExpc3QpCisJeworCQlpZiAodGxlLT5yZXNq dW5rKQorCQkJY29udGludWU7CisKKwkJZXhwckxpc3QgPSBsYXBwZW5kKGV4cHJMaXN0LCB0bGUt PmV4cHIpOworCX0KKworCS8qIGRvbid0IGFsbG93IG11bHRpY29sdW1uIHJlc3VsdCAqLworCWlm IChsaXN0X2xlbmd0aChleHByTGlzdCkgIT0gMSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJy Y29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJIGVycm1zZ19wbHVyYWwoImFzc2lnbm1l bnQgZXhwcmVzc2lvbiByZXR1cm5lZCAlZCBjb2x1bW4iLAorCQkJCQkJCSAgICJhc3NpZ25tZW50 IGV4cHJlc3Npb24gcmV0dXJuZWQgJWQgY29sdW1ucyIsCisJCQkJCQkJICAgbGlzdF9sZW5ndGgo ZXhwckxpc3QpLAorCQkJCQkJCSAgIGxpc3RfbGVuZ3RoKGV4cHJMaXN0KSksCisJCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsCisJCQkJCQkJCQlleHByTG9jYXRpb24oKE5vZGUgKikgZXhw ckxpc3QpKSkpOworCisJZXhwckxpc3RDb2VyID0gTklMOworCisJZm9yZWFjaChsYywgZXhwckxp c3QpCisJeworCQlFeHByCSAgICpleHByID0gKEV4cHIgKikgbGZpcnN0KGxjKTsKKwkJRXhwcgkg ICAqY29lcmNlZF9leHByOworCQlQYXJhbQkgICAqcGFyYW07CisJCU9pZAkJCWV4cHJ0eXBpZDsK KworCQkvKiBub3cgd2UgY2FuIHJlYWQgdGhlIHR5cGUgb2YgdGhlIGV4cHJlc3Npb24gKi8KKwkJ ZXhwcnR5cGlkID0gZXhwclR5cGUoKE5vZGUgKikgZXhwcik7CisKKwkJcGFyYW0gPSBtYWtlTm9k ZShQYXJhbSk7CisJCXBhcmFtLT5wYXJhbWtpbmQgPSBQQVJBTV9WQVJJQUJMRTsKKwkJcGFyYW0t PnBhcmFtdmFyaWQgPSB2YXJpZDsKKwkJcGFyYW0tPnBhcmFtdHlwZSA9IHR5cGlkOworCQlwYXJh bS0+cGFyYW10eXBtb2QgPSB0eXBtb2Q7CisKKwkJaWYgKGluZGlyZWN0aW9uX2hlYWQpCisJCXsK KwkJCWJvb2wJCXRhcmdldElzQXJyYXk7CisJCQljaGFyCSAgICp0YXJnZXROYW1lOworCisJCQl0 YXJnZXROYW1lID0gZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCk7CisJCQl0YXJnZXRJ c0FycmF5ID0gT2lkSXNWYWxpZChnZXRfZWxlbWVudF90eXBlKHR5cGlkKSk7CisKKwkJCXBzdGF0 ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzID0gdHJ1ZTsKKworCQkJY29lcmNlZF9leHByID0gKEV4 cHIgKikKKwkJCQl0cmFuc2Zvcm1Bc3NpZ25tZW50SW5kaXJlY3Rpb24ocHN0YXRlLAorCQkJCQkJ CQkJCQkgICAoTm9kZSAqKSBwYXJhbSwKKwkJCQkJCQkJCQkJICAgdGFyZ2V0TmFtZSwKKwkJCQkJ CQkJCQkJICAgdGFyZ2V0SXNBcnJheSwKKwkJCQkJCQkJCQkJICAgdHlwaWQsCisJCQkJCQkJCQkJ CSAgIHR5cG1vZCwKKwkJCQkJCQkJCQkJICAgSW52YWxpZE9pZCwKKwkJCQkJCQkJCQkJICAgc3Rt dC0+dGFyZ2V0LAorCQkJCQkJCQkJCQkgICBpbmRpcmVjdGlvbl9oZWFkLAorCQkJCQkJCQkJCQkg ICAoTm9kZSAqKSBleHByLAorCQkJCQkJCQkJCQkgICBDT0VSQ0lPTl9BU1NJR05NRU5ULAorCQkJ CQkJCQkJCQkgICBzdG10LT5sb2NhdGlvbik7CisJCX0KKwkJZWxzZQorCQkJY29lcmNlZF9leHBy ID0gKEV4cHIgKikKKwkJCQljb2VyY2VfdG9fdGFyZ2V0X3R5cGUocHN0YXRlLAorCQkJCQkJCQkJ ICAoTm9kZSAqKSBleHByLAorCQkJCQkJCQkJICBleHBydHlwaWQsCisJCQkJCQkJCQkgIHR5cGlk LCB0eXBtb2QsCisJCQkJCQkJCQkgIENPRVJDSU9OX0FTU0lHTk1FTlQsCisJCQkJCQkJCQkgIENP RVJDRV9JTVBMSUNJVF9DQVNULAorCQkJCQkJCQkJICBzdG10LT5sb2NhdGlvbik7CisKKwkJaWYg KGNvZXJjZWRfZXhwciA9PSBOVUxMKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUo RVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCSBlcnJtc2coInZhcmlhYmxlIFwiJXMu JXNcIiBpcyBvZiB0eXBlICVzLCIKKwkJCQkJCQkiIGJ1dCBleHByZXNzaW9uIGlzIG9mIHR5cGUg JXMiLAorCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l c3BhY2UodmFyaWQpKSwKKwkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSwK KwkJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCksCisJCQkJCQkJZm9ybWF0X3R5cGVfYmUoZXhw cnR5cGlkKSksCisJCQkJCSBlcnJoaW50KCJZb3Ugd2lsbCBuZWVkIHRvIHJld3JpdGUgb3IgY2Fz dCB0aGUgZXhwcmVzc2lvbi4iKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4 cHJMb2NhdGlvbigoTm9kZSAqKSBleHByKSkpKTsKKworCQlleHByTGlzdENvZXIgPSBsYXBwZW5k KGV4cHJMaXN0Q29lciwgY29lcmNlZF9leHByKTsKKwl9CisKKwkvKiBnZW5lcmF0ZSBxdWVyeSdz IHRhcmdldCBsaXN0IHVzaW5nIHRoZSBjb21wdXRlZCBsaXN0IG9mIGV4cHJlc3Npb25zICovCisJ cXVlcnkgPSBtYWtlTm9kZShRdWVyeSk7CisJcXVlcnktPmNvbW1hbmRUeXBlID0gQ01EX1NFTEVD VDsKKworCWZvcmVhY2gobGMsIGV4cHJMaXN0Q29lcikKKwl7CisJCUV4cHIJICAgKmV4cHIgPSAo RXhwciAqKSBsZmlyc3QobGMpOworCQlUYXJnZXRFbnRyeSAqdGxlOworCisJCXRsZSA9IG1ha2VU YXJnZXRFbnRyeShleHByLAorCQkJCQkJCSAgaSArIDEsCisJCQkJCQkJICBGaWd1cmVDb2xuYW1l KChOb2RlICopIGV4cHIpLAorCQkJCQkJCSAgZmFsc2UpOworCQlxdWVyeS0+dGFyZ2V0TGlzdCA9 IGxhcHBlbmQocXVlcnktPnRhcmdldExpc3QsIHRsZSk7CisJfQorCisJLyogZG9uZSBidWlsZGlu ZyB0aGUgcmFuZ2UgdGFibGUgYW5kIGpvaW50cmVlICovCisJcXVlcnktPnJ0YWJsZSA9IHBzdGF0 ZS0+cF9ydGFibGU7CisJcXVlcnktPmpvaW50cmVlID0gbWFrZUZyb21FeHByKHBzdGF0ZS0+cF9q b2lubGlzdCwgTlVMTCk7CisKKwlxdWVyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNU YXJnZXRTUkZzOworCXF1ZXJ5LT5oYXNTdWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsK KwlxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFi bGVzOworCisJLyogdGhpcyBpcyB0b3AtbGV2ZWwgcXVlcnkgKi8KKwlxdWVyeS0+Y2FuU2V0VGFn ID0gdHJ1ZTsKKworCS8qCisJICogU2F2ZSB0YXJnZXQgc2Vzc2lvbiB2YXJpYWJsZSBJRC4gIFRo aXMgdmFsdWUgaXMgdXNlZCBtdWx0aXBsZSB0aW1lczogYnkKKwkgKiB0aGUgcXVlcnkgcmV3cml0 ZXIgKGZvciBnZXR0aW5nIHJlbGF0ZWQgZGVmZXhwciksIGJ5IHBsYW5uZXIgKGZvcgorCSAqIGFj cXVpcmluZyBhbiBBY2Nlc3NTaGFyZUxvY2sgb24gdGFyZ2V0IHZhcmlhYmxlKSwgYW5kIGJ5IHRo ZSBleGVjdXRvcgorCSAqICh3ZSBuZWVkIHRvIGtub3cgdGhlIHRhcmdldCB2YXJpYWJsZSBJRCku CisJICovCisJcXVlcnktPnJlc3VsdFZhcmlhYmxlID0gdmFyaWQ7CisKKwlhc3NpZ25fcXVlcnlf Y29sbGF0aW9ucyhwc3RhdGUsIHF1ZXJ5KTsKKworCS8qCisJICogVGhlIHF1ZXJ5IGlzIGV4ZWN1 dGVkIGFzIHV0aWxpdHkgY29tbWFuZCBieSBuZXN0ZWQgZXhlY3V0b3IgY2FsbC4KKwkgKiBBc3Np Z25lZCBxdWVyeUlkIGlzIHJlcXVpcmVkIGluIHRoaXMgY2FzZS4KKwkgKi8KKwlpZiAoSXNRdWVy eUlkRW5hYmxlZCgpKQorCQlKdW1ibGVRdWVyeShxdWVyeSk7CisKKwlzdG10LT5xdWVyeSA9IChO b2RlICopIHF1ZXJ5OworCisJLyogcmVwcmVzZW50IHRoZSBjb21tYW5kIGFzIGEgdXRpbGl0eSBR dWVyeSAqLworCXJlc3VsdCA9IG1ha2VOb2RlKFF1ZXJ5KTsKKwlyZXN1bHQtPmNvbW1hbmRUeXBl ID0gQ01EX1VUSUxJVFk7CisJcmVzdWx0LT51dGlsaXR5U3RtdCA9IChOb2RlICopIHN0bXQ7CisK KwlyZXR1cm4gcmVzdWx0OworfQorCiAvKgogICogdHJhbnNmb3JtU2V0T3BlcmF0aW9uU3RtdCAt CiAgKgkgIHRyYW5zZm9ybXMgYSBzZXQtb3BlcmF0aW9ucyB0cmVlCkBAIC0yMDIxLDYgKzIyNjUs NyBAQCB0cmFuc2Zvcm1TZXRPcGVyYXRpb25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0 U3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1 bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFy eS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxl cyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJZm9yZWFjaChsLCBsb2NraW5n Q2xhdXNlKQogCXsKQEAgLTI0OTYsNiArMjc0MSw3IEBAIHRyYW5zZm9ybVJldHVyblN0bXQoUGFy c2VTdGF0ZSAqcHN0YXRlLCBSZXR1cm5TdG10ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVuY3Mg PSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRl LT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJ cXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7 CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTI1NjMsNiAr MjgwOSw3IEBAIHRyYW5zZm9ybVVwZGF0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBVcGRhdGVT dG10ICpzdG10KQogCiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNS RnM7CiAJcXJ5LT5oYXNTdWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsKKwlxcnktPmhh c1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWFz c2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMjc1MCw5ICsyOTk3LDE1 IEBAIHRyYW5zZm9ybVBMQXNzaWduU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFBMQXNzaWduU3Rt dCAqc3RtdCkKIAkvKgogCSAqIFRyYW5zZm9ybSB0aGUgdGFyZ2V0IHJlZmVyZW5jZS4gIFR5cGlj YWxseSB3ZSB3aWxsIGdldCBiYWNrIGEgUGFyYW0KIAkgKiBub2RlLCBidXQgdGhlcmUncyBubyBy ZWFzb24gdG8gYmUgdG9vIHBpY2t5IGFib3V0IGl0cyB0eXBlLgorCSAqCisJICogU2Vzc2lvbiB2 YXJpYWJsZXMgc2hvdWxkIG5vdCBiZSB1c2VkIGFzIHRhcmdldCBvZiBhIFBML3BnU1FMIGFzc2ln bgorCSAqIHN0YXRlbWVudC4gIFNvIHdlIHNob3VsZCB1c2UgYSBkZWRpY2F0ZWQgZXhwcmVzc2lv biBraW5kIGFuZCBkaXNhbGxvdworCSAqIHNlc3Npb24gdmFyaWFibGVzIHRoZXJlLiAgVGhlIGRl ZGljYXRlZCBjb250ZXh0IGFsbG93cyB0byBlbGltaW5hdGUKKwkgKiB1bmRlc2lyYWJsZSB3YXJu aW5ncyBhYm91dCB0aGUgcG9zc2liaWxpdHkgb2YgYSB0YXJnZXQgUEwvcGdTUUwgdmFyaWFibGUK KwkgKiBzaGFkb3dpbmcgYSBzZXNzaW9uIHZhcmlhYmxlLgogCSAqLwogCXRhcmdldCA9IHRyYW5z Zm9ybUV4cHIocHN0YXRlLCAoTm9kZSAqKSBjcmVmLAotCQkJCQkJICAgRVhQUl9LSU5EX1VQREFU RV9UQVJHRVQpOworCQkJCQkJICAgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQpOwogCXRhcmdldHR5 cGUgPSBleHByVHlwZSh0YXJnZXQpOwogCXRhcmdldHR5cG1vZCA9IGV4cHJUeXBtb2QodGFyZ2V0 KTsKIAl0YXJnZXRjb2xsYXRpb24gPSBleHByQ29sbGF0aW9uKHRhcmdldCk7CkBAIC0yNzk0LDYg KzMwNDcsMTAgQEAgdHJhbnNmb3JtUExBc3NpZ25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUExB c3NpZ25TdG10ICpzdG10KQogCSAqLwogCXR5cGVfaWQgPSBleHByVHlwZSgoTm9kZSAqKSB0bGUt PmV4cHIpOwogCisJLyoKKwkgKiBGb3IgaW5kaXJlY3Rpb24gcHJvY2Vzc2luZyBhbmQgYWRkaXRp b25hbCBjYXN0cyB3ZSBjYW4gdXNlIGV4cHJfa2luZAorCSAqIEVYUFJfS0lORF9VUERBVEVfVEFS R0VULgorCSAqLwogCXBzdGF0ZS0+cF9leHByX2tpbmQgPSBFWFBSX0tJTkRfVVBEQVRFX1RBUkdF VDsKIAogCWlmIChpbmRpcmVjdGlvbikKQEAgLTI5MzYsNiArMzE5Myw4IEBAIHRyYW5zZm9ybVBM QXNzaWduU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFBMQXNzaWduU3RtdCAqc3RtdCkKIAkJCQkJ CQkgICAoTG9ja2luZ0NsYXVzZSAqKSBsZmlyc3QobCksIGZhbHNlKTsKIAl9CiAKKwlxcnktPmhh c1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKKwogCWFz c2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIAogCS8qIHRoaXMgbXVzdCBiZSBk b25lIGFmdGVyIGNvbGxhdGlvbnMsIGZvciByZWxpYWJsZSBjb21wYXJpc29uIG9mIGV4cHJzICov CkBAIC0zMjA5LDYgKzM0NjgsMTQgQEAgdHJhbnNmb3JtQ2FsbFN0bXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBDYWxsU3RtdCAqc3RtdCkKIAkJCQkJCQkgdHJ1ZSwKIAkJCQkJCQkgc3RtdC0+ZnVuY2Nh bGwtPmxvY2F0aW9uKTsKIAorCS8qCisJICogVGhlIGFyZ3VtZW50cyBvZiBDQUxMIHN0YXRlbWVu dCBhcmUgZXZhbHVhdGVkIGJ5IGEgZGlyZWN0IGV4cHJlc3Npb24KKwkgKiBleGVjdXRvciBjYWxs LiAgVGhpcyBwYXRoIGlzIHVuc3VwcG9ydGVkIHlldCwgc28gYmxvY2sgaXQuICBJdCB3aWxsIGJl CisJICogZW5hYmxlZCBsYXRlci4KKwkgKi8KKwlpZiAocHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJp YWJsZXMpCisJCWVsb2coRVJST1IsICJzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFz IGFuIGFyZ3VtZW50Iik7CisKIAlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgbm9kZSk7 CiAKIAlmZXhwciA9IGNhc3ROb2RlKEZ1bmNFeHByLCBub2RlKTsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDg5 ZmEyM2MyZGQuLjhhZTM2OGM1MTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjkzLDcgKzI5Myw3IEBAIHN0 YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICph bGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCURyb3BUcmFuc2Zvcm1TdG10CiAJCURyb3BVc2VyTWFw cGluZ1N0bXQgRXhwbGFpblN0bXQgRmV0Y2hTdG10CiAJCUdyYW50U3RtdCBHcmFudFJvbGVTdG10 IEltcG9ydEZvcmVpZ25TY2hlbWFTdG10IEluZGV4U3RtdCBJbnNlcnRTdG10Ci0JCUxpc3RlblN0 bXQgTG9hZFN0bXQgTG9ja1N0bXQgTWVyZ2VTdG10IE5vdGlmeVN0bXQgRXhwbGFpbmFibGVTdG10 IFByZXBhcmFibGVTdG10CisJCUxldFN0bXQgTGlzdGVuU3RtdCBMb2FkU3RtdCBMb2NrU3RtdCBN ZXJnZVN0bXQgTm90aWZ5U3RtdCBFeHBsYWluYWJsZVN0bXQgUHJlcGFyYWJsZVN0bXQKIAkJQ3Jl YXRlRnVuY3Rpb25TdG10IEFsdGVyRnVuY3Rpb25TdG10IFJlaW5kZXhTdG10IFJlbW92ZUFnZ3JT dG10CiAJCVJlbW92ZUZ1bmNTdG10IFJlbW92ZU9wZXJTdG10IFJlbmFtZVN0bXQgUmV0dXJuU3Rt dCBSZXZva2VTdG10IFJldm9rZVJvbGVTdG10CiAJCVJ1bGVBY3Rpb25TdG10IFJ1bGVBY3Rpb25T dG10T3JFbXB0eSBSdWxlU3RtdApAQCAtNDQzLDYgKzQ0Myw3IEBAIHN0YXRpYyBOb2RlICptYWtl UmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpx dWVyeSk7CiAJCQkJVHJpZ2dlclRyYW5zaXRpb25zIFRyaWdnZXJSZWZlcmVuY2luZwogCQkJCXZh Y3V1bV9yZWxhdGlvbl9saXN0IG9wdF92YWN1dW1fcmVsYXRpb25fbGlzdAogCQkJCWRyb3Bfb3B0 aW9uX2xpc3QgcHViX29ial9saXN0CisJCQkJbGV0X3RhcmdldAogCiAldHlwZSA8bm9kZT4Jb3B0 X3JvdXRpbmVfYm9keQogJXR5cGUgPGdyb3VwY2xhdXNlPiBncm91cF9jbGF1c2UKQEAgLTczNCw3 ICs3MzUsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVs bmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCUtFRVAgS0VZIEtFWVMKIAogCUxB QkVMIExBTkdVQUdFIExBUkdFX1AgTEFTVF9QIExBVEVSQUxfUAotCUxFQURJTkcgTEVBS1BST09G IExFQVNUIExFRlQgTEVWRUwgTElLRSBMSU1JVCBMSVNURU4gTE9BRCBMT0NBTAorCUxFQURJTkcg TEVBS1BST09GIExFQVNUIExFRlQgTEVUIExFVkVMIExJS0UgTElNSVQgTElTVEVOIExPQUQgTE9D QUwKIAlMT0NBTFRJTUUgTE9DQUxUSU1FU1RBTVAgTE9DQVRJT04gTE9DS19QIExPQ0tFRCBMT0dH RUQKIAogCU1BUFBJTkcgTUFUQ0ggTUFUQ0hFRCBNQVRFUklBTElaRUQgTUFYVkFMVUUgTUVSR0Ug TUVSR0VfQUNUSU9OIE1FVEhPRApAQCAtMTA4MSw2ICsxMDgyLDcgQEAgc3RtdDoKIAkJCXwgSW1w b3J0Rm9yZWlnblNjaGVtYVN0bXQKIAkJCXwgSW5kZXhTdG10CiAJCQl8IEluc2VydFN0bXQKKwkJ CXwgTGV0U3RtdAogCQkJfCBMaXN0ZW5TdG10CiAJCQl8IFJlZnJlc2hNYXRWaWV3U3RtdAogCQkJ fCBMb2FkU3RtdApAQCAtMTI3NzAsNiArMTI3NzIsNDcgQEAgb3B0X2hvbGQ6IC8qIEVNUFRZICov CQkJCQkJeyAkJCA9IDA7IH0KIAkJCXwgV0lUSE9VVCBIT0xECQkJCQl7ICQkID0gMDsgfQogCQk7 CiAKKy8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqCQlRVUVSWToKKyAqCQkJCUxFVCBTVEFU RU1FTlQKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCitMZXRTdG10OglMRVQgbGV0X3Rhcmdl dCAnPScgYV9leHByCisJCQkJeworCQkJCQlMZXRTdG10CSAgICpuID0gbWFrZU5vZGUoTGV0U3Rt dCk7CisJCQkJCVNlbGVjdFN0bXQgKnNlbGVjdDsKKwkJCQkJUmVzVGFyZ2V0ICAqcmVzOworCisJ CQkJCW4tPnRhcmdldCA9ICQyOworCisJCQkJCXNlbGVjdCA9IG1ha2VOb2RlKFNlbGVjdFN0bXQp OworCQkJCQlyZXMgPSBtYWtlTm9kZShSZXNUYXJnZXQpOworCisJCQkJCS8qIGNyZWF0ZSB0YXJn ZXQgbGlzdCBmb3IgaW1wbGljaXQgcXVlcnkgKi8KKwkJCQkJcmVzLT5uYW1lID0gTlVMTDsKKwkJ CQkJcmVzLT5pbmRpcmVjdGlvbiA9IE5JTDsKKwkJCQkJcmVzLT52YWwgPSAoTm9kZSAqKSAkNDsK KwkJCQkJcmVzLT5sb2NhdGlvbiA9IEA0OworCisJCQkJCXNlbGVjdC0+dGFyZ2V0TGlzdCA9IGxp c3RfbWFrZTEocmVzKTsKKwkJCQkJbi0+cXVlcnkgPSAoTm9kZSAqKSBzZWxlY3Q7CisKKwkJCQkJ bi0+bG9jYXRpb24gPSBAMjsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJOworCits ZXRfdGFyZ2V0OgorCQkJQ29sSWQgb3B0X2luZGlyZWN0aW9uCisJCQkJeworCQkJCQkkJCA9IGxp c3RfbWFrZTEobWFrZVN0cmluZygkMSkpOworCQkJCQlpZiAoJDIpCisJCQkJCQkgICQkID0gbGlz dF9jb25jYXQoJCQsCisJCQkJCQkJCQkJICAgY2hlY2tfaW5kaXJlY3Rpb24oJDIsIHl5c2Nhbm5l cikpOworCQkJCX0KKwkJOworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKgkJUVVFUlk6 CkBAIC0xNzg0MCw2ICsxNzg4Myw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgTEFSR0Vf UAogCQkJfCBMQVNUX1AKIAkJCXwgTEVBS1BST09GCisJCQl8IExFVAogCQkJfCBMRVZFTAogCQkJ fCBMSVNURU4KIAkJCXwgTE9BRApAQCAtMTg0NTEsNiArMTg0OTUsNyBAQCBiYXJlX2xhYmVsX2tl eXdvcmQ6CiAJCQl8IExFQUtQUk9PRgogCQkJfCBMRUFTVAogCQkJfCBMRUZUCisJCQl8IExFVAog CQkJfCBMRVZFTAogCQkJfCBMSUtFCiAJCQl8IExJU1RFTgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2FnZy5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCmlu ZGV4IDA0YjQ1OTZhNjUuLjk4ODM5ZjEyNDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9hZ2cuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKQEAgLTU4 MCw2ICs1ODAsMTEgQEAgY2hlY2tfYWdnbGV2ZWxzX2FuZF9jb25zdHJhaW50cyhQYXJzZVN0YXRl ICpwc3RhdGUsIE5vZGUgKmV4cHIpCiAJCQllcnJraW5kID0gdHJ1ZTsKIAkJCWJyZWFrOwogCisJ CWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJH RVQ6CisJCQllcnJraW5kID0gdHJ1ZTsKKwkJCWJyZWFrOworCiAJCQkvKgogCQkJICogVGhlcmUg aXMgaW50ZW50aW9uYWxseSBubyBkZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCiAJCQkg KiBjb21waWxlciB3aWxsIHdhcm4gaWYgd2UgYWRkIGEgbmV3IFBhcnNlRXhwcktpbmQgd2l0aG91 dApAQCAtOTcwLDYgKzk3NSwxMCBAQCB0cmFuc2Zvcm1XaW5kb3dGdW5jQ2FsbChQYXJzZVN0YXRl ICpwc3RhdGUsIFdpbmRvd0Z1bmMgKndmdW5jLAogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJL OgogCQkJZXJya2luZCA9IHRydWU7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdO X1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKKwkJCWVycmtpbmQgPSB0cnVl OworCQkJYnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRl ZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4 IGMyODA2Mjk3YWEuLmFiYTUyNTllMDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtMTcs NiArMTcsNyBAQAogCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hZ2dyZWdhdGUuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgog I2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgpAQCAtMzMsMTEgKzM0LDEzIEBACiAjaW5jbHVk ZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3Rhcmdl dC5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCisjaW5jbHVkZSAic3RvcmFnZS9s bWdyLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9kYXRl LmgiCiAjaW5jbHVkZSAidXRpbHMvZm1ncm9pZHMuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2Fj aGUuaCIKICNpbmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKKyNpbmNsdWRlICJ1dGlscy90eXBj YWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3htbC5oIgogCiAvKiBHVUMgcGFyYW1ldGVycyAqLwpA QCAtMTA2LDYgKzEwOSw5IEBAIHN0YXRpYyBFeHByICptYWtlX2Rpc3RpbmN0X29wKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgTGlzdCAqb3BuYW1lLAogCQkJCQkJCSAgTm9kZSAqbHRyZWUsIE5vZGUgKnJ0 cmVlLCBpbnQgbG9jYXRpb24pOwogc3RhdGljIE5vZGUgKm1ha2VfbnVsbHRlc3RfZnJvbV9kaXN0 aW5jdChQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJIEFfRXhwciAqZGlzdGluY3RhLCBO b2RlICphcmcpOworc3RhdGljIE5vZGUgKm1ha2VQYXJhbVNlc3Npb25WYXJpYWJsZShQYXJzZVN0 YXRlICpwc3RhdGUsCisJCQkJCQkJCQkgIE9pZCB2YXJpZCwgT2lkIHR5cGlkLCBpbnQzMiB0eXBt b2QsIE9pZCBjb2xsaWQsCisJCQkJCQkJCQkgIGNoYXIgKmF0dHJuYW1lLCBpbnQgbG9jYXRpb24p OwogCiAKIC8qCkBAIC00OTksNiArNTA1LDg5IEBAIHRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKQogCXJldHVybiByZXN1bHQ7CiB9CiAK Ky8qCisgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIGV4cHJlc3Npb24ga2luZCBpcyB2YWxp ZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZXMuCisgKiBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgdXNl ZCBldmVyeXdoZXJlIHdoZXJlIGV4dGVybmFsIHBhcmFtZXRlcnMgY2FuIGJlCisgKiB1c2VkLiAg U2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdCBhbGxvd2VkIGluIERETCBjb21tYW5kcyBvciBpbiBj b25zdHJhaW50cy4KKyAqCisgKiBBbiBpZGVudGlmaWVyIGNhbiBiZSBwYXJzZWQgYXMgYSBzZXNz aW9uIHZhcmlhYmxlIG9ubHkgZm9yIGV4cHJlc3Npb24ga2luZHMKKyAqIHdoZXJlIHNlc3Npb24g dmFyaWFibGVzIGFyZSBhbGxvd2VkLiAgVGhpcyBpcyB0aGUgcHJpbWFyeSB1c2FnZSBvZiB0aGlz CisgKiBmdW5jdGlvbi4KKyAqCisgKiBUaGUgc2Vjb25kIHVzYWdlIG9mIHRoaXMgZnVuY3Rpb24g aXMgdG8gZGVjaWRlIHdoZXRoZXIgYSAiY29sdW1uIGRvZXMgbm90CisgKiBleGlzdCIgb3IgYSAi Y29sdW1uIG9yIHZhcmlhYmxlIGRvZXMgbm90IGV4aXN0IiBlcnJvciBtZXNzYWdlIHNob3VsZCBi ZQorICogcHJpbnRlZC4gIFdoZW4gd2UgYXJlIGluIGFuIGV4cHJlc3Npb24gd2hlcmUgc2Vzc2lv biB2YXJpYWJsZXMgY2Fubm90IGJlCisgKiB1c2VkLCB3ZSByYWlzZSB0aGUgZmlyc3QgZm9ybSBv ZiBlcnJvciBtZXNzYWdlLgorICovCitzdGF0aWMgYm9vbAorZXhwcl9raW5kX2FsbG93c19zZXNz aW9uX3ZhcmlhYmxlcyhQYXJzZUV4cHJLaW5kIHBfZXhwcl9raW5kKQoreworCWJvb2wJCXJlc3Vs dCA9IGZhbHNlOworCisJc3dpdGNoIChwX2V4cHJfa2luZCkKKwl7CisJCWNhc2UgRVhQUl9LSU5E X05PTkU6CisJCQlBc3NlcnQoZmFsc2UpOwkJLyogY2FuJ3QgaGFwcGVuICovCisJCQlyZXR1cm4g ZmFsc2U7CisKKwkJLyogc2Vzc2lvbiB2YXJpYWJsZXMgYWxsb3dlZCAqLworCQljYXNlIEVYUFJf S0lORF9PVEhFUjoKKwkJY2FzZSBFWFBSX0tJTkRfSk9JTl9PTjoKKwkJY2FzZSBFWFBSX0tJTkRf RlJPTV9TVUJTRUxFQ1Q6CisJCWNhc2UgRVhQUl9LSU5EX0ZST01fRlVOQ1RJT046CisJCWNhc2Ug RVhQUl9LSU5EX1dIRVJFOgorCQljYXNlIEVYUFJfS0lORF9IQVZJTkc6CisJCWNhc2UgRVhQUl9L SU5EX0ZJTFRFUjoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX1BBUlRJVElPTjoKKwkJY2FzZSBF WFBSX0tJTkRfV0lORE9XX09SREVSOgorCQljYXNlIEVYUFJfS0lORF9XSU5ET1dfRlJBTUVfUkFO R0U6CisJCWNhc2UgRVhQUl9LSU5EX1dJTkRPV19GUkFNRV9ST1dTOgorCQljYXNlIEVYUFJfS0lO RF9XSU5ET1dfRlJBTUVfR1JPVVBTOgorCQljYXNlIEVYUFJfS0lORF9TRUxFQ1RfVEFSR0VUOgor CQljYXNlIEVYUFJfS0lORF9JTlNFUlRfVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9VUERBVEVf U09VUkNFOgorCQljYXNlIEVYUFJfS0lORF9VUERBVEVfVEFSR0VUOgorCQljYXNlIEVYUFJfS0lO RF9NRVJHRV9XSEVOOgorCQljYXNlIEVYUFJfS0lORF9NRVJHRV9SRVRVUk5JTkc6CisJCWNhc2Ug RVhQUl9LSU5EX0dST1VQX0JZOgorCQljYXNlIEVYUFJfS0lORF9PUkRFUl9CWToKKwkJY2FzZSBF WFBSX0tJTkRfRElTVElOQ1RfT046CisJCWNhc2UgRVhQUl9LSU5EX0xJTUlUOgorCQljYXNlIEVY UFJfS0lORF9PRkZTRVQ6CisJCWNhc2UgRVhQUl9LSU5EX1JFVFVSTklORzoKKwkJY2FzZSBFWFBS X0tJTkRfVkFMVUVTOgorCQljYXNlIEVYUFJfS0lORF9WQUxVRVNfU0lOR0xFOgorCQljYXNlIEVY UFJfS0lORF9BTFRFUl9DT0xfVFJBTlNGT1JNOgorCQljYXNlIEVYUFJfS0lORF9FWEVDVVRFX1BB UkFNRVRFUjoKKwkJY2FzZSBFWFBSX0tJTkRfUE9MSUNZOgorCQljYXNlIEVYUFJfS0lORF9DQUxM X0FSR1VNRU5UOgorCQljYXNlIEVYUFJfS0lORF9DT1BZX1dIRVJFOgorCQljYXNlIEVYUFJfS0lO RF9MRVRfVEFSR0VUOgorCQkJcmVzdWx0ID0gdHJ1ZTsKKwkJCWJyZWFrOworCisJCS8qIHNlc3Np b24gdmFyaWFibGVzIG5vdCBhbGxvd2VkICovCisJCWNhc2UgRVhQUl9LSU5EX0NIRUNLX0NPTlNU UkFJTlQ6CisJCWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKKwkJY2FzZSBFWFBSX0tJTkRf Q09MVU1OX0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CisJCWNh c2UgRVhQUl9LSU5EX0lOREVYX0VYUFJFU1NJT046CisJCWNhc2UgRVhQUl9LSU5EX0lOREVYX1BS RURJQ0FURToKKwkJY2FzZSBFWFBSX0tJTkRfU1RBVFNfRVhQUkVTU0lPTjoKKwkJY2FzZSBFWFBS X0tJTkRfVFJJR0dFUl9XSEVOOgorCQljYXNlIEVYUFJfS0lORF9QQVJUSVRJT05fQk9VTkQ6CisJ CWNhc2UgRVhQUl9LSU5EX1BBUlRJVElPTl9FWFBSRVNTSU9OOgorCQljYXNlIEVYUFJfS0lORF9H RU5FUkFURURfQ09MVU1OOgorCQljYXNlIEVYUFJfS0lORF9KT0lOX1VTSU5HOgorCQljYXNlIEVY UFJfS0lORF9DWUNMRV9NQVJLOgorCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQkJ cmVzdWx0ID0gZmFsc2U7CisJCQlicmVhazsKKwl9CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAv KgogICogVHJhbnNmb3JtIGEgQ29sdW1uUmVmLgogICoKQEAgLTU3NSw2ICs2NjQsOCBAQCB0cmFu c2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJCWNh c2UgRVhQUl9LSU5EX0NPUFlfV0hFUkU6CiAJCWNhc2UgRVhQUl9LSU5EX0dFTkVSQVRFRF9DT0xV TU46CiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CisJCWNhc2UgRVhQUl9LSU5EX0FTU0lH Tl9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CiAJCQkvKiBva2F5ICovCiAJ CQlicmVhazsKIApAQCAtODQ3LDggKzkzOCw2MSBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VT dGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJfQogCiAJLyoKLQkgKiBUaHJvdyBlcnJv ciBpZiBubyB0cmFuc2xhdGlvbiBmb3VuZC4KKwkgKiBUaGVyZSBhcmUgY29udGV4dHMgd2hlcmUg c2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdCBhbGxvd2VkLiAgV2UgZG9uJ3QKKwkgKiBuZWVkIHRv IGlkZW50aWZ5IHNlc3Npb24gdmFyaWFibGVzIGluIHN1Y2ggYSBjb250ZXh0LCBidXQgaWRlbnRp ZnlpbmcKKwkgKiB0aGVtIGFsbG93cyB1cyB0byByYWlzZSBtZWFuaW5nZnVsIGVycm9yIG1lc3Nh Z2VzIGxpa2UgInlvdSBjYW5ub3QgdXNlCisJICogc2Vzc2lvbiB2YXJpYWJsZXMgaGVyZSIuCiAJ ICovCisJaWYgKGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMocHN0YXRlLT5wX2V4 cHJfa2luZCkpCisJeworCQlPaWQJCQl2YXJpZCA9IEludmFsaWRPaWQ7CisJCWNoYXIJICAgKmF0 dHJuYW1lID0gTlVMTDsKKwkJYm9vbAkJbm90X3VuaXF1ZTsKKworCQkvKiAtLS0tLQorCQkgKiBT ZXNzaW9uIHZhcmlhYmxlcyBhcmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGluZSB2YXJpYWJs ZXMgb3IKKwkJICogcm91dGluZSBhcmd1bWVudHMuICBXZSBjZXJ0YWlubHkgZG9uJ3Qgd2FudCB0 byB1c2UgYSBzZXNzaW9uIHZhcmlhYmxlCisJCSAqIHdoZW4gaXQgaXMgZXhhY3RseSBzaGFkb3dl ZCwgYnV0IGEgUlRFIGxpa2UgdGhpcyBpcyBjb25jZWl2YWJsZToKKwkJICoKKwkJICogQ1JFQVRF IFRZUEUgdCBBUyAoYyBpbnQpOworCQkgKiBDUkVBVEUgVkFSSUFCTEUgZm9vIEFTIHQ7CisJCSAq IENSRUFURSBUQUJMRSBmb28oYSBpbnQsIGIgaW50KTsKKwkJICoKKwkJICogU0VMRUNUIGZvby5h LCBmb28uYiwgZm9vLmMgRlJPTSBmb287CisJCSAqCisJCSAqIEhvd2V2ZXIsIHRoYXQgaXMgdmVy eSBjb25mdXNpbmcsIHNvIHdlIGRpc2FsbG93IGl0LiAgV2UgZG9uJ3QgdHJ5IHRvCisJCSAqIGlk ZW50aWZ5IGEgdmFyaWFibGUgaWYgd2Uga25vdyB0aGF0IGl0IHdvdWxkIGJlIHNoYWRvd2VkLgor CQkgKiAtLS0tLQorCQkgKi8KKwkJaWYgKCFub2RlICYmICEocmVsbmFtZSAmJiBjcmVyciA9PSBD UkVSUl9OT19DT0xVTU4pKQorCQl7CisJCQkvKiB0YWtlcyBhbiBBY2Nlc3NTaGFyZUxvY2sgb24g dGhlIHNlc3Npb24gdmFyaWFibGUgKi8KKwkJCXZhcmlkID0gSWRlbnRpZnlWYXJpYWJsZShjcmVm LT5maWVsZHMsICZhdHRybmFtZSwgJm5vdF91bmlxdWUsIGZhbHNlKTsKKworCQkJaWYgKE9pZElz VmFsaWQodmFyaWQpKQorCQkJeworCQkJCU9pZAkJCXR5cGlkOworCQkJCWludDMyCQl0eXBtb2Q7 CisJCQkJT2lkCQkJY29sbGlkOworCisJCQkJaWYgKG5vdF91bmlxdWUpCisJCQkJCWVyZXBvcnQo RVJST1IsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9BTUJJR1VPVVNfUEFSQU1FVEVSKSwKKwkJ CQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSBcIiVzXCIgaXMgYW1iaWd1 b3VzIiwKKwkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcoY3JlZi0+ZmllbGRzKSksCisJCQkJCQkJ IHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGNyZWYtPmxvY2F0aW9uKSkpOworCisJCQkJZ2V0 X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKHZhcmlkLCAmdHlwaWQsICZ0eXBt b2QsCisJCQkJCQkJCQkJCQkJCSZjb2xsaWQpOworCisJCQkJbm9kZSA9IG1ha2VQYXJhbVNlc3Np b25WYXJpYWJsZShwc3RhdGUsCisJCQkJCQkJCQkJCQl2YXJpZCwgdHlwaWQsIHR5cG1vZCwgY29s bGlkLAorCQkJCQkJCQkJCQkJYXR0cm5hbWUsIGNyZWYtPmxvY2F0aW9uKTsKKwkJCX0KKwkJfQor CX0KKworCS8qIHRocm93IGFuIGVycm9yIGlmIG5vIHRyYW5zbGF0aW9uIHdhcyBmb3VuZCAqLwog CWlmIChub2RlID09IE5VTEwpCiAJewogCQlzd2l0Y2ggKGNyZXJyKQpAQCAtODgwLDYgKzEwMjQs NzIgQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpj cmVmKQogCXJldHVybiBub2RlOwogfQogCisvKgorICogR2VuZXJhdGUgcGFyYW0gdmFyaWFibGUg Zm9yIHJlZmVyZW5jZSB0byBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3N0YXRpYyBOb2RlICoKK21h a2VQYXJhbVNlc3Npb25WYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkgT2lkIHZh cmlkLCBPaWQgdHlwaWQsIGludDMyIHR5cG1vZCwgT2lkIGNvbGxpZCwKKwkJCQkJCSBjaGFyICph dHRybmFtZSwgaW50IGxvY2F0aW9uKQoreworCVBhcmFtCSAgICpwYXJhbTsKKworCXBhcmFtID0g bWFrZU5vZGUoUGFyYW0pOworCisJcGFyYW0tPnBhcmFta2luZCA9IFBBUkFNX1ZBUklBQkxFOwor CXBhcmFtLT5wYXJhbXZhcmlkID0gdmFyaWQ7CisJcGFyYW0tPnBhcmFtdHlwZSA9IHR5cGlkOwor CXBhcmFtLT5wYXJhbXR5cG1vZCA9IHR5cG1vZDsKKwlwYXJhbS0+cGFyYW1jb2xsaWQgPSBjb2xs aWQ7CisKKwlwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcyA9IHRydWU7CisKKwlpZiAoYXR0 cm5hbWUgIT0gTlVMTCkKKwl7CisJCVR1cGxlRGVzYwl0dXBkZXNjOworCQlpbnQJCQlpOworCisJ CXR1cGRlc2MgPSBsb29rdXBfcm93dHlwZV90dXBkZXNjX25vZXJyb3IodHlwaWQsIHR5cG1vZCwg dHJ1ZSk7CisJCWlmICghdHVwZGVzYykKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2Rl KEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCQkgZXJybXNnKCJ2YXJpYWJsZSBcIiVz LiVzXCIgaXMgb2YgdHlwZSBcIiVzXCIsIHdoaWNoIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlIiwK KwkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNl KHZhcmlkKSksCisJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCksCisJCQkJ CQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3Rh dGUsIGxvY2F0aW9uKSkpOworCisJCWZvciAoaSA9IDA7IGkgPCB0dXBkZXNjLT5uYXR0czsgaSsr KQorCQl7CisJCQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHQgPSBUdXBsZURlc2NBdHRyKHR1cGRlc2Ms IGkpOworCisJCQlpZiAoc3RyY21wKGF0dHJuYW1lLCBOYW1lU3RyKGF0dC0+YXR0bmFtZSkpID09 IDAgJiYKKwkJCQkhYXR0LT5hdHRpc2Ryb3BwZWQpCisJCQl7CisJCQkJLyogc3VjY2Vzcywgc28g Z2VuZXJhdGUgYSBGaWVsZFNlbGVjdCBleHByZXNzaW9uICovCisJCQkJRmllbGRTZWxlY3QgKmZz ZWxlY3QgPSBtYWtlTm9kZShGaWVsZFNlbGVjdCk7CisKKwkJCQlmc2VsZWN0LT5hcmcgPSAoRXhw ciAqKSBwYXJhbTsKKwkJCQlmc2VsZWN0LT5maWVsZG51bSA9IGkgKyAxOworCQkJCWZzZWxlY3Qt PnJlc3VsdHR5cGUgPSBhdHQtPmF0dHR5cGlkOworCQkJCWZzZWxlY3QtPnJlc3VsdHR5cG1vZCA9 IGF0dC0+YXR0dHlwbW9kOworCQkJCS8qIHNhdmUgYXR0cmlidXRlJ3MgY29sbGF0aW9uIGZvciBw YXJzZV9jb2xsYXRlLmMgKi8KKwkJCQlmc2VsZWN0LT5yZXN1bHRjb2xsaWQgPSBhdHQtPmF0dGNv bGxhdGlvbjsKKworCQkJCVJlbGVhc2VUdXBsZURlc2ModHVwZGVzYyk7CisJCQkJcmV0dXJuIChO b2RlICopIGZzZWxlY3Q7CisJCQl9CisJCX0KKworCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJj b2RlKEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCisJCQkJIGVycm1zZygiY291bGQgbm90IGlk ZW50aWZ5IGNvbHVtbiBcIiVzXCIgaW4gdmFyaWFibGUiLCBhdHRybmFtZSksCisJCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOworCX0KKworCXJldHVybiAoTm9kZSAq KSBwYXJhbTsKK30KKwogc3RhdGljIE5vZGUgKgogdHJhbnNmb3JtUGFyYW1SZWYoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBQYXJhbVJlZiAqcHJlZikKIHsKQEAgLTE4MTUsNiArMjAyNSw3IEBAIHRyYW5z Zm9ybVN1YkxpbmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJsaW5rKQogCQljYXNl IEVYUFJfS0lORF9WQUxVRVM6CiAJCWNhc2UgRVhQUl9LSU5EX1ZBTFVFU19TSU5HTEU6CiAJCWNh c2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CiAJ CQkvKiBva2F5ICovCiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ0hFQ0tfQ09OU1RSQUlO VDoKQEAgLTE4NTgsNiArMjA2OSw5IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBTdWJMaW5rICpzdWJsaW5rKQogCQljYXNlIEVYUFJfS0lORF9HRU5FUkFURURfQ09MVU1O OgogCQkJZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBjb2x1bW4gZ2VuZXJhdGlvbiBl eHByZXNzaW9uIik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoK KwkJCWVyciA9IF8oImNhbm5vdCB1c2Ugc3VicXVlcnkgYXMgdGFyZ2V0IG9mIGFzc2lnbiBzdGF0 ZW1lbnQiKTsKKwkJCWJyZWFrOwogCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9uYWxs eSBubyBkZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCkBAIC0zMTk3LDYgKzM0MTEsMTAg QEAgUGFyc2VFeHByS2luZE5hbWUoUGFyc2VFeHByS2luZCBleHByS2luZCkKIAkJCXJldHVybiAi R0VORVJBVEVEIEFTIjsKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKIAkJCXJldHVybiAi Q1lDTEUiOworCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQkJcmV0dXJuICJBU1NJ R04iOworCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgorCQkJcmV0dXJuICJMRVQiOwogCiAJ CQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9uYWxseSBubyBkZWZhdWx0OiBjYXNlIGhlcmUs IHNvIHRoYXQgdGhlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5j IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwppbmRleCA5YjIzMzQ0YTNiLi45YWE0 ZjYwNzY4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKQEAgLTI2NTYsNiArMjY1Niw4IEBAIGNo ZWNrX3NyZl9jYWxsX3BsYWNlbWVudChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmxhc3Rfc3Jm LCBpbnQgbG9jYXRpb24pCiAJCQllcnIgPSBfKCJzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBhcmUg bm90IGFsbG93ZWQgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbnMiKTsKIAkJCWJyZWFr OwogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgorCQljYXNlIEVYUFJfS0lORF9BU1NJR05f VEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgogCQkJZXJya2luZCA9IHRydWU7 CiAJCQlicmVhazsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMgYi9zcmMv YmFja2VuZC90Y29wL2Rlc3QuYwppbmRleCA5NmY4MGIzMDQ2Li5kYWM3OGJhNWNjIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC90Y29wL2Rlc3QuYworKysgYi9zcmMvYmFja2VuZC90Y29wL2Rlc3Qu YwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgImV4ZWN1dG9yL2Z1bmN0aW9ucy5oIgogI2lu Y2x1ZGUgImV4ZWN1dG9yL3RxdWV1ZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL3RzdG9yZVJlY2Vp dmVyLmgiCisjaW5jbHVkZSAiZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRl ICJsaWJwcS9saWJwcS5oIgogI2luY2x1ZGUgImxpYnBxL3BxZm9ybWF0LmgiCiAKQEAgLTE1NSw2 ICsxNTYsOSBAQCBDcmVhdGVEZXN0UmVjZWl2ZXIoQ29tbWFuZERlc3QgZGVzdCkKIAogCQljYXNl IERlc3RFeHBsYWluU2VyaWFsaXplOgogCQkJcmV0dXJuIENyZWF0ZUV4cGxhaW5TZXJpYWxpemVE ZXN0UmVjZWl2ZXIoTlVMTCk7CisKKwkJY2FzZSBEZXN0VmFyaWFibGU6CisJCQlyZXR1cm4gQ3Jl YXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIoSW52YWxpZE9pZCk7CiAJfQogCiAJLyogc2hvdWxkIG5l dmVyIGdldCBoZXJlICovCkBAIC0xOTEsNiArMTk1LDcgQEAgRW5kQ29tbWFuZChjb25zdCBRdWVy eUNvbXBsZXRpb24gKnFjLCBDb21tYW5kRGVzdCBkZXN0LCBib29sIGZvcmNlX3VuZGVjb3JhdGVk X28KIAkJY2FzZSBEZXN0VHJhbnNpZW50UmVsOgogCQljYXNlIERlc3RUdXBsZVF1ZXVlOgogCQlj YXNlIERlc3RFeHBsYWluU2VyaWFsaXplOgorCQljYXNlIERlc3RWYXJpYWJsZToKIAkJCWJyZWFr OwogCX0KIH0KQEAgLTIzNyw2ICsyNDIsNyBAQCBOdWxsQ29tbWFuZChDb21tYW5kRGVzdCBkZXN0 KQogCQljYXNlIERlc3RUcmFuc2llbnRSZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6CiAJCWNh c2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJYnJlYWs7 CiAJfQogfQpAQCAtMjgxLDYgKzI4Nyw3IEBAIFJlYWR5Rm9yUXVlcnkoQ29tbWFuZERlc3QgZGVz dCkKIAkJY2FzZSBEZXN0VHJhbnNpZW50UmVsOgogCQljYXNlIERlc3RUdXBsZVF1ZXVlOgogCQlj YXNlIERlc3RFeHBsYWluU2VyaWFsaXplOgorCQljYXNlIERlc3RWYXJpYWJsZToKIAkJCWJyZWFr OwogCX0KIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMgYi9zcmMvYmFj a2VuZC90Y29wL3BxdWVyeS5jCmluZGV4IDg5ZDcwNGRmOGQuLmY4NDUzNTk0N2IgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC9wcXVl cnkuYwpAQCAtODYsNiArODYsOSBAQCBDcmVhdGVRdWVyeURlc2MoUGxhbm5lZFN0bXQgKnBsYW5u ZWRzdG10LAogCXFkLT5xdWVyeUVudiA9IHF1ZXJ5RW52OwogCXFkLT5pbnN0cnVtZW50X29wdGlv bnMgPSBpbnN0cnVtZW50X29wdGlvbnM7CS8qIGluc3RydW1lbnRhdGlvbiB3YW50ZWQ/ICovCiAK KwlxZC0+bnVtX3Nlc3Npb25fdmFyaWFibGVzID0gMDsKKwlxZC0+c2Vzc2lvbl92YXJpYWJsZXMg PSBOVUxMOworCiAJLyogbnVsbCB0aGVzZSBmaWVsZHMgdW50aWwgc2V0IGJ5IEV4ZWN1dG9yU3Rh cnQgKi8KIAlxZC0+dHVwRGVzYyA9IE5VTEw7CiAJcWQtPmVzdGF0ZSA9IE5VTEw7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0 eS5jCmluZGV4IDg4MTUxOGJiY2EuLjE5ZWNmMmU0MjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC00OSw2 ICs0OSw3IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvc2NoZW1hY21kcy5oIgogI2luY2x1ZGUgImNv bW1hbmRzL3NlY2xhYmVsLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VxdWVuY2UuaCIKKyNpbmNs dWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc3Vi c2NyaXB0aW9uY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlY21kcy5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIKQEAgLTIzNSw2ICsyMzYsNyBAQCBDbGFzc2lmeVV0 aWxpdHlDb21tYW5kQXNSZWFkT25seShOb2RlICpwYXJzZXRyZWUpCiAKIAkJY2FzZSBUX0NhbGxT dG10OgogCQljYXNlIFRfRG9TdG10OgorCQljYXNlIFRfTGV0U3RtdDoKIAkJCXsKIAkJCQkvKgog CQkJCSAqIENvbW1hbmRzIGluc2lkZSB0aGUgRE8gYmxvY2sgb3IgdGhlIGNhbGxlZCBwcm9jZWR1 cmUgbWlnaHQKQEAgLTEwNjcsNiArMTA2OSwxMSBAQCBzdGFuZGFyZF9Qcm9jZXNzVXRpbGl0eShQ bGFubmVkU3RtdCAqcHN0bXQsCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBUX0xldFN0bXQ6 CisJCQlFeGVjdXRlTGV0U3RtdChwc3RhdGUsIChMZXRTdG10ICopIHBhcnNldHJlZSwgcGFyYW1z LAorCQkJCQkJICAgcXVlcnlFbnYsIHFjKTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQkv KiBBbGwgb3RoZXIgc3RhdGVtZW50IHR5cGVzIGhhdmUgZXZlbnQgdHJpZ2dlciBzdXBwb3J0ICov CiAJCQlQcm9jZXNzVXRpbGl0eVNsb3cocHN0YXRlLCBwc3RtdCwgcXVlcnlTdHJpbmcsCkBAIC0y MjA2LDYgKzIyMTMsMTAgQEAgVXRpbGl0eUNvbnRhaW5zUXVlcnkoTm9kZSAqcGFyc2V0cmVlKQog CQkJCXJldHVybiBVdGlsaXR5Q29udGFpbnNRdWVyeShxcnktPnV0aWxpdHlTdG10KTsKIAkJCXJl dHVybiBxcnk7CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQlxcnkgPSBjYXN0Tm9kZShRdWVyeSwg KChMZXRTdG10ICopIHBhcnNldHJlZSktPnF1ZXJ5KTsKKwkJCXJldHVybiBxcnk7CisKIAkJZGVm YXVsdDoKIAkJCXJldHVybiBOVUxMOwogCX0KQEAgLTI0MDQsNiArMjQxNSwxMCBAQCBDcmVhdGVD b21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCXRhZyA9IENNRFRBR19TRUxFQ1Q7CiAJCQli cmVhazsKIAorCQljYXNlIFRfTGV0U3RtdDoKKwkJCXRhZyA9IENNRFRBR19MRVQ7CisJCQlicmVh azsKKwogCQkJLyogdXRpbGl0eSBzdGF0ZW1lbnRzIC0tLSBzYW1lIHdoZXRoZXIgcmF3IG9yIGNv b2tlZCAqLwogCQljYXNlIFRfVHJhbnNhY3Rpb25TdG10OgogCQkJewpAQCAtMzI4OSw2ICszMzA0 LDcgQEAgR2V0Q29tbWFuZExvZ0xldmVsKE5vZGUgKnBhcnNldHJlZSkKIAkJCWJyZWFrOwogCiAJ CWNhc2UgVF9QTEFzc2lnblN0bXQ6CisJCWNhc2UgVF9MZXRTdG10OgogCQkJbGV2ID0gTE9HU1RN VF9BTEw7CiAJCQlicmVhazsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1 bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCmluZGV4IGJlMWYx ZjUwYjcuLjNlMWUxYWU3OTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxl dXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTM3LDYg KzM3LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N0YXRpc3RpY19leHQuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX3RyaWdnZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNp bmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVt LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdGFibGVzcGFjZS5oIgogI2luY2x1ZGUgImNvbW1vbi9r ZXl3b3Jkcy5oIgpAQCAtNTI4LDYgKzUyOSw3IEBAIHN0YXRpYyBjaGFyICpnZW5lcmF0ZV9mdW5j dGlvbl9uYW1lKE9pZCBmdW5jaWQsIGludCBuYXJncywKIHN0YXRpYyBjaGFyICpnZW5lcmF0ZV9v cGVyYXRvcl9uYW1lKE9pZCBvcGVyaWQsIE9pZCBhcmcxLCBPaWQgYXJnMik7CiBzdGF0aWMgdm9p ZCBhZGRfY2FzdF90byhTdHJpbmdJbmZvIGJ1ZiwgT2lkIHR5cGlkKTsKIHN0YXRpYyBjaGFyICpn ZW5lcmF0ZV9xdWFsaWZpZWRfdHlwZV9uYW1lKE9pZCB0eXBpZCk7CitzdGF0aWMgY2hhciAqZ2Vu ZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKE9pZCB2YXJpZCk7CiBzdGF0aWMgdGV4dCAqc3Ry aW5nX3RvX3RleHQoY2hhciAqc3RyKTsKIHN0YXRpYyBjaGFyICpmbGF0dGVuX3JlbG9wdGlvbnMo T2lkIHJlbGlkKTsKIHN0YXRpYyB2b2lkIGdldF9yZWxvcHRpb25zKFN0cmluZ0luZm8gYnVmLCBE YXR1bSByZWxvcHRpb25zKTsKQEAgLTg2MjUsNiArODYyNywxNCBAQCBnZXRfcGFyYW1ldGVyKFBh cmFtICpwYXJhbSwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0KQogCQlyZXR1cm47CiAJfQogCisJ LyogdHJhbnNsYXRlIHBhcmFtdmFyaWQgdG8gc2Vzc2lvbiB2YXJpYWJsZSBuYW1lICovCisJaWYg KHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJeworCQlhcHBlbmRTdHJpbmdJ bmZvKGNvbnRleHQtPmJ1ZiwgIiVzIiwKKwkJCQkJCSBnZW5lcmF0ZV9zZXNzaW9uX3ZhcmlhYmxl X25hbWUocGFyYW0tPnBhcmFtdmFyaWQpKTsKKwkJcmV0dXJuOworCX0KKwogCS8qCiAJICogQWx0 ZXJuYXRpdmVseSwgbWF5YmUgaXQncyBhIHN1YnBsYW4gb3V0cHV0LCB3aGljaCB3ZSBwcmludCBh cyBhCiAJICogcmVmZXJlbmNlIHRvIHRoZSBzdWJwbGFuLiAgKFdlIGNvdWxkIGRyaWxsIGRvd24g aW50byB0aGUgc3VicGxhbiBhbmQKQEAgLTEzNDA3LDYgKzEzNDE3LDQyIEBAIGdlbmVyYXRlX2Nv bGxhdGlvbl9uYW1lKE9pZCBjb2xsaWQpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyoKKyAqIGdl bmVyYXRlX3Nlc3Npb25fdmFyaWFibGVfbmFtZQorICoJCUNvbXB1dGUgdGhlIG5hbWUgdG8gZGlz cGxheSBmb3IgYSBzZXNzaW9uIHZhcmlhYmxlIHNwZWNpZmllZCBieSBPSUQKKyAqCisgKiBUaGUg cmVzdWx0IGluY2x1ZGVzIGFsbCBuZWNlc3NhcnkgcXVvdGluZyBhbmQgc2NoZW1hLXByZWZpeGlu Zy4KKyAqLworc3RhdGljIGNoYXIgKgorZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKE9p ZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsK KwljaGFyCSAgICp2YXJuYW1lOworCWNoYXIJICAgKm5zcG5hbWU7CisJY2hhcgkgICAqcmVzdWx0 OworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVt KHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwg ImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9y bSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCXZhcm5hbWUgPSBOYW1l U3RyKHZhcmZvcm0tPnZhcm5hbWUpOworCisJaWYgKCFWYXJpYWJsZUlzVmlzaWJsZSh2YXJpZCkp CisJCW5zcG5hbWUgPSBnZXRfbmFtZXNwYWNlX25hbWVfb3JfdGVtcCh2YXJmb3JtLT52YXJuYW1l c3BhY2UpOworCWVsc2UKKwkJbnNwbmFtZSA9IE5VTEw7CisKKwlyZXN1bHQgPSBxdW90ZV9xdWFs aWZpZWRfaWRlbnRpZmllcihuc3BuYW1lLCB2YXJuYW1lKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0 dXApOworCisJcmV0dXJuIHJlc3VsdDsKK30KKwogLyoKICAqIEdpdmVuIGEgQyBzdHJpbmcsIHBy b2R1Y2UgYSBURVhUIGRhdHVtLgogICoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Nh Y2hlL3BsYW5jYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMKaW5k ZXggYzY2YTA4OGY0MC4uYTk2ZWM2NDM5ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv Y2FjaGUvcGxhbmNhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hl LmMKQEAgLTU4LDYgKzU4LDcgQEAKIAogI2luY2x1ZGUgImFjY2Vzcy90cmFuc2FtLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxl LmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4u aCIKICNpbmNsdWRlICJub2Rlcy9ub2RlRnVuY3MuaCIKQEAgLTE2Miw2ICsxNjMsNyBAQCBJbml0 UGxhbkNhY2hlKHZvaWQpCiAJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJhY2soQU1PUE9QSUQs IFBsYW5DYWNoZVN5c0NhbGxiYWNrLCAoRGF0dW0pIDApOwogCUNhY2hlUmVnaXN0ZXJTeXNjYWNo ZUNhbGxiYWNrKEZPUkVJR05TRVJWRVJPSUQsIFBsYW5DYWNoZVN5c0NhbGxiYWNrLCAoRGF0dW0p IDApOwogCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKEZPUkVJR05EQVRBV1JBUFBFUk9J RCwgUGxhbkNhY2hlU3lzQ2FsbGJhY2ssIChEYXR1bSkgMCk7CisJQ2FjaGVSZWdpc3RlclN5c2Nh Y2hlQ2FsbGJhY2soVkFSSUFCTEVPSUQsIFBsYW5DYWNoZU9iamVjdENhbGxiYWNrLCAoRGF0dW0p IDApOwogfQogCiAvKgpAQCAtMTkwMywxNyArMTkwNSwzMiBAQCBTY2FuUXVlcnlGb3JMb2NrcyhR dWVyeSAqcGFyc2V0cmVlLCBib29sIGFjcXVpcmUpCiAKIAkvKgogCSAqIFJlY3Vyc2UgaW50byBz dWJsaW5rIHN1YnF1ZXJpZXMsIHRvby4gIEJ1dCB3ZSBhbHJlYWR5IGRpZCB0aGUgb25lcyBpbgot CSAqIHRoZSBydGFibGUgYW5kIGN0ZUxpc3QuCisJICogdGhlIHJ0YWJsZSBhbmQgY3RlTGlzdC4g IFdlIG5lZWQgdG8gZm9yY2UgYSByZWN1cnNpdmUgY2FsbCBmb3Igc2Vzc2lvbgorCSAqIHZhcmlh YmxlcyB0b28sIHRvIGZpbmQgYW5kIGxvY2sgdmFyaWFibGVzIHVzZWQgaW4gdGhlIHF1ZXJ5IChz ZWUKKwkgKiBTY2FuUXVlcnlXYWxrZXIpLgogCSAqLwotCWlmIChwYXJzZXRyZWUtPmhhc1N1Ykxp bmtzKQorCWlmIChwYXJzZXRyZWUtPmhhc1N1YkxpbmtzIHx8CisJCXBhcnNldHJlZS0+aGFzU2Vz c2lvblZhcmlhYmxlcykKIAl7CiAJCXF1ZXJ5X3RyZWVfd2Fsa2VyKHBhcnNldHJlZSwgU2NhblF1 ZXJ5V2Fsa2VyLCAmYWNxdWlyZSwKIAkJCQkJCSAgUVRXX0lHTk9SRV9SQ19TVUJRVUVSSUVTKTsK IAl9CisKKwkvKiBwcm9jZXNzIHNlc3Npb24gdmFyaWFibGVzICovCisJaWYgKE9pZElzVmFsaWQo cGFyc2V0cmVlLT5yZXN1bHRWYXJpYWJsZSkpCisJeworCQlpZiAoYWNxdWlyZSkKKwkJCUxvY2tE YXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHBhcnNldHJlZS0+cmVzdWx0VmFyaWFi bGUsCisJCQkJCQkJICAgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJZWxzZQorCQkJVW5sb2NrRGF0 YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCBwYXJzZXRyZWUtPnJlc3VsdFZhcmlhYmxl LAorCQkJCQkJCQkgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwl9CiB9CiAKIC8qCi0gKiBXYWxrZXIg dG8gZmluZCBzdWJsaW5rIHN1YnF1ZXJpZXMgZm9yIFNjYW5RdWVyeUZvckxvY2tzCisgKiBXYWxr ZXIgdG8gZmluZCBzdWJsaW5rIHN1YnF1ZXJpZXMgb3IgcmVmZXJlbmNlZCBzZXNzaW9uIHZhcmlh YmxlcworICogZm9yIFNjYW5RdWVyeUZvckxvY2tzCiAgKi8KIHN0YXRpYyBib29sCiBTY2FuUXVl cnlXYWxrZXIoTm9kZSAqbm9kZSwgYm9vbCAqYWNxdWlyZSkKQEAgLTE5MjgsNiArMTk0NSwyMCBA QCBTY2FuUXVlcnlXYWxrZXIoTm9kZSAqbm9kZSwgYm9vbCAqYWNxdWlyZSkKIAkJU2NhblF1ZXJ5 Rm9yTG9ja3MoY2FzdE5vZGUoUXVlcnksIHN1Yi0+c3Vic2VsZWN0KSwgKmFjcXVpcmUpOwogCQkv KiBGYWxsIHRocm91Z2ggdG8gcHJvY2VzcyBsZWZ0aGFuZCBhcmdzIG9mIFN1YkxpbmsgKi8KIAl9 CisJZWxzZSBpZiAoSXNBKG5vZGUsIFBhcmFtKSkKKwl7CisJCVBhcmFtCSAgICpwID0gKFBhcmFt ICopIG5vZGU7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJewor CQkJaWYgKGFjcXVpcmUpCisJCQkJTG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25J ZCwgcC0+cGFyYW12YXJpZCwKKwkJCQkJCQkJICAgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJCWVs c2UKKwkJCQlVbmxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHAtPnBhcmFt dmFyaWQsCisJCQkJCQkJCQkgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJfQorCX0KIAogCS8qCiAJ ICogRG8gTk9UIHJlY3Vyc2UgaW50byBRdWVyeSBub2RlcywgYmVjYXVzZSBTY2FuUXVlcnlGb3JM b2NrcyBhbHJlYWR5CkBAIC0yMDU4LDcgKzIwODksOSBAQCBQbGFuQ2FjaGVSZWxDYWxsYmFjayhE YXR1bSBhcmcsIE9pZCByZWxpZCkKIAogLyoKICAqIFBsYW5DYWNoZU9iamVjdENhbGxiYWNrCi0g KgkJU3lzY2FjaGUgaW52YWwgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIFBST0NPSUQgYW5kIFRZUEVP SUQgY2FjaGVzCisgKgkJU3lzY2FjaGUgaW52YWwgY2FsbGJhY2sgZnVuY3Rpb24gZm9yIFRZUEVP SUQsIFBST0NPSUQsIE5BTUVTUEFDRU9JRCwKKyAqCQlPUEVST0lELCBBTU9QT1BJRCwgRk9SRUlH TlNFUlZFUk9JRCwgRk9SRUlHTkRBVEFXUkFQUEVST0lEIGFuZAorICoJCVZBUklBQkxFT0lEIGNh Y2hlcy4KICAqCiAgKiBJbnZhbGlkYXRlIGFsbCBwbGFucyBtZW50aW9uaW5nIHRoZSBvYmplY3Qg d2l0aCB0aGUgc3BlY2lmaWVkIGhhc2ggdmFsdWUsCiAgKiBvciBhbGwgcGxhbnMgbWVudGlvbmlu ZyBhbnkgbWVtYmVyIG9mIHRoaXMgY2FjaGUgaWYgaGFzaHZhbHVlID09IDAuCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3Iv Zm1nci5jCmluZGV4IGU0OGE4NmJlNTQuLmVhYWUwYzVhOTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5j CkBAIC0yMDI2LDkgKzIwMjYsMTMgQEAgZ2V0X2NhbGxfZXhwcl9hcmdfc3RhYmxlKE5vZGUgKmV4 cHIsIGludCBhcmdudW0pCiAJICovCiAJaWYgKElzQShhcmcsIENvbnN0KSkKIAkJcmV0dXJuIHRy dWU7Ci0JaWYgKElzQShhcmcsIFBhcmFtKSAmJgotCQkoKFBhcmFtICopIGFyZyktPnBhcmFta2lu ZCA9PSBQQVJBTV9FWFRFUk4pCi0JCXJldHVybiB0cnVlOworCWlmIChJc0EoYXJnLCBQYXJhbSkp CisJeworCQlQYXJhbQkgICAqcCA9IChQYXJhbSAqKSBhcmc7CisKKwkJaWYgKHAtPnBhcmFta2lu ZCA9PSBQQVJBTV9FWFRFUk4gfHwgcC0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQkJ cmV0dXJuIHRydWU7CisJfQogCiAJcmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j CmluZGV4IDdkNzY4MzRlNjkuLjdlNDRlYzczNTkgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAg LTEyMTQsOCArMTIxNCw4IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBzcWxfY29tbWFuZHNb XSA9IHsKIAkiQUJPUlQiLCAiQUxURVIiLCAiQU5BTFlaRSIsICJCRUdJTiIsICJDQUxMIiwgIkNI RUNLUE9JTlQiLCAiQ0xPU0UiLCAiQ0xVU1RFUiIsCiAJIkNPTU1FTlQiLCAiQ09NTUlUIiwgIkNP UFkiLCAiQ1JFQVRFIiwgIkRFQUxMT0NBVEUiLCAiREVDTEFSRSIsCiAJIkRFTEVURSBGUk9NIiwg IkRJU0NBUkQiLCAiRE8iLCAiRFJPUCIsICJFTkQiLCAiRVhFQ1VURSIsICJFWFBMQUlOIiwKLQki RkVUQ0giLCAiR1JBTlQiLCAiSU1QT1JUIEZPUkVJR04gU0NIRU1BIiwgIklOU0VSVCBJTlRPIiwg IkxJU1RFTiIsICJMT0FEIiwgIkxPQ0siLAotCSJNRVJHRSBJTlRPIiwgIk1PVkUiLCAiTk9USUZZ IiwgIlBSRVBBUkUiLAorCSJGRVRDSCIsICJHUkFOVCIsICJJTVBPUlQgRk9SRUlHTiBTQ0hFTUEi LCAiSU5TRVJUIElOVE8iLCAiTEVUIiwKKwkiTElTVEVOIiwgIkxPQUQiLCAiTE9DSyIsICJNRVJH RSBJTlRPIiwgIk1PVkUiLCAiTk9USUZZIiwgIlBSRVBBUkUiLAogCSJSRUFTU0lHTiIsICJSRUZS RVNIIE1BVEVSSUFMSVpFRCBWSUVXIiwgIlJFSU5ERVgiLCAiUkVMRUFTRSIsCiAJIlJFU0VUIiwg IlJFVk9LRSIsICJST0xMQkFDSyIsCiAJIlNBVkVQT0lOVCIsICJTRUNVUklUWSBMQUJFTCIsICJT RUxFQ1QiLCAiU0VUIiwgIlNIT1ciLCAiU1RBUlQiLApAQCAtNDY2MCw2ICs0NjYwLDE0IEBAIG1h dGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCWVsc2UgaWYgKFRhaWxNYXRjaGVz KCJWQUxVRVMiKSAmJiAhVGFpbE1hdGNoZXMoIkRFRkFVTFQiLCAiVkFMVUVTIikpCiAJCUNPTVBM RVRFX1dJVEgoIigiKTsKIAorLyogTEVUICovCisJLyogSWYgcHJldi4gd29yZCBpcyBMRVQgc3Vn Z2VzdCBhIGxpc3Qgb2YgdmFyaWFibGVzICovCisJZWxzZSBpZiAoTWF0Y2hlcygiTEVUIikpCisJ CUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyk7 CisJLyogQ29tcGxldGUgTEVUIDx2YXJpYWJsZT4gd2l0aCAiPSIgKi8KKwllbHNlIGlmIChUYWls TWF0Y2hlcygiTEVUIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCI9Iik7CisKIC8qIExP Q0sgKi8KIAkvKiBDb21wbGV0ZSBMT0NLIFtUQUJMRV0gW09OTFldIHdpdGggYSBsaXN0IG9mIHRh YmxlcyAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkxPQ0siKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvbmFtZXNwYWNlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5o CmluZGV4IGNmZTk2NTE0NzEuLmNjNmRkNTk1OGMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvbmFtZXNwYWNlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaApA QCAtMTc0LDYgKzE3NCw3IEBAIGV4dGVybiBib29sIFNlYXJjaFBhdGhNYXRjaGVzQ3VycmVudEVu dmlyb25tZW50KFNlYXJjaFBhdGhNYXRjaGVyICpwYXRoKTsKIGV4dGVybiBMaXN0ICpOYW1lc0Zy b21MaXN0KExpc3QgKm5hbWVzKTsKIGV4dGVybiBPaWQJTG9va3VwVmFyaWFibGUoY29uc3QgY2hh ciAqbnNwbmFtZSwgY29uc3QgY2hhciAqdmFybmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVy biBPaWQJTG9va3VwVmFyaWFibGVGcm9tTmFtZUxpc3QoTGlzdCAqbmFtZXMsIGJvb2wgbWlzc2lu Z19vayk7CitleHRlcm4gT2lkCUlkZW50aWZ5VmFyaWFibGUoTGlzdCAqbmFtZXMsIGNoYXIgKiph dHRybmFtZSwgYm9vbCAqbm90X3VuaXF1ZSwgYm9vbCBub2Vycm9yKTsKIAogZXh0ZXJuIE9pZAln ZXRfY29sbGF0aW9uX29pZChMaXN0ICpjb2xsbmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVy biBPaWQJZ2V0X2NvbnZlcnNpb25fb2lkKExpc3QgKmNvbm5hbWUsIGJvb2wgbWlzc2luZ19vayk7 CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXggMzgxMGUwNDBmMi4uZGI1OGU2YWMwMSAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaApAQCAtMTgsNiArMTgsNyBAQAogI2lmbmRlZiBQ R19WQVJJQUJMRV9ICiAjZGVmaW5lIFBHX1ZBUklBQkxFX0gKIAorI2luY2x1ZGUgImFjY2Vzcy94 bG9nZGVmcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvZ2VuYmtpLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9vYmplY3RhZGRyZXNzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZV9kLmgiCkBA IC0zNSw2ICszNiwxNCBAQCBDQVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlv bklkKQogCS8qIE9JRCBvZiBlbnRyeSBpbiBwZ190eXBlIGZvciB2YXJpYWJsZSdzIHR5cGUgKi8K IAlPaWQJCQl2YXJ0eXBlIEJLSV9MT09LVVAocGdfdHlwZSk7CiAKKwkvKgorCSAqIFVzZWQgZm9y IGlkZW50aXR5IGNoZWNrIFtvaWQsIGNyZWF0ZV9sc25dLgorCSAqCisJICogVGhpcyBjb2x1bW4g b2YgdGhlIDgtYnl0ZSBYbG9nUmVjUHRyIHR5cGUgc2hvdWxkIGJlIGF0IGFuIGFkZHJlc3MgdGhh dAorCSAqIGlzIGRpdmlzaWJsZSBieSA4LCBidXQgYmVmb3JlIGFueSBjb2x1bW4gb2YgdHlwZSBO YW1lRGF0YS4KKwkgKi8KKwlYTG9nUmVjUHRyCXZhcmNyZWF0ZV9sc247CisKIAkvKiB2YXJpYWJs ZSBuYW1lICovCiAJTmFtZURhdGEJdmFybmFtZTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmIzZjAz YzY1ODIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmgKQEAgLTAsMCArMSwzMiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogc2Vz c2lvbnZhcmlhYmxlLmgKKyAqCSAgcHJvdG90eXBlcyBmb3Igc2Vzc2lvbnZhcmlhYmxlLmMuCisg KgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEds b2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBS ZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVk ZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq LworCisjaWZuZGVmIFNFU1NJT05WQVJJQUJMRV9ICisjZGVmaW5lIFNFU1NJT05WQVJJQUJMRV9I CisKKyNpbmNsdWRlICJub2Rlcy9wYXJhbXMuaCIKKyNpbmNsdWRlICJub2Rlcy9wYXJzZW5vZGVz LmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX25vZGUuaCIKKyNpbmNsdWRlICJ0Y29wL2NtZHRh Zy5oIgorI2luY2x1ZGUgInV0aWxzL3F1ZXJ5ZW52aXJvbm1lbnQuaCIKKworZXh0ZXJuIHZvaWQg U2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsK K2V4dGVybiB2b2lkIFNldFNlc3Npb25WYXJpYWJsZVdpdGhTZWN1cml0eUNoZWNrKE9pZCB2YXJp ZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsKK2V4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFy aWFibGUoT2lkIHZhcmlkLCBib29sICppc051bGwsIE9pZCAqdHlwaWQpOworZXh0ZXJuIERhdHVt IEdldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlQ2hlY2soT2lkIHZhcmlkLCBib29sICppc051bGws IE9pZCBleHBlY3RlZF90eXBpZCk7CisKK2V4dGVybiB2b2lkIEV4ZWN1dGVMZXRTdG10KFBhcnNl U3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCwgUGFyYW1MaXN0SW5mbyBwYXJhbXMsCisJCQkJ CQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwgUXVlcnlDb21wbGV0aW9uICpxYyk7CisK KyNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaCBiL3Ny Yy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNkZXNjLmgKaW5kZXggNzllOGI2MzExMS4uZmUxYWIwNzYw ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaAorKysgYi9zcmMv aW5jbHVkZS9leGVjdXRvci9leGVjZGVzYy5oCkBAIC01MSw2ICs1MSwxMCBAQCB0eXBlZGVmIHN0 cnVjdCBRdWVyeURlc2MKIAkvKiBUaGlzIGZpZWxkIGlzIHNldCBieSBFeGVjdXRlUGxhbiAqLwog CWJvb2wJCWFscmVhZHlfZXhlY3V0ZWQ7CS8qIHRydWUgaWYgcHJldmlvdXNseSBleGVjdXRlZCAq LwogCisJLyogcmVmZXJlbmNlIHRvIHNlc3Npb24gdmFyaWFibGVzIGJ1ZmZlciAqLworCWludAkJ CW51bV9zZXNzaW9uX3ZhcmlhYmxlczsKKwlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqc2Vzc2lvbl92 YXJpYWJsZXM7CisKIAkvKiBUaGlzIGlzIGFsd2F5cyBzZXQgTlVMTCBieSB0aGUgY29yZSBzeXN0 ZW0sIGJ1dCBwbHVnaW5zIGNhbiBjaGFuZ2UgaXQgKi8KIAlzdHJ1Y3QgSW5zdHJ1bWVudGF0aW9u ICp0b3RhbHRpbWU7CS8qIHRvdGFsIHRpbWUgc3BlbnQgaW4gRXhlY3V0b3JSdW4gKi8KIH0gUXVl cnlEZXNjOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2 ZXIuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZGI0NGQ4Yjk0YwotLS0gL2Rldi9udWxsCisr KyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgKQEAgLTAsMCArMSwy MiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogc3ZhcmlhYmxlUmVjZWl2ZXIuaAorICoJ ICBwcm90b3R5cGVzIGZvciBzdmFyaWFibGVSZWNlaXZlci5jCisgKgorICoKKyAqIFBvcnRpb25z IENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBH cm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2 ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFi bGVSZWNlaXZlci5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2lmbmRlZiBTVkFS SUFCTEVfUkVDRUlWRVJfSAorI2RlZmluZSBTVkFSSUFCTEVfUkVDRUlWRVJfSAorCisjaW5jbHVk ZSAidGNvcC9kZXN0LmgiCisKK2V4dGVybiBEZXN0UmVjZWl2ZXIgKkNyZWF0ZVZhcmlhYmxlRGVz dFJlY2VpdmVyKE9pZCB2YXJpZCk7CisKKyNlbmRpZgkJCQkJCQkvKiBTVkFSSUFCTEVfUkVDRUlW RVJfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMv aW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRleCA3OWQ1ZTk2MDIxLi40NjkyZjBlOWFiIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAorKysgYi9zcmMvaW5jbHVk ZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAtNjE3LDYgKzYxNywxOCBAQCB0eXBlZGVmIHN0cnVjdCBB c3luY1JlcXVlc3QKIAkJCQkJCQkJICogdHVwbGVzKSAqLwogfSBBc3luY1JlcXVlc3Q7CiAKKy8q IC0tLS0tLS0tLS0tLS0tLS0KKyAqIFNlc3Npb25WYXJpYWJsZVZhbHVlCisgKiAtLS0tLS0tLS0t LS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IFNlc3Npb25WYXJpYWJsZVZhbHVlCit7CisJT2lk CQkJdmFyaWQ7CisJT2lkCQkJdHlwaWQ7CisJYm9vbAkJaXNudWxsOworCURhdHVtCQl2YWx1ZTsK K30gU2Vzc2lvblZhcmlhYmxlVmFsdWU7CisKIC8qIC0tLS0tLS0tLS0tLS0tLS0KICAqCSAgRVN0 YXRlIGluZm9ybWF0aW9uCiAgKgpAQCAtNjY5LDYgKzY4MSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBF U3RhdGUKIAlQYXJhbUxpc3RJbmZvIGVzX3BhcmFtX2xpc3RfaW5mbzsJLyogdmFsdWVzIG9mIGV4 dGVybmFsIHBhcmFtcyAqLwogCVBhcmFtRXhlY0RhdGEgKmVzX3BhcmFtX2V4ZWNfdmFsczsJLyog dmFsdWVzIG9mIGludGVybmFsIHBhcmFtcyAqLwogCisJLyogU2Vzc2lvbiB2YXJpYWJsZXMgaW5m bzogKi8KKwlpbnQJCQllc19udW1fc2Vzc2lvbl92YXJpYWJsZXM7CQkvKiBudW1iZXIgb2YgdXNl ZCB2YXJpYWJsZXMgKi8KKwlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqZXNfc2Vzc2lvbl92YXJpYWJs ZXM7CS8qIGFycmF5IG9mIGNvcGllcyBvZiB2YWx1ZXMgKi8KKwogCVF1ZXJ5RW52aXJvbm1lbnQg KmVzX3F1ZXJ5RW52OwkvKiBxdWVyeSBlbnZpcm9ubWVudCAqLwogCiAJLyogT3RoZXIgd29ya2lu ZyBzdGF0ZTogKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBi L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCAwZTA4Mjk2YjQzLi43NzhkYjZh ZDRmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0xNDIsNiArMTQyLDkgQEAgdHlwZWRlZiBz dHJ1Y3QgUXVlcnkKIAkgKi8KIAlpbnQJCQlyZXN1bHRSZWxhdGlvbiBwZ19ub2RlX2F0dHIocXVl cnlfanVtYmxlX2lnbm9yZSk7CiAKKwkvKiB0YXJnZXQgdmFyaWFibGUgb2YgTEVUIHN0YXRlbWVu dCAqLworCU9pZAkJCXJlc3VsdFZhcmlhYmxlOworCiAJLyogaGFzIGFnZ3JlZ2F0ZXMgaW4gdGxp c3Qgb3IgaGF2aW5nUXVhbCAqLwogCWJvb2wJCWhhc0FnZ3MgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1 bWJsZV9pZ25vcmUpOwogCS8qIGhhcyB3aW5kb3cgZnVuY3Rpb25zIGluIHRsaXN0ICovCkBAIC0x NjIsNiArMTY1LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUXVlcnkKIAlib29sCQloYXNSb3dTZWN1cml0 eSBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogcGFyc2VyIGhhcyBhZGRl ZCBhbiBSVEVfR1JPVVAgUlRFICovCiAJYm9vbAkJaGFzR3JvdXBSVEUgcGdfbm9kZV9hdHRyKHF1 ZXJ5X2p1bWJsZV9pZ25vcmUpOworCS8qIHVzZXMgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwlib29s CQloYXNTZXNzaW9uVmFyaWFibGVzIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsK IAkvKiBpcyBhIFJFVFVSTiBzdGF0ZW1lbnQgKi8KIAlib29sCQlpc1JldHVybiBwZ19ub2RlX2F0 dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAKQEAgLTIxMDAsNiArMjEwNSwxOCBAQCB0eXBlZGVm IHN0cnVjdCBNZXJnZVN0bXQKIAlQYXJzZUxvYwlzdG10X2xlbjsJCS8qIGxlbmd0aCBpbiBieXRl czsgMCBtZWFucyAicmVzdCBvZiBzdHJpbmciICovCiB9IE1lcmdlU3RtdDsKIAorLyogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICoJCUxldCBTdGF0ZW1lbnQKKyAqIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgTGV0U3RtdAoreworCU5vZGVUYWcJCXR5cGU7CisJ TGlzdAkgICAqdGFyZ2V0OwkJCS8qIHRhcmdldCB2YXJpYWJsZSAqLworCU5vZGUJICAgKnF1ZXJ5 OwkJCS8qIHNvdXJjZSBleHByZXNzaW9uICovCisJaW50CQkJbG9jYXRpb247Cit9IExldFN0bXQ7 CisKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqCQlTZWxlY3QgU3RhdGVtZW50CiAgKgpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmggYi9zcmMvaW5jbHVkZS9u b2Rlcy9wYXRobm9kZXMuaAppbmRleCAwNzU5ZTAwZTk2Li4yODAzY2Y4NGIxIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9w YXRobm9kZXMuaApAQCAtMTYzLDYgKzE2Myw5IEBAIHR5cGVkZWYgc3RydWN0IFBsYW5uZXJHbG9i YWwKIAogCS8qIHBhcnRpdGlvbiBkZXNjcmlwdG9ycyAqLwogCVBhcnRpdGlvbkRpcmVjdG9yeSBw YXJ0aXRpb25fZGlyZWN0b3J5IHBnX25vZGVfYXR0cihyZWFkX3dyaXRlX2lnbm9yZSk7CisKKwkv KiBsaXN0IG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwlMaXN0CSAgICpzZXNzaW9uVmFy aWFibGVzOwogfSBQbGFubmVyR2xvYmFsOwogCiAvKiBtYWNybyBmb3IgZmV0Y2hpbmcgdGhlIFBs YW4gYXNzb2NpYXRlZCB3aXRoIGEgU3ViUGxhbiBub2RlICovCkBAIC01MDgsNiArNTExLDggQEAg c3RydWN0IFBsYW5uZXJJbmZvCiAJYm9vbAkJcGxhY2Vob2xkZXJzRnJvemVuOwogCS8qIHRydWUg aWYgcGxhbm5pbmcgYSByZWN1cnNpdmUgV0lUSCBpdGVtICovCiAJYm9vbAkJaGFzUmVjdXJzaW9u OworCS8qIHRydWUgaWYgc2Vzc2lvbiB2YXJpYWJsZXMgd2VyZSB1c2VkICovCisJYm9vbAkJaGFz U2Vzc2lvblZhcmlhYmxlczsKIAogCS8qCiAJICogVGhlIHJhbmdldGFibGUgaW5kZXggZm9yIHRo ZSBSVEVfR1JPVVAgUlRFLCBvciAwIGlmIHRoZXJlIGlzIG5vCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9ub2Rlcy9wbGFubm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCmlu ZGV4IDUyZjI5YmNkYjYuLjQ1NDkzNjZjZjUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVz L3BsYW5ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oCkBAIC00OSw3 ICs0OSw3IEBAIHR5cGVkZWYgc3RydWN0IFBsYW5uZWRTdG10CiAKIAlOb2RlVGFnCQl0eXBlOwog Ci0JQ21kVHlwZQkJY29tbWFuZFR5cGU7CS8qIHNlbGVjdHxpbnNlcnR8dXBkYXRlfGRlbGV0ZXxt ZXJnZXx1dGlsaXR5ICovCisJQ21kVHlwZQkJY29tbWFuZFR5cGU7CS8qIHNlbGVjdHxsZXR8aW5z ZXJ0fHVwZGF0ZXxkZWxldGV8bWVyZ2V8dXRpbGl0eSAqLwogCiAJdWludDY0CQlxdWVyeUlkOwkJ LyogcXVlcnkgaWRlbnRpZmllciAoY29waWVkIGZyb20gUXVlcnkpICovCiAKQEAgLTk0LDYgKzk0 LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUGxhbm5lZFN0bXQKIAogCU5vZGUJICAgKnV0aWxpdHlTdG10 OwkvKiBub24tbnVsbCBpZiB0aGlzIGlzIHV0aWxpdHkgc3RtdCAqLwogCisJTGlzdAkgICAqc2Vz c2lvblZhcmlhYmxlczsJLyogT0lEcyBmb3IgUEFSQU1fVkFSSUFCTEUgUGFyYW1zICovCisKIAkv KiBzdGF0ZW1lbnQgbG9jYXRpb24gaW4gc291cmNlIHN0cmluZyAoY29waWVkIGZyb20gUXVlcnkp ICovCiAJUGFyc2VMb2MJc3RtdF9sb2NhdGlvbjsJLyogc3RhcnQgbG9jYXRpb24sIG9yIC0xIGlm IHVua25vd24gKi8KIAlQYXJzZUxvYwlzdG10X2xlbjsJCS8qIGxlbmd0aCBpbiBieXRlczsgMCBt ZWFucyAicmVzdCBvZiBzdHJpbmciICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9w cmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCmluZGV4IGIwZWYxOTUy ZTguLjRiMjQyNGQ2ZDMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5o CisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC0zNjEsNiArMzYxLDkgQEAg dHlwZWRlZiBzdHJ1Y3QgQ29uc3QKICAqCQkJCW9mIHRoZSBgcGFyYW1pZCcgZmllbGQgY29udGFp biB0aGUgU3ViTGluaydzIHN1YkxpbmtJZCwgYW5kCiAgKgkJCQl0aGUgbG93LW9yZGVyIDE2IGJp dHMgY29udGFpbiB0aGUgY29sdW1uIG51bWJlci4gIChUaGlzIHR5cGUKICAqCQkJCW9mIFBhcmFt IGlzIGFsc28gY29udmVydGVkIHRvIFBBUkFNX0VYRUMgZHVyaW5nIHBsYW5uaW5nLikKKyAqCisg KgkJUEFSQU1fVkFSSUFCTEU6ICBUaGUgcGFyYW1ldGVyIGlzIGEgcmVmZXJlbmNlIHRvIGEgc2Vz c2lvbiB2YXJpYWJsZQorICoJCQkJKHBhcmFtaWQgaG9sZHMgdGhlIHZhcmlhYmxlJ3MgT0lEKS4K ICAqLwogdHlwZWRlZiBlbnVtIFBhcmFtS2luZAogewpAQCAtMzY4LDYgKzM3MSw3IEBAIHR5cGVk ZWYgZW51bSBQYXJhbUtpbmQKIAlQQVJBTV9FWEVDLAogCVBBUkFNX1NVQkxJTkssCiAJUEFSQU1f TVVMVElFWFBSLAorCVBBUkFNX1ZBUklBQkxFLAogfSBQYXJhbUtpbmQ7CiAKIHR5cGVkZWYgc3Ry dWN0IFBhcmFtCkBAIC0zODAsNiArMzg0LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUGFyYW0KIAlpbnQz MgkJcGFyYW10eXBtb2QgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIE9J RCBvZiBjb2xsYXRpb24sIG9yIEludmFsaWRPaWQgaWYgbm9uZSAqLwogCU9pZAkJCXBhcmFtY29s bGlkIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKKwkvKiBPSUQgb2Ygc2Vzc2lv biB2YXJpYWJsZSBpZiBpdCBpcyB1c2VkICovCisJT2lkCQkJcGFyYW12YXJpZDsKIAkvKiB0b2tl biBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLwogCVBhcnNlTG9jCWxvY2F0aW9uOwogfSBQ YXJhbTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL29wdGltaXplci9wbGFubWFpbi5oIGIvc3Jj L2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmgKaW5kZXggMGI2ZjBmNzk2OS4uMzkyOGUzM2E5 NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmgKKysrIGIvc3Jj L2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmgKQEAgLTEyNSw0ICsxMjUsNiBAQCBleHRlcm4g dm9pZCByZWNvcmRfcGxhbl9mdW5jdGlvbl9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBP aWQgZnVuY2lkKTsKIGV4dGVybiB2b2lkIHJlY29yZF9wbGFuX3R5cGVfZGVwZW5kZW5jeShQbGFu bmVySW5mbyAqcm9vdCwgT2lkIHR5cGlkKTsKIGV4dGVybiBib29sIGV4dHJhY3RfcXVlcnlfZGVw ZW5kZW5jaWVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVySW5mbyAqY29udGV4dCk7CiAKK2V4 dGVybiB2b2lkIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzKFBsYW5uZXJJbmZvICpyb290 KTsKKwogI2VuZGlmCQkJCQkJCS8qIFBMQU5NQUlOX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAppbmRleCA1 NjY3MGU2NWIxLi5hZWZlNTFmMzM1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3ds aXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCkBAIC0yNTYsNiArMjU2LDcg QEAgUEdfS0VZV09SRCgibGVhZGluZyIsIExFQURJTkcsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCiBQR19LRVlXT1JEKCJsZWFrcHJvb2YiLCBMRUFLUFJPT0YsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxlYXN0IiwgTEVBU1QsIENPTF9OQU1FX0tF WVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZWZ0IiwgTEVGVCwgVFlQRV9GVU5DX05B TUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoImxldCIsIExFVCwgVU5SRVNFUlZF RF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGV2ZWwiLCBMRVZFTCwgVU5SRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGlrZSIsIExJS0UsIFRZUEVf RlVOQ19OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsaW1pdCIsIExJTUlU LCBSRVNFUlZFRF9LRVlXT1JELCBBU19MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Bh cnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCmluZGV4 IDIzNzVlOTVjMTAuLmMxMWZkYjNkOTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9w YXJzZV9ub2RlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaApAQCAtODIs NiArODIsOCBAQCB0eXBlZGVmIGVudW0gUGFyc2VFeHByS2luZAogCUVYUFJfS0lORF9DT1BZX1dI RVJFLAkJLyogV0hFUkUgY29uZGl0aW9uIGluIENPUFkgRlJPTSAqLwogCUVYUFJfS0lORF9HRU5F UkFURURfQ09MVU1OLCAvKiBnZW5lcmF0aW9uIGV4cHJlc3Npb24gZm9yIGEgY29sdW1uICovCiAJ RVhQUl9LSU5EX0NZQ0xFX01BUkssCQkvKiBjeWNsZSBtYXJrIHZhbHVlICovCisJRVhQUl9LSU5E X0FTU0lHTl9UQVJHRVQsCS8qIFBML3BnU1FMIGFzc2lnbm1lbnQgdGFyZ2V0ICovCisJRVhQUl9L SU5EX0xFVF9UQVJHRVQsCQkvKiBMRVQgdGFyZ2V0ICovCiB9IFBhcnNlRXhwcktpbmQ7CiAKIApA QCAtMjQ0LDYgKzI0Niw3IEBAIHN0cnVjdCBQYXJzZVN0YXRlCiAJYm9vbAkJcF9oYXNUYXJnZXRT UkZzOwogCWJvb2wJCXBfaGFzU3ViTGlua3M7CiAJYm9vbAkJcF9oYXNNb2RpZnlpbmdDVEU7CisJ Ym9vbAkJcF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJTm9kZQkgICAqcF9sYXN0X3NyZjsJCS8q IG1vc3QgcmVjZW50IHNldC1yZXR1cm5pbmcgZnVuYy9vcCBmb3VuZCAqLwogCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oCmluZGV4IDk0NjVkZjdiMmYuLmE5MjFhZjI0ODYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5o CkBAIC0xODYsNiArMTg2LDcgQEAgUEdfQ01EVEFHKENNRFRBR19HUkFOVCwgIkdSQU5UIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19HUkFOVF9ST0xFLCAiR1JBTlQgUk9M RSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0lNUE9SVF9GT1JFSUdO X1NDSEVNQSwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBH X0NNRFRBRyhDTURUQUdfSU5TRVJULCAiSU5TRVJUIiwgZmFsc2UsIGZhbHNlLCB0cnVlKQorUEdf Q01EVEFHKENNRFRBR19MRVQsICJMRVQiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFH KENNRFRBR19MSVNURU4sICJMSVNURU4iLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFH KENNRFRBR19MT0FELCAiTE9BRCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01E VEFHX0xPQ0tfVEFCTEUsICJMT0NLIFRBQkxFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvZGVzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmgK aW5kZXggYTNkNTIxYjZmOS4uMzhjYzg3ZjRlNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdGNv cC9kZXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmgKQEAgLTk3LDYgKzk3LDcgQEAg dHlwZWRlZiBlbnVtCiAJRGVzdFRyYW5zaWVudFJlbCwJCQkvKiByZXN1bHRzIHNlbnQgdG8gdHJh bnNpZW50IHJlbGF0aW9uICovCiAJRGVzdFR1cGxlUXVldWUsCQkJCS8qIHJlc3VsdHMgc2VudCB0 byB0dXBsZSBxdWV1ZSAqLwogCURlc3RFeHBsYWluU2VyaWFsaXplLAkJLyogcmVzdWx0cyBhcmUg c2VyaWFsaXplZCBhbmQgZGlzY2FyZGVkICovCisJRGVzdFZhcmlhYmxlLAkJCQkvKiByZXN1bHRz IHNlbnQgdG8gc2Vzc2lvbiB2YXJpYWJsZSAqLwogfSBDb21tYW5kRGVzdDsKIAogLyogLS0tLS0t LS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYyBiL3Ny Yy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKaW5kZXggZTMxMjA2ZTdmNC4uOGI1ZGYxZDViNyAx MDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYworKysgYi9zcmMvcGwvcGxw Z3NxbC9zcmMvcGxfZXhlYy5jCkBAIC04MDk5LDcgKzgwOTksOCBAQCBleGVjX2lzX3NpbXBsZV9x dWVyeShQTHBnU1FMX2V4cHIgKmV4cHIpCiAJCXF1ZXJ5LT5zb3J0Q2xhdXNlIHx8CiAJCXF1ZXJ5 LT5saW1pdE9mZnNldCB8fAogCQlxdWVyeS0+bGltaXRDb3VudCB8fAotCQlxdWVyeS0+c2V0T3Bl cmF0aW9ucykKKwkJcXVlcnktPnNldE9wZXJhdGlvbnMgfHwKKwkJcXVlcnktPmhhc1Nlc3Npb25W YXJpYWJsZXMpCiAJCXJldHVybiBmYWxzZTsKIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDkyMDFkYTRlMmIuLjEwMzliZTcw YzYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJs ZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMu b3V0CkBAIC0zNTMsMyArMzUzLDkyOCBAQCBEUk9QIFZBUklBQkxFIHB1YmxpYy52YXIxOwogRFJP UCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CiBEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9y MjsKIERST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworLS0gY2hlY2sgYWNjZXNzIHJp Z2h0cworQ1JFQVRFIFJPTEUgcmVncmVzc19ub293bmVyOworQ1JFQVRFIFZBUklBQkxFIHZhcjEg QVMgaW50OworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZngoaW50KQorUkVUVVJOUyBp bnQgQVMgJCQgU0VMRUNUICQxICsgdmFyMSAkJCBMQU5HVUFHRSBzcWw7CitDUkVBVEUgT1IgUkVQ TEFDRSBGVU5DVElPTiBzcWxmeF9zZChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBTRUxFQ1QgJDEg KyB2YXIxICQkIExBTkdVQUdFIHNxbCBTRUNVUklUWSBERUZJTkVSOworQ1JFQVRFIE9SIFJFUExB Q0UgRlVOQ1RJT04gcGxwZ3NxbGZ4KGludCkKK1JFVFVSTlMgaW50IEFTICQkIEJFR0lOIFJFVFVS TiAkMSArIHZhcjE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIE9SIFJFUExBQ0Ug RlVOQ1RJT04gcGxwZ3NxbGZ4X3NkKGludCkKK1JFVFVSTlMgaW50IEFTICQkIEJFR0lOIFJFVFVS TiAkMSArIHZhcjE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsIFNFQ1VSSVRZIERFRklORVI7CitM RVQgdmFyMSA9IDEwOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0t LS0tCisgICAxMAorKDEgcm93KQorCitTRUxFQ1Qgc3FsZngoMjApOworIHNxbGZ4IAorLS0tLS0t LQorICAgIDMwCisoMSByb3cpCisKK1NFTEVDVCBzcWxmeF9zZCgyMCk7Cisgc3FsZnhfc2QgCist LS0tLS0tLS0tCisgICAgICAgMzAKKygxIHJvdykKKworU0VMRUNUIHBscGdzcWxmeCgyMCk7Cisg cGxwZ3NxbGZ4IAorLS0tLS0tLS0tLS0KKyAgICAgICAgMzAKKygxIHJvdykKKworU0VMRUNUIHBs cGdzcWxmeF9zZCgyMCk7CisgcGxwZ3NxbGZ4X3NkIAorLS0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgMzAKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nfbm9v d25lcjsKK1NFTEVDVCB2YXIxOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lv biB2YXJpYWJsZSB2YXIxCitTRUxFQ1Qgc3FsZngoMjApOworRVJST1I6ICBwZXJtaXNzaW9uIGRl bmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitDT05URVhUOiAgU1FMIGZ1bmN0aW9uICJz cWxmeCIgc3RhdGVtZW50IDEKK1NFTEVDVCBwbHBnc3FsZngoMjApOworRVJST1I6ICBwZXJtaXNz aW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitDT05URVhUOiAgUEwvcGdTUUwg ZXhwcmVzc2lvbiAiJDEgKyB2YXIxIgorUEwvcGdTUUwgZnVuY3Rpb24gcGxwZ3NxbGZ4KGludGVn ZXIpIGxpbmUgMSBhdCBSRVRVUk4KKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHNxbGZ4X3NkKDIw KTsKKyBzcWxmeF9zZCAKKy0tLS0tLS0tLS0KKyAgICAgICAzMAorKDEgcm93KQorCitTRUxFQ1Qg cGxwZ3NxbGZ4X3NkKDIwKTsKKyBwbHBnc3FsZnhfc2QgCistLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAzMAorKDEgcm93KQorCitTRVQgUk9MRSBUTyBERUZBVUxUOworR1JBTlQgU0VMRUNUIE9O IFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc19ub293bmVyOworLS0gc2hvdWxkIGJlIG9rCitTRVQg Uk9MRSBUTyByZWdyZXNzX25vb3duZXI7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisg ICAxMAorKDEgcm93KQorCitTRUxFQ1Qgc3FsZngoMjApOworIHNxbGZ4IAorLS0tLS0tLQorICAg IDMwCisoMSByb3cpCisKK1NFTEVDVCBwbHBnc3FsZngoMjApOworIHBscGdzcWxmeCAKKy0tLS0t LS0tLS0tCisgICAgICAgIDMwCisoMSByb3cpCisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9Q IFZBUklBQkxFIHZhcjE7CitEUk9QIEZVTkNUSU9OIHNxbGZ4KGludCk7CitEUk9QIEZVTkNUSU9O IHBscGdzcWxmeChpbnQpOworRFJPUCBGVU5DVElPTiBzcWxmeF9zZChpbnQpOworRFJPUCBGVU5D VElPTiBwbHBnc3FsZnhfc2QoaW50KTsKK0RST1AgUk9MRSByZWdyZXNzX25vb3duZXI7CistLSB1 c2UgdmFyaWFibGVzIGluc2lkZSB2aWV3cworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJp YzsKKy0tIHVzZSB2YXJpYWJsZXMgaW4gdmlld3MKK0NSRUFURSBWSUVXIHRlc3RfdmlldyBBUyBT RUxFQ1QgQ09BTEVTQ0UodmFyMSArIHYsIDApIEFTIHJlc3VsdCBGUk9NIGdlbmVyYXRlX3Nlcmll cygxLDIpIGcodik7CitTRUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsKKyByZXN1bHQgCistLS0tLS0t LQorICAgICAgMAorICAgICAgMAorKDIgcm93cykKKworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNU ICogRlJPTSB0ZXN0X3ZpZXc7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgIDQuMTQKKyAgIDUuMTQK KygyIHJvd3MpCisKKy0tIHN0YXJ0IGEgbmV3IHNlc3Npb24KK1xjCitTRUxFQ1QgKiBGUk9NIHRl c3RfdmlldzsKKyByZXN1bHQgCistLS0tLS0tLQorICAgICAgMAorICAgICAgMAorKDIgcm93cykK KworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisgcmVzdWx0IAor LS0tLS0tLS0KKyAgIDQuMTQKKyAgIDUuMTQKKygyIHJvd3MpCisKKy0tIHNob3VsZCBmYWlsLCBk ZXBlbmRlbmN5CitEUk9QIFZBUklBQkxFIHZhcjE7CitFUlJPUjogIGNhbm5vdCBkcm9wIHNlc3Np b24gdmFyaWFibGUgdmFyMSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRB SUw6ICB2aWV3IHRlc3RfdmlldyBkZXBlbmRzIG9uIHNlc3Npb24gdmFyaWFibGUgdmFyMQorSElO VDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRv by4KKy0tIHNob3VsZCBiZSBvaworRFJPUCBWQVJJQUJMRSB2YXIxIENBU0NBREU7CitOT1RJQ0U6 ICBkcm9wIGNhc2NhZGVzIHRvIHZpZXcgdGVzdF92aWV3CitDUkVBVEUgVkFSSUFCTEUgdmFyMSB0 ZXh0OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgdGV4dDsKKy0tIHVzZSB2YXJpYWJsZXMgaW4gU1FM IGZ1bmN0aW9ucworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZngxKHZhcmNoYXIpCitS RVRVUk5TIHZhcmNoYXIgQVMgJCQgU0VMRUNUIHZhcjEgfHwgJywgJyB8fCAkMSAkJCBMQU5HVUFH RSBzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeDIoIHZhcmNoYXIpCitSRVRV Uk5TIHZhcmNoYXIgQVMgJCQgU0VMRUNUIHZhcjIgfHwgJywgJyB8fCAkMSAkJCBMQU5HVUFHRSBz cWw7CitMRVQgdmFyMSA9ICdzdHIxJzsKK0xFVCB2YXIyID0gJ3N0cjInOworU0VMRUNUIHNxbGZ4 MShzcWxmeDIoJ0hlbGxvJykpOworICAgICAgc3FsZngxICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLQorIHN0cjEsIHN0cjIsIEhlbGxvCisoMSByb3cpCisKKy0tIGlubGluaW5nIGlzIGJsb2Nr ZWQKK0VYUExBSU4gKENPU1RTIE9GRiwgVkVSQk9TRSkgU0VMRUNUIHNxbGZ4MShzcWxmeDIoJ0hl bGxvJykpOworICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBSZXN1bHQKKyAgIE91dHB1dDogc3FsZngxKHNxbGZ4MignSGVsbG8nOjpjaGFyYWN0 ZXIgdmFyeWluZykpCisoMiByb3dzKQorCitEUk9QIEZVTkNUSU9OIHNxbGZ4MSh2YXJjaGFyKTsK K0RST1AgRlVOQ1RJT04gc3FsZngyKHZhcmNoYXIpOworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJP UCBWQVJJQUJMRSB2YXIyOworLS0gYWNjZXNzIGZyb20gY2FjaGVkIHBsYW5zIHNob3VsZCB3b3Jr CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVO Q1RJT04gcGxwZ3NxbGZ4KCkKK1JFVFVSTlMgbnVtZXJpYyBBUyAkJCBCRUdJTiBSRVRVUk4gdmFy MTsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7CitzZXQgcGxhbl9jYWNoZV9tb2RlIFRPIGZvcmNl X2dlbmVyaWNfcGxhbjsKK0xFVCB2YXIxID0gMy4xNDsKK1NFTEVDVCBwbHBnc3FsZngoKTsKKyBw bHBnc3FsZnggCistLS0tLS0tLS0tLQorICAgICAgMy4xNAorKDEgcm93KQorCitMRVQgdmFyMSA9 IDMuMTQgKiAyOworU0VMRUNUIHBscGdzcWxmeCgpOworIHBscGdzcWxmeCAKKy0tLS0tLS0tLS0t CisgICAgICA2LjI4CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIGRlcGVuZGVu Y3kgKHBsYW4gaW52YWxpZGF0aW9uKSBzaG91bGQgd29yaworQ1JFQVRFIFZBUklBQkxFIHZhcjEg QVMgbnVtZXJpYzsKK0xFVCB2YXIxID0gMy4xNCAqIDM7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7Cisg cGxwZ3NxbGZ4IAorLS0tLS0tLS0tLS0KKyAgICAgIDkuNDIKKygxIHJvdykKKworTEVUIHZhcjEg PSAzLjE0ICogNDsKK1NFTEVDVCBwbHBnc3FsZngoKTsKKyBwbHBnc3FsZnggCistLS0tLS0tLS0t LQorICAgICAxMi41NgorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIEZVTkNU SU9OIHBscGdzcWxmeCgpOworc2V0IHBsYW5fY2FjaGVfbW9kZSBUTyBERUZBVUxUOworLS0gdXNh Z2UgTEVUIHN0YXRlbWVudCBpbiBwbHBnc3FsIHNob3VsZCB3b3JrCitDUkVBVEUgVkFSSUFCTEUg dmFyMSBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBudW1lcmljW107CitETyAkJAorQkVHSU4K KyAgTEVUIHZhcjIgPSAne30nOjppbnRbXTsKKyAgRk9SIGkgSU4gMS4uMTAKKyAgTE9PUAorICAg IExFVCB2YXIxID0gaTsKKyAgICBMRVQgdmFyMlt2YXIxXSA9IGk7CisgIEVORCBMT09QOworICBS QUlTRSBOT1RJQ0UgJ3Jlc3VsdCBhcnJheTogJScsIHZhcjI7CitFTkQ7CiskJDsKK05PVElDRTog IHJlc3VsdCBhcnJheTogezEsMiwzLDQsNSw2LDcsOCw5LDEwfQorRFJPUCBWQVJJQUJMRSB2YXIx OworRFJPUCBWQVJJQUJMRSB2YXIyOworLS0gQ0FMTCBzdGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRl ZCB5ZXQKKy0tIHJlcXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSBmcm9t IGV4cHJlc3Npb24gZXhlY3V0b3IKK0NSRUFURSBWQVJJQUJMRSB2IGludDsKK0NSRUFURSBQUk9D RURVUkUgcChhcmcgaW50KSBBUyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCBhcmc7IEVORCAk JCBMQU5HVUFHRSBwbHBnc3FsOworLS0gc2hvdWxkIG5vdCBjcmFzaCAoYnV0IGlzIG5vdCBzdXBw b3J0ZWQgeWV0KQorQ0FMTCBwKHYpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBi ZSB1c2VkIGFzIGFuIGFyZ3VtZW50CitETyAkJCBCRUdJTiBDQUxMIHAodik7IEVORCAkJDsKK0VS Uk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudAorQ09O VEVYVDogIFNRTCBzdGF0ZW1lbnQgIkNBTEwgcCh2KSIKK1BML3BnU1FMIGZ1bmN0aW9uIGlubGlu ZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBDQUxMCitEUk9QIFBST0NFRFVSRSBwKGludCk7CitEUk9Q IFZBUklBQkxFIHY7CistLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVkIHlldAor LS0gcmVxdWlyZXMgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZXhwcmVz c2lvbiBleGVjdXRvcgorQ1JFQVRFIFZBUklBQkxFIHYgaW50OworTEVUIHYgPSAyMDsKK1BSRVBB UkUgcHRlc3QoaW50KSBBUyBTRUxFQ1QgJDE7CistLSBzaG91bGQgZmFpbAorRVhFQ1VURSBwdGVz dCh2KTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1 bWVudAorREVBTExPQ0FURSBwdGVzdDsKK0RST1AgVkFSSUFCTEUgdjsKKy0tIHRlc3Qgc2VhcmNo IHBhdGgKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3Q7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3Qu dmFyMSBBUyBudW1lcmljOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gcGkoKTsKK0VSUk9S OiAgc2Vzc2lvbiB2YXJpYWJsZSAidmFyMSIgZG9lc24ndCBleGlzdAorTElORSAxOiBMRVQgdmFy MSA9IHBpKCk7CisgICAgICAgICAgICBeCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgY29sdW1uICJ2 YXIxIiBkb2VzIG5vdCBleGlzdAorTElORSAxOiBTRUxFQ1QgdmFyMTsKKyAgICAgICAgICAgICAg IF4KKy0tIHNob3VsZCBiZSBvaworTEVUIHN2YXJ0ZXN0LnZhcjEgPSBwaSgpOworU0VMRUNUIHN2 YXJ0ZXN0LnZhcjE7CisgICAgICAgdmFyMSAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLQorIDMu MTQxNTkyNjUzNTg5NzkKKygxIHJvdykKKworU0VUIHNlYXJjaF9wYXRoIFRPIHN2YXJ0ZXN0Owor LS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IHBpKCkgKyAxMDsKK1NFTEVDVCB2YXIxOworICAg ICAgIHZhcjEgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0KKyAxMy4xNDE1OTI2NTM1ODk4Ciso MSByb3cpCisKK1JFU0VUIHNlYXJjaF9wYXRoOworRFJPUCBTQ0hFTUEgc3ZhcnRlc3QgQ0FTQ0FE RTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdC52 YXIxCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0ZXh0OworLS0gdmFyaWFibGVzIGNhbiBiZSB1 cGRhdGVkIHVuZGVyIFJPIHRyYW5zYWN0aW9uCitCRUdJTjsKK1NFVCBUUkFOU0FDVElPTiBSRUFE IE9OTFk7CitMRVQgdmFyMSA9ICdoZWxsbyc7CitDT01NSVQ7CitTRUxFQ1QgdmFyMTsKKyB2YXIx ICAKKy0tLS0tLS0KKyBoZWxsbworKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSB0 ZXN0IG9mIGRvbWFpbnMKK0NSRUFURSBET01BSU4gaW50X2RvbWFpbiBBUyBpbnQgTk9UIE5VTEwg Q0hFQ0sgKFZBTFVFID4gMTAwKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludF9kb21haW47 CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjE7CitFUlJPUjogIGRvbWFpbiBpbnRfZG9tYWlu IGRvZXMgbm90IGFsbG93IG51bGwgdmFsdWVzCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0g MTAwMDsKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAxMDAwCisoMSByb3cpCisKKy0t IHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDEwOworRVJST1I6ICB2YWx1ZSBmb3IgZG9tYWluIGlu dF9kb21haW4gdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAiaW50X2RvbWFpbl9jaGVjayIKKy0t IHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IE5VTEw7CitFUlJPUjogIGRvbWFpbiBpbnRfZG9tYWlu IGRvZXMgbm90IGFsbG93IG51bGwgdmFsdWVzCistLSBub3RlIC0gZG9tYWluIGRlZmF1bHRzIGFy ZSBub3Qgc3VwcG9ydGVkIHlldCAobGlrZSBQTHBnU1FMKQorRFJPUCBWQVJJQUJMRSB2YXIxOwor RFJPUCBET01BSU4gaW50X2RvbWFpbjsKKy0tIHRoZSBleHByZXNzaW9uIHNob3VsZCByZW1haW4g InVua25vd24iCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ0bXVsdGlyYW5nZVtdOworLS0g c2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IE5VTEw7CitMRVQgdmFyMSA9ICd7IntbMiw4KSxbMTEs MTQpfSIsIntbNSw4KSxbMTIsMTQpfSJ9JzsKK0xFVCB2YXIxWzJdID0gJ3tbNSw4KSxbMTIsMTAw KX0nOworU0VMRUNUIHZhcjE7CisgICAgICAgICAgICAgICAgICB2YXIxICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgeyJ7WzIsOCks WzExLDE0KX0iLCJ7WzUsOCksWzEyLDEwMCl9In0KKygxIHJvdykKKworLS1JdCBzaG91bGQgd29y ayBpbiBwbHBnc3FsIHRvbworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gTlVMTDsKKyAgTEVU IHZhcjEgPSAneyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUsOCksWzEyLDE0KX0ifSc7CisgIExFVCB2 YXIxWzJdID0gJ3tbNSw4KSxbMTIsMTAwKX0nOworCisgIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7 CitFTkQ7CiskJDsKK05PVElDRTogIHsie1syLDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwxMDAp fSJ9CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0IENSRUFURSBW QVJJQUJMRSB2YXIxIEFTIGludCBDUkVBVEUgVEFCTEUgZm9vKGEgaW50KTsKK0xFVCBzdmFydGVz dC52YXIxID0gMTAwOworU0VMRUNUIHN2YXJ0ZXN0LnZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAx MDAKKygxIHJvdykKKworU0VUIHNlYXJjaF9wYXRoIHRvIHB1YmxpYywgc3ZhcnRlc3Q7CitTRUxF Q1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitEUk9QIFNDSEVNQSBz dmFydGVzdCBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAyIG90aGVyIG9iamVj dHMKK0RFVEFJTDogIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgZm9vCitkcm9wIGNhc2NhZGVzIHRv IHNlc3Npb24gdmFyaWFibGUgdmFyMQorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JF QVRFIFZBUklBQkxFIHZhcjIgQVMgaW50W107CitMRVQgdmFyMSA9IDI7CitMRVQgdmFyMiA9ICd7 fSc6OmludFtdOworTEVUIHZhcjJbdmFyMV0gPSAwOworU0VMRUNUIHZhcjI7CisgICB2YXIyICAg IAorLS0tLS0tLS0tLS0KKyBbMjoyXT17MH0KKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIx LCB2YXIyOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZh cjIgQVMgaW50W107CitMRVQgdmFyMSA9IDI7CitMRVQgdmFyMiA9ICd7fSc6OmludFtdOworU0VM RUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorIHt9CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUg dmFyMSwgdmFyMjsKKy0tIHRoZSBMRVQgc3RhdGVtZW50IHNob3VsZCBiZSBkaXNhbGxvd2VkIGlu IENURQorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworV0lUSCB4IEFTIChMRVQgdmFyMSA9 IDEwMCkgU0VMRUNUICogRlJPTSB4OworRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAi TEVUIgorTElORSAxOiBXSVRIIHggQVMgKExFVCB2YXIxID0gMTAwKSBTRUxFQ1QgKiBGUk9NIHg7 CisgICAgICAgICAgICAgICAgICAgXgorLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IGdlbmVy YXRlX3NlcmllcygxLCAxKTsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IGdlbmVyYXRlX3Nl cmllcygxLCAyKTsKK0VSUk9SOiAgZXhwcmVzc2lvbiByZXR1cm5lZCBtb3JlIHRoYW4gb25lIHJv dworTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwgMCk7CitFUlJPUjogIGV4cHJlc3Npb24g cmV0dXJuZWQgbm8gcm93cworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gY29tcG9zaXRlIHZhcmlh YmxlcworQ1JFQVRFIFRZUEUgc3ZfeHl6IEFTICh4IGludCwgeSBpbnQsIHogbnVtZXJpYygxMCwy KSk7CitDUkVBVEUgVkFSSUFCTEUgdjEgQVMgc3ZfeHl6OworQ1JFQVRFIFZBUklBQkxFIHYyIEFT IHN2X3h5ejsKK0xFVCB2MSA9ICgxLCAyLCAzLjE0KTsKK0xFVCB2MiA9ICgxMCwgMjAsIDMuMTQg KiAxMCk7CistLSBzaG91bGQgd29yayB0b28gLSB0aGVyZSBhcmUgcHJlcGFyZWQgY2FzdHMKK0xF VCB2MSA9ICgxLCAyLCAzKTsKK1NFTEVDVCB2MTsKKyAgICAgdjEgICAgIAorLS0tLS0tLS0tLS0t CisgKDEsMiwzLjAwKQorKDEgcm93KQorCitTRUxFQ1QgdjI7CisgICAgICB2MiAgICAgICAKKy0t LS0tLS0tLS0tLS0tLQorICgxMCwyMCwzMS40MCkKKygxIHJvdykKKworU0VMRUNUICh2MSkuKjsK KyB4IHwgeSB8ICB6ICAgCistLS0rLS0tKy0tLS0tLQorIDEgfCAyIHwgMy4wMAorKDEgcm93KQor CitTRUxFQ1QgKHYyKS4qOworIHggIHwgeSAgfCAgIHogICAKKy0tLS0rLS0tLSstLS0tLS0tCisg MTAgfCAyMCB8IDMxLjQwCisoMSByb3cpCisKK1NFTEVDVCB2MS54ICsgdjEuejsKKyA/Y29sdW1u PyAKKy0tLS0tLS0tLS0KKyAgICAgNC4wMAorKDEgcm93KQorCitTRUxFQ1QgdjIueCArIHYyLno7 CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgICAgNDEuNDAKKygxIHJvdykKKworLS0gYWNjZXNz IHRvIGNvbXBvc2l0ZSBmaWVsZHMgc2hvdWxkIGJlIHNhZmUgdG9vCitDUkVBVEUgUk9MRSByZWdy ZXNzX3Zhcl90ZXN0X3JvbGU7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7Cist LSBzaG91bGQgZmFpbAorU0VMRUNUIHYyLng7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZv ciBzZXNzaW9uIHZhcmlhYmxlIHYyCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJM RSB2MTsKK0RST1AgVkFSSUFCTEUgdjI7CitEUk9QIFRZUEUgc3ZfeHl6OworRFJPUCBST0xFIHJl Z3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK0NSRUFURSBUWVBFIHQxIEFTIChhIGludCwgYiBudW1lcmlj LCBjIHRleHQpOworQ1JFQVRFIFZBUklBQkxFIHYxIEFTIHQxOworTEVUIHYxID0gKDEsIHBpKCks ICdoZWxsbycpOworU0VMRUNUIHYxOworICAgICAgICAgICAgIHYxICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICgxLDMuMTQxNTkyNjUzNTg5NzksaGVsbG8pCiso MSByb3cpCisKK0xFVCB2MS5iID0gMTAuMjIyMjsKK1NFTEVDVCB2MTsKKyAgICAgICAgdjEgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoMSwxMC4yMjIyLGhlbGxvKQorKDEgcm93KQor CistLSBzaG91bGQgZmFpbCwgYXR0cmlidXRlIGRvZXNuJ3QgZXhpc3QKK0xFVCB2MS54ID0gMTA7 CitFUlJPUjogIGNhbm5vdCBhc3NpZ24gdG8gZmllbGQgIngiIG9mIGNvbHVtbiAidjEiIGJlY2F1 c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHQxCitMSU5FIDE6IExFVCB2 MS54ID0gMTA7CisgICAgICAgICAgICBeCistLSBzaG91bGQgZmFpbCwgZG9uJ3QgYWxsb3cgbXVs dGkgY29sdW1uIHF1ZXJ5CitMRVQgdjEgPSAoTlVMTDo6dDEpLio7CitFUlJPUjogIGFzc2lnbm1l bnQgZXhwcmVzc2lvbiByZXR1cm5lZCAzIGNvbHVtbnMKK0xJTkUgMTogTEVUIHYxID0gKE5VTEw6 OnQxKS4qOworICAgICAgICAgICAgICAgICAgXgorLS0gYWxsb3cgRFJPUCBvciBBREQgQVRUUklC VVRFIG9uIGNvbXBvc2l0ZSB0eXBlcworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIERS T1AgQVRUUklCVVRFIGM7CitTRUxFQ1QgdjE7CisgICAgIHYxICAgICAgCistLS0tLS0tLS0tLS0t CisgKDEsMTAuMjIyMikKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQx IEFERCBBVFRSSUJVVEUgYyBpbnQ7CitTRUxFQ1QgdjE7CisgICAgICB2MSAgICAgIAorLS0tLS0t LS0tLS0tLS0KKyAoMSwxMC4yMjIyLCkKKygxIHJvdykKKworTEVUIHYxID0gKDEwLCAxMC4zLCAy MCk7CitTRUxFQ1QgdjE7CisgICAgICB2MSAgICAgIAorLS0tLS0tLS0tLS0tLS0KKyAoMTAsMTAu MywyMCkKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIERST1AgQVRU UklCVVRFIGI7CitTRUxFQ1QgdjE7CisgICB2MSAgICAKKy0tLS0tLS0tLQorICgxMCwyMCkKKygx IHJvdykKKworLS0gc2hvdWxkIGZhaWwsIGRpc2FsbG93IGRhdGEgdHlwZSBjaGFuZ2UKK0FMVEVS IFRZUEUgdDEgQUxURVIgQVRUUklCVVRFIGMgVFlQRSBpbnQ7CitFUlJPUjogIGNhbm5vdCBhbHRl ciB0eXBlICJ0MSIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudjEiIHVzZXMgaXQK K0RST1AgVkFSSUFCTEUgdjE7CitEUk9QIFRZUEUgdDE7CistLSB0aGUgdGFibGUgdHlwZSBjYW4g YmUgdXNlZCBhcyBjb21wb3NpdGUgdHlwZSB0b28KK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoYSBp bnQsIGIgbnVtZXJpYywgYyBkYXRlKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHN2YXJfdGVz dDsKK0xFVCB2YXIxID0gKDEwLCBwaSgpLCAnMjAyMy0wNS0yNicpOworU0VMRUNUIHZhcjE7Cisg ICAgICAgICAgICAgICB2YXIxICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgKDEwLDMuMTQxNTkyNjUzNTg5NzksMDUtMjYtMjAyMykKKygxIHJvdykK KworLS0gc2hvdWxkIGZhaWwgZHVlIGRlcGVuZGVuY3kKK0FMVEVSIFRBQkxFIHN2YXJfdGVzdCBB TFRFUiBDT0xVTU4gYSBUWVBFIHRleHQ7CitFUlJPUjogIGNhbm5vdCBhbHRlciB0YWJsZSAic3Zh cl90ZXN0IiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiB1c2VzIGl0Cist LSBzaG91bGQgZmFpbAorRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CitFUlJPUjogIGNhbm5vdCBkcm9w IHRhYmxlIHN2YXJfdGVzdCBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRB SUw6ICBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgZGVwZW5kcyBvbiB0eXBlIHN2YXJfdGVzdAorSElO VDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRv by4KK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVEFCTEUgc3Zhcl90ZXN0OworLS0gYXJyYXlz IGFyZSBzdXBwb3J0ZWQKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWNbXTsKK0xFVCB2 YXIxID0gQVJSQVlbMS4xLDIuMV07CitMRVQgdmFyMVsxXSA9IDEwLjE7CitTRUxFQ1QgdmFyMTsK KyAgICB2YXIxICAgIAorLS0tLS0tLS0tLS0tCisgezEwLjEsMi4xfQorKDEgcm93KQorCistLSBM RVQgdGFyZ2V0IGRvZXNuJ3QgYWxsb3cgc3JmLCBzaG91bGQgZmFpbAorTEVUIHZhcjFbZ2VuZXJh dGVfc2VyaWVzKDEsMyldID0gMTAwOworRVJST1I6ICBzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBh cmUgbm90IGFsbG93ZWQgaW4gTEVUCitMSU5FIDE6IExFVCB2YXIxW2dlbmVyYXRlX3Nlcmllcygx LDMpXSA9IDEwMDsKKyAgICAgICAgICAgICAgICAgXgorRFJPUCBWQVJJQUJMRSB2YXIxOworLS0g YXJyYXlzIGluc2lkZSBjb21wb3NpdGUKK0NSRUFURSBUWVBFIHQxIEFTIChhIG51bWVyaWMsIGIg bnVtZXJpY1tdKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHQxOworTEVUIHZhcjEgPSAoMTAu MSwgQVJSQVlbMC4wLCAwLjBdKTsKK0xFVCB2YXIxLmEgPSAxMC4yOworU0VMRUNUIHZhcjE7Cisg ICAgICAgIHZhcjEgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoMTAuMiwiezAuMCww LjB9IikKKygxIHJvdykKKworTEVUIHZhcjEuYlsxXSA9IDEwLjM7CitTRUxFQ1QgdmFyMTsKKyAg ICAgICAgdmFyMSAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKDEwLjIsInsxMC4z LDAuMH0iKQorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZUEUgdDE7Cist LSBFbmNvdXJhZ2UgdXNlIG9mIHBhcmFsbGVsIHBsYW5zCitTRVQgcGFyYWxsZWxfc2V0dXBfY29z dCA9IDA7CitTRVQgcGFyYWxsZWxfdHVwbGVfY29zdCA9IDA7CitTRVQgbWluX3BhcmFsbGVsX3Rh YmxlX3NjYW5fc2l6ZSA9IDA7CitTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhlciA9 IDI7CistLSB0ZXN0IG9uIHF1ZXJ5IHdpdGggd29ya2VycworQ1JFQVRFIFRBQkxFIHN2YXJfdGVz dChhIGludCk7CitJTlNFUlQgSU5UTyBzdmFyX3Rlc3QgU0VMRUNUICogRlJPTSBnZW5lcmF0ZV9z ZXJpZXMoMSwxMDAwKTsKK0FOQUxZWkUgc3Zhcl90ZXN0OworQ1JFQVRFIFZBUklBQkxFIHplcm8g aW50OworTEVUIHplcm8gPSAwOworLS0gcmVzdWx0IHNob3VsZCBiZSAxMDAKK1NFTEVDVCBjb3Vu dCgqKSBGUk9NIHN2YXJfdGVzdCBXSEVSRSBhJTEwID0gemVybzsKKyBjb3VudCAKKy0tLS0tLS0K KyAgIDEwMAorKDEgcm93KQorCistLSBwYXJhbGxlbCBleGVjdXRpb24gaXMgbm90IHN1cHBvcnRl ZCB5ZXQKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0 IFdIRVJFIGElMTAgPSB6ZXJvOworICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgQWdncmVnYXRlCisgICAtPiAg U2VxIFNjYW4gb24gc3Zhcl90ZXN0CisgICAgICAgICBGaWx0ZXI6ICgoYSAlIDEwKSA9IHplcm8p CisoMyByb3dzKQorCitMRVQgemVybyA9IChTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3Qp OworLS0gcmVzdWx0IHNob3VsZCBiZSAxMDAwCitTRUxFQ1QgemVybzsKKyB6ZXJvIAorLS0tLS0t CisgMTAwMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHplcm87CitEUk9QIFRBQkxFIHN2YXJf dGVzdDsKK1JFU0VUIHBhcmFsbGVsX3NldHVwX2Nvc3Q7CitSRVNFVCBwYXJhbGxlbF90dXBsZV9j b3N0OworUkVTRVQgbWluX3BhcmFsbGVsX3RhYmxlX3NjYW5fc2l6ZTsKK1JFU0VUIG1heF9wYXJh bGxlbF93b3JrZXJzX3Blcl9nYXRoZXI7CistLSB0aGUgcmVzdWx0IG9mIHZpZXcgc2hvdWxkIGJl IHNhbWUgaW4gcGFyYWxsZWwgbW9kZSB0b28KK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsK K0xFVCB2YXIxID0gMTA7CitDUkVBVEUgVklFVyB2YXIxdmlldyBBUyBTRUxFQ1QgQ09BTEVTQ0Uo dmFyMSwgMCkgQVMgcmVzdWx0OworU0VMRUNUICogRlJPTSB2YXIxdmlldzsKKyByZXN1bHQgCist LS0tLS0tLQorICAgICAxMAorKDEgcm93KQorCitTRVQgZGVidWdfcGFyYWxsZWxfcXVlcnkgVE8g b247CitTRUxFQ1QgKiBGUk9NIHZhcjF2aWV3OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICAgIDEw CisoMSByb3cpCisKK1NFVCBkZWJ1Z19wYXJhbGxlbF9xdWVyeSBUTyBvZmY7CitEUk9QIFZJRVcg dmFyMXZpZXc7CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyaWQgaW50 OworQ1JFQVRFIFRBQkxFIHN2YXJfdGVzdChpZCBpbnQsIHYgaW50KTsKK0xFVCB2YXJpZCA9IDE7 CitJTlNFUlQgSU5UTyBzdmFyX3Rlc3QgVkFMVUVTKHZhcmlkLCAxMDApOworU0VMRUNUICogRlJP TSBzdmFyX3Rlc3Q7CisgaWQgfCAgdiAgCistLS0tKy0tLS0tCisgIDEgfCAxMDAKKygxIHJvdykK KworVVBEQVRFIHN2YXJfdGVzdCBTRVQgdiA9IDIwMCBXSEVSRSBpZCA9IHZhcmlkOworU0VMRUNU ICogRlJPTSBzdmFyX3Rlc3Q7CisgaWQgfCAgdiAgCistLS0tKy0tLS0tCisgIDEgfCAyMDAKKygx IHJvdykKKworREVMRVRFIEZST00gc3Zhcl90ZXN0IFdIRVJFIGlkID0gdmFyaWQ7CitTRUxFQ1Qg KiBGUk9NIHN2YXJfdGVzdDsKKyBpZCB8IHYgCistLS0tKy0tLQorKDAgcm93cykKKworRFJPUCBU QUJMRSBzdmFyX3Rlc3Q7CitEUk9QIFZBUklBQkxFIHZhcmlkOworLS0gdmlzaWJpbGl0eSBjaGVj aworLS0gdmFyaWFibGVzIHNob3VsZCBiZSBzaGFkb3dlZCBhbHdheXMKK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIHRleHQ7CitTRUxFQ1QgdmFyMS5yZWxuYW1lIEZST00gcGdfY2xhc3MgdmFyMSBX SEVSRSB2YXIxLnJlbG5hbWUgPSAncGdfY2xhc3MnOworIHJlbG5hbWUgIAorLS0tLS0tLS0tLQor IHBnX2NsYXNzCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBUQUJMRSB4 eHRhYihhdmFyIGludCk7CitJTlNFUlQgSU5UTyB4eHRhYiBWQUxVRVMoMzMzKTsKK0NSRUFURSBU WVBFIHh4dHlwZSBBUyAoYXZhciBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHh4dGFiIEFTIHh4dHlw ZTsKK0lOU0VSVCBJTlRPIHh4dGFiIFZBTFVFUygxMCk7CistLSBpdCBpcyBhbWJpZ3VvdXMsIGJ1 dCBjb2x1bW5zIGFyZSBwcmVmZXJyZWQKK1NFTEVDVCB4eHRhYi5hdmFyIEZST00geHh0YWI7Cisg YXZhciAKKy0tLS0tLQorICAzMzMKKyAgIDEwCisoMiByb3dzKQorCistLSBzaG91bGQgYmUgb2sK K1NFTEVDVCBhdmFyIEZST00geHh0YWI7CisgYXZhciAKKy0tLS0tLQorICAzMzMKKyAgIDEwCiso MiByb3dzKQorCitDUkVBVEUgVkFSSUFCTEUgcHVibGljLmF2YXIgQVMgaW50OworLS0gc2hvdWxk IGJlIG9rLCBzZWUgdGhlIHRhYmxlCitTRUxFQ1QgYXZhciBGUk9NIHh4dGFiOworIGF2YXIgCist LS0tLS0KKyAgMzMzCisgICAxMAorKDIgcm93cykKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1Qg cHVibGljLmF2YXIgRlJPTSB4eHRhYjsKKyBhdmFyIAorLS0tLS0tCisgICAgIAorICAgICAKKygy IHJvd3MpCisKK0RST1AgVkFSSUFCTEUgeHh0YWI7CitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHh4 dGFiOworIGF2YXIgCistLS0tLS0KKyAgMzMzCisgICAxMAorKDIgcm93cykKKworRFJPUCBWQVJJ QUJMRSBwdWJsaWMuYXZhcjsKK0RST1AgVFlQRSB4eHR5cGU7CitEUk9QIFRBQkxFIHh4dGFiOwor LS0gVGhlIHZhcmlhYmxlIGNhbiBiZSBzaGFkb3dlZCBieSB0YWJsZSBvciBieSBhbGlhcworQ1JF QVRFIFRZUEUgcHVibGljLnN2YXJfdHlwZSBBUyAoYSBpbnQsIGIgaW50LCBjIGludCk7CitDUkVB VEUgVkFSSUFCTEUgcHVibGljLnN2YXIgQVMgcHVibGljLnN2YXJfdHlwZTsKK0NSRUFURSBUQUJM RSBwdWJsaWMuc3ZhcihhIGludCwgYiBpbnQpOworSU5TRVJUIElOVE8gcHVibGljLnN2YXIgVkFM VUVTKDEwLCAyMCk7CitMRVQgcHVibGljLnN2YXIgPSAoMTAwLCAyMDAsIDMwMCk7CistLSBzaG91 bGQgYmUgb2sKKy0tIHNob3cgdGFibGUKK1NFTEVDVCAqIEZST00gcHVibGljLnN2YXI7CisgYSAg fCBiICAKKy0tLS0rLS0tLQorIDEwIHwgMjAKKygxIHJvdykKKworU0VMRUNUIHN2YXIuYSBGUk9N IHB1YmxpYy5zdmFyOworIGEgIAorLS0tLQorIDEwCisoMSByb3cpCisKK1NFTEVDVCBzdmFyLiog RlJPTSBwdWJsaWMuc3ZhcjsKKyBhICB8IGIgIAorLS0tLSstLS0tCisgMTAgfCAyMAorKDEgcm93 KQorCistLSBzaG93IHZhcmlhYmxlCitTRUxFQ1QgcHVibGljLnN2YXI7CisgICAgIHN2YXIgICAg ICAKKy0tLS0tLS0tLS0tLS0tLQorICgxMDAsMjAwLDMwMCkKKygxIHJvdykKKworU0VMRUNUIHB1 YmxpYy5zdmFyLmM7CisgIGMgIAorLS0tLS0KKyAzMDAKKygxIHJvdykKKworU0VMRUNUIChwdWJs aWMuc3ZhcikuKjsKKyAgYSAgfCAgYiAgfCAgYyAgCistLS0tLSstLS0tLSstLS0tLQorIDEwMCB8 IDIwMCB8IDMwMAorKDEgcm93KQorCistLSB0aGUgdmFyaWFibGUgaXMgc2hhZG93ZWQsIHJhaXNl IGVycm9yCitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworRVJST1I6ICBj b2x1bW4gc3Zhci5jIGRvZXMgbm90IGV4aXN0CitMSU5FIDE6IFNFTEVDVCBwdWJsaWMuc3Zhci5j IEZST00gcHVibGljLnN2YXI7CisgICAgICAgICAgICAgICBeCistLSBjYW4gYmUgZml4ZWQgYnkg YWxpYXMKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXIgeDsKKyAgYyAgCist LS0tLQorIDMwMAorKDEgcm93KQorCitTRUxFQ1Qgc3Zhci5hIEZST00gcHVibGljLnN2YXI7Cisg YSAgCistLS0tCisgMTAKKygxIHJvdykKKworU0VMRUNUIHN2YXIuKiBGUk9NIHB1YmxpYy5zdmFy OworIGEgIHwgYiAgCistLS0tKy0tLS0KKyAxMCB8IDIwCisoMSByb3cpCisKKy0tIHNob3cgdmFy aWFibGUKK1NFTEVDVCBwdWJsaWMuc3ZhcjsKKyAgICAgc3ZhciAgICAgIAorLS0tLS0tLS0tLS0t LS0tCisgKDEwMCwyMDAsMzAwKQorKDEgcm93KQorCitTRUxFQ1QgcHVibGljLnN2YXIuYzsKKyAg YyAgCistLS0tLQorIDMwMAorKDEgcm93KQorCitTRUxFQ1QgKHB1YmxpYy5zdmFyKS4qOworICBh ICB8ICBiICB8ICBjICAKKy0tLS0tKy0tLS0tKy0tLS0tCisgMTAwIHwgMjAwIHwgMzAwCisoMSBy b3cpCisKKy0tIHRoZSB2YXJpYWJsZSBpcyBzaGFkb3dlZCwgcmFpc2UgZXJyb3IKK1NFTEVDVCBw dWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXI7CitFUlJPUjogIGNvbHVtbiBzdmFyLmMgZG9l cyBub3QgZXhpc3QKK0xJTkUgMTogU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3Zh cjsKKyAgICAgICAgICAgICAgIF4KKy0tIGNhbiBiZSBmaXhlZCBieSBhbGlhcworU0VMRUNUIHB1 YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhciB4OworICBjICAKKy0tLS0tCisgMzAwCisoMSBy b3cpCisKK0RST1AgVkFSSUFCTEUgcHVibGljLnN2YXI7CitEUk9QIFRBQkxFIHB1YmxpYy5zdmFy OworRFJPUCBUWVBFIHB1YmxpYy5zdmFyX3R5cGU7CitDUkVBVEUgVFlQRSBhYiBBUyAoYSBpbnRl Z2VyLCBiIGludGVnZXIpOworQ1JFQVRFIFZBUklBQkxFIHZfYWIgQVMgYWI7CitDUkVBVEUgVEFC TEUgdl9hYiAoYSBpbnRlZ2VyLCBiIGludGVnZXIpOworSU5TRVJUIElOVE8gdl9hYiBWQUxVRVMo MTAsMjApOworLS0gd2Ugc2hvdWxkIHNlZSB0YWJsZQorU0VMRUNUIHZfYWIuYSBGUk9NIHZfYWI7 CisgYSAgCistLS0tCisgMTAKKygxIHJvdykKKworQ1JFQVRFIFNDSEVNQSB2X2FiOworQ1JFQVRF IFZBUklBQkxFIHZfYWIuYSBBUyBpbnRlZ2VyOworLS0gd2Ugc2hvdWxkIHNlZSB0YWJsZQorU0VM RUNUIHZfYWIuYSBGUk9NIHZfYWI7CisgYSAgCistLS0tCisgMTAKKygxIHJvdykKKworRFJPUCBW QVJJQUJMRSB2X2FiOworRFJPUCBUQUJMRSB2X2FiOworRFJPUCBUWVBFIGFiOworRFJPUCBWQVJJ QUJMRSB2X2FiLmE7CitEUk9QIFNDSEVNQSB2X2FiOworQ1JFQVRFIFRZUEUgdF9hbV90eXBlIEFT IChiIGludCk7CitDUkVBVEUgU0NIRU1BIHh4eF9hbTsKK1NFVCBzZWFyY2hfcGF0aCBUTyBwdWJs aWM7CitDUkVBVEUgVkFSSUFCTEUgeHh4X2FtIEFTIHRfYW1fdHlwZTsKK0xFVCB4eHhfYW0gPSBS T1coMTApOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgeHh4X2FtOworIHh4eF9hbSAKKy0tLS0t LS0tCisgKDEwKQorKDEgcm93KQorCitDUkVBVEUgVkFSSUFCTEUgeHh4X2FtLmIgQVMgaW50Owor TEVUIDoiREJOQU1FIi54eHhfYW0uYiA9IDIwOworLS0gc2hvdWxkIGJlIHN0aWxsIG9rCitTRUxF Q1QgeHh4X2FtOworIHh4eF9hbSAKKy0tLS0tLS0tCisgKDEwKQorKDEgcm93KQorCistLSBzaG91 bGQgZmFpbCwgdGhlIHJlZmVyZW5jZSBzaG91bGQgYmUgYW1iaWd1b3VzCitTRUxFQ1QgeHh4X2Ft LmI7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgcmVmZXJlbmNlICJ4eHhfYW0uYiIgaXMgYW1i aWd1b3VzCitMSU5FIDE6IFNFTEVDVCB4eHhfYW0uYjsKKyAgICAgICAgICAgICAgIF4KKy0tIGVu aGFuY2VkIHJlZmVyZW5jZXMgc2hvdWxkIGJlIG9rCitTRUxFQ1QgcHVibGljLnh4eF9hbS5iOwor IGIgIAorLS0tLQorIDEwCisoMSByb3cpCisKK1NFTEVDVCA6IkRCTkFNRSIueHh4X2FtLmI7Cisg YiAgCistLS0tCisgMjAKKygxIHJvdykKKworQ1JFQVRFIFRBQkxFIHh4eF9hbShiICBpbnQpOwor SU5TRVJUIElOVE8geHh4X2FtIFZBTFVFUygxMCk7CistLSB3ZSBzaG91bGQgc2VlIHRhYmxlCitT RUxFQ1QgeHh4X2FtLmIgRlJPTSB4eHhfYW07CisgYiAgCistLS0tCisgMTAKKygxIHJvdykKKwor U0VMRUNUIHguYiBGUk9NIHh4eF9hbSB4OworIGIgIAorLS0tLQorIDEwCisoMSByb3cpCisKK0RS T1AgVEFCTEUgeHh4X2FtOworRFJPUCBWQVJJQUJMRSBwdWJsaWMueHh4X2FtOworRFJPUCBWQVJJ QUJMRSB4eHhfYW0uYjsKK0RST1AgU0NIRU1BIHh4eF9hbTsKK0NSRUFURSBTQ0hFTUEgOiJEQk5B TUUiOworQ1JFQVRFIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiIEFTIHRf YW1fdHlwZTsKK0NSRUFURSBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmIgQVMgaW50Owor U0VUIHNlYXJjaF9wYXRoIFRPIDoiREJOQU1FIjsKKy0tIHNob3VsZCBiZSBhbWJpZ3VvdXMKK1NF TEVDVCA6IkRCTkFNRSIuYjsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSByZWZlcmVuY2UgInJl Z3Jlc3Npb24uYiIgaXMgYW1iaWd1b3VzCitMSU5FIDE6IFNFTEVDVCAicmVncmVzc2lvbiIuYjsK KyAgICAgICAgICAgICAgIF4KKy0tIHNob3VsZCBiZSBhbWJpZ3VvdXMgdG9vCitTRUxFQ1QgOiJE Qk5BTUUiLjoiREJOQU1FIi5iOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSAi cmVncmVzc2lvbi5yZWdyZXNzaW9uLmIiIGlzIGFtYmlndW91cworTElORSAxOiBTRUxFQ1QgInJl Z3Jlc3Npb24iLiJyZWdyZXNzaW9uIi5iOworICAgICAgICAgICAgICAgXgorQ1JFQVRFIFRBQkxF IDoiREJOQU1FIihiIGludCk7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCA6IkRCTkFNRSIuYiBG Uk9NIDoiREJOQU1FIjsKKyBiIAorLS0tCisoMCByb3dzKQorCitEUk9QIFRBQkxFIDoiREJOQU1F IjsKK0RST1AgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi5iOworRFJPUCBWQVJJQUJMRSA6 IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJOQU1FIjsKK0RST1AgU0NIRU1BIDoiREJOQU1FIjsKK1JF U0VUIHNlYXJjaF9wYXRoOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCmluZGV4IDJhNGQ0MjlhOTguLmEzNDcxZWY1ZDAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTI2MSwzICsyNjEsNjQyIEBAIERST1AgUk9MRSBy ZWdyZXNzX3ZhcmlhYmxlX3IxOwogRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CiAKIERS T1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworCistLSBjaGVjayBhY2Nlc3MgcmlnaHRz CitDUkVBVEUgUk9MRSByZWdyZXNzX25vb3duZXI7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFT IGludDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZngoaW50KQorUkVUVVJOUyBp bnQgQVMgJCQgU0VMRUNUICQxICsgdmFyMSAkJCBMQU5HVUFHRSBzcWw7CisKK0NSRUFURSBPUiBS RVBMQUNFIEZVTkNUSU9OIHNxbGZ4X3NkKGludCkKK1JFVFVSTlMgaW50IEFTICQkIFNFTEVDVCAk MSArIHZhcjEgJCQgTEFOR1VBR0Ugc3FsIFNFQ1VSSVRZIERFRklORVI7CisKK0NSRUFURSBPUiBS RVBMQUNFIEZVTkNUSU9OIHBscGdzcWxmeChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBCRUdJTiBS RVRVUk4gJDEgKyB2YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4X3NkKGludCkKK1JFVFVSTlMgaW50IEFTICQkIEJFR0lO IFJFVFVSTiAkMSArIHZhcjE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsIFNFQ1VSSVRZIERFRklO RVI7CisKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworU0VM RUNUIHNxbGZ4KDIwKTsKK1NFTEVDVCBzcWxmeF9zZCgyMCk7CitTRUxFQ1QgcGxwZ3NxbGZ4KDIw KTsKK1NFTEVDVCBwbHBnc3FsZnhfc2QoMjApOworCistLSBzaG91bGQgZmFpbAorU0VUIFJPTEUg VE8gcmVncmVzc19ub293bmVyOworCitTRUxFQ1QgdmFyMTsKK1NFTEVDVCBzcWxmeCgyMCk7CitT RUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1Qgc3FsZnhfc2Qo MjApOworU0VMRUNUIHBscGdzcWxmeF9zZCgyMCk7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitH UkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX25vb3duZXI7CisKKy0tIHNo b3VsZCBiZSBvaworU0VUIFJPTEUgVE8gcmVncmVzc19ub293bmVyOworCitTRUxFQ1QgdmFyMTsK K1NFTEVDVCBzcWxmeCgyMCk7CitTRUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKKworU0VUIFJPTEUgVE8g REVGQVVMVDsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gc3FsZngoaW50KTsK K0RST1AgRlVOQ1RJT04gcGxwZ3NxbGZ4KGludCk7CitEUk9QIEZVTkNUSU9OIHNxbGZ4X3NkKGlu dCk7CitEUk9QIEZVTkNUSU9OIHBscGdzcWxmeF9zZChpbnQpOworCitEUk9QIFJPTEUgcmVncmVz c19ub293bmVyOworCistLSB1c2UgdmFyaWFibGVzIGluc2lkZSB2aWV3cworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgbnVtZXJpYzsKKworLS0gdXNlIHZhcmlhYmxlcyBpbiB2aWV3cworQ1JFQVRF IFZJRVcgdGVzdF92aWV3IEFTIFNFTEVDVCBDT0FMRVNDRSh2YXIxICsgdiwgMCkgQVMgcmVzdWx0 IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMikgZyh2KTsKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3 OworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisKKy0tIHN0YXJ0 IGEgbmV3IHNlc3Npb24KK1xjCisKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworTEVUIHZhcjEg PSAzLjE0OworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisKKy0tIHNob3VsZCBmYWlsLCBkZXBl bmRlbmN5CitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworRFJPUCBWQVJJ QUJMRSB2YXIxIENBU0NBREU7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIHRleHQ7CitDUkVBVEUg VkFSSUFCTEUgdmFyMiB0ZXh0OworCistLSB1c2UgdmFyaWFibGVzIGluIFNRTCBmdW5jdGlvbnMK K0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4MSh2YXJjaGFyKQorUkVUVVJOUyB2YXJj aGFyIEFTICQkIFNFTEVDVCB2YXIxIHx8ICcsICcgfHwgJDEgJCQgTEFOR1VBR0Ugc3FsOworCitD UkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeDIoIHZhcmNoYXIpCitSRVRVUk5TIHZhcmNo YXIgQVMgJCQgU0VMRUNUIHZhcjIgfHwgJywgJyB8fCAkMSAkJCBMQU5HVUFHRSBzcWw7CisKK0xF VCB2YXIxID0gJ3N0cjEnOworTEVUIHZhcjIgPSAnc3RyMic7CisKK1NFTEVDVCBzcWxmeDEoc3Fs ZngyKCdIZWxsbycpKTsKKworLS0gaW5saW5pbmcgaXMgYmxvY2tlZAorRVhQTEFJTiAoQ09TVFMg T0ZGLCBWRVJCT1NFKSBTRUxFQ1Qgc3FsZngxKHNxbGZ4MignSGVsbG8nKSk7CisKK0RST1AgRlVO Q1RJT04gc3FsZngxKHZhcmNoYXIpOworRFJPUCBGVU5DVElPTiBzcWxmeDIodmFyY2hhcik7CitE Uk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CisKKy0tIGFjY2VzcyBmcm9t IGNhY2hlZCBwbGFucyBzaG91bGQgd29yaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJp YzsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4KCkKK1JFVFVSTlMgbnVt ZXJpYyBBUyAkJCBCRUdJTiBSRVRVUk4gdmFyMTsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7CisK K3NldCBwbGFuX2NhY2hlX21vZGUgVE8gZm9yY2VfZ2VuZXJpY19wbGFuOworCitMRVQgdmFyMSA9 IDMuMTQ7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CitMRVQgdmFyMSA9IDMuMTQgKiAyOworU0VMRUNU IHBscGdzcWxmeCgpOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIGRlcGVuZGVuY3kgKHBs YW4gaW52YWxpZGF0aW9uKSBzaG91bGQgd29yaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVt ZXJpYzsKKworTEVUIHZhcjEgPSAzLjE0ICogMzsKK1NFTEVDVCBwbHBnc3FsZngoKTsKK0xFVCB2 YXIxID0gMy4xNCAqIDQ7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CisKK0RST1AgVkFSSUFCTEUgdmFy MTsKK0RST1AgRlVOQ1RJT04gcGxwZ3NxbGZ4KCk7CisKK3NldCBwbGFuX2NhY2hlX21vZGUgVE8g REVGQVVMVDsKKworLS0gdXNhZ2UgTEVUIHN0YXRlbWVudCBpbiBwbHBnc3FsIHNob3VsZCB3b3Jr CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBudW1lcmlj W107CisKK0RPICQkCitCRUdJTgorICBMRVQgdmFyMiA9ICd7fSc6OmludFtdOworICBGT1IgaSBJ TiAxLi4xMAorICBMT09QCisgICAgTEVUIHZhcjEgPSBpOworICAgIExFVCB2YXIyW3ZhcjFdID0g aTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElDRSAncmVzdWx0IGFycmF5OiAlJywgdmFyMjsK K0VORDsKKyQkOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CisK Ky0tIENBTEwgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0CistLSByZXF1aXJlcyBkaXJl Y3QgYWNjZXNzIHRvIHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCitD UkVBVEUgVkFSSUFCTEUgdiBpbnQ7CisKK0NSRUFURSBQUk9DRURVUkUgcChhcmcgaW50KSBBUyAk JCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCBhcmc7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOwor CistLSBzaG91bGQgbm90IGNyYXNoIChidXQgaXMgbm90IHN1cHBvcnRlZCB5ZXQpCitDQUxMIHAo dik7CisKK0RPICQkIEJFR0lOIENBTEwgcCh2KTsgRU5EICQkOworCitEUk9QIFBST0NFRFVSRSBw KGludCk7CitEUk9QIFZBUklBQkxFIHY7CisKKy0tIEVYRUNVVEUgc3RhdGVtZW50IGlzIG5vdCBz dXBwb3J0ZWQgeWV0CistLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24gdmFyaWFi bGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCitDUkVBVEUgVkFSSUFCTEUgdiBpbnQ7CitMRVQg diA9IDIwOworUFJFUEFSRSBwdGVzdChpbnQpIEFTIFNFTEVDVCAkMTsKKworLS0gc2hvdWxkIGZh aWwKK0VYRUNVVEUgcHRlc3Qodik7CisKK0RFQUxMT0NBVEUgcHRlc3Q7CitEUk9QIFZBUklBQkxF IHY7CisKKy0tIHRlc3Qgc2VhcmNoIHBhdGgKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3Q7CitDUkVB VEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBudW1lcmljOworCistLSBzaG91bGQgZmFpbAor TEVUIHZhcjEgPSBwaSgpOworU0VMRUNUIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHN2 YXJ0ZXN0LnZhcjEgPSBwaSgpOworU0VMRUNUIHN2YXJ0ZXN0LnZhcjE7CisKK1NFVCBzZWFyY2hf cGF0aCBUTyBzdmFydGVzdDsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IHBpKCkgKyAx MDsKK1NFTEVDVCB2YXIxOworCitSRVNFVCBzZWFyY2hfcGF0aDsKK0RST1AgU0NIRU1BIHN2YXJ0 ZXN0IENBU0NBREU7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRleHQ7CisKKy0tIHZhcmlh YmxlcyBjYW4gYmUgdXBkYXRlZCB1bmRlciBSTyB0cmFuc2FjdGlvbgorQkVHSU47CitTRVQgVFJB TlNBQ1RJT04gUkVBRCBPTkxZOworTEVUIHZhcjEgPSAnaGVsbG8nOworQ09NTUlUOworCitTRUxF Q1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSB0ZXN0IG9mIGRvbWFpbnMKK0NS RUFURSBET01BSU4gaW50X2RvbWFpbiBBUyBpbnQgTk9UIE5VTEwgQ0hFQ0sgKFZBTFVFID4gMTAw KTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludF9kb21haW47CisKKy0tIHNob3VsZCBmYWls CitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwMDA7CitTRUxF Q1QgdmFyMTsKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMTA7CisKKy0tIHNob3VsZCBm YWlsCitMRVQgdmFyMSA9IE5VTEw7CisKKy0tIG5vdGUgLSBkb21haW4gZGVmYXVsdHMgYXJlIG5v dCBzdXBwb3J0ZWQgeWV0IChsaWtlIFBMcGdTUUwpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RS T1AgRE9NQUlOIGludF9kb21haW47CisKKy0tIHRoZSBleHByZXNzaW9uIHNob3VsZCByZW1haW4g InVua25vd24iCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ0bXVsdGlyYW5nZVtdOworLS0g c2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IE5VTEw7CitMRVQgdmFyMSA9ICd7IntbMiw4KSxbMTEs MTQpfSIsIntbNSw4KSxbMTIsMTQpfSJ9JzsKK0xFVCB2YXIxWzJdID0gJ3tbNSw4KSxbMTIsMTAw KX0nOworU0VMRUNUIHZhcjE7CisKKy0tSXQgc2hvdWxkIHdvcmsgaW4gcGxwZ3NxbCB0b28KK0RP ICQkCitCRUdJTgorICBMRVQgdmFyMSA9IE5VTEw7CisgIExFVCB2YXIxID0gJ3sie1syLDgpLFsx MSwxNCl9Iiwie1s1LDgpLFsxMiwxNCl9In0nOworICBMRVQgdmFyMVsyXSA9ICd7WzUsOCksWzEy LDEwMCl9JzsKKworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CisKK0RST1Ag VkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIFNDSEVNQSBzdmFydGVzdCBDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyBpbnQgQ1JFQVRFIFRBQkxFIGZvbyhhIGludCk7CitMRVQgc3ZhcnRlc3QudmFyMSA9 IDEwMDsKK1NFTEVDVCBzdmFydGVzdC52YXIxOworCitTRVQgc2VhcmNoX3BhdGggdG8gcHVibGlj LCBzdmFydGVzdDsKKworU0VMRUNUIHZhcjE7CisKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0IENBU0NB REU7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIy IEFTIGludFtdOworCitMRVQgdmFyMSA9IDI7CitMRVQgdmFyMiA9ICd7fSc6OmludFtdOworCitM RVQgdmFyMlt2YXIxXSA9IDA7CisKK1NFTEVDVCB2YXIyOworCitEUk9QIFZBUklBQkxFIHZhcjEs IHZhcjI7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2 YXIyIEFTIGludFtdOworCitMRVQgdmFyMSA9IDI7CitMRVQgdmFyMiA9ICd7fSc6OmludFtdOwor CitTRUxFQ1QgdmFyMjsKKworRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIyOworCistLSB0aGUgTEVU IHN0YXRlbWVudCBzaG91bGQgYmUgZGlzYWxsb3dlZCBpbiBDVEUKK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIGludDsKK1dJVEggeCBBUyAoTEVUIHZhcjEgPSAxMDApIFNFTEVDVCAqIEZST00geDsK KworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IGdlbmVyYXRlX3NlcmllcygxLCAxKTsKKwor LS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVzKDEsIDIpOworTEVUIHZh cjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwgMCk7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0g Y29tcG9zaXRlIHZhcmlhYmxlcworQ1JFQVRFIFRZUEUgc3ZfeHl6IEFTICh4IGludCwgeSBpbnQs IHogbnVtZXJpYygxMCwyKSk7CisKK0NSRUFURSBWQVJJQUJMRSB2MSBBUyBzdl94eXo7CitDUkVB VEUgVkFSSUFCTEUgdjIgQVMgc3ZfeHl6OworCitMRVQgdjEgPSAoMSwgMiwgMy4xNCk7CitMRVQg djIgPSAoMTAsIDIwLCAzLjE0ICogMTApOworCistLSBzaG91bGQgd29yayB0b28gLSB0aGVyZSBh cmUgcHJlcGFyZWQgY2FzdHMKK0xFVCB2MSA9ICgxLCAyLCAzKTsKKworU0VMRUNUIHYxOworU0VM RUNUIHYyOworU0VMRUNUICh2MSkuKjsKK1NFTEVDVCAodjIpLio7CisKK1NFTEVDVCB2MS54ICsg djEuejsKK1NFTEVDVCB2Mi54ICsgdjIuejsKKworLS0gYWNjZXNzIHRvIGNvbXBvc2l0ZSBmaWVs ZHMgc2hvdWxkIGJlIHNhZmUgdG9vCitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7 CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKworLS0gc2hvdWxkIGZhaWwK K1NFTEVDVCB2Mi54OworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitEUk9QIFZBUklBQkxFIHYx OworRFJPUCBWQVJJQUJMRSB2MjsKK0RST1AgVFlQRSBzdl94eXo7CitEUk9QIFJPTEUgcmVncmVz c192YXJfdGVzdF9yb2xlOworCitDUkVBVEUgVFlQRSB0MSBBUyAoYSBpbnQsIGIgbnVtZXJpYywg YyB0ZXh0KTsKKworQ1JFQVRFIFZBUklBQkxFIHYxIEFTIHQxOworTEVUIHYxID0gKDEsIHBpKCks ICdoZWxsbycpOworU0VMRUNUIHYxOworTEVUIHYxLmIgPSAxMC4yMjIyOworU0VMRUNUIHYxOwor CistLSBzaG91bGQgZmFpbCwgYXR0cmlidXRlIGRvZXNuJ3QgZXhpc3QKK0xFVCB2MS54ID0gMTA7 CisKKy0tIHNob3VsZCBmYWlsLCBkb24ndCBhbGxvdyBtdWx0aSBjb2x1bW4gcXVlcnkKK0xFVCB2 MSA9IChOVUxMOjp0MSkuKjsKKworLS0gYWxsb3cgRFJPUCBvciBBREQgQVRUUklCVVRFIG9uIGNv bXBvc2l0ZSB0eXBlcworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIERST1AgQVRUUklC VVRFIGM7CitTRUxFQ1QgdjE7CisKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBBREQg QVRUUklCVVRFIGMgaW50OworU0VMRUNUIHYxOworCitMRVQgdjEgPSAoMTAsIDEwLjMsIDIwKTsK K1NFTEVDVCB2MTsKKworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIERST1AgQVRUUklC VVRFIGI7CitTRUxFQ1QgdjE7CisKKy0tIHNob3VsZCBmYWlsLCBkaXNhbGxvdyBkYXRhIHR5cGUg Y2hhbmdlCitBTFRFUiBUWVBFIHQxIEFMVEVSIEFUVFJJQlVURSBjIFRZUEUgaW50OworCitEUk9Q IFZBUklBQkxFIHYxOworRFJPUCBUWVBFIHQxOworCistLSB0aGUgdGFibGUgdHlwZSBjYW4gYmUg dXNlZCBhcyBjb21wb3NpdGUgdHlwZSB0b28KK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoYSBpbnQs IGIgbnVtZXJpYywgYyBkYXRlKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHN2YXJfdGVzdDsK KworTEVUIHZhcjEgPSAoMTAsIHBpKCksICcyMDIzLTA1LTI2Jyk7CitTRUxFQ1QgdmFyMTsKKwor LS0gc2hvdWxkIGZhaWwgZHVlIGRlcGVuZGVuY3kKK0FMVEVSIFRBQkxFIHN2YXJfdGVzdCBBTFRF UiBDT0xVTU4gYSBUWVBFIHRleHQ7CisKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRBQkxFIHN2YXJf dGVzdDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CisKKy0t IGFycmF5cyBhcmUgc3VwcG9ydGVkCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljW107 CitMRVQgdmFyMSA9IEFSUkFZWzEuMSwyLjFdOworTEVUIHZhcjFbMV0gPSAxMC4xOworU0VMRUNU IHZhcjE7CisKKy0tIExFVCB0YXJnZXQgZG9lc24ndCBhbGxvdyBzcmYsIHNob3VsZCBmYWlsCitM RVQgdmFyMVtnZW5lcmF0ZV9zZXJpZXMoMSwzKV0gPSAxMDA7CisKK0RST1AgVkFSSUFCTEUgdmFy MTsKKworLS0gYXJyYXlzIGluc2lkZSBjb21wb3NpdGUKK0NSRUFURSBUWVBFIHQxIEFTIChhIG51 bWVyaWMsIGIgbnVtZXJpY1tdKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHQxOworTEVUIHZh cjEgPSAoMTAuMSwgQVJSQVlbMC4wLCAwLjBdKTsKK0xFVCB2YXIxLmEgPSAxMC4yOworU0VMRUNU IHZhcjE7CitMRVQgdmFyMS5iWzFdID0gMTAuMzsKK1NFTEVDVCB2YXIxOworCitEUk9QIFZBUklB QkxFIHZhcjE7CitEUk9QIFRZUEUgdDE7CisKKy0tIEVuY291cmFnZSB1c2Ugb2YgcGFyYWxsZWwg cGxhbnMKK1NFVCBwYXJhbGxlbF9zZXR1cF9jb3N0ID0gMDsKK1NFVCBwYXJhbGxlbF90dXBsZV9j b3N0ID0gMDsKK1NFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplID0gMDsKK1NFVCBtYXhf cGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyID0gMjsKKworLS0gdGVzdCBvbiBxdWVyeSB3aXRo IHdvcmtlcnMKK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoYSBpbnQpOworSU5TRVJUIElOVE8gc3Zh cl90ZXN0IFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwMCk7CitBTkFMWVpFIHN2 YXJfdGVzdDsKK0NSRUFURSBWQVJJQUJMRSB6ZXJvIGludDsKK0xFVCB6ZXJvID0gMDsKKworLS0g cmVzdWx0IHNob3VsZCBiZSAxMDAKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCBXSEVS RSBhJTEwID0gemVybzsKKworLS0gcGFyYWxsZWwgZXhlY3V0aW9uIGlzIG5vdCBzdXBwb3J0ZWQg eWV0CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCBX SEVSRSBhJTEwID0gemVybzsKKworTEVUIHplcm8gPSAoU0VMRUNUIGNvdW50KCopIEZST00gc3Zh cl90ZXN0KTsKKworLS0gcmVzdWx0IHNob3VsZCBiZSAxMDAwCitTRUxFQ1QgemVybzsKKworRFJP UCBWQVJJQUJMRSB6ZXJvOworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CisKK1JFU0VUIHBhcmFsbGVs X3NldHVwX2Nvc3Q7CitSRVNFVCBwYXJhbGxlbF90dXBsZV9jb3N0OworUkVTRVQgbWluX3BhcmFs bGVsX3RhYmxlX3NjYW5fc2l6ZTsKK1JFU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRo ZXI7CisKKy0tIHRoZSByZXN1bHQgb2YgdmlldyBzaG91bGQgYmUgc2FtZSBpbiBwYXJhbGxlbCBt b2RlIHRvbworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworTEVUIHZhcjEgPSAxMDsKKwor Q1JFQVRFIFZJRVcgdmFyMXZpZXcgQVMgU0VMRUNUIENPQUxFU0NFKHZhcjEsIDApIEFTIHJlc3Vs dDsKKworU0VMRUNUICogRlJPTSB2YXIxdmlldzsKKworU0VUIGRlYnVnX3BhcmFsbGVsX3F1ZXJ5 IFRPIG9uOworCitTRUxFQ1QgKiBGUk9NIHZhcjF2aWV3OworCitTRVQgZGVidWdfcGFyYWxsZWxf cXVlcnkgVE8gb2ZmOworCitEUk9QIFZJRVcgdmFyMXZpZXc7CitEUk9QIFZBUklBQkxFIHZhcjE7 CisKK0NSRUFURSBWQVJJQUJMRSB2YXJpZCBpbnQ7CitDUkVBVEUgVEFCTEUgc3Zhcl90ZXN0KGlk IGludCwgdiBpbnQpOworCitMRVQgdmFyaWQgPSAxOworSU5TRVJUIElOVE8gc3Zhcl90ZXN0IFZB TFVFUyh2YXJpZCwgMTAwKTsKK1NFTEVDVCAqIEZST00gc3Zhcl90ZXN0OworVVBEQVRFIHN2YXJf dGVzdCBTRVQgdiA9IDIwMCBXSEVSRSBpZCA9IHZhcmlkOworU0VMRUNUICogRlJPTSBzdmFyX3Rl c3Q7CitERUxFVEUgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgaWQgPSB2YXJpZDsKK1NFTEVDVCAqIEZS T00gc3Zhcl90ZXN0OworCitEUk9QIFRBQkxFIHN2YXJfdGVzdDsKK0RST1AgVkFSSUFCTEUgdmFy aWQ7CisKKworLS0gdmlzaWJpbGl0eSBjaGVjaworLS0gdmFyaWFibGVzIHNob3VsZCBiZSBzaGFk b3dlZCBhbHdheXMKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRleHQ7CitTRUxFQ1QgdmFyMS5y ZWxuYW1lIEZST00gcGdfY2xhc3MgdmFyMSBXSEVSRSB2YXIxLnJlbG5hbWUgPSAncGdfY2xhc3Mn OworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKK0NSRUFURSBUQUJMRSB4eHRhYihhdmFyIGludCk7 CisKK0lOU0VSVCBJTlRPIHh4dGFiIFZBTFVFUygzMzMpOworCitDUkVBVEUgVFlQRSB4eHR5cGUg QVMgKGF2YXIgaW50KTsKKworQ1JFQVRFIFZBUklBQkxFIHh4dGFiIEFTIHh4dHlwZTsKKworSU5T RVJUIElOVE8geHh0YWIgVkFMVUVTKDEwKTsKKworLS0gaXQgaXMgYW1iaWd1b3VzLCBidXQgY29s dW1ucyBhcmUgcHJlZmVycmVkCitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHh4dGFiOworCistLSBz aG91bGQgYmUgb2sKK1NFTEVDVCBhdmFyIEZST00geHh0YWI7CisKK0NSRUFURSBWQVJJQUJMRSBw dWJsaWMuYXZhciBBUyBpbnQ7CisKKy0tIHNob3VsZCBiZSBvaywgc2VlIHRoZSB0YWJsZQorU0VM RUNUIGF2YXIgRlJPTSB4eHRhYjsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgcHVibGljLmF2 YXIgRlJPTSB4eHRhYjsKKworRFJPUCBWQVJJQUJMRSB4eHRhYjsKKworU0VMRUNUIHh4dGFiLmF2 YXIgRlJPTSB4eHRhYjsKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMuYXZhcjsKKworRFJPUCBUWVBF IHh4dHlwZTsKKworRFJPUCBUQUJMRSB4eHRhYjsKKworLS0gVGhlIHZhcmlhYmxlIGNhbiBiZSBz aGFkb3dlZCBieSB0YWJsZSBvciBieSBhbGlhcworQ1JFQVRFIFRZUEUgcHVibGljLnN2YXJfdHlw ZSBBUyAoYSBpbnQsIGIgaW50LCBjIGludCk7CitDUkVBVEUgVkFSSUFCTEUgcHVibGljLnN2YXIg QVMgcHVibGljLnN2YXJfdHlwZTsKKworQ1JFQVRFIFRBQkxFIHB1YmxpYy5zdmFyKGEgaW50LCBi IGludCk7CisKK0lOU0VSVCBJTlRPIHB1YmxpYy5zdmFyIFZBTFVFUygxMCwgMjApOworCitMRVQg cHVibGljLnN2YXIgPSAoMTAwLCAyMDAsIDMwMCk7CisKKy0tIHNob3VsZCBiZSBvaworLS0gc2hv dyB0YWJsZQorU0VMRUNUICogRlJPTSBwdWJsaWMuc3ZhcjsKK1NFTEVDVCBzdmFyLmEgRlJPTSBw dWJsaWMuc3ZhcjsKK1NFTEVDVCBzdmFyLiogRlJPTSBwdWJsaWMuc3ZhcjsKKworLS0gc2hvdyB2 YXJpYWJsZQorU0VMRUNUIHB1YmxpYy5zdmFyOworU0VMRUNUIHB1YmxpYy5zdmFyLmM7CitTRUxF Q1QgKHB1YmxpYy5zdmFyKS4qOworCistLSB0aGUgdmFyaWFibGUgaXMgc2hhZG93ZWQsIHJhaXNl IGVycm9yCitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworCistLSBjYW4g YmUgZml4ZWQgYnkgYWxpYXMKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXIg eDsKKworU0VMRUNUIHN2YXIuYSBGUk9NIHB1YmxpYy5zdmFyOworU0VMRUNUIHN2YXIuKiBGUk9N IHB1YmxpYy5zdmFyOworCistLSBzaG93IHZhcmlhYmxlCitTRUxFQ1QgcHVibGljLnN2YXI7CitT RUxFQ1QgcHVibGljLnN2YXIuYzsKK1NFTEVDVCAocHVibGljLnN2YXIpLio7CisKKy0tIHRoZSB2 YXJpYWJsZSBpcyBzaGFkb3dlZCwgcmFpc2UgZXJyb3IKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZS T00gcHVibGljLnN2YXI7CisKKy0tIGNhbiBiZSBmaXhlZCBieSBhbGlhcworU0VMRUNUIHB1Ymxp Yy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhciB4OworCitEUk9QIFZBUklBQkxFIHB1YmxpYy5zdmFy OworRFJPUCBUQUJMRSBwdWJsaWMuc3ZhcjsKK0RST1AgVFlQRSBwdWJsaWMuc3Zhcl90eXBlOwor CitDUkVBVEUgVFlQRSBhYiBBUyAoYSBpbnRlZ2VyLCBiIGludGVnZXIpOworCitDUkVBVEUgVkFS SUFCTEUgdl9hYiBBUyBhYjsKKworQ1JFQVRFIFRBQkxFIHZfYWIgKGEgaW50ZWdlciwgYiBpbnRl Z2VyKTsKK0lOU0VSVCBJTlRPIHZfYWIgVkFMVUVTKDEwLDIwKTsKKworLS0gd2Ugc2hvdWxkIHNl ZSB0YWJsZQorU0VMRUNUIHZfYWIuYSBGUk9NIHZfYWI7CisKK0NSRUFURSBTQ0hFTUEgdl9hYjsK KworQ1JFQVRFIFZBUklBQkxFIHZfYWIuYSBBUyBpbnRlZ2VyOworCistLSB3ZSBzaG91bGQgc2Vl IHRhYmxlCitTRUxFQ1Qgdl9hYi5hIEZST00gdl9hYjsKKworRFJPUCBWQVJJQUJMRSB2X2FiOwor RFJPUCBUQUJMRSB2X2FiOworRFJPUCBUWVBFIGFiOworRFJPUCBWQVJJQUJMRSB2X2FiLmE7CitE Uk9QIFNDSEVNQSB2X2FiOworCitDUkVBVEUgVFlQRSB0X2FtX3R5cGUgQVMgKGIgaW50KTsKK0NS RUFURSBTQ0hFTUEgeHh4X2FtOworCitTRVQgc2VhcmNoX3BhdGggVE8gcHVibGljOworCitDUkVB VEUgVkFSSUFCTEUgeHh4X2FtIEFTIHRfYW1fdHlwZTsKK0xFVCB4eHhfYW0gPSBST1coMTApOwor CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB4eHhfYW07CisKK0NSRUFURSBWQVJJQUJMRSB4eHhf YW0uYiBBUyBpbnQ7CitMRVQgOiJEQk5BTUUiLnh4eF9hbS5iID0gMjA7CisKKy0tIHNob3VsZCBi ZSBzdGlsbCBvaworU0VMRUNUIHh4eF9hbTsKKworLS0gc2hvdWxkIGZhaWwsIHRoZSByZWZlcmVu Y2Ugc2hvdWxkIGJlIGFtYmlndW91cworU0VMRUNUIHh4eF9hbS5iOworCistLSBlbmhhbmNlZCBy ZWZlcmVuY2VzIHNob3VsZCBiZSBvaworU0VMRUNUIHB1YmxpYy54eHhfYW0uYjsKK1NFTEVDVCA6 IkRCTkFNRSIueHh4X2FtLmI7CisKK0NSRUFURSBUQUJMRSB4eHhfYW0oYiAgaW50KTsKK0lOU0VS VCBJTlRPIHh4eF9hbSBWQUxVRVMoMTApOworCistLSB3ZSBzaG91bGQgc2VlIHRhYmxlCitTRUxF Q1QgeHh4X2FtLmIgRlJPTSB4eHhfYW07CitTRUxFQ1QgeC5iIEZST00geHh4X2FtIHg7CisKK0RS T1AgVEFCTEUgeHh4X2FtOworRFJPUCBWQVJJQUJMRSBwdWJsaWMueHh4X2FtOworRFJPUCBWQVJJ QUJMRSB4eHhfYW0uYjsKK0RST1AgU0NIRU1BIHh4eF9hbTsKKworQ1JFQVRFIFNDSEVNQSA6IkRC TkFNRSI7CisKK0NSRUFURSBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJOQU1FIiBB UyB0X2FtX3R5cGU7CitDUkVBVEUgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi5iIEFTIGlu dDsKKworU0VUIHNlYXJjaF9wYXRoIFRPIDoiREJOQU1FIjsKKworLS0gc2hvdWxkIGJlIGFtYmln dW91cworU0VMRUNUIDoiREJOQU1FIi5iOworCistLSBzaG91bGQgYmUgYW1iaWd1b3VzIHRvbwor U0VMRUNUIDoiREJOQU1FIi46IkRCTkFNRSIuYjsKKworQ1JFQVRFIFRBQkxFIDoiREJOQU1FIihi IGludCk7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIDoiREJOQU1FIi5iIEZST00gOiJEQk5B TUUiOworCitEUk9QIFRBQkxFIDoiREJOQU1FIjsKKworRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIu OiJEQk5BTUUiLmI7CitEUk9QIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUi OworRFJPUCBTQ0hFTUEgOiJEQk5BTUUiOworCitSRVNFVCBzZWFyY2hfcGF0aDsKZGlmZiAtLWdp dCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50 L3R5cGVkZWZzLmxpc3QKaW5kZXggOGZlMDk3YzViOS4uNzFjZDc1ZGQ4YiAxMDA2NDQKLS0tIGEv c3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50 L3R5cGVkZWZzLmxpc3QKQEAgLTE0OTksNiArMTQ5OSw3IEBAIExhcmdlT2JqZWN0RGVzYwogTGF0 Y2gKIExhdW5jaGVyTGFzdFN0YXJ0VGltZXNFbnRyeQogTGVycEZ1bmMKK0xldFN0bXQKIExleERl c2NyCiBMZXhlbWVFbnRyeQogTGV4ZW1lSGFzaEtleQpAQCAtMjYwOCw2ICsyNjA5LDcgQEAgU2Vy aWFsaXplZFRyYW5zYWN0aW9uU3RhdGUKIFNlc3Npb24KIFNlc3Npb25CYWNrdXBTdGF0ZQogU2Vz c2lvbkVuZFR5cGUKK1Nlc3Npb25WYXJpYWJsZVZhbHVlCiBTZXRDb25zdHJhaW50U3RhdGUKIFNl dENvbnN0cmFpbnRTdGF0ZURhdGEKIFNldENvbnN0cmFpbnRUcmlnZ2VyRGF0YQpAQCAtMjc5OCw2 ICsyODAwLDkgQEAgU3VwcG9ydFJlcXVlc3RSb3dzCiBTdXBwb3J0UmVxdWVzdFNlbGVjdGl2aXR5 CiBTdXBwb3J0UmVxdWVzdFNpbXBsaWZ5CiBTdXBwb3J0UmVxdWVzdFdGdW5jTW9ub3RvbmljCitT VmFyaWFibGUKK1NWYXJpYWJsZURhdGEKK1NWYXJpYWJsZVN0YXRlCiBTeW4KIFN5bmNPcHMKIFN5 bmNSZXBDb25maWdEYXRhCi0tIAoyLjQ3LjEKCg== --000000000000ee56b206299a729a Content-Type: text/x-patch; charset="US-ASCII"; name="v20241219-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Disposition: attachment; filename="v20241219-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4uzyqx221 RnJvbSBhNjMzMzdjYTA1NDg4ZGE1OWJlNGNlZjZlMjAxOTAzNTA1NDY4NzdmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTU6NDE6NTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDAx LzIyXSBFbmhhbmNpbmcgY2F0YWxvZyBmb3Igc3VwcG9ydCBzZXNzaW9uIHZhcmlhYmxlcyBhbmQK IHJlbGF0ZWQgc3VwcG9ydAoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBzeXN0ZW0gY2F0YWxv ZyB0YWJsZSBwZ192YXJpYWJsZS4gVGhpcyB0YWJsZSBob2xkcyBtZXRhZGF0YSBhYm91dApzZXNz aW9uIHZhcmlhYmxlcyBjcmVhdGVkIGJ5IGNvbW1hbmQgQ1JFQVRFIFZBUklBQkxFLCBhbmQgZHJv cHBlZCBieSBjb21tYW5kIERST1AgVkFSSUFCTEUuCkJvdGggY29tbWFuZHMgYXJlIGltcGxlbWVu dGVkIGJ5IHRoaXMgcGF0Y2guIFBvc3NpYmlsaXR5IHRvIGNoYW5nZSBvd25lciwgc2NoZW1hIG9y IHJlbmFtZS4KCkFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgY29udHJvbGxlZCBi eSBTRUxFQ1Qgb3IgVVBEQVRFIHJpZ2h0cy4gQm90aCByaWdodHMgYXJlCmludHJvZHVjZWQgYnkg dGhpcyBwYXRjaCB0b28uCgpUaGlzIHBhdGNoIGVuaGFuY2luZyBwZ19kdW1wIGFuZCBwc3FsIHRv IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMuIFRoZSBjaGFuZ2VzIGFyZSByZWxhdGVkCnRvIHN5 c3RlbSBjYXRhbG9nLgoKVGhpcyBwYXRjaCBpcyBub3Qgc2hvcnQsIGJ1dCB0aGUgY29kZSBpcyBz aW1wbGUuCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgMTIwICsrKysrKwogZG9jL3NyYy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAg ICAgIHwgIDQwICstCiBkb2Mvc3JjL3NnbWwvZnVuYy5zZ21sICAgICAgICAgICAgICAgICAgICAg ICAgfCAgMzIgKysKIGRvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sICAgICAgICAgICAgICAgICAg ICB8ICAxNSArCiBkb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwgICAgICAgICAgICAgICAg fCAgIDMgKwogLi4uL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21sICAgIHwg IDI3ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwgICAgICAgICAgfCAx NzggKysrKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCAgICAgICAgICAgICAg ICAgfCAgIDEgKwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwgICAgICAgICAg IHwgIDEyICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAg fCAxNDkgKysrKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sICAgICAg ICAgICB8IDExNyArKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbCAgICAgICAgICAg ICAgICAgICB8ICAyMCArLQogZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sICAgICAgICAg ICAgICAgIHwgIDEzICsKIGRvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwgICAgICAgICAgICAg ICAgICB8ICAgOCArCiBkb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgICAgICAgICAgICAgICAg ICAgfCAgIDMgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSAgICAgICAgICAgICAgICAg IHwgICAxICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICAgICB8 ICA3NyArKysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyAgICAgICAgICAgICAg fCAgIDYgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgIHwg ICAxICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgICAgICAgICAgICAgICB8IDIy MSArKysrKysrKysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgICAgICAg ICAgIHwgMTIxICsrKysrLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jICAgICAg ICAgICAgIHwgICAyICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAg ICAgICB8IDI1MSArKysrKysrKysrKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jICAg ICAgICAgICAgICAgICAgfCAgIDkgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYyAg ICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIu YyAgICAgICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jICAgICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAg ICAgICAgIHwgIDQxICsrCiBzcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jICAgICAgICAg ICAgICAgfCAgMTUgKwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAg ICAgIHwgMTA1ICsrKysrLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyAgICAg ICAgICAgIHwgIDEyICsKIHNyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jICAgICAgICAgICAgICAg ICAgICB8ICAyMCArCiBzcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMgICAgICAgICAgICAgICAg ICAgfCAyMjEgKysrKysrKysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5j ICAgICAgICAgICB8IDExMyArKysrKysKIHNyYy9iaW4vcGdfZHVtcC9jb21tb24uYyAgICAgICAg ICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmluL3BnX2R1bXAvZHVtcHV0aWxzLmMgICAgICAg ICAgICAgICAgICAgfCAgIDYgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oICAgICAgICAg ICAgICAgICAgIHwgICAyICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyAg ICAgICAgICB8ICAgOSArCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAg ICAgICAgfCAxOTUgKysrKysrKysrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAg ICAgICAgICAgICAgIHwgIDE5ICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyAgICAg ICAgICAgICAgICB8ICAgNiArCiBzcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAg ICAgICAgICAgfCAgNjQgKysrKwogc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYyAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAzICsKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAg ICAgICAgICB8ICA5NiArKysrKwogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmggICAgICAgICAgICAg ICAgICAgICAgIHwgICAzICsKIHNyYy9iaW4vcHNxbC9oZWxwLmMgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgMSArCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAg ICAgICAgfCAgNDMgKystCiBzcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlICAgICAgICAgICAg ICAgICAgfCAgIDMgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQgICAgICAgICAg ICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oICAgICAgICAgICAg ICAgfCAgIDYgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oICAgICAgICAg IHwgICAxICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8 ICAyMyArKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwg IDgxICsrKysKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8 ICAxNiArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggICAgICAgICAgICAgICAgICAgfCAg IDIgKwogc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmggICAgICAgICAgICAgICAgIHwgICAz ICsKIHNyYy9pbmNsdWRlL3V0aWxzL2FjbC5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSAr CiBzcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCAgICAgICAgICAgICAgICAgfCAgIDkgKwog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kZXBlbmRlbmN5Lm91dCAgICAgIHwgIDE3ICsKIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0ICAgICAgICB8ICAgNCArCiBzcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAgNTAgKysrCiAuLi4v cmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAzNTUgKysrKysrKysr KysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAgICAg fCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3kuc3FsICAgICAgICAgICB8 ICAxNCArCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbCAgICAgICAgICAgICAgICAgfCAg MjEgKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDI2 MyArKysrKysrKysrKysrCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAg ICAgICAgfCAgIDQgKwogNjcgZmlsZXMgY2hhbmdlZCwgMzI1NCBpbnNlcnRpb25zKCspLCAzNSBk ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3Zh cmlhYmxlLnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92 YXJpYWJsZS5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3Zh cmlhYmxlLnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Zh cmlhYmxlLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Zhcmlh YmxlLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggYmYzY2VlMDhhOS4uODdi NTM3MGE0OSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTM2OSw2ICszNjksMTEgQEAKICAgICAgIDxlbnRy eT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXVzZXItbWFwcGluZyI+PHN0cnVjdG5hbWU+cGdf dXNlcl9tYXBwaW5nPC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgogICAgICAgPGVudHJ5Pm1h cHBpbmdzIG9mIHVzZXJzIHRvIGZvcmVpZ24gc2VydmVyczwvZW50cnk+CiAgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy12YXJp YWJsZSI+PHN0cnVjdG5hbWU+cGdfdmFyaWFibGU8L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+ CisgICAgICA8ZW50cnk+c2Vzc2lvbiB2YXJpYWJsZXM8L2VudHJ5PgorICAgICA8L3Jvdz4KICAg ICA8L3Rib2R5PgogICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CkBAIC05NzQzLDQgKzk3NDgsMTE5 IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9y ZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgIDwvdGFibGU+CiAgPC9zZWN0MT4KIAorIDxz ZWN0MSBpZD0iY2F0YWxvZy1wZy12YXJpYWJsZSI+CisgIDx0aXRsZT48c3RydWN0bmFtZT5wZ192 YXJpYWJsZTwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRleHRlcm0gem9uZT0iY2F0YWxv Zy1wZy12YXJpYWJsZSI+CisgICA8cHJpbWFyeT5wZ192YXJpYWJsZTwvcHJpbWFyeT4KKyAgPC9p bmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxvZyA8c3RydWN0bmFtZT5wZ192YXJp YWJsZTwvc3RydWN0bmFtZT4gc3RvcmVzIGluZm9ybWF0aW9uIGFib3V0CisgICBzZXNzaW9uIHZh cmlhYmxlcy4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0aXRsZT48c3RydWN0bmFtZT5w Z192YXJpYWJsZTwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+CisgICA8dGdyb3VwIGNvbHM9 IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgQ29s dW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIERlc2NyaXB0aW9u CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisgICAgPC90aGVhZD4KKworICAg IDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxk Pm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAg IDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlmaWVyCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPnZhcnR5cGU8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVy ZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy10eXBlIj48c3RydWN0bmFtZT5wZ190eXBl PC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAg ICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIE9JRCBvZiB0aGUgdmFyaWFibGUn cyBkYXRhIHR5cGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8 cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFybmFtZTwvc3RydWN0 ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBOYW1lIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPnZhcm5hbWVzcGFjZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAg ICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLW5hbWVzcGFjZSI+PHN0cnVj dG5hbWU+cGdfbmFtZXNwYWNlPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwv c3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIE9J RCBvZiB0aGUgbmFtZXNwYWNlIHRoYXQgY29udGFpbnMgdGhpcyB2YXJpYWJsZQorICAgICAgPC9w YXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9s ZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgor ICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJvd25lcjwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlw ZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWF1dGhpZCI+ PHN0cnVjdG5hbWU+cGdfYXV0aGlkPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9p ZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgT3du ZXIgb2YgdGhlIHZhcmlhYmxlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcnR5cG1v ZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFydHlwbW9kPC9zdHJ1Y3RmaWVsZD4gcmVjb3Jk cyB0eXBlLXNwZWNpZmljIGRhdGEKKyAgICAgICBzdXBwbGllZCBhdCB2YXJpYWJsZSBjcmVhdGlv biB0aW1lIChmb3IgZXhhbXBsZSwgdGhlIG1heGltdW0KKyAgICAgICBsZW5ndGggb2YgYSA8dHlw ZT52YXJjaGFyPC90eXBlPiBjb2x1bW4pLiAgSXQgaXMgcGFzc2VkIHRvCisgICAgICAgdHlwZS1z cGVjaWZpYyBpbnB1dCBmdW5jdGlvbnMgYW5kIGxlbmd0aCBjb2VyY2lvbiBmdW5jdGlvbnMuCisg ICAgICAgVGhlIHZhbHVlIHdpbGwgZ2VuZXJhbGx5IGJlIC0xIGZvciB0eXBlcyB0aGF0IGRvIG5v dCBuZWVkIDxzdHJ1Y3RmaWVsZD52YXJ0eXBtb2Q8L3N0cnVjdGZpZWxkPi4KKyAgICAgIDwvcGFy YT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAg ICAgICA8c3RydWN0ZmllbGQ+dmFyY29sbGF0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90 eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctY29sbGF0 aW9uIj48c3RydWN0bmFtZT5wZ19jb2xsYXRpb248L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0 ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBUaGUgZGVmaW5lZCBjb2xsYXRpb24gb2YgdGhlIHZhcmlhYmxlLCBvciB6ZXJvIGlmIHRo ZSB2YXJpYWJsZSBpcworICAgICAgIG5vdCBvZiBhIGNvbGxhdGFibGUgZGF0YSB0eXBlLgorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50 cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRp b24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJhY2w8L3N0cnVjdGZpZWxkPiA8dHlwZT5hY2xp dGVtW108L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBBY2Nlc3Mg cHJpdmlsZWdlczsgc2VlCisgICAgICAgPHhyZWYgbGlua2VuZD0ic3FsLWdyYW50Ii8+IGFuZAor ICAgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1yZXZva2UiLz4KKyAgICAgICBmb3IgZGV0YWlscwor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgPC90Ym9keT4KKyAgIDwv dGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CiA8L2NoYXB0ZXI+CmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggZGVhMDRk NjRkYi4uMTZjYmY1MTNhOSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtMTk5Myw2ICsxOTkzLDcgQEAgUkVWT0tFIEFMTCBP TiBhY2NvdW50cyBGUk9NIFBVQkxJQzsKICAgICAgICBGb3Igc2VxdWVuY2VzLCB0aGlzIHByaXZp bGVnZSBhbHNvIGFsbG93cyB1c2Ugb2YgdGhlCiAgICAgICAgPGZ1bmN0aW9uPmN1cnJ2YWw8L2Z1 bmN0aW9uPiBmdW5jdGlvbi4KICAgICAgICBGb3IgbGFyZ2Ugb2JqZWN0cywgdGhpcyBwcml2aWxl Z2UgYWxsb3dzIHRoZSBvYmplY3QgdG8gYmUgcmVhZC4KKyAgICAgICBGb3Igc2Vzc2lvbiB2YXJp YWJsZXMsIHRoaXMgIHByaXZpbGVnZSBhbGxvd3MgdGhlIG9iamVjdCB0byBiZSByZWFkLgogICAg ICAgPC9wYXJhPgogICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFybGlzdGVudHJ5PgpAQCAtMjAy OCw2ICsyMDI5LDggQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBVQkxJQzsKICAgICAg ICA8ZnVuY3Rpb24+c2V0dmFsPC9mdW5jdGlvbj4gZnVuY3Rpb25zLgogICAgICAgIEZvciBsYXJn ZSBvYmplY3RzLCB0aGlzIHByaXZpbGVnZSBhbGxvd3Mgd3JpdGluZyBvciB0cnVuY2F0aW5nIHRo ZQogICAgICAgIG9iamVjdC4KKyAgICAgICBGb3Igc2Vzc2lvbiB2YXJpYWJsZXMsIHRoaXMgcHJp dmlsZWdlIGFsbG93cyB0byBzZXQgYSB2YWx1ZSB0byB0aGUKKyAgICAgICBvYmplY3QuCiAgICAg ICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+CkBAIC0yMjcx LDcgKzIyNzQsOCBAQCBSRVZPS0UgQUxMIE9OIGFjY291bnRzIEZST00gUFVCTElDOwogICAgICAg IDxsaXRlcmFsPkxBUkdFIE9CSkVDVDwvbGl0ZXJhbD4sCiAgICAgICAgPGxpdGVyYWw+U0VRVUVO Q0U8L2xpdGVyYWw+LAogICAgICAgIDxsaXRlcmFsPlRBQkxFPC9saXRlcmFsPiAoYW5kIHRhYmxl LWxpa2Ugb2JqZWN0cyksCi0gICAgICAgdGFibGUgY29sdW1uCisgICAgICAgdGFibGUgY29sdW1u LAorICAgICAgIDxsaXRlcmFsPlZBUklBQkxFPC9saXRlcmFsPgogICAgICAgPC9lbnRyeT4KICAg ICAgPC9yb3c+CiAgICAgIDxyb3c+CkBAIC0yMjg2LDcgKzIyOTAsOCBAQCBSRVZPS0UgQUxMIE9O IGFjY291bnRzIEZST00gUFVCTElDOwogICAgICAgIDxsaXRlcmFsPkxBUkdFIE9CSkVDVDwvbGl0 ZXJhbD4sCiAgICAgICAgPGxpdGVyYWw+U0VRVUVOQ0U8L2xpdGVyYWw+LAogICAgICAgIDxsaXRl cmFsPlRBQkxFPC9saXRlcmFsPiwKLSAgICAgICB0YWJsZSBjb2x1bW4KKyAgICAgICB0YWJsZSBj b2x1bW4sCisgICAgICAgPGxpdGVyYWw+VkFSSUFCTEU8L2xpdGVyYWw+CiAgICAgICA8L2VudHJ5 PgogICAgICA8L3Jvdz4KICAgICAgPHJvdz4KQEAgLTI0NzMsNiArMjQ3OCwxMiBAQCBSRVZPS0Ug QUxMIE9OIGFjY291bnRzIEZST00gUFVCTElDOwogICAgICAgPGVudHJ5PjxsaXRlcmFsPlU8L2xp dGVyYWw+PC9lbnRyeT4KICAgICAgIDxlbnRyeT48bGl0ZXJhbD5cZFQrPC9saXRlcmFsPjwvZW50 cnk+CiAgICAgIDwvcm93PgorICAgICA8cm93PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPlZBUklB QkxFPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+cnc8L2xpdGVyYWw+ PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD5ub25lPC9saXRlcmFsPjwvZW50cnk+Cisg ICAgICA8ZW50cnk+PGxpdGVyYWw+XGRWKzwvbGl0ZXJhbD48L2VudHJ5PgorICAgICA8L3Jvdz4K ICAgICA8L3Rib2R5PgogICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CkBAIC01MzIzLDYgKzUzMzQs MzEgQEAgRVhQTEFJTiBTRUxFQ1QgY291bnQoKikgRlJPTSBtZWFzdXJlbWVudCBXSEVSRSBsb2dk YXRlICZndDs9IERBVEUgJzIwMDgtMDEtMDEnOwogICAgPC9wYXJhPgogIDwvc2VjdDE+CiAKKyAg PHNlY3QxIGlkPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiPgorICAgPHRpdGxlPlNlc3Npb24gVmFy aWFibGVzPC90aXRsZT4KKworICAgPGluZGV4dGVybSB6b25lPSJkZGwtc2Vzc2lvbi12YXJpYWJs ZXMiPgorICAgIDxwcmltYXJ5PlNlc3Npb24gdmFyaWFibGVzPC9wcmltYXJ5PgorICAgPC9pbmRl eHRlcm0+CisKKyAgIDxpbmRleHRlcm0+CisgICAgPHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwv cHJpbWFyeT4KKyAgIDwvaW5kZXh0ZXJtPgorCisgICA8cGFyYT4KKyAgICBTZXNzaW9uIHZhcmlh YmxlcyBhcmUgZGF0YWJhc2Ugb2JqZWN0cyB0aGF0IGNhbiBob2xkIGEgdmFsdWUuCisgICAgU2Vz c2lvbiB2YXJpYWJsZXMsIGxpa2UgcmVsYXRpb25zLCBleGlzdCB3aXRoaW4gYSBzY2hlbWEgYW5k IHRoZWlyIGFjY2VzcworICAgIGlzIGNvbnRyb2xsZWQgdmlhIDxjb21tYW5kPkdSQU5UPC9jb21t YW5kPiBhbmQgPGNvbW1hbmQ+UkVWT0tFPC9jb21tYW5kPgorICAgIGNvbW1hbmRzLiAgQSBzZXNz aW9uIHZhcmlhYmxlIGNhbiBiZSBjcmVhdGVkIGJ5IHRoZSA8Y29tbWFuZD5DUkVBVEUKKyAgICBW QVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZC4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAg VGhlIHNlc3Npb24gdmFyaWFibGUgaG9sZHMgdmFsdWUgaW4gc2Vzc2lvbiBtZW1vcnkuICBUaGlz IHZhbHVlIGlzIHByaXZhdGUKKyAgICB0byBlYWNoIHNlc3Npb24gYW5kIGlzIHJlbGVhc2VkIHdo ZW4gdGhlIHNlc3Npb24gZW5kcy4KKyAgIDwvcGFyYT4KKyAgPC9zZWN0MT4KKwogIDxzZWN0MSBp ZD0iZGRsLW90aGVycyI+CiAgIDx0aXRsZT5PdGhlciBEYXRhYmFzZSBPYmplY3RzPC90aXRsZT4K IApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbCBiL2RvYy9zcmMvc2dtbC9mdW5j LnNnbWwKaW5kZXggNDczNzBlNTgxYS4uZDA0MWE4NzMzNSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2Z1bmMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCkBAIC0yNTI2OSw2ICsy NTI2OSwyNSBAQCBTRUxFQ1QgaGFzX2Z1bmN0aW9uX3ByaXZpbGVnZSgnam9ldXNlcicsICdteWZ1 bmMoaW50LCB0ZXh0KScsICdleGVjdXRlJyk7CiAgICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAg ICA8L3Jvdz4KIAorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9l bnRyeSI+PHBhcmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgorICAgICAgICA8aW5kZXh0ZXJtPgor ICAgICAgICAgPHByaW1hcnk+aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlPC9wcmltYXJ5 PgorICAgICAgICA8L2luZGV4dGVybT4KKyAgICAgICAgPGZ1bmN0aW9uPmhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZTwvZnVuY3Rpb24+ICgKKyAgICAgICAgICA8b3B0aW9uYWw+IDxwYXJh bWV0ZXI+dXNlcjwvcGFyYW1ldGVyPiA8dHlwZT5uYW1lPC90eXBlPiBvciA8dHlwZT5vaWQ8L3R5 cGU+LCA8L29wdGlvbmFsPgorICAgICAgICAgIDxwYXJhbWV0ZXI+c2Vzc2lvbl92YXJpYWJsZTwv cGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90eXBlPiBvciA8dHlwZT5vaWQ8L3R5cGU+LAorICAgICAg ICAgIDxwYXJhbWV0ZXI+cHJpdmlsZWdlPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+ICkK KyAgICAgICAgPHJldHVybnZhbHVlPmJvb2xlYW48L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFy YT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgRG9lcyB1c2VyIGhhdmUgcHJpdmlsZWdlIGZvciBz ZXNzaW9uIHZhcmlhYmxlPworICAgICAgICBBbGxvd2FibGUgcHJpdmlsZWdlIHR5cGVzIGFyZQor ICAgICAgICA8bGl0ZXJhbD5TRUxFQ1Q8L2xpdGVyYWw+LCBhbmQKKyAgICAgICAgPGxpdGVyYWw+ VVBEQVRFPC9saXRlcmFsPi4KKyAgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgIDwvcm93Pgor CiAgICAgICA8cm93PgogICAgICAgIDxlbnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJmdW5jX3NpZ25hdHVyZSI+CiAgICAgICAgIDxpbmRleHRlcm0+CkBAIC0yNTc5NCw2 ICsyNTgxMywxOSBAQCBTRUxFQ1QgcmVsbmFtZSBGUk9NIHBnX2NsYXNzIFdIRVJFIHBnX3RhYmxl X2lzX3Zpc2libGUob2lkKTsKICAgICAgICAgSXMgdHlwZSAob3IgZG9tYWluKSB2aXNpYmxlIGlu IHNlYXJjaCBwYXRoPwogICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICAgPC9yb3c+CisKKyAg ICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImZ1bmNfc2lnbmF0dXJlIj4KKyAgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAgIDxwcmlt YXJ5PnBnX3ZhcmlhYmxlX2lzX3Zpc2libGU8L3ByaW1hcnk+CisgICAgICAgIDwvaW5kZXh0ZXJt PgorICAgICAgICA8ZnVuY3Rpb24+cGdfdmFyaWFibGVfaXNfdmlzaWJsZTwvZnVuY3Rpb24+ICgg PHBhcmFtZXRlcj52YXJpYWJsZTwvcGFyYW1ldGVyPiA8dHlwZT5vaWQ8L3R5cGU+ICkKKyAgICAg ICAgPHJldHVybnZhbHVlPmJvb2xlYW48L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAg ICAgICA8cGFyYT4KKyAgICAgICAgSXMgc2Vzc2lvbiB2YXJpYWJsZSB2aXNpYmxlIGluIHNlYXJj aCBwYXRoPworICAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICAgPC9yb3c+CiAgICAgIDwvdGJv ZHk+CiAgICAgPC90Z3JvdXA+CiAgICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L2dsb3NzYXJ5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAppbmRleCBmNTRmMjVj MWM2Li5kMGNiNTM3NjNhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbApAQCAtMTY2NCw2ICsxNjY0LDIxIEBACiAg ICA8L2dsb3NzZGVmPgogICA8L2dsb3NzZW50cnk+CiAKKyAgPGdsb3NzZW50cnkgaWQ9Imdsb3Nz YXJ5LXNlc3Npb24tdmFyaWFibGUiPgorICAgPGdsb3NzdGVybT5TZXNzaW9uIHZhcmlhYmxlPC9n bG9zc3Rlcm0+CisgICA8Z2xvc3NkZWY+CisgICAgPHBhcmE+CisgICAgIEEgcGVyc2lzdGVudCBk YXRhYmFzZSBvYmplY3QgdGhhdCBob2xkcyBhIHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAgVGhp cworICAgICB2YWx1ZSBpcyBwcml2YXRlIHRvIGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVsZWFzZWQg d2hlbiB0aGUgc2Vzc2lvbiBlbmRzLgorICAgICBSZWFkIG9yIHdyaXRlIGFjY2VzcyB0byBzZXNz aW9uIHZhcmlhYmxlcyBpcyBjb250cm9sbGVkIGJ5IHByaXZpbGVnZXMsCisgICAgIHNpbWlsYXIg dG8gb3RoZXIgZGF0YWJhc2Ugb2JqZWN0cy4KKyAgICA8L3BhcmE+CisgICAgPHBhcmE+CisgICAg IEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgPHhyZWYgbGlua2VuZD0iZGRsLXNlc3Npb24tdmFy aWFibGVzIi8+LgorICAgIDwvcGFyYT4KKyAgIDwvZ2xvc3NkZWY+CisgIDwvZ2xvc3NlbnRyeT4K KwogICA8Z2xvc3NlbnRyeSBpZD0iZ2xvc3Nhcnktc2hhcmVkLW1lbW9yeSI+CiAgICA8Z2xvc3N0 ZXJtPlNoYXJlZCBtZW1vcnk8L2dsb3NzdGVybT4KICAgIDxnbG9zc2RlZj4KZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmls ZXMuc2dtbAppbmRleCBmNWJlNjM4ODY3Li4yZjY3ZGUzZTIxIDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5z Z21sCkBAIC00Nyw2ICs0Nyw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNnbWwgc291cmNl IGZpbGVzIGluIHRoaXMgZGlyZWN0b3J5LgogPCFFTlRJVFkgYWx0ZXJUeXBlICAgICAgICAgIFNZ U1RFTSAiYWx0ZXJfdHlwZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyVXNlciAgICAgICAgICBTWVNU RU0gImFsdGVyX3VzZXIuc2dtbCI+CiA8IUVOVElUWSBhbHRlclVzZXJNYXBwaW5nICAgU1lTVEVN ICJhbHRlcl91c2VyX21hcHBpbmcuc2dtbCI+Cis8IUVOVElUWSBhbHRlclZhcmlhYmxlICAgICAg U1lTVEVNICJhbHRlcl92YXJpYWJsZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyVmlldyAgICAgICAg ICBTWVNURU0gImFsdGVyX3ZpZXcuc2dtbCI+CiA8IUVOVElUWSBhbmFseXplICAgICAgICAgICAg U1lTVEVNICJhbmFseXplLnNnbWwiPgogPCFFTlRJVFkgYmVnaW4gICAgICAgICAgICAgIFNZU1RF TSAiYmVnaW4uc2dtbCI+CkBAIC05OSw2ICsxMDAsNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVzYWJs ZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZIGNyZWF0ZVR5 cGUgICAgICAgICBTWVNURU0gImNyZWF0ZV90eXBlLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlVXNl ciAgICAgICAgIFNZU1RFTSAiY3JlYXRlX3VzZXIuc2dtbCI+CiA8IUVOVElUWSBjcmVhdGVVc2Vy TWFwcGluZyAgU1lTVEVNICJjcmVhdGVfdXNlcl9tYXBwaW5nLnNnbWwiPgorPCFFTlRJVFkgY3Jl YXRlVmFyaWFibGUgICAgIFNZU1RFTSAiY3JlYXRlX3ZhcmlhYmxlLnNnbWwiPgogPCFFTlRJVFkg Y3JlYXRlVmlldyAgICAgICAgIFNZU1RFTSAiY3JlYXRlX3ZpZXcuc2dtbCI+CiA8IUVOVElUWSBk ZWFsbG9jYXRlICAgICAgICAgU1lTVEVNICJkZWFsbG9jYXRlLnNnbWwiPgogPCFFTlRJVFkgZGVj bGFyZSAgICAgICAgICAgIFNZU1RFTSAiZGVjbGFyZS5zZ21sIj4KQEAgLTE0Nyw2ICsxNDksNyBA QCBDb21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlzIGRpcmVj dG9yeS4KIDwhRU5USVRZIGRyb3BUeXBlICAgICAgICAgICBTWVNURU0gImRyb3BfdHlwZS5zZ21s Ij4KIDwhRU5USVRZIGRyb3BVc2VyICAgICAgICAgICBTWVNURU0gImRyb3BfdXNlci5zZ21sIj4K IDwhRU5USVRZIGRyb3BVc2VyTWFwcGluZyAgICBTWVNURU0gImRyb3BfdXNlcl9tYXBwaW5nLnNn bWwiPgorPCFFTlRJVFkgZHJvcFZhcmlhYmxlICAgICAgIFNZU1RFTSAiZHJvcF92YXJpYWJsZS5z Z21sIj4KIDwhRU5USVRZIGRyb3BWaWV3ICAgICAgICAgICBTWVNURU0gImRyb3Bfdmlldy5zZ21s Ij4KIDwhRU5USVRZIGVuZCAgICAgICAgICAgICAgICBTWVNURU0gImVuZC5zZ21sIj4KIDwhRU5U SVRZIGV4ZWN1dGUgICAgICAgICAgICBTWVNURU0gImV4ZWN1dGUuc2dtbCI+CmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21sIGIvZG9jL3Ny Yy9zZ21sL3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbAppbmRleCA4OWFhY2VjNGZh Li5hNTg1MmQzMjU2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRf cHJpdmlsZWdlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2 aWxlZ2VzLnNnbWwKQEAgLTUxLDYgKzUxLDExIEBAIEdSQU5UIHsgeyBVU0FHRSB8IENSRUFURSB9 CiAgICAgT04gU0NIRU1BUwogICAgIFRPIHsgWyBHUk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiB8IFBVQkxJQyB9IFssIC4uLl0gWyBX SVRIIEdSQU5UIE9QVElPTiBdCiAKK0dSQU5UIHsgeyBTRUxFQ1QgfCBVUERBVEUgfQorICAgIFss IC4uLl0gfCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIFZBUklBQkxFUworICAgIFRPIHsg WyBHUk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxh Y2VhYmxlPiB8IFBVQkxJQyB9IFssIC4uLl0gWyBXSVRIIEdSQU5UIE9QVElPTiBdCisKIFJFVk9L RSBbIEdSQU5UIE9QVElPTiBGT1IgXQogICAgIHsgeyBTRUxFQ1QgfCBJTlNFUlQgfCBVUERBVEUg fCBERUxFVEUgfCBUUlVOQ0FURSB8IFJFRkVSRU5DRVMgfCBUUklHR0VSIHwgTUFJTlRBSU4gfQog ICAgIFssIC4uLl0gfCBBTEwgWyBQUklWSUxFR0VTIF0gfQpAQCAtODMsNiArODgsMTIgQEAgUkVW T0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgICAgT04gU0NIRU1BUwogICAgIEZST00geyBbIEdS T1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFi bGU+IHwgUFVCTElDIH0gWywgLi4uXQogICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKworUkVW T0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCisgICAgeyB7IFNFTEVDVCB8IFVQREFURSB9IFssIC4u Ll0gfCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIFZBUklBQkxFUworICAgIEZST00geyBb IEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFj ZWFibGU+IHwgUFVCTElDIH0gWywgLi4uXQorICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KIDwv c3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KIApAQCAtMTE3LDE0ICsxMjgsMTQgQEAgUkVW T0tFIFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgIDxwYXJhPgogICAgQ3VycmVudGx5LAogICAgb25s eSB0aGUgcHJpdmlsZWdlcyBmb3Igc2NoZW1hcywgdGFibGVzIChpbmNsdWRpbmcgdmlld3MgYW5k IGZvcmVpZ24KLSAgIHRhYmxlcyksIHNlcXVlbmNlcywgZnVuY3Rpb25zLCBhbmQgdHlwZXMgKGlu Y2x1ZGluZyBkb21haW5zKSBjYW4gYmUKLSAgIGFsdGVyZWQuICBGb3IgdGhpcyBjb21tYW5kLCBm dW5jdGlvbnMgaW5jbHVkZSBhZ2dyZWdhdGVzIGFuZCBwcm9jZWR1cmVzLgotICAgVGhlIHdvcmRz IDxsaXRlcmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFsPlJPVVRJTkVTPC9saXRl cmFsPiBhcmUKLSAgIGVxdWl2YWxlbnQgaW4gdGhpcyBjb21tYW5kLiAgKDxsaXRlcmFsPlJPVVRJ TkVTPC9saXRlcmFsPiBpcyBwcmVmZXJyZWQKLSAgIGdvaW5nIGZvcndhcmQgYXMgdGhlIHN0YW5k YXJkIHRlcm0gZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyB0YWtlbgotICAgdG9nZXRoZXIu ICBJbiBlYXJsaWVyIFBvc3RncmVTUUwgcmVsZWFzZXMsIG9ubHkgdGhlCi0gICB3b3JkIDxsaXRl cmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4gd2FzIGFsbG93ZWQuICBJdCBpcyBub3QgcG9zc2libGUg dG8gc2V0Ci0gICBkZWZhdWx0IHByaXZpbGVnZXMgZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJl cyBzZXBhcmF0ZWx5LikKKyAgIHRhYmxlcyksIHNlcXVlbmNlcywgZnVuY3Rpb25zLCB0eXBlcyAo aW5jbHVkaW5nIGRvbWFpbnMpLCBhbmQgc2Vzc2lvbgorICAgdmFyaWFibGVzIGNhbiBiZSBhbHRl cmVkLiAgRm9yIHRoaXMgY29tbWFuZCwgZnVuY3Rpb25zIGluY2x1ZGUgYWdncmVnYXRlcworICAg YW5kIHByb2NlZHVyZXMuICBUaGUgd29yZHMgPGxpdGVyYWw+RlVOQ1RJT05TPC9saXRlcmFsPiBh bmQKKyAgIDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBhcmUgZXF1aXZhbGVudCBpbiB0aGlz IGNvbW1hbmQuCisgICAoPGxpdGVyYWw+Uk9VVElORVM8L2xpdGVyYWw+IGlzIHByZWZlcnJlZCBn b2luZyBmb3J3YXJkIGFzIHRoZSBzdGFuZGFyZAorICAgdGVybSBmb3IgZnVuY3Rpb25zIGFuZCBw cm9jZWR1cmVzIHRha2VuIHRvZ2V0aGVyLiAgSW4gZWFybGllciBQb3N0Z3JlU1FMCisgICByZWxl YXNlcywgb25seSB0aGUgd29yZCA8bGl0ZXJhbD5GVU5DVElPTlM8L2xpdGVyYWw+IHdhcyBhbGxv d2VkLiAgSXQgaXMgbm90CisgICBwb3NzaWJsZSB0byBzZXQgZGVmYXVsdCBwcml2aWxlZ2VzIGZv ciBmdW5jdGlvbnMgYW5kIHByb2NlZHVyZXMgc2VwYXJhdGVseS4pCiAgIDwvcGFyYT4KIAogICA8 cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwLi45NmQyNTg2NDIzCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCkBAIC0wLDAgKzEsMTc4IEBACis8IS0tCitk b2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRh dGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWFsdGVydmFyaWFibGUiPgorIDxpbmRleHRl cm0gem9uZT0ic3FsLWFsdGVydmFyaWFibGUiPgorICA8cHJpbWFyeT5BTFRFUiBWQVJJQUJMRTwv cHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxpbmRleHRlcm0+CisgIDxwcmltYXJ5PnNlc3Np b24gdmFyaWFibGU8L3ByaW1hcnk+CisgIDxzZWNvbmRhcnk+YWx0ZXJpbmc8L3NlY29uZGFyeT4K KyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5BTFRFUiBWQVJJ QUJMRTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZt aXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1l dGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+QUxURVIgVkFSSUFCTEU8L3JlZm5hbWU+ CisgIDxyZWZwdXJwb3NlPgorICAgY2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIGEgc2Vzc2lvbiB2 YXJpYWJsZQorICA8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lz ZGl2PgorPHN5bm9wc2lzPgorQUxURVIgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBPV05FUiBUTyB7IDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfUk9MRSB8IENVUlJF TlRfVVNFUiB8IFNFU1NJT05fVVNFUiB9CitBTFRFUiBWQVJJQUJMRSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bmV3X25hbWU8L3JlcGxhY2VhYmxlPgorQUxURVIgVkFSSUFCTEUg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgU0NI RU1BIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfc2NoZW1hPC9yZXBsYWNlYWJs ZT4KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRp dGxlPkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5BTFRF UiBWQVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCBjaGFuZ2VzIHRoZSBkZWZpbml0aW9uIG9mIGFu CisgICBleGlzdGluZyBzZXNzaW9uIHZhcmlhYmxlLiBUaGVyZSBhcmUgc2V2ZXJhbCBzdWJmb3Jt czoKKworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0 ZXJhbD5PV05FUjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFRoaXMgZm9ybSBjaGFuZ2VzIHRoZSBvd25lciBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJs ZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5SRU5BTUU8L2xpdGVyYWw+PC90 ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gY2hhbmdl cyB0aGUgbmFtZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8 dGVybT48bGl0ZXJhbD5TRVQgU0NIRU1BPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgVGhpcyBmb3JtIG1vdmVzIHRoZSBzZXNzaW9uIHZhcmlhYmxl IGludG8gYW5vdGhlciBzY2hlbWEuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAg PC92YXJsaXN0ZW50cnk+CisKKyAgPC92YXJpYWJsZWxpc3Q+CisgIDwvcGFyYT4KKworICA8cGFy YT4KKyAgIE9ubHkgdGhlIG93bmVyIG9yIGEgc3VwZXJ1c2VyIGlzIGFsbG93ZWQgdG8gYWx0ZXIg YSBzZXNzaW9uIHZhcmlhYmxlLgorICAgSW4gb3JkZXIgdG8gbW92ZSBhIHNlc3Npb24gdmFyaWFi bGUgZnJvbSBvbmUgc2NoZW1hIHRvIGFub3RoZXIsIHRoZSB1c2VyCisgICBtdXN0IGFsc28gaGF2 ZSB0aGUgPGxpdGVyYWw+Q1JFQVRFPC9saXRlcmFsPiBwcml2aWxlZ2Ugb24gdGhlIG5ldyBzY2hl bWEgKG9yCisgICBiZSBhIHN1cGVydXNlcikuCisKKyAgIEluIG9yZGVyIHRvIG1vdmUgdGhlIHNl c3Npb24gdmFyaWFibGUgb3duZXJzaGlwIGZyb20gb25lIHJvbGUgdG8gYW5vdGhlciwKKyAgIHRo ZSB1c2VyIG11c3QgYWxzbyBiZSBhIGRpcmVjdCBvciBpbmRpcmVjdCBtZW1iZXIgb2YgdGhlIG5l dworICAgb3duaW5nIHJvbGUsIGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZlIHRoZSA8bGl0ZXJhbD5D UkVBVEU8L2xpdGVyYWw+IHByaXZpbGVnZQorICAgb24gdGhlIHNlc3Npb24gdmFyaWFibGUncyBz Y2hlbWEgKG9yIGJlIGEgc3VwZXJ1c2VyKS4gVGhlc2UgcmVzdHJpY3Rpb25zCisgICBlbmZvcmNl IHRoYXQgYWx0ZXJpbmcgdGhlIG93bmVyIGRvZXNuJ3QgZG8gYW55dGhpbmcgeW91IGNvdWxkbid0 IGRvIGJ5CisgICBkcm9wcGluZyBhbmQgcmVjcmVhdGluZyB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4K KyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0 ZXJzPC90aXRsZT4KKworICAgPHBhcmE+CisgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgPHZhcmxp c3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1l PC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+Cisg ICAgICAgIFRoZSBuYW1lIChwb3NzaWJseSBzY2hlbWEtcXVhbGlmaWVkKSBvZiB0aGUgZXhpc3Rp bmcgc2Vzc2lvbiB2YXJpYWJsZQorICAgICAgICB0byBhbHRlci4KKyAgICAgICA8L3BhcmE+Cisg ICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVu dHJ5PgorICAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19vd25l cjwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgor ICAgICAgICBUaGUgdXNlciBuYW1lIG9mIHRoZSBuZXcgb3duZXIgb2YgdGhlIHNlc3Npb24gdmFy aWFibGUuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0 ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5uZXdfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAgPGxp c3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgbmV3IG5hbWUgZm9yIHRoZSBzZXNz aW9uIHZhcmlhYmxlLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwv dmFybGlzdGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X3NjaGVtYTwvcmVwbGFjZWFibGU+PC90ZXJtPgor ICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgbmV3IHNjaGVtYSBm b3IgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRl bT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisgICAgPC92YXJpYWJsZWxpc3Q+CisgICA8L3BhcmE+ CisgIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+ CisKKyAgPHBhcmE+CisgICBUbyByZW5hbWUgYSBzZXNzaW9uIHZhcmlhYmxlOgorPHByb2dyYW1s aXN0aW5nPgorQUxURVIgVkFSSUFCTEUgZm9vIFJFTkFNRSBUTyBib287Cis8L3Byb2dyYW1saXN0 aW5nPgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUbyBjaGFuZ2UgdGhlIG93bmVyIG9mIHRo ZSBzZXNzaW9uIHZhcmlhYmxlIDxsaXRlcmFsPmJvbzwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFs PmpvZTwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBWQVJJQUJMRSBib28gT1dO RVIgVE8gam9lOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAg VG8gY2hhbmdlIHRoZSBzY2hlbWEgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+Ym9v PC9saXRlcmFsPiB0bworICAgPGxpdGVyYWw+cHJpdmF0ZTwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxp c3Rpbmc+CitBTFRFUiBWQVJJQUJMRSBib28gU0VUIFNDSEVNQSBwcml2YXRlOworPC9wcm9ncmFt bGlzdGluZz4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRs ZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFNlc3Npb24gdmFyaWFibGVz IGFuZCB0aGlzIGNvbW1hbmQgaW4gcGFydGljdWxhciBhcmUgYSBQb3N0Z3JlU1FMIGV4dGVuc2lv bi4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDEgaWQ9InNxbC1hbHRlcnZh cmlhYmxlLXNlZS1hbHNvIj4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxl bGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRl dmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2 YXJpYWJsZSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKzwvcmVm ZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvY29tbWVudC5zZ21sCmluZGV4IDViNDNjNTZiMTMuLjIxY2Q4MDgxOGYgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvY29tbWVudC5zZ21sCkBAIC02NSw2ICs2NSw3IEBAIENPTU1FTlQgT04KICAgVFJBTlNG T1JNIEZPUiA8cmVwbGFjZWFibGU+dHlwZV9uYW1lPC9yZXBsYWNlYWJsZT4gTEFOR1VBR0UgPHJl cGxhY2VhYmxlPmxhbmdfbmFtZTwvcmVwbGFjZWFibGU+IHwKICAgVFJJR0dFUiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+dHJpZ2dlcl9uYW1lPC9yZXBsYWNlYWJsZT4gT04gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFRZ UEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJs ZT4gfAorICBWQVJJQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25h bWU8L3JlcGxhY2VhYmxlPiB8CiAgIFZJRVcgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4KIH0gSVMgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+c3RyaW5nX2xpdGVyYWw8L3JlcGxhY2VhYmxlPiB8IE5VTEwgfQogCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbCBiL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3NjaGVtYS5zZ21sCmluZGV4IGVkNjkyOThjY2MuLmQyYmIyNjUyMDkgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sCkBAIC0xMDMsOSArMTAzLDEwIEBAIENSRUFURSBT Q0hFTUEgSUYgTk9UIEVYSVNUUyBBVVRIT1JJWkFUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5yb2xlX3NwCiAgICAgICAgIHNjaGVtYS4gQ3VycmVudGx5LCBvbmx5IDxjb21tYW5k PkNSRUFURQogICAgICAgICBUQUJMRTwvY29tbWFuZD4sIDxjb21tYW5kPkNSRUFURSBWSUVXPC9j b21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRFCiAgICAgICAgIElOREVYPC9jb21tYW5kPiwgPGNvbW1h bmQ+Q1JFQVRFIFNFUVVFTkNFPC9jb21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRFCi0gICAgICAgIFRS SUdHRVI8L2NvbW1hbmQ+IGFuZCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gYXJlIGFjY2VwdGVk IGFzIGNsYXVzZXMKLSAgICAgICAgd2l0aGluIDxjb21tYW5kPkNSRUFURSBTQ0hFTUE8L2NvbW1h bmQ+LiBPdGhlciBraW5kcyBvZiBvYmplY3RzIG1heQotICAgICAgICBiZSBjcmVhdGVkIGluIHNl cGFyYXRlIGNvbW1hbmRzIGFmdGVyIHRoZSBzY2hlbWEgaXMgY3JlYXRlZC4KKyAgICAgICAgVFJJ R0dFUjwvY29tbWFuZD4sIDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBhbmQgPGNvbW1hbmQ+Q1JF QVRFCisgICAgICAgIFZBUklBQkxFPC9jb21tYW5kPiBhcmUgYWNjZXB0ZWQgYXMgY2xhdXNlcyB3 aXRoaW4gPGNvbW1hbmQ+Q1JFQVRFCisgICAgICAgIFNDSEVNQTwvY29tbWFuZD4uIE90aGVyIGtp bmRzIG9mIG9iamVjdHMgbWF5IGJlIGNyZWF0ZWQgaW4gc2VwYXJhdGUKKyAgICAgICAgY29tbWFu ZHMgYWZ0ZXIgdGhlIHNjaGVtYSBpcyBjcmVhdGVkLgogICAgICAgIDwvcGFyYT4KICAgICAgIDwv bGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgpAQCAtMjE0LDYgKzIxNSwxMSBAQCBDUkVB VEUgVklFVyBob2xseXdvb2Qud2lubmVycyBBUwogICAgVGhlIDxsaXRlcmFsPklGIE5PVCBFWElT VFM8L2xpdGVyYWw+IG9wdGlvbiBpcyBhCiAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJv ZHVjdG5hbWU+IGV4dGVuc2lvbi4KICAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21t YW5kPkNSRUFURSBWQVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCBpcyBhCisgICA8cHJvZHVjdG5h bWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGV4dGVuc2lvbi4KKyAgPC9wYXJhPgogIDwvcmVm c2VjdDE+CiAKICA8cmVmc2VjdDE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi42ZTk4OGYyZTQ3Ci0tLSAvZGV2 L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMCww ICsxLDE0OSBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAor UG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtY3JlYXRl dmFyaWFibGUiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWNyZWF0ZXZhcmlhYmxlIj4KKyAgPHBy aW1hcnk+Q1JFQVRFIFZBUklBQkxFPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4 dGVybT4KKyAgPHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFy eT5kZWZpbmluZzwvc2Vjb25kYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxy ZWZlbnRyeXRpdGxlPkNSRUFURSBWQVJJQUJMRTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51 bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRz PC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+ Q1JFQVRFIFZBUklBQkxFPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5kZWZpbmUgYSBzZXNzaW9u IHZhcmlhYmxlPC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rp dj4KKzxzeW5vcHNpcz4KK0NSRUFURSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBDT0xMQVRF IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBd Cis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisgPHJlZnNlY3QxPgorICA8dGl0bGU+ RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkNSRUFURSBW QVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCBjcmVhdGVzIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAg IFNlc3Npb24gdmFyaWFibGVzLCBsaWtlIHJlbGF0aW9ucywgZXhpc3Qgd2l0aGluIGEgc2NoZW1h IGFuZCB0aGVpciBhY2Nlc3MgaXMKKyAgIGNvbnRyb2xsZWQgdmlhIHRoZSBjb21tYW5kcyA8Y29t bWFuZD5HUkFOVDwvY29tbWFuZD4gYW5kIDxjb21tYW5kPlJFVk9LRTwvY29tbWFuZD4uCisgIDwv cGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMg bG9jYWwgdG8gdGhlIGN1cnJlbnQgc2Vzc2lvbi4gIFJldHJpZXZpbmcKKyAgIGEgc2Vzc2lvbiB2 YXJpYWJsZSdzIHZhbHVlIHJldHVybnMgTlVMTCwgdW5sZXNzIGl0cyB2YWx1ZSBpcyBzZXQgdG8K KyAgIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50IHNlc3Npb24gd2l0aCBhIDxjb21tYW5k PkxFVDwvY29tbWFuZD4gY29tbWFuZC4KKyAgIFRoZSBjb250ZW50IG9mIGEgc2Vzc2lvbiB2YXJp YWJsZSBpcyBub3QgdHJhbnNhY3Rpb25hbC4gVGhpcyBpcyB0aGUgc2FtZSBhcworICAgcmVndWxh ciB2YXJpYWJsZXMgaW4gcHJvY2VkdXJhbCBsYW5ndWFnZXMuCisgIDwvcGFyYT4KKworICA8cGFy YT4KKyAgIFNlc3Npb24gdmFyaWFibGVzIGFyZSByZXRyaWV2ZWQgYnkgdGhlIDxjb21tYW5kPlNF TEVDVDwvY29tbWFuZD4KKyAgIGNvbW1hbmQuICBUaGVpciB2YWx1ZSBpcyBzZXQgd2l0aCB0aGUg PGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLgorICA8L3BhcmE+CisKKyAgPG5vdGU+Cisg ICA8cGFyYT4KKyAgICBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgPHF1b3RlPnNoYWRvd2VkPC9x dW90ZT4gYnkgb3RoZXIgaWRlbnRpZmllcnMuCisgICAgRm9yIGRldGFpbHMsIHNlZSA8eHJlZiBs aW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiLz4uCisgICA8L3BhcmE+CisgIDwvbm90ZT4K KyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+ CisKKyAgPHZhcmlhYmxlbGlzdD4KKworICAgPHZhcmxpc3RlbnRyeSAgaWQ9InNxbC1jcmVhdGV2 YXJpYWJsZS1pZi1ub3QtZXhpc3RzIj4KKyAgICA8dGVybT48bGl0ZXJhbD5JRiBOT1QgRVhJU1RT PC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRG8g bm90IHRocm93IGFuIGVycm9yIGlmIHRoZSBuYW1lIGFscmVhZHkgZXhpc3RzLiBBIG5vdGljZSBp cyBpc3N1ZWQgaW4KKyAgICAgIHRoaXMgY2FzZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0 ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0 ZXZhcmlhYmxlLW5hbWUiPgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFRoZSBuYW1lLCBvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQsIG9mIHRoZSBzZXNz aW9uIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtZGF0YV90 eXBlIj4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBl PC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFRoZSBuYW1lLCBvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQsIG9mIHRoZSBkYXRhIHR5cGUg b2YgdGhlIHNlc3Npb24KKyAgICAgIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0 aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3Jl YXRldmFyaWFibGUtY29sbGF0ZSI+CisgICAgPHRlcm0+PGxpdGVyYWw+Q09MTEFURSA8cmVwbGFj ZWFibGU+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0 aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgPGxpdGVyYWw+Q09MTEFURTwvbGl0ZXJhbD4g Y2xhdXNlIGFzc2lnbnMgYSBjb2xsYXRpb24gdG8gdGhlIHNlc3Npb24KKyAgICAgIHZhcmlhYmxl ICh3aGljaCBtdXN0IGJlIG9mIGEgY29sbGF0YWJsZSBkYXRhIHR5cGUpLiAgSWYgbm90IHNwZWNp ZmllZCwKKyAgICAgIHRoZSBkYXRhIHR5cGUncyBkZWZhdWx0IGNvbGxhdGlvbiBpcyB1c2VkLgor ICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgIDwv dmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Ob3Rl czwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBVc2UgdGhlIDxjb21tYW5kPkRST1AgVkFSSUFCTEU8 L2NvbW1hbmQ+IGNvbW1hbmQgdG8gcmVtb3ZlIGEgc2Vzc2lvbgorICAgdmFyaWFibGUuCisgIDwv cGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3Rp dGxlPgorCisgIDxwYXJhPgorICAgQ3JlYXRlIGFuIGRhdGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0 ZXJhbD52YXIxPC9saXRlcmFsPjoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIGRhdGU7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyA8L3JlZnNlY3Qx PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBh cmE+CisgICBUaGUgPGNvbW1hbmQ+Q1JFQVRFIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGlz IGEKKyAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgor ICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNv PC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4K KyA8L3JlZnNlY3QxPgorCis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl Zi9kcm9wX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dt bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi41YmRiMzU2MGYwCi0tLSAv ZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKQEAgLTAs MCArMSwxMTcgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCitQ b3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1kcm9wdmFy aWFibGUiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWRyb3B2YXJpYWJsZSI+CisgIDxwcmltYXJ5 PkRST1AgVkFSSUFCTEU8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8aW5kZXh0ZXJtPgor ICA8cHJpbWFyeT5zZXNzaW9uIHZhcmlhYmxlPC9wcmltYXJ5PgorICA8c2Vjb25kYXJ5PnJlbW92 aW5nPC9zZWNvbmRhcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5 dGl0bGU+RFJPUCBWQVJJQUJMRTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52 b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNj aW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+RFJPUCBWQVJJ QUJMRTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+cmVtb3ZlIGEgc2Vzc2lvbiB2YXJpYWJsZTwv cmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3Bz aXM+CitEUk9QIFZBUklBQkxFIFsgSUYgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0K Kzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxl PkRlc2NyaXB0aW9uPC90aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkRST1AgVkFSSUFC TEU8L2NvbW1hbmQ+IHJlbW92ZXMgYSBzZXNzaW9uIHZhcmlhYmxlLgorICAgQSBzZXNzaW9uIHZh cmlhYmxlIGNhbiBvbmx5IGJlIHJlbW92ZWQgYnkgaXRzIG93bmVyIG9yIGEgc3VwZXJ1c2VyLgor ICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRl cnM8L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0 ZXJtPjxsaXRlcmFsPklGIEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgor ICAgICA8cGFyYT4KKyAgICAgIERvIG5vdCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgc2Vzc2lvbiB2 YXJpYWJsZSBkb2VzIG5vdCBleGlzdC4gQSBub3RpY2UgaXMKKyAgICAgIGlzc3VlZCBpbiB0aGlz IGNhc2UuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxw YXJhPgorICAgICAgVGhlIG5hbWUsIG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCwgb2YgYSBz ZXNzaW9uIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFy bGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPkNBU0NB REU8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBB dXRvbWF0aWNhbGx5IGRyb3Agb2JqZWN0cyB0aGF0IGRlcGVuZCBvbiB0aGUgc2Vzc2lvbiB2YXJp YWJsZSAoc3VjaCBhcworICAgICAgdmlld3MpLCBhbmQgaW4gdHVybiBhbGwgb2JqZWN0cyB0aGF0 IGRlcGVuZCBvbiB0aG9zZSBvYmplY3RzCisgICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1k ZXBlbmQiLz4pLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVu dHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlJFU1RSSUNUPC9s aXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgUmVmdXNl IHRvIGRyb3AgdGhlIHNlc3Npb24gdmFyaWFibGUgaWYgYW55IG9iamVjdHMgZGVwZW5kIG9uIGl0 LiAgVGhpcyBpcworICAgICAgdGhlIGRlZmF1bHQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3Rp dGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisgIDwvdmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+ CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+Cisg ICBUbyByZW1vdmUgdGhlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD46 CisKKzxwcm9ncmFtbGlzdGluZz4KK0RST1AgVkFSSUFCTEUgdmFyMTsKKzwvcHJvZ3JhbWxpc3Rp bmc+PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRp YmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5EUk9QIFZBUklBQkxF PC9jb21tYW5kPiBjb21tYW5kIGlzIGEKKyAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9k dWN0bmFtZT4gZXh0ZW5zaW9uLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0 MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxp bmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwvbWVt YmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21l bWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKzwvcmVmZW50cnk+CmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2dy YW50LnNnbWwKaW5kZXggOTk5ZjY1N2Q1Yy4uYzExODYwZmEyMCAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL3JlZi9ncmFudC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbApA QCAtMTAxLDYgKzEwMSwxMiBAQCBHUkFOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBUTyA8cmVwbGFjZQogICAgIFsgV0lUSCB7 IEFETUlOIHwgSU5IRVJJVCB8IFNFVCB9IHsgT1BUSU9OIHwgVFJVRSB8IEZBTFNFIH0gXQogICAg IFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZp Y2F0aW9uPC9yZXBsYWNlYWJsZT4gXQogCitHUkFOVCB7IFNFTEVDVCB8IFVQREFURSB8IEFMTCBb IFBSSVZJTEVHRVMgXSB9CisgICAgT04geyBWQVJJQUJMRSA8cmVwbGFjZWFibGU+dmFyaWFibGVf bmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0KKyAgICAgICB8IEFMTCBWQVJJQUJMRVMgSU4gU0NI RU1BIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFi bGU+IFssIC4uLl0gfQorICAgIFRPIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xl X3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFsgV0lUSCBHUkFOVCBPUFRJT04g XQorICAgIFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9z cGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gXQorCiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBjYW4g YmU6PC9waHJhc2U+CiAKICAgICBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+CkBAIC0xMTksOCArMTI1LDggQEAgR1JBTlQgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4u Ll0gVE8gPHJlcGxhY2UKICAgIHRoYXQgZ3JhbnRzIHByaXZpbGVnZXMgb24gYSBkYXRhYmFzZSBv YmplY3QgKHRhYmxlLCBjb2x1bW4sIHZpZXcsCiAgICBmb3JlaWduIHRhYmxlLCBzZXF1ZW5jZSwg ZGF0YWJhc2UsIGZvcmVpZ24tZGF0YSB3cmFwcGVyLCBmb3JlaWduIHNlcnZlciwKICAgIGZ1bmN0 aW9uLCBwcm9jZWR1cmUsIHByb2NlZHVyYWwgbGFuZ3VhZ2UsIGxhcmdlIG9iamVjdCwgY29uZmln dXJhdGlvbgotICAgcGFyYW1ldGVyLCBzY2hlbWEsIHRhYmxlc3BhY2UsIG9yIHR5cGUpLCBhbmQg b25lIHRoYXQgZ3JhbnRzCi0gICBtZW1iZXJzaGlwIGluIGEgcm9sZS4gIFRoZXNlIHZhcmlhbnRz IGFyZSBzaW1pbGFyIGluIG1hbnkgd2F5cywgYnV0CisgICBwYXJhbWV0ZXIsIHNjaGVtYSwgc2Vz c2lvbiB2YXJpYWJsZSwgdGFibGVzcGFjZSwgb3IgdHlwZSksIGFuZCBvbmUgdGhhdAorICAgZ3Jh bnRzIG1lbWJlcnNoaXAgaW4gYSByb2xlLiAgVGhlc2UgdmFyaWFudHMgYXJlIHNpbWlsYXIgaW4g bWFueSB3YXlzLCBidXQKICAgIHRoZXkgYXJlIGRpZmZlcmVudCBlbm91Z2ggdG8gYmUgZGVzY3Jp YmVkIHNlcGFyYXRlbHkuCiAgIDwvcGFyYT4KIApAQCAtMjM2LDkgKzI0Miw5IEBAIEdSQU5UIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAu Li5dIFRPIDxyZXBsYWNlCiAgIDxwYXJhPgogICAgVGhlcmUgaXMgYWxzbyBhbiBvcHRpb24gdG8g Z3JhbnQgcHJpdmlsZWdlcyBvbiBhbGwgb2JqZWN0cyBvZiB0aGUgc2FtZQogICAgdHlwZSB3aXRo aW4gb25lIG9yIG1vcmUgc2NoZW1hcy4gIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyBjdXJyZW50bHkg c3VwcG9ydGVkCi0gICBvbmx5IGZvciB0YWJsZXMsIHNlcXVlbmNlcywgZnVuY3Rpb25zLCBhbmQg cHJvY2VkdXJlcy4gIDxsaXRlcmFsPkFMTAotICAgVEFCTEVTPC9saXRlcmFsPiBhbHNvIGFmZmVj dHMgdmlld3MgYW5kIGZvcmVpZ24gdGFibGVzLCBqdXN0IGxpa2UgdGhlCi0gICBzcGVjaWZpYy1v YmplY3QgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGNvbW1hbmQuICA8bGl0ZXJhbD5BTEwKKyAg IG9ubHkgZm9yIHRhYmxlcywgc2VxdWVuY2VzLCBmdW5jdGlvbnMsIHByb2NlZHVyZXMgYW5kIHZh cmlhYmxlcy4KKyAgIDxsaXRlcmFsPkFMTCBUQUJMRVM8L2xpdGVyYWw+IGFsc28gYWZmZWN0cyB2 aWV3cyBhbmQgZm9yZWlnbiB0YWJsZXMsIGp1c3QKKyAgIGxpa2UgdGhlIHNwZWNpZmljLW9iamVj dCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gY29tbWFuZC4gIDxsaXRlcmFsPkFMTAogICAgRlVO Q1RJT05TPC9saXRlcmFsPiBhbHNvIGFmZmVjdHMgYWdncmVnYXRlIGFuZCB3aW5kb3cgZnVuY3Rp b25zLCBidXQgbm90CiAgICBwcm9jZWR1cmVzLCBhZ2FpbiBqdXN0IGxpa2UgdGhlIHNwZWNpZmlj LW9iamVjdCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4KICAgIGNvbW1hbmQuICBVc2UgPGxpdGVy YWw+QUxMIFJPVVRJTkVTPC9saXRlcmFsPiB0byBpbmNsdWRlIHByb2NlZHVyZXMuCkBAIC01MTgs OCArNTI0LDggQEAgR1JBTlQgYWRtaW5zIFRPIGpvZTsKICAgIDwvcGFyYT4KIAogICAgPHBhcmE+ Ci0gICAgUHJpdmlsZWdlcyBvbiBkYXRhYmFzZXMsIHRhYmxlc3BhY2VzLCBzY2hlbWFzLCBsYW5n dWFnZXMsIGFuZAotICAgIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBhcmUKKyAgICBQcml2aWxl Z2VzIG9uIGRhdGFiYXNlcywgdGFibGVzcGFjZXMsIHNjaGVtYXMsIGxhbmd1YWdlcywgc2Vzc2lv biB2YXJpYWJsZXMKKyAgICBhbmQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGFyZQogICAgIDxw cm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9ucy4KICAgIDwvcGFy YT4KICA8L3JlZnNlY3QxPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5z Z21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCmluZGV4IDcyZjMzNDdlNTMuLmFj MjY1ZGIzNWUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKQEAgLTIwMzQsNiArMjAzNCwxOSBAQCBT RUxFQ1QgJDEgXHBhcnNlIHN0bXQxCiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICA8L3Zhcmxp c3RlbnRyeT4KIAorICAgICAgPHZhcmxpc3RlbnRyeSBpZD0iYXBwLXBzcWwtbWV0YS1jb21tYW5k LWR2Ij4KKyAgICAgICAgPHRlcm0+PGxpdGVyYWw+XGRWWytdIFsgPGxpbmsgbGlua2VuZD0iYXBw LXBzcWwtcGF0dGVybnMiPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9y ZXBsYWNlYWJsZT48L2xpbms+IF08L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+ CisgICAgICAgIDxwYXJhPgorICAgICAgICBMaXN0cyBzZXNzaW9uIHZhcmlhYmxlcy4KKyAgICAg ICAgSWYgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdHRlcm48L3JlcGxhY2VhYmxl PiBpcworICAgICAgICBzcGVjaWZpZWQsIG9ubHkgc2Vzc2lvbiB2YXJpYWJsZXMgd2hvc2UgbmFt ZXMgbWF0Y2ggdGhlIHBhdHRlcm4gYXJlIGxpc3RlZC4KKyAgICAgICAgSWYgdGhlIGZvcm0gPGxp dGVyYWw+XGRWKzwvbGl0ZXJhbD4gaXMgdXNlZCwgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICAg ICAgICBhYm91dCBlYWNoIHZhcmlhYmxlIGlzIHNob3duLCBsaWtlICBhY2Nlc3MgcHJpdmlsZWdl cyBhbmQgZGVzY3JpcHRpb24uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4K KyAgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgICA8dmFybGlzdGVudHJ5IGlkPSJhcHAtcHNx bC1tZXRhLWNvbW1hbmQtZHUiPgogICAgICAgICA8dGVybT48bGl0ZXJhbD5cZHVbUytdIFsgPGxp bmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0dGVybnMiPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT48L2xpbms+IF08L2xpdGVyYWw+PC90ZXJtPgogICAg ICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3Jldm9rZS5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbAppbmRleCA4ZGY0OTIyODFhLi43NjBmZGRi N2MyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3Jldm9rZS5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwKQEAgLTEzMCw2ICsxMzAsMTQgQEAgUkVWT0tFIFsgeyBB RE1JTiB8IElOSEVSSVQgfCBTRVQgfSBPUFRJT04gRk9SIF0KICAgICBbIEdSQU5URUQgQlkgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFi bGU+IF0KICAgICBbIENBU0NBREUgfCBSRVNUUklDVCBdCiAKK1JFVk9LRSBbIEdSQU5UIE9QVElP TiBGT1IgXQorICAgIHsgeyBTRUxFQ1QgfCBVUERBVEUgfSBbLCAuLi5dIHwgQUxMIFsgUFJJVklM RUdFUyBdIH0KKyAgICBPTiB7IFZBUklBQkxFIDxyZXBsYWNlYWJsZT52YXJpYWJsZV9uYW1lPC9y ZXBsYWNlYWJsZT4gWywgLi4uXQorICAgICAgIHwgQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gWywg Li4uXSB9CisgICAgRlJPTSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3Nw ZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiB8IFBVQkxJQyB9IFssIC4uLl0KKyAgICBbIEdSQU5U RUQgQlkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwv cmVwbGFjZWFibGU+IF0KKyAgICBbIENBU0NBREUgfCBSRVNUUklDVCBdCisKIDxwaHJhc2U+d2hl cmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVw bGFjZWFibGU+IGNhbiBiZTo8L3BocmFzZT4KIAogICAgIFsgR1JPVVAgXSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4KZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbApp bmRleCBmZjg1YWNlODNmLi4yNTU3OGYzOTQ2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVm ZXJlbmNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCkBAIC03NSw2ICs3 NSw3IEBACiAgICAmYWx0ZXJUeXBlOwogICAgJmFsdGVyVXNlcjsKICAgICZhbHRlclVzZXJNYXBw aW5nOworICAgJmFsdGVyVmFyaWFibGU7CiAgICAmYWx0ZXJWaWV3OwogICAgJmFuYWx5emU7CiAg ICAmYmVnaW47CkBAIC0xMjcsNiArMTI4LDcgQEAKICAgICZjcmVhdGVUeXBlOwogICAgJmNyZWF0 ZVVzZXI7CiAgICAmY3JlYXRlVXNlck1hcHBpbmc7CisgICAmY3JlYXRlVmFyaWFibGU7CiAgICAm Y3JlYXRlVmlldzsKICAgICZkZWFsbG9jYXRlOwogICAgJmRlY2xhcmU7CkBAIC0xNzUsNiArMTc3 LDcgQEAKICAgICZkcm9wVHlwZTsKICAgICZkcm9wVXNlcjsKICAgICZkcm9wVXNlck1hcHBpbmc7 CisgICAmZHJvcFZhcmlhYmxlOwogICAgJmRyb3BWaWV3OwogICAgJmVuZDsKICAgICZleGVjdXRl OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvTWFrZWZpbGUKaW5kZXggMTU4OWE3NWZkNS4uN2E5MGZjZmM0NSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9n L01ha2VmaWxlCkBAIC00NSw2ICs0NSw3IEBAIE9CSlMgPSBcCiAJcGdfc2hkZXBlbmQubyBcCiAJ cGdfc3Vic2NyaXB0aW9uLm8gXAogCXBnX3R5cGUubyBcCisJcGdfdmFyaWFibGUubyBcCiAJc3Rv cmFnZS5vIFwKIAl0b2FzdGluZy5vCiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv YWNsY2hrLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCmluZGV4IGFhZjk2YTk2NWUu LjFhZGI4YmRlNzMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKKysr IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwpAQCAtNjQsNiArNjQsNyBAQAogI2luY2x1 ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZS5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFy aWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgpAQCAt MjkxLDYgKzI5Miw5IEBAIHJlc3RyaWN0X2FuZF9jaGVja19ncmFudChib29sIGlzX2dyYW50LCBB Y2xNb2RlIGF2YWlsX2dvcHRpb25zLCBib29sIGFsbF9wcml2cywKIAkJY2FzZSBPQkpFQ1RfUEFS QU1FVEVSX0FDTDoKIAkJCXdob2xlX21hc2sgPSBBQ0xfQUxMX1JJR0hUU19QQVJBTUVURVJfQUNM OwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJd2hvbGVfbWFzayA9IEFD TF9BTExfUklHSFRTX1ZBUklBQkxFOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVS Uk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsIG9ianR5cGUpOwogCQkJLyogbm90 IHJlYWNoZWQsIGJ1dCBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCkBAIC01MzUsNiArNTM5LDEwIEBA IEV4ZWN1dGVHcmFudFN0bXQoR3JhbnRTdG10ICpzdG10KQogCQkJYWxsX3ByaXZpbGVnZXMgPSBB Q0xfQUxMX1JJR0hUU19QQVJBTUVURVJfQUNMOwogCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3Ao ImludmFsaWQgcHJpdmlsZWdlIHR5cGUgJXMgZm9yIHBhcmFtZXRlciIpOwogCQkJYnJlYWs7CisJ CWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJYWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hU U19WQVJJQUJMRTsKKwkJCWVycm9ybXNnID0gZ2V0dGV4dF9ub29wKCJpbnZhbGlkIHByaXZpbGVn ZSB0eXBlICVzIGZvciBzZXNzaW9uIHZhcmlhYmxlIik7CisJCQlicmVhazsKIAkJZGVmYXVsdDoK IAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJ CQkgKGludCkgc3RtdC0+b2JqdHlwZSk7CkBAIC02NDAsNiArNjQ4LDkgQEAgRXhlY0dyYW50U3Rt dF9vaWRzKEludGVybmFsR3JhbnQgKmlzdG10KQogCQljYXNlIE9CSkVDVF9QQVJBTUVURVJfQUNM OgogCQkJRXhlY0dyYW50X1BhcmFtZXRlcihpc3RtdCk7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpF Q1RfVkFSSUFCTEU6CisJCQlFeGVjR3JhbnRfY29tbW9uKGlzdG10LCBWYXJpYWJsZVJlbGF0aW9u SWQsIEFDTF9BTExfUklHSFRTX1ZBUklBQkxFLCBOVUxMKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0 OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLAog CQkJCSAoaW50KSBpc3RtdC0+b2JqdHlwZSk7CkBAIC03NjAsNiArNzcxLDE4IEBAIG9iamVjdE5h bWVzVG9PaWRzKE9iamVjdFR5cGUgb2JqdHlwZSwgTGlzdCAqb2JqbmFtZXMsIGJvb2wgaXNfZ3Jh bnQpCiAJCQkJCW9iamVjdHMgPSBsYXBwZW5kX29pZChvYmplY3RzLCBwYXJhbWV0ZXJJZCk7CiAJ CQl9CiAJCQlicmVhazsKKworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCWZvcmVhY2hfbm9k ZShSYW5nZVZhciwgdmFydmFyLCBvYmpuYW1lcykKKwkJCXsKKwkJCQlPaWQJCQlyZWxPaWQ7CisK KwkJCQlyZWxPaWQgPSBMb29rdXBWYXJpYWJsZSh2YXJ2YXItPnNjaGVtYW5hbWUsCisJCQkJCQkJ CQkJdmFydmFyLT5yZWxuYW1lLAorCQkJCQkJCQkJCWZhbHNlKTsKKwkJCQlvYmplY3RzID0gbGFw cGVuZF9vaWQob2JqZWN0cywgcmVsT2lkKTsKKwkJCX0KKwkJCWJyZWFrOwogCX0KIAogCXJldHVy biBvYmplY3RzOwpAQCAtODQ2LDYgKzg2OSwzMiBAQCBvYmplY3RzSW5TY2hlbWFUb09pZHMoT2Jq ZWN0VHlwZSBvYmp0eXBlLCBMaXN0ICpuc3BuYW1lcykKIAkJCQkJdGFibGVfY2xvc2UocmVsLCBB Y2Nlc3NTaGFyZUxvY2spOwogCQkJCX0KIAkJCQlicmVhazsKKwkJCWNhc2UgT0JKRUNUX1ZBUklB QkxFOgorCQkJCXsKKwkJCQkJU2NhbktleURhdGEga2V5OworCQkJCQlSZWxhdGlvbglyZWw7CisJ CQkJCVRhYmxlU2NhbkRlc2Mgc2NhbjsKKwkJCQkJSGVhcFR1cGxlCXR1cGxlOworCisJCQkJCVNj YW5LZXlJbml0KCZrZXksCisJCQkJCQkJCUFudW1fcGdfdmFyaWFibGVfdmFybmFtZXNwYWNlLAor CQkJCQkJCQlCVEVxdWFsU3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJCQkJCU9iamVjdElk R2V0RGF0dW0obmFtZXNwYWNlSWQpKTsKKworCQkJCQlyZWwgPSB0YWJsZV9vcGVuKFZhcmlhYmxl UmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJCQkJc2NhbiA9IHRhYmxlX2JlZ2luc2Nh bl9jYXRhbG9nKHJlbCwgMSwgJmtleSk7CisKKwkJCQkJd2hpbGUgKCh0dXBsZSA9IGhlYXBfZ2V0 bmV4dChzY2FuLCBGb3J3YXJkU2NhbkRpcmVjdGlvbikpICE9IE5VTEwpCisJCQkJCXsKKwkJCQkJ CU9pZAkJCW9pZCA9ICgoRm9ybV9wZ19wcm9jKSBHRVRTVFJVQ1QodHVwbGUpKS0+b2lkOworCisJ CQkJCQlvYmplY3RzID0gbGFwcGVuZF9vaWQob2JqZWN0cywgb2lkKTsKKwkJCQkJfQorCisJCQkJ CXRhYmxlX2VuZHNjYW4oc2Nhbik7CisJCQkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVM b2NrKTsKKwkJCQl9CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCS8qIHNob3VsZCBub3Qg aGFwcGVuICovCiAJCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBHcmFudFN0bXQub2JqdHlw ZTogJWQiLApAQCAtMTAwNSw2ICsxMDU0LDEwIEBAIEV4ZWNBbHRlckRlZmF1bHRQcml2aWxlZ2Vz U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyRGVmYXVsdFByaXZpbGVnZXNTdG10ICpzCiAJ CQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1NDSEVNQTsKIAkJCWVycm9ybXNnID0g Z2V0dGV4dF9ub29wKCJpbnZhbGlkIHByaXZpbGVnZSB0eXBlICVzIGZvciBzY2hlbWEiKTsKIAkJ CWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCWFsbF9wcml2aWxlZ2VzID0gQUNM X0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52YWxp ZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3Igc2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJYnJlYWs7CiAJ CWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0eXBl OiAlZCIsCiAJCQkJIChpbnQpIGFjdGlvbi0+b2JqdHlwZSk7CkBAIC0xMTk2LDYgKzEyNDksMTIg QEAgU2V0RGVmYXVsdEFDTChJbnRlcm5hbERlZmF1bHRBQ0wgKmlhY2xzKQogCQkJCXRoaXNfcHJp dmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1NDSEVNQTsKIAkJCWJyZWFrOwogCisJCWNhc2UgT0JK RUNUX1ZBUklBQkxFOgorCQkJb2JqdHlwZSA9IERFRkFDTE9CSl9WQVJJQUJMRTsKKwkJCWlmIChp YWNscy0+YWxsX3ByaXZzICYmIHRoaXNfcHJpdmlsZWdlcyA9PSBBQ0xfTk9fUklHSFRTKQorCQkJ CXRoaXNfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1ZBUklBQkxFOworCQkJYnJlYWs7CisK IAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6ICVk IiwKIAkJCQkgKGludCkgaWFjbHMtPm9ianR5cGUpOwpAQCAtMTQzOSw2ICsxNDk4LDkgQEAgUmVt b3ZlUm9sZUZyb21PYmplY3RBQ0woT2lkIHJvbGVpZCwgT2lkIGNsYXNzaWQsIE9pZCBvYmppZCkK IAkJCWNhc2UgREVGQUNMT0JKX05BTUVTUEFDRToKIAkJCQlpYWNscy5vYmp0eXBlID0gT0JKRUNU X1NDSEVNQTsKIAkJCQlicmVhazsKKwkJCWNhc2UgREVGQUNMT0JKX1ZBUklBQkxFOgorCQkJCWlh Y2xzLm9ianR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0Ogog CQkJCS8qIFNob3VsZG4ndCBnZXQgaGVyZSAqLwogCQkJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVk IGRlZmF1bHQgQUNMIHR5cGU6ICVkIiwKQEAgLTE0OTksNiArMTU2MSw5IEBAIFJlbW92ZVJvbGVG cm9tT2JqZWN0QUNMKE9pZCByb2xlaWQsIE9pZCBjbGFzc2lkLCBPaWQgb2JqaWQpCiAJCQljYXNl IFBhcmFtZXRlckFjbFJlbGF0aW9uSWQ6CiAJCQkJaXN0bXQub2JqdHlwZSA9IE9CSkVDVF9QQVJB TUVURVJfQUNMOwogCQkJCWJyZWFrOworCQkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQkJ aXN0bXQub2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQlicmVhazsKIAkJCWRlZmF1bHQ6 CiAJCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgb2JqZWN0IGNsYXNzICV1IiwgY2xhc3NpZCk7 CiAJCQkJYnJlYWs7CkBAIC0yNzMyLDYgKzI3OTcsOSBAQCBhY2xjaGVja19lcnJvcihBY2xSZXN1 bHQgYWNsZXJyLCBPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCWNhc2UgT0JKRUNUX1RZUEU6CiAJ CQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoInBlcm1pc3Npb24gZGVuaWVkIGZvciB0eXBlICVzIik7 CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQkJCQltc2cgPSBn ZXR0ZXh0X25vb3AoInBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICVzIik7 CisJCQkJCQlicmVhazsKIAkJCQkJY2FzZSBPQkpFQ1RfVklFVzoKIAkJCQkJCW1zZyA9IGdldHRl eHRfbm9vcCgicGVybWlzc2lvbiBkZW5pZWQgZm9yIHZpZXcgJXMiKTsKIAkJCQkJCWJyZWFrOwpA QCAtMjg0Myw2ICsyOTExLDkgQEAgYWNsY2hlY2tfZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwgT2Jq ZWN0VHlwZSBvYmp0eXBlLAogCQkJCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJCQkJbXNnID0gZ2V0 dGV4dF9ub29wKCJtdXN0IGJlIG93bmVyIG9mIHR5cGUgJXMiKTsKIAkJCQkJCWJyZWFrOworCQkJ CQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBi ZSBvd25lciBvZiBzZXNzaW9uIHZhcmlhYmxlICVzIik7CisJCQkJCQlicmVhazsKIAkJCQkJY2Fz ZSBPQkpFQ1RfVklFVzoKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBiZSBvd25lciBv ZiB2aWV3ICVzIik7CiAJCQkJCQlicmVhazsKQEAgLTI5OTEsNiArMzA2Miw4IEBAIHBnX2FjbG1h c2soT2JqZWN0VHlwZSBvYmp0eXBlLCBPaWQgb2JqZWN0X29pZCwgQXR0ck51bWJlciBhdHRudW0s IE9pZCByb2xlaWQsCiAJCQlyZXR1cm4gQUNMX05PX1JJR0hUUzsKIAkJY2FzZSBPQkpFQ1RfVFlQ RToKIAkJCXJldHVybiBvYmplY3RfYWNsbWFzayhUeXBlUmVsYXRpb25JZCwgb2JqZWN0X29pZCwg cm9sZWlkLCBtYXNrLCBob3cpOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXJldHVybiBv YmplY3RfYWNsbWFzayhWYXJpYWJsZVJlbGF0aW9uSWQsIG9iamVjdF9vaWQsIHJvbGVpZCwgbWFz aywgaG93KTsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0 IHR5cGU6ICVkIiwKIAkJCQkgKGludCkgb2JqdHlwZSk7CkBAIC00MjU4LDYgKzQzMzEsMTAgQEAg Z2V0X3VzZXJfZGVmYXVsdF9hY2woT2JqZWN0VHlwZSBvYmp0eXBlLCBPaWQgb3duZXJJZCwgT2lk IG5zcF9vaWQpCiAJCQlkZWZhY2xvYmp0eXBlID0gREVGQUNMT0JKX05BTUVTUEFDRTsKIAkJCWJy ZWFrOwogCisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJZGVmYWNsb2JqdHlwZSA9IERFRkFD TE9CSl9WQVJJQUJMRTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQlyZXR1cm4gTlVMTDsK IAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCmluZGV4IDJhZmM1NTA1NDAuLmQ2NjJlNzZhY2Yg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCkBAIC02NSwxMiArNjUsMTQgQEAKICNpbmNsdWRl ICJjYXRhbG9nL3BnX3RzX3RlbXBsYXRlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ191c2VyX21hcHBpbmcuaCIKKyNpbmNsdWRlICJjYXRhbG9n L3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvY29tbWVudC5oIgogI2luY2x1ZGUg ImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIK ICNpbmNsdWRlICJjb21tYW5kcy9leHRlbnNpb24uaCIKICNpbmNsdWRlICJjb21tYW5kcy9wb2xp Y3kuaCIKICNpbmNsdWRlICJjb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaCIKKyNpbmNsdWRlICJj b21tYW5kcy9zY2hlbWFjbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VjbGFiZWwuaCIKICNp bmNsdWRlICJjb21tYW5kcy9zZXF1ZW5jZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIu aCIKQEAgLTE0NDQsNiArMTQ0NiwxMCBAQCBkb0RlbGV0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3Mg Km9iamVjdCwgaW50IGZsYWdzKQogCQkJUmVtb3ZlUHVibGljYXRpb25CeUlkKG9iamVjdC0+b2Jq ZWN0SWQpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQlEcm9w VmFyaWFibGVCeUlkKG9iamVjdC0+b2JqZWN0SWQpOworCQkJYnJlYWs7CisKIAkJY2FzZSBDYXN0 UmVsYXRpb25JZDoKIAkJY2FzZSBDb2xsYXRpb25SZWxhdGlvbklkOgogCQljYXNlIENvbnZlcnNp b25SZWxhdGlvbklkOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWls ZCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQKaW5kZXggMmYzZGVkOGEwZS4uYmZk YjRkYTMzMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZAorKysg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL21lc29uLmJ1aWxkCkBAIC0zMiw2ICszMiw3IEBAIGJhY2tl bmRfc291cmNlcyArPSBmaWxlcygKICAgJ3BnX3NoZGVwZW5kLmMnLAogICAncGdfc3Vic2NyaXB0 aW9uLmMnLAogICAncGdfdHlwZS5jJywKKyAgJ3BnX3ZhcmlhYmxlLmMnLAogICAnc3RvcmFnZS5j JywKICAgJ3RvYXN0aW5nLmMnLAogKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9u YW1lc3BhY2UuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKaW5kZXggMzA4MDdm OTE5MC4uNTNkNWNkNmMxNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3Bh Y2UuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC00MSw2ICs0MSw3 IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c19wYXJzZXIuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX3RzX3RlbXBsYXRlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMu aCIKICNpbmNsdWRlICJjb21tb24vaGFzaGZuX3Vuc3RhYmxlLmgiCiAjaW5jbHVkZSAiZnVuY2Fw aS5oIgpAQCAtMjI1LDYgKzIyNiw3IEBAIHN0YXRpYyBib29sIFRTUGFyc2VySXNWaXNpYmxlRXh0 KE9pZCBwcnNJZCwgYm9vbCAqaXNfbWlzc2luZyk7CiBzdGF0aWMgYm9vbCBUU0RpY3Rpb25hcnlJ c1Zpc2libGVFeHQoT2lkIGRpY3RJZCwgYm9vbCAqaXNfbWlzc2luZyk7CiBzdGF0aWMgYm9vbCBU U1RlbXBsYXRlSXNWaXNpYmxlRXh0KE9pZCB0bXBsSWQsIGJvb2wgKmlzX21pc3NpbmcpOwogc3Rh dGljIGJvb2wgVFNDb25maWdJc1Zpc2libGVFeHQoT2lkIGNmZ2lkLCBib29sICppc19taXNzaW5n KTsKK3N0YXRpYyBib29sIFZhcmlhYmxlSXNWaXNpYmxlRXh0KE9pZCB2YXJpZCwgYm9vbCAqaXNf bWlzc2luZyk7CiBzdGF0aWMgdm9pZCByZWNvbXB1dGVOYW1lc3BhY2VQYXRoKHZvaWQpOwogc3Rh dGljIHZvaWQgQWNjZXNzVGVtcFRhYmxlTmFtZXNwYWNlKGJvb2wgZm9yY2UpOwogc3RhdGljIHZv aWQgSW5pdFRlbXBUYWJsZU5hbWVzcGFjZSh2b2lkKTsKQEAgLTk4Niw2ICs5ODgsODQgQEAgUmVs YXRpb25Jc1Zpc2libGVFeHQoT2lkIHJlbGlkLCBib29sICppc19taXNzaW5nKQogCXJldHVybiB2 aXNpYmxlOwogfQogCisvKgorICogVmFyaWFibGVJc1Zpc2libGUKKyAqCQlEZXRlcm1pbmUgd2hl dGhlciBhIHZhcmlhYmxlIChpZGVudGlmaWVkIGJ5IE9JRCkgaXMgdmlzaWJsZSBpbiB0aGUKKyAq CQljdXJyZW50IHNlYXJjaCBwYXRoLiBWaXNpYmxlIG1lYW5zICJ3b3VsZCBiZSBmb3VuZCBieSBz ZWFyY2hpbmcKKyAqCQlmb3IgdGhlIHVucXVhbGlmaWVkIHZhcmlhYmxlIG5hbWUiLgorICovCiti b29sCitWYXJpYWJsZUlzVmlzaWJsZShPaWQgdmFyaWQpCit7CisJcmV0dXJuIFZhcmlhYmxlSXNW aXNpYmxlRXh0KHZhcmlkLCBOVUxMKTsKK30KKworLyoKKyAqIFZhcmlhYmxlSXNWaXNpYmxlRXh0 CisgKgkJQXMgYWJvdmUsIGJ1dCBpZiB0aGUgdmFyaWFibGUgaXNuJ3QgZm91bmQgYW5kIGlzX21p c3NpbmcgaXMgbm90IE5VTEwsCisgKgkJdGhlbiBzZXQgKmlzX21pc3NpbmcgPSB0cnVlIGFuZCBy ZXR1cm4gZmFsc2UsIGluc3RlYWQgb2YgdGhyb3dpbmcKKyAqCQlhbiBlcnJvci4gKENhbGxlciBt dXN0IGluaXRpYWxpemUgKmlzX21pc3NpbmcgPSBmYWxzZS4pCisgKi8KK3N0YXRpYyBib29sCitW YXJpYWJsZUlzVmlzaWJsZUV4dChPaWQgdmFyaWQsIGJvb2wgKmlzX21pc3NpbmcpCit7CisJSGVh cFR1cGxlCXZhcnR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisJT2lkCQkJdmFybmFt ZXNwYWNlOworCWJvb2wJCXZpc2libGU7CisKKwl2YXJ0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFS SUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFs aWQodmFydHVwKSkKKwl7CisJCWlmIChpc19taXNzaW5nICE9IE5VTEwpCisJCXsKKwkJCSppc19t aXNzaW5nID0gdHJ1ZTsKKwkJCXJldHVybiBmYWxzZTsKKwkJfQorCisJCWVsb2coRVJST1IsICJj YWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCX0K Kwl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh2YXJ0dXApOworCisJcmVj b21wdXRlTmFtZXNwYWNlUGF0aCgpOworCisJLyoKKwkgKiBRdWljayBjaGVjazogaWYgaXQgYWlu J3QgaW4gdGhlIHBhdGggYXQgYWxsLCBpdCBhaW4ndCB2aXNpYmxlLiBXZQorCSAqIGRvbid0IGV4 cGVjdCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlcyBpbiB0aGUgc3lzdGVtIG5hbWVzcGFjZS4K KwkgKi8KKwl2YXJuYW1lc3BhY2UgPSB2YXJmb3JtLT52YXJuYW1lc3BhY2U7CisJaWYgKCFsaXN0 X21lbWJlcl9vaWQoYWN0aXZlU2VhcmNoUGF0aCwgdmFybmFtZXNwYWNlKSkKKwkJdmlzaWJsZSA9 IGZhbHNlOworCWVsc2UKKwl7CisJCS8qCisJCSAqIElmIGl0IGlzIGluIHRoZSBwYXRoLCBpdCBt aWdodCBzdGlsbCBub3QgYmUgdmlzaWJsZTsgaXQgY291bGQgYmUKKwkJICogaGlkZGVuIGJ5IGFu b3RoZXIgdmFyaWFibGUgb2YgdGhlIHNhbWUgbmFtZSBlYXJsaWVyIGluIHRoZSBwYXRoLiBTbwor CQkgKiB3ZSBtdXN0IGRvIGEgc2xvdyBjaGVjayBmb3IgY29uZmxpY3RpbmcgcmVsYXRpb25zLgor CQkgKi8KKwkJY2hhcgkgICAqdmFybmFtZSA9IE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSk7CisK KwkJdmlzaWJsZSA9IGZhbHNlOworCQlmb3JlYWNoX29pZChuYW1lc3BhY2VJZCwgYWN0aXZlU2Vh cmNoUGF0aCkKKwkJeworCQkJaWYgKG5hbWVzcGFjZUlkID09IHZhcm5hbWVzcGFjZSkKKwkJCXsK KwkJCQkvKiBmb3VuZCBpdCBmaXJzdCBpbiBwYXRoICovCisJCQkJdmlzaWJsZSA9IHRydWU7CisJ CQkJYnJlYWs7CisJCQl9CisJCQlpZiAoT2lkSXNWYWxpZChnZXRfdmFybmFtZV92YXJpZCh2YXJu YW1lLCBuYW1lc3BhY2VJZCkpKQorCQkJeworCQkJCS8qIGZvdW5kIHNvbWV0aGluZyBlbHNlIGZp cnN0IGluIHBhdGggKi8KKwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0KKworCVJlbGVhc2VTeXND YWNoZSh2YXJ0dXApOworCisJcmV0dXJuIHZpc2libGU7Cit9CiAKIC8qCiAgKiBUeXBlbmFtZUdl dFR5cGlkCkBAIC0zMjg5LDYgKzMzNjksMTMzIEBAIFRTQ29uZmlnSXNWaXNpYmxlRXh0KE9pZCBj ZmdpZCwgYm9vbCAqaXNfbWlzc2luZykKIAlyZXR1cm4gdmlzaWJsZTsKIH0KIAorLyoKKyAqIFJl dHVybnMgb2lkIG9mIHNlc3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IHBvc3NpYmx5IHF1YWxp ZmllZCBpZGVudGlmaWVyLgorICoKKyAqIElmIG5vdCBmb3VuZCwgcmV0dXJucyBJbnZhbGlkT2lk IGlmIG1pc3Npbmdfb2ssIGVsc2UgdGhyb3dzIGVycm9yLgorICovCitPaWQKK0xvb2t1cFZhcmlh YmxlKGNvbnN0IGNoYXIgKm5zcG5hbWUsCisJCQkgICBjb25zdCBjaGFyICp2YXJuYW1lLAorCQkJ ICAgYm9vbCBtaXNzaW5nX29rKQoreworCU9pZAkJCXZhcm9pZCA9IEludmFsaWRPaWQ7CisKKwlp ZiAobnNwbmFtZSkKKwl7CisJCU9pZCBuYW1lc3BhY2VJZCA9IExvb2t1cEV4cGxpY2l0TmFtZXNw YWNlKG5zcG5hbWUsIG1pc3Npbmdfb2spOworCisJCS8qIGlmIG5zcG5hbWUgaXMgYSBrbm93biBu YW1lc3BhY2UsIHRoZSB2YXJpYWJsZSBtdXN0IGJlIHRoZXJlICovCisJCWlmIChPaWRJc1ZhbGlk KG5hbWVzcGFjZUlkKSkKKwkJeworCQkJdmFyb2lkID0gR2V0U3lzQ2FjaGVPaWQyKFZBUklBQkxF TkFNRU5TUCwgQW51bV9wZ192YXJpYWJsZV9vaWQsCisJCQkJCQkJCQkgUG9pbnRlckdldERhdHVt KHZhcm5hbWUpLAorCQkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0obmFtZXNwYWNlSWQpKTsKKwkJ fQorCX0KKwllbHNlCisJeworCQkvKiBpdGVyYXRlIG92ZXIgdGhlIHNjaGVtYXMgb24gdGhlIHNl YXJjaF9wYXRoICovCisJCXJlY29tcHV0ZU5hbWVzcGFjZVBhdGgoKTsKKworCQlmb3JlYWNoX29p ZChuYW1lc3BhY2VJZCwgYWN0aXZlU2VhcmNoUGF0aCkKKwkJeworCQkJdmFyb2lkID0gR2V0U3lz Q2FjaGVPaWQyKFZBUklBQkxFTkFNRU5TUCwgQW51bV9wZ192YXJpYWJsZV9vaWQsCisJCQkJCQkJ CQkgUG9pbnRlckdldERhdHVtKHZhcm5hbWUpLAorCQkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0o bmFtZXNwYWNlSWQpKTsKKworCQkJaWYgKE9pZElzVmFsaWQodmFyb2lkKSkKKwkJCQlicmVhazsK KwkJfQorCX0KKworCWlmICghT2lkSXNWYWxpZCh2YXJvaWQpICYmICFtaXNzaW5nX29rKQorCXsK KwkJaWYgKG5zcG5hbWUpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RF X1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXMu JXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQkJbnNwbmFtZSwgdmFybmFtZSkpKTsKKwkJZWxz ZQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JK RUNUKSwKKwkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgZG9lcyBub3QgZXhp c3QiLAorCQkJCQkJCXZhcm5hbWUpKSk7CisJfQorCisJcmV0dXJuIHZhcm9pZDsKK30KKworLyoK KyAqIFJldHVybnMgb2lkIG9mIHNlc3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IHBvc3NpYmx5 IHF1YWxpZmllZCBpZGVudGlmaWVyCisgKgorICogSWYgbm90IGZvdW5kLCByZXR1cm5zIEludmFs aWRPaWQgaWYgbWlzc2luZ19vaywgZWxzZSB0aHJvd3MgZXJyb3IuCisgKi8KK09pZAorTG9va3Vw VmFyaWFibGVGcm9tTmFtZUxpc3QoTGlzdCAqbmFtZXMsCisJCQkJCQkgICBib29sIG1pc3Npbmdf b2spCit7CisJY2hhcgkgICAqY2F0bmFtZSA9IE5VTEw7CisJY2hhcgkgICAqbnNwbmFtZSA9IE5V TEw7CisJY2hhcgkgICAqdmFybmFtZSA9IE5VTEw7CisKKwlzd2l0Y2ggKGxpc3RfbGVuZ3RoKG5h bWVzKSkKKwl7CisJCWNhc2UgMToKKwkJCXZhcm5hbWUgPSBzdHJWYWwobGluaXRpYWwobmFtZXMp KTsKKwkJCWJyZWFrOworCQljYXNlIDI6CisJCQluc3BuYW1lID0gc3RyVmFsKGxpbml0aWFsKG5h bWVzKSk7CisJCQl2YXJuYW1lID0gc3RyVmFsKGxzZWNvbmQobmFtZXMpKTsKKwkJCWJyZWFrOwor CQljYXNlIDM6CisJCQljYXRuYW1lID0gc3RyVmFsKGxpbml0aWFsKG5hbWVzKSk7CisJCQluc3Bu YW1lID0gc3RyVmFsKGxzZWNvbmQobmFtZXMpKTsKKwkJCXZhcm5hbWUgPSBzdHJWYWwobHRoaXJk KG5hbWVzKSk7CisKKwkJCS8qIGNoZWNrIGNhdGFsb2cgbmFtZSAqLworCQkJaWYgKHN0cmNtcChj YXRuYW1lLCBnZXRfZGF0YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpKSAhPSAwKQorCQkJCWVyZXBv cnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCks CisJCQkJCQkgZXJybXNnKCJjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVt ZW50ZWQ6ICVzIiwKKwkJCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJCQlicmVh azsKKwkJZGVmYXVsdDoKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVf U1lOVEFYX0VSUk9SKSwKKwkJCQkJIGVycm1zZygiaW1wcm9wZXIgc2Vzc2lvbiB2YXJpYWJsZSBu YW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAlcyIsCisJCQkJCQkJTmFtZUxpc3RUb1N0cmlu ZyhuYW1lcykpKSk7CisJCQlicmVhazsKKwl9CisKKwlyZXR1cm4gTG9va3VwVmFyaWFibGUobnNw bmFtZSwgdmFybmFtZSwgbWlzc2luZ19vayk7Cit9CisKKy8qCisgKiBUaGUgaW5wdXQgbGlzdCBj b250YWlucyBuYW1lcyB3aXRoIGluZGlyZWN0aW9uIGV4cHJlc3Npb25zIHVzZWQgYXMgdGhlIGxl ZnQKKyAqIHBhcnQgb2YgTEVUIHN0YXRlbWVudC4gVGhlIGZvbGxvd2luZyByb3V0aW5lIHJldHVy bnMgYSBuZXcgbGlzdCB3aXRoIG9ubHkKKyAqIGluaXRpYWwgc3RyaW5ncyAobmFtZXMpIC0gd2l0 aG91dCBpbmRpcmVjdGlvbiBleHByZXNzaW9ucy4KKyAqLworTGlzdCAqCitOYW1lc0Zyb21MaXN0 KExpc3QgKm5hbWVzKQoreworCUxpc3RDZWxsICAgKmw7CisJTGlzdAkgICAqcmVzdWx0ID0gTklM OworCisJZm9yZWFjaChsLCBuYW1lcykKKwl7CisJCU5vZGUJICAgKm4gPSBsZmlyc3QobCk7CisK KwkJaWYgKElzQShuLCBTdHJpbmcpKQorCQl7CisJCQlyZXN1bHQgPSBsYXBwZW5kKHJlc3VsdCwg bik7CisJCX0KKwkJZWxzZQorCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIHJlc3VsdDsKK30KIAog LyoKICAqIERlY29uc3RydWN0UXVhbGlmaWVkTmFtZQpAQCAtNTA4NSwzICs1MjkyLDE3IEBAIHBn X2lzX290aGVyX3RlbXBfc2NoZW1hKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlQR19SRVRVUk5fQk9P TChpc090aGVyVGVtcE5hbWVzcGFjZShvaWQpKTsKIH0KKworRGF0dW0KK3BnX3ZhcmlhYmxlX2lz X3Zpc2libGUoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJCQlvaWQgPSBQR19HRVRBUkdfT0lE KDApOworCWJvb2wJCXJlc3VsdDsKKwlib29sCQlpc19taXNzaW5nID0gZmFsc2U7CisKKwlyZXN1 bHQgPSBWYXJpYWJsZUlzVmlzaWJsZUV4dChvaWQsICZpc19taXNzaW5nKTsKKworCWlmIChpc19t aXNzaW5nKQorCQlQR19SRVRVUk5fTlVMTCgpOworCVBHX1JFVFVSTl9CT09MKHJlc3VsdCk7Cit9 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCmluZGV4IGJlN2U0YTVkZDAuLjdlNzZjMmUz NzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCisrKyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCkBAIC02Miw2ICs2Miw3IEBACiAj aW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf dHlwZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdXNlcl9tYXBwaW5nLmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIK ICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy9ldmVudF90 cmlnZ2VyLmgiCkBAIC02MzYsNiArNjM3LDIwIEBAIHN0YXRpYyBjb25zdCBPYmplY3RQcm9wZXJ0 eVR5cGUgT2JqZWN0UHJvcGVydHlbXSA9CiAJCU9CSkVDVF9VU0VSX01BUFBJTkcsCiAJCWZhbHNl CiAJfSwKKwl7CisJCSJzZXNzaW9uIHZhcmlhYmxlIiwKKwkJVmFyaWFibGVSZWxhdGlvbklkLAor CQlWYXJpYWJsZU9pZEluZGV4SWQsCisJCVZBUklBQkxFT0lELAorCQlWQVJJQUJMRU5BTUVOU1As CisJCUFudW1fcGdfdmFyaWFibGVfb2lkLAorCQlBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWUsCisJ CUFudW1fcGdfdmFyaWFibGVfdmFybmFtZXNwYWNlLAorCQlBbnVtX3BnX3ZhcmlhYmxlX3Zhcm93 bmVyLAorCQlBbnVtX3BnX3ZhcmlhYmxlX3ZhcmFjbCwKKwkJT0JKRUNUX1ZBUklBQkxFLAorCQl0 cnVlCisJfQogfTsKIAogLyoKQEAgLTgzMSw2ICs4NDYsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0 IG9iamVjdF90eXBlX21hcAogCX0sCiAJewogCQkic3RhdGlzdGljcyBvYmplY3QiLCBPQkpFQ1Rf U1RBVElTVElDX0VYVAorCX0sCisJeworCQkic2Vzc2lvbiB2YXJpYWJsZSIsIE9CSkVDVF9WQVJJ QUJMRQogCX0KIH07CiAKQEAgLTg1Niw2ICs4NzQsNyBAQCBzdGF0aWMgT2JqZWN0QWRkcmVzcyBn ZXRfb2JqZWN0X2FkZHJlc3NfYXR0cmRlZihPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCQkJCQkJ CQlib29sIG1pc3Npbmdfb2spOwogc3RhdGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVjdF9hZGRy ZXNzX3R5cGUoT2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQkJCQkJCQkgVHlwZU5hbWUgKnR5cGVu YW1lLCBib29sIG1pc3Npbmdfb2spOworc3RhdGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVjdF9h ZGRyZXNzX3ZhcmlhYmxlKExpc3QgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKTsKIHN0YXRpYyBP YmplY3RBZGRyZXNzIGdldF9vYmplY3RfYWRkcmVzc19vcGNmKE9iamVjdFR5cGUgb2JqdHlwZSwg TGlzdCAqb2JqZWN0LAogCQkJCQkJCQkJCQkgYm9vbCBtaXNzaW5nX29rKTsKIHN0YXRpYyBPYmpl Y3RBZGRyZXNzIGdldF9vYmplY3RfYWRkcmVzc19vcGZfbWVtYmVyKE9iamVjdFR5cGUgb2JqdHlw ZSwKQEAgLTExMjcsNiArMTE0Niw5IEBAIGdldF9vYmplY3RfYWRkcmVzcyhPYmplY3RUeXBlIG9i anR5cGUsIE5vZGUgKm9iamVjdCwKIAkJCQkJCQkJCQkJCQkJCSBtaXNzaW5nX29rKTsKIAkJCQlh ZGRyZXNzLm9iamVjdFN1YklkID0gMDsKIAkJCQlicmVhazsKKwkJCWNhc2UgT0JKRUNUX1ZBUklB QkxFOgorCQkJCWFkZHJlc3MgPSBnZXRfb2JqZWN0X2FkZHJlc3NfdmFyaWFibGUoY2FzdE5vZGUo TGlzdCwgb2JqZWN0KSwgbWlzc2luZ19vayk7CisJCQkJYnJlYWs7CiAJCQkJLyogbm8gZGVmYXVs dCwgdG8gbGV0IGNvbXBpbGVyIHdhcm4gYWJvdXQgbWlzc2luZyBjYXNlICovCiAJCX0KIApAQCAt MjAwNSwxNiArMjAyNywyMCBAQCBnZXRfb2JqZWN0X2FkZHJlc3NfZGVmYWNsKExpc3QgKm9iamVj dCwgYm9vbCBtaXNzaW5nX29rKQogCQljYXNlIERFRkFDTE9CSl9OQU1FU1BBQ0U6CiAJCQlvYmp0 eXBlX3N0ciA9ICJzY2hlbWFzIjsKIAkJCWJyZWFrOworCQljYXNlIERFRkFDTE9CSl9WQVJJQUJM RToKKwkJCW9ianR5cGVfc3RyID0gInZhcmlhYmxlcyI7CisJCQlicmVhazsKIAkJZGVmYXVsdDoK IAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVU RVJfVkFMVUUpLAogCQkJCQkgZXJybXNnKCJ1bnJlY29nbml6ZWQgZGVmYXVsdCBBQ0wgb2JqZWN0 IHR5cGUgXCIlY1wiIiwgb2JqdHlwZSksCi0JCQkJCSBlcnJoaW50KCJWYWxpZCBvYmplY3QgdHlw ZXMgYXJlIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLiIsCisJCQkJCSBl cnJoaW50KCJWYWxpZCBvYmplY3QgdHlwZXMgYXJlIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwi JWNcIiwgXCIlY1wiLCBcIiVjXCIuIiwKIAkJCQkJCQkgREVGQUNMT0JKX1JFTEFUSU9OLAogCQkJ CQkJCSBERUZBQ0xPQkpfU0VRVUVOQ0UsCiAJCQkJCQkJIERFRkFDTE9CSl9GVU5DVElPTiwKIAkJ CQkJCQkgREVGQUNMT0JKX1RZUEUsCi0JCQkJCQkJIERFRkFDTE9CSl9OQU1FU1BBQ0UpKSk7CisJ CQkJCQkJIERFRkFDTE9CSl9OQU1FU1BBQ0UsCisJCQkJCQkJIERFRkFDTE9CSl9WQVJJQUJMRSkp KTsKIAl9CiAKIAkvKgpAQCAtMjA5OCw2ICsyMTI0LDI0IEBAIHRleHRhcnJheV90b19zdHJ2YWx1 ZWxpc3QoQXJyYXlUeXBlICphcnIpCiAJcmV0dXJuIGxpc3Q7CiB9CiAKKy8qCisgKiBGaW5kIHRo ZSBPYmplY3RBZGRyZXNzIGZvciBhIHNlc3Npb24gdmFyaWFibGUKKyAqLworc3RhdGljIE9iamVj dEFkZHJlc3MKK2dldF9vYmplY3RfYWRkcmVzc192YXJpYWJsZShMaXN0ICpvYmplY3QsIGJvb2wg bWlzc2luZ19vaykKK3sKKwlPYmplY3RBZGRyZXNzIGFkZHJlc3M7CisJY2hhcgkgICAqbnNwbmFt ZSA9IE5VTEw7CisJY2hhcgkgICAqdmFybmFtZSA9IE5VTEw7CisKKwlPYmplY3RBZGRyZXNzU2V0 KGFkZHJlc3MsIFZhcmlhYmxlUmVsYXRpb25JZCwgSW52YWxpZE9pZCk7CisKKwlEZWNvbnN0cnVj dFF1YWxpZmllZE5hbWUob2JqZWN0LCAmbnNwbmFtZSwgJnZhcm5hbWUpOworCWFkZHJlc3Mub2Jq ZWN0SWQgPSBMb29rdXBWYXJpYWJsZShuc3BuYW1lLCB2YXJuYW1lLCBtaXNzaW5nX29rKTsKKwor CXJldHVybiBhZGRyZXNzOworfQorCiAvKgogICogU1FMLWNhbGxhYmxlIHZlcnNpb24gb2YgZ2V0 X29iamVjdF9hZGRyZXNzCiAgKi8KQEAgLTIyOTIsNiArMjMzNiw3IEBAIHBnX2dldF9vYmplY3Rf YWRkcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCQljYXNlIE9CSkVDVF9UQUJDT05TVFJBSU5UOgog CQljYXNlIE9CSkVDVF9PUENMQVNTOgogCQljYXNlIE9CSkVDVF9PUEZBTUlMWToKKwkJY2FzZSBP QkpFQ1RfVkFSSUFCTEU6CiAJCQlvYmpub2RlID0gKE5vZGUgKikgbmFtZTsKIAkJCWJyZWFrOwog CQljYXNlIE9CSkVDVF9BQ0NFU1NfTUVUSE9EOgpAQCAtMjQ2Myw2ICsyNTA4LDcgQEAgY2hlY2tf b2JqZWN0X293bmVyc2hpcChPaWQgcm9sZWlkLCBPYmplY3RUeXBlIG9ianR5cGUsIE9iamVjdEFk ZHJlc3MgYWRkcmVzcywKIAkJY2FzZSBPQkpFQ1RfU1RBVElTVElDX0VYVDoKIAkJY2FzZSBPQkpF Q1RfVFNESUNUSU9OQVJZOgogCQljYXNlIE9CSkVDVF9UU0NPTkZJR1VSQVRJT046CisJCWNhc2Ug T0JKRUNUX1ZBUklBQkxFOgogCQkJaWYgKCFvYmplY3Rfb3duZXJjaGVjayhhZGRyZXNzLmNsYXNz SWQsIGFkZHJlc3Mub2JqZWN0SWQsIHJvbGVpZCkpCiAJCQkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hF Q0tfTk9UX09XTkVSLCBvYmp0eXBlLAogCQkJCQkJCSAgIE5hbWVMaXN0VG9TdHJpbmcoY2FzdE5v ZGUoTGlzdCwgb2JqZWN0KSkpOwpAQCAtMzQ2Nyw2ICszNTEzLDMyIEBAIGdldE9iamVjdERlc2Ny aXB0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQkJ CWJyZWFrOwogCQkJfQogCisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJeworCQkJCWNo YXIJICAgKm5zcG5hbWU7CisJCQkJSGVhcFR1cGxlCXR1cDsKKwkJCQlGb3JtX3BnX3ZhcmlhYmxl IHZhcmZvcm07CisKKwkJCQl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVj dElkR2V0RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxp ZCh0dXApKQorCQkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lv biB2YXJpYWJsZSAldSIsCisJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisKKwkJCQl2YXJmb3Jt ID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJCQkJaWYgKFZhcmlhYmxl SXNWaXNpYmxlKG9iamVjdC0+b2JqZWN0SWQpKQorCQkJCQluc3BuYW1lID0gTlVMTDsKKwkJCQll bHNlCisJCQkJCW5zcG5hbWUgPSBnZXRfbmFtZXNwYWNlX25hbWUodmFyZm9ybS0+dmFybmFtZXNw YWNlKTsKKworCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgXygic2Vzc2lvbiB2YXJpYWJs ZSAlcyIpLAorCQkJCQkJCQkgcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIobnNwbmFtZSwKKwkJ CQkJCQkJCQkJCQkJCU5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSkpKTsKKworCQkJCVJlbGVhc2VT eXNDYWNoZSh0dXApOworCQkJCWJyZWFrOworCQkJfQorCiAJCWNhc2UgVFNQYXJzZXJSZWxhdGlv bklkOgogCQkJewogCQkJCUhlYXBUdXBsZQl0dXA7CkBAIC0zODE5LDYgKzM4OTEsMTYgQEAgZ2V0 T2JqZWN0RGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Np bmdfb2spCiAJCQkJCQkJCQkJIF8oImRlZmF1bHQgcHJpdmlsZWdlcyBvbiBuZXcgc2NoZW1hcyBi ZWxvbmdpbmcgdG8gcm9sZSAlcyIpLAogCQkJCQkJCQkJCSByb2xlbmFtZSk7CiAJCQkJCQlicmVh azsKKwkJCQkJY2FzZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJCQkJCQlpZiAobnNwbmFtZSkKKwkJ CQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsCisJCQkJCQkJCQkJCSBfKCJkZWZhdWx0IHBy aXZpbGVnZXMgb24gbmV3IHNlc3Npb24gdmFyaWFibGVzIGJlbG9uZ2luZyB0byByb2xlICVzIGlu IHNjaGVtYSAlcyIpLAorCQkJCQkJCQkJCQkgcm9sZW5hbWUsIG5zcG5hbWUpOworCQkJCQkJZWxz ZQorCQkJCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwKKwkJCQkJCQkJCQkJIF8oImRlZmF1 bHQgcHJpdmlsZWdlcyBvbiBuZXcgc2Vzc2lvbiB2YXJpYWJsZXMgYmVsb25naW5nIHRvIHJvbGUg JXMiKSwKKwkJCQkJCQkJCQkJIHJvbGVuYW1lKTsKKwkJCQkJCWJyZWFrOwogCQkJCQlkZWZhdWx0 OgogCQkJCQkJLyogc2hvdWxkbid0IGdldCBoZXJlICovCiAJCQkJCQlpZiAobnNwbmFtZSkKQEAg LTQ2MzUsNiArNDcxNywxMCBAQCBnZXRPYmplY3RUeXBlRGVzY3JpcHRpb24oY29uc3QgT2JqZWN0 QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQlhcHBlbmRTdHJpbmdJbmZvU3Ry aW5nKCZidWZmZXIsICJ0cmFuc2Zvcm0iKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVmFyaWFibGVS ZWxhdGlvbklkOgorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCAic2Vzc2lvbiB2 YXJpYWJsZSIpOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnN1 cHBvcnRlZCBvYmplY3QgY2xhc3M6ICV1Iiwgb2JqZWN0LT5jbGFzc0lkKTsKIAl9CkBAIC01NzQx LDYgKzU4MjcsMTAgQEAgZ2V0T2JqZWN0SWRlbnRpdHlQYXJ0cyhjb25zdCBPYmplY3RBZGRyZXNz ICpvYmplY3QsCiAJCQkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsCiAJCQkJCQkJ CQkJCSAgICIgb24gc2NoZW1hcyIpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgREVGQUNMT0JK X1ZBUklBQkxFOgorCQkJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLAorCQkJCQkJ CQkJCQkgICAiIG9uIHNlc3Npb24gdmFyaWFibGVzIik7CisJCQkJCQlicmVhazsKIAkJCQl9CiAK IAkJCQlpZiAob2JqbmFtZSkKQEAgLTU5ODEsNiArNjA3MSwzMyBAQCBnZXRPYmplY3RJZGVudGl0 eVBhcnRzKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwKIAkJCX0KIAkJCWJyZWFrOwogCisJ CWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJeworCQkJCWNoYXIJICAgKnNjaGVtYTsKKwkJ CQljaGFyCSAgICp2YXJuYW1lOworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9ybV9wZ192YXJp YWJsZSB2YXJmb3JtOworCisJCQkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBP YmplY3RJZEdldERhdHVtKG9iamVjdC0+b2JqZWN0SWQpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlz VmFsaWQodHVwKSkKKwkJCQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNl c3Npb24gdmFyaWFibGUgJXUiLAorCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQpOworCisJCQkJdmFy Zm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCQkJCXNjaGVtYSA9 IGdldF9uYW1lc3BhY2VfbmFtZV9vcl90ZW1wKHZhcmZvcm0tPnZhcm5hbWVzcGFjZSk7CisJCQkJ dmFybmFtZSA9IE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSk7CisKKwkJCQlhcHBlbmRTdHJpbmdJ bmZvKCZidWZmZXIsICIlcyIsCisJCQkJCQkJCSBxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihz Y2hlbWEsIHZhcm5hbWUpKTsKKworCQkJCWlmIChvYmpuYW1lKQorCQkJCQkqb2JqbmFtZSA9IGxp c3RfbWFrZTIoc2NoZW1hLCBwc3RyZHVwKHZhcm5hbWUpKTsKKworCQkJCVJlbGVhc2VTeXNDYWNo ZSh0dXApOworCQkJCWJyZWFrOworCQkJfQorCiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAi dW5zdXBwb3J0ZWQgb2JqZWN0IGNsYXNzOiAldSIsIG9iamVjdC0+Y2xhc3NJZCk7CiAJfQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ19zaGRlcGVuZC5jCmluZGV4IDc1M2FmYjg4NDUuLjFlYTNkNmRiMDUgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc2hkZXBlbmQuYworKysgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3NoZGVwZW5kLmMKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJjYXRh bG9nL3BnX3RzX2RpY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX3VzZXJfbWFwcGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFi bGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9hbHRlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2Ri Y29tbWFuZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKQEAgLTE3MTQsNiArMTcx NSw3IEBAIHNoZGVwUmVhc3NpZ25Pd25lZF9Pd25lcihGb3JtX3BnX3NoZGVwZW5kIHNkZXBGb3Jt LCBPaWQgbmV3cm9sZSkKIAkJY2FzZSBEYXRhYmFzZVJlbGF0aW9uSWQ6CiAJCWNhc2UgVFNDb25m aWdSZWxhdGlvbklkOgogCQljYXNlIFRTRGljdGlvbmFyeVJlbGF0aW9uSWQ6CisJCWNhc2UgVmFy aWFibGVSZWxhdGlvbklkOgogCQkJQWx0ZXJPYmplY3RPd25lcl9pbnRlcm5hbChzZGVwRm9ybS0+ Y2xhc3NpZCwKIAkJCQkJCQkJCSAgc2RlcEZvcm0tPm9iamlkLAogCQkJCQkJCQkJICBuZXdyb2xl KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwLi5hMjFjYWEwZTBmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ192YXJpYWJsZS5jCkBAIC0wLDAgKzEsMjUxIEBACisvKi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyAqCisgKiBwZ192YXJpYWJsZS5jCisgKgkJc2Vzc2lvbiB2YXJpYWJsZXMKKyAqCisgKiBQb3J0 aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1l bnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUg VW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCQlzcmMv YmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq LworCisjaW5jbHVkZSAicG9zdGdyZXMuaCIKKworI2luY2x1ZGUgImFjY2Vzcy9oZWFwYW0uaCIK KyNpbmNsdWRlICJjYXRhbG9nL2RlcGVuZGVuY3kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2luZGV4 aW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9n L29iamVjdGFjY2Vzcy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCisjaW5j bHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Zhcmlh YmxlLmgiCisjaW5jbHVkZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5 cGUuaCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNj YWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKK3N0YXRpYyBPYmplY3RBZGRy ZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAorCQkJCQkJCQkJIE9pZCB2 YXJOYW1lc3BhY2UsCisJCQkJCQkJCQkgT2lkIHZhclR5cGUsCisJCQkJCQkJCQkgaW50MzIgdmFy VHlwbW9kLAorCQkJCQkJCQkJIE9pZCB2YXJPd25lciwKKwkJCQkJCQkJCSBPaWQgdmFyQ29sbGF0 aW9uLAorCQkJCQkJCQkJIGJvb2wgaWZfbm90X2V4aXN0cyk7CisKKworLyoKKyAqIENyZWF0ZXMg ZW50cnkgaW4gcGdfdmFyaWFibGUgdGFibGUKKyAqLworc3RhdGljIE9iamVjdEFkZHJlc3MKK2Ny ZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAorCQkJCU9pZCB2YXJOYW1lc3BhY2Us CisJCQkJT2lkIHZhclR5cGUsCisJCQkJaW50MzIgdmFyVHlwbW9kLAorCQkJCU9pZCB2YXJPd25l ciwKKwkJCQlPaWQgdmFyQ29sbGF0aW9uLAorCQkJCWJvb2wgaWZfbm90X2V4aXN0cykKK3sKKwlB Y2wJCSAgICp2YXJhY2w7CisJTmFtZURhdGEJdmFybmFtZTsKKwlib29sCQludWxsc1tOYXR0c19w Z192YXJpYWJsZV07CisJRGF0dW0JCXZhbHVlc1tOYXR0c19wZ192YXJpYWJsZV07CisJUmVsYXRp b24JcmVsOworCUhlYXBUdXBsZQl0dXA7CisJVHVwbGVEZXNjCXR1cGRlc2M7CisJT2JqZWN0QWRk cmVzcyBteXNlbGYsCisJCQkJcmVmZXJlbmNlZDsKKwlPYmplY3RBZGRyZXNzZXMgKmFkZHJzOwor CU9pZAkJCXZhcmlkOworCisJQXNzZXJ0KHZhck5hbWUpOworCUFzc2VydChPaWRJc1ZhbGlkKHZh ck5hbWVzcGFjZSkpOworCUFzc2VydChPaWRJc1ZhbGlkKHZhclR5cGUpKTsKKwlBc3NlcnQoT2lk SXNWYWxpZCh2YXJPd25lcikpOworCisJcmVsID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9u SWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJLyoKKwkgKiBDaGVjayBmb3IgZHVwbGljYXRlcy4g Tm90ZSB0aGF0IHRoaXMgZG9lcyBub3QgcmVhbGx5IHByZXZlbnQKKwkgKiBkdXBsaWNhdGVzLCBp dCdzIGhlcmUganVzdCB0byBwcm92aWRlIG5pY2VyIGVycm9yIG1lc3NhZ2UgaW4gY29tbW9uCisJ ICogY2FzZS4gVGhlIHJlYWwgcHJvdGVjdGlvbiBpcyB0aGUgdW5pcXVlIGtleSBvbiB0aGUgY2F0 YWxvZy4KKwkgKi8KKwlpZiAoU2VhcmNoU3lzQ2FjaGVFeGlzdHMyKFZBUklBQkxFTkFNRU5TUCwK KwkJCQkJCQkgIFBvaW50ZXJHZXREYXR1bSh2YXJOYW1lKSwKKwkJCQkJCQkgIE9iamVjdElkR2V0 RGF0dW0odmFyTmFtZXNwYWNlKSkpCisJeworCQlpZiAoaWZfbm90X2V4aXN0cykKKwkJCWVyZXBv cnQoTk9USUNFLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJ CQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBhbHJlYWR5IGV4aXN0cywgc2tpcHBp bmciLAorCQkJCQkJCXZhck5hbWUpKSk7CisJCWVsc2UKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CShlcnJjb2RlKEVSUkNPREVfRFVQTElDQVRFX09CSkVDVCksCisJCQkJCSBlcnJtc2coInNlc3Np b24gdmFyaWFibGUgXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwKKwkJCQkJCQl2YXJOYW1lKSkpOwor CisJCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwkJcmV0dXJuIEludmFs aWRPYmplY3RBZGRyZXNzOworCX0KKworCW1lbXNldCh2YWx1ZXMsIDAsIHNpemVvZih2YWx1ZXMp KTsKKwltZW1zZXQobnVsbHMsIGZhbHNlLCBzaXplb2YobnVsbHMpKTsKKworCW5hbWVzdHJjcHko JnZhcm5hbWUsIHZhck5hbWUpOworCisJdmFyaWQgPSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBW YXJpYWJsZU9pZEluZGV4SWQsIEFudW1fcGdfdmFyaWFibGVfb2lkKTsKKworCXZhbHVlc1tBbnVt X3BnX3ZhcmlhYmxlX29pZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJpZCk7CisJdmFsdWVz W0FudW1fcGdfdmFyaWFibGVfdmFybmFtZSAtIDFdID0gTmFtZUdldERhdHVtKCZ2YXJuYW1lKTsK Kwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJuYW1lc3BhY2UgLSAxXSA9IE9iamVjdElkR2V0 RGF0dW0odmFyTmFtZXNwYWNlKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBlIC0g MV0gPSBPYmplY3RJZEdldERhdHVtKHZhclR5cGUpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxl X3ZhcnR5cG1vZCAtIDFdID0gSW50MzJHZXREYXR1bSh2YXJUeXBtb2QpOworCXZhbHVlc1tBbnVt X3BnX3ZhcmlhYmxlX3Zhcm93bmVyIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhck93bmVyKTsK Kwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjb2xsYXRpb24gLSAxXSA9IE9iamVjdElkR2V0 RGF0dW0odmFyQ29sbGF0aW9uKTsKKworCXZhcmFjbCA9IGdldF91c2VyX2RlZmF1bHRfYWNsKE9C SkVDVF9WQVJJQUJMRSwgdmFyT3duZXIsCisJCQkJCQkJCSAgdmFyTmFtZXNwYWNlKTsKKwlpZiAo dmFyYWNsICE9IE5VTEwpCisJCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmFjbCAtIDFdID0g UG9pbnRlckdldERhdHVtKHZhcmFjbCk7CisJZWxzZQorCQludWxsc1tBbnVtX3BnX3ZhcmlhYmxl X3ZhcmFjbCAtIDFdID0gdHJ1ZTsKKworCXR1cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJlbCk7 CisKKwl0dXAgPSBoZWFwX2Zvcm1fdHVwbGUodHVwZGVzYywgdmFsdWVzLCBudWxscyk7CisJQ2F0 YWxvZ1R1cGxlSW5zZXJ0KHJlbCwgdHVwKTsKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJpZCkpOwor CisJYWRkcnMgPSBuZXdfb2JqZWN0X2FkZHJlc3NlcygpOworCisJT2JqZWN0QWRkcmVzc1NldCht eXNlbGYsIFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQpOworCisJLyogZGVwZW5kZW5jeSBvbiBu YW1lc3BhY2UgKi8KKwlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIE5hbWVzcGFjZVJlbGF0 aW9uSWQsIHZhck5hbWVzcGFjZSk7CisJYWRkX2V4YWN0X29iamVjdF9hZGRyZXNzKCZyZWZlcmVu Y2VkLCBhZGRycyk7CisKKwkvKiBkZXBlbmRlbmN5IG9uIHVzZWQgdHlwZSAqLworCU9iamVjdEFk ZHJlc3NTZXQocmVmZXJlbmNlZCwgVHlwZVJlbGF0aW9uSWQsIHZhclR5cGUpOworCWFkZF9leGFj dF9vYmplY3RfYWRkcmVzcygmcmVmZXJlbmNlZCwgYWRkcnMpOworCisJLyogZGVwZW5kZW5jeSBv biBjb2xsYXRpb24gKi8KKwlpZiAoT2lkSXNWYWxpZCh2YXJDb2xsYXRpb24pICYmCisJCXZhckNv bGxhdGlvbiAhPSBERUZBVUxUX0NPTExBVElPTl9PSUQpCisJeworCQlPYmplY3RBZGRyZXNzU2V0 KHJlZmVyZW5jZWQsIENvbGxhdGlvblJlbGF0aW9uSWQsIHZhckNvbGxhdGlvbik7CisJCWFkZF9l eGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJlbmNlZCwgYWRkcnMpOworCX0KKworCXJlY29yZF9v YmplY3RfYWRkcmVzc19kZXBlbmRlbmNpZXMoJm15c2VsZiwgYWRkcnMsIERFUEVOREVOQ1lfTk9S TUFMKTsKKwlmcmVlX29iamVjdF9hZGRyZXNzZXMoYWRkcnMpOworCisJLyogZGVwZW5kZW5jeSBv biBvd25lciAqLworCXJlY29yZERlcGVuZGVuY3lPbk93bmVyKFZhcmlhYmxlUmVsYXRpb25JZCwg dmFyaWQsIHZhck93bmVyKTsKKworCS8qIGRlcGVuZGVuY2llcyBvbiByb2xlcyBtZW50aW9uZWQg aW4gZGVmYXVsdCBBQ0wgKi8KKwlyZWNvcmREZXBlbmRlbmN5T25OZXdBY2woVmFyaWFibGVSZWxh dGlvbklkLCB2YXJpZCwgMCwgdmFyT3duZXIsIHZhcmFjbCk7CisKKwkvKiBkZXBlbmRlbmN5IG9u IGV4dGVuc2lvbiAqLworCXJlY29yZERlcGVuZGVuY3lPbkN1cnJlbnRFeHRlbnNpb24oJm15c2Vs ZiwgZmFsc2UpOworCisJaGVhcF9mcmVldHVwbGUodHVwKTsKKworCS8qIHBvc3QgY3JlYXRpb24g aG9vayBmb3IgbmV3IGZ1bmN0aW9uICovCisJSW52b2tlT2JqZWN0UG9zdENyZWF0ZUhvb2soVmFy aWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCk7CisKKwl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1 c2l2ZUxvY2spOworCisJcmV0dXJuIG15c2VsZjsKK30KKworLyoKKyAqIENyZWF0ZXMgYSBuZXcg dmFyaWFibGUKKyAqCisgKiBVc2VkIGJ5IENSRUFURSBWQVJJQUJMRSBjb21tYW5kCisgKi8KK09i amVjdEFkZHJlc3MKK0NyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vz c2lvblZhclN0bXQgKnN0bXQpCit7CisJT2lkCQkJbmFtZXNwYWNlaWQ7CisJQWNsUmVzdWx0CWFj bHJlc3VsdDsKKwlPaWQJCQl0eXBpZDsKKwlpbnQzMgkJdHlwbW9kOworCU9pZAkJCXZhcm93bmVy ID0gR2V0VXNlcklkKCk7CisJT2lkCQkJY29sbGF0aW9uOworCU9pZAkJCXR5cGNvbGxhdGlvbjsK KwlPYmplY3RBZGRyZXNzIHZhcmlhYmxlOworCisJbmFtZXNwYWNlaWQgPQorCQlSYW5nZVZhckdl dEFuZENoZWNrQ3JlYXRpb25OYW1lc3BhY2Uoc3RtdC0+dmFyaWFibGUsIE5vTG9jaywgTlVMTCk7 CisKKwl0eXBlbmFtZVR5cGVJZEFuZE1vZChwc3RhdGUsIHN0bXQtPnR5cGVOYW1lLCAmdHlwaWQs ICZ0eXBtb2QpOworCisJLyogZGlzYWxsb3cgcHNldWRvdHlwZXMgKi8KKwlpZiAoZ2V0X3R5cHR5 cGUodHlwaWQpID09IFRZUFRZUEVfUFNFVURPKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJj b2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFy aWFibGUgY2Fubm90IGJlIHBzZXVkby10eXBlICVzIiwKKwkJCQkJCWZvcm1hdF90eXBlX2JlKHR5 cGlkKSkpKTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhUeXBlUmVsYXRpb25JZCwg dHlwaWQsIEdldFVzZXJJZCgpLCBBQ0xfVVNBR0UpOworCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hF Q0tfT0spCisJCWFjbGNoZWNrX2Vycm9yX3R5cGUoYWNscmVzdWx0LCB0eXBpZCk7CisKKwl0eXBj b2xsYXRpb24gPSBnZXRfdHlwY29sbGF0aW9uKHR5cGlkKTsKKworCWlmIChzdG10LT5jb2xsQ2xh dXNlKQorCQljb2xsYXRpb24gPSBMb29rdXBDb2xsYXRpb24ocHN0YXRlLAorCQkJCQkJCQkJc3Rt dC0+Y29sbENsYXVzZS0+Y29sbG5hbWUsCisJCQkJCQkJCQlzdG10LT5jb2xsQ2xhdXNlLT5sb2Nh dGlvbik7CisJZWxzZQorCQljb2xsYXRpb24gPSB0eXBjb2xsYXRpb247OworCisJLyogY29tcGxh aW4gaWYgQ09MTEFURSBpcyBhcHBsaWVkIHRvIGFuIHVuY29sbGF0YWJsZSB0eXBlICovCisJaWYg KE9pZElzVmFsaWQoY29sbGF0aW9uKSAmJiAhT2lkSXNWYWxpZCh0eXBjb2xsYXRpb24pKQorCQll cmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAor CQkJCSBlcnJtc2coImNvbGxhdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgYnkgdHlwZSAlcyIsCisJ CQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0 YXRlLCBzdG10LT5jb2xsQ2xhdXNlLT5sb2NhdGlvbikpKTsKKworCXZhcmlhYmxlID0gY3JlYXRl X3ZhcmlhYmxlKHN0bXQtPnZhcmlhYmxlLT5yZWxuYW1lLAorCQkJCQkJCSAgIG5hbWVzcGFjZWlk LAorCQkJCQkJCSAgIHR5cGlkLAorCQkJCQkJCSAgIHR5cG1vZCwKKwkJCQkJCQkgICB2YXJvd25l ciwKKwkJCQkJCQkgICBjb2xsYXRpb24sCisJCQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0cyk7 CisKKwllbG9nKERFQlVHMSwgInJlY29yZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgKG9p ZDolZCkgd2FzIGNyZWF0ZWQgaW4gcGdfdmFyaWFibGUiLAorCQkgc3RtdC0+dmFyaWFibGUtPnJl bG5hbWUsIHZhcmlhYmxlLm9iamVjdElkKTsKKworCXJldHVybiB2YXJpYWJsZTsKK30KKworLyoK KyAqIERyb3AgdmFyaWFibGUgYnkgT0lECisgKi8KK3ZvaWQKK0Ryb3BWYXJpYWJsZUJ5SWQoT2lk IHZhcmlkKQoreworCVJlbGF0aW9uCXJlbDsKKwlIZWFwVHVwbGUJdHVwOworCisJcmVsID0gdGFi bGVfb3BlbihWYXJpYWJsZVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJdHVwID0g U2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisK KwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1 cCBmYWlsZWQgZm9yIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJQ2F0YWxvZ1R1cGxlRGVsZXRl KHJlbCwgJnR1cC0+dF9zZWxmKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJdGFibGVf Y2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2FsdGVyLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jCmluZGV4IGE0 NWYzYmI2YjguLmQ0ZDg4ZDExMzEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Fs dGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYwpAQCAtNDEsNiArNDEsNyBA QAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfZGljdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf dHNfcGFyc2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0ZS5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9hbHRlci5oIgog I2luY2x1ZGUgImNvbW1hbmRzL2NvbGxhdGlvbmNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9k YmNvbW1hbmRzLmgiCkBAIC0xMzksNiArMTQwLDEwIEBAIHJlcG9ydF9uYW1lc3BhY2VfY29uZmxp Y3QoT2lkIGNsYXNzSWQsIGNvbnN0IGNoYXIgKm5hbWUsIE9pZCBuc3BPaWQpCiAJCQlBc3NlcnQo T2lkSXNWYWxpZChuc3BPaWQpKTsKIAkJCW1zZ2ZtdCA9IGdldHRleHRfbm9vcCgidGV4dCBzZWFy Y2ggY29uZmlndXJhdGlvbiBcIiVzXCIgYWxyZWFkeSBleGlzdHMgaW4gc2NoZW1hIFwiJXNcIiIp OwogCQkJYnJlYWs7CisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJQXNzZXJ0KE9pZElz VmFsaWQobnNwT2lkKSk7CisJCQltc2dmbXQgPSBnZXR0ZXh0X25vb3AoInNlc3Npb24gdmFyaWFi bGUgXCIlc1wiIGFscmVhZHkgZXhpc3RzIGluIHNjaGVtYSBcIiVzXCIiKTsKKwkJCWJyZWFrOwog CQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIG9iamVjdCBjbGFzczogJXUi LCBjbGFzc0lkKTsKIAkJCWJyZWFrOwpAQCAtNDE4LDYgKzQyMyw3IEBAIEV4ZWNSZW5hbWVTdG10 KFJlbmFtZVN0bXQgKnN0bXQpCiAJCWNhc2UgT0JKRUNUX1RTVEVNUExBVEU6CiAJCWNhc2UgT0JK RUNUX1BVQkxJQ0FUSU9OOgogCQljYXNlIE9CSkVDVF9TVUJTQ1JJUFRJT046CisJCWNhc2UgT0JK RUNUX1ZBUklBQkxFOgogCQkJewogCQkJCU9iamVjdEFkZHJlc3MgYWRkcmVzczsKIAkJCQlSZWxh dGlvbgljYXRhbG9nOwpAQCAtNTU4LDYgKzU2NCw3IEBAIEV4ZWNBbHRlck9iamVjdFNjaGVtYVN0 bXQoQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpzdG10LAogCQljYXNlIE9CSkVDVF9UU0RJQ1RJT05B Ulk6CiAJCWNhc2UgT0JKRUNUX1RTUEFSU0VSOgogCQljYXNlIE9CSkVDVF9UU1RFTVBMQVRFOgor CQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCXsKIAkJCQlSZWxhdGlvbgljYXRhbG9nOwogCQkJ CU9pZAkJCWNsYXNzSWQ7CkBAIC02NDAsNiArNjQ3LDcgQEAgQWx0ZXJPYmplY3ROYW1lc3BhY2Vf b2lkKE9pZCBjbGFzc0lkLCBPaWQgb2JqaWQsIE9pZCBuc3BPaWQsCiAJCWNhc2UgVFNEaWN0aW9u YXJ5UmVsYXRpb25JZDoKIAkJY2FzZSBUU1RlbXBsYXRlUmVsYXRpb25JZDoKIAkJY2FzZSBUU0Nv bmZpZ1JlbGF0aW9uSWQ6CisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgogCQkJewogCQkJCVJl bGF0aW9uCWNhdGFsb2c7CiAKQEAgLTg3MCw2ICs4NzgsNyBAQCBFeGVjQWx0ZXJPd25lclN0bXQo QWx0ZXJPd25lclN0bXQgKnN0bXQpCiAJCWNhc2UgT0JKRUNUX1RBQkxFU1BBQ0U6CiAJCWNhc2Ug T0JKRUNUX1RTRElDVElPTkFSWToKIAkJY2FzZSBPQkpFQ1RfVFNDT05GSUdVUkFUSU9OOgorCQlj YXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCXsKIAkJCQlPYmplY3RBZGRyZXNzIGFkZHJlc3M7CiAK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9kcm9wY21kcy5jCmluZGV4IDg1ZWVjN2UzOTQuLjNjY2UxN2U5MmEgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvZHJvcGNtZHMuYwpAQCAtNDc2LDYgKzQ3NiwxMCBAQCBkb2VzX25vdF9leGlzdF9z a2lwcGluZyhPYmplY3RUeXBlIG9ianR5cGUsIE5vZGUgKm9iamVjdCkKIAkJCW1zZyA9IGdldHRl eHRfbm9vcCgicHVibGljYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZyIpOwog CQkJbmFtZSA9IHN0clZhbChvYmplY3QpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklB QkxFOgorCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBkb2Vz IG5vdCBleGlzdCwgc2tpcHBpbmciKTsKKwkJCW5hbWUgPSBOYW1lTGlzdFRvU3RyaW5nKGNhc3RO b2RlKExpc3QsIG9iamVjdCkpOworCQkJYnJlYWs7CiAKIAkJY2FzZSBPQkpFQ1RfQ09MVU1OOgog CQljYXNlIE9CSkVDVF9EQVRBQkFTRToKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L2V2ZW50X3RyaWdnZXIuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYwpp bmRleCBkY2ZjMWRiYWZmLi5kMDNjYjk0N2U2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy9ldmVudF90cmlnZ2VyLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJp Z2dlci5jCkBAIC0yMTQ5LDYgKzIxNDksOCBAQCBzdHJpbmdpZnlfZ3JhbnRfb2JqdHlwZShPYmpl Y3RUeXBlIG9ianR5cGUpCiAJCQlyZXR1cm4gIlRBQkxFU1BBQ0UiOwogCQljYXNlIE9CSkVDVF9U WVBFOgogCQkJcmV0dXJuICJUWVBFIjsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlyZXR1 cm4gIlZBUklBQkxFIjsKIAkJCS8qIHRoZXNlIGN1cnJlbnRseSBhcmVuJ3QgdXNlZCAqLwogCQlj YXNlIE9CSkVDVF9BQ0NFU1NfTUVUSE9EOgogCQljYXNlIE9CSkVDVF9BR0dSRUdBVEU6CkBAIC0y MjMyLDYgKzIyMzQsOCBAQCBzdHJpbmdpZnlfYWRlZnByaXZzX29ianR5cGUoT2JqZWN0VHlwZSBv Ymp0eXBlKQogCQkJcmV0dXJuICJUQUJMRVNQQUNFUyI7CiAJCWNhc2UgT0JKRUNUX1RZUEU6CiAJ CQlyZXR1cm4gIlRZUEVTIjsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlyZXR1cm4gIlZB UklBQkxFUyI7CiAJCQkvKiB0aGVzZSBjdXJyZW50bHkgYXJlbid0IHVzZWQgKi8KIAkJY2FzZSBP QkpFQ1RfQUNDRVNTX01FVEhPRDoKIAkJY2FzZSBPQkpFQ1RfQUdHUkVHQVRFOgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3NlY2xhYmVsLmMKaW5kZXggNTYwNzI3M2JmOS4uYzAyNmFiNWRjYiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZWNsYWJlbC5jCkBAIC05Miw2ICs5Miw3IEBAIFNlY0xhYmVsU3VwcG9ydHNPYmplY3RUeXBlKE9i amVjdFR5cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpFQ1RfVFNQQVJTRVI6CiAJCWNhc2UgT0JKRUNU X1RTVEVNUExBVEU6CiAJCWNhc2UgT0JKRUNUX1VTRVJfTUFQUElORzoKKwkJY2FzZSBPQkpFQ1Rf VkFSSUFCTEU6CiAJCQlyZXR1cm4gZmFsc2U7CiAKIAkJCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jCmluZGV4IDZjY2FlNGNiNGEuLjM4YjMyZTM4MzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21k cy5jCkBAIC01Miw2ICs1Miw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190YWJsZXNwYWNlLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190 eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNhdGFs b2cvc3RvcmFnZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvc3RvcmFnZV94bG9nLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy90b2FzdGluZy5oIgpAQCAtNjc2OCw2ICs2NzY5LDcgQEAgQVRUeXBlZFRhYmxl UmVjdXJzaW9uKExpc3QgKip3cXVldWUsIFJlbGF0aW9uIHJlbCwgQWx0ZXJUYWJsZUNtZCAqY21k LAogICogKHBvc3NpYmx5IG5lc3RlZCBzZXZlcmFsIGxldmVscyBkZWVwIGluIGNvbXBvc2l0ZSB0 eXBlcywgYXJyYXlzLCBldGMhKS4KICAqIEV2ZW50dWFsbHksIHdlJ2QgbGlrZSB0byBwcm9wYWdh dGUgdGhlIGNoZWNrIG9yIHJld3JpdGUgb3BlcmF0aW9uCiAgKiBpbnRvIHN1Y2ggdGFibGVzLCBi dXQgZm9yIG5vdywganVzdCBlcnJvciBvdXQgaWYgd2UgZmluZCBhbnkuCisgKiBBbHNvLCBjaGVj ayBpZiAidHlwZU9pZCIgaXMgdXNlZCBhcyB0eXBlIG9mIHNvbWUgc2Vzc2lvbiB2YXJpYWJsZS4K ICAqCiAgKiBDYWxsZXIgc2hvdWxkIHByb3ZpZGUgZWl0aGVyIHRoZSBhc3NvY2lhdGVkIHJlbGF0 aW9uIG9mIGEgcm93dHlwZSwKICAqIG9yIGEgdHlwZSBuYW1lIChub3QgYm90aCkgZm9yIHVzZSBp biB0aGUgZXJyb3IgbWVzc2FnZSwgaWYgYW55LgpAQCAtNjgzMSw2ICs2ODMzLDQ1IEBAIGZpbmRf Y29tcG9zaXRlX3R5cGVfZGVwZW5kZW5jaWVzKE9pZCB0eXBlT2lkLCBSZWxhdGlvbiBvcmlnUmVs YXRpb24sCiAJCQljb250aW51ZTsKIAkJfQogCisJCS8qIGNoZWNrIGlmIHRoZSB0eXBlIGlzIHVz ZWQgYXMgdHlwZSBvZiBzb21lIHNlc3Npb24gdmFyaWFibGUgKi8KKwkJaWYgKHBnX2RlcGVuZC0+ Y2xhc3NpZCA9PSBWYXJpYWJsZVJlbGF0aW9uSWQpCisJCXsKKwkJCU9pZAkJCXZhcmlkID0gcGdf ZGVwZW5kLT5vYmppZDsKKworCQkJaWYgKG9yaWdUeXBlTmFtZSkKKwkJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJ IGVycm1zZygiY2Fubm90IGFsdGVyIHR5cGUgXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJs ZSBcIiVzLiVzXCIgdXNlcyBpdCIsCisJCQkJCQkJCW9yaWdUeXBlTmFtZSwKKwkJCQkJCQkJZ2V0 X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAor CQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSkpKTsKKwkJCWVsc2UgaWYg KG9yaWdSZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfQ09NUE9TSVRFX1RZUEUp CisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1Rf U1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciB0eXBlIFwiJXNcIiBiZWNh dXNlIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIHVzZXMgaXQiLAorCQkJCQkJCQlSZWxhdGlv bkdldFJlbGF0aW9uTmFtZShvcmlnUmVsYXRpb24pLAorCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25h bWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJCWdldF9z ZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKSkpOworCQkJZWxzZSBpZiAob3JpZ1JlbGF0aW9u LT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9GT1JFSUdOX1RBQkxFKQorCQkJCWVyZXBvcnQo RVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJ CQkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgZm9yZWlnbiB0YWJsZSBcIiVzXCIgYmVjYXVzZSBz ZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2VzIGl0IiwKKwkJCQkJCQkJUmVsYXRpb25HZXRS ZWxhdGlvbk5hbWUob3JpZ1JlbGF0aW9uKSwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdl dF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCQlnZXRfc2Vzc2lv bl92YXJpYWJsZV9uYW1lKHZhcmlkKSkpKTsKKwkJCWVsc2UgaWYgKG9yaWdSZWxhdGlvbi0+cmRf cmVsLT5yZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04gfHwKKwkJCQkJIG9yaWdSZWxhdGlvbi0+ cmRfcmVsLT5yZWxraW5kID09IFJFTEtJTkRfTUFUVklFVyB8fAorCQkJCQkgb3JpZ1JlbGF0aW9u LT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKKwkJCQllcmVw b3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQp LAorCQkJCQkJIGVycm1zZygiY2Fubm90IGFsdGVyIHRhYmxlIFwiJXNcIiBiZWNhdXNlIHNlc3Np b24gdmFyaWFibGUgXCIlcy4lc1wiIHVzZXMgaXQiLAorCQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0 aW9uTmFtZShvcmlnUmVsYXRpb24pLAorCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nl c3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9uX3Zh cmlhYmxlX25hbWUodmFyaWQpKSkpOworCisJCQljb250aW51ZTsKKwkJfQorCiAJCS8qIEVsc2Us IGlnbm9yZSBkZXBlbmRlZXMgdGhhdCBhcmVuJ3QgcmVsYXRpb25zICovCiAJCWlmIChwZ19kZXBl bmQtPmNsYXNzaWQgIT0gUmVsYXRpb25SZWxhdGlvbklkKQogCQkJY29udGludWU7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdHlwZWNtZHMuYwppbmRleCA0ZjIwYjViZTA2Li44NWY2YTU0YTNmIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3R5cGVjbWRzLmMKQEAgLTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2Mu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3JhbmdlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190 eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1h bmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlY21kcy5oIgogI2luY2x1ZGUg ImNvbW1hbmRzL3R5cGVjbWRzLmgiCkBAIC0zNDA0LDYgKzM0MDUsMjAgQEAgZ2V0X3JlbHNfd2l0 aF9kb21haW4oT2lkIGRvbWFpbk9pZCwgTE9DS01PREUgbG9ja21vZGUpCiAJCQl9CiAJCQljb250 aW51ZTsKIAkJfQorCQllbHNlIGlmIChwZ19kZXBlbmQtPmNsYXNzaWQgPT0gVmFyaWFibGVSZWxh dGlvbklkKQorCQl7CisJCQkvKgorCQkJICogV2UgY2Fubm90IHRvIHZhbGlkYXRlIGNvbnN0cmFp bnQgaW5zaWRlIHNlc3Npb24gdmFyaWFibGVzCisJCQkgKiBmcm9tIG90aGVyIHNlc3Npb25zLCBz byBiZXR0ZXIgdG8gZmFpbCBpZiB0aGVyZSBhcmUgYW55CisJCQkgKiBzZXNzaW9uIHZhcmlhYmxl LCB0aGF0IHVzZSB0aGlzIGRvbWFpbi4KKwkJCSAqLworCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ KGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkgZXJybXNnKCJj YW5ub3QgYWx0ZXIgZG9tYWluIFwiJXNcIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgXCIlcy4l c1wiIHVzZXMgaXQiLAorCQkJCQkJCQlkb21haW5UeXBlTmFtZSwKKwkJCQkJCQkJZ2V0X25hbWVz cGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShwZ19kZXBlbmQtPm9iamlk KSksCisJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUocGdfZGVwZW5kLT5vYmppZCkp KSk7CisJCX0KIAogCQkvKiBFbHNlLCBpZ25vcmUgZGVwZW5kZWVzIHRoYXQgYXJlbid0IHVzZXIg Y29sdW1ucyBvZiByZWxhdGlvbnMgKi8KIAkJLyogKHdlIGFzc3VtZSBzeXN0ZW0gY29sdW1ucyBh cmUgbmV2ZXIgb2YgZG9tYWluIHR5cGVzKSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggNjdlYjk2Mzk2YS4u ODlmYTIzYzJkZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC01Miw2ICs1Miw3IEBACiAjaW5jbHVkZSAiY2F0 YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2FtLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ190cmlnZ2VyLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgog I2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIu aCIKICNpbmNsdWRlICJncmFtcGFyc2UuaCIKQEAgLTI4MSw4ICsyODIsOCBAQCBzdGF0aWMgTm9k ZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywg Tm9kZSAqcXVlcnkpOwogCQlDb25zdHJhaW50c1NldFN0bXQgQ29weVN0bXQgQ3JlYXRlQXNTdG10 IENyZWF0ZUNhc3RTdG10CiAJCUNyZWF0ZURvbWFpblN0bXQgQ3JlYXRlRXh0ZW5zaW9uU3RtdCBD cmVhdGVHcm91cFN0bXQgQ3JlYXRlT3BDbGFzc1N0bXQKIAkJQ3JlYXRlT3BGYW1pbHlTdG10IEFs dGVyT3BGYW1pbHlTdG10IENyZWF0ZVBMYW5nU3RtdAotCQlDcmVhdGVTY2hlbWFTdG10IENyZWF0 ZVNlcVN0bXQgQ3JlYXRlU3RtdCBDcmVhdGVTdGF0c1N0bXQgQ3JlYXRlVGFibGVTcGFjZVN0bXQK LQkJQ3JlYXRlRmR3U3RtdCBDcmVhdGVGb3JlaWduU2VydmVyU3RtdCBDcmVhdGVGb3JlaWduVGFi bGVTdG10CisJCUNyZWF0ZVNjaGVtYVN0bXQgQ3JlYXRlU2VxU3RtdCBDcmVhdGVTZXNzaW9uVmFy U3RtdCBDcmVhdGVTdG10IENyZWF0ZVN0YXRzU3RtdAorCQlDcmVhdGVUYWJsZVNwYWNlU3RtdCBD cmVhdGVGZHdTdG10IENyZWF0ZUZvcmVpZ25TZXJ2ZXJTdG10IENyZWF0ZUZvcmVpZ25UYWJsZVN0 bXQKIAkJQ3JlYXRlQXNzZXJ0aW9uU3RtdCBDcmVhdGVUcmFuc2Zvcm1TdG10IENyZWF0ZVRyaWdT dG10IENyZWF0ZUV2ZW50VHJpZ1N0bXQKIAkJQ3JlYXRlVXNlclN0bXQgQ3JlYXRlVXNlck1hcHBp bmdTdG10IENyZWF0ZVJvbGVTdG10IENyZWF0ZVBvbGljeVN0bXQKIAkJQ3JlYXRlZGJTdG10IERl Y2xhcmVDdXJzb3JTdG10IERlZmluZVN0bXQgRGVsZXRlU3RtdCBEaXNjYXJkU3RtdCBEb1N0bXQK QEAgLTc3NSw4ICs3NzYsOCBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3Qo Y2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCVVFU0NBUEUgVU5C T1VOREVEIFVOQ09ORElUSU9OQUwgVU5DT01NSVRURUQgVU5FTkNSWVBURUQgVU5JT04gVU5JUVVF IFVOS05PV04KIAlVTkxJU1RFTiBVTkxPR0dFRCBVTlRJTCBVUERBVEUgVVNFUiBVU0lORwogCi0J VkFDVVVNIFZBTElEIFZBTElEQVRFIFZBTElEQVRPUiBWQUxVRV9QIFZBTFVFUyBWQVJDSEFSIFZB UklBRElDIFZBUllJTkcKLQlWRVJCT1NFIFZFUlNJT05fUCBWSUVXIFZJRVdTIFZPTEFUSUxFCisJ VkFDVVVNIFZBTElEIFZBTElEQVRFIFZBTElEQVRPUiBWQUxVRV9QIFZBTFVFUyBWQVJDSEFSIFZB UklBQkxFIFZBUklBQkxFUworCVZBUklBRElDIFZBUllJTkcgVkVSQk9TRSBWRVJTSU9OX1AgVklF VyBWSUVXUyBWT0xBVElMRQogCiAJV0hFTiBXSEVSRSBXSElURVNQQUNFX1AgV0lORE9XIFdJVEgg V0lUSElOIFdJVEhPVVQgV09SSyBXUkFQUEVSIFdSSVRFCiAKQEAgLTEwNDIsNiArMTA0Myw3IEBA IHN0bXQ6CiAJCQl8IENyZWF0ZVBvbGljeVN0bXQKIAkJCXwgQ3JlYXRlUExhbmdTdG10CiAJCQl8 IENyZWF0ZVNjaGVtYVN0bXQKKwkJCXwgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAkJCXwgQ3JlYXRl U2VxU3RtdAogCQkJfCBDcmVhdGVTdG10CiAJCQl8IENyZWF0ZVN1YnNjcmlwdGlvblN0bXQKQEAg LTE1ODQsNiArMTU4Niw3IEBAIHNjaGVtYV9zdG10OgogCQkJfCBDcmVhdGVUcmlnU3RtdAogCQkJ fCBHcmFudFN0bXQKIAkJCXwgVmlld1N0bXQKKwkJCXwgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAkJ OwogCiAKQEAgLTUyMTAsNiArNTIxMywzNCBAQCBjcmVhdGVfZXh0ZW5zaW9uX29wdF9pdGVtOgog CQkJCX0KIAkJOwogCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKgkJUVVFUlkgOgorICoJ CQkJQ1JFQVRFIFZBUklBQkxFIHZhcm5hbWUgW0FTXSB0eXBlCisgKgorICoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqLworCitDcmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCUNSRUFURSBWQVJJQUJMRSBxdWFs aWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlCisJCQkJeworCQkJ CQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10 KTsKKwkJCQkJbi0+dmFyaWFibGUgPSAkMzsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkNTsKKwkJCQkJ bi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ2OworCQkJCQluLT5pZl9ub3RfZXhp c3RzID0gZmFsc2U7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCQl8IENSRUFURSBW QVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9w dF9jb2xsYXRlX2NsYXVzZQorCQkJCXsKKwkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBt YWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7CisJCQkJCW4tPnZhcmlhYmxlID0gJDY7CisJ CQkJCW4tPnR5cGVOYW1lID0gJDg7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVz ZSAqKSAkOTsKKwkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IHRydWU7CisJCQkJCSQkID0gKE5vZGUg KikgbjsKKwkJCQl9CisJCTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogQUxURVIg RVhURU5TSU9OIG5hbWUgVVBEQVRFIFsgVE8gdmVyc2lvbiBdCkBAIC02OTk4LDYgKzcwMjksNyBA QCBvYmplY3RfdHlwZV9hbnlfbmFtZToKIAkJCXwgVEVYVF9QIFNFQVJDSCBESUNUSU9OQVJZCQkJ CXsgJCQgPSBPQkpFQ1RfVFNESUNUSU9OQVJZOyB9CiAJCQl8IFRFWFRfUCBTRUFSQ0ggVEVNUExB VEUJCQkJeyAkJCA9IE9CSkVDVF9UU1RFTVBMQVRFOyB9CiAJCQl8IFRFWFRfUCBTRUFSQ0ggQ09O RklHVVJBVElPTgkJCXsgJCQgPSBPQkpFQ1RfVFNDT05GSUdVUkFUSU9OOyB9CisJCQl8IFZBUklB QkxFCQkJCQkJCQl7ICQkID0gT0JKRUNUX1ZBUklBQkxFOyB9CiAJCTsKIAogLyoKQEAgLTc4NzQs NiArNzkwNiwxNCBAQCBwcml2aWxlZ2VfdGFyZ2V0OgogCQkJCQluLT5vYmpzID0gJDI7CiAJCQkJ CSQkID0gbjsKIAkJCQl9CisJCQl8IFZBUklBQkxFIHF1YWxpZmllZF9uYW1lX2xpc3QKKwkJCQl7 CisJCQkJCVByaXZUYXJnZXQgKm4gPSAoUHJpdlRhcmdldCAqKSBwYWxsb2Moc2l6ZW9mKFByaXZU YXJnZXQpKTsKKwkJCQkJbi0+dGFyZ3R5cGUgPSBBQ0xfVEFSR0VUX09CSkVDVDsKKwkJCQkJbi0+ b2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqcyA9ICQyOworCQkJCQkkJCA9 IG47CisJCQkJfQogCQkJfCBBTEwgVEFCTEVTIElOX1AgU0NIRU1BIG5hbWVfbGlzdAogCQkJCXsK IAkJCQkJUHJpdlRhcmdldCAqbiA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRh cmdldCkpOwpAQCAtNzkxOSw2ICs3OTU5LDE0IEBAIHByaXZpbGVnZV90YXJnZXQ6CiAJCQkJCW4t Pm9ianMgPSAkNTsKIAkJCQkJJCQgPSBuOwogCQkJCX0KKwkJCXwgQUxMIFZBUklBQkxFUyBJTl9Q IFNDSEVNQSBuYW1lX2xpc3QKKwkJCQl7CisJCQkJCVByaXZUYXJnZXQgKm4gPSAoUHJpdlRhcmdl dCAqKSBwYWxsb2Moc2l6ZW9mKFByaXZUYXJnZXQpKTsKKwkJCQkJbi0+dGFyZ3R5cGUgPSBBQ0xf VEFSR0VUX0FMTF9JTl9TQ0hFTUE7CisJCQkJCW4tPm9ianR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7 CisJCQkJCW4tPm9ianMgPSAkNTsKKwkJCQkJJCQgPSBuOworCQkJCX0KIAkJOwogCiAKQEAgLTgx MTYsNiArODE2NCw3IEBAIGRlZmFjbF9wcml2aWxlZ2VfdGFyZ2V0OgogCQkJfCBTRVFVRU5DRVMJ CXsgJCQgPSBPQkpFQ1RfU0VRVUVOQ0U7IH0KIAkJCXwgVFlQRVNfUAkJeyAkJCA9IE9CSkVDVF9U WVBFOyB9CiAJCQl8IFNDSEVNQVMJCXsgJCQgPSBPQkpFQ1RfU0NIRU1BOyB9CisJCQl8IFZBUklB QkxFUwkJeyAkJCA9IE9CSkVDVF9WQVJJQUJMRTsgfQogCQk7CiAKIApAQCAtOTkwNCw2ICs5OTUz LDI0IEBAIFJlbmFtZVN0bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBl cyBSRU5BTUUgVE8gbmFtZQogCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CiAJCQkJCSQkID0g KE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIGFueV9uYW1lIFJFTkFNRSBU TyBuYW1lCisJCQkJeworCQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5vZGUoUmVuYW1lU3RtdCk7 CisJCQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9iamVjdCA9 IChOb2RlICopICQzOworCQkJCQluLT5uZXduYW1lID0gJDY7CisJCQkJCW4tPm1pc3Npbmdfb2sg PSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQorCQkJfCBBTFRFUiBWQVJJQUJM RSBJRl9QIEVYSVNUUyBhbnlfbmFtZSBSRU5BTUUgVE8gbmFtZQorCQkJCXsKKwkJCQkJUmVuYW1l U3RtdCAqbiA9IG1ha2VOb2RlKFJlbmFtZVN0bXQpOworCQkJCQluLT5yZW5hbWVUeXBlID0gT0JK RUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkNTsKKwkJCQkJbi0+bmV3 bmFtZSA9ICQ4OworCQkJCQluLT5taXNzaW5nX29rID0gdHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAq KW47CisJCQkJfQogCQk7CiAKIG9wdF9jb2x1bW46IENPTFVNTgpAQCAtMTAyNjUsNiArMTAzMzIs MjQgQEAgQWx0ZXJPYmplY3RTY2hlbWFTdG10OgogCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7 CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIGFueV9u YW1lIFNFVCBTQ0hFTUEgbmFtZQorCQkJCXsKKwkJCQkJQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpu ID0gbWFrZU5vZGUoQWx0ZXJPYmplY3RTY2hlbWFTdG10KTsKKwkJCQkJbi0+b2JqZWN0VHlwZSA9 IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDM7CisJCQkJCW4t Pm5ld3NjaGVtYSA9ICQ2OworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJCQkJCSQkID0g KE5vZGUgKiluOworCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgSUZfUCBFWElTVFMgYW55X25h bWUgU0VUIFNDSEVNQSBuYW1lCisJCQkJeworCQkJCQlBbHRlck9iamVjdFNjaGVtYVN0bXQgKm4g PSBtYWtlTm9kZShBbHRlck9iamVjdFNjaGVtYVN0bXQpOworCQkJCQluLT5vYmplY3RUeXBlID0g T0JKRUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkNTsKKwkJCQkJbi0+ bmV3c2NoZW1hID0gJDg7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSB0cnVlOworCQkJCQkkJCA9IChO b2RlICopbjsKKwkJCQl9CiAJCTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xMDU0Niw2 ICsxMDYzMSwxNCBAQCBBbHRlck93bmVyU3RtdDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93 aXRoX2FyZ3R5cGVzIE9XTkVSIFRPIFJvbGVTcGVjCiAJCQkJCW4tPm5ld293bmVyID0gJDY7CiAJ CQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIGFueV9uYW1l IE9XTkVSIFRPIFJvbGVTcGVjCisJCQkJeworCQkJCQlBbHRlck93bmVyU3RtdCAqbiA9IG1ha2VO b2RlKEFsdGVyT3duZXJTdG10KTsKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9WQVJJQUJM RTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDM7CisJCQkJCW4tPm5ld293bmVyID0gJDY7 CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KIAkJOwogCiAKQEAgLTE3OTE3LDYgKzE4MDEw LDggQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBWQUxJREFURQogCQkJfCBWQUxJREFUT1IK IAkJCXwgVkFMVUVfUAorCQkJfCBWQVJJQUJMRQorCQkJfCBWQVJJQUJMRVMKIAkJCXwgVkFSWUlO RwogCQkJfCBWRVJTSU9OX1AKIAkJCXwgVklFVwpAQCAtMTg1NzAsNiArMTg2NjUsOCBAQCBiYXJl X2xhYmVsX2tleXdvcmQ6CiAJCQl8IFZBTFVFX1AKIAkJCXwgVkFMVUVTCiAJCQl8IFZBUkNIQVIK KwkJCXwgVkFSSUFCTEUKKwkJCXwgVkFSSUFCTEVTCiAJCQl8IFZBUklBRElDCiAJCQl8IFZFUkJP U0UKIAkJCXwgVkVSU0lPTl9QCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf dXRpbGNtZC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwppbmRleCA5NWRh ZDc2NjgzLi45ZGM3YjYwNTJkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf dXRpbGNtZC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKQEAgLTEw NSw2ICsxMDUsNyBAQCB0eXBlZGVmIHN0cnVjdAogCUxpc3QJICAgKmluZGV4ZXM7CQkvKiBDUkVB VEUgSU5ERVggaXRlbXMgKi8KIAlMaXN0CSAgICp0cmlnZ2VyczsJCS8qIENSRUFURSBUUklHR0VS IGl0ZW1zICovCiAJTGlzdAkgICAqZ3JhbnRzOwkJCS8qIEdSQU5UIGl0ZW1zICovCisJTGlzdAkg ICAqdmFyaWFibGVzOwkJLyogQ1JFQVRFIFZBUklBQkxFIGl0ZW1zICovCiB9IENyZWF0ZVNjaGVt YVN0bXRDb250ZXh0OwogCiAKQEAgLTQwMzksNiArNDA0MCw3IEBAIHRyYW5zZm9ybUNyZWF0ZVNj aGVtYVN0bXRFbGVtZW50cyhMaXN0ICpzY2hlbWFFbHRzLCBjb25zdCBjaGFyICpzY2hlbWFOYW1l KQogCWN4dC5pbmRleGVzID0gTklMOwogCWN4dC50cmlnZ2VycyA9IE5JTDsKIAljeHQuZ3JhbnRz ID0gTklMOworCWN4dC52YXJpYWJsZXMgPSBOSUw7CiAKIAkvKgogCSAqIFJ1biB0aHJvdWdoIGVh Y2ggc2NoZW1hIGVsZW1lbnQgaW4gdGhlIHNjaGVtYSBlbGVtZW50IGxpc3QuIFNlcGFyYXRlCkBA IC00MTA3LDYgKzQxMDksMTUgQEAgdHJhbnNmb3JtQ3JlYXRlU2NoZW1hU3RtdEVsZW1lbnRzKExp c3QgKnNjaGVtYUVsdHMsIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUpCiAJCQkJY3h0LmdyYW50cyA9 IGxhcHBlbmQoY3h0LmdyYW50cywgZWxlbWVudCk7CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgVF9D cmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCQl7CisJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpl bHAgPSAoQ3JlYXRlU2Vzc2lvblZhclN0bXQgKikgZWxlbWVudDsKKworCQkJCQlzZXRTY2hlbWFO YW1lKGN4dC5zY2hlbWFuYW1lLCAmZWxwLT52YXJpYWJsZS0+c2NoZW1hbmFtZSk7CisJCQkJCWN4 dC52YXJpYWJsZXMgPSBsYXBwZW5kKGN4dC52YXJpYWJsZXMsIGVsZW1lbnQpOworCQkJCX0KKwkJ CQlicmVhazsKKwogCQkJZGVmYXVsdDoKIAkJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5v ZGUgdHlwZTogJWQiLAogCQkJCQkgKGludCkgbm9kZVRhZyhlbGVtZW50KSk7CkBAIC00MTIwLDYg KzQxMzEsNyBAQCB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVudHMoTGlzdCAqc2NoZW1h RWx0cywgY29uc3QgY2hhciAqc2NoZW1hTmFtZSkKIAlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1 bHQsIGN4dC5pbmRleGVzKTsKIAlyZXN1bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIGN4dC50cmln Z2Vycyk7CiAJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQuZ3JhbnRzKTsKKwlyZXN1 bHQgPSBsaXN0X2NvbmNhdChyZXN1bHQsIGN4dC52YXJpYWJsZXMpOwogCiAJcmV0dXJuIHJlc3Vs dDsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tl bmQvdGNvcC91dGlsaXR5LmMKaW5kZXggMzNkZWE1YTc4MS4uODgxNTE4YmJjYSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC91dGls aXR5LmMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19pbmhl cml0cy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjYXRh bG9nL3RvYXN0aW5nLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYWx0ZXIuaCIKICNpbmNsdWRlICJj b21tYW5kcy9hc3luYy5oIgpAQCAtMTgyLDYgKzE4Myw3IEBAIENsYXNzaWZ5VXRpbGl0eUNvbW1h bmRBc1JlYWRPbmx5KE5vZGUgKnBhcnNldHJlZSkKIAkJY2FzZSBUX0NyZWF0ZVJhbmdlU3RtdDoK IAkJY2FzZSBUX0NyZWF0ZVJvbGVTdG10OgogCQljYXNlIFRfQ3JlYXRlU2NoZW1hU3RtdDoKKwkJ Y2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJTdG10OgogCQljYXNlIFRfQ3JlYXRlU2VxU3RtdDoKIAkJ Y2FzZSBUX0NyZWF0ZVN0YXRzU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVN0bXQ6CkBAIC0xMzg5LDYg KzEzOTEsMTAgQEAgUHJvY2Vzc1V0aWxpdHlTbG93KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQl9 CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgVF9DcmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCQlhZGRy ZXNzID0gQ3JlYXRlVmFyaWFibGUocHN0YXRlLCAoQ3JlYXRlU2Vzc2lvblZhclN0bXQgKikgcGFy c2V0cmVlKTsKKwkJCQlicmVhazsKKwogCQkJCS8qCiAJCQkJICogKioqKioqKioqKioqKiBvYmpl Y3QgY3JlYXRpb24gLyBkZXN0cnVjdGlvbiAqKioqKioqKioqKioqKgogCQkJCSAqLwpAQCAtMjM0 MSw2ICsyMzQ3LDkgQEAgQWx0ZXJPYmplY3RUeXBlQ29tbWFuZFRhZyhPYmplY3RUeXBlIG9ianR5 cGUpCiAJCWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19FWFQ6CiAJCQl0YWcgPSBDTURUQUdfQUxURVJf U1RBVElTVElDUzsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXRhZyA9 IENNRFRBR19BTFRFUl9WQVJJQUJMRTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJdGFnID0g Q01EVEFHX1VOS05PV047CiAJCQlicmVhazsKQEAgLTI2NDksNiArMjY1OCw5IEBAIENyZWF0ZUNv bW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJCWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19FWFQ6 CiAJCQkJCXRhZyA9IENNRFRBR19EUk9QX1NUQVRJU1RJQ1M7CiAJCQkJCWJyZWFrOworCQkJCWNh c2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCQl0YWcgPSBDTURUQUdfRFJPUF9WQVJJQUJMRTsKKwkJ CQkJYnJlYWs7CiAJCQkJZGVmYXVsdDoKIAkJCQkJdGFnID0gQ01EVEFHX1VOS05PV047CiAJCQl9 CkBAIC0zMjI1LDYgKzMyMzcsMTAgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUp CiAJCQl9CiAJCQlicmVhazsKIAorCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQl0 YWcgPSBDTURUQUdfQ1JFQVRFX1ZBUklBQkxFOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJ CWVsb2coV0FSTklORywgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKIAkJCQkgKGludCkg bm9kZVRhZyhwYXJzZXRyZWUpKTsKQEAgLTM3NTksNiArMzc3NSwxMCBAQCBHZXRDb21tYW5kTG9n TGV2ZWwoTm9kZSAqcGFyc2V0cmVlKQogCQkJfQogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX0NyZWF0 ZVNlc3Npb25WYXJTdG10OgorCQkJbGV2ID0gTE9HU1RNVF9EREw7CisJCQlicmVhazsKKwogCQlk ZWZhdWx0OgogCQkJZWxvZyhXQVJOSU5HLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLAog CQkJCSAoaW50KSBub2RlVGFnKHBhcnNldHJlZSkpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2FjbC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jCmluZGV4IDU4M2Q2 ZTdmODkuLjE5MmM4MDQ3YjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMKQEAgLTMxLDYgKzMxLDcgQEAKICNp bmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RhYmxlc3Bh Y2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3Bn X3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUg ImNvbW1hbmRzL3Byb2NsYW5nLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdGFibGVzcGFjZS5oIgpA QCAtMTI5LDYgKzEzMCw4IEBAIHN0YXRpYyBBY2xNb2RlIGNvbnZlcnRfdHlwZV9wcml2X3N0cmlu Zyh0ZXh0ICpwcml2X3R5cGVfdGV4dCk7CiBzdGF0aWMgQWNsTW9kZSBjb252ZXJ0X3BhcmFtZXRl cl9wcml2X3N0cmluZyh0ZXh0ICpwcml2X3RleHQpOwogc3RhdGljIEFjbE1vZGUgY29udmVydF9s YXJnZW9iamVjdF9wcml2X3N0cmluZyh0ZXh0ICpwcml2X3RleHQpOwogc3RhdGljIEFjbE1vZGUg Y29udmVydF9yb2xlX3ByaXZfc3RyaW5nKHRleHQgKnByaXZfdHlwZV90ZXh0KTsKK3N0YXRpYyBP aWQJY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodGV4dCAqdmFybmFtZSk7CitzdGF0aWMg QWNsTW9kZSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmcodGV4dCAqcHJpdl90 eXBlX3RleHQpOwogc3RhdGljIEFjbFJlc3VsdCBwZ19yb2xlX2FjbGNoZWNrKE9pZCByb2xlX29p ZCwgT2lkIHJvbGVpZCwgQWNsTW9kZSBtb2RlKTsKIAogc3RhdGljIHZvaWQgUm9sZU1lbWJlcnNo aXBDYWNoZUNhbGxiYWNrKERhdHVtIGFyZywgaW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUp OwpAQCAtODUxLDYgKzg1NCwxMCBAQCBhY2xkZWZhdWx0KE9iamVjdFR5cGUgb2JqdHlwZSwgT2lk IG93bmVySWQpCiAJCQl3b3JsZF9kZWZhdWx0ID0gQUNMX05PX1JJR0hUUzsKIAkJCW93bmVyX2Rl ZmF1bHQgPSBBQ0xfQUxMX1JJR0hUU19QQVJBTUVURVJfQUNMOwogCQkJYnJlYWs7CisJCWNhc2Ug T0JKRUNUX1ZBUklBQkxFOgorCQkJd29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CisJCQlv d25lcl9kZWZhdWx0ID0gQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJCQlicmVhazsKIAkJZGVm YXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6ICVkIiwgKGlu dCkgb2JqdHlwZSk7CiAJCQl3b3JsZF9kZWZhdWx0ID0gQUNMX05PX1JJR0hUUzsJLyoga2VlcCBj b21waWxlciBxdWlldCAqLwpAQCAtOTQ4LDYgKzk1NSw5IEBAIGFjbGRlZmF1bHRfc3FsKFBHX0ZV TkNUSU9OX0FSR1MpCiAJCWNhc2UgJ1QnOgogCQkJb2JqdHlwZSA9IE9CSkVDVF9UWVBFOwogCQkJ YnJlYWs7CisJCWNhc2UgJ1YnOgorCQkJb2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCWJy ZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmplY3QgdHlw ZSBhYmJyZXZpYXRpb246ICVjIiwgb2JqdHlwZWMpOwogCX0KQEAgLTUwMTYsNiArNTAyNiwyMTcg QEAgcGdfcm9sZV9hY2xjaGVjayhPaWQgcm9sZV9vaWQsIE9pZCByb2xlaWQsIEFjbE1vZGUgbW9k ZSkKIAlyZXR1cm4gQUNMQ0hFQ0tfTk9fUFJJVjsKIH0KIAorLyoKKyAqIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSB2YXJpYW50cworICoJCVRoZXNlIGFyZSBhbGwgbmFtZWQgImhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSIgYXQgdGhlIFNRTCBsZXZlbC4KKyAqCQlUaGV5IHRh a2UgdmFyaW91cyBjb21iaW5hdGlvbnMgb2YgdmFyaWFibGUgbmFtZSwgdmFyaWFibGUgT0lELAor ICoJCXVzZXIgbmFtZSwgdXNlciBPSUQsIG9yIGltcGxpY2l0IHVzZXIgPSBjdXJyZW50X3VzZXIu CisgKgorICoJCVRoZSByZXN1bHQgaXMgYSBib29sZWFuIHZhbHVlOiB0cnVlIGlmIHVzZXIgaGFz IHRoZSBpbmRpY2F0ZWQKKyAqCQlwcml2aWxlZ2UsIGZhbHNlIGlmIG5vdCwgb3IgTlVMTCBpZiBz ZXNzaW9uIHZhcmlhYmxlIGRvZXNuJ3QKKyAqCQlleGlzdHMuCisgKi8KKworLyoKKyAqIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9uYW1lX25hbWUKKyAqCQlDaGVjayB1c2VyIHByaXZp bGVnZXMgb24gYSBzZXNzaW9uIHZhcmlhYmxlIGdpdmVuCisgKgkJbmFtZSB1c2VybmFtZSwgdGV4 dCBzZXNzaW9uIHZhcmlhYmxlIG5hbWUsIGFuZCB0ZXh0IHByaXYgbmFtZS4KKyAqLworRGF0dW0K K2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9uYW1lX25hbWUoUEdfRlVOQ1RJT05fQVJH UykKK3sKKwlOYW1lCQlyb2xlbmFtZSA9IFBHX0dFVEFSR19OQU1FKDApOworCXRleHQJICAgKnZh cm5hbWUgPSBQR19HRVRBUkdfVEVYVF9QUCgxKTsKKwl0ZXh0CSAgICpwcml2X3R5cGVfdGV4dCA9 IFBHX0dFVEFSR19URVhUX1BQKDIpOworCU9pZAkJCXJvbGVpZDsKKwlPaWQJCQl2YXJpZDsKKwlB Y2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9vbAkJaXNfbWlzc2luZyA9 IGZhbHNlOworCisJcm9sZWlkID0gZ2V0X3JvbGVfb2lkX29yX3B1YmxpYyhOYW1lU3RyKCpyb2xl bmFtZSkpOworCW1vZGUgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmcocHJp dl90eXBlX3RleHQpOworCXZhcmlkID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFy bmFtZSk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2tfZXh0KFZhcmlhYmxlUmVsYXRp b25JZCwgdmFyaWQsCisJCQkJCQkJCQlyb2xlaWQsIG1vZGUsCisJCQkJCQkJCQkmaXNfbWlzc2lu Zyk7CisKKwlpZiAoaXNfbWlzc2luZykKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVS Tl9CT09MKGFjbHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKiBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2VfbmFtZQorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBvbiBh IHNlc3Npb24gdmFyaWFibGUgZ2l2ZW4KKyAqCQl0ZXh0IHNlc3Npb24gdmFyaWFibGUgYW5kIHRl eHQgcHJpdiBuYW1lLgorICoJCWN1cnJlbnRfdXNlciBpcyBhc3N1bWVkCisgKi8KK0RhdHVtCito YXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfbmFtZShQR19GVU5DVElPTl9BUkdTKQorewor CXRleHQJICAgKnZhcm5hbWUgPSBQR19HRVRBUkdfVEVYVF9QUCgwKTsKKwl0ZXh0CSAgICpwcml2 X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDEpOworCU9pZAkJCXJvbGVpZDsKKwlPaWQJ CQl2YXJpZDsKKwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9vbAkJ aXNfbWlzc2luZyA9IGZhbHNlOworCisJcm9sZWlkID0gR2V0VXNlcklkKCk7CisJbW9kZSA9IGNv bnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisJdmFy aWQgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJuYW1lKTsKKworCWFjbHJlc3Vs dCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJ CQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZpc19taXNzaW5nKTsKKworCVBHX1JFVFVSTl9C T09MKGFjbHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKiBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2VfbmFtZV9pZAorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBvbiBh IHNlc3Npb24gdmFyaWFibGUgZ2l2ZW4KKyAqCQluYW1lIHVzZW5hbWUsIHNlc3Npb24gdmFyaWFi bGUgb2lkLCBhbmQgdGV4dCBwcml2IG5hbWUuCisgKi8KK0RhdHVtCitoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2VfbmFtZV9pZChQR19GVU5DVElPTl9BUkdTKQoreworCU5hbWUJCXVzZXJu YW1lID0gUEdfR0VUQVJHX05BTUUoMCk7CisJT2lkCQkJdmFyaWQgPSBQR19HRVRBUkdfT0lEKDEp OworCXRleHQJICAgKnByaXZfdHlwZV90ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAoMik7CisJT2lk CQkJcm9sZWlkOworCUFjbE1vZGUJCW1vZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlib29s CQlpc19taXNzaW5nID0gZmFsc2U7CisKKwlyb2xlaWQgPSBnZXRfcm9sZV9vaWRfb3JfcHVibGlj KE5hbWVTdHIoKnVzZXJuYW1lKSk7CisJbW9kZSA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9w cml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hl Y2tfZXh0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQlyb2xlaWQsIG1vZGUs CisJCQkJCQkJCQkmaXNfbWlzc2luZyk7CisKKwlpZiAoaXNfbWlzc2luZykKKwkJUEdfUkVUVVJO X05VTEwoKTsKKworCVBHX1JFVFVSTl9CT09MKGFjbHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9 CisKKy8qCisgKiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWQKKyAqCQlDaGVjayB1 c2VyIHByaXZpbGVnZXMgb24gYSBzZXNzaW9uIHZhcmlhYmxlIGdpdmVuCisgKgkJc2Vzc2lvbiB2 YXJpYWJsZSBvaWQsIGFuZCB0ZXh0IHByaXYgbmFtZS4KKyAqCQljdXJyZW50X3VzZXIgaXMgYXNz dW1lZAorICovCitEYXR1bQoraGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkKFBHX0ZV TkNUSU9OX0FSR1MpCit7CisJT2lkCQkJdmFyaWQgPSBQR19HRVRBUkdfT0lEKDApOworCXRleHQJ ICAgKnByaXZfdHlwZV90ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAoMSk7CisJT2lkCQkJcm9sZWlk OworCUFjbE1vZGUJCW1vZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19taXNz aW5nID0gZmFsc2U7CisKKwlyb2xlaWQgPSBHZXRVc2VySWQoKTsKKwltb2RlID0gY29udmVydF9z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0KTsKKworCWFjbHJlc3Vs dCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJ CQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZpc19taXNzaW5nKTsKKworCWlmIChpc19taXNz aW5nKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdfUkVUVVJOX0JPT0woYWNscmVzdWx0ID09 IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZV9pZF9uYW1lCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgc2Vzc2lvbiB2YXJpYWJs ZSBnaXZlbgorICoJCXJvbGVpZCwgdGV4dCBzZXNzaW9uIHZhcmlhYmxlIG5hbWUsIGFuZCB0ZXh0 IHByaXYgbmFtZS4KKyAqLworRGF0dW0KK2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9p ZF9uYW1lKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJT2lkCQkJcm9sZWlkID0gUEdfR0VUQVJHX09J RCgwKTsKKwl0ZXh0CSAgICp2YXJuYW1lID0gUEdfR0VUQVJHX1RFWFRfUFAoMSk7CisJdGV4dAkg ICAqcHJpdl90eXBlX3RleHQgPSBQR19HRVRBUkdfVEVYVF9QUCgyKTsKKwlPaWQJCQl2YXJpZDsK KwlBY2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9vbAkJaXNfbWlzc2lu ZyA9IGZhbHNlOworCisJbW9kZSA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0cmlu Zyhwcml2X3R5cGVfdGV4dCk7CisJdmFyaWQgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfbmFt ZSh2YXJuYW1lKTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFibGVS ZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZpc19t aXNzaW5nKTsKKworCWlmIChpc19taXNzaW5nKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdf UkVUVVJOX0JPT0woYWNscmVzdWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9pZF9pZAorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdl cyBvbiBhIHNlc3Npb24gdmFyaWFibGUgZ2l2ZW4KKyAqCQlyb2xlaWQsIHNlc3Npb24gdmFyaWFi bGUgb2lkLCBhbmQgdGV4dCBwcml2IG5hbWUuCisgKi8KK0RhdHVtCitoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2VfaWRfaWQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJCQlyb2xlaWQg PSBQR19HRVRBUkdfT0lEKDApOworCU9pZAkJCXZhcmlkID0gUEdfR0VUQVJHX09JRCgxKTsKKwl0 ZXh0CSAgICpwcml2X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDIpOworCUFjbE1vZGUJ CW1vZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19taXNzaW5nID0gZmFsc2U7 CisKKwltb2RlID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHByaXZfdHlw ZV90ZXh0KTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFibGVSZWxh dGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZpc19taXNz aW5nKTsKKworCWlmIChpc19taXNzaW5nKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdfUkVU VVJOX0JPT0woYWNscmVzdWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIEdpdmVuIGEg c2Vzc2lvbiB2YXJpYWJsZSBuYW1lIGV4cHJlc3NlZCBhcyBhIHN0cmluZywgbG9vayBpdCB1cCBh bmQgcmV0dXJuCisgKiBPaWQKKyAqLworc3RhdGljIE9pZAorY29udmVydF9zZXNzaW9uX3Zhcmlh YmxlX25hbWUodGV4dCAqdmFybmFtZSkKK3sKKwlyZXR1cm4gTG9va3VwVmFyaWFibGVGcm9tTmFt ZUxpc3QodGV4dFRvUXVhbGlmaWVkTmFtZUxpc3QodmFybmFtZSksIHRydWUpOworfQorCisvKgor ICogY29udmVydF92YXJpYWJsZV9wcml2X3N0cmluZworICoJCUNvbnZlcnQgdGV4dCBzdHJpbmcg dG8gQWNsTW9kZSB2YWx1ZS4KKyAqLworc3RhdGljIEFjbE1vZGUKK2NvbnZlcnRfc2Vzc2lvbl92 YXJpYWJsZV9wcml2X3N0cmluZyh0ZXh0ICpwcml2X3R5cGVfdGV4dCkKK3sKKwlzdGF0aWMgY29u c3QgcHJpdl9tYXAgc2Vzc2lvbl92YXJpYWJsZV9wcml2X21hcFtdID0geworCQl7IlNFTEVDVCIs IEFDTF9TRUxFQ1R9LAorCQl7IlNFTEVDVCBXSVRIIEdSQU5UIE9QVElPTiIsIEFDTF9HUkFOVF9P UFRJT05fRk9SKEFDTF9TRUxFQ1QpfSwKKwkJeyJVUERBVEUiLCBBQ0xfVVBEQVRFfSwKKwkJeyJV UERBVEUgV0lUSCBHUkFOVCBPUFRJT04iLCBBQ0xfR1JBTlRfT1BUSU9OX0ZPUihBQ0xfVVBEQVRF KX0sCisJCXtOVUxMLCAwfQorCX07CisKKwlyZXR1cm4gY29udmVydF9hbnlfcHJpdl9zdHJpbmco cHJpdl90eXBlX3RleHQsIHNlc3Npb25fdmFyaWFibGVfcHJpdl9tYXApOworfQogCiAvKgogICog aW5pdGlhbGl6YXRpb24gZnVuY3Rpb24gKGNhbGxlZCBieSBJbml0UG9zdGdyZXMpCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2NhY2hlL2xzeXNjYWNoZS5jCmluZGV4IGE4NWRjMGQ4OTEuLmI0NjRhN2YwOTAgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyYW5zZm9y bS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdf dmFyaWFibGUuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJub2Rlcy9tYWtl ZnVuY3MuaCIKICNpbmNsdWRlICJ1dGlscy9hcnJheS5oIgpAQCAtMzcxNCwzICszNzE1LDExNSBA QCBnZXRfc3Vic2NyaXB0aW9uX25hbWUoT2lkIHN1YmlkLCBib29sIG1pc3Npbmdfb2spCiAKIAly ZXR1cm4gc3VibmFtZTsKIH0KKworLyoJCQkJLS0tLS0tLS0tLSBQR19WQVJJQUJMRSBDQUNIRSAt LS0tLS0tLS0tCQkJCSAqLworCisvKgorICogZ2V0X3Zhcm5hbWVfdmFyaWQKKyAqCQlHaXZlbiBu YW1lIGFuZCBuYW1lc3BhY2Ugb2YgdmFyaWFibGUsIGxvb2sgdXAgdGhlIE9JRC4KKyAqLworT2lk CitnZXRfdmFybmFtZV92YXJpZChjb25zdCBjaGFyICp2YXJuYW1lLCBPaWQgdmFybmFtZXNwYWNl KQoreworCXJldHVybiBHZXRTeXNDYWNoZU9pZDIoVkFSSUFCTEVOQU1FTlNQLCBBbnVtX3BnX3Zh cmlhYmxlX29pZCwKKwkJCQkJCSAgIFBvaW50ZXJHZXREYXR1bSh2YXJuYW1lKSwKKwkJCQkJCSAg IE9iamVjdElkR2V0RGF0dW0odmFybmFtZXNwYWNlKSk7Cit9CisKKy8qCisgKiBnZXRfc2Vzc2lv bl92YXJpYWJsZV9uYW1lCisgKgkJUmV0dXJucyBhIHBhbGxvYydkIGNvcHkgb2YgdGhlIG5hbWUg b2YgYSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlLgorICovCitjaGFyICoKK2dldF9zZXNzaW9uX3Zh cmlhYmxlX25hbWUoT2lkIHZhcmlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJp YWJsZSB2YXJmb3JtOworCWNoYXIJICAgKnZhcm5hbWU7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNo ZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1 cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Ig c2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJp YWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwl2YXJuYW1lID0gcHN0cmR1cChOYW1lU3RyKHZhcmZv cm0tPnZhcm5hbWUpKTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJcmV0dXJuIHZhcm5h bWU7Cit9CisKKy8qCisgKiBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UKKyAqCQlSZXR1 cm5zIHRoZSBwZ19uYW1lc3BhY2UgT0lEIGFzc29jaWF0ZWQgd2l0aCBhIGdpdmVuIHNlc3Npb24g dmFyaWFibGUuCisgKi8KK09pZAorZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKE9pZCB2 YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKwlP aWQJCQl2YXJuYW1lc3BhY2U7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQs IE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXAp KQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgdmFyaWFibGUgJXUiLCB2 YXJpZCk7CisKKwl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOwor CisJdmFybmFtZXNwYWNlID0gdmFyZm9ybS0+dmFybmFtZXNwYWNlOworCisJUmVsZWFzZVN5c0Nh Y2hlKHR1cCk7CisKKwlyZXR1cm4gdmFybmFtZXNwYWNlOworfQorCisvKgorICogUmV0dXJucyB0 aGUgdHlwZSBvZiB0aGUgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLworT2lkCitnZXRfc2Vz c2lvbl92YXJpYWJsZV90eXBlKE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1f cGdfdmFyaWFibGUgdmFyZm9ybTsKKwlPaWQJCQl2YXJ0eXBlOworCisJdHVwID0gU2VhcmNoU3lz Q2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAoIUhl YXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQg Zm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3JtID0gKEZvcm1fcGdf dmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJdmFydHlwZSA9IHZhcmZvcm0tPnZhcnR5cGU7 CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXJldHVybiB2YXJ0eXBlOworfQorCisvKgor ICogUmV0dXJucyB0aGUgdHlwZSwgdHlwbW9kIGFuZCBjb2xsaWQgb2YgdGhlIGdpdmVuIHNlc3Np b24gdmFyaWFibGUuCisgKi8KK3ZvaWQKK2dldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9k X2NvbGxpZChPaWQgdmFyaWQsIE9pZCAqdHlwaWQsIGludDMyICp0eXBtb2QsCisJCQkJCQkJCQkJ T2lkICpjb2xsaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZv cm07CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0 dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9S LCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsK KworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwkqdHlw aWQgPSB2YXJmb3JtLT52YXJ0eXBlOworCSp0eXBtb2QgPSB2YXJmb3JtLT52YXJ0eXBtb2Q7CisJ KmNvbGxpZCA9IHZhcmZvcm0tPnZhcmNvbGxhdGlvbjsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXAp OworfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jIGIvc3JjL2Jpbi9wZ19k dW1wL2NvbW1vbi5jCmluZGV4IDMzZDMyMzA4NWYuLmIwNDUxYzFiOTAgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfZHVtcC9jb21tb24uYworKysgYi9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKQEAg LTI0Niw2ICsyNDYsOSBAQCBnZXRTY2hlbWFEYXRhKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFi bGVzUHRyKQogCXBnX2xvZ19pbmZvKCJyZWFkaW5nIHN1YnNjcmlwdGlvbiBtZW1iZXJzaGlwIG9m IHRhYmxlcyIpOwogCWdldFN1YnNjcmlwdGlvblRhYmxlcyhmb3V0KTsKIAorCXBnX2xvZ19pbmZv KCJyZWFkaW5nIHZhcmlhYmxlcyIpOworCWdldFZhcmlhYmxlcyhmb3V0KTsKKwogCWZyZWUoaW5o aW5mbyk7CQkJCS8qIG5vdCBuZWVkZWQgYW55IGxvbmdlciAqLwogCiAJKm51bVRhYmxlc1B0ciA9 IG51bVRhYmxlczsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9kdW1wdXRpbHMuYyBiL3Ny Yy9iaW4vcGdfZHVtcC9kdW1wdXRpbHMuYwppbmRleCA1NjQ5ODU5YWExLi41MGRlNWQwZWEyIDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvZHVtcHV0aWxzLmMKKysrIGIvc3JjL2Jpbi9wZ19k dW1wL2R1bXB1dGlscy5jCkBAIC01MTEsNiArNTExLDEyIEBAIGRvIHsgXAogCQlDT05WRVJUX1BS SVYoJ3InLCAiU0VMRUNUIik7CiAJCUNPTlZFUlRfUFJJVigndycsICJVUERBVEUiKTsKIAl9CisJ ZWxzZSBpZiAoc3RyY21wKHR5cGUsICJWQVJJQUJMRSIpID09IDAgfHwKKwkJCSBzdHJjbXAodHlw ZSwgIlZBUklBQkxFUyIpID09IDApCisJeworCQlDT05WRVJUX1BSSVYoJ3InLCAiU0VMRUNUIik7 CisJCUNPTlZFUlRfUFJJVigndycsICJVUERBVEUiKTsKKwl9CiAJZWxzZQogCQlhYm9ydCgpOwog CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmggYi9zcmMvYmluL3BnX2R1 bXAvcGdfYmFja3VwLmgKaW5kZXggZjBmMTliYjBiMi4uNDRlZWQwM2EyZiAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNr dXAuaApAQCAtMTMyLDEyICsxMzIsMTQgQEAgdHlwZWRlZiBzdHJ1Y3QgX3Jlc3RvcmVPcHRpb25z CiAJaW50CQkJc2VsRnVuY3Rpb247CiAJaW50CQkJc2VsVHJpZ2dlcjsKIAlpbnQJCQlzZWxUYWJs ZTsKKwlpbnQJCQlzZWxWYXJpYWJsZTsKIAlTaW1wbGVTdHJpbmdMaXN0IGluZGV4TmFtZXM7CiAJ U2ltcGxlU3RyaW5nTGlzdCBmdW5jdGlvbk5hbWVzOwogCVNpbXBsZVN0cmluZ0xpc3Qgc2NoZW1h TmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCBzY2hlbWFFeGNsdWRlTmFtZXM7CiAJU2ltcGxlU3Ry aW5nTGlzdCB0cmlnZ2VyTmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCB0YWJsZU5hbWVzOworCVNp bXBsZVN0cmluZ0xpc3QgdmFyaWFibGVOYW1lczsKIAogCWludAkJCXVzZURCOwogCUNvbm5QYXJh bXMJY3BhcmFtczsJCS8qIHBhcmFtZXRlcnMgdG8gdXNlIGlmIHVzZURCICovCmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMgYi9zcmMvYmluL3BnX2R1bXAv cGdfYmFja3VwX2FyY2hpdmVyLmMKaW5kZXggNzA3YTNmYzg0NC4uYWZhYmU1ZmU0OSAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCisrKyBiL3NyYy9iaW4v cGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwpAQCAtMzEwMiw2ICszMTAyLDE0IEBAIF90b2NF bnRyeVJlcXVpcmVkKFRvY0VudHJ5ICp0ZSwgdGVTZWN0aW9uIGN1clNlY3Rpb24sIEFyY2hpdmVI YW5kbGUgKkFIKQogCQkJCQkhc2ltcGxlX3N0cmluZ19saXN0X21lbWJlcigmcm9wdC0+dHJpZ2dl ck5hbWVzLCB0ZS0+dGFnKSkKIAkJCQkJcmV0dXJuIDA7CiAJCQl9CisJCQllbHNlIGlmIChzdHJj bXAodGUtPmRlc2MsICJWQVJJQUJMRSIpID09IDApCisJCQl7CisJCQkJaWYgKCFyb3B0LT5zZWxW YXJpYWJsZSkKKwkJCQkJcmV0dXJuIDA7CisJCQkJaWYgKHJvcHQtPnZhcmlhYmxlTmFtZXMuaGVh ZCAhPSBOVUxMICYmCisJCQkJCSFzaW1wbGVfc3RyaW5nX2xpc3RfbWVtYmVyKCZyb3B0LT52YXJp YWJsZU5hbWVzLCB0ZS0+dGFnKSkKKwkJCQkJcmV0dXJuIDA7CisJCQl9CiAJCQllbHNlCiAJCQkJ cmV0dXJuIDA7CiAJCX0KQEAgLTM2NTEsNiArMzY1OSw3IEBAIF9nZXRPYmplY3REZXNjcmlwdGlv bihQUUV4cEJ1ZmZlciBidWYsIGNvbnN0IFRvY0VudHJ5ICp0ZSkKIAkJc3RyY21wKHR5cGUsICJU RVhUIFNFQVJDSCBESUNUSU9OQVJZIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIlRFWFQgU0VB UkNIIENPTkZJR1VSQVRJT04iKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiVFlQRSIpID09IDAg fHwKKwkJc3RyY21wKHR5cGUsICJWQVJJQUJMRSIpID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJW SUVXIikgPT0gMCB8fAogCS8qIG5vbi1zY2hlbWEtc3BlY2lmaWVkIG9iamVjdHMgKi8KIAkJc3Ry Y21wKHR5cGUsICJEQVRBQkFTRSIpID09IDAgfHwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDE5OTY5ZTQwMGYu LmEwYjM5ZDEzZjEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtMzYzLDYgKzM2Myw3IEBAIHN0YXRpYyB2b2lk IGR1bXBQdWJsaWNhdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBQdWJsaWNhdGlvbkluZm8gKnB1 YmluZm8pOwogc3RhdGljIHZvaWQgZHVtcFB1YmxpY2F0aW9uVGFibGUoQXJjaGl2ZSAqZm91dCwg Y29uc3QgUHVibGljYXRpb25SZWxJbmZvICpwdWJyaW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wU3Vi c2NyaXB0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFN1YnNjcmlwdGlvbkluZm8gKnN1YmluZm8p Owogc3RhdGljIHZvaWQgZHVtcFN1YnNjcmlwdGlvblRhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0 IFN1YlJlbEluZm8gKnN1YnJpbmZvKTsKK3N0YXRpYyB2b2lkIGR1bXBWYXJpYWJsZShBcmNoaXZl ICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pOwogc3RhdGljIHZvaWQgZHVtcERh dGFiYXNlKEFyY2hpdmUgKmZvdXQpOwogc3RhdGljIHZvaWQgZHVtcERhdGFiYXNlQ29uZmlnKEFy Y2hpdmUgKkFILCBQUUV4cEJ1ZmZlciBvdXRidWYsCiAJCQkJCQkJICAgY29uc3QgY2hhciAqZGJu YW1lLCBPaWQgZGJvaWQpOwpAQCAtNTQxOSw2ICs1NDIwLDE5MCBAQCBnZXRfbmV4dF9wb3NzaWJs ZV9mcmVlX3BnX3R5cGVfb2lkKEFyY2hpdmUgKmZvdXQsIFBRRXhwQnVmZmVyIHVwZ3JhZGVfcXVl cnkpCiAJcmV0dXJuIG5leHRfcG9zc2libGVfZnJlZV9vaWQ7CiB9CiAKKy8qCisgKiBnZXRWYXJp YWJsZXMKKyAqCSAgZ2V0IGluZm9ybWF0aW9uIGFib3V0IHZhcmlhYmxlcworICovCit2b2lkCitn ZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKK3sKKwlQUUV4cEJ1ZmZlciBxdWVyeTsKKwlQR3Jl c3VsdCAgICpyZXM7CisJVmFyaWFibGVJbmZvICp2YXJpbmZvOworCWludAkJCWlfdGFibGVvaWQ7 CisJaW50CQkJaV9vaWQ7CisJaW50CQkJaV92YXJuYW1lOworCWludAkJCWlfdmFybmFtZXNwYWNl OworCWludAkJCWlfdmFydHlwZTsKKwlpbnQJCQlpX3ZhcnR5cG5hbWU7CisJaW50CQkJaV92YXJv d25lcjsKKwlpbnQJCQlpX3ZhcmNvbGxhdGlvbjsKKwlpbnQJCQlpX3ZhcmFjbDsKKwlpbnQJCQlp X2FjbGRlZmF1bHQ7CisJaW50CQkJaSwKKwkJCQludHVwczsKKworCWlmIChmb3V0LT5yZW1vdGVW ZXJzaW9uIDwgMTgwMDAwKQorCQlyZXR1cm47CisKKwlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVy KCk7CisKKwlyZXNldFBRRXhwQnVmZmVyKHF1ZXJ5KTsKKworCS8qIGdldCB0aGUgdmFyaWFibGVz IGluIGN1cnJlbnQgZGF0YWJhc2UgKi8KKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKKwkJCQkJ ICAiU0VMRUNUIHYudGFibGVvaWQsIHYub2lkLCB2LnZhcm5hbWUsXG4iCisJCQkJCSAgIiAgICAg ICB2LnZhcm5hbWVzcGFjZSwgdi52YXJ0eXBlLFxuIgorCQkJCQkgICIgICAgICAgcGdfY2F0YWxv Zy5mb3JtYXRfdHlwZSh2LnZhcnR5cGUsIHYudmFydHlwbW9kKSBhcyB2YXJ0eXBuYW1lLFxuIgor CQkJCQkgICIgICAgICAgQ0FTRSBXSEVOIHYudmFyY29sbGF0aW9uIDw+IHQudHlwY29sbGF0aW9u ICIKKwkJCQkJICAiICAgICAgICAgICAgVEhFTiB2LnZhcmNvbGxhdGlvblxuIgorCQkJCQkgICIg ICAgICAgICAgICBFTFNFIDBcbiIKKwkJCQkJICAiICAgICAgIEVORCBBUyB2YXJjb2xsYXRpb24s XG4iCisJCQkJCSAgIiAgICAgICB2LnZhcm93bmVyLCB2LnZhcmFjbCxcbiIKKwkJCQkJICAiICAg ICAgIGFjbGRlZmF1bHQoJ1YnLCB2LnZhcm93bmVyKSBBUyBhY2xkZWZhdWx0XG4iCisJCQkJCSAg IkZST00gcGdfY2F0YWxvZy5wZ192YXJpYWJsZSB2XG4iCisJCQkJCSAgIkpPSU4gcGdfY2F0YWxv Zy5wZ190eXBlIHQgIgorCQkJCQkgICJPTiAodi52YXJ0eXBlID0gdC5vaWQpIik7CisKKwlyZXMg PSBFeGVjdXRlU3FsUXVlcnkoZm91dCwgcXVlcnktPmRhdGEsIFBHUkVTX1RVUExFU19PSyk7CisK KwludHVwcyA9IFBRbnR1cGxlcyhyZXMpOworCisJaV90YWJsZW9pZCA9IFBRZm51bWJlcihyZXMs ICJ0YWJsZW9pZCIpOworCWlfb2lkID0gUFFmbnVtYmVyKHJlcywgIm9pZCIpOworCWlfdmFybmFt ZSA9IFBRZm51bWJlcihyZXMsICJ2YXJuYW1lIik7CisJaV92YXJuYW1lc3BhY2UgPSBQUWZudW1i ZXIocmVzLCAidmFybmFtZXNwYWNlIik7CisJaV92YXJ0eXBlID0gUFFmbnVtYmVyKHJlcywgInZh cnR5cGUiKTsKKwlpX3ZhcnR5cG5hbWUgPSBQUWZudW1iZXIocmVzLCAidmFydHlwbmFtZSIpOwor CWlfdmFyY29sbGF0aW9uID0gUFFmbnVtYmVyKHJlcywgInZhcmNvbGxhdGlvbiIpOworCisJaV92 YXJvd25lciA9IFBRZm51bWJlcihyZXMsICJ2YXJvd25lciIpOworCWlfdmFyYWNsID0gUFFmbnVt YmVyKHJlcywgInZhcmFjbCIpOworCWlfYWNsZGVmYXVsdCA9IFBRZm51bWJlcihyZXMsICJhY2xk ZWZhdWx0Iik7CisKKwl2YXJpbmZvID0gcGdfbWFsbG9jKG50dXBzICogc2l6ZW9mKFZhcmlhYmxl SW5mbykpOworCisJZm9yIChpID0gMDsgaSA8IG50dXBzOyBpKyspCisJeworCQlUeXBlSW5mbyAg ICp2dHlwZTsKKworCQl2YXJpbmZvW2ldLmRvYmoub2JqVHlwZSA9IERPX1ZBUklBQkxFOworCQl2 YXJpbmZvW2ldLmRvYmouY2F0SWQudGFibGVvaWQgPQorCQkJYXRvb2lkKFBRZ2V0dmFsdWUocmVz LCBpLCBpX3RhYmxlb2lkKSk7CisJCXZhcmluZm9baV0uZG9iai5jYXRJZC5vaWQgPSBhdG9vaWQo UFFnZXR2YWx1ZShyZXMsIGksIGlfb2lkKSk7CisJCUFzc2lnbkR1bXBJZCgmdmFyaW5mb1tpXS5k b2JqKTsKKwkJdmFyaW5mb1tpXS5kb2JqLm5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMs IGksIGlfdmFybmFtZSkpOworCQl2YXJpbmZvW2ldLmRvYmoubmFtZXNwYWNlID0KKwkJCWZpbmRO YW1lc3BhY2UoYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zhcm5hbWVzcGFjZSkpKTsKKwor CQl2YXJpbmZvW2ldLnZhcnR5cGUgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFydHlw ZSkpOworCQl2YXJpbmZvW2ldLnZhcnR5cG5hbWUgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMs IGksIGlfdmFydHlwbmFtZSkpOworCQl2YXJpbmZvW2ldLnZhcmNvbGxhdGlvbiA9IGF0b29pZChQ UWdldHZhbHVlKHJlcywgaSwgaV92YXJjb2xsYXRpb24pKTsKKworCQl2YXJpbmZvW2ldLmRhY2wu YWNsID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmFjbCkpOworCQl2YXJpbmZv W2ldLmRhY2wuYWNsZGVmYXVsdCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9hY2xk ZWZhdWx0KSk7CisJCXZhcmluZm9baV0uZGFjbC5wcml2dHlwZSA9IDA7CisJCXZhcmluZm9baV0u ZGFjbC5pbml0cHJpdnMgPSBOVUxMOworCQl2YXJpbmZvW2ldLnJvbG5hbWUgPSBnZXRSb2xlTmFt ZShQUWdldHZhbHVlKHJlcywgaSwgaV92YXJvd25lcikpOworCisJCS8qIGRvIG5vdCB0cnkgdG8g ZHVtcCBBQ0wgaWYgbm8gQUNMIGV4aXN0cyAqLworCQlpZiAoIVBRZ2V0aXNudWxsKHJlcywgaSwg aV92YXJhY2wpKQorCQkJdmFyaW5mb1tpXS5kb2JqLmNvbXBvbmVudHMgfD0gRFVNUF9DT01QT05F TlRfQUNMOworCisJCWlmIChzdHJsZW4odmFyaW5mb1tpXS5yb2xuYW1lKSA9PSAwKQorCQkJcGdf bG9nX3dhcm5pbmcoIm93bmVyIG9mIHZhcmlhYmxlIFwiJXNcIiBhcHBlYXJzIHRvIGJlIGludmFs aWQiLAorCQkJCQkJICAgdmFyaW5mb1tpXS5kb2JqLm5hbWUpOworCisJCS8qIGRlY2lkZSB3aGV0 aGVyIHdlIHdhbnQgdG8gZHVtcCBpdCAqLworCQlzZWxlY3REdW1wYWJsZU9iamVjdCgmKHZhcmlu Zm9baV0uZG9iaiksIGZvdXQpOworCisJCXZ0eXBlID0gZmluZFR5cGVCeU9pZCh2YXJpbmZvW2ld LnZhcnR5cGUpOworCQlhZGRPYmplY3REZXBlbmRlbmN5KCZ2YXJpbmZvW2ldLmRvYmosIHZ0eXBl LT5kb2JqLmR1bXBJZCk7CisJfQorCVBRY2xlYXIocmVzKTsKKworCWRlc3Ryb3lQUUV4cEJ1ZmZl cihxdWVyeSk7Cit9CisKKy8qCisgKiBkdW1wVmFyaWFibGUKKyAqCSAgZHVtcCB0aGUgZGVmaW5p dGlvbiBvZiB0aGUgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZQorICovCitzdGF0aWMgdm9pZAorZHVt cFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKK3sK KwlEdW1wT3B0aW9ucyAqZG9wdCA9IGZvdXQtPmRvcHQ7CisKKwlQUUV4cEJ1ZmZlciBkZWxxOwor CVBRRXhwQnVmZmVyIHF1ZXJ5OworCWNoYXIJICAgKnF1YWx2YXJuYW1lOworCWNvbnN0IGNoYXIg KnZhcnR5cG5hbWU7CisJT2lkCQkJdmFyY29sbGF0aW9uOworCisJLyogc2tpcCBpZiBub3QgdG8g YmUgZHVtcGVkICovCisJaWYgKCF2YXJpbmZvLT5kb2JqLmR1bXAgfHwgIWRvcHQtPmR1bXBTY2hl bWEpCisJCXJldHVybjsKKworCWRlbHEgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCXF1ZXJ5ID0g Y3JlYXRlUFFFeHBCdWZmZXIoKTsKKworCXF1YWx2YXJuYW1lID0gcGdfc3RyZHVwKGZtdFF1YWxp ZmllZER1bXBhYmxlKHZhcmluZm8pKTsKKwl2YXJ0eXBuYW1lID0gdmFyaW5mby0+dmFydHlwbmFt ZTsKKwl2YXJjb2xsYXRpb24gPSB2YXJpbmZvLT52YXJjb2xsYXRpb247CisKKwlhcHBlbmRQUUV4 cEJ1ZmZlcihkZWxxLCAiRFJPUCBWQVJJQUJMRSAlcztcbiIsCisJCQkJCSAgcXVhbHZhcm5hbWUp OworCisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgVkFSSUFCTEUgJXMgQVMgJXMi LAorCQkJCQkgIHF1YWx2YXJuYW1lLCB2YXJ0eXBuYW1lKTsKKworCWlmIChPaWRJc1ZhbGlkKHZh cmNvbGxhdGlvbikpCisJeworCQlDb2xsSW5mbyAgICpjb2xsOworCisJCWNvbGwgPSBmaW5kQ29s bGF0aW9uQnlPaWQodmFyY29sbGF0aW9uKTsKKwkJaWYgKGNvbGwpCisJCQlhcHBlbmRQUUV4cEJ1 ZmZlcihxdWVyeSwgIiBDT0xMQVRFICVzIiwKKwkJCQkJCQkgIGZtdFF1YWxpZmllZER1bXBhYmxl KGNvbGwpKTsKKwl9CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIjtcbiIpOworCisJaWYg KHZhcmluZm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0RFRklOSVRJT04pCisJCUFyY2hp dmVFbnRyeShmb3V0LCB2YXJpbmZvLT5kb2JqLmNhdElkLCB2YXJpbmZvLT5kb2JqLmR1bXBJZCwK KwkJCQkJIEFSQ0hJVkVfT1BUUygudGFnID0gdmFyaW5mby0+ZG9iai5uYW1lLAorCQkJCQkJCQkg IC5uYW1lc3BhY2UgPSB2YXJpbmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9iai5uYW1lLAorCQkJCQkJ CQkgIC5vd25lciA9IHZhcmluZm8tPnJvbG5hbWUsCisJCQkJCQkJCSAgLmRlc2NyaXB0aW9uID0g IlZBUklBQkxFIiwKKwkJCQkJCQkJICAuc2VjdGlvbiA9IFNFQ1RJT05fUFJFX0RBVEEsCisJCQkJ CQkJCSAgLmNyZWF0ZVN0bXQgPSBxdWVyeS0+ZGF0YSwKKwkJCQkJCQkJICAuZHJvcFN0bXQgPSBk ZWxxLT5kYXRhKSk7CisKKwkvKiBkdW1wIGNvbW1lbnQgaWYgYW55ICovCisJaWYgKHZhcmluZm8t PmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0NPTU1FTlQpCisJCWR1bXBDb21tZW50KGZvdXQs ICJWQVJJQUJMRSIsIHF1YWx2YXJuYW1lLAorCQkJCQlOVUxMLCB2YXJpbmZvLT5yb2xuYW1lLAor CQkJCQl2YXJpbmZvLT5kb2JqLmNhdElkLCAwLCB2YXJpbmZvLT5kb2JqLmR1bXBJZCk7CisKKwkv KiBkdW1wIEFDTCBpZiBhbnkgKi8KKwlpZiAodmFyaW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01Q T05FTlRfQUNMKQorCXsKKwkJY2hhcgkgICAqcXZhcm5hbWUgPSBwZ19zdHJkdXAoZm10SWQodmFy aW5mby0+ZG9iai5uYW1lKSk7CisKKwkJZHVtcEFDTChmb3V0LCB2YXJpbmZvLT5kb2JqLmR1bXBJ ZCwgSW52YWxpZER1bXBJZCwgIlZBUklBQkxFIiwKKwkJCQlxdmFybmFtZSwgTlVMTCwKKwkJCQl2 YXJpbmZvLT5kb2JqLm5hbWVzcGFjZS0+ZG9iai5uYW1lLCBOVUxMLCB2YXJpbmZvLT5yb2xuYW1l LAorCQkJCSZ2YXJpbmZvLT5kYWNsKTsKKworCQlmcmVlKHF2YXJuYW1lKTsKKwl9CisKKwlkZXN0 cm95UFFFeHBCdWZmZXIoZGVscSk7CisJZGVzdHJveVBRRXhwQnVmZmVyKHF1ZXJ5KTsKKworCWZy ZWUocXVhbHZhcm5hbWUpOworfQorCiBzdGF0aWMgdm9pZAogYmluYXJ5X3VwZ3JhZGVfc2V0X3R5 cGVfb2lkc19ieV90eXBlX29pZChBcmNoaXZlICpmb3V0LAogCQkJCQkJCQkJCSBQUUV4cEJ1ZmZl ciB1cGdyYWRlX2J1ZmZlciwKQEAgLTEwMTQ1LDcgKzEwMzMwLDggQEAgZ2V0QWRkaXRpb25hbEFD THMoQXJjaGl2ZSAqZm91dCkKIAkJCQkJZG9iai0+b2JqVHlwZSA9PSBET19UQUJMRSB8fAogCQkJ CQlkb2JqLT5vYmpUeXBlID09IERPX1BST0NMQU5HIHx8CiAJCQkJCWRvYmotPm9ialR5cGUgPT0g RE9fRkRXIHx8Ci0JCQkJCWRvYmotPm9ialR5cGUgPT0gRE9fRk9SRUlHTl9TRVJWRVIpCisJCQkJ CWRvYmotPm9ialR5cGUgPT0gRE9fRk9SRUlHTl9TRVJWRVIgfHwKKwkJCQkJZG9iai0+b2JqVHlw ZSA9PSBET19WQVJJQUJMRSkKIAkJCQl7CiAJCQkJCUR1bXBhYmxlT2JqZWN0V2l0aEFjbCAqZGFv YmogPSAoRHVtcGFibGVPYmplY3RXaXRoQWNsICopIGRvYmo7CiAKQEAgLTEwNzQ0LDYgKzEwOTMw LDkgQEAgZHVtcER1bXBhYmxlT2JqZWN0KEFyY2hpdmUgKmZvdXQsIER1bXBhYmxlT2JqZWN0ICpk b2JqKQogCQljYXNlIERPX1NVQlNDUklQVElPTl9SRUw6CiAJCQlkdW1wU3Vic2NyaXB0aW9uVGFi bGUoZm91dCwgKGNvbnN0IFN1YlJlbEluZm8gKikgZG9iaik7CiAJCQlicmVhazsKKwkJY2FzZSBE T19WQVJJQUJMRToKKwkJCWR1bXBWYXJpYWJsZShmb3V0LCAoVmFyaWFibGVJbmZvICopIGRvYmop OworCQkJYnJlYWs7CiAJCWNhc2UgRE9fUFJFX0RBVEFfQk9VTkRBUlk6CiAJCWNhc2UgRE9fUE9T VF9EQVRBX0JPVU5EQVJZOgogCQkJLyogbmV2ZXIgZHVtcGVkLCBub3RoaW5nIHRvIGRvICovCkBA IC0xNTE5NSw2ICsxNTM4NCw5IEBAIGR1bXBEZWZhdWx0QUNMKEFyY2hpdmUgKmZvdXQsIGNvbnN0 IERlZmF1bHRBQ0xJbmZvICpkYWNsaW5mbykKIAkJY2FzZSBERUZBQ0xPQkpfTkFNRVNQQUNFOgog CQkJdHlwZSA9ICJTQ0hFTUFTIjsKIAkJCWJyZWFrOworCQljYXNlIERFRkFDTE9CSl9WQVJJQUJM RToKKwkJCXR5cGUgPSAiVkFSSUFCTEVTIjsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJLyog c2hvdWxkbid0IGdldCBoZXJlICovCiAJCQlwZ19mYXRhbCgidW5yZWNvZ25pemVkIG9iamVjdCB0 eXBlIGluIGRlZmF1bHQgcHJpdmlsZWdlczogJWQiLApAQCAtMTg5MTQsNiArMTkxMDYsNyBAQCBh ZGRCb3VuZGFyeURlcGVuZGVuY2llcyhEdW1wYWJsZU9iamVjdCAqKmRvYmpzLCBpbnQgbnVtT2Jq cywKIAkJCWNhc2UgRE9fQ09OVkVSU0lPTjoKIAkJCWNhc2UgRE9fVEFCTEU6CiAJCQljYXNlIERP X1RBQkxFX0FUVEFDSDoKKwkJCWNhc2UgRE9fVkFSSUFCTEU6CiAJCQljYXNlIERPX0FUVFJERUY6 CiAJCQljYXNlIERPX1BST0NMQU5HOgogCQkJY2FzZSBET19DQVNUOgpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXgg OWM1ZGRkMjBjZi4uZTQ2MmQzMjJmZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC01Miw2ICs1Miw3IEBAIHR5 cGVkZWYgZW51bQogCURPX1RBQkxFLAogCURPX1RBQkxFX0FUVEFDSCwKIAlET19BVFRSREVGLAor CURPX1ZBUklBQkxFLAogCURPX0lOREVYLAogCURPX0lOREVYX0FUVEFDSCwKIAlET19TVEFUU0VY VCwKQEAgLTcwNyw2ICs3MDgsMjMgQEAgdHlwZWRlZiBzdHJ1Y3QgX1N1YlJlbEluZm8KIAljaGFy CSAgICpzcnN1YmxzbjsKIH0gU3ViUmVsSW5mbzsKIAorLyoKKyAqIFRoZSBWYXJpYWJsZUluZm8g c3RydWN0IGlzIHVzZWQgdG8gcmVwcmVzZW50IHNlc3Npb24gdmFyaWFibGVzCisgKi8KK3R5cGVk ZWYgc3RydWN0IF9WYXJpYWJsZUluZm8KK3sKKwlEdW1wYWJsZU9iamVjdCBkb2JqOworCUR1bXBh YmxlQWNsIGRhY2w7CisJT2lkCQkJdmFydHlwZTsKKwljaGFyCSAgICp2YXJ0eXBuYW1lOworCWNo YXIJICAgKnZhcmFjbDsKKwljaGFyCSAgICpydmFyYWNsOworCWNoYXIJICAgKmluaXR2YXJhY2w7 CisJY2hhcgkgICAqaW5pdHJ2YXJhY2w7CisJT2lkCQkJdmFyY29sbGF0aW9uOworCWNvbnN0IGNo YXIgKnJvbG5hbWU7CQkvKiBuYW1lIG9mIG93bmVyLCBvciBlbXB0eSBzdHJpbmcgKi8KK30gVmFy aWFibGVJbmZvOworCiAvKgogICoJY29tbW9uIHV0aWxpdHkgZnVuY3Rpb25zCiAgKi8KQEAgLTc5 MCw1ICs4MDgsNiBAQCBleHRlcm4gdm9pZCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpm b3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLAogCQkJCQkJCQkgaW50IG51bVRhYmxlcyk7CiBleHRl cm4gdm9pZCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQpOwogZXh0ZXJuIHZvaWQgZ2V0 U3Vic2NyaXB0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQpOworZXh0ZXJuIHZvaWQgZ2V0VmFyaWFi bGVzKEFyY2hpdmUgKmZvdXQpOwogCiAjZW5kaWYJCQkJCQkJLyogUEdfRFVNUF9IICovCmRpZmYg LS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMgYi9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcF9zb3J0LmMKaW5kZXggM2M4ZjJlYjgwOC4uY2EzMjMxNzFhYSAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wX3NvcnQuYwpAQCAtNzcsNiArNzcsNyBAQCBlbnVtIGRiT2JqZWN0VHlwZVByaW9yaXRpZXMK IAlQUklPX0RVTU1ZX1RZUEUsCiAJUFJJT19BVFRSREVGLAogCVBSSU9fTEFSR0VfT0JKRUNULAor CVBSSU9fVkFSSUFCTEUsCiAJUFJJT19QUkVfREFUQV9CT1VOREFSWSwJCS8qIGJvdW5kYXJ5ISAq LwogCVBSSU9fVEFCTEVfREFUQSwKIAlQUklPX1NFUVVFTkNFX1NFVCwKQEAgLTExOCw2ICsxMTks NyBAQCBzdGF0aWMgY29uc3QgaW50IGRiT2JqZWN0VHlwZVByaW9yaXR5W10gPQogCVtET19UQUJM RV0gPSBQUklPX1RBQkxFLAogCVtET19UQUJMRV9BVFRBQ0hdID0gUFJJT19UQUJMRV9BVFRBQ0gs CiAJW0RPX0FUVFJERUZdID0gUFJJT19BVFRSREVGLAorCVtET19WQVJJQUJMRV0gPSBQUklPX1ZB UklBQkxFLAogCVtET19JTkRFWF0gPSBQUklPX0lOREVYLAogCVtET19JTkRFWF9BVFRBQ0hdID0g UFJJT19JTkRFWF9BVFRBQ0gsCiAJW0RPX1NUQVRTRVhUXSA9IFBSSU9fU1RBVFNFWFQsCkBAIC0x NTAwLDYgKzE1MDIsMTAgQEAgZGVzY3JpYmVEdW1wYWJsZU9iamVjdChEdW1wYWJsZU9iamVjdCAq b2JqLCBjaGFyICpidWYsIGludCBidWZzaXplKQogCQkJCQkgIlBPU1QtREFUQSBCT1VOREFSWSAg KElEICVkKSIsCiAJCQkJCSBvYmotPmR1bXBJZCk7CiAJCQlyZXR1cm47CisJCWNhc2UgRE9fVkFS SUFCTEU6CisJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUsCisJCQkJCSAiVkFSSUFCTEUgJXMgIChJ RCAlZCBPSUQgJXUpIiwKKwkJCQkJIG9iai0+bmFtZSwgb2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQu b2lkKTsKIAl9CiAJLyogc2hvdWxkbid0IGdldCBoZXJlICovCiAJc25wcmludGYoYnVmLCBidWZz aXplLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgYi9zcmMv YmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCBhYTE1NjRjZDQ1Li5kZDhjMDU0YTZh IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMv YmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtNzg5LDYgKzc4OSwxNiBAQCBteSAldGVz dHMgPSAoCiAJCXVubGlrZSA9PiB7IG5vX3ByaXZzID0+IDEsIH0sCiAJICB9LAogCisJJ0FMVEVS IERFRkFVTFQgUFJJVklMRUdFUyBGT1IgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlIEdSQU5U IFNFTEVDVCBPTiBWQVJJQUJMRVMgVE8gUFVCTElDJworCSAgPT4geworCQljcmVhdGVfb3JkZXIg PT4gNTYsCisJCWNyZWF0ZV9zcWwgICA9PiAnQUxURVIgREVGQVVMVCBQUklWSUxFR0VTIEZPUiBS T0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUgR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFUyBUTyBQ VUJMSUM7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQUxURVIgREVGQVVMVCBQUklWSUxFR0VT IEZPUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUgR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxF UyBUTyBQVUJMSUM7XEUveG0sCisJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3Rf ZGF0YSA9PiAxLCB9LAorCQl1bmxpa2UgPT4geyBub19wcml2cyA9PiAxLCB9LAorCSAgfSwKKwog CSdBTFRFUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUnID0+IHsKIAkJcmVnZXhwID0+IHFy L14KIAkJCVxRQUxURVIgUk9MRSByZWdyZXNzX2R1bXBfdGVzdF9yb2xlIFdJVEggXEUKQEAgLTE2 NzQsNiArMTY4NCwyMyBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdDT01NRU5UIE9O IFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDcx LAorCQljcmVhdGVfc3FsICAgPT4gJ0NPTU1FTlQgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlh YmxlMQorCQkJCQkgICBJUyBcJ2NvbW1lbnQgb24gdmFyaWFibGVcJzsnLAorCQlyZWdleHAgPT4K KwkJICBxci9eXFFDT01NRU5UIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgSVMgJ2Nv bW1lbnQgb24gdmFyaWFibGUnO1xFL20sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJ CSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhICAgICA9PiAxLAor CQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJ CQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NPUFkgdGVz dF90YWJsZScgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNCwKIAkJY3JlYXRlX3NxbCA9PiAnSU5T RVJUIElOVE8gZHVtcF90ZXN0LnRlc3RfdGFibGUgKGNvbDEpICcKQEAgLTM5NDIsNiArMzk2OSwy NCBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdDUkVBVEUgVkFSSUFCTEUgdGVzdF92 YXJpYWJsZScgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0Y2hfYWxsICAgID0+ICdD UkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVhdGVfc3Fs ICAgPT4gJ0NSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxIEFTIGludGVnZXI7JywK KwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJs ZTEgQVMgaW50ZWdlcjtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1 bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJ dW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9k dW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDUkVBVEUgVklFVyB0ZXN0 X3ZpZXcnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDYxLAogCQljcmVhdGVfc3FsID0+ICdDUkVB VEUgVklFVyBkdW1wX3Rlc3QudGVzdF92aWV3CkBAIC00NDA0LDYgKzQ0NDksMjUgQEAgbXkgJXRl c3RzID0gKAogCQlsaWtlID0+IHt9LAogCX0sCiAKKwknR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxF IGR1bXBfdGVzdC52YXJpYWJsZTEnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDczLAorCQljcmVh dGVfc3FsID0+CisJCSAgJ0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFi bGUxIFRPIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGU7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxR R1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgVE8gcmVncmVzc19k dW1wX3Rlc3Rfcm9sZTtcRQorCQkJL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJ CQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9 LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlu b19wcml2cyAgICAgICAgICAgICAgICAgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAg ICA9PiAxLAorCQl9LAorCX0sCisKIAknUkVGUkVTSCBNQVRFUklBTElaRUQgVklFVyBtYXR2aWV3 JyA9PiB7CiAJCXJlZ2V4cCA9PiBxci9eXFFSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXIGR1bXBf dGVzdC5tYXR2aWV3O1xFL20sCiAJCWxpa2UgPT4KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9j b21tYW5kLmMgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCmluZGV4IGNkMTZmMjc5NDcuLjVlOGRi ZjExY2IgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKKysrIGIvc3JjL2Jpbi9w c3FsL2NvbW1hbmQuYwpAQCAtMTA3Nyw2ICsxMDc3LDkgQEAgZXhlY19jb21tYW5kX2QoUHNxbFNj YW5TdGF0ZSBzY2FuX3N0YXRlLCBib29sIGFjdGl2ZV9icmFuY2gsIGNvbnN0IGNoYXIgKmNtZCkK IAkJCQkJCWJyZWFrOwogCQkJCX0KIAkJCQlicmVhazsKKwkJCWNhc2UgJ1YnOgkJCS8qIFZhcmlh YmxlcyAqLworCQkJCXN1Y2Nlc3MgPSBsaXN0VmFyaWFibGVzKHBhdHRlcm4sIHNob3dfdmVyYm9z ZSk7CisJCQkJYnJlYWs7CiAJCQljYXNlICd4JzoJCQkvKiBFeHRlbnNpb25zICovCiAJCQkJaWYg KHNob3dfdmVyYm9zZSkKIAkJCQkJc3VjY2VzcyA9IGxpc3RFeHRlbnNpb25Db250ZW50cyhwYXR0 ZXJuKTsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmMKaW5kZXggMjY1N2FiZGM3Mi4uOTZkNTg1NTc4ZCAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTUy MzcsNiArNTIzNywxMDIgQEAgZXJyb3JfcmV0dXJuOgogCXJldHVybiBmYWxzZTsKIH0KIAorLyoK KyAqIFxkVgorICoKKyAqIGxpc3RWYXJpYWJsZXMoKQorICovCitib29sCitsaXN0VmFyaWFibGVz KGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKK3sKKwlQUUV4cEJ1ZmZlckRhdGEg YnVmOworCVBHcmVzdWx0ICAgKnJlczsKKwlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0 OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNl LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCisJaWYgKHBzZXQuc3ZlcnNp b24gPCAxODAwMDApCisJeworCQljaGFyCQlzdmVyYnVmWzMyXTsKKworCQlwZ19sb2dfZXJyb3Io IlRoZSBzZXJ2ZXIgKHZlcnNpb24gJXMpIGRvZXMgbm90IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJs ZXMuIiwKKwkJCQkJIGZvcm1hdFBHVmVyc2lvbk51bWJlcihwc2V0LnN2ZXJzaW9uLCBmYWxzZSwK KwkJCQkJCQkJCQkgICBzdmVyYnVmLCBzaXplb2Yoc3ZlcmJ1ZikpKTsKKwkJcmV0dXJuIHRydWU7 CisJfQorCisJaW5pdFBRRXhwQnVmZmVyKCZidWYpOworCisJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1 ZiwKKwkJCQkJICAiU0VMRUNUIG4ubnNwbmFtZSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgdi52 YXJuYW1lIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9nLmZvcm1hdF90eXBlKHYu dmFydHlwZSwgdi52YXJ0eXBtb2QpIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICAoU0VMRUNUIGMu Y29sbG5hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGxhdGlvbiBjLCBwZ19jYXRhbG9nLnBnX3R5 cGUgYnRcbiIKKwkJCQkJICAiICAgV0hFUkUgYy5vaWQgPSB2LnZhcmNvbGxhdGlvbiBBTkQgYnQu b2lkID0gdi52YXJ0eXBlIEFORCB2LnZhcmNvbGxhdGlvbiA8PiBidC50eXBjb2xsYXRpb24pIGFz IFwiJXNcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZCh2LnZhcm93 bmVyKSBhcyBcIiVzXCJcbiIsCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJTY2hlbWEiKSwKKwkJCQkJ ICBnZXR0ZXh0X25vb3AoIk5hbWUiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIlR5cGUiKSwKKwkJ CQkJICBnZXR0ZXh0X25vb3AoIkNvbGxhdGlvbiIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiT3du ZXIiKSk7CisKKwlpZiAodmVyYm9zZSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYs ICIsXG4gICIpOworCQlwcmludEFDTENvbHVtbigmYnVmLCAidi52YXJhY2wiKTsKKwkJYXBwZW5k UFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCSAgIixcbiAgcGdfY2F0YWxvZy5vYmpfZGVzY3JpcHRp b24odi5vaWQsICdwZ192YXJpYWJsZScpIEFTIFwiJXNcIiIsCisJCQkJCQkgIGdldHRleHRfbm9v cCgiRGVzY3JpcHRpb24iKSk7CisJfQorCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwKKwkJ CQkJCSAiXG5GUk9NIHBnX2NhdGFsb2cucGdfdmFyaWFibGUgdiIKKwkJCQkJCSAiXG4gICAgIExF RlQgSk9JTiBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBuIE9OIG4ub2lkID0gdi52YXJuYW1lc3Bh Y2UiKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJcbldIRVJFIHRydWVcbiIpOwor CWlmICghcGF0dGVybikKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIiAgICAgIEFORCBu Lm5zcG5hbWUgPD4gJ3BnX2NhdGFsb2cnXG4iCisJCQkJCQkJICIgICAgICBBTkQgbi5uc3BuYW1l IDw+ICdpbmZvcm1hdGlvbl9zY2hlbWEnXG4iKTsKKworCWlmICghdmFsaWRhdGVTUUxOYW1lUGF0 dGVybigmYnVmLCBwYXR0ZXJuLCB0cnVlLCBmYWxzZSwKKwkJCQkJCQkJIm4ubnNwbmFtZSIsICJ2 LnZhcm5hbWUiLCBOVUxMLAorCQkJCQkJCQkicGdfY2F0YWxvZy5wZ192YXJpYWJsZV9pc192aXNp YmxlKHYub2lkKSIsCisJCQkJCQkJCU5VTEwsIDMpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlhcHBl bmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiT1JERVIgQlkgMSwyOyIpOworCisJcmVzID0gUFNRTGV4 ZWMoYnVmLmRhdGEpOworCXRlcm1QUUV4cEJ1ZmZlcigmYnVmKTsKKwlpZiAoIXJlcykKKwkJcmV0 dXJuIGZhbHNlOworCisJLyoKKwkgKiBNb3N0IGZ1bmN0aW9ucyBpbiB0aGlzIGZpbGUgYXJlIGNv bnRlbnQgdG8gcHJpbnQgYW4gZW1wdHkgdGFibGUgd2hlbgorCSAqIHRoZXJlIGFyZSBubyBtYXRj aGluZyBvYmplY3RzLiAgV2UgaW50ZW50aW9uYWxseSBkZXZpYXRlIGZyb20gdGhhdAorCSAqIGhl cmUsIGJ1dCBvbmx5IGluICFxdWlldCBtb2RlLCBmb3IgaGlzdG9yaWNhbCByZWFzb25zLgorCSAq LworCWlmIChQUW50dXBsZXMocmVzKSA9PSAwICYmICFwc2V0LnF1aWV0KQorCXsKKwkJaWYgKHBh dHRlcm4pCisJCQlwZ19sb2dfZXJyb3IoIkRpZCBub3QgZmluZCBhbnkgc2Vzc2lvbiB2YXJpYWJs ZSBuYW1lZCBcIiVzXCIuIiwKKwkJCQkJCSBwYXR0ZXJuKTsKKwkJZWxzZQorCQkJcGdfbG9nX2Vy cm9yKCJEaWQgbm90IGZpbmQgYW55IHNlc3Npb24gdmFyaWFibGVzLiIpOworCX0KKwllbHNlCisJ eworCQlteW9wdC5udWxsUHJpbnQgPSBOVUxMOworCQlteW9wdC50aXRsZSA9IF8oIkxpc3Qgb2Yg dmFyaWFibGVzIik7CisJCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIgPSB0cnVlOworCQlteW9wdC50 cmFuc2xhdGVfY29sdW1ucyA9IHRyYW5zbGF0ZV9jb2x1bW5zOworCQlteW9wdC5uX3RyYW5zbGF0 ZV9jb2x1bW5zID0gbGVuZ3Rob2YodHJhbnNsYXRlX2NvbHVtbnMpOworCisJCXByaW50UXVlcnko cmVzLCAmbXlvcHQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dmaWxlKTsKKwl9CisK KwlQUWNsZWFyKHJlcyk7CisJcmV0dXJuIHRydWU7Cit9CiAKIC8qCiAgKiBcZEZwCmRpZmYgLS1n aXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaCBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oCmlu ZGV4IDI3M2Y5NzQ1MzguLjRlMTVhMTgwZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNj cmliZS5oCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oCkBAIC0xNDksNCArMTQ5LDcgQEAg ZXh0ZXJuIGJvb2wgbGlzdE9wRmFtaWx5RnVuY3Rpb25zKGNvbnN0IGNoYXIgKmFjY2Vzc19tZXRo b2RfcGF0dGVybiwKIC8qIFxkbCBvciBcbG9fbGlzdCAqLwogZXh0ZXJuIGJvb2wgbGlzdExhcmdl T2JqZWN0cyhib29sIHZlcmJvc2UpOwogCisvKiBcZFYgKi8KK2V4dGVybiBib29sIGxpc3RWYXJp YWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2YXJib3NlKTsKKwogI2VuZGlmCQkJCQkJ CS8qIERFU0NSSUJFX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9oZWxwLmMgYi9zcmMv YmluL3BzcWwvaGVscC5jCmluZGV4IDNmNGFmYzJkMTQuLjIzNTJlZDc0MjIgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcHNxbC9oZWxwLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpAQCAtMjY2LDYg KzI2Niw3IEBAIHNsYXNoVXNhZ2UodW5zaWduZWQgc2hvcnQgaW50IHBhZ2VyKQogCUhFTFAwKCIg IFxcZFRbUytdIFtQQVRURVJOXSAgICAgIGxpc3QgZGF0YSB0eXBlc1xuIik7CiAJSEVMUDAoIiAg XFxkdVtTK10gW1BBVFRFUk5dICAgICAgbGlzdCByb2xlc1xuIik7CiAJSEVMUDAoIiAgXFxkdltT K10gW1BBVFRFUk5dICAgICAgbGlzdCB2aWV3c1xuIik7CisJSEVMUDAoIiAgXFxkViAgICAgW1BB VFRFUk5dICAgICAgbGlzdCBzZXNzaW9uIHZhcmlhYmxlc1xuIik7CiAJSEVMUDAoIiAgXFxkeFsr XSAgW1BBVFRFUk5dICAgICAgbGlzdCBleHRlbnNpb25zXG4iKTsKIAlIRUxQMCgiICBcXGRYICAg ICBbUEFUVEVSTl0gICAgICBsaXN0IGV4dGVuZGVkIHN0YXRpc3RpY3NcbiIpOwogCUhFTFAwKCIg IFxcZHlbK10gIFtQQVRURVJOXSAgICAgIGxpc3QgZXZlbnQgdHJpZ2dlcnNcbiIpOwpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5pbi5jCmluZGV4IDMxYzc3MjE0YjQuLjdkNzY4MzRlNjkgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmluLmMKQEAgLTk3MCw2ICs5NzAsMTMgQEAgc3RhdGljIGNvbnN0IFNjaGVtYVF1ZXJ5IFF1 ZXJ5X2Zvcl90cmlnZ2VyX29mX3RhYmxlID0gewogCS5yZWZuYW1lc3BhY2UgPSAiYzEucmVsbmFt ZXNwYWNlIiwKIH07CiAKK3N0YXRpYyBjb25zdCBTY2hlbWFRdWVyeSBRdWVyeV9mb3JfbGlzdF9v Zl92YXJpYWJsZXMgPSB7CisJLm1pbl9zZXJ2ZXJfdmVyc2lvbiA9IDE4MDAwMCwKKwkuY2F0bmFt ZSA9ICJwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlIHYiLAorCS52aXNjb25kaXRpb24gPSAicGdfY2F0 YWxvZy5wZ192YXJpYWJsZV9pc192aXNpYmxlKHYub2lkKSIsCisJLm5hbWVzcGFjZSA9ICJ2LnZh cm5hbWVzcGFjZSIsCisJLnJlc3VsdCA9ICJ2LnZhcm5hbWUiLAorfTsKIAogLyoKICAqIFF1ZXJp ZXMgdG8gZ2V0IGxpc3RzIG9mIG5hbWVzIG9mIHZhcmlvdXMga2luZHMgb2YgdGhpbmdzLCBwb3Nz aWJseQpAQCAtMTMwNCw2ICsxMzExLDcgQEAgc3RhdGljIGNvbnN0IHBnc3FsX3RoaW5nX3Qgd29y ZHNfYWZ0ZXJfY3JlYXRlW10gPSB7CiAJCQkJCQkJCQkJCQkJCQkJCQkJICogVEFCTEUgLi4uICov CiAJeyJVU0VSIiwgUXVlcnlfZm9yX2xpc3Rfb2Zfcm9sZXMsIE5VTEwsIE5VTEwsIEtleXdvcmRz X2Zvcl91c2VyX3RoaW5nfSwKIAl7IlVTRVIgTUFQUElORyBGT1IiLCBOVUxMLCBOVUxMLCBOVUxM fSwKKwl7IlZBUklBQkxFIiwgTlVMTCwgTlVMTCwgJlF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxl c30sCiAJeyJWSUVXIiwgTlVMTCwgTlVMTCwgJlF1ZXJ5X2Zvcl9saXN0X29mX3ZpZXdzfSwKIAl7 TlVMTH0JCQkJCQkvKiBlbmQgb2YgbGlzdCAqLwogfTsKQEAgLTE4NjUsNyArMTg3Myw3IEBAIHBz cWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCSJc XGRGIiwgIlxcZEZkIiwgIlxcZEZwIiwgIlxcZEZ0IiwgIlxcZGciLCAiXFxkaSIsICJcXGRsIiwg IlxcZEwiLAogCQkiXFxkbSIsICJcXGRuIiwgIlxcZG8iLCAiXFxkTyIsICJcXGRwIiwgIlxcZFAi LCAiXFxkUGkiLCAiXFxkUHQiLAogCQkiXFxkcmRzIiwgIlxcZHJnIiwgIlxcZFJzIiwgIlxcZFJw IiwgIlxcZHMiLAotCQkiXFxkdCIsICJcXGRUIiwgIlxcZHYiLCAiXFxkdSIsICJcXGR4IiwgIlxc ZFgiLCAiXFxkeSIsCisJCSJcXGR0IiwgIlxcZFQiLCAiXFxkdiIsICJcXGR1IiwgIlxcZHgiLCAi XFxkWCIsICJcXGR5IiwgIlxcZFYiLAogCQkiXFxlY2hvIiwgIlxcZWRpdCIsICJcXGVmIiwgIlxc ZWxpZiIsICJcXGVsc2UiLCAiXFxlbmNvZGluZyIsCiAJCSJcXGVuZGlmIiwgIlxcZXJydmVyYm9z ZSIsICJcXGV2IiwKIAkJIlxcZiIsCkBAIC0yNTU2LDYgKzI1NjQsOSBAQCBtYXRjaF9wcmV2aW91 c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJCQkJCQkJCQkgICJBTEwiKTsKIAllbHNlIGlmIChN YXRjaGVzKCJBTFRFUiIsICJTWVNURU0iLCAiU0VUIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9X SVRIKCJUTyIpOworCS8qIEFMVEVSIFZBUklBQkxFIDxuYW1lPiAqLworCWVsc2UgaWYgKE1hdGNo ZXMoIkFMVEVSIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJPV05F UiBUTyIsICJSRU5BTUUgVE8iLCAiU0VUIFNDSEVNQSIpOwogCS8qIEFMVEVSIFZJRVcgPG5hbWU+ ICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiVklFVyIsIE1hdGNoQW55KSkKIAkJQ09N UExFVEVfV0lUSCgiQUxURVIgQ09MVU1OIiwgIk9XTkVSIFRPIiwgIlJFTkFNRSIsICJSRVNFVCIs ICJTRVQiKTsKQEAgLTMxMzYsNyArMzE0Nyw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBw YXR0ZXJuX2lkLAogCQkJCQkgICJST1VUSU5FIiwgIlJVTEUiLCAiU0NIRU1BIiwgIlNFUVVFTkNF IiwgIlNFUlZFUiIsCiAJCQkJCSAgIlNUQVRJU1RJQ1MiLCAiU1VCU0NSSVBUSU9OIiwgIlRBQkxF IiwKIAkJCQkJICAiVEFCTEVTUEFDRSIsICJURVhUIFNFQVJDSCIsICJUUkFOU0ZPUk0gRk9SIiwK LQkJCQkJICAiVFJJR0dFUiIsICJUWVBFIiwgIlZJRVciKTsKKwkJCQkJICAiVFJJR0dFUiIsICJU WVBFIiwgIlZBUklBQkxFIiwgIlZJRVciKTsKIAllbHNlIGlmIChNYXRjaGVzKCJDT01NRU5UIiwg Ik9OIiwgIkFDQ0VTUyIsICJNRVRIT0QiKSkKIAkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9m b3JfbGlzdF9vZl9hY2Nlc3NfbWV0aG9kcyk7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ09NTUVOVCIs ICJPTiIsICJDT05TVFJBSU5UIikpCkBAIC0zOTQ2LDYgKzM5NTcsMTMgQEAgbWF0Y2hfcHJldmlv dXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCI9IiwgTWF0 Y2hBbnlFeGNlcHQoIiopIikpKQogCQkJQ09NUExFVEVfV0lUSCgiLCIsICIpIik7CiAJfQorLyog Q1JFQVRFIFZBUklBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1 c2UgVGFpbE1hdGNoZXMgKi8KKwkvKiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdp dGggQVMgKi8KKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0 Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJBUyIpOworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJW QVJJQUJMRSIsIE1hdGNoQW55LCAiQVMiKSkKKwkJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxF IDxuYW1lPiB3aXRoIEFTIHR5cGVzICovCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1 ZXJ5X2Zvcl9saXN0X29mX2RhdGF0eXBlcyk7CiAKIC8qIENSRUFURSBWSUVXIC0tLSBpcyBhbGxv d2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21w bGV0ZSBDUkVBVEUgWyBPUiBSRVBMQUNFIF0gVklFVyA8bmFtZT4gd2l0aCBBUyBvciBXSVRIICov CkBAIC00MjIzLDYgKzQyNDEsMTIgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5f aWQsCiAJZWxzZSBpZiAoTWF0Y2hlcygiRFJPUCIsICJUUkFOU0ZPUk0iLCAiRk9SIiwgTWF0Y2hB bnksICJMQU5HVUFHRSIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiQ0FTQ0FERSIsICJS RVNUUklDVCIpOwogCisJLyogRFJPUCBWQVJJQUJMRSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkRS T1AiLCAiVkFSSUFCTEUiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9y X2xpc3Rfb2ZfdmFyaWFibGVzKTsKKwllbHNlIGlmIChNYXRjaGVzKCJEUk9QIiwgIlZBUklBQkxF IiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJDQVNDQURFIiwgIlJFU1RSSUNUIik7CisK IC8qIEVYRUNVVEUgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJFWEVDVVRFIikpCiAJCUNPTVBMRVRF X1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfcHJlcGFyZWRfc3RhdGVtZW50cyk7CkBAIC00 NDI0LDcgKzQ0NDgsNyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJ ICogb2JqZWN0cyBzdXBwb3J0ZWQuCiAJCSAqLwogCQlpZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwg IkRFRkFVTFQiLCAiUFJJVklMRUdFUyIpKQotCQkJQ09NUExFVEVfV0lUSCgiVEFCTEVTIiwgIlNF UVVFTkNFUyIsICJGVU5DVElPTlMiLCAiUFJPQ0VEVVJFUyIsICJST1VUSU5FUyIsICJUWVBFUyIs ICJTQ0hFTUFTIik7CisJCQlDT01QTEVURV9XSVRIKCJUQUJMRVMiLCAiU0VRVUVOQ0VTIiwgIkZV TkNUSU9OUyIsICJQUk9DRURVUkVTIiwgIlJPVVRJTkVTIiwgIlRZUEVTIiwgIlNDSEVNQVMiLCAi VkFSSUFCTEVTIik7CiAJCWVsc2UKIAkJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZX1BMVVMo UXVlcnlfZm9yX2xpc3Rfb2ZfZ3JhbnRhYmxlcywKIAkJCQkJCQkJCQkJIkFMTCBGVU5DVElPTlMg SU4gU0NIRU1BIiwKQEAgLTQ0MzIsNiArNDQ1Niw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGlu dCBwYXR0ZXJuX2lkLAogCQkJCQkJCQkJCQkiQUxMIFJPVVRJTkVTIElOIFNDSEVNQSIsCiAJCQkJ CQkJCQkJCSJBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQSIsCiAJCQkJCQkJCQkJCSJBTEwgVEFCTEVT IElOIFNDSEVNQSIsCisJCQkJCQkJCQkJCSJBTEwgVkFSSUFCTEVTIElOIFNDSEVNQSIsCiAJCQkJ CQkJCQkJCSJEQVRBQkFTRSIsCiAJCQkJCQkJCQkJCSJET01BSU4iLAogCQkJCQkJCQkJCQkiRk9S RUlHTiBEQVRBIFdSQVBQRVIiLApAQCAtNDQ0Niw3ICs0NDcxLDggQEAgbWF0Y2hfcHJldmlvdXNf d29yZHMoaW50IHBhdHRlcm5faWQsCiAJCQkJCQkJCQkJCSJTRVFVRU5DRSIsCiAJCQkJCQkJCQkJ CSJUQUJMRSIsCiAJCQkJCQkJCQkJCSJUQUJMRVNQQUNFIiwKLQkJCQkJCQkJCQkJIlRZUEUiKTsK KwkJCQkJCQkJCQkJIlRZUEUiLAorCQkJCQkJCQkJCQkiVkFSSUFCTEUiKTsKIAl9CiAJZWxzZSBp ZiAoVGFpbE1hdGNoZXMoIkdSQU5UfFJFVk9LRSIsIE1hdGNoQW55LCAiT04iLCAiQUxMIikgfHwK IAkJCSBUYWlsTWF0Y2hlcygiUkVWT0tFIiwgIkdSQU5UIiwgIk9QVElPTiIsICJGT1IiLCBNYXRj aEFueSwgIk9OIiwgIkFMTCIpKQpAQCAtNDQ1NCw3ICs0NDgwLDggQEAgbWF0Y2hfcHJldmlvdXNf d29yZHMoaW50IHBhdHRlcm5faWQsCiAJCQkJCSAgIlBST0NFRFVSRVMgSU4gU0NIRU1BIiwKIAkJ CQkJICAiUk9VVElORVMgSU4gU0NIRU1BIiwKIAkJCQkJICAiU0VRVUVOQ0VTIElOIFNDSEVNQSIs Ci0JCQkJCSAgIlRBQkxFUyBJTiBTQ0hFTUEiKTsKKwkJCQkJICAiVEFCTEVTIElOIFNDSEVNQSIs CisJCQkJCSAgIlZBUklBQkxFUyBJTiBTQ0hFTUEiKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlcygi R1JBTlR8UkVWT0tFIiwgTWF0Y2hBbnksICJPTiIsICJGT1JFSUdOIikgfHwKIAkJCSBUYWlsTWF0 Y2hlcygiUkVWT0tFIiwgIkdSQU5UIiwgIk9QVElPTiIsICJGT1IiLCBNYXRjaEFueSwgIk9OIiwg IkZPUkVJR04iKSkKIAkJQ09NUExFVEVfV0lUSCgiREFUQSBXUkFQUEVSIiwgIlNFUlZFUiIpOwpA QCAtNDQ5MCw2ICs0NTE3LDggQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQs CiAJCQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlc3BhY2VzKTsK IAkJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlRZUEUiKSkKIAkJCUNPTVBMRVRFX1dJVEhfU0NIRU1B X1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2RhdGF0eXBlcyk7CisJCWVsc2UgaWYgKFRhaWxNYXRj aGVzKCJWQVJJQUJMRSIpKQorCQkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9y X2xpc3Rfb2ZfdmFyaWFibGVzKTsKIAkJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkdSQU5UIiwgTWF0 Y2hBbnksIE1hdGNoQW55LCBNYXRjaEFueSkpCiAJCQlDT01QTEVURV9XSVRIKCJUTyIpOwogCQll bHNlCkBAIC00NzkyLDcgKzQ4MjEsNyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVy bl9pZCwKIAogLyogUFJFUEFSRSB4eCBBUyAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIlBSRVBBUkUi LCBNYXRjaEFueSwgIkFTIikpCi0JCUNPTVBMRVRFX1dJVEgoIlNFTEVDVCIsICJVUERBVEUiLCAi SU5TRVJUIElOVE8iLCAiREVMRVRFIEZST00iKTsKKwkJQ09NUExFVEVfV0lUSCgiU0VMRUNUIiwg IlVQREFURSIsICJJTlNFUlQgSU5UTyIsICJERUxFVEUgRlJPTSIsICJMRVQiKTsKIAogLyoKICAq IFBSRVBBUkUgVFJBTlNBQ1RJT04gaXMgbWlzc2luZyBvbiBwdXJwb3NlLiBJdCdzIGludGVuZGVk IGZvciB0cmFuc2FjdGlvbgpAQCAtNTI3NCw2ICs1MzAzLDggQEAgbWF0Y2hfcHJldmlvdXNfd29y ZHMoaW50IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rf b2Zfcm9sZXMpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxcZHYqIikpCiAJCUNPTVBMRVRF X1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3ZpZXdzKTsKKwllbHNlIGlmIChU YWlsTWF0Y2hlc0NTKCJcXGRWKiIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVy eV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxcZHgq IikpCiAJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfZXh0ZW5zaW9ucyk7 CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXNDUygiXFxkWCoiKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvTWFrZWZpbGUgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCmluZGV4 IDE2N2Y5MWE2ZTMuLjUwN2YzODA4MjEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv TWFrZWZpbGUKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZQpAQCAtODEsNyArODEs OCBAQCBDQVRBTE9HX0hFQURFUlMgOj0gXAogCXBnX3B1YmxpY2F0aW9uX25hbWVzcGFjZS5oIFwK IAlwZ19wdWJsaWNhdGlvbl9yZWwuaCBcCiAJcGdfc3Vic2NyaXB0aW9uLmggXAotCXBnX3N1YnNj cmlwdGlvbl9yZWwuaAorCXBnX3N1YnNjcmlwdGlvbl9yZWwuaCBcCisJcGdfdmFyaWFibGUuaAog CiBHRU5FUkFURURfSEVBREVSUyA6PSAkKENBVEFMT0dfSEVBREVSUzolLmg9JV9kLmgpCiAKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL21lc29uLmJ1aWxkCmluZGV4IGY3MGQxZGFiYTUuLjZlZWM3OWQyZWUgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9tZXNvbi5idWlsZApAQCAtNjksNiArNjksNyBAQCBjYXRhbG9nX2hlYWRlcnMgPSBbCiAg ICdwZ19wdWJsaWNhdGlvbl9yZWwuaCcsCiAgICdwZ19zdWJzY3JpcHRpb24uaCcsCiAgICdwZ19z dWJzY3JpcHRpb25fcmVsLmgnLAorICAncGdfdmFyaWFibGUuaCcsCiBdCiAKICMgVGhlIC5kYXQg ZmlsZXMgd2UgbmVlZCBjYW4ganVzdCBiZSBsaXN0ZWQgYWxwaGFiZXRpY2FsbHkuCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9uYW1lc3BhY2UuaAppbmRleCA4ZDQzNGQ0OGQ1Li5jZmU5NjUxNDcxIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv bmFtZXNwYWNlLmgKQEAgLTk3LDYgKzk3LDggQEAgZXh0ZXJuIE9pZAlUeXBlbmFtZUdldFR5cGlk KGNvbnN0IGNoYXIgKnR5cG5hbWUpOwogZXh0ZXJuIE9pZAlUeXBlbmFtZUdldFR5cGlkRXh0ZW5k ZWQoY29uc3QgY2hhciAqdHlwbmFtZSwgYm9vbCB0ZW1wX29rKTsKIGV4dGVybiBib29sIFR5cGVJ c1Zpc2libGUoT2lkIHR5cGlkKTsKIAorZXh0ZXJuIGJvb2wgVmFyaWFibGVJc1Zpc2libGUoT2lk IHZhcmlkKTsKKwogZXh0ZXJuIEZ1bmNDYW5kaWRhdGVMaXN0IEZ1bmNuYW1lR2V0Q2FuZGlkYXRl cyhMaXN0ICpuYW1lcywKIAkJCQkJCQkJCQkJICAgaW50IG5hcmdzLCBMaXN0ICphcmduYW1lcywK IAkJCQkJCQkJCQkJICAgYm9vbCBleHBhbmRfdmFyaWFkaWMsCkBAIC0xNjksNiArMTcxLDEwIEBA IGV4dGVybiBTZWFyY2hQYXRoTWF0Y2hlciAqR2V0U2VhcmNoUGF0aE1hdGNoZXIoTWVtb3J5Q29u dGV4dCBjb250ZXh0KTsKIGV4dGVybiBTZWFyY2hQYXRoTWF0Y2hlciAqQ29weVNlYXJjaFBhdGhN YXRjaGVyKFNlYXJjaFBhdGhNYXRjaGVyICpwYXRoKTsKIGV4dGVybiBib29sIFNlYXJjaFBhdGhN YXRjaGVzQ3VycmVudEVudmlyb25tZW50KFNlYXJjaFBhdGhNYXRjaGVyICpwYXRoKTsKIAorZXh0 ZXJuIExpc3QgKk5hbWVzRnJvbUxpc3QoTGlzdCAqbmFtZXMpOworZXh0ZXJuIE9pZAlMb29rdXBW YXJpYWJsZShjb25zdCBjaGFyICpuc3BuYW1lLCBjb25zdCBjaGFyICp2YXJuYW1lLCBib29sIG1p c3Npbmdfb2spOworZXh0ZXJuIE9pZAlMb29rdXBWYXJpYWJsZUZyb21OYW1lTGlzdChMaXN0ICpu YW1lcywgYm9vbCBtaXNzaW5nX29rKTsKKwogZXh0ZXJuIE9pZAlnZXRfY29sbGF0aW9uX29pZChM aXN0ICpjb2xsbmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJZ2V0X2NvbnZlcnNp b25fb2lkKExpc3QgKmNvbm5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCUZpbmRE ZWZhdWx0Q29udmVyc2lvblByb2MoaW50MzIgZm9yX2VuY29kaW5nLCBpbnQzMiB0b19lbmNvZGlu Zyk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2RlZmF1bHRfYWNsLmggYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2RlZmF1bHRfYWNsLmgKaW5kZXggZDI3MmNkZjA4Yi4uNTI5 ZDUzYzZiYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5o CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wuaApAQCAtNjgsNiArNjgs NyBAQCBNQUtFX1NZU0NBQ0hFKERFRkFDTFJPTEVOU1BPQkosIHBnX2RlZmF1bHRfYWNsX3JvbGVf bnNwX29ial9pbmRleCwgOCk7CiAjZGVmaW5lIERFRkFDTE9CSl9GVU5DVElPTgkJJ2YnIC8qIGZ1 bmN0aW9uICovCiAjZGVmaW5lIERFRkFDTE9CSl9UWVBFCQkJJ1QnIC8qIHR5cGUgKi8KICNkZWZp bmUgREVGQUNMT0JKX05BTUVTUEFDRQkJJ24nIC8qIG5hbWVzcGFjZSAqLworI2RlZmluZSBERUZB Q0xPQkpfVkFSSUFCTEUJCSdWJyAvKiB2YXJpYWJsZSAqLwogCiAjZW5kaWYJCQkJCQkJLyogRVhQ T1NFX1RPX0NMSUVOVF9DT0RFICovCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDJkY2My ZDQyZGEuLjZlZGU3NDAzNmQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJv Yy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtNTM5NSw2ICs1 Mzk1LDI2IEBACiAgIHByb3JldHR5cGUgPT4gJ2Jvb2wnLCBwcm9hcmd0eXBlcyA9PiAnb2lkIG9p ZCB0ZXh0JywKICAgcHJvc3JjID0+ICdoYXNfbGFyZ2VvYmplY3RfcHJpdmlsZWdlX2lkX2lkJyB9 LAogCit7IG9pZCA9PiAnOTYxMycsIGRlc2NyID0+ICd1c2VyIHByaXZpbGVnZSBvbiBzZXNzaW9u IHZhcmlhYmxlIGJ5IHVzZXJuYW1lLCBzZXEgbmFtZScsCisgIHByb25hbWUgPT4gJ2hhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9 PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICduYW1lIHRleHQgdGV4dCcsCisgIHByb3NyYyA9 PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX25hbWVfbmFtZScgfSwKK3sgb2lkID0+ ICc5NjE0JywgZGVzY3IgPT4gJ3VzZXIgcHJpdmlsZWdlIG9uIHNlc3Npb24gdmFyaWFibGUgYnkg dXNlcm5hbWUsIHNlcSBvaWQnLAorICBwcm9uYW1lID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBw cm9hcmd0eXBlcyA9PiAnbmFtZSBvaWQgdGV4dCcsIHByb3NyYyA9PiAnaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlX25hbWVfaWQnIH0sCit7IG9pZCA9PiAnOTYxNScsIGRlc2NyID0+ICd1 c2VyIHByaXZpbGVnZSBvbiBzZXNzaW9uIHZhcmlhYmxlIGJ5IHVzZXIgb2lkLCBzZXEgbmFtZScs CisgIHByb25hbWUgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZScsIHByb3ZvbGF0 aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICdvaWQg dGV4dCB0ZXh0JywgcHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWRf bmFtZScgfSwKK3sgb2lkID0+ICc5NjE2JywgZGVzY3IgPT4gJ3VzZXIgcHJpdmlsZWdlIG9uIHNl c3Npb24gdmFyaWFibGUgYnkgdXNlciBvaWQsIHNlcSBvaWQnLAorICBwcm9uYW1lID0+ICdoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5 cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0eXBlcyA9PiAnb2lkIG9pZCB0ZXh0JywgcHJvc3JjID0+ ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWRfaWQnIH0sCit7IG9pZCA9PiAnOTYx NycsIGRlc2NyID0+ICdjdXJyZW50IHVzZXIgcHJpdmlsZWdlIG9uIHNlc3Npb24gdmFyaWFibGUg Ynkgc2VxIG5hbWUnLAorICBwcm9uYW1lID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0 eXBlcyA9PiAndGV4dCB0ZXh0JywgcHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2VfbmFtZScgfSwKK3sgb2lkID0+ICc5NjE4JywgZGVzY3IgPT4gJ2N1cnJlbnQgdXNlciBw cml2aWxlZ2Ugb24gc2Vzc2lvbiB2YXJpYWJsZSBieSBzZXEgb2lkJywKKyAgcHJvbmFtZSA9PiAn aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9y ZXR0eXBlID0+ICdib29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ29pZCB0ZXh0JywgcHJvc3JjID0+ ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWQnIH0sCisKIHsgb2lkID0+ICczMzU1 JywgZGVzY3IgPT4gJ0kvTycsCiAgIHByb25hbWUgPT4gJ3BnX25kaXN0aW5jdF9pbicsIHByb3Jl dHR5cGUgPT4gJ3BnX25kaXN0aW5jdCcsCiAgIHByb2FyZ3R5cGVzID0+ICdjc3RyaW5nJywgcHJv c3JjID0+ICdwZ19uZGlzdGluY3RfaW4nIH0sCkBAIC02NTc5LDYgKzY1OTksOSBAQAogICBwcm9u YW1lID0+ICdwZ19jb2xsYXRpb25faXNfdmlzaWJsZScsIHByb2Nvc3QgPT4gJzEwJywgcHJvdm9s YXRpbGUgPT4gJ3MnLAogICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJndHlwZXMgPT4gJ29p ZCcsCiAgIHByb3NyYyA9PiAncGdfY29sbGF0aW9uX2lzX3Zpc2libGUnIH0sCit7IG9pZCA9PiAn OTIyMScsIGRlc2NyID0+ICdpcyBzZXNzaW9uIHZhcmlhYmxlIHZpc2libGUgaW4gc2VhcmNoIHBh dGg/JywKKyAgcHJvbmFtZSA9PiAncGdfdmFyaWFibGVfaXNfdmlzaWJsZScsIHByb2Nvc3QgPT4g JzEwJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJn dHlwZXMgPT4gJ29pZCcsIHByb3NyYyA9PiAncGdfdmFyaWFibGVfaXNfdmlzaWJsZScgfSwKIAog eyBvaWQgPT4gJzI4NTQnLCBkZXNjciA9PiAnZ2V0IE9JRCBvZiBjdXJyZW50IHNlc3Npb25cJ3Mg dGVtcCBzY2hlbWEsIGlmIGFueScsCiAgIHByb25hbWUgPT4gJ3BnX215X3RlbXBfc2NoZW1hJywg cHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAncicsCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Zh cmlhYmxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMzgxMGUwNDBm MgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaApA QCAtMCwwICsxLDgxIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ192YXJpYWJsZS5o CisgKgkgIGRlZmluaXRpb24gb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgc3lzdGVtIGNhdGFsb2cgKHBn X3ZhcmlhYmxlcykKKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQs IFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmln aHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoK KyAqIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAorICoKKyAqIE5PVEVTCisgKgkg IFRoZSBDYXRhbG9nLnBtIG1vZHVsZSByZWFkcyB0aGlzIGZpbGUgYW5kIGRlcml2ZXMgc2NoZW1h CisgKgkgIGluZm9ybWF0aW9uLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaWZuZGVm IFBHX1ZBUklBQkxFX0gKKyNkZWZpbmUgUEdfVkFSSUFCTEVfSAorCisjaW5jbHVkZSAiY2F0YWxv Zy9nZW5ia2kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFkZHJlc3MuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX3ZhcmlhYmxlX2QuaCIKKyNpbmNsdWRlICJ1dGlscy9hY2wuaCIKKworLyog LS0tLS0tLS0tLS0tLS0tLQorICoJCXBnX3ZhcmlhYmxlIGRlZmluaXRpb24uICBjcHAgdHVybnMg dGhpcyBpbnRvCisgKgkJdHlwZWRlZiBzdHJ1Y3QgRm9ybURhdGFfcGdfdmFyaWFibGUKKyAqIC0t LS0tLS0tLS0tLS0tLS0KKyAqLworQ0FUQUxPRyhwZ192YXJpYWJsZSw5MjIyLFZhcmlhYmxlUmVs YXRpb25JZCkKK3sKKwlPaWQJCQlvaWQ7CQkJLyogb2lkICovCisKKwkvKiBPSUQgb2YgZW50cnkg aW4gcGdfdHlwZSBmb3IgdmFyaWFibGUncyB0eXBlICovCisJT2lkCQkJdmFydHlwZSBCS0lfTE9P S1VQKHBnX3R5cGUpOworCisJLyogdmFyaWFibGUgbmFtZSAqLworCU5hbWVEYXRhCXZhcm5hbWU7 CisKKwkvKiBPSUQgb2YgbmFtZXNwYWNlIGNvbnRhaW5pbmcgdmFyaWFibGUgY2xhc3MgKi8KKwlP aWQJCQl2YXJuYW1lc3BhY2UgQktJX0xPT0tVUChwZ19uYW1lc3BhY2UpOworCisJLyogdmFyaWFi bGUgb3duZXIgKi8KKwlPaWQJCQl2YXJvd25lciBCS0lfTE9PS1VQKHBnX2F1dGhpZCk7CisKKwkv KiB0eXBtb2QgZm9yIHZhcmlhYmxlJ3MgdHlwZSAqLworCWludDMyCQl2YXJ0eXBtb2QgQktJX0RF RkFVTFQoLTEpOworCisJLyogdmFyaWFibGUgY29sbGF0aW9uICovCisJT2lkCQkJdmFyY29sbGF0 aW9uIEJLSV9ERUZBVUxUKDApIEJLSV9MT09LVVBfT1BUKHBnX2NvbGxhdGlvbik7CisKKworI2lm ZGVmIENBVEFMT0dfVkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJl ICovCisKKwkvKiBhY2Nlc3MgcGVybWlzc2lvbnMgKi8KKwlhY2xpdGVtCQl2YXJhY2xbMV0gQktJ X0RFRkFVTFQoX251bGxfKTsKKworI2VuZGlmCit9IEZvcm1EYXRhX3BnX3ZhcmlhYmxlOworCisv KiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJRm9ybV9wZ192YXJpYWJsZSBjb3JyZXNwb25kcyB0byBh IHBvaW50ZXIgdG8gYSB0dXBsZSB3aXRoCisgKgkJdGhlIGZvcm1hdCBvZiB0aGUgcGdfdmFyaWFi bGUgcmVsYXRpb24uCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgRm9ybURhdGFf cGdfdmFyaWFibGUgKkZvcm1fcGdfdmFyaWFibGU7CisKK0RFQ0xBUkVfVE9BU1QocGdfdmFyaWFi bGUsIDkyMjMsIDkyMjQpOworCitERUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZKHBnX3ZhcmlhYmxl X29pZF9pbmRleCwgOTIyNSwgVmFyaWFibGVPaWRJbmRleElkLCBwZ192YXJpYWJsZSwgYnRyZWUo b2lkIG9pZF9vcHMpKTsKK0RFQ0xBUkVfVU5JUVVFX0lOREVYKHBnX3ZhcmlhYmxlX3Zhcm5hbWVf bnNwX2luZGV4LCA5MjI2LCBWYXJpYWJsZU5hbWVOc3BJbmRleElkLCBwZ192YXJpYWJsZSwgYnRy ZWUodmFybmFtZSBuYW1lX29wcywgdmFybmFtZXNwYWNlIG9pZF9vcHMpKTsKKworZXh0ZXJuIE9i amVjdEFkZHJlc3MgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCQkJ Q3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpOworZXh0ZXJuIHZvaWQgRHJvcFZhcmlhYmxlQnlJ ZChPaWQgdmFyaWQpOworCitNQUtFX1NZU0NBQ0hFKFZBUklBQkxFTkFNRU5TUCwgcGdfdmFyaWFi bGVfdmFybmFtZV9uc3BfaW5kZXgsIDgpOworTUFLRV9TWVNDQUNIRShWQVJJQUJMRU9JRCwgcGdf dmFyaWFibGVfb2lkX2luZGV4LCA4KTsKKworI2VuZGlmCQkJCQkJCS8qIFBHX1ZBUklBQkxFX0gg Ki8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCAwZjk0NjI0OTNlLi4wZTA4Mjk2YjQzIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0yMzE2LDYgKzIzMTYsNyBAQCB0eXBlZGVmIGVudW0gT2Jq ZWN0VHlwZQogCU9CSkVDVF9UU1RFTVBMQVRFLAogCU9CSkVDVF9UWVBFLAogCU9CSkVDVF9VU0VS X01BUFBJTkcsCisJT0JKRUNUX1ZBUklBQkxFLAogCU9CSkVDVF9WSUVXLAogfSBPYmplY3RUeXBl OwogCkBAIC0zNDQ3LDYgKzM0NDgsMjEgQEAgdHlwZWRlZiBzdHJ1Y3QgQWx0ZXJTdGF0c1N0bXQK IAlib29sCQltaXNzaW5nX29rOwkJLyogc2tpcCBlcnJvciBpZiBzdGF0aXN0aWNzIG9iamVjdCBp cyBtaXNzaW5nICovCiB9IEFsdGVyU3RhdHNTdG10OwogCisKKy8qIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAqCQl7Q3JlYXRlfEFsdGVyfSBWQVJJQUJMRSBTdGF0ZW1lbnQKKyAqIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU2Vzc2lvblZhclN0bXQK K3sKKwlOb2RlVGFnCQl0eXBlOworCVJhbmdlVmFyICAgKnZhcmlhYmxlOwkJLyogdGhlIHZhcmlh YmxlIHRvIGNyZWF0ZSAqLworCVR5cGVOYW1lICAgKnR5cGVOYW1lOwkJLyogdGhlIHR5cGUgb2Yg dmFyaWFibGUgKi8KKwlDb2xsYXRlQ2xhdXNlICpjb2xsQ2xhdXNlOworCWJvb2wJCWlmX25vdF9l eGlzdHM7CS8qIGRvIG5vdGhpbmcgaWYgaXQgYWxyZWFkeSBleGlzdHMgKi8KK30gQ3JlYXRlU2Vz c2lvblZhclN0bXQ7CisKKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJCUNyZWF0ZSBG dW5jdGlvbiBTdGF0ZW1lbnQKICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3Qu aAppbmRleCA4OTlkNjRhZDU1Li41NjY3MGU2NWIxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9w YXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCkBAIC00ODQs NiArNDg0LDggQEAgUEdfS0VZV09SRCgidmFsaWRhdG9yIiwgVkFMSURBVE9SLCBVTlJFU0VSVkVE X0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YWx1ZSIsIFZBTFVFX1AsIFVOUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhbHVlcyIsIFZBTFVFUywg Q09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhcmNoYXIiLCBWQVJD SEFSLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgidmFyaWFibGUi LCBWQVJJQUJMRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgi dmFyaWFibGVzIiwgVkFSSUFCTEVTLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJ2YXJpYWRpYyIsIFZBUklBRElDLCBSRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xB QkVMKQogUEdfS0VZV09SRCgidmFyeWluZyIsIFZBUllJTkcsIFVOUkVTRVJWRURfS0VZV09SRCwg QVNfTEFCRUwpCiBQR19LRVlXT1JEKCJ2ZXJib3NlIiwgVkVSQk9TRSwgVFlQRV9GVU5DX05BTUVf S0VZV09SRCwgQkFSRV9MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKaW5kZXggN2ZkY2VjNmRkOS4u OTQ2NWRmN2IyZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKKysr IGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKQEAgLTY4LDYgKzY4LDcgQEAgUEdfQ01E VEFHKENNRFRBR19BTFRFUl9UUkFOU0ZPUk0sICJBTFRFUiBUUkFOU0ZPUk0iLCB0cnVlLCBmYWxz ZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1RSSUdHRVIsICJBTFRFUiBUUklHR0VS IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9UWVBFLCAiQUxU RVIgVFlQRSIsIHRydWUsIHRydWUsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9VU0VS X01BUFBJTkcsICJBTFRFUiBVU0VSIE1BUFBJTkciLCB0cnVlLCBmYWxzZSwgZmFsc2UpCitQR19D TURUQUcoQ01EVEFHX0FMVEVSX1ZBUklBQkxFLCAiQUxURVIgVkFSSUFCTEUiLCB0cnVlLCBmYWxz ZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1ZJRVcsICJBTFRFUiBWSUVXIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTkFMWVpFLCAiQU5BTFlaRSIsIGZh bHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0JFR0lOLCAiQkVHSU4iLCBmYWxz ZSwgZmFsc2UsIGZhbHNlKQpAQCAtMTIzLDYgKzEyNCw3IEBAIFBHX0NNRFRBRyhDTURUQUdfQ1JF QVRFX1RSQU5TRk9STSwgIkNSRUFURSBUUkFOU0ZPUk0iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQ R19DTURUQUcoQ01EVEFHX0NSRUFURV9UUklHR0VSLCAiQ1JFQVRFIFRSSUdHRVIiLCB0cnVlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9UWVBFLCAiQ1JFQVRFIFRZUEUi LCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9VU0VSX01BUFBJ TkcsICJDUkVBVEUgVVNFUiBNQVBQSU5HIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFH KENNRFRBR19DUkVBVEVfVkFSSUFCTEUsICJDUkVBVEUgVkFSSUFCTEUiLCB0cnVlLCBmYWxzZSwg ZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9WSUVXLCAiQ1JFQVRFIFZJRVciLCB0cnVl LCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RFQUxMT0NBVEUsICJERUFMTE9DQVRF IiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfREVBTExPQ0FURV9BTEws ICJERUFMTE9DQVRFIEFMTCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCkBAIC0xNzUsNiArMTc3LDcg QEAgUEdfQ01EVEFHKENNRFRBR19EUk9QX1RSQU5TRk9STSwgIkRST1AgVFJBTlNGT1JNIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX1RSSUdHRVIsICJEUk9QIFRS SUdHRVIiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfVFlQRSwg IkRST1AgVFlQRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9V U0VSX01BUFBJTkcsICJEUk9QIFVTRVIgTUFQUElORyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BH X0NNRFRBRyhDTURUQUdfRFJPUF9WQVJJQUJMRSwgIkRST1AgVkFSSUFCTEUiLCB0cnVlLCBmYWxz ZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfVklFVywgIkRST1AgVklFVyIsIHRydWUs IGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRVhFQ1VURSwgIkVYRUNVVEUiLCBmYWxz ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19FWFBMQUlOLCAiRVhQTEFJTiIsIGZh bHNlLCBmYWxzZSwgZmFsc2UpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9hY2wuaCBi L3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5oCmluZGV4IDczMWQ4NGIyYTkuLjk4YWFiOTgyMjkgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxz L2FjbC5oCkBAIC0xNjksNiArMTY5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQXJyYXlUeXBlIEFjbDsK ICNkZWZpbmUgQUNMX0FMTF9SSUdIVFNfU0NIRU1BCQkoQUNMX1VTQUdFfEFDTF9DUkVBVEUpCiAj ZGVmaW5lIEFDTF9BTExfUklHSFRTX1RBQkxFU1BBQ0UJKEFDTF9DUkVBVEUpCiAjZGVmaW5lIEFD TF9BTExfUklHSFRTX1RZUEUJCQkoQUNMX1VTQUdFKQorI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19W QVJJQUJMRQkJKEFDTF9TRUxFQ1R8QUNMX1VQREFURSkKIAogLyogb3BlcmF0aW9uIGNvZGVzIGZv ciBwZ18qX2FjbG1hc2sgKi8KIHR5cGVkZWYgZW51bQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv dXRpbHMvbHN5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaAppbmRleCAy MDQ0NmY2ZjgzLi44YTM2ODRlNzExIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9sc3lz Y2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaApAQCAtMTM0LDYgKzEz NCw3IEBAIGV4dGVybiBjaGFyIGdldF9mdW5jX3Byb2tpbmQoT2lkIGZ1bmNpZCk7CiBleHRlcm4g Ym9vbCBnZXRfZnVuY19sZWFrcHJvb2YoT2lkIGZ1bmNpZCk7CiBleHRlcm4gUmVnUHJvY2VkdXJl IGdldF9mdW5jX3N1cHBvcnQoT2lkIGZ1bmNpZCk7CiBleHRlcm4gT2lkCWdldF9yZWxuYW1lX3Jl bGlkKGNvbnN0IGNoYXIgKnJlbG5hbWUsIE9pZCByZWxuYW1lc3BhY2UpOworZXh0ZXJuIE9pZAln ZXRfdmFybmFtZV92YXJpZChjb25zdCBjaGFyICp2YXJuYW1lLCBPaWQgdmFybmFtZXNwYWNlKTsK IGV4dGVybiBjaGFyICpnZXRfcmVsX25hbWUoT2lkIHJlbGlkKTsKIGV4dGVybiBPaWQJZ2V0X3Jl bF9uYW1lc3BhY2UoT2lkIHJlbGlkKTsKIGV4dGVybiBPaWQJZ2V0X3JlbF90eXBlX2lkKE9pZCBy ZWxpZCk7CkBAIC0yMDYsNiArMjA3LDE0IEBAIGV4dGVybiBjaGFyICpnZXRfcHVibGljYXRpb25f bmFtZShPaWQgcHViaWQsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCWdldF9zdWJzY3Jp cHRpb25fb2lkKGNvbnN0IGNoYXIgKnN1Ym5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4g Y2hhciAqZ2V0X3N1YnNjcmlwdGlvbl9uYW1lKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29rKTsK IAorZXh0ZXJuIGNoYXIgKmdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZhcmlkKTsKK2V4 dGVybiBPaWQJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKE9pZCB2YXJpZCk7CitleHRl cm4gT2lkCWdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGUoT2lkIHZhcmlkKTsKK2V4dGVybiB2b2lk IGdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9kX2NvbGxpZChPaWQgdmFyaWQsCisJCQkJ CQkJCQkJCQkJT2lkICp0eXBpZCwKKwkJCQkJCQkJCQkJCQlpbnQzMiAqdHlwbW9kLAorCQkJCQkJ CQkJCQkJCU9pZCAqY29sbGlkKTsKKwogI2RlZmluZSB0eXBlX2lzX2FycmF5KHR5cGlkKSAgKGdl dF9lbGVtZW50X3R5cGUodHlwaWQpICE9IEludmFsaWRPaWQpCiAvKiB0eXBlX2lzX2FycmF5X2Rv bWFpbiBhY2NlcHRzIGJvdGggcGxhaW4gYXJyYXlzIGFuZCBkb21haW5zIG92ZXIgYXJyYXlzICov CiAjZGVmaW5lIHR5cGVfaXNfYXJyYXlfZG9tYWluKHR5cGlkKSAgKGdldF9iYXNlX2VsZW1lbnRf dHlwZSh0eXBpZCkgIT0gSW52YWxpZE9pZCkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVu ZGVuY3kub3V0CmluZGV4IDc0ZDlmZjI5OTguLmMzMzZmNjdhNTkgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9kZXBlbmRlbmN5Lm91dApAQCAtMTUxLDMgKzE1MSwyMCBAQCBvd25lciBvZiB0 eXBlIGRlcHRlc3RfdAogRFJPUCBPV05FRCBCWSByZWdyZXNzX2RlcF91c2VyMiwgcmVncmVzc19k ZXBfdXNlcjA7CiBEUk9QIFVTRVIgcmVncmVzc19kZXBfdXNlcjI7CiBEUk9QIFVTRVIgcmVncmVz c19kZXBfdXNlcjA7CistLSBkZXBlbmRlbmN5IG9uIHR5cGUKK0NSRUFURSBET01BSU4gdmFyZG9t YWluIEFTIGludDsKK0NSRUFURSBUWVBFIHZhcnR5cGUgQVMgKGEgaW50LCBiIGludCwgYyB2YXJk b21haW4pOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFydHlwZTsKKy0tIHNob3VsZCBmYWls CitEUk9QIERPTUFJTiB2YXJkb21haW47CitFUlJPUjogIGNhbm5vdCBkcm9wIHR5cGUgdmFyZG9t YWluIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIGNvbHVtbiBj IG9mIGNvbXBvc2l0ZSB0eXBlIHZhcnR5cGUgZGVwZW5kcyBvbiB0eXBlIHZhcmRvbWFpbgorSElO VDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRv by4KK0RST1AgVFlQRSB2YXJ0eXBlOworRVJST1I6ICBjYW5ub3QgZHJvcCB0eXBlIHZhcnR5cGUg YmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgc2Vzc2lvbiB2YXJp YWJsZSB2YXIxIGRlcGVuZHMgb24gdHlwZSB2YXJ0eXBlCitISU5UOiAgVXNlIERST1AgLi4uIENB U0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorLS0gY2xlYW4gdXAKK0RS T1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVFlQRSB2YXJ0eXBlOworRFJPUCBET01BSU4gdmFyZG9t YWluOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dAppbmRleCAyMTVlYjg5OWJl Li5kOTk1MzMyMTQwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpv aW5zLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dApAQCAt MjY2LDMgKzI2Niw3IEBAIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbiB7c3ViZGJp ZH0gPT4gcGdfZGF0YWJhc2Uge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlv biB7c3Vib3duZXJ9ID0+IHBnX2F1dGhpZCB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vi c2NyaXB0aW9uX3JlbCB7c3JzdWJpZH0gPT4gcGdfc3Vic2NyaXB0aW9uIHtvaWR9CiBOT1RJQ0U6 ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb25fcmVsIHtzcnJlbGlkfSA9PiBwZ19jbGFzcyB7b2lk fQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFibGUge3ZhcnR5cGV9ID0+IHBnX3R5cGUge29p ZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3ZhcmlhYmxlIHt2YXJuYW1lc3BhY2V9ID0+IHBnX25h bWVzcGFjZSB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFibGUge3Zhcm93bmVyfSA9 PiBwZ19hdXRoaWQge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3ZhcmlhYmxlIHt2YXJjb2xs YXRpb259ID0+IHBnX2NvbGxhdGlvbiB7b2lkfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQK aW5kZXggMzZkYzMxYzE2Yy4uODhlMjExOTQ3MSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwu b3V0CkBAIC01OTMwLDYgKzU5MzAsMzAgQEAgQ09NTUlUOwogIyBmaW5hbCBPTl9FUlJPUl9ST0xM QkFDSzogb2ZmCiBEUk9QIFRBQkxFIGJsYTsKIERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKKy0t IHNlc3Npb24gdmFyaWFibGUgdGVzdAorQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25l cjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOworXGRWKyB2YXIxCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwg TmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAg ICAgICB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcHVibGljIHwgdmFyMSB8IGNoYXJh Y3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAg ICAgICAgICAgICAgIHwgCisoMSByb3cpCisKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIx IFRPIFBVQkxJQzsKK0NPTU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlv bic7CitcZFYrIHZhcjEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwg ICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwg ICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgICBEZXNj cmlwdGlvbiAgICAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIx IHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVy IHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29t ZSBkZXNjcmlwdGlvbgorICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVy ICAgICAgICAgICAgICAgICAgICAgICAgfCAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIx OworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVy OwogLS0gY2hlY2sgZGVzY3JpYmluZyBpbnZhbGlkIG11bHRpcGFydCBuYW1lcwogXGRBIHJlZ3Jl c3Npb24uaGVhcAogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1l cyk6IHJlZ3Jlc3Npb24uaGVhcApAQCAtNjE1MSw2ICs2MTc1LDEyIEBAIGNyb3NzLWRhdGFiYXNl IHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogbm9uZXN1Y2gucHVibGljLmZ1bmNfZGVw c19zdGF0CiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTog cmVncmVzc2lvbi5teWV2dAogXGR5IG5vbmVzdWNoLm15ZXZ0CiBpbXByb3BlciBxdWFsaWZpZWQg bmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogbm9uZXN1Y2gubXlldnQKK1xkViBob3N0LnJl Z3Jlc3Npb24ucHVibGljLnZhcgoraW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRv dHRlZCBuYW1lcyk6IGhvc3QucmVncmVzc2lvbi5wdWJsaWMudmFyCitcZFYgcmVncmVzc2lvbnxt eWRiLnB1YmxpYy52YXIKK2Nyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1l bnRlZDogcmVncmVzc2lvbnxteWRiLnB1YmxpYy52YXIKK1xkViBub25lc3VjaC5wdWJsaWMudmFy Citjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IG5vbmVzdWNo LnB1YmxpYy52YXIKIC0tIGNoZWNrIHRoYXQgZG90cyB3aXRoaW4gcXVvdGVkIG5hbWUgc2VnbWVu dHMgYXJlIG5vdCBjb3VudGVkCiBcZEEgIm5vLnN1Y2guYWNjZXNzLm1ldGhvZCIKIExpc3Qgb2Yg YWNjZXNzIG1ldGhvZHMKQEAgLTYzODUsNiArNjQxNSwxMiBAQCBMaXN0IG9mIHNjaGVtYXMKIC0t LS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tCiAoMCByb3dz KQogCitcZFYgIm5vLnN1Y2gudmFyaWFibGUiCisgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxl cworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgCistLS0tLS0tLSst LS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0KKygwIHJvd3MpCisKIC0tIGFnYWluLCBi dXQgd2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGRBICJuby5zdWNoLnNjaGVt YSIuIm5vLnN1Y2guYWNjZXNzLm1ldGhvZCIKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28g bWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmFjY2Vzcy5tZXRo b2QiCkBAIC02NTU0LDYgKzY1OTAsMTIgQEAgaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBt YW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guaW5zdGEKIAogXGR5 ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIGltcHJvcGVyIHF1YWxp ZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5z dWNoLmV2ZW50LnRyaWdnZXIiCitcZFYgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJs ZSIKKyAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUg fCBDb2xsYXRpb24gfCBPd25lciAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLQorKDAgcm93cykKKwogLS0gYWdhaW4sIGJ1dCB3aXRoIGN1cnJlbnQgZGF0YWJhc2Ug YW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZHQgcmVncmVzc2lvbi4ibm8uc3Vj aC5zY2hlbWEiLiJuby5zdWNoLnRhYmxlLnJlbGF0aW9uIgogICAgICAgTGlzdCBvZiByZWxhdGlv bnMKQEAgLTY2ODcsNiArNjcyOSwxMiBAQCBMaXN0IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRlcwog LS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSst LS0tLQogKDAgcm93cykKIAorXGRWIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC52YXJpYWJsZSIKKyAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFt ZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLQorKDAgcm93cykKKwogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBk YXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkdCAibm8uc3VjaC5k YXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlvbiIKIGNyb3Nz LWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJh c2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRpb24iCkBAIC02NzM0LDYg KzY3ODIsOCBAQCBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6 ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbQogY3Jvc3MtZGF0YWJhc2UgcmVmZXJl bmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2No ZW1hIi4ibm8uc3VjaC5kYXRhLnR5cGUiCiBcZFggIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNo LnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKIGNyb3NzLWRhdGFiYXNlIHJl ZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNo LnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKK1xkViAibm8uc3VjaC5kYXRh YmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKK2Nyb3NzLWRhdGFiYXNl IHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5z dWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCiAtLSBjaGVjayBcZHJnIGFuZCBcZHUKIENS RUFURSBST0xFIHJlZ3Jlc3NfZHVfcm9sZTA7CiBDUkVBVEUgUk9MRSByZWdyZXNzX2R1X3JvbGUx OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi45MjAxZGE0ZTJiCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQKQEAgLTAsMCArMSwzNTUgQEAKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7 CitTRVQgbG9nX3N0YXRlbWVudCBUTyBkZGw7CistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBWQVJJ QUJMRSB2YXIxIEFTIGludDsKKy0tIHNob3VsZCBmYWlsLCBwc2V1ZG90eXBlcyBhcmUgbm90IGFs bG93ZWQKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGFueWVsZW1lbnQ7CitFUlJPUjogIHNlc3Np b24gdmFyaWFibGUgY2Fubm90IGJlIHBzZXVkby10eXBlIGFueWVsZW1lbnQKKy0tIHNob3VsZCBi ZSBvaywgZG8gbm90aGluZworRFJPUCBWQVJJQUJMRSBJRiBFWElTVFMgdmFyMjsKK05PVElDRTog IHNlc3Npb24gdmFyaWFibGUgInZhcjIiIGRvZXMgbm90IGV4aXN0LCBza2lwcGluZworLS0gZG8g bm90aGluZworQ1JFQVRFIFZBUklBQkxFIElGIE5PVCBFWElTVFMgdmFyMSBBUyBpbnQ7CitOT1RJ Q0U6ICBzZXNzaW9uIHZhcmlhYmxlICJ2YXIxIiBhbHJlYWR5IGV4aXN0cywgc2tpcHBpbmcKKy0t IHNob3VsZCBmYWlsCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitFUlJPUjogIHNlc3Np b24gdmFyaWFibGUgInZhcjEiIGFscmVhZHkgZXhpc3RzCistLSBzaG91bGQgYmUgb2sKK0RST1Ag VkFSSUFCTEUgSUYgRVhJU1RTIHZhcjE7CistLSB0aGUgdmFyaWFibGUgY2FuIHVzZSBjb21wb3Np dGUgdHlwZXMKK0NSRUFURSBUQUJMRSB0MSAoYSBpbnQsIGIgaW50KTsKK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIHQxOworLS0gc2hvdWxkIGZhaWwKK0RST1AgVEFCTEUgdDE7CitFUlJPUjogIGNh bm5vdCBkcm9wIHRhYmxlIHQxIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RF VEFJTDogIHNlc3Npb24gdmFyaWFibGUgdmFyMSBkZXBlbmRzIG9uIHR5cGUgdDEKK0hJTlQ6ICBV c2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCist LSBzaG91bGQgYmUgb2sKK0FMVEVSIFRBQkxFIHQxIEFERCBDT0xVTU4gYyBpbnQ7CistLSBzaG91 bGQgZmFpbAorQUxURVIgVEFCTEUgdDEgQUxURVIgQ09MVU1OIGIgVFlQRSBudW1lcmljOworRVJS T1I6ICBjYW5ub3QgYWx0ZXIgdGFibGUgInQxIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgInB1 YmxpYy52YXIxIiB1c2VzIGl0CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRBQkxFIHQxOwor Q1JFQVRFIFRZUEUgdDEgQVMgKGEgaW50LCBiIGludCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyB0MTsKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRZUEUgdDE7CitFUlJPUjogIGNhbm5vdCBkcm9w IHR5cGUgdDEgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgc2Vz c2lvbiB2YXJpYWJsZSB2YXIxIGRlcGVuZHMgb24gdHlwZSB0MQorSElOVDogIFVzZSBEUk9QIC4u LiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KKy0tIHNob3VsZCBi ZSBvaworQUxURVIgVFlQRSB0MSBBREQgQVRUUklCVVRFIGMgaW50OworLS0gc2hvdWxkIGZhaWwK K0FMVEVSIFRZUEUgdDEgQUxURVIgQVRUUklCVVRFIGIgIFRZUEUgbnVtZXJpYzsKK0VSUk9SOiAg Y2Fubm90IGFsdGVyIHR5cGUgInQxIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52 YXIxIiB1c2VzIGl0CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZUEUgdDE7CitTRVQgbG9n X3N0YXRlbWVudCBUTyBkZWZhdWx0OworQ1JFQVRFIERPTUFJTiB0ZXN0dmFyX2RvbWFpbiBBUyBp bnQ7CitDUkVBVEUgVFlQRSB0ZXN0dmFyX3R5cGUgQVMgKGEgdGVzdHZhcl9kb21haW4pOworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgdGVzdHZhcl9kb21haW47CistLSBzaG91bGQgZmFpbAorQUxU RVIgRE9NQUlOIHRlc3R2YXJfZG9tYWluIEFERCBDSEVDSyh2YWx1ZSA8PiAxMDApOworRVJST1I6 ICBjYW5ub3QgYWx0ZXIgZG9tYWluICJ0ZXN0dmFyX2RvbWFpbiIgYmVjYXVzZSBzZXNzaW9uIHZh cmlhYmxlICJwdWJsaWMudmFyMSIgdXNlcyBpdAorRFJPUCBWQVJJQUJMRSB2YXIxOworQ1JFQVRF IFZBUklBQkxFIHZhcjEgQVMgdGVzdHZhcl90eXBlOworLS0gc2hvdWxkIGZhaWwKK0FMVEVSIERP TUFJTiB0ZXN0dmFyX2RvbWFpbiBBREQgQ0hFQ0sodmFsdWUgPD4gMTAwKTsKK0VSUk9SOiAgY2Fu bm90IGFsdGVyIHR5cGUgInRlc3R2YXJfZG9tYWluIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUg InB1YmxpYy52YXIxIiB1c2VzIGl0CitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBzaG91bGQgYmUg b2sKK0FMVEVSIERPTUFJTiB0ZXN0dmFyX2RvbWFpbiBBREQgQ0hFQ0sodmFsdWUgPD4gMTAwKTsK K0RST1AgVFlQRSB0ZXN0dmFyX3R5cGU7CitEUk9QIFRZUEUgdGVzdHZhcl9kb21haW47CistLSBj aGVjayBldmVudCB0cmlnZ2VyIHN1cHBvcnQKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2 YXJfZXZlbnRfdHJpZ2dlcl9yZXBvcnRfZHJvcHBlZCgpCitSRVRVUk5TIGV2ZW50X3RyaWdnZXIK K0FTICQkCitERUNMQVJFIHIgcmVjb3JkOworQkVHSU4KKyAgRk9SIHIgSU4gU0VMRUNUICogZnJv bSBwZ19ldmVudF90cmlnZ2VyX2Ryb3BwZWRfb2JqZWN0cygpCisgIExPT1AKKyAgICBDT05USU5V RSBXSEVOIE5PVCByLm5vcm1hbCBBTkQgTk9UIHIub3JpZ2luYWw7CisKKyAgICBSQUlTRSBOT1RJ Q0UKKyAgICAgICAnTk9STUFMOiBvcmlnPSUgbm9ybWFsPSUgaXN0ZW1wPSUgdHlwZT0lIGlkZW50 aXR5PSUgbmFtZT0lIGFyZ3M9JScsCisgICAgICAgci5vcmlnaW5hbCwgci5ub3JtYWwsIHIuaXNf dGVtcG9yYXJ5LCByLm9iamVjdF90eXBlLAorICAgICAgIHIub2JqZWN0X2lkZW50aXR5LCByLmFk ZHJlc3NfbmFtZXMsIHIuYWRkcmVzc19hcmdzOworICBFTkQgTE9PUDsKK0VORDsKKyQkIExBTkdV QUdFIHBscGdzcWw7CitDUkVBVEUgRVZFTlQgVFJJR0dFUiBzdmFyX3JlZ3Jlc3NfZXZlbnRfdHJp Z2dlcl9yZXBvcnRfZHJvcHBlZCBPTiBzcWxfZHJvcAorICBXSEVOIFRBRyBJTiAoJ0RST1AgVkFS SUFCTEUnKQorICBFWEVDVVRFIFBST0NFRFVSRSBzdmFyX2V2ZW50X3RyaWdnZXJfcmVwb3J0X2Ry b3BwZWQoKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0RST1AgVkFSSUFCTEUgdmFy MTsKK05PVElDRTogIE5PUk1BTDogb3JpZz10IG5vcm1hbD1mIGlzdGVtcD1mIHR5cGU9c2Vzc2lv biB2YXJpYWJsZSBpZGVudGl0eT1wdWJsaWMudmFyMSBuYW1lPXtwdWJsaWMsdmFyMX0gYXJncz17 fQorRFJPUCBFVkVOVCBUUklHR0VSIHN2YXJfcmVncmVzc19ldmVudF90cmlnZ2VyX3JlcG9ydF9k cm9wcGVkOworLS0gY2hlY2sgY29tbWVudCBvbiB2YXJpYWJsZQorQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgaW50OworQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIHZhcmlhYmxlIGNv bW1lbnQnOworU0VMRUNUIHBnX2NhdGFsb2cub2JqX2Rlc2NyaXB0aW9uKG9pZCwgJ3BnX3Zhcmlh YmxlJykgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworICAgIG9ial9k ZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgc29tZSB2YXJpYWJsZSBj b21tZW50CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tLSBjaGVjayBhY2Nlc3Mg cmlnaHRzIGFuZCBzdXBwb3J0ZWQgQUxURVIKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3Q7CitHUkFO VCBBTEwgT04gU0NIRU1BIHN2YXJ0ZXN0IFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitDUkVB VEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CitDUkVBVEUgUk9MRSByZWdyZXNzX3Zh cmlhYmxlX3JlYWRlcjsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBzdmFydGVzdC52YXIxIFRP IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworUkVWT0tFIEFMTCBPTiBWQVJJQUJMRSBzdmFydGVz dC52YXIxIEZST00gcmVncmVzc192YXJpYWJsZV9yZWFkZXI7CitBTFRFUiBWQVJJQUJMRSBzdmFy dGVzdC52YXIxIE9XTkVSIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitBTFRFUiBWQVJJQUJM RSBzdmFydGVzdC52YXIxIFJFTkFNRSBUTyB2YXJ4eDsKK0FMVEVSIFZBUklBQkxFIHN2YXJ0ZXN0 LnZhcnh4IFNFVCBTQ0hFTUEgcHVibGljOworRFJPUCBWQVJJQUJMRSBwdWJsaWMudmFyeHg7CitB TFRFUiBERUZBVUxUIFBSSVZJTEVHRVMKKyAgIEZPUiBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXIKKyAgIElOIFNDSEVNQSBzdmFydGVzdAorICAgR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFUyBU TyByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKy0tIGNyZWF0aW5nIHZhcmlhYmxlIHdpdGggZGVm YXVsdCBwcml2aWxlZ2VzCitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JF QVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50OworU0VUIFJPTEUgVE8gREVGQVVMVDsK K1xkVisgc3ZhcnRlc3QudmFyMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworICBTY2hlbWEgIHwgTmFtZSB8 ICBUeXBlICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgICAgICAgICAg ICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgRGVzY3JpcHRpb24gCist LS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0KKyBzdmFydGVzdCB8IHZhcjEgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwg cmVncmVzc192YXJpYWJsZV9vd25lciB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVz c192YXJpYWJsZV9vd25lcit8IAorICAgICAgICAgIHwgICAgICB8ICAgICAgICAgfCAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9yZWFkZXI9ci9y ZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgc3ZhcnRl c3QudmFyMTsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0OworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFi bGVfcmVhZGVyOworLS0gY2hlY2sgV0lUSCBHUkFOVCBPUFRJT04KK0NSRUFURSBST0xFIHJlZ3Jl c3NfdmFyaWFibGVfcjE7CitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IyOworU0VUIFJP TEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGlu dDsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjEg V0lUSCBHUkFOVCBPUFRJT047CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IxOworR1JB TlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMiBXSVRIIEdS QU5UIE9QVElPTjsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRUxFQ1QgdmFyYWNsIEZST00gcGdf dmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJhY2wgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge3JlZ3Jlc3NfdmFyaWFibGVfb3du ZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcixyZWdyZXNzX3ZhcmlhYmxlX3IxPXIqL3JlZ3Jl c3NfdmFyaWFibGVfb3duZXIscmVncmVzc192YXJpYWJsZV9yMj1yKi9yZWdyZXNzX3ZhcmlhYmxl X3IxfQorKDEgcm93KQorCitSRVZPS0UgQUxMIFBSSVZJTEVHRVMgT04gVkFSSUFCTEUgdmFyMSBG Uk9NIHJlZ3Jlc3NfdmFyaWFibGVfcjEgQ0FTQ0FERTsKK1NFTEVDVCB2YXJhY2wgRlJPTSBwZ192 YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworICAgICAgICAgICAgICAgICAgICAgICB2 YXJhY2wgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtyZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3Jl Z3Jlc3NfdmFyaWFibGVfb3duZXJ9CisoMSByb3cpCisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFy aWFibGVfb3duZXI7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX3Zh cmlhYmxlX3IxIFdJVEggR1JBTlQgT1BUSU9OOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJs ZV9yMTsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVf cjIgV0lUSCBHUkFOVCBPUFRJT047CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVy OworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMjsK K1NFTEVDVCB2YXJhY2wgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyYWNsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7cmVncmVzc192YXJpYWJsZV9vd25l cj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyLHJlZ3Jlc3NfdmFyaWFibGVfcjE9ciovcmVncmVz c192YXJpYWJsZV9vd25lcixyZWdyZXNzX3ZhcmlhYmxlX3IyPXIqL3JlZ3Jlc3NfdmFyaWFibGVf cjEscmVncmVzc192YXJpYWJsZV9yMj1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXJ9CisoMSByb3cp CisKK1JFVk9LRSBBTEwgT04gVkFSSUFCTEUgdmFyMSBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVfcjIg R1JBTlRFRCBCWSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworU0VMRUNUIHZhcmFjbCBGUk9NIHBn X3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyYWNsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtyZWdyZXNzX3ZhcmlhYmxlX293 bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIscmVncmVzc192YXJpYWJsZV9yMT1yKi9yZWdy ZXNzX3ZhcmlhYmxlX293bmVyLHJlZ3Jlc3NfdmFyaWFibGVfcjI9ciovcmVncmVzc192YXJpYWJs ZV9yMX0KKygxIHJvdykKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgVkFSSUFCTEUgdmFy MTsKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3Q7CitHUkFOVCBBTEwgT04gU0NIRU1BIHN2YXJ0ZXN0 IFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxl X293bmVyOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50OworQ1JFQVRFIFZB UklBQkxFIHN2YXJ0ZXN0LnZhcjIgQVMgaW50OworR1JBTlQgU0VMRUNUIE9OIEFMTCBWQVJJQUJM RVMgSU4gU0NIRU1BIHN2YXJ0ZXN0IFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitTRUxFQ1QgdmFy YWNsIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSBJTiAoJ3ZhcjEnLCAndmFyMicpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyYWNsICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtyZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3Jl Z3Jlc3NfdmFyaWFibGVfb3duZXIscmVncmVzc192YXJpYWJsZV9yMT1yL3JlZ3Jlc3NfdmFyaWFi bGVfb3duZXJ9Cisge3JlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9v d25lcixyZWdyZXNzX3ZhcmlhYmxlX3IxPXIvcmVncmVzc192YXJpYWJsZV9vd25lcn0KKygyIHJv d3MpCisKK1JFVk9LRSBTRUxFQ1QgT04gQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgc3ZhcnRlc3Qg RlJPTSByZWdyZXNzX3ZhcmlhYmxlX3IxOworU0VMRUNUIHZhcmFjbCBGUk9NIHBnX3ZhcmlhYmxl IFdIRVJFIHZhcm5hbWUgSU4gKCd2YXIxJywgJ3ZhcjInKTsKKyAgICAgICAgICAgICAgICAgICAg ICAgdmFyYWNsICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7cmVncmVzc192YXJpYWJsZV9vd25lcj1y dy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyfQorIHtyZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3Jl Z3Jlc3NfdmFyaWFibGVfb3duZXJ9CisoMiByb3dzKQorCitTRVQgUk9MRSBUTyBERUZBVUxUOwor RFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIxOworRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIy OworRFJPUCBTQ0hFTUEgc3ZhcnRlc3Q7CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293 bmVyOworQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy52YXIxIEFTIGludDsKK1NFVCBzZWFyY2hfcGF0 aCBUTyBwdWJsaWM7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgcHVibGljLnZhcjEgVE8gcmVn cmVzc192YXJpYWJsZV9yMTsKK0dSQU5UIFNFTEVDVCwgVVBEQVRFIE9OIFZBUklBQkxFIHB1Ymxp Yy52YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVD VCcpOworIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1YmxpYy5ub3RleGlzdHMnLCAn U0VMRUNUJykgSVMgTlVMTDsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisK K1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3ZhcjEnLCAnU0VMRUNUJyk7 IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICd2YXIxJywgJ1VQREFURScpOyAt LSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCAndmFyMScsICdTRUxFQ1QnKTsgLS0g dAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgJ3ZhcjEnLCAnVVBEQVRFJyk7IC0tIHQK KyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSgndmFyMScsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQor CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCd2YXIxJywgJ1VQREFURScp OyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBvaWQgQVMgdmFyaWQKKyAg RlJPTSBwZ192YXJpYWJsZQorICBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnIEFORCB2YXJuYW1lc3Bh Y2UgPSAncHVibGljJzo6cmVnbmFtZXNwYWNlIFxnc2V0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlKCd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0Ciso MSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3ZhcjEnLCAn VVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsIDp2YXJpZCwgJ1NF TEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCA6dmFyaWQsICdVUERB VEUnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgOnZhcmlkLCAnU0VMRUNU Jyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsIDp2YXJpZCwgJ1VQREFURScp OyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygx IHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSg6dmFyaWQsICdV UERBVEUnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Np b25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJzo6cmVncm9sZSwgJ3Zh cjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMSc6OnJlZ3Jv bGUsICd2YXIxJywgJ1VQREFURScpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NF TEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjIn OjpyZWdyb2xlLCAndmFyMScsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93 KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zhcmlh YmxlX3IyJzo6cmVncm9sZSwgJ3ZhcjEnLCAnVVBEQVRFJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQK KygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVz c192YXJpYWJsZV9yMSc6OnJlZ3JvbGUsIDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Uo J3JlZ3Jlc3NfdmFyaWFibGVfcjEnOjpyZWdyb2xlLCA6dmFyaWQsICdVUERBVEUnKTsgLS0gZgor IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJzo6cmVncm9sZSwgOnZhcmlkLCAnU0VMRUNUJyk7 IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMic6OnJlZ3JvbGUsIDp2YXJpZCwgJ1VQ REFURScpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFVCBST0xFIFRPIERFRkFV TFQ7CitTRVQgc2VhcmNoX3BhdGggVE8gREVGQVVMVDsKK0RST1AgVkFSSUFCTEUgcHVibGljLnZh cjE7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMTsKK0RST1AgUk9MRSByZWdyZXNzX3Zh cmlhYmxlX3IyOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9w YXJhbGxlbF9zY2hlZHVsZQppbmRleCAxZWRkOWU0NWViLi43ZjRmNzRlZWVhIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTExMSw3ICsxMTEsNyBAQCB0ZXN0OiBqc29uIGpzb25i IGpzb25fZW5jb2RpbmcganNvbnBhdGgganNvbnBhdGhfZW5jb2RpbmcganNvbmJfanNvbnBhdGgg c3FsanNvbgogIyBOQjogdGVtcC5zcWwgZG9lcyBhIHJlY29ubmVjdCB3aGljaCB0cmFuc2llbnRs eSB1c2VzIDIgY29ubmVjdGlvbnMsCiAjIHNvIGtlZXAgdGhpcyBwYXJhbGxlbCBncm91cCB0byBh dCBtb3N0IDE5IHRlc3RzCiAjIC0tLS0tLS0tLS0KLXRlc3Q6IHBsYW5jYWNoZSBsaW1pdCBwbHBn c3FsIGNvcHkyIHRlbXAgZG9tYWluIHJhbmdlZnVuY3MgcHJlcGFyZSBjb252ZXJzaW9uIHRydW5j YXRlIGFsdGVyX3RhYmxlIHNlcXVlbmNlIHBvbHltb3JwaGlzbSByb3d0eXBlcyByZXR1cm5pbmcg bGFyZ2VvYmplY3Qgd2l0aCB4bWwKK3Rlc3Q6IHBsYW5jYWNoZSBsaW1pdCBwbHBnc3FsIGNvcHky IHRlbXAgZG9tYWluIHJhbmdlZnVuY3MgcHJlcGFyZSBjb252ZXJzaW9uIHRydW5jYXRlIGFsdGVy X3RhYmxlIHNlcXVlbmNlIHBvbHltb3JwaGlzbSByb3d0eXBlcyByZXR1cm5pbmcgbGFyZ2VvYmpl Y3Qgd2l0aCB4bWwgc2Vzc2lvbl92YXJpYWJsZXMKIAogIyAtLS0tLS0tLS0tCiAjIEFub3RoZXIg Z3JvdXAgb2YgcGFyYWxsZWwgdGVzdHMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2RlcGVuZGVuY3kuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZGVwZW5kZW5jeS5zcWwKaW5k ZXggOGQ3NGVkNzEyMi4uNmMxOGI3Zjg0MCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvZGVwZW5kZW5jeS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZGVwZW5kZW5jeS5z cWwKQEAgLTExNCwzICsxMTQsMTcgQEAgRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIyOwogRFJP UCBPV05FRCBCWSByZWdyZXNzX2RlcF91c2VyMiwgcmVncmVzc19kZXBfdXNlcjA7CiBEUk9QIFVT RVIgcmVncmVzc19kZXBfdXNlcjI7CiBEUk9QIFVTRVIgcmVncmVzc19kZXBfdXNlcjA7CisKKy0t IGRlcGVuZGVuY3kgb24gdHlwZQorQ1JFQVRFIERPTUFJTiB2YXJkb21haW4gQVMgaW50OworQ1JF QVRFIFRZUEUgdmFydHlwZSBBUyAoYSBpbnQsIGIgaW50LCBjIHZhcmRvbWFpbik7CitDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyB2YXJ0eXBlOworCistLSBzaG91bGQgZmFpbAorRFJPUCBET01BSU4g dmFyZG9tYWluOworRFJPUCBUWVBFIHZhcnR5cGU7CisKKy0tIGNsZWFuIHVwCitEUk9QIFZBUklB QkxFIHZhcjE7CitEUk9QIFRZUEUgdmFydHlwZTsKK0RST1AgRE9NQUlOIHZhcmRvbWFpbjsKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvcHNxbC5zcWwKaW5kZXggYzUwMjFmYzBiMS4uNjY2ZWRkYjYzMiAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv cHNxbC5zcWwKQEAgLTE2MzEsNiArMTYzMSwxOSBAQCBDT01NSVQ7CiBEUk9QIFRBQkxFIGJsYTsK IERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKIAorLS0gc2Vzc2lvbiB2YXJpYWJsZSB0ZXN0CitD UkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworU0VUIFJPTEUgVE8gcmVncmVzc192 YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXIgQ09MTEFURSAi QyI7CitcZFYrIHZhcjEKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsK K0NPTU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CitcZFYrIHZh cjEKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgUk9M RSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworCiAtLSBjaGVjayBkZXNjcmliaW5nIGludmFsaWQg bXVsdGlwYXJ0IG5hbWVzCiBcZEEgcmVncmVzc2lvbi5oZWFwCiBcZEEgbm9uZXN1Y2guaGVhcApA QCAtMTc0Miw2ICsxNzU1LDkgQEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogXGRYIG5vbmVz dWNoLnB1YmxpYy5mdW5jX2RlcHNfc3RhdAogXGR5IHJlZ3Jlc3Npb24ubXlldnQKIFxkeSBub25l c3VjaC5teWV2dAorXGRWIGhvc3QucmVncmVzc2lvbi5wdWJsaWMudmFyCitcZFYgcmVncmVzc2lv bnxteWRiLnB1YmxpYy52YXIKK1xkViBub25lc3VjaC5wdWJsaWMudmFyCiAKIC0tIGNoZWNrIHRo YXQgZG90cyB3aXRoaW4gcXVvdGVkIG5hbWUgc2VnbWVudHMgYXJlIG5vdCBjb3VudGVkCiBcZEEg Im5vLnN1Y2guYWNjZXNzLm1ldGhvZCIKQEAgLTE3ODMsNiArMTc5OSw4IEBAIERST1AgRlVOQ1RJ T04gcHNxbF9lcnJvcjsKIFxkeCAibm8uc3VjaC5pbnN0YWxsZWQuZXh0ZW5zaW9uIgogXGRYICJu by5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCiBcZHkgIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIK K1xkViAibm8uc3VjaC52YXJpYWJsZSIKKwogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIHNj aGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkQSAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmFjY2Vz cy5tZXRob2QiCkBAIC0xODIzLDYgKzE4NDEsNyBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7 CiBcZHggIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5pbnN0YWxsZWQuZXh0ZW5zaW9uIgogXGRY ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKIFxkeSAibm8u c3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCitcZFYgIm5vLnN1Y2guc2NoZW1h Ii4ibm8uc3VjaC52YXJpYWJsZSIKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGN1cnJlbnQgZGF0YWJh c2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZHQgcmVncmVzc2lvbi4ibm8u c3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxlLnJlbGF0aW9uIgpAQCAtMTg0Nyw2ICsxODY2LDcg QEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogXGRQIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2No ZW1hIi4ibm8uc3VjaC5wYXJ0aXRpb25lZC5yZWxhdGlvbiIKIFxkVCByZWdyZXNzaW9uLiJuby5z dWNoLnNjaGVtYSIuIm5vLnN1Y2guZGF0YS50eXBlIgogXGRYIHJlZ3Jlc3Npb24uIm5vLnN1Y2gu c2NoZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgorXGRWIHJlZ3Jlc3Npb24uIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRv dHRlZCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkdCAibm8u c3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlvbiIK QEAgLTE4NzIsNiArMTg5Miw3IEBAIERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKIFxkUCAibm8u c3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5wYXJ0aXRpb25lZC5yZWxh dGlvbiIKIFxkVCAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5k YXRhLnR5cGUiCiBcZFggIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1 Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKK1xkViAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2gu c2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKIAogLS0gY2hlY2sgXGRyZyBhbmQgXGR1CiBDUkVB VEUgUk9MRSByZWdyZXNzX2R1X3JvbGUwOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjJhNGQ0 MjlhOTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwKQEAgLTAsMCArMSwyNjMgQEAKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFi bGVfb3duZXI7CisKK1NFVCBsb2dfc3RhdGVtZW50IFRPIGRkbDsKKworLS0gc2hvdWxkIGJlIG9r CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisKKy0tIHNob3VsZCBmYWlsLCBwc2V1ZG90 eXBlcyBhcmUgbm90IGFsbG93ZWQKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGFueWVsZW1lbnQ7 CisKKy0tIHNob3VsZCBiZSBvaywgZG8gbm90aGluZworRFJPUCBWQVJJQUJMRSBJRiBFWElTVFMg dmFyMjsKKworLS0gZG8gbm90aGluZworQ1JFQVRFIFZBUklBQkxFIElGIE5PVCBFWElTVFMgdmFy MSBBUyBpbnQ7CisKKy0tIHNob3VsZCBmYWlsCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7 CisKKy0tIHNob3VsZCBiZSBvaworRFJPUCBWQVJJQUJMRSBJRiBFWElTVFMgdmFyMTsKKworLS0g dGhlIHZhcmlhYmxlIGNhbiB1c2UgY29tcG9zaXRlIHR5cGVzCitDUkVBVEUgVEFCTEUgdDEgKGEg aW50LCBiIGludCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0MTsKKworLS0gc2hvdWxkIGZh aWwKK0RST1AgVEFCTEUgdDE7CisKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVEFCTEUgdDEgQURE IENPTFVNTiBjIGludDsKKworLS0gc2hvdWxkIGZhaWwKK0FMVEVSIFRBQkxFIHQxIEFMVEVSIENP TFVNTiBiIFRZUEUgbnVtZXJpYzsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB0 MTsKKworQ1JFQVRFIFRZUEUgdDEgQVMgKGEgaW50LCBiIGludCk7CitDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyB0MTsKKworLS0gc2hvdWxkIGZhaWwKK0RST1AgVFlQRSB0MTsKKworLS0gc2hvdWxk IGJlIG9rCitBTFRFUiBUWVBFIHQxIEFERCBBVFRSSUJVVEUgYyBpbnQ7CisKKy0tIHNob3VsZCBm YWlsCitBTFRFUiBUWVBFIHQxIEFMVEVSIEFUVFJJQlVURSBiICBUWVBFIG51bWVyaWM7CisKK0RS T1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVFlQRSB0MTsKKworU0VUIGxvZ19zdGF0ZW1lbnQgVE8g ZGVmYXVsdDsKKworQ1JFQVRFIERPTUFJTiB0ZXN0dmFyX2RvbWFpbiBBUyBpbnQ7CitDUkVBVEUg VFlQRSB0ZXN0dmFyX3R5cGUgQVMgKGEgdGVzdHZhcl9kb21haW4pOworCitDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyB0ZXN0dmFyX2RvbWFpbjsKKworLS0gc2hvdWxkIGZhaWwKK0FMVEVSIERPTUFJ TiB0ZXN0dmFyX2RvbWFpbiBBREQgQ0hFQ0sodmFsdWUgPD4gMTAwKTsKKworRFJPUCBWQVJJQUJM RSB2YXIxOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0ZXN0dmFyX3R5cGU7CisKKy0tIHNo b3VsZCBmYWlsCitBTFRFUiBET01BSU4gdGVzdHZhcl9kb21haW4gQUREIENIRUNLKHZhbHVlIDw+ IDEwMCk7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBE T01BSU4gdGVzdHZhcl9kb21haW4gQUREIENIRUNLKHZhbHVlIDw+IDEwMCk7CisKK0RST1AgVFlQ RSB0ZXN0dmFyX3R5cGU7CitEUk9QIFRZUEUgdGVzdHZhcl9kb21haW47CisKKy0tIGNoZWNrIGV2 ZW50IHRyaWdnZXIgc3VwcG9ydAorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3Zhcl9ldmVu dF90cmlnZ2VyX3JlcG9ydF9kcm9wcGVkKCkKK1JFVFVSTlMgZXZlbnRfdHJpZ2dlcgorQVMgJCQK K0RFQ0xBUkUgciByZWNvcmQ7CitCRUdJTgorICBGT1IgciBJTiBTRUxFQ1QgKiBmcm9tIHBnX2V2 ZW50X3RyaWdnZXJfZHJvcHBlZF9vYmplY3RzKCkKKyAgTE9PUAorICAgIENPTlRJTlVFIFdIRU4g Tk9UIHIubm9ybWFsIEFORCBOT1Qgci5vcmlnaW5hbDsKKworICAgIFJBSVNFIE5PVElDRQorICAg ICAgICdOT1JNQUw6IG9yaWc9JSBub3JtYWw9JSBpc3RlbXA9JSB0eXBlPSUgaWRlbnRpdHk9JSBu YW1lPSUgYXJncz0lJywKKyAgICAgICByLm9yaWdpbmFsLCByLm5vcm1hbCwgci5pc190ZW1wb3Jh cnksIHIub2JqZWN0X3R5cGUsCisgICAgICAgci5vYmplY3RfaWRlbnRpdHksIHIuYWRkcmVzc19u YW1lcywgci5hZGRyZXNzX2FyZ3M7CisgIEVORCBMT09QOworRU5EOworJCQgTEFOR1VBR0UgcGxw Z3NxbDsKKworQ1JFQVRFIEVWRU5UIFRSSUdHRVIgc3Zhcl9yZWdyZXNzX2V2ZW50X3RyaWdnZXJf cmVwb3J0X2Ryb3BwZWQgT04gc3FsX2Ryb3AKKyAgV0hFTiBUQUcgSU4gKCdEUk9QIFZBUklBQkxF JykKKyAgRVhFQ1VURSBQUk9DRURVUkUgc3Zhcl9ldmVudF90cmlnZ2VyX3JlcG9ydF9kcm9wcGVk KCk7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0RST1AgVkFSSUFCTEUgdmFyMTsK KworRFJPUCBFVkVOVCBUUklHR0VSIHN2YXJfcmVncmVzc19ldmVudF90cmlnZ2VyX3JlcG9ydF9k cm9wcGVkOworCistLSBjaGVjayBjb21tZW50IG9uIHZhcmlhYmxlCitDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyBpbnQ7CitDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgdmFyaWFibGUg Y29tbWVudCc7CitTRUxFQ1QgcGdfY2F0YWxvZy5vYmpfZGVzY3JpcHRpb24ob2lkLCAncGdfdmFy aWFibGUnKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisKK0RST1Ag VkFSSUFCTEUgdmFyMTsKKworLS0tIGNoZWNrIGFjY2VzcyByaWdodHMgYW5kIHN1cHBvcnRlZCBB TFRFUgorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKK0dSQU5UIEFMTCBPTiBTQ0hFTUEgc3ZhcnRl c3QgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKKworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0 LnZhcjEgQVMgaW50OworCitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKwor R1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgVE8gcmVncmVzc192YXJpYWJs ZV9yZWFkZXI7CitSRVZPS0UgQUxMIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgRlJPTSByZWdy ZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBPV05F UiBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFy MSBSRU5BTUUgVE8gdmFyeHg7CitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdC52YXJ4eCBTRVQgU0NI RU1BIHB1YmxpYzsKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMudmFyeHg7CisKK0FMVEVSIERFRkFV TFQgUFJJVklMRUdFUworICAgRk9SIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcgorICAgSU4g U0NIRU1BIHN2YXJ0ZXN0CisgICBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIHJlZ3Jlc3Nf dmFyaWFibGVfcmVhZGVyOworCistLSBjcmVhdGluZyB2YXJpYWJsZSB3aXRoIGRlZmF1bHQgcHJp dmlsZWdlcworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJ QUJMRSBzdmFydGVzdC52YXIxIEFTIGludDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1xkVisg c3ZhcnRlc3QudmFyMQorCitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjE7CisKK0RST1AgU0NI RU1BIHN2YXJ0ZXN0OworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworCistLSBj aGVjayBXSVRIIEdSQU5UIE9QVElPTgorQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMTsK K0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisKK0dSQU5UIFNF TEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjEgV0lUSCBHUkFOVCBP UFRJT047CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IxOworR1JBTlQgU0VMRUNUIE9O IFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMiBXSVRIIEdSQU5UIE9QVElPTjsK K1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFTEVDVCB2YXJhY2wgRlJPTSBwZ192YXJpYWJsZSBX SEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworCitSRVZPS0UgQUxMIFBSSVZJTEVHRVMgT04gVkFSSUFC TEUgdmFyMSBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVfcjEgQ0FTQ0FERTsKKworU0VMRUNUIHZhcmFj bCBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisKK1NFVCBST0xFIFRP IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CisKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIx IFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjEgV0lUSCBHUkFOVCBPUFRJT047CitTRVQgUk9MRSBUTyBy ZWdyZXNzX3ZhcmlhYmxlX3IxOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVn cmVzc192YXJpYWJsZV9yMiBXSVRIIEdSQU5UIE9QVElPTjsKKworU0VUIFJPTEUgVE8gcmVncmVz c192YXJpYWJsZV9vd25lcjsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jl c3NfdmFyaWFibGVfcjI7CisKK1NFTEVDVCB2YXJhY2wgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2 YXJuYW1lID0gJ3ZhcjEnOworCitSRVZPS0UgQUxMIE9OIFZBUklBQkxFIHZhcjEgRlJPTSByZWdy ZXNzX3ZhcmlhYmxlX3IyIEdSQU5URUQgQlkgcmVncmVzc192YXJpYWJsZV9vd25lcjsKKworU0VM RUNUIHZhcmFjbCBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisKK1NF VCBST0xFIFRPIERFRkFVTFQ7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIFNDSEVN QSBzdmFydGVzdDsKKworR1JBTlQgQUxMIE9OIFNDSEVNQSBzdmFydGVzdCBUTyByZWdyZXNzX3Zh cmlhYmxlX293bmVyOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworCitD UkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgc3Zh cnRlc3QudmFyMiBBUyBpbnQ7CisKK0dSQU5UIFNFTEVDVCBPTiBBTEwgVkFSSUFCTEVTIElOIFND SEVNQSBzdmFydGVzdCBUTyByZWdyZXNzX3ZhcmlhYmxlX3IxOworCitTRUxFQ1QgdmFyYWNsIEZS T00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSBJTiAoJ3ZhcjEnLCAndmFyMicpOworCitSRVZP S0UgU0VMRUNUIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIHN2YXJ0ZXN0IEZST00gcmVncmVz c192YXJpYWJsZV9yMTsKKworU0VMRUNUIHZhcmFjbCBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZh cm5hbWUgSU4gKCd2YXIxJywgJ3ZhcjInKTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworRFJP UCBWQVJJQUJMRSBzdmFydGVzdC52YXIxOworRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIyOwor CitEUk9QIFNDSEVNQSBzdmFydGVzdDsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9v d25lcjsKKworQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy52YXIxIEFTIGludDsKKworU0VUIHNlYXJj aF9wYXRoIFRPIHB1YmxpYzsKKworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHB1YmxpYy52YXIx IFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitHUkFOVCBTRUxFQ1QsIFVQREFURSBPTiBWQVJJQUJM RSBwdWJsaWMudmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IyOworCitTRUxFQ1QgaGFzX3Nlc3Np b25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1YmxpYy52YXIx JywgJ1NFTEVDVCcpOworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVn cmVzc192YXJpYWJsZV9yMScsICdwdWJsaWMubm90ZXhpc3RzJywgJ1NFTEVDVCcpIElTIE5VTEw7 CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CisKK1NFTEVDVCBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAndmFyMScsICdTRUxF Q1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVz c192YXJpYWJsZV9yMScsICd2YXIxJywgJ1VQREFURScpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Np b25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgJ3ZhcjEnLCAnU0VM RUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jl c3NfdmFyaWFibGVfcjInLCAndmFyMScsICdVUERBVEUnKTsgLS0gdAorCitTRUxFQ1QgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1Qg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCd2YXIxJywgJ1VQREFURScpOyAtLSBmCisK K1NFTEVDVCBvaWQgQVMgdmFyaWQKKyAgRlJPTSBwZ192YXJpYWJsZQorICBXSEVSRSB2YXJuYW1l ID0gJ3ZhcjEnIEFORCB2YXJuYW1lc3BhY2UgPSAncHVibGljJzo6cmVnbmFtZXNwYWNlIFxnc2V0 CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3ZhcjEnLCAnU0VMRUNU Jyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3ZhcjEnLCAn VVBEQVRFJyk7IC0tIGYKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgn cmVncmVzc192YXJpYWJsZV9yMScsIDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgOnZhcmlk LCAnVVBEQVRFJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Uo J3JlZ3Jlc3NfdmFyaWFibGVfcjInLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsIDp2YXJp ZCwgJ1VQREFURScpOyAtLSB0CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UoOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoOnZhcmlkLCAnVVBEQVRFJyk7IC0tIGYKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMSc6OnJlZ3JvbGUsICd2YXIxJywg J1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdy ZWdyZXNzX3ZhcmlhYmxlX3IxJzo6cmVncm9sZSwgJ3ZhcjEnLCAnVVBEQVRFJyk7IC0tIGYKK1NF TEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjIn OjpyZWdyb2xlLCAndmFyMScsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMic6OnJlZ3JvbGUsICd2YXIxJywg J1VQREFURScpOyAtLSB0CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Uo J3JlZ3Jlc3NfdmFyaWFibGVfcjEnOjpyZWdyb2xlLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9y MSc6OnJlZ3JvbGUsIDp2YXJpZCwgJ1VQREFURScpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJzo6cmVncm9sZSwgOnZhcmlk LCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Uo J3JlZ3Jlc3NfdmFyaWFibGVfcjInOjpyZWdyb2xlLCA6dmFyaWQsICdVUERBVEUnKTsgLS0gdAor CitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIHNlYXJjaF9wYXRoIFRPIERFRkFVTFQ7CisKK0RS T1AgVkFSSUFCTEUgcHVibGljLnZhcjE7CisKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3Ix OworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CisKK0RST1AgUk9MRSByZWdyZXNzX3Zh cmlhYmxlX293bmVyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxp c3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCA5NzFhMTUwZGJiLi44 ZmUwOTdjNWI5IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAor KysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtNTM1LDYgKzUzNSw3IEBA IENyZWF0ZVJvbGVTdG10CiBDcmVhdGVTY2hlbWFTdG10CiBDcmVhdGVTY2hlbWFTdG10Q29udGV4 dAogQ3JlYXRlU2VxU3RtdAorQ3JlYXRlU2Vzc2lvblZhclN0bXQKIENyZWF0ZVN0YXRzU3RtdAog Q3JlYXRlU3RtdAogQ3JlYXRlU3RtdENvbnRleHQKQEAgLTg3NSw2ICs4NzYsNyBAQCBGb3JtRGF0 YV9wZ190c19wYXJzZXIKIEZvcm1EYXRhX3BnX3RzX3RlbXBsYXRlCiBGb3JtRGF0YV9wZ190eXBl CiBGb3JtRGF0YV9wZ191c2VyX21hcHBpbmcKK0Zvcm1EYXRhX3BnX3ZhcmlhYmxlCiBGb3JtRXh0 cmFEYXRhX3BnX2F0dHJpYnV0ZQogRm9ybV9wZ19hZ2dyZWdhdGUKIEZvcm1fcGdfYW0KQEAgLTkz NCw2ICs5MzYsNyBAQCBGb3JtX3BnX3RzX3BhcnNlcgogRm9ybV9wZ190c190ZW1wbGF0ZQogRm9y bV9wZ190eXBlCiBGb3JtX3BnX3VzZXJfbWFwcGluZworRm9ybV9wZ192YXJpYWJsZQogRm9ybWF0 Tm9kZQogRnJlZUJsb2NrTnVtYmVyQXJyYXkKIEZyZWVMaXN0RGF0YQpAQCAtMzA4NSw2ICszMDg4 LDcgQEAgVmFyU3RyaW5nCiBWYXJTdHJpbmdTb3J0U3VwcG9ydAogVmFyaWFibGUKIFZhcmlhYmxl QXNzaWduSG9vaworVmFyaWFibGVJbmZvCiBWYXJpYWJsZVNldEtpbmQKIFZhcmlhYmxlU2V0U3Rt dAogVmFyaWFibGVTaG93U3RtdAotLSAKMi40Ny4xCgo= --000000000000ee56b206299a729a--