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 1tOl3d-008YGX-UG for pgsql-hackers@arkaria.postgresql.org; Fri, 20 Dec 2024 22:01:19 +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 1tOl3d-00HYAi-6d for pgsql-hackers@arkaria.postgresql.org; Fri, 20 Dec 2024 22:01:16 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tOl3b-00HYAU-Lb for pgsql-hackers@lists.postgresql.org; Fri, 20 Dec 2024 22:01:16 +0000 Received: from mail-yw1-x1133.google.com ([2607:f8b0:4864:20::1133]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1tOl3C-000cRz-Ue for pgsql-hackers@lists.postgresql.org; Fri, 20 Dec 2024 22:01:14 +0000 Received: by mail-yw1-x1133.google.com with SMTP id 00721157ae682-6f150ddc86dso19909787b3.1 for ; Fri, 20 Dec 2024 14:00:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1734732050; x=1735336850; 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=TXjYNllBAhyAy6wd26mYubCmcvLjXbXuqxovOoJmjEM=; b=NQQh5Ma0WJ4+8Ii9oJInm/IJ5Xb396G1V4Y3zw3p21u6QWQwtGwfO7H1ZknzQfbACU qh6RoVDSn1zFZKVMH/ZQ+GlvZ+DAc+qYBUKM3fHta1B5ylh1rhYgHlD5002iIUyhE56Z 7ZbkHaVbc+2OuLZxhSTbzdu7eOGqL3gxsrFtzfJ3+Wfuy+4FSZSteWiEXuZ7AqGe2BkR 3dr8MEmzvmOIUNf4PlBaboxnHSHaHF7gwXX+hsr+yy6cXGAKOn6HLY1ldsaV+8LesfH0 VORBlQ71LuJNeSS+kN75WjaU6v2ab4oeH9YGhdRPuWdvq+gJjd4i2MIO5d0RcrVkhn2l SuKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1734732050; x=1735336850; 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=TXjYNllBAhyAy6wd26mYubCmcvLjXbXuqxovOoJmjEM=; b=kTmaCaqtClVA2IfgxhukoWc2bR+cuDx5/T7AyEnNIkgyiZNone3j5eqgdzuq5NTL4L kpu6CWyd52m71WAhmmdmrQKxKrjp9sSwebPrFZ93x7c87Yhz3U/7sqmG5NSnQ6xbXnap b5Fx2OqQegkrVH+sxwF5nwNfZHmanD5T6Lhh+fKJtdn8msjMFpj9W0otV/fxJThdR8k6 8fgF3iVW2RMnUFCn8inIB7fI8rPjT+rhvXag0w+3XJ4uEAN+n98tpS3lJzOx5/aNzH5K ursfyfH7mP2porco5ijRMjyMcEnmU9aM9xt/FFxBLs1WNzblvtsrB/ZFa+z5ZxjL1s6y tOrw== X-Forwarded-Encrypted: i=1; AJvYcCUb/v4D4ohMgBAdIRx2SCy1dh/SuReVCXW3590tLAjJin6XVQvn/m6TEwEjq+Vr+X3lbIl79e0powmFT8H6@lists.postgresql.org X-Gm-Message-State: AOJu0Ywf50IOHdmhXpANlSpag1f2xo3yjm5z9/wrlX7vJ6IQOVIiaZ8T HCRqn5/fe2RTVhkpNdmuKm+iD0Om03Kc1uDOCriYlxxPcV5CFpTDAVzTb6jMz6J+N2s+pwJjhKi SAd4S6iyOAMDoIjBFrP3NkmA8kVQ= X-Gm-Gg: ASbGnct1BRqSTspmeXQstraMYd6flDDJw1mb+3fIvJLuPHhu4veNyjaR8HD1PUqyqH+ 1++3nCr0GL67d9jkH5qwDsKJWn/2QeN6AekikCQHRJoV32ju8Wi9pcz++e4SXZqAvqOEQZHM= X-Google-Smtp-Source: AGHT+IELA81qImG+qvbYtieECB0F8mYexBfVWEqvP0p18+X9PmzZKC2uUrbM0SqcCDOzNyWfrusYew5CueJZ0p2Qr+E= X-Received: by 2002:a05:690c:62ca:b0:6ef:522a:1c16 with SMTP id 00721157ae682-6f3f8217109mr39872077b3.26.1734732049907; Fri, 20 Dec 2024 14:00:49 -0800 (PST) MIME-Version: 1.0 References: <3chredgnjcmccym2kczawfih226b4ac6co7p6z4jeofevrcosi@mrsxkx2x2c65> <20241120201313.t4wbhld4ktgielaf@erthalion.local> In-Reply-To: From: Pavel Stehule Date: Fri, 20 Dec 2024 23:00:12 +0100 Message-ID: Subject: Re: Re: proposal: schema variables To: jian he Cc: Dmitry Dolgov <9erthalion6@gmail.com>, Laurenz Albe , Erik Rijkers , Michael Paquier , Amit Kapila , DUVAL REMI , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000009e568d0629bac7df" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000009e568d0629bac7df Content-Type: multipart/alternative; boundary="0000000000009e568b0629bac7dd" --0000000000009e568b0629bac7dd Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi p=C3=A1 20. 12. 2024 v 8:58 odes=C3=ADlatel jian he napsal: > hi. > review is based on > v20241219-0002-Storage-for-session-variables-and-SQL-interface.patch > and > v20241219-0001-Enhancing-catalog-for-support-session-variables-and-.patch= . > > in doc/src/sgml/catalogs.sgml > > > > defaclobjtype char > > > Type of object this entry is for: > r =3D relation (table, view), > S =3D sequence, > f =3D function, > T =3D type, > n =3D schema > > > this need updated for session variable? > yes, fixed > > psql meta command \ddp > src/bin/psql/describe.c listDefaultACLs > also need to change. > fixed > ----------------<<>>------------------------- > +-- show variable > +SELECT public.svar; > +SELECT public.svar.c; > +SELECT (public.svar).*; > + > +-- the variable is shadowed, raise error > +SELECT public.svar.c FROM public.svar; > + > +-- can be fixed by alias > +SELECT public.svar.c FROM public.svar x > > The above tests are duplicated in session_variables.sql. > It looks like duplicated test, but it isn't - look on session_variables.out +-- the variable is shadowed, raise error +SELECT public.svar.c FROM public.svar; +ERROR: column svar.c does not exist +LINE 1: SELECT public.svar.c FROM public.svar; + ^ +-- can be fixed by alias +SELECT public.svar.c FROM public.svar x; + c.. +----- + 300 +(1 row) > ----------------<<>>------------------------- > --- a/src/include/nodes/plannodes.h > +++ b/src/include/nodes/plannodes.h > @@ -49,7 +49,7 @@ typedef struct PlannedStmt > > NodeTag type; > > - CmdType commandType; /* > select|insert|update|delete|merge|utility */ > + CmdType commandType; /* > select|let|insert|update|delete|merge|utility */ > > since we don't have CMD_LET CmdType. > so this comment change is not necessary? > true, removed > ----------------<<>>------------------------- > the following are simple tests that triggers makeParamSessionVariable err= or > messages. we don't have related tests, we can add it on > session_variables.sql. > > create type t1 as (a int, b int); > CREATE VARIABLE v1 text; > CREATE VARIABLE v2 as t1; > select v1.a; > select v2.c; > > done > also > select v2.c; > ERROR: could not identify column "c" in variable > LINE 1: select v2.c; > ^ > the error message is no good. i think we want: > ERROR: could not identify column "c" in variable "public.v1" > done ----------------<<>>------------------------- > + /* > + * Check for duplicates. Note that this does not really prevent > + * duplicates, it's here just to provide nicer error message in comm= on > + * case. The real protection is the unique key on the catalog. > + */ > + if (SearchSysCacheExists2(VARIABLENAMENSP, > + PointerGetDatum(varName), > + ObjectIdGetDatum(varNamespace))) > + { > + } > I am confused by these comments. i think the SearchSysCacheExists2 > do actually prevent duplicates. > I noticed that publication_add_relation also has similar comments. > RowExclusiveLock doesn't block concurrent inserts. So theoretically, two sessions can try to create variables with the same name and same schema. Using syscache cache cannot protect against this scenario. The real protection is only a unique index. It is same like IF NOT EXISTS(SELECT * FROM foo WHERE id =3D 10) THEN INSERT INTO foo(id) VALUES(10) END IF; This fragment doesn't protect us against duplicit id in table foo. The real protection can be done only by unique index, but when you use this fragment, then you can reduce error messages like `unique index violation` and that can benefit in some scenarios. I think this comment is correct, but enhancig is welcome. > ----------------<<>>------------------------- > typedef struct LetStmt > { > NodeTag type; > List *target; /* target variable */ > Node *query; /* source expression */ > int location; > } LetStmt; > here, location should be a type of ParseLoc. > changed > ----------------<<>>------------------------- > in 0001, 0002, function SetSessionVariableWithSecurityCheck > never being used. > moved to patch 18 plpgsql-implementation-for-LET-statement > ----------------<<>>------------------------- > +/* > + * transformLetStmt - > + * transform an Let Statement > + */ > +static Query * > +transformLetStmt(ParseState *pstate, LetStmt *stmt) > ... > + /* > + * Save target session variable ID. This value is used multiple > times: by > + * the query rewriter (for getting related defexpr), by planner (for > + * acquiring an AccessShareLock on target variable), and by the > executor > + * (we need to know the target variable ID). > + */ > + query->resultVariable =3D varid; > > "defexpr", do you mean "default expression"? > Generally letsmt is like: "let variable =3D (SelectStmt)" > is there nothing related to the DEFAULT expression? > "(we need to know the target variable ID)." in ExecuteLetStmt that is tru= e. > but I commented out the following lines, the regress test still > succeeded. > This comment is partially obsolete - early implementations of LET statements supports syntax LET var =3D DEFAULT. I removed this feature, because the implementation was not trivial and the benefit is not too high. I changed this comment to <-->/* <--> * Save target session variable ID. It is used later for <--> * acquiring an AccessShareLock on target variable, setting <--> * plan dependency and finally for creating VariableDestReceiver. <--> */ > > extract_query_dependencies_walker > /* record dependency on the target variable of a LET command */ > // if (OidIsValid(query->resultVariable)) > // record_plan_variable_dependency(context, query->resultVariable); > I checked regress tests, and plan invalidation is tested there, but not for target variable. I enhanced this test to check the invalidation of plans when dropped variable is used as target. SET plan_cache_mode TO force_generic_plan; LET var1 =3D 3.14; SELECT plpgsqlfx(); LET var1 =3D 3.14 * 2; SELECT plpgsqlfx(); SELECT plpgsqlfx2(10.0); SELECT var2; DROP VARIABLE var1; DROP VARIABLE var2; -- dependency (plan invalidation) should work CREATE VARIABLE var1 AS numeric; CREATE VARIABLE var2 AS numeric; LET var1 =3D 3.14 * 3; SELECT plpgsqlfx(); LET var1 =3D 3.14 * 4; SELECT plpgsqlfx(); SELECT plpgsqlfx2(10.0); SELECT var2; DROP VARIABLE var1; DROP VARIABLE var2; DROP FUNCTION plpgsqlfx(); DROP FUNCTION plpgsqlfx2(); SET plan_cache_mode TO DEFAULT; > > ScanQueryForLocks > // /* process session variables */ > // if (OidIsValid(parsetree->resultVariable)) > // { > // if (acquire) > // LockDatabaseObject(VariableRelationId, > parsetree->resultVariable, > // 0, AccessShareLock); > // else > // UnlockDatabaseObject(VariableRelationId, > parsetree->resultVariable, > // 0, AccessShareLock); > // } > This is protection against dropping an session variable when it is used. I think so this is tested by isolation tester in Patch 05 > ----------------<<>>------------------------- > in transformLetStmt, we already did ACL privilege check, > we don't need do it again at ExecuteLetStmt? > It is redundant, but surely it should be checked in the executor stage. I removed this check from transformLetStmt. Regards Pavel --0000000000009e568b0629bac7dd Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi

p=C3=A1 20. 12. 2024 v=C2=A08:= 58 odes=C3=ADlatel jian he <jian.universality@gmail.com> napsal:
<= 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">hi.
review is based on
v20241219-0002-Storage-for-session-variables-and-SQL-interface.patch
and
v20241219-0001-Enhancing-catalog-for-support-session-variables-and-.patch.<= br>
in doc/src/sgml/catalogs.sgml

<row>
<entry role=3D"catalog_table_entry"><para role=3D"c= olumn_definition">
<structfield>defaclobjtype</structfield> <type>char</t= ype>
</para>
<para>
Type of object this entry is for:
<literal>r</literal> =3D relation (table, view),
<literal>S</literal> =3D sequence,
<literal>f</literal> =3D function,
<literal>T</literal> =3D type,
<literal>n</literal> =3D schema
</para></entry>
</row>
this need updated for session variable?

yes, fixed
=C2=A0

psql meta command \ddp
src/bin/psql/describe.c listDefaultACLs
also need to change.

fixed
= =C2=A0
----------------<<>>-------------------------
+-- show variable
+SELECT public.svar;
+SELECT public.svar.c;
+SELECT (public.svar).*;
+
+-- the variable is shadowed, raise error
+SELECT public.svar.c FROM public.svar;
+
+-- can be fixed by alias
+SELECT public.svar.c FROM public.svar x

The above tests are duplicated in session_variables.sql.

It looks like duplicated test, but it isn't - look on= session_variables.out

+-- the variable is shadowe= d, raise error
+SELECT public.svar.c FROM public.svar;
+ERROR: =C2=A0= column svar.c does not exist
+LINE 1: SELECT public.svar.c FROM public.s= var;
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ^
+-- can be = fixed by alias
+SELECT public.svar.c FROM public.svar x;
+ =C2=A0c..<= br>+-----
+ 300
+(1 row)
=C2=A0
=C2=A0
----------------<<>>-------------------------
--- a/src/include/nodes/plannodes.h
+++ b/src/include/nodes/plannodes.h
@@ -49,7 +49,7 @@ typedef struct PlannedStmt

=C2=A0 =C2=A0 =C2=A0NodeTag=C2=A0 =C2=A0 =C2=A0 =C2=A0 type;

-=C2=A0 =C2=A0 CmdType=C2=A0 =C2=A0 =C2=A0 =C2=A0 commandType;=C2=A0 =C2=A0= /*
select|insert|update|delete|merge|utility */
+=C2=A0 =C2=A0 CmdType=C2=A0 =C2=A0 =C2=A0 =C2=A0 commandType;=C2=A0 =C2=A0= /*
select|let|insert|update|delete|merge|utility */

since we don't have CMD_LET CmdType.
so this comment change is not necessary?

true, removed
=C2=A0
----------------<<>>-------------------------
the following are simple tests that triggers makeParamSessionVariable error=
messages. we don't have related tests, we can add it on session_variabl= es.sql.

create type t1 as (a int, b int);
CREATE VARIABLE v1 text;
CREATE VARIABLE v2 as t1;
select v1.a;
select v2.c;


done
=C2=A0
also
select v2.c;
ERROR:=C2=A0 could not identify column "c" in variable
LINE 1: select v2.c;
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0^
the error message is no good. i think we want:
ERROR:=C2=A0 could not identify column "c" in=C2=A0 variable &quo= t;public.v1"

done=C2=A0
=

----------------<<>>-------------------------
+=C2=A0 =C2=A0 /*
+=C2=A0 =C2=A0 =C2=A0* Check for duplicates. Note that this does not really= prevent
+=C2=A0 =C2=A0 =C2=A0* duplicates, it's here just to provide nicer erro= r message in common
+=C2=A0 =C2=A0 =C2=A0* case. The real protection is the unique key on the c= atalog.
+=C2=A0 =C2=A0 =C2=A0*/
+=C2=A0 =C2=A0 if (SearchSysCacheExists2(VARIABLENAMENSP,
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 PointerGetDatum(varName),
+=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ObjectIdGetDatum(varNamespace)))
+=C2=A0 =C2=A0 {
+=C2=A0 =C2=A0 }
I am confused by these comments. i think the SearchSysCacheExists2
do actually prevent duplicates.
I noticed that publication_add_relation also has similar comments.

RowExclusiveLock doesn't block concurrent i= nserts. So theoretically, two sessions can try
to create variable= s with the same name and same schema. Using syscache cache cannot
protect against this scenario. The real protection is only a unique index.= It is same like

IF NOT EXISTS(SELECT * FROM foo W= HERE id =3D 10) THEN
=C2=A0 INSERT INTO foo(id) VALUES(10)
<= div>END IF;

This fragment doesn't protect us a= gainst duplicit id in table foo. The real protection can
be done = only by unique index, but when you use this fragment, then you can reduce
error messages like `unique index violation` and that can benefit = in some scenarios.

I think this comment is correct= , but enhancig is welcome.

=C2=A0
----------------<<>>-------------------------
typedef struct LetStmt
{
=C2=A0 =C2=A0 NodeTag=C2=A0 =C2=A0 =C2=A0 =C2=A0 type;
=C2=A0 =C2=A0 List=C2=A0 =C2=A0 =C2=A0 =C2=A0*target;=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 /* target variable */
=C2=A0 =C2=A0 Node=C2=A0 =C2=A0 =C2=A0 =C2=A0*query;=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 /* source expression */
=C2=A0 =C2=A0 int=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 location;
} LetStmt;
here, location should be a type of ParseLoc.

changed
=C2=A0
----------------<<>>-------------------------
in 0001, 0002, function SetSessionVariableWithSecurityCheck
never being used.

moved to patch 18=C2= =A0plpgsql-implementation-for-LET-statement
----------------<<>>-------------------------
+/*
+ * transformLetStmt -
+ *=C2=A0 =C2=A0 =C2=A0 transform an Let Statement
+ */
+static Query *
+transformLetStmt(ParseState *pstate, LetStmt *stmt)
...
+=C2=A0 =C2=A0 /*
+=C2=A0 =C2=A0 =C2=A0* Save target session variable ID.=C2=A0 This value is= used multiple times: by
+=C2=A0 =C2=A0 =C2=A0* the query rewriter (for getting related defexpr), by= planner (for
+=C2=A0 =C2=A0 =C2=A0* acquiring an AccessShareLock on target variable), an= d by the executor
+=C2=A0 =C2=A0 =C2=A0* (we need to know the target variable ID).
+=C2=A0 =C2=A0 =C2=A0*/
+=C2=A0 =C2=A0 query->resultVariable =3D varid;

"defexpr", do you mean "default expression"?
Generally letsmt is like: "let variable =3D (SelectStmt)"
is there nothing related to the DEFAULT expression?
"(we need to know the target variable ID)." in ExecuteLetStmt tha= t is true.
but I commented out the following lines, the regress test still
succeeded.

This comment is partially ob= solete - early implementations of LET statements supports syntax LET var = =3D DEFAULT.
I removed this feature, because the implementation w= as not trivial and the benefit is not too high.

I = changed this comment to

<-->/*
<-->= * Save target session variable ID. It is used later for
<--> * ac= quiring an AccessShareLock on target variable, setting
<--> * plan= dependency and finally for creating VariableDestReceiver.
<--> */=

=C2=A0

extract_query_dependencies_walker
/* record dependency on the target variable of a LET command */
// if (OidIsValid(query->resultVariable))
//=C2=A0 =C2=A0 =C2=A0record_plan_variable_dependency(context, query->re= sultVariable);

I checked regress tests,= and plan invalidation is tested there, but not for target variable.
I enhanced this test to check the invalidation of plans when dropp= ed variable is used
as target.

SET plan_c= ache_mode TO force_generic_plan;

LET var1 =3D 3.14;
SELECT plpgsq= lfx();
LET var1 =3D 3.14 * 2;
SELECT plpgsqlfx();

SELECT plpgs= qlfx2(10.0);
SELECT var2;

DROP VARIABLE var1;
DROP VARIABLE va= r2;

-- dependency (plan invalidation) should work
CREATE VARIABLE= var1 AS numeric;
CREATE VARIABLE var2 AS numeric;

LET var1 =3D 3= .14 * 3;
SELECT plpgsqlfx();
LET var1 =3D 3.14 * 4;
SELECT plpgsql= fx();

SELECT plpgsqlfx2(10.0);
SELECT var2;

DROP VARIABLE = var1;
DROP VARIABLE var2;
DROP FUNCTION plpgsqlfx();
DROP FUNCTION= plpgsqlfx2();

SET plan_cache_mode TO DEFAULT;



=C2=A0

ScanQueryForLocks
// /* process session variables */
// if (OidIsValid(parsetree->resultVariable))
// {
//=C2=A0 =C2=A0 =C2=A0if (acquire)
//=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0LockDatabaseObject(VariableRelationId, = parsetree->resultVariable,
//=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 0, AccessShareLock);
//=C2=A0 =C2=A0 =C2=A0else
//=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0UnlockDatabaseObject(VariableRelationId= , parsetree->resultVariable,
//=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 0, AccessShareLock);
// }

This is protection against droppin= g an session variable when it is used. I think so this is tested by isolati= on tester
in Patch 05


=C2=A0
----------------<<>>-------------------------
in transformLetStmt, we already did ACL privilege check,
we don't need do it again at ExecuteLetStmt?

<= /div>
It is redundant, but surely it should be checked in the executor = stage. I removed this check from transformLetStmt.

Regards

Pavel
=C2=A0
--0000000000009e568b0629bac7dd-- --0000000000009e568d0629bac7df Content-Type: text/x-patch; charset="US-ASCII"; name="v20241220-2-0022-pg_restore-A-variable.patch" Content-Disposition: attachment; filename="v20241220-2-0022-pg_restore-A-variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4xams5e0 RnJvbSA0MzQ3NDI3YTIzMjVjODQ4YTAzMzRiNzA0YTA1ZDViNDc2NDMyYjAwIE1vbiBTZXAgMTcg 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== --0000000000009e568d0629bac7df Content-Type: text/x-patch; charset="US-ASCII"; name="v20241220-2-0021-transactional-variables.patch" Content-Disposition: attachment; filename="v20241220-2-0021-transactional-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4xams671 RnJvbSAwZTI1Yzc3MmI4NzBiNjQxYjA3MTA4OTQwMGI5NmYwOTdiNTUzOWJiIE1vbiBTZXAgMTcg 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 dGFsb2dzLnNnbWwKaW5kZXggZTY2MjZiYTU3MC4uMzQ3NzZjYTU3MyAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwK QEAgLTk4NTgsNiArOTg1OCwxOCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRl 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 L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IGZiZGVlYWYzMzMuLjVhMTZiMzNhY2QgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNj cmliZS5jCkBAIC01MjUwLDcgKzUyNTAsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBh dHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlQUUV4cEJ1ZmZlckRhdGEgYnVmOwogCVBHcmVzdWx0ICAg KnJlczsKIAlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OwotCXN0YXRpYyBjb25zdCBi b29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKwlzdGF0aWMg Y29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs c2V9OwogCiAJaWYgKHBzZXQuc3ZlcnNpb24gPCAxODAwMDApCiAJewpAQCAtNTI3Myw2ICs1Mjcz LDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJ CQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wi LFxuIgogCQkJCQkgICIgIE5PVCB2LnZhcm5vdG51bGwgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIg IE5PVCB2LnZhcmlzaW1tdXRhYmxlIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICB2LnZhcmlzdHJh bnNhY3QgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIodi52 YXJkZWZleHByLCAwKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgQ0FTRSB2LnZhcnhhY3RlbmRh Y3Rpb25cbiIKIAkJCQkJICAiICAgIFdIRU4gJ2QnIFRIRU4gJ09OIENPTU1JVCBEUk9QJ1xuIgpA QCAtNTI4NSw2ICs1Mjg2LDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBi 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 bm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGE0NTM3NjA4MTEuLjkzZDFjYjI3OGUgMTAwNjQ0Ci0t 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 dGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCA0ZTIwMjAyOTNjLi4yMWYzOTFmOTRiIDEw 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 CiAoMSByb3cpCiAKIERST1AgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMTsKQEAgLTIzMzAsMyArMjMz MCwxMDMgQEAgU0VMRUNUIHZhcjE7CiBMRVQgdmFyMSA9IDMwOwogRVJST1I6ICBzZXNzaW9uIHZh cmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCiBEUk9QIFZBUklBQkxF IHZhcjE7CistLSB0ZXN0IHRyYW5zYWN0aW9uYWwgdmFyaWFibGVzCitDUkVBVEUgVFJBTlNBQ1RJ T04gVkFSSUFCTEUgdHYgQVMgaW50IERFRkFVTFQgMDsKK0JFR0lOOworICBMRVQgdHYgPSAxMDA7 CisgIFNFTEVDVCB0djsKKyB0diAgCistLS0tLQorIDEwMAorKDEgcm93KQorCitST0xMQkFDSzsK K1NFTEVDVCB0djsKKyB0diAKKy0tLS0KKyAgMAorKDEgcm93KQorCitMRVQgdHYgPSAxMDA7CitC RUdJTjsKKyAgTEVUIHR2ID0gMTAwMDsKK0NPTU1JVDsKK1NFTEVDVCB0djsKKyAgdHYgIAorLS0t LS0tCisgMTAwMAorKDEgcm93KQorCitCRUdJTjsKKyAgTEVUIHR2ID0gMDsKKyAgU0VMRUNUIHR2 OworIHR2IAorLS0tLQorICAwCisoMSByb3cpCisKK1JPTExCQUNLOworU0VMRUNUIHR2OworICB0 diAgCistLS0tLS0KKyAxMDAwCisoMSByb3cpCisKKy0tIHRlc3Qgc3VidHJhbnNhY3Rpb25zCitC RUdJTjsKKyAgTEVUIHR2ID0gMTsKK1NBVkVQT0lOVCB4MTsKKyAgTEVUIHR2ID0gMjsKK1NBVkVQ T0lOVCB4MjsKKyAgTEVUIHR2ID0gMzsKK1JPTExCQUNLIFRPIHgyOworICBTRUxFQ1QgdHY7Cisg dHYgCistLS0tCisgIDIKKygxIHJvdykKKworICBMRVQgdHYgPSAxMDsKK1JPTExCQUNLIFRPIHgx OworICBTRUxFQ1QgdHY7CisgdHYgCistLS0tCisgIDEKKygxIHJvdykKKworUk9MTEJBQ0s7CitT RUxFQ1QgdHY7CisgIHR2ICAKKy0tLS0tLQorIDEwMDAKKygxIHJvdykKKworQkVHSU47CisgIExF VCB0diA9IDE7CitTQVZFUE9JTlQgeDE7CisgIExFVCB0diA9IDI7CitTQVZFUE9JTlQgeDI7Cisg IExFVCB0diA9IDM7CitST0xMQkFDSyBUTyB4MjsKKyAgU0VMRUNUIHR2OworIHR2IAorLS0tLQor ICAyCisoMSByb3cpCisKKyAgTEVUIHR2ID0gMTA7CitST0xMQkFDSyBUTyB4MTsKKyAgU0VMRUNU IHR2OworIHR2IAorLS0tLQorICAxCisoMSByb3cpCisKK0NPTU1JVDsKK1NFTEVDVCB0djsKKyB0 diAKKy0tLS0KKyAgMQorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHR2OwpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4IGJlMTk2ZTA0MzguLmNhMWQxYzky MjAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTE2 MTIsMyArMTYxMiw2MSBAQCBTRUxFQ1QgdmFyMTsKIExFVCB2YXIxID0gMzA7CiAKIERST1AgVkFS SUFCTEUgdmFyMTsKKworLS0gdGVzdCB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcworQ1JFQVRFIFRS QU5TQUNUSU9OIFZBUklBQkxFIHR2IEFTIGludCBERUZBVUxUIDA7CisKK0JFR0lOOworICBMRVQg dHYgPSAxMDA7CisgIFNFTEVDVCB0djsKK1JPTExCQUNLOworCitTRUxFQ1QgdHY7CisKK0xFVCB0 diA9IDEwMDsKK0JFR0lOOworICBMRVQgdHYgPSAxMDAwOworQ09NTUlUOworCitTRUxFQ1QgdHY7 CisKK0JFR0lOOworICBMRVQgdHYgPSAwOworICBTRUxFQ1QgdHY7CitST0xMQkFDSzsKKworU0VM RUNUIHR2OworCistLSB0ZXN0IHN1YnRyYW5zYWN0aW9ucworCitCRUdJTjsKKyAgTEVUIHR2ID0g MTsKK1NBVkVQT0lOVCB4MTsKKyAgTEVUIHR2ID0gMjsKK1NBVkVQT0lOVCB4MjsKKyAgTEVUIHR2 ID0gMzsKK1JPTExCQUNLIFRPIHgyOworICBTRUxFQ1QgdHY7CisgIExFVCB0diA9IDEwOworUk9M TEJBQ0sgVE8geDE7CisgIFNFTEVDVCB0djsKK1JPTExCQUNLOworCitTRUxFQ1QgdHY7CisKK0JF R0lOOworICBMRVQgdHYgPSAxOworU0FWRVBPSU5UIHgxOworICBMRVQgdHYgPSAyOworU0FWRVBP SU5UIHgyOworICBMRVQgdHYgPSAzOworUk9MTEJBQ0sgVE8geDI7CisgIFNFTEVDVCB0djsKKyAg TEVUIHR2ID0gMTA7CitST0xMQkFDSyBUTyB4MTsKKyAgU0VMRUNUIHR2OworQ09NTUlUOworCitT RUxFQ1QgdHY7CisKK0RST1AgVkFSSUFCTEUgdHY7Ci0tIAoyLjQ3LjEKCg== --0000000000009e568d0629bac7df Content-Type: text/x-patch; charset="US-ASCII"; name="v20241220-2-0018-plpgsql-implementation-for-LET-statement.patch" Content-Disposition: attachment; filename="v20241220-2-0018-plpgsql-implementation-for-LET-statement.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4xams764 RnJvbSAxNjgxODJjNjQ0Mjk4M2FlMzJiZjU2ZGJmZjQ2MWIzNTY3MWIzZjk5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDg6NTY6MTcgKzAxMDAKU3ViamVjdDogW1BBVENIIDE4 LzIyXSBwbHBnc3FsIGltcGxlbWVudGF0aW9uIGZvciBMRVQgc3RhdGVtZW50CgpQTHBnU1FMIGFs bG93cyB0byBjYWxsIGV4cHJlc3Npb24gZXhlY3V0b3IgZGlyZWN0bHkgKGZvciBzaW1wbGUgZXhw cmVzc2lvbikuClRoaXMgcG9zc2liaWxpdHkgc3Ryb25nbHkgcmVkdWNlcyBvdmVyaGVhZCByZWxh dGVkIHRvIGV4ZWN1dGlvbi4gUmVpbXBsZW1lbnRhdGlvbgpvZiBMRVQgc3RhdGVtZW50IChpbnNp ZGUgUExwZ1NRTCkgYWxsb3dzIHRvIHVzZSB0aGlzIHBvc3NpYmlsaXR5LCBhbmQgc3Ryb25nbHkK aW5jcmVhc2UgcGVyZm9ybWFuY2U6CgpDUkVBVEUgVkFSSUFCTEUgc3ZhciBpbnQ7CgpETyAkJApC RUdJTgogIEZPUiBpIElOIDEuLjEwMDAwCiAgTE9PUAogICAgTEVUIHN2YXIgPSBpOwogIEVORCBM T09QOwpFTkQ7CiQkOwoKRnJvbSAxMjBtcyB0byA4bXMgKHdpdGggYXNzZXJ0aW9ucykgKHRoaXMg aXMgYmVzdCBjYXNlLCBidXQgd2l0aG91dCBpdCwgdGhlIExFVCBzdGF0ZW1lbnQKY2FuIGJlIGJv dHRsZSBuZWNrKS4KCkFuIGFsdGVybmF0aXZlIGNhbiBiZSByZWltcGxlbWVudGF0aW9uIG9mIExF VCBzdGF0ZW1lbnQgaW5zaWRlIGV4cHJlc3Npb24KZXhlY3V0b3IsIGFuZCB0aGVuIFNRTCBMRVQg Y29tbWFuZCBjYW4gYmUgZXhlY3V0ZWQgaW4gc2ltcGxlIGV4cHJlc3Npb24KZXhlY3V0aW9uLCBi dXQgdGhpcyBpbmNyZWFzZSBhbiBjb21wbGV4aXR5IG9mIGV4ZWN1dG9yLCBidXQgc3RpbGwgdGhl CmJlbmVmaXRzIGlzIG9ubHkgaW5zaWRlIHBscGdzcWwsIHNvIGl0IGlzIGJldHRlciB0byB0aGlz IG9wdGltaXphdGlvbgppbnNpZGUgcGxwZ3NxbC4KLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAxNiArKysrKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L3NwaS5jICAgICAgICAgICAgICAgICAgICB8ICAzICsKIHNyYy9iYWNrZW5kL3BhcnNlci9hbmFs eXplLmMgICAgICAgICAgICAgICAgICB8IDEyICsrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl ci5jICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o ICAgICAgICAgICAgICAgIHwgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oICAgICAg ICAgICAgICAgICAgIHwgIDQgKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgICAgICAg ICAgICAgICAgICB8IDU1ICsrKysrKysrKysrKysrKysrKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9w bF9mdW5jcy5jICAgICAgICAgICAgICAgICB8IDI0ICsrKysrKysrCiBzcmMvcGwvcGxwZ3NxbC9z cmMvcGxfZ3JhbS55ICAgICAgICAgICAgICAgICAgfCAyOCArKysrKysrKystCiBzcmMvcGwvcGxw Z3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3dsaXN0LmggICAgICAgfCAgMSArCiBzcmMvcGwvcGxwZ3Nx bC9zcmMvcGxfdW5yZXNlcnZlZF9rd2xpc3QuaCAgICAgfCAgMSArCiBzcmMvcGwvcGxwZ3NxbC9z cmMvcGxwZ3NxbC5oICAgICAgICAgICAgICAgICAgfCAxMiArKysrCiAuLi4vcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAgNiArLQogc3JjL3Rvb2xzL3BnaW5kZW50 L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgIDEgKwogMTYgZmlsZXMgY2hhbmdlZCwgMTcw IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5jCmluZGV4IGM3YzdhYTU3ZjYuLjVlMDJjYjk5MGMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTk1Niw2ICs5NTYsMjIgQEAgU2V0U2Vzc2lv blZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQogCXNldF9zZXNz aW9uX3ZhcmlhYmxlKHN2YXIsIHZhbHVlLCBpc051bGwpOwogfQogCisvKgorICogV3JhcHBlciBh cm91bmQgU2V0U2Vzc2lvblZhcmlhYmxlIHdpdGggcGVybWlzc2lvbiBjaGVja3MuCisgKi8KK3Zv aWQKK1NldFNlc3Npb25WYXJpYWJsZVdpdGhTZWN1cml0eUNoZWNrKE9pZCB2YXJpZCwgRGF0dW0g dmFsdWUsIGJvb2wgaXNOdWxsKQoreworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisKKwkvKiBpcyB0 aGUgY2FsbGVyIGFsbG93ZWQgdG8gdXBkYXRlIHRoZSBzZXNzaW9uIHZhcmlhYmxlPyAqLworCWFj bHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCBHZXRV c2VySWQoKSwgQUNMX1VQREFURSk7CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJ YWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfVkFSSUFCTEUsIGdldF9zZXNzaW9uX3Zh cmlhYmxlX25hbWUodmFyaWQpKTsKKworCVNldFNlc3Npb25WYXJpYWJsZSh2YXJpZCwgdmFsdWUs IGlzTnVsbCk7Cit9CisKIC8qCiAgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFsdWUgc3RvcmVk IGluIGEgdmFyaWFibGUuCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3Nw aS5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKaW5kZXggNjU5YmFlMGZiYy4uMzQxN2Vk NDlhNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivc3BpLmMKQEAgLTI5OTksNiArMjk5OSw5IEBAIF9TUElfZXJyb3JfY2Fs bGJhY2sodm9pZCAqYXJnKQogCQkJY2FzZSBSQVdfUEFSU0VfUExQR1NRTF9BU1NJR04zOgogCQkJ CWVycmNvbnRleHQoIlBML3BnU1FMIGFzc2lnbm1lbnQgXCIlc1wiIiwgcXVlcnkpOwogCQkJCWJy ZWFrOworCQkJY2FzZSBSQVdfUEFSU0VfUExQR1NRTF9MRVQ6CisJCQkJZXJyY29udGV4dCgiTEVU IHN0YXRlbWVudCBcIiVzXCIiLCBxdWVyeSk7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJ CWVycmNvbnRleHQoIlNRTCBzdGF0ZW1lbnQgXCIlc1wiIiwgcXVlcnkpOwogCQkJCWJyZWFrOwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9hbmFseXplLmMKaW5kZXggZTVlZTc3NjBmNi4uNDdlMDIxMTcwNyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jCkBAIC0yMDEzLDYgKzIwMTMsMTggQEAgdHJhbnNmb3JtTGV0U3RtdChQYXJzZVN0YXRl ICpwc3RhdGUsIExldFN0bXQgKnN0bXQpCiAKIAlzdG10LT5xdWVyeSA9IChOb2RlICopIHF1ZXJ5 OwogCisJLyoKKwkgKiBJbnNpZGUgUEwvcGdTUUwgd2UgZG9uJ3Qgd2FudCB0byBleGVjdXRlIExF VCBzdGF0ZW1lbnQgYXMgdXRpbGl0eQorCSAqIGNvbW1hbmQsIGJlY2F1c2UgaXQgZGlzYWxsb3cg dG8gZXhlY3V0ZSBleHByZXNzaW9uIGFzIHNpbXBsZQorCSAqIGV4cHJlc3Npb24uIFNvIGZvciBQ TC9wZ1NRTCB3ZSBoYXZlIGV4dHJhIHBhdGgsIGFuZCB3ZSByZXR1cm4gU0VMRUNULgorCSAqIFRo ZW4gaXQgY2FuIGJlIGV4ZWN1dGVkIGJ5IGV4ZWNfZXZhbF9leHByLiBSZXN1bHQgaXMgZGlycmVj dGx5IGFzc2lnbmVkCisJICogdG8gdGFyZ2V0IHNlc3Npb24gdmFyaWFibGUgaW5zaWRlIFBML3Bn U1FMIExFVCBzdGF0ZW1lbnQgaGFuZGxlci4gVGhpcworCSAqIGlzIGV4dHJhIGNvZGUsIGV4dHJh IHBhdGgsIGJ1dCBwb3NzaWJpbGl0eSB0byBnZXQgZmFzdGVyIGV4ZWN1dGlvbiBpcworCSAqIHRv byBhdHRyYWN0aXZlLgorCSAqLworCWlmIChzdG10LT5wbHBnc3FsX21vZGUpCisJCXJldHVybiBx dWVyeTsKKwogCS8qIHJlcHJlc2VudCB0aGUgY29tbWFuZCBhcyBhIHV0aWxpdHkgUXVlcnkgKi8K IAlyZXN1bHQgPSBtYWtlTm9kZShRdWVyeSk7CiAJcmVzdWx0LT5jb21tYW5kVHlwZSA9IENNRF9V VElMSVRZOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggMjZkMjI3ZjkyZC4uNTk1MWQ4MjMzYyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CkBAIC04MTcsNiArODE3LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2Vs ZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0b2tlbgkJ TU9ERV9QTFBHU1FMX0FTU0lHTjEKICV0b2tlbgkJTU9ERV9QTFBHU1FMX0FTU0lHTjIKICV0b2tl bgkJTU9ERV9QTFBHU1FMX0FTU0lHTjMKKyV0b2tlbgkJTU9ERV9QTFBHU1FMX0xFVAogCiAKIC8q IFByZWNlZGVuY2U6IGxvd2VzdCB0byBoaWdoZXN0ICovCkBAIC05NDgsNiArOTQ5LDEzIEBAIHBh cnNlX3RvcGxldmVsOgogCQkJCXBnX3l5Z2V0X2V4dHJhKHl5c2Nhbm5lciktPnBhcnNldHJlZSA9 CiAJCQkJCWxpc3RfbWFrZTEobWFrZVJhd1N0bXQoKE5vZGUgKikgbiwgQDIpKTsKIAkJCX0KKwkJ CXwgTU9ERV9QTFBHU1FMX0xFVCBMZXRTdG10CisJCQl7CisJCQkJTGV0U3RtdCAqbiA9IChMZXRT dG10ICopICQyOworCQkJCW4tPnBscGdzcWxfbW9kZSA9IHRydWU7CisJCQkJcGdfeXlnZXRfZXh0 cmEoeXlzY2FubmVyKS0+cGFyc2V0cmVlID0KKwkJCQkJbGlzdF9tYWtlMShtYWtlUmF3U3RtdCgo Tm9kZSAqKSBuLCAwKSk7CisJCQl9CiAJCTsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZXIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZXIuYwppbmRleCAxMTg0 ODhjM2YzLi5mOTQzMGEzMjkxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vy LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlci5jCkBAIC02Miw2ICs2Miw3IEBAIHJh d19wYXJzZXIoY29uc3QgY2hhciAqc3RyLCBSYXdQYXJzZU1vZGUgbW9kZSkKIAkJCVtSQVdfUEFS U0VfUExQR1NRTF9BU1NJR04xXSA9IE1PREVfUExQR1NRTF9BU1NJR04xLAogCQkJW1JBV19QQVJT RV9QTFBHU1FMX0FTU0lHTjJdID0gTU9ERV9QTFBHU1FMX0FTU0lHTjIsCiAJCQlbUkFXX1BBUlNF X1BMUEdTUUxfQVNTSUdOM10gPSBNT0RFX1BMUEdTUUxfQVNTSUdOMywKKwkJCVtSQVdfUEFSU0Vf UExQR1NRTF9MRVRdID0gTU9ERV9QTFBHU1FMX0xFVCwKIAkJfTsKIAogCQl5eWV4dHJhLmhhdmVf bG9va2FoZWFkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApp bmRleCAwMDQ1MTExNWRkLi4xZmI5N2I3ZmUxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oCkBAIC0yOCw2ICsyOCw3IEBAIGV4dGVybiB2b2lkIEF0RU9TdWJYYWN0X1Nl c3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCwgU3ViVHJhbnNhY3Rpb25JZCBteVN1YmlkCiAJ CQkJCQkJCQkJIFN1YlRyYW5zYWN0aW9uSWQgcGFyZW50U3ViaWQpOwogCiBleHRlcm4gdm9pZCBT ZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpOwor ZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlV2l0aFNlY3VyaXR5Q2hlY2soT2lkIHZhcmlk LCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpOwogZXh0ZXJuIERhdHVtIEdldFNlc3Npb25WYXJp YWJsZShPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCwgT2lkICp0eXBpZCk7CiBleHRlcm4gRGF0dW0g R2V0U2Vzc2lvblZhcmlhYmxlV2l0aFR5cGVDaGVjayhPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCwg T2lkIGV4cGVjdGVkX3R5cGlkKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDc3NzE0ODUw ZGQuLmE0NTM3NjA4MTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMu aAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTIxMjQsNiArMjEyNCw4 IEBAIHR5cGVkZWYgc3RydWN0IExldFN0bXQKIAlOb2RlVGFnCQl0eXBlOwogCUxpc3QJICAgKnRh cmdldDsJCQkvKiB0YXJnZXQgdmFyaWFibGUgKi8KIAlOb2RlCSAgICpxdWVyeTsJCQkvKiBzb3Vy Y2UgZXhwcmVzc2lvbiAqLworCWJvb2wJCXBscGdzcWxfbW9kZTsJLyogdHJ1ZSwgd2hlbiBjb21t YW5kIHdpbGwgYmUgZXhlY3V0ZWQKKwkJCQkJCQkJICogKHBhcnNlZCkgYnkgcGxwZ3NxbCBydW50 aW1lICovCiAJUGFyc2VMb2MJbG9jYXRpb247CiB9IExldFN0bXQ7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL3BhcnNlci9wYXJzZXIuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZXIuaApp bmRleCBiZTE4NGVjNTA2Li5lZmJjNzZmMGFkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJz ZXIvcGFyc2VyLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oCkBAIC0zMyw2ICsz Myw5IEBACiAgKiBSQVdfUEFSU0VfUExQR1NRTF9BU1NJR05uOiBwYXJzZSBhIFBML3BnU1FMIGFz c2lnbm1lbnQgc3RhdGVtZW50LAogICogYW5kIHJldHVybiBhIG9uZS1lbGVtZW50IExpc3QgY29u dGFpbmluZyBhIFJhd1N0bXQgbm9kZS4gICJuIgogICogZ2l2ZXMgdGhlIG51bWJlciBvZiBkb3R0 ZWQgbmFtZXMgY29tcHJpc2luZyB0aGUgdGFyZ2V0IENvbHVtblJlZi4KKyAqCisgKiBSQVdfUEFS U0VfUExQR1NRTF9MRVQ6IHBhcnNlIGEgTEVUIHN0YXRlbWVudCwgYW5kIHJldHVybiBhCisgKiBv bmUtZWxlbWVudCBMaXN0IGNvbnRhaW5pbmcgYSBSYXdTdG10IG5vZGUuCiAgKi8KIHR5cGVkZWYg ZW51bQogewpAQCAtNDIsNiArNDUsNyBAQCB0eXBlZGVmIGVudW0KIAlSQVdfUEFSU0VfUExQR1NR TF9BU1NJR04xLAogCVJBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjIsCiAJUkFXX1BBUlNFX1BMUEdT UUxfQVNTSUdOMywKKwlSQVdfUEFSU0VfUExQR1NRTF9MRVQsCiB9IFJhd1BhcnNlTW9kZTsKIAog LyogVmFsdWVzIGZvciB0aGUgYmFja3NsYXNoX3F1b3RlIEdVQyAqLwpkaWZmIC0tZ2l0IGEvc3Jj L3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMK aW5kZXggZTMxMjA2ZTdmNC4uODU3ZmYwMDAyNiAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwv c3JjL3BsX2V4ZWMuYworKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCkBAIC0yMiw2 ICsyMiw3IEBACiAjaW5jbHVkZSAiYWNjZXNzL3R1cGNvbnZlcnQuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJj b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY0V4cHIu aCIKICNpbmNsdWRlICJleGVjdXRvci9zcGkuaCIKICNpbmNsdWRlICJleGVjdXRvci90c3RvcmVS ZWNlaXZlci5oIgpAQCAtMzIzLDYgKzMyNCw4IEBAIHN0YXRpYyBpbnQJZXhlY19zdG10X2NvbW1p dChQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAogCQkJCQkJCSBQTHBnU1FMX3N0bXRfY29tbWl0 ICpzdG10KTsKIHN0YXRpYyBpbnQJZXhlY19zdG10X3JvbGxiYWNrKFBMcGdTUUxfZXhlY3N0YXRl ICplc3RhdGUsCiAJCQkJCQkJICAgUExwZ1NRTF9zdG10X3JvbGxiYWNrICpzdG10KTsKK3N0YXRp YyBpbnQJZXhlY19zdG10X2xldChQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAorCQkJCQkJICBQ THBnU1FMX3N0bXRfbGV0ICpsZXQpOwogCiBzdGF0aWMgdm9pZCBwbHBnc3FsX2VzdGF0ZV9zZXR1 cChQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAogCQkJCQkJCQkgUExwZ1NRTF9mdW5jdGlvbiAq ZnVuYywKQEAgLTIxMTYsNiArMjExOSwxMCBAQCBleGVjX3N0bXRzKFBMcGdTUUxfZXhlY3N0YXRl ICplc3RhdGUsIExpc3QgKnN0bXRzKQogCQkJCXJjID0gZXhlY19zdG10X3JvbGxiYWNrKGVzdGF0 ZSwgKFBMcGdTUUxfc3RtdF9yb2xsYmFjayAqKSBzdG10KTsKIAkJCQlicmVhazsKIAorCQkJY2Fz ZSBQTFBHU1FMX1NUTVRfTEVUOgorCQkJCXJjID0gZXhlY19zdG10X2xldChlc3RhdGUsIChQTHBn U1FMX3N0bXRfbGV0ICopIHN0bXQpOworCQkJCWJyZWFrOworCiAJCQlkZWZhdWx0OgogCQkJCS8q IHBvaW50IGVycl9zdG10IHRvIHBhcmVudCwgc2luY2UgdGhpcyBvbmUgc2VlbXMgY29ycnVwdCAq LwogCQkJCWVzdGF0ZS0+ZXJyX3N0bXQgPSBzYXZlX2VzdG10OwpAQCAtNDk5OSw2ICs1MDA2LDU0 IEBAIGV4ZWNfc3RtdF9yb2xsYmFjayhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBQTHBnU1FM X3N0bXRfcm9sbGJhY2sgKnN0bXQpCiAJcmV0dXJuIFBMUEdTUUxfUkNfT0s7CiB9CiAKKy8qIC0t LS0tLS0tLS0KKyAqIGV4ZWNfc3RtdF9sZXQJCQlFdmFsdWF0ZSBhbiBleHByZXNzaW9uIGFuZAor ICoJCQkJCXB1dCB0aGUgcmVzdWx0IGludG8gYSBzZXNzaW9uIHZhcmlhYmxlLgorICogLS0tLS0t LS0tLQorICovCitzdGF0aWMgaW50CitleGVjX3N0bXRfbGV0KFBMcGdTUUxfZXhlY3N0YXRlICpl c3RhdGUsIFBMcGdTUUxfc3RtdF9sZXQgKnN0bXQpCit7CisJYm9vbAkJaXNOdWxsOworCU9pZAkJ CXZhbHR5cGU7CisJaW50MzIJCXZhbHR5cG1vZDsKKwlEYXR1bQkJdmFsdWU7CisJT2lkCQkJdmFy aWQ7CisKKwlMaXN0CSAgICpwbGFuc291cmNlczsKKwlDYWNoZWRQbGFuU291cmNlICpwbGFuc291 cmNlOworCisJdmFsdWUgPSBleGVjX2V2YWxfZXhwcihlc3RhdGUsCisJCQkJCQkgICBzdG10LT5l eHByLAorCQkJCQkJICAgJmlzTnVsbCwKKwkJCQkJCSAgICZ2YWx0eXBlLAorCQkJCQkJICAgJnZh bHR5cG1vZCk7CisKKwkvKgorCSAqIE9pZCBvZiB0YXJnZXQgc2Vzc2lvbiB2YXJpYWJsZSBpcyBz dG9yZWQgaW4gUXVlcnkgc3RydWN0dXJlLiBJdCBpcworCSAqIHNhZmVyIHRvIHJlYWQgdGhpcyB2 YWx1ZSBkaXJlY3RseSBmcm9tIHRoZSBwbGFuIHRoYW4gdG8gaG9sZCB0aGlzIHZhbHVlCisJICog aW4gdGhlIHBscGdzcWwgY29udGV4dCwgYmVjYXVzZSBpdCdzIG5vdCBuZWNlc3NhcnkgdG8gaGFu ZGxlCisJICogaW52YWxpZGF0aW9uIG9mIHRoZSBjYWNoZWQgdmFsdWUuIE5leHQgb3BlcmF0aW9u cyBhcmUgcmVhZCBvbmx5IHdpdGhvdXQKKwkgKiBhbnkgYWxsb2NhdGlvbnMsIHNvIHdlIGNhbiBl eHBlY3QgdGhhdCByZXRyaWV2aW5nIHZhcmlkIGZyb20gUXVlcnkKKwkgKiBzaG91bGQgYmUgZmFz dC4KKwkgKi8KKwlwbGFuc291cmNlcyA9IFNQSV9wbGFuX2dldF9wbGFuX3NvdXJjZXMoc3RtdC0+ ZXhwci0+cGxhbik7CisJaWYgKGxpc3RfbGVuZ3RoKHBsYW5zb3VyY2VzKSAhPSAxKQorCQllbG9n KEVSUk9SLCAidW5leHBlY3RlZCBsZW5ndGggb2YgcGxhbnNvdXJjZXMgb2YgcXVlcnkgZm9yIExF VCBzdGF0ZW1lbnQiKTsKKworCXBsYW5zb3VyY2UgPSAoQ2FjaGVkUGxhblNvdXJjZSAqKSBsaW5p dGlhbChwbGFuc291cmNlcyk7CisJaWYgKGxpc3RfbGVuZ3RoKHBsYW5zb3VyY2UtPnF1ZXJ5X2xp c3QpICE9IDEpCisJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIGxlbmd0aCBvZiBwbGFuc291cmNl IG9mIHF1ZXJ5IGZvciBMRVQgc3RhdGVtZW50Iik7CisKKwl2YXJpZCA9IGxpbml0aWFsX25vZGUo UXVlcnksIHBsYW5zb3VyY2UtPnF1ZXJ5X2xpc3QpLT5yZXN1bHRWYXJpYWJsZTsKKwlpZiAoIU9p ZElzVmFsaWQodmFyaWQpKQorCQllbG9nKEVSUk9SLCAib2lkIG9mIHRhcmdldCBzZXNzaW9uIHZh cmlhYmxlIGlzIG5vdCB2YWxpZCIpOworCisJU2V0U2Vzc2lvblZhcmlhYmxlV2l0aFNlY3VyaXR5 Q2hlY2sodmFyaWQsIHZhbHVlLCBpc051bGwpOworCisJcmV0dXJuIFBMUEdTUUxfUkNfT0s7Cit9 CisKIC8qIC0tLS0tLS0tLS0KICAqIGV4ZWNfYXNzaWduX2V4cHIJCQlQdXQgYW4gZXhwcmVzc2lv bidzIHJlc3VsdCBpbnRvIGEgdmFyaWFibGUuCiAgKiAtLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9z cmMvcGwvcGxwZ3NxbC9zcmMvcGxfZnVuY3MuYyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9mdW5j cy5jCmluZGV4IGVlYjdjNGQ3YzAuLjFiMzkzNTFkYjcgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBn c3FsL3NyYy9wbF9mdW5jcy5jCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9mdW5jcy5jCkBA IC0yODgsNiArMjg4LDggQEAgcGxwZ3NxbF9zdG10X3R5cGVuYW1lKFBMcGdTUUxfc3RtdCAqc3Rt dCkKIAkJCXJldHVybiAiQ09NTUlUIjsKIAkJY2FzZSBQTFBHU1FMX1NUTVRfUk9MTEJBQ0s6CiAJ CQlyZXR1cm4gIlJPTExCQUNLIjsKKwkJY2FzZSBQTFBHU1FMX1NUTVRfTEVUOgorCQkJcmV0dXJu ICJMRVQiOwogCX0KIAogCXJldHVybiAidW5rbm93biI7CkBAIC0zNzAsNiArMzcyLDcgQEAgc3Rh dGljIHZvaWQgZnJlZV9wZXJmb3JtKFBMcGdTUUxfc3RtdF9wZXJmb3JtICpzdG10KTsKIHN0YXRp YyB2b2lkIGZyZWVfY2FsbChQTHBnU1FMX3N0bXRfY2FsbCAqc3RtdCk7CiBzdGF0aWMgdm9pZCBm cmVlX2NvbW1pdChQTHBnU1FMX3N0bXRfY29tbWl0ICpzdG10KTsKIHN0YXRpYyB2b2lkIGZyZWVf cm9sbGJhY2soUExwZ1NRTF9zdG10X3JvbGxiYWNrICpzdG10KTsKK3N0YXRpYyB2b2lkIGZyZWVf bGV0KFBMcGdTUUxfc3RtdF9sZXQgKnN0bXQpOwogc3RhdGljIHZvaWQgZnJlZV9leHByKFBMcGdT UUxfZXhwciAqZXhwcik7CiAKIApAQCAtNDU5LDYgKzQ2Miw5IEBAIGZyZWVfc3RtdChQTHBnU1FM X3N0bXQgKnN0bXQpCiAJCWNhc2UgUExQR1NRTF9TVE1UX1JPTExCQUNLOgogCQkJZnJlZV9yb2xs YmFjaygoUExwZ1NRTF9zdG10X3JvbGxiYWNrICopIHN0bXQpOwogCQkJYnJlYWs7CisJCWNhc2Ug UExQR1NRTF9TVE1UX0xFVDoKKwkJCWZyZWVfbGV0KChQTHBnU1FMX3N0bXRfbGV0ICopIHN0bXQp OworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIGNt ZF90eXBlOiAlZCIsIHN0bXQtPmNtZF90eXBlKTsKIAkJCWJyZWFrOwpAQCAtNzEzLDYgKzcxOSwx MiBAQCBmcmVlX2dldGRpYWcoUExwZ1NRTF9zdG10X2dldGRpYWcgKnN0bXQpCiB7CiB9CiAKK3N0 YXRpYyB2b2lkCitmcmVlX2xldChQTHBnU1FMX3N0bXRfbGV0ICpzdG10KQoreworCWZyZWVfZXhw cihzdG10LT5leHByKTsKK30KKwogc3RhdGljIHZvaWQKIGZyZWVfZXhwcihQTHBnU1FMX2V4cHIg KmV4cHIpCiB7CkBAIC04MTUsNiArODI3LDcgQEAgc3RhdGljIHZvaWQgZHVtcF9wZXJmb3JtKFBM cGdTUUxfc3RtdF9wZXJmb3JtICpzdG10KTsKIHN0YXRpYyB2b2lkIGR1bXBfY2FsbChQTHBnU1FM X3N0bXRfY2FsbCAqc3RtdCk7CiBzdGF0aWMgdm9pZCBkdW1wX2NvbW1pdChQTHBnU1FMX3N0bXRf Y29tbWl0ICpzdG10KTsKIHN0YXRpYyB2b2lkIGR1bXBfcm9sbGJhY2soUExwZ1NRTF9zdG10X3Jv bGxiYWNrICpzdG10KTsKK3N0YXRpYyB2b2lkIGR1bXBfbGV0KFBMcGdTUUxfc3RtdF9sZXQgKnN0 bXQpOwogc3RhdGljIHZvaWQgZHVtcF9leHByKFBMcGdTUUxfZXhwciAqZXhwcik7CiAKIApAQCAt OTE0LDYgKzkyNyw5IEBAIGR1bXBfc3RtdChQTHBnU1FMX3N0bXQgKnN0bXQpCiAJCWNhc2UgUExQ R1NRTF9TVE1UX1JPTExCQUNLOgogCQkJZHVtcF9yb2xsYmFjaygoUExwZ1NRTF9zdG10X3JvbGxi YWNrICopIHN0bXQpOwogCQkJYnJlYWs7CisJCWNhc2UgUExQR1NRTF9TVE1UX0xFVDoKKwkJCWR1 bXBfbGV0KChQTHBnU1FMX3N0bXRfbGV0ICopIHN0bXQpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6 CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIGNtZF90eXBlOiAlZCIsIHN0bXQtPmNtZF90 eXBlKTsKIAkJCWJyZWFrOwpAQCAtMTU5MCw2ICsxNjA2LDE0IEBAIGR1bXBfZ2V0ZGlhZyhQTHBn U1FMX3N0bXRfZ2V0ZGlhZyAqc3RtdCkKIAlwcmludGYoIlxuIik7CiB9CiAKK3N0YXRpYyB2b2lk CitkdW1wX2xldChQTHBnU1FMX3N0bXRfbGV0ICpzdG10KQoreworCWR1bXBfaW5kKCk7CisJZHVt cF9leHByKHN0bXQtPmV4cHIpOworCXByaW50ZigiXG4iKTsKK30KKwogc3RhdGljIHZvaWQKIGR1 bXBfZXhwcihQTHBnU1FMX2V4cHIgKmV4cHIpCiB7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvcGxfZ3JhbS55IGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2dyYW0ueQppbmRleCA4MTgy Y2UyOGFhLi4zZjE1NWM0ZjhhIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZ3Jh bS55CisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkKQEAgLTIwMCw3ICsyMDAsNyBA QCBzdGF0aWMJdm9pZAkJCWNoZWNrX3JhaXNlX3BhcmFtZXRlcnMoUExwZ1NRTF9zdG10X3JhaXNl ICpzdG10KTsKICV0eXBlIDxzdG10PglzdG10X3JldHVybiBzdG10X3JhaXNlIHN0bXRfYXNzZXJ0 IHN0bXRfZXhlY3NxbAogJXR5cGUgPHN0bXQ+CXN0bXRfZHluZXhlY3V0ZSBzdG10X2ZvciBzdG10 X3BlcmZvcm0gc3RtdF9jYWxsIHN0bXRfZ2V0ZGlhZwogJXR5cGUgPHN0bXQ+CXN0bXRfb3BlbiBz dG10X2ZldGNoIHN0bXRfbW92ZSBzdG10X2Nsb3NlIHN0bXRfbnVsbAotJXR5cGUgPHN0bXQ+CXN0 bXRfY29tbWl0IHN0bXRfcm9sbGJhY2sKKyV0eXBlIDxzdG10PglzdG10X2NvbW1pdCBzdG10X3Jv bGxiYWNrIHN0bXRfbGV0CiAldHlwZSA8c3RtdD4Jc3RtdF9jYXNlIHN0bXRfZm9yZWFjaF9hCiAK ICV0eXBlIDxsaXN0Pglwcm9jX2V4Y2VwdGlvbnMKQEAgLTMwNyw2ICszMDcsNyBAQCBzdGF0aWMJ dm9pZAkJCWNoZWNrX3JhaXNlX3BhcmFtZXRlcnMoUExwZ1NRTF9zdG10X3JhaXNlICpzdG10KTsK ICV0b2tlbiA8a2V5d29yZD4JS19JTlRPCiAldG9rZW4gPGtleXdvcmQ+CUtfSVMKICV0b2tlbiA8 a2V5d29yZD4JS19MQVNUCisldG9rZW4gPGtleXdvcmQ+CUtfTEVUCiAldG9rZW4gPGtleXdvcmQ+ CUtfTE9HCiAldG9rZW4gPGtleXdvcmQ+CUtfTE9PUAogJXRva2VuIDxrZXl3b3JkPglLX01FUkdF CkBAIC04NzYsNiArODc3LDggQEAgcHJvY19zdG10CQk6IHBsX2Jsb2NrICc7JwogCQkJCQkJeyAk JCA9ICQxOyB9CiAJCQkJfCBzdG10X3JvbGxiYWNrCiAJCQkJCQl7ICQkID0gJDE7IH0KKwkJCQl8 IHN0bXRfbGV0CisJCQkJCQl7ICQkID0gJDE7IH0KIAkJCQk7CiAKIHN0bXRfcGVyZm9ybQk6IEtf UEVSRk9STQpAQCAtOTkyLDYgKzk5NSwyOSBAQCBzdG10X2Fzc2lnbgkJOiBUX0RBVFVNCiAJCQkJ CX0KIAkJCQk7CiAKK3N0bXRfbGV0CQk6IEtfTEVUCisJCQkJCXsKKwkJCQkJCVBMcGdTUUxfc3Rt dF9sZXQgKm5ldzsKKwkJCQkJCVJhd1BhcnNlTW9kZSBwbW9kZTsKKworCQkJCQkJcG1vZGUgPSBS QVdfUEFSU0VfUExQR1NRTF9MRVQ7CisKKwkJCQkJCW5ldyA9IHBhbGxvYzAoc2l6ZW9mKFBMcGdT UUxfc3RtdF9sZXQpKTsKKwkJCQkJCW5ldy0+Y21kX3R5cGUgPSBQTFBHU1FMX1NUTVRfTEVUOwor CQkJCQkJbmV3LT5saW5lbm8gICA9IHBscGdzcWxfbG9jYXRpb25fdG9fbGluZW5vKEAxKTsKKwkJ CQkJCW5ldy0+c3RtdGlkID0gKytwbHBnc3FsX2N1cnJfY29tcGlsZS0+bnN0YXRlbWVudHM7CisK KwkJCQkJCS8qIHB1c2ggYmFjayB0aGUgaGVhZCBuYW1lIHRvIGluY2x1ZGUgaXQgaW4gdGhlIHN0 bXQgKi8KKwkJCQkJCXBscGdzcWxfcHVzaF9iYWNrX3Rva2VuKEtfTEVUKTsKKwkJCQkJCW5ldy0+ ZXhwciA9IHJlYWRfc3FsX2NvbnN0cnVjdCgnOycsIDAsIDAsICI7IiwKKwkJCQkJCQkJCQkJCQkg ICBwbW9kZSwKKwkJCQkJCQkJCQkJCQkgICBmYWxzZSwgdHJ1ZSwKKwkJCQkJCQkJCQkJCQkgICBO VUxMLCBOVUxMKTsKKworCQkJCQkJJCQgPSAoUExwZ1NRTF9zdG10ICopbmV3OworCQkJCQl9CisJ CQkJOworCiBzdG10X2dldGRpYWcJOiBLX0dFVCBnZXRkaWFnX2FyZWFfb3B0IEtfRElBR05PU1RJ Q1MgZ2V0ZGlhZ19saXN0ICc7JwogCQkJCQl7CiAJCQkJCQlQTHBnU1FMX3N0bXRfZ2V0ZGlhZyAq bmV3OwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX3Jlc2VydmVkX2t3bGlzdC5o IGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX3Jlc2VydmVkX2t3bGlzdC5oCmluZGV4IGQzMzhlOWY2 MzcuLmJlOTRhYTc1MWEgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9yZXNlcnZl ZF9rd2xpc3QuaAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3dsaXN0LmgK QEAgLTQwLDYgKzQwLDcgQEAgUEdfS0VZV09SRCgiZnJvbSIsIEtfRlJPTSkKIFBHX0tFWVdPUkQo ImlmIiwgS19JRikKIFBHX0tFWVdPUkQoImluIiwgS19JTikKIFBHX0tFWVdPUkQoImludG8iLCBL X0lOVE8pCitQR19LRVlXT1JEKCJsZXQiLCBLX0xFVCkKIFBHX0tFWVdPUkQoImxvb3AiLCBLX0xP T1ApCiBQR19LRVlXT1JEKCJub3QiLCBLX05PVCkKIFBHX0tFWVdPUkQoIm51bGwiLCBLX05VTEwp CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfdW5yZXNlcnZlZF9rd2xpc3QuaCBi L3NyYy9wbC9wbHBnc3FsL3NyYy9wbF91bnJlc2VydmVkX2t3bGlzdC5oCmluZGV4IDY3MGI0Y2Yw YzEuLjYwMjYyOGQ3ZDIgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF91bnJlc2Vy dmVkX2t3bGlzdC5oCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF91bnJlc2VydmVkX2t3bGlz dC5oCkBAIC02OSw2ICs2OSw3IEBAIFBHX0tFWVdPUkQoImluZm8iLCBLX0lORk8pCiBQR19LRVlX T1JEKCJpbnNlcnQiLCBLX0lOU0VSVCkKIFBHX0tFWVdPUkQoImlzIiwgS19JUykKIFBHX0tFWVdP UkQoImxhc3QiLCBLX0xBU1QpCitQR19LRVlXT1JEKCJsZXQiLCBLX0xFVCkKIFBHX0tFWVdPUkQo ImxvZyIsIEtfTE9HKQogUEdfS0VZV09SRCgibWVyZ2UiLCBLX01FUkdFKQogUEdfS0VZV09SRCgi bWVzc2FnZSIsIEtfTUVTU0FHRSkKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbHBn c3FsLmggYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxwZ3NxbC5oCmluZGV4IDUwYzNiMjg0NzIuLmJi NDAwNjI5YWQgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbHBnc3FsLmgKKysrIGIv c3JjL3BsL3BscGdzcWwvc3JjL3BscGdzcWwuaApAQCAtMTI4LDYgKzEyOCw3IEBAIHR5cGVkZWYg ZW51bSBQTHBnU1FMX3N0bXRfdHlwZQogCVBMUEdTUUxfU1RNVF9DQUxMLAogCVBMUEdTUUxfU1RN VF9DT01NSVQsCiAJUExQR1NRTF9TVE1UX1JPTExCQUNLLAorCVBMUEdTUUxfU1RNVF9MRVQsCiB9 IFBMcGdTUUxfc3RtdF90eXBlOwogCiAvKgpAQCAtNTIwLDYgKzUyMSwxNyBAQCB0eXBlZGVmIHN0 cnVjdCBQTHBnU1FMX3N0bXRfYXNzaWduCiAJUExwZ1NRTF9leHByICpleHByOwogfSBQTHBnU1FM X3N0bXRfYXNzaWduOwogCisvKgorICogTGV0IHN0YXRlbWVudAorICovCit0eXBlZGVmIHN0cnVj dCBQTHBnU1FMX3N0bXRfbGV0Cit7CisJUExwZ1NRTF9zdG10X3R5cGUgY21kX3R5cGU7CisJaW50 CQkJbGluZW5vOworCXVuc2lnbmVkIGludCBzdG10aWQ7CisJUExwZ1NRTF9leHByICpleHByOwor fSBQTHBnU1FMX3N0bXRfbGV0OworCiAvKgogICogUEVSRk9STSBzdGF0ZW1lbnQKICAqLwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCA3 NzEwMWM4ZWU4Li5mODQzOWVmMGJjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtOTQ2LDggKzk0Niw3IEBAIEVSUk9SOiAgcGVybWlz c2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQogQ09OVEVYVDogIFBML3BnU1FM IGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQogRE8gJCQgQkVHSU4g TEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwOyBFTkQgJCQ7CiBFUlJPUjogIHBlcm1pc3Npb24gZGVu aWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKLUNPTlRFWFQ6ICBTUUwgc3RhdGVtZW50ICJM RVQgdmFyMS5hID0gdmFyMS5hICsgMTAiCi1QTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9i bG9jayBsaW5lIDEgYXQgU1FMIHN0YXRlbWVudAorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9u IGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBMRVQKIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBH UkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CiBT RVQgUk9MRSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CkBAIC05ODgsOCArOTg3LDcgQEAgRVJS T1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBDT05URVhU OiAgUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFJBSVNFCiBE TyAkJCBCRUdJTiBMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7IEVORCAkJDsKIEVSUk9SOiAgcGVy bWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQotQ09OVEVYVDogIFNRTCBz dGF0ZW1lbnQgIkxFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMCIKLVBML3BnU1FMIGZ1bmN0aW9uIGlu bGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBTUUwgc3RhdGVtZW50CitDT05URVhUOiAgUEwvcGdT UUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IExFVAogU0VUIFJPTEUgVE8g REVGQVVMVDsKIERST1AgVkFSSUFCTEUgdmFyMTsKIERST1AgUk9MRSByZWdyZXNzX3Zhcl90ZXN0 X3JvbGU7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3Ny Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IDVjODc1YWU2ODQuLjdhZTViODhm ZWIgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3Ny Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0xODkzLDYgKzE4OTMsNyBAQCBQTHBn U1FMX3N0bXRfZm9ycQogUExwZ1NRTF9zdG10X2ZvcnMKIFBMcGdTUUxfc3RtdF9nZXRkaWFnCiBQ THBnU1FMX3N0bXRfaWYKK1BMcGdTUUxfc3RtdF9sZXQKIFBMcGdTUUxfc3RtdF9sb29wCiBQTHBn U1FMX3N0bXRfb3BlbgogUExwZ1NRTF9zdG10X3BlcmZvcm0KLS0gCjIuNDcuMQoK --0000000000009e568d0629bac7df Content-Type: text/x-patch; charset="US-ASCII"; name="v20241220-2-0019-expression-with-session-variables-can-be-inlined.patch" Content-Disposition: attachment; filename="v20241220-2-0019-expression-with-session-variables-can-be-inlined.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4xams6y3 RnJvbSAyM2EyNGFmYTIzNzc4ZmM0Yzc0ZDU5Nzk0NDY2MWMyNTQwYTU3NGQwIE1vbiBTZXAgMTcg 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 c3Npb25fdmFyaWFibGVzLm91dAppbmRleCBmODQzOWVmMGJjLi42YWEyYjUwNWM0IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtNDAy LDcgKzQwMiw2IEBAIFNFTEVDVCB2YXIxOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Ig c2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBTRUxFQ1Qgc3FsZngoMjApOwogRVJST1I6ICBwZXJtaXNz aW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCi1DT05URVhUOiAgU1FMIGZ1bmN0 aW9uICJzcWxmeCIgc3RhdGVtZW50IDEKIFNFTEVDVCBwbHBnc3FsZngoMjApOwogRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBDT05URVhUOiAgUEwv cGdTUUwgZnVuY3Rpb24gcGxwZ3NxbGZ4KGludGVnZXIpIGxpbmUgMSBhdCBSRVRVUk4KQEAgLTUw OSwxMCArNTA4LDEwIEBAIFNFTEVDVCBzcWxmeDEoc3FsZngyKCdIZWxsbycpKTsKIAogLS0gaW5s aW5pbmcgaXMgYmxvY2tlZAogRVhQTEFJTiAoQ09TVFMgT0ZGLCBWRVJCT1NFKSBTRUxFQ1Qgc3Fs ZngxKHNxbGZ4MignSGVsbG8nKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgUmVzdWx0Ci0gICBPdXRwdXQ6IHNxbGZ4MShzcWxmeDIoJ0hlbGxvJzo6Y2hhcmFj dGVyIHZhcnlpbmcpKQorICAgT3V0cHV0OiAoKHZhcjEgfHwgJywgJzo6dGV4dCkgfHwgKCh2YXIy IHx8ICcsICc6OnRleHQpIHx8ICdIZWxsbyc6OnRleHQpKQogKDIgcm93cykKIAogRFJPUCBGVU5D VElPTiBzcWxmeDEodmFyY2hhcik7Ci0tIAoyLjQ3LjEKCg== --0000000000009e568d0629bac7df Content-Type: text/x-patch; charset="US-ASCII"; name="v20241220-2-0020-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Disposition: attachment; filename="v20241220-2-0020-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4xams6o2 RnJvbSBlYTQwYzkxYTUwMDM3MGEwMWRiMzQ4YThmNzRiOGQwMjc2NzE3MmFkIE1vbiBTZXAgMTcg 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 L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCBiYjllZjY5NjkyLi42ZDliY2RjNzVk 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 aW4ub3V0CmluZGV4IDBjOWIzMTJlYWYuLjIxMDZkMjE5MWYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 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 Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggNmFhMmI1MDVjNC4uNGUyMDIwMjkzYyAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQK QEAgLTYzOSw3ICs2MzksNyBAQCBFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInZhcjEiIGRvZXNu J3QgZXhpc3QKIExJTkUgMTogTEVUIHZhcjEgPSBwaSgpOwogICAgICAgICAgICAgXgogU0VMRUNU IHZhcjE7Ci1FUlJPUjogIGNvbHVtbiAidmFyMSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29s dW1uIG9yIHZhcmlhYmxlICJ2YXIxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1QgdmFy MTsKICAgICAgICAgICAgICAgIF4KIC0tIHNob3VsZCBiZSBvawpAQCAtODUxLDcgKzg1MSw3IEBA IFNFTEVDVCB2MTsKIAogLS0gc2hvdWxkIGZhaWwsIGF0dHJpYnV0ZSBkb2Vzbid0IGV4aXN0CiBM RVQgdjEueCA9IDEwOwotRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1 bW4gInYxIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSB0MQor RVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gb3IgdmFyaWFibGUg InYxIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSB0MQogTElO RSAxOiBMRVQgdjEueCA9IDEwOwogICAgICAgICAgICAgXgogLS0gc2hvdWxkIGZhaWwsIGRvbid0 IGFsbG93IG11bHRpIGNvbHVtbiBxdWVyeQpAQCAtMTQ4OSw3ICsxNDg5LDcgQEAgQkVHSU47CiBE Uk9QIFZBUklBQkxFIHZhcjE7CiAtLSBzaG91bGQgZmFpbAogU0VMRUNUIHZhcjE7Ci1FUlJPUjog IGNvbHVtbiAidmFyMSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxl ICJ2YXIxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1QgdmFyMTsKICAgICAgICAgICAg ICAgIF4KIFJPTExCQUNLOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90 cmFuc2FjdGlvbnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMu b3V0CmluZGV4IDdmNTc1N2U4OWMuLmIwNWIxNmQ5NGIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvdHJhbnNhY3Rpb25zLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3RyYW5zYWN0aW9ucy5vdXQKQEAgLTI1Niw3ICsyNTYsNyBAQCBTRUxFQ1QgKiBGUk9N IHRyYW5zX2JhcmJhejsJLS0gc2hvdWxkIGhhdmUgMQogQkVHSU47CiAJU0FWRVBPSU5UIG9uZTsK IAkJU0VMRUNUIHRyYW5zX2ZvbzsKLUVSUk9SOiAgY29sdW1uICJ0cmFuc19mb28iIGRvZXMgbm90 IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAidHJhbnNfZm9vIiBkb2VzIG5vdCBl eGlzdAogTElORSAxOiBTRUxFQ1QgdHJhbnNfZm9vOwogICAgICAgICAgICAgICAgXgogCVJPTExC QUNLIFRPIFNBVkVQT0lOVCBvbmU7CkBAIC0zMDUsNyArMzA1LDcgQEAgQkVHSU47CiAJU0FWRVBP SU5UIG9uZTsKIAkJSU5TRVJUIElOVE8gc2F2ZXBvaW50cyBWQUxVRVMgKDUpOwogCQlTRUxFQ1Qg dHJhbnNfZm9vOwotRVJST1I6ICBjb2x1bW4gInRyYW5zX2ZvbyIgZG9lcyBub3QgZXhpc3QKK0VS Uk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ0cmFuc19mb28iIGRvZXMgbm90IGV4aXN0CiBMSU5F IDE6IFNFTEVDVCB0cmFuc19mb287CiAgICAgICAgICAgICAgICBeCiBDT01NSVQ7CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3VuaW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvdW5pb24ub3V0CmluZGV4IGNhYThmZTcwYTAuLjFkMzQ0N2U4NGQgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0CkBAIC05MzksNyArOTM5LDcgQEAgT1JERVIgQlkg cTIscTE7CiAKIC0tIFRoaXMgc2hvdWxkIGZhaWwsIGJlY2F1c2UgcTIgaXNuJ3QgYSBuYW1lIG9m IGFuIEVYQ0VQVCBvdXRwdXQgY29sdW1uCiBTRUxFQ1QgcTEgRlJPTSBpbnQ4X3RibCBFWENFUFQg U0VMRUNUIHEyIEZST00gaW50OF90YmwgT1JERVIgQlkgcTIgTElNSVQgMTsKLUVSUk9SOiAgY29s dW1uICJxMiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJxMiIg ZG9lcyBub3QgZXhpc3QKIExJTkUgMTogLi4uIGludDhfdGJsIEVYQ0VQVCBTRUxFQ1QgcTIgRlJP TSBpbnQ4X3RibCBPUkRFUiBCWSBxMiBMSU1JVCAxLi4uCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUg aXMgYSBjb2x1bW4gbmFtZWQgInEyIiBpbiB0YWJsZSAiKlNFTEVDVCogMiIsIGJ1dCBpdCBjYW5u b3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnkuCi0tIAoyLjQ3LjEK Cg== --0000000000009e568d0629bac7df Content-Type: text/x-patch; charset="US-ASCII"; name="v20241220-2-0016-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Disposition: attachment; filename="v20241220-2-0016-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4xams7l6 RnJvbSA5YWZmZjQ2NDFiYTc4NDUxNWQ3NDAyY2UyMzhlM2QwNmJmNzViMThkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowNzowMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTYvMjJdIGFsbG93IHJlYWQgYW4gdmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBkaXJlY3RseSBm cm9tCiBleHByZXNzaW9uIGV4ZWN1dG9yCgpUaGUgZXhwcmVzc2lvbiBleGVjdXRvciBjYW4gYmUg Y2FsbGVkIGRpcmVjdGx5IChub3QgaW5zaWRlIHF1ZXJ5IGV4ZWN1dG9yKQp3aGVuIGV4cHJlc3Np b24gaXMgZXZhbHVhdGVkIGFzIHNpbXBsZSBleHByZXNzaW9uIGluIHBscGdzcWwgb3Igd2hlbiBl eHByZXNzaW9uCmlzIGFuIGFyZ3VtZW50IG9mIENBTEwgb3IgRVhFQ1VURSBzdGF0ZW1lbnRzLiBG b3IgdGhlc2UgY2FzZXMgd2UgbmVlZCB0byBhbGxvdyBkaXJlY3QKYWNjZXNzIHRvIGNvbnRlbnQg b2Ygc2Vzc2lvbiB2YXJpYWJsZXMgZnJvbSBleGVjdXRvci4gV2UgY2FuIGRvIGl0LCBiZWNhdXNl CndlIGtub3cgc28gdGhlIGV4cHJlc3Npb24gaXMgbm90IGV2YWx1YXRlZCB1bmRlciBxdWVyeSBh bmQgY2Fubm90IGJlCmV2YWx1YXRlZCBpbnNpZGUgcGFyYWxsZWwgd29ya2VyLgoKVGhpcyBwYXRj aCBlbmFibGVzIHNlc3Npb24gdmFyaWFibGVzIGZvciBzaW1wbGUgZXhwcmVzc2lvbiBldmFsdWF0 aW9uLgoKVGhpcyBwYXRjaCBlbmFibGVzIHVzYWdlIHNlc3Npb24gdmFyaWFibGVzIGluIGFyZ3Vt ZW50cyBvZiBDQUxMIHN0bXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jICAg ICAgICAgICAgICAgIHwgIDggLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAg ICAgICAgICAgICB8IDkyICsrKysrKysrKysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHBySW50ZXJwLmMgICAgICAgICB8IDE2ICsrKysKIHNyYy9iYWNrZW5kL2ppdC9sbHZt L2xsdm1qaXRfZXhwci5jICAgICAgICAgICB8ICA2ICsrCiBzcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jICAgICAgICAgICAgICAgICAgfCAgOCAtLQogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhl Y0V4cHIuaCAgICAgICAgICAgICAgIHwgMTIgKystCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxf c2Vzc2lvbl92YXJpYWJsZS5vdXQgfCAgMyArLQogc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMu YyAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzLm91dCAgICB8IDQxICsrKystLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsICAgIHwgMTIgKy0tCiAxMCBmaWxlcyBjaGFuZ2VkLCAxMzIgaW5z ZXJ0aW9ucygrKSwgNjkgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvcHJlcGFyZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCmluZGV4IGFm NDI0OTYyNjMuLmM2NTUyYWFhYzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3By ZXBhcmUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKQEAgLTMzOCwxNCAr MzM4LDYgQEAgRXZhbHVhdGVQYXJhbXMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQcmVwYXJlZFN0YXRl bWVudCAqcHN0bXQsIExpc3QgKnBhcmFtcywKIAkJaSsrOwogCX0KIAotCS8qCi0JICogVGhlIGFy Z3VtZW50cyBvZiBFWEVDVVRFIGFyZSBldmFsdWF0ZWQgYnkgYSBkaXJlY3QgZXhwcmVzc2lvbgot CSAqIGV4ZWN1dG9yIGNhbGwuICBUaGlzIG1vZGUgZG9lc24ndCBzdXBwb3J0IHNlc3Npb24gdmFy aWFibGVzIHlldC4KLQkgKiBJdCB3aWxsIGJlIGVuYWJsZWQgbGF0ZXIuCi0JICovCi0JaWYgKHBz dGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzKQotCQllbG9nKEVSUk9SLCAic2Vzc2lvbiB2YXJp YWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudCIpOwotCiAJLyogUHJlcGFyZSB0aGUg ZXhwcmVzc2lvbnMgZm9yIGV4ZWN1dGlvbiAqLwogCWV4cHJzdGF0ZXMgPSBFeGVjUHJlcGFyZUV4 cHJMaXN0KHBhcmFtcywgZXN0YXRlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY0V4cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKaW5kZXggNTkz MTVjNDk2MS4uODljYWRmNGMyNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y0V4cHIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCkBAIC0xMDA5LDI1 ICsxMDA5LDc5IEBAIEV4ZWNJbml0RXhwclJlYyhFeHByICpub2RlLCBFeHByU3RhdGUgKnN0YXRl LAogCQkJCQkJCQllc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBzdGF0ZS0+cGFyZW50LT5zdGF0 ZS0+ZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzOwogCQkJCQkJCX0KIAotCQkJCQkJCUFzc2VydChl c19zZXNzaW9uX3ZhcmlhYmxlcyk7Ci0KLQkJCQkJCQkvKiBwYXJhbWV0ZXIgc2FuaXR5IGNoZWNr cyAqLwotCQkJCQkJCWlmIChwYXJhbS0+cGFyYW1pZCA+PSBlc19udW1fc2Vzc2lvbl92YXJpYWJs ZXMpCi0JCQkJCQkJCWVsb2coRVJST1IsICJwYXJhbWlkIG9mIFBBUkFNX1ZBUklBQkxFIHBhcmFt IGlzIG91dCBvZiByYW5nZSIpOwotCi0JCQkJCQkJdmFyID0gJmVzX3Nlc3Npb25fdmFyaWFibGVz W3BhcmFtLT5wYXJhbWlkXTsKLQotCQkJCQkJCWlmICh2YXItPnR5cGlkICE9IHBhcmFtLT5wYXJh bXR5cGUpCi0JCQkJCQkJCWVsb2coRVJST1IsICJ0eXBlIG9mIGJ1ZmZlcmVkIHZhbHVlIGlzIGRp ZmZlcmVudCB0aGFuIFBBUkFNX1ZBUklBQkxFIHR5cGUiKTsKLQotCQkJCQkJCS8qCi0JCQkJCQkJ ICogSW4gdGhpcyBjYXNlLCBwYXNzIHRoZSB2YWx1ZSBsaWtlIGEKLQkJCQkJCQkgKiBjb25zdGFu dC4KLQkJCQkJCQkgKi8KLQkJCQkJCQlzY3JhdGNoLm9wY29kZSA9IEVFT1BfQ09OU1Q7Ci0JCQkJ CQkJc2NyYXRjaC5kLmNvbnN0dmFsLnZhbHVlID0gdmFyLT52YWx1ZTsKLQkJCQkJCQlzY3JhdGNo LmQuY29uc3R2YWwuaXNudWxsID0gdmFyLT5pc251bGw7Ci0JCQkJCQkJRXhwckV2YWxQdXNoU3Rl cChzdGF0ZSwgJnNjcmF0Y2gpOworCQkJCQkJCWlmIChlc19zZXNzaW9uX3ZhcmlhYmxlcykKKwkJ CQkJCQl7CisJCQkJCQkJCS8qCisJCQkJCQkJCSAqIFRoaXMgcGF0aCBpcyB1c2VkIHdoZW4gZXhw cmVzc2lvbiBpcworCQkJCQkJCQkgKiBldmFsdWF0ZWQgaW5zaWRlIHF1ZXJ5IGV2YWx1YXRpb24u IEZvcgorCQkJCQkJCQkgKiBlbnN1cmluZyBvZiBpbW11dGFiaWxpdHkgb2Ygc2Vzc2lvbiB2YXJp YWJsZQorCQkJCQkJCQkgKiBpbnNpZGUgcXVlcnkgd2UgdXNlIHNwZWNpYWwgYnVmZmVyIHdpdGgg Y29weQorCQkJCQkJCQkgKiBvZiB1c2VkIHNlc3Npb24gdmFyaWFibGVzLiBUaGlzIG1ldGhvZCBo ZWxwcworCQkJCQkJCQkgKiB3aXRoIHBhcmFsbGVsIGV4ZWN1dGlvbiB0b28uCisJCQkJCQkJCSAq LworCisJCQkJCQkJCS8qIHBhcmFtZXRlciBzYW5pdHkgY2hlY2tzICovCisJCQkJCQkJCWlmIChw YXJhbS0+cGFyYW1pZCA+PSBlc19udW1fc2Vzc2lvbl92YXJpYWJsZXMpCisJCQkJCQkJCQllbG9n KEVSUk9SLCAicGFyYW1pZCBvZiBQQVJBTV9WQVJJQUJMRSBwYXJhbSBpcyBvdXQgb2YgcmFuZ2Ui KTsKKworCQkJCQkJCQl2YXIgPSAmZXNfc2Vzc2lvbl92YXJpYWJsZXNbcGFyYW0tPnBhcmFtaWRd OworCisJCQkJCQkJCWlmICh2YXItPnR5cGlkICE9IHBhcmFtLT5wYXJhbXR5cGUpCisJCQkJCQkJ CQllbG9nKEVSUk9SLCAidHlwZSBvZiBidWZmZXJlZCB2YWx1ZSBpcyBkaWZmZXJlbnQgdGhhbiBQ QVJBTV9WQVJJQUJMRSB0eXBlIik7CisKKwkJCQkJCQkJLyoKKwkJCQkJCQkJICogSW4gdGhpcyBj YXNlLCBwYXNzIHRoZSB2YWx1ZSBsaWtlIGEKKwkJCQkJCQkJICogY29uc3RhbnQuCisJCQkJCQkJ CSAqLworCQkJCQkJCQlzY3JhdGNoLm9wY29kZSA9IEVFT1BfQ09OU1Q7CisJCQkJCQkJCXNjcmF0 Y2guZC5jb25zdHZhbC52YWx1ZSA9IHZhci0+dmFsdWU7CisJCQkJCQkJCXNjcmF0Y2guZC5jb25z dHZhbC5pc251bGwgPSB2YXItPmlzbnVsbDsKKwkJCQkJCQkJRXhwckV2YWxQdXNoU3RlcChzdGF0 ZSwgJnNjcmF0Y2gpOworCQkJCQkJCX0KKwkJCQkJCQllbHNlCisJCQkJCQkJeworCQkJCQkJCQlP aWQJCQl2YXJpZCA9IHBhcmFtLT5wYXJhbXZhcmlkOworCQkJCQkJCQlPaWQJCQl2YXJ0eXBlID0g cGFyYW0tPnBhcmFtdHlwZTsKKworCQkJCQkJCQlBc3NlcnQoIUlzUGFyYWxsZWxXb3JrZXIoKSk7 CisKKwkJCQkJCQkJLyoKKwkJCQkJCQkJICogSW4gc29tZSBjYXNlcyAocGxwZ3NxbCdzIHNpbXBs ZSBleHByZXNzaW9uCisJCQkJCQkJCSAqIGV2YWx1YXRpb24gb3IgZXZhbHVhdGlvbiBvZiBDQUxM IGFyZ3VtZW50cyksCisJCQkJCQkJCSAqIHRoZSBleHByZXNzaW9uIGV4ZWN1dG9yIGlzIGNhbGxl ZCBkaXJlY3RseS4KKwkJCQkJCQkJICogV2UgY2FuIGFsbG93IGRpcmVjdCBhY2Nlc3MgdG8gc2Vz c2lvbgorCQkJCQkJCQkgKiB2YXJpYWJsZXMgKGNvcHkgb25seSksIGJlY2F1c2Ugd2Uga25vdywg c28KKwkJCQkJCQkJICogb3V0c2lkZSBpcyBub3QgYW55IHF1ZXJ5IChhbmQgZXhwcmVzc2lvbgor CQkJCQkJCQkgKiBjYW5ub3QgYmUgZXhlY3V0ZWQgcGFyYWxsZWwpLgorCQkJCQkJCQkgKgorCQkJ CQkJCQkgKiBJbiB0aGlzIGNhc2Ugd2Ugc2hvdWxkIHRvIGRvIGFjbGNoZWNrLAorCQkJCQkJCQkg KiBiZWNhdXNlIHVzdWFsIGFjbGNoZWNrIGZyb20KKwkJCQkJCQkJICogc3RhbmRhcmRfRXhlY3V0 b3JTdGFydCBpcyBub3QgZXhlY3V0ZWQgaW4KKwkJCQkJCQkJICogdGhpcyBjYXNlLiBGb3J0dW5h dGVseSBpdCBpcyBqdXN0IG9uY2UgcGVyCisJCQkJCQkJCSAqIHRyYW5zYWN0aW9uLgorCQkJCQkJ CQkgKgorCQkJCQkJCQkgKiBEb24ndCBkbyBwZXJtaXNzaW9uIGNoZWNrLCB3aGVuIHZhcmlhYmxl IGlzCisJCQkJCQkJCSAqIHVzZWQgbGlrZSBiYXNlIG5vZGUgZm9yIGFzc2lnbm1lbnQgaW5kaXJl Y3Rpb24uCisJCQkJCQkJCSAqLworCQkJCQkJCQlpZiAoIXBhcmFtLT5wYXJhbWJhc2Vub2RlKQor CQkJCQkJCQl7CisJCQkJCQkJCQlBY2xSZXN1bHQJYWNscmVzdWx0OworCisJCQkJCQkJCQlhY2xy ZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soCisJCQkJCQkJCQkJCQkJICBWYXJpYWJsZVJlbGF0aW9u SWQsIHZhcmlkLAorCQkJCQkJCQkJCQkJCSAgR2V0VXNlcklkKCksIEFDTF9TRUxFQ1QpOworCisJ CQkJCQkJCQlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQkJCQkJCQkJCWFjbGNoZWNr X2Vycm9yKGFjbHJlc3VsdCwKKwkJCQkJCQkJCQkJCQkgICBPQkpFQ1RfVkFSSUFCTEUsCisJCQkJ CQkJCQkJCQkJICAgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOworCQkJCQkJCQl9 CisKKwkJCQkJCQkJc2NyYXRjaC5vcGNvZGUgPSBFRU9QX1BBUkFNX1ZBUklBQkxFOworCQkJCQkJ CQlzY3JhdGNoLmQudnBhcmFtLnZhcmlkID0gdmFyaWQ7CisJCQkJCQkJCXNjcmF0Y2guZC52cGFy YW0udmFydHlwZSA9IHZhcnR5cGU7CisJCQkJCQkJCUV4cHJFdmFsUHVzaFN0ZXAoc3RhdGUsICZz Y3JhdGNoKTsKKwkJCQkJCQl9CiAJCQkJCQl9CiAJCQkJCQlicmVhazsKIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNFeHBySW50ZXJwLmMKaW5kZXggNTZlMTNkMjBhOC4uMmIzY2FlOGFiZiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCkBAIC01OSw2ICs1OSw3IEBACiAjaW5jbHVk ZSAiYWNjZXNzL2hlYXB0b2FzdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNFeHByLmgiCiAjaW5jbHVkZSAiZXhl Y3V0b3Ivbm9kZVN1YnBsYW4uaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC01MTIsNiArNTEz LDcgQEAgRXhlY0ludGVycEV4cHIoRXhwclN0YXRlICpzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250 ZXh0LCBib29sICppc251bGwpCiAJCSYmQ0FTRV9FRU9QX1BBUkFNX0VYRUMsCiAJCSYmQ0FTRV9F RU9QX1BBUkFNX0VYVEVSTiwKIAkJJiZDQVNFX0VFT1BfUEFSQU1fQ0FMTEJBQ0ssCisJCSYmQ0FT RV9FRU9QX1BBUkFNX1ZBUklBQkxFLAogCQkmJkNBU0VfRUVPUF9QQVJBTV9TRVQsCiAJCSYmQ0FT RV9FRU9QX0NBU0VfVEVTVFZBTCwKIAkJJiZDQVNFX0VFT1BfTUFLRV9SRUFET05MWSwKQEAgLTEx NjEsNiArMTE2MywyMCBAQCBFeGVjSW50ZXJwRXhwcihFeHByU3RhdGUgKnN0YXRlLCBFeHByQ29u dGV4dCAqZWNvbnRleHQsIGJvb2wgKmlzbnVsbCkKIAkJCUVFT19ORVhUKCk7CiAJCX0KIAorCQlF RU9fQ0FTRShFRU9QX1BBUkFNX1ZBUklBQkxFKQorCQl7CisJCQkvKgorCQkJICogRGlyZWN0IGFj Y2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlICh3aXRob3V0IGJ1ZmZlcmluZykuIEJlY2F1c2UKKwkJ CSAqIHJldHVybmVkIHZhbHVlIGNhbiBiZSB1c2VkICh3aXRob3V0IGFuIGFzc2lnbmVtZW50KSBh ZnRlciB0aGUKKwkJCSAqIHJlZmVyZW5jZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaXMgdXBkYXRlZCwg d2UgaGF2ZSB0byB1c2UgYW4gY29weQorCQkJICogb2Ygc3RvcmVkIHZhbHVlIGV2ZXJ5IHRpbWUu CisJCQkgKi8KKwkJCSpvcC0+cmVzdmFsdWUgPSBHZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlwZUNo ZWNrKG9wLT5kLnZwYXJhbS52YXJpZCwKKwkJCQkJCQkJCQkJCQkJCW9wLT5yZXNudWxsLAorCQkJ CQkJCQkJCQkJCQkJb3AtPmQudnBhcmFtLnZhcnR5cGUpOworCQkJRUVPX05FWFQoKTsKKwkJfQor CiAJCUVFT19DQVNFKEVFT1BfUEFSQU1fU0VUKQogCQl7CiAJCQkvKiBvdXQgb2YgbGluZSwgdW5s aWtlbHkgdG8gbWF0dGVyIHBlcmZvcm1hbmNlLXdpc2UgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jIGIvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWpp dF9leHByLmMKaW5kZXggYzUzM2Y1NTI1NC4uZDQyMWFlODI4ZSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvaml0L2xsdm0v bGx2bWppdF9leHByLmMKQEAgLTExMzYsNiArMTEzNiwxMiBAQCBsbHZtX2NvbXBpbGVfZXhwcihF eHByU3RhdGUgKnN0YXRlKQogCQkJCQlicmVhazsKIAkJCQl9CiAKKwkJCWNhc2UgRUVPUF9QQVJB TV9WQVJJQUJMRToKKwkJCQlidWlsZF9FdmFsWEZ1bmMoYiwgbW9kLCAiRXhlY0V2YWxQYXJhbVZh cmlhYmxlIiwKKwkJCQkJCQkJdl9zdGF0ZSwgb3AsIHZfZWNvbnRleHQpOworCQkJCUxMVk1CdWls ZEJyKGIsIG9wYmxvY2tzW29wbm8gKyAxXSk7CisJCQkJYnJlYWs7CisKIAkJCWNhc2UgRUVPUF9Q QVJBTV9TRVQ6CiAJCQkJYnVpbGRfRXZhbFhGdW5jKGIsIG1vZCwgIkV4ZWNFdmFsUGFyYW1TZXQi LAogCQkJCQkJCQl2X3N0YXRlLCBvcCwgdl9lY29udGV4dCk7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9wYXJzZXIvYW5hbHl6ZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwppbmRl eCBkZGFiMjcwMTYwLi5lNWVlNzc2MGY2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIv YW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTM0NjksMTQg KzM0NjksNiBAQCB0cmFuc2Zvcm1DYWxsU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIENhbGxTdG10 ICpzdG10KQogCQkJCQkJCSB0cnVlLAogCQkJCQkJCSBzdG10LT5mdW5jY2FsbC0+bG9jYXRpb24p OwogCi0JLyoKLQkgKiBUaGUgYXJndW1lbnRzIG9mIENBTEwgc3RhdGVtZW50IGFyZSBldmFsdWF0 ZWQgYnkgYSBkaXJlY3QgZXhwcmVzc2lvbgotCSAqIGV4ZWN1dG9yIGNhbGwuICBUaGlzIHBhdGgg aXMgdW5zdXBwb3J0ZWQgeWV0LCBzbyBibG9jayBpdC4gIEl0IHdpbGwgYmUKLQkgKiBlbmFibGVk IGxhdGVyLgotCSAqLwotCWlmIChwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcykKLQkJZWxv ZyhFUlJPUiwgInNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQi KTsKLQogCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCBub2RlKTsKIAogCWZleHByID0g Y2FzdE5vZGUoRnVuY0V4cHIsIG5vZGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0 b3IvZXhlY0V4cHIuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmgKaW5kZXggNTZm YjBkMGFkYi4uYjQxMTNmNmQ2MiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhl Y0V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oCkBAIC0xNTYsMTAg KzE1NiwxMSBAQCB0eXBlZGVmIGVudW0gRXhwckV2YWxPcAogCUVFT1BfQk9PTFRFU1RfSVNfRkFM U0UsCiAJRUVPUF9CT09MVEVTVF9JU19OT1RfRkFMU0UsCiAKLQkvKiBldmFsdWF0ZSBQQVJBTV9F WEVDL0VYVEVSTiBwYXJhbWV0ZXJzICovCisJLyogZXZhbHVhdGUgUEFSQU1fRVhFQy9FWFRFUk4v VkFSSUFCTEUgcGFyYW1ldGVycyAqLwogCUVFT1BfUEFSQU1fRVhFQywKIAlFRU9QX1BBUkFNX0VY VEVSTiwKIAlFRU9QX1BBUkFNX0NBTExCQUNLLAorCUVFT1BfUEFSQU1fVkFSSUFCTEUsCiAJLyog c2V0IFBBUkFNX0VYRUMgdmFsdWUgKi8KIAlFRU9QX1BBUkFNX1NFVCwKIApAQCAtNDEwLDYgKzQx MSwxMyBAQCB0eXBlZGVmIHN0cnVjdCBFeHByRXZhbFN0ZXAKIAkJCU9pZAkJCXBhcmFtdHlwZTsJ LyogT0lEIG9mIHBhcmFtZXRlcidzIGRhdGF0eXBlICovCiAJCX0JCQljcGFyYW07CiAKKwkJLyog Zm9yIEVFT1BfUEFSQU1fVkFSSUFCTEUgKi8KKwkJc3RydWN0CisJCXsKKwkJCU9pZAkJCXZhcmlk OwkJLyogT0lEIG9mIGFzc2lnbmVkIHZhcmlhYmxlICovCisJCQlPaWQJCQl2YXJ0eXBlOwkvKiBP SUQgb2YgcGFyYW1ldGVyJ3MgZGF0YXR5cGUgKi8KKwkJfQkJCXZwYXJhbTsKKwogCQkvKiBmb3Ig RUVPUF9DQVNFX1RFU1RWQUwvRE9NQUlOX1RFU1RWQUwgKi8KIAkJc3RydWN0CiAJCXsKQEAgLTgz Miw2ICs4NDAsOCBAQCBleHRlcm4gdm9pZCBFeGVjRXZhbFBhcmFtU2V0KEV4cHJTdGF0ZSAqc3Rh dGUsIEV4cHJFdmFsU3RlcCAqb3AsCiAJCQkJCQkJIEV4cHJDb250ZXh0ICplY29udGV4dCk7CiBl eHRlcm4gdm9pZCBFeGVjRXZhbFBhcmFtRXh0ZXJuKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFs U3RlcCAqb3AsCiAJCQkJCQkJCUV4cHJDb250ZXh0ICplY29udGV4dCk7CitleHRlcm4gdm9pZCBF eGVjRXZhbFBhcmFtVmFyaWFibGUoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwK KwkJCQkJCQkJICBFeHByQ29udGV4dCAqZWNvbnRleHQpOwogZXh0ZXJuIHZvaWQgRXhlY0V2YWxD b2VyY2VWaWFJT1NhZmUoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCk7CiBleHRl cm4gdm9pZCBFeGVjRXZhbFNRTFZhbHVlRnVuY3Rpb24oRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2 YWxTdGVwICpvcCk7CiBleHRlcm4gdm9pZCBFeGVjRXZhbEN1cnJlbnRPZkV4cHIoRXhwclN0YXRl ICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCk7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9z cmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9wbHBnc3Fs L3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CmluZGV4IGE2NTIzZjdh ZmUuLmVjYWM2NGZjZmIgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9w bHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBl Y3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CkBAIC0yMTEsOCArMjExLDcgQEAgU0VU IFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOwogLS0gc2hvdWxkIGZhaWwKIFNFTEVDVCB2 YXJfcmVhZF9mdW5jKCk7CiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZh cmlhYmxlIHBscGdzcWxfc3ZfdmFyMQotQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gInBs cGdzcWxfc3ZfdmFyMSIKLVBML3BnU1FMIGZ1bmN0aW9uIHZhcl9yZWFkX2Z1bmMoKSBsaW5lIDMg YXQgUkFJU0UKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiB2YXJfcmVhZF9mdW5jKCkgbGlu ZSAzIGF0IFJBSVNFCiBTRVQgUk9MRSBUTyBERUZBVUxUOwogU0VUIFJPTEUgVE8gcmVncmVzc192 YXJfb3duZXJfcm9sZTsKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEg VE8gcmVncmVzc192YXJfcmVhZGVyX3JvbGU7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9z cmMvcGxfZXhlYy5jIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwppbmRleCA4YjVkZjFk NWI3Li5lMzEyMDZlN2Y0IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5j CisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKQEAgLTgwOTksOCArODA5OSw3IEBA IGV4ZWNfaXNfc2ltcGxlX3F1ZXJ5KFBMcGdTUUxfZXhwciAqZXhwcikKIAkJcXVlcnktPnNvcnRD bGF1c2UgfHwKIAkJcXVlcnktPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5LT5saW1pdENvdW50IHx8 Ci0JCXF1ZXJ5LT5zZXRPcGVyYXRpb25zIHx8Ci0JCXF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVz KQorCQlxdWVyeS0+c2V0T3BlcmF0aW9ucykKIAkJcmV0dXJuIGZhbHNlOwogCiAJLyoKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggMGRj OTQxMjhkNy4uN2JlYzUxOGI5ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTQwNSw4ICs0MDUsNyBAQCBFUlJPUjogIHBlcm1pc3Np b24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKIENPTlRFWFQ6ICBTUUwgZnVuY3Rp b24gInNxbGZ4IiBzdGF0ZW1lbnQgMQogU0VMRUNUIHBscGdzcWxmeCgyMCk7CiBFUlJPUjogIHBl cm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKLUNPTlRFWFQ6ICBQTC9w Z1NRTCBleHByZXNzaW9uICIkMSArIHZhcjEiCi1QTC9wZ1NRTCBmdW5jdGlvbiBwbHBnc3FsZngo aW50ZWdlcikgbGluZSAxIGF0IFJFVFVSTgorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHBs cGdzcWxmeChpbnRlZ2VyKSBsaW5lIDEgYXQgUkVUVVJOCiAtLSBzaG91bGQgYmUgb2sKIFNFTEVD VCBzcWxmeF9zZCgyMCk7CiAgc3FsZnhfc2QgCkBAIC02MDgsMjcgKzYwNywyOCBAQCAkJDsKIE5P VElDRTogIHJlc3VsdCBhcnJheTogezEsMiwzLDQsNSw2LDcsOCw5LDEwfQogRFJPUCBWQVJJQUJM RSB2YXIxOwogRFJPUCBWQVJJQUJMRSB2YXIyOwotLS0gQ0FMTCBzdGF0ZW1lbnQgaXMgbm90IHN1 cHBvcnRlZCB5ZXQKLS0tIHJlcXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJs ZSBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IKKy0tIENBTEwgc3RhdGVtZW50IGlzIHN1cHBvcnRl ZAogQ1JFQVRFIFZBUklBQkxFIHYgaW50OworTEVUIHYgPSAxOwogQ1JFQVRFIFBST0NFRFVSRSBw KGFyZyBpbnQpIEFTICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIGFyZzsgRU5EICQkIExBTkdV QUdFIHBscGdzcWw7Ci0tLSBzaG91bGQgbm90IGNyYXNoIChidXQgaXMgbm90IHN1cHBvcnRlZCB5 ZXQpCistLSBzaG91bGQgdG8gd29yawogQ0FMTCBwKHYpOwotRVJST1I6ICBzZXNzaW9uIHZhcmlh YmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50CitOT1RJQ0U6ICAxCiBETyAkJCBCRUdJ TiBDQUxMIHAodik7IEVORCAkJDsKLUVSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUg dXNlZCBhcyBhbiBhcmd1bWVudAotQ09OVEVYVDogIFNRTCBzdGF0ZW1lbnQgIkNBTEwgcCh2KSIK LVBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBDQUxMCitOT1RJ Q0U6ICAxCiBEUk9QIFBST0NFRFVSRSBwKGludCk7CiBEUk9QIFZBUklBQkxFIHY7Ci0tLSBFWEVD VVRFIHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVkIHlldAotLS0gcmVxdWlyZXMgZGlyZWN0IGFj Y2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorLS0gRVhF Q1VURSBzdGF0ZW1lbnQKIENSRUFURSBWQVJJQUJMRSB2IGludDsKIExFVCB2ID0gMjA7CiBQUkVQ QVJFIHB0ZXN0KGludCkgQVMgU0VMRUNUICQxOwotLS0gc2hvdWxkIGZhaWwKKy0tIHNob3VsZCBi ZSBvawogRVhFQ1VURSBwdGVzdCh2KTsKLUVSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3Qg YmUgdXNlZCBhcyBhbiBhcmd1bWVudAorID9jb2x1bW4/IAorLS0tLS0tLS0tLQorICAgICAgIDIw CisoMSByb3cpCisKIERFQUxMT0NBVEUgcHRlc3Q7CiBEUk9QIFZBUklBQkxFIHY7CiAtLSB0ZXN0 IHNlYXJjaCBwYXRoCkBAIC05NDAsMTIgKzk0MCwxMCBAQCBMRVQgdmFyMS5hID0gdmFyMS5hICsg MTA7CiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEK IERPICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7IEVORCAkJDsKIEVSUk9SOiAgcGVy bWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQotQ09OVEVYVDogIFBML3Bn U1FMIGV4cHJlc3Npb24gInZhcjEiCi1QTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9j ayBsaW5lIDEgYXQgUkFJU0UKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29k ZV9ibG9jayBsaW5lIDEgYXQgUkFJU0UKIERPICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIHZh cjEuYTsgRU5EICQkOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJp YWJsZSB2YXIxCi1DT05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAidmFyMS5hIgotUEwvcGdT UUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFJBSVNFCitDT05URVhUOiAg UEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFJBSVNFCiBETyAk JCBCRUdJTiBMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7IEVORCAkJDsKIEVSUk9SOiAgcGVybWlz c2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQogQ09OVEVYVDogIFNRTCBzdGF0 ZW1lbnQgIkxFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMCIKQEAgLTk4NCwxMiArOTgyLDEwIEBAIExF VCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNl c3Npb24gdmFyaWFibGUgdmFyMQogRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMTsg RU5EICQkOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2 YXIxCi1DT05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAidmFyMSIKLVBML3BnU1FMIGZ1bmN0 aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQorQ09OVEVYVDogIFBML3BnU1FM IGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQogRE8gJCQgQkVHSU4g UkFJU0UgTk9USUNFICclJywgdmFyMS5hOyBFTkQgJCQ7CiBFUlJPUjogIHBlcm1pc3Npb24gZGVu aWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKLUNPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNz aW9uICJ2YXIxLmEiCi1QTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEg YXQgUkFJU0UKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBs aW5lIDEgYXQgUkFJU0UKIERPICQkIEJFR0lOIExFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsgRU5E ICQkOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIx CiBDT05URVhUOiAgU1FMIHN0YXRlbWVudCAiTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwIgpAQCAt MTgxOSw4ICsxODE1LDcgQEAgJCQ7CiBFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52 YXIxIiBpcyBub3QgdXNlZCBpbnNpZGUgdmFyaWFibGUgZmVuY2UKIERFVEFJTDogIFRoZXJlIGlz IGEgcmlzayBvZiB1bndhbnRlZCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlLgogSElOVDogIFVz ZSB2YXJpYWJsZSBmZW5jZSAiVkFSSUFCTEUodmFybmFtZSkgZm9yIGFjY2VzcyB0byB2YXJpYWJs ZSIuCi1DT05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAidmFyMSIKLVBML3BnU1FMIGZ1bmN0 aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgNCBhdCBSQUlTRQorQ09OVEVYVDogIFBML3BnU1FM IGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgNCBhdCBSQUlTRQogLS0gc2hvdWxkIGJl IG9rCiBTRUxFQ1QgVkFSSUFCTEUodmFyMSksIFZBUklBQkxFKHZhcjEpOwogIHZhcjEgfCB2YXIx IApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3Fs IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4IGM2OThi YjRlYTYuLmJlMTk2ZTA0MzggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Np b25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zhcmlh Ymxlcy5zcWwKQEAgLTQyMywxMyArNDIzLDE0IEBAICQkOwogRFJPUCBWQVJJQUJMRSB2YXIxOwog RFJPUCBWQVJJQUJMRSB2YXIyOwogCi0tLSBDQUxMIHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVk IHlldAotLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlIGZyb20g ZXhwcmVzc2lvbiBleGVjdXRvcgorLS0gQ0FMTCBzdGF0ZW1lbnQgaXMgc3VwcG9ydGVkCiBDUkVB VEUgVkFSSUFCTEUgdiBpbnQ7CiAKK0xFVCB2ID0gMTsKKwogQ1JFQVRFIFBST0NFRFVSRSBwKGFy ZyBpbnQpIEFTICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIGFyZzsgRU5EICQkIExBTkdVQUdF IHBscGdzcWw7CiAKLS0tIHNob3VsZCBub3QgY3Jhc2ggKGJ1dCBpcyBub3Qgc3VwcG9ydGVkIHll dCkKKy0tIHNob3VsZCB0byB3b3JrCiBDQUxMIHAodik7CiAKIERPICQkIEJFR0lOIENBTEwgcCh2 KTsgRU5EICQkOwpAQCAtNDM3LDEzICs0MzgsMTIgQEAgRE8gJCQgQkVHSU4gQ0FMTCBwKHYpOyBF TkQgJCQ7CiBEUk9QIFBST0NFRFVSRSBwKGludCk7CiBEUk9QIFZBUklBQkxFIHY7CiAKLS0tIEVY RUNVVEUgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0Ci0tLSByZXF1aXJlcyBkaXJlY3Qg YWNjZXNzIHRvIHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCistLSBF WEVDVVRFIHN0YXRlbWVudAogQ1JFQVRFIFZBUklBQkxFIHYgaW50OwogTEVUIHYgPSAyMDsKIFBS RVBBUkUgcHRlc3QoaW50KSBBUyBTRUxFQ1QgJDE7CiAKLS0tIHNob3VsZCBmYWlsCistLSBzaG91 bGQgYmUgb2sKIEVYRUNVVEUgcHRlc3Qodik7CiAKIERFQUxMT0NBVEUgcHRlc3Q7Ci0tIAoyLjQ3 LjEKCg== --0000000000009e568d0629bac7df Content-Type: text/x-patch; charset="US-ASCII"; name="v20241220-2-0017-allow-parallel-execution-queries-with-session-variab.patch" Content-Disposition: attachment; filename="v20241220-2-0017-allow-parallel-execution-queries-with-session-variab.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4xams7e5 RnJvbSAwMDZkNWZlNDQzZmM1ODkyMDllZmE5YzBmOWViNmM0ZjdkMjY1NDMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowODoxNyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTcvMjJdIGFsbG93IHBhcmFsbGVsIGV4ZWN1dGlvbiBxdWVyaWVzIHdpdGggc2Vzc2lvbiB2YXJp YWJsZXMKCi0tLQogZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgICA2IC0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICAgICAgICB8 ICAxNCArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMgICAgICAgICAgIHwg MTQ3ICsrKysrKysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNl cy5jICAgICAgICAgIHwgIDE4ICstLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXMub3V0ICAgIHwgIDEyICstCiA1IGZpbGVzIGNoYW5nZWQsIDE3MSBpbnNlcnRpb25zKCsp LCAyNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dt bCBiL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCmluZGV4IDY4M2RlZGU2YWQuLjFjZTlhYmY4 NmYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9wYXJhbGxlbC5zZ21sCkBAIC01MTUsMTIgKzUxNSw2IEBAIEVYUExBSU4gU0VMRUNUICog RlJPTSBwZ2JlbmNoX2FjY291bnRzIFdIRVJFIGZpbGxlciBMSUtFICcleCUnOwogICAgICAgICBQ bGFuIG5vZGVzIHRoYXQgcmVmZXJlbmNlIGEgY29ycmVsYXRlZCA8bGl0ZXJhbD5TdWJQbGFuPC9s aXRlcmFsPi4KICAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgotCi0gICAgPGxpc3RpdGVt PgotICAgICAgPHBhcmE+Ci0gICAgICAgIFBsYW4gbm9kZXMgdGhhdCB1c2UgYSBzZXNzaW9uIHZh cmlhYmxlLgotICAgICAgPC9wYXJhPgotICAgIDwvbGlzdGl0ZW0+CiAgIDwvaXRlbWl6ZWRsaXN0 PgogCiAgPHNlY3QyIGlkPSJwYXJhbGxlbC1sYWJlbGluZyI+CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4u YwppbmRleCAzYzE3NGYyNzVmLi5jNThlNTA2ODFmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9l 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 X3ZhcmlhYmxlcy5vdXQKaW5kZXggN2JlYzUxOGI5ZC4uNzcxMDFjOGVlOCAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTEwNjUsMTIg KzEwNjUsMTQgQEAgU0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0IFdIRVJFIGElMTAgPSB6 ZXJvOwogCiAtLSBwYXJhbGxlbCBleGVjdXRpb24gaXMgbm90IHN1cHBvcnRlZCB5ZXQKIEVYUExB SU4gKENPU1RTIE9GRikgU0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0IFdIRVJFIGElMTAg PSB6ZXJvOwotICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICBBZ2dyZWdhdGUKLSAgIC0+ICBTZXEgU2NhbiBvbiBzdmFyX3Rlc3QKLSAgICAgICAgIEZp bHRlcjogKChhICUgMTApID0gemVybykKLSgzIHJvd3MpCisgICAtPiAgR2F0aGVyCisgICAgICAg ICBXb3JrZXJzIFBsYW5uZWQ6IDIKKyAgICAgICAgIC0+ICBQYXJhbGxlbCBTZXEgU2NhbiBvbiBz dmFyX3Rlc3QKKyAgICAgICAgICAgICAgIEZpbHRlcjogKChhICUgMTApID0gemVybykKKyg1IHJv d3MpCiAKIExFVCB6ZXJvID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCk7CiAtLSBy ZXN1bHQgc2hvdWxkIGJlIDEwMDAKLS0gCjIuNDcuMQoK --0000000000009e568d0629bac7df Content-Type: text/x-patch; charset="US-ASCII"; name="v20241220-2-0015-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Disposition: attachment; filename="v20241220-2-0015-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4xams7s7 RnJvbSAxNjc2M2Y5MGFmNjEzNDA3ZjI0ZDFjOTc5NzRiZjExYTYzYjI2NDEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowNTowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTUvMjJdIEltcGxlbWVudGF0aW9uIG9mIE5PVCBOVUxMIGFuZCBJTU1VVEFCTEUgY2xhdXNlcwoK QWxtb3N0IHRyaXZpYWwgcGF0Y2ggLSBwc3FsLCBwZ19kdW1wIHN1cHBvcnQKLS0tCiBkb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMjAgKysrCiBkb2Mvc3Jj L3NnbWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIGRvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAzMiArKystCiBzcmMvYmFj a2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDggKwogc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgIDY5ICsrKysrKystCiBzcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgNDEgKysrLS0KIHNy Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8ICAxOSArKy0KIHNy Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMv YmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAgICAgfCAgMzYgKysrKwogc3Jj L2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBzcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICAgICAgfCAgMTIgKy0KIHNyYy9p bmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAgNiArCiBzcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAgICAgICAgIHwgIDM2ICsrLS0KIC4uLi9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDE1NSArKysrKysrKysrKysr KysrKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDEy MiArKysrKysrKysrKysrKwogMTYgZmlsZXMgY2hhbmdlZCwgNTIzIGluc2VydGlvbnMoKyksIDQ2 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIv ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggMjQ3OGMxZDQxZC4uZTY2MjZiYTU3MCAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwKQEAgLTk4NDEsNiArOTg0MSwyNiBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBs 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 bGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCA0NTU0 MzM4MzM4Li5jN2M3YWE1N2Y2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNz 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 IGFiOTFlY2ZhZGYuLmZiZGVlYWYzMzMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmli ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC01MjUwLDcgKzUyNTAsNyBAQCBs aXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlQUUV4cEJ1 ZmZlckRhdGEgYnVmOwogCVBHcmVzdWx0ICAgKnJlczsKIAlwcmludFF1ZXJ5T3B0IG15b3B0ID0g cHNldC5wb3B0OwotCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZX07CisJc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZSwgZmFsc2V9OwogCiAJaWYgKHBzZXQuc3ZlcnNpb24gPCAxODAwMDApCiAJewpAQCAtNTI3MSw2 ICs1MjcxLDggQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJv c2UpCiAJCQkJCSAgIiAgKFNFTEVDVCBjLmNvbGxuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19jb2xs YXRpb24gYywgcGdfY2F0YWxvZy5wZ190eXBlIGJ0XG4iCiAJCQkJCSAgIiAgIFdIRVJFIGMub2lk ID0gdi52YXJjb2xsYXRpb24gQU5EIGJ0Lm9pZCA9IHYudmFydHlwZSBBTkQgdi52YXJjb2xsYXRp b24gPD4gYnQudHlwY29sbGF0aW9uKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxv Zy5wZ19nZXRfdXNlcmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIE5P VCB2LnZhcm5vdG51bGwgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIE5PVCB2LnZhcmlzaW1tdXRh YmxlIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF9leHByKHYudmFy ZGVmZXhwciwgMCkgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIENBU0Ugdi52YXJ4YWN0ZW5kYWN0 aW9uXG4iCiAJCQkJCSAgIiAgICBXSEVOICdkJyBUSEVOICdPTiBDT01NSVQgRFJPUCdcbiIKQEAg LTUyODEsNiArNTI4Myw4IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9v 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 ZW5vZGVzLmgKaW5kZXggOTBiMjczZTRhZC4uNzc3MTQ4NTBkZCAxMDA2NDQKLS0tIGEvc3JjL2lu 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 c2lvbl92YXJpYWJsZXMub3V0CmluZGV4IGZhNjZlZjEwYTMuLjBkYzk0MTI4ZDcgMTAwNjQ0Ci0t 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 MSByb3cpCiAKIERST1AgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMTsKQEAgLTIxOTEsMyArMjE5MSwx 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 ZGV4IGY2N2FhZTM5ZGQuLmM2OThiYjRlYTYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNz aW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTE0OTAsMyArMTQ5MCwxMjUgQEAgU0VMRUNUIHZhcjE7CiAK 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= --0000000000009e568d0629bac7df Content-Type: text/x-patch; charset="US-ASCII"; name="v20241220-2-0014-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Disposition: attachment; filename="v20241220-2-0014-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4xams7y8 RnJvbSA1ZTFjMTE5MWU1ZDcwYTk0N2I3ODkwZGVlYzkzN2EwYmM2NGE4NTUxIE1vbiBTZXAgMTcg 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 L2NhdGFsb2dzLnNnbWwKaW5kZXggZDY4NzhjODQ3Mi4uMjQ3OGMxZDQxZCAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNn bWwKQEAgLTk4NzMsNiArOTg3MywxNCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7 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 YmxlLmMKaW5kZXggMjNmODRiMzRlNy4uNDU1NDMzODMzOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl 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 cnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggOThmNGQ2 NDUzMy4uYmI5ZWY2OTY5MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4 cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC01ODgsNiArNTg4 LDcgQEAgZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3ZhcmlhYmxlcyhQYXJzZUV4cHJLaW5kIHBf ZXhwcl9raW5kKQogCQljYXNlIEVYUFJfS0lORF9KT0lOX1VTSU5HOgogCQljYXNlIEVYUFJfS0lO RF9DWUNMRV9NQVJLOgogCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQljYXNlIEVY UFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUOgogCQkJcmVzdWx0ID0gZmFsc2U7CiAJCQlicmVhazsK IAl9CkBAIC02NzMsNiArNjc0LDcgQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgogCQlj YXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgogCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VU OgorCQljYXNlIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUOgogCQkJLyogb2theSAqLwogCQkJ YnJlYWs7CiAKQEAgLTIxNDYsNiArMjE0OCw3IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJsaW5rKQogCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5E X0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgorCQlj YXNlIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUOgogCQkJZXJyID0gXygiY2Fubm90IHVzZSBz dWJxdWVyeSBpbiBERUZBVUxUIGV4cHJlc3Npb24iKTsKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJf S0lORF9JTkRFWF9FWFBSRVNTSU9OOgpAQCAtMzQ5OCw2ICszNTAxLDcgQEAgUGFyc2VFeHByS2lu 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 Y3JpYmUuYwppbmRleCBmZjNhMzJiZjliLi5hYjkxZWNmYWRmIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtNTI1MCw3 ICs1MjUwLDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJv c2UpCiAJUFFFeHBCdWZmZXJEYXRhIGJ1ZjsKIAlQR3Jlc3VsdCAgICpyZXM7CiAJcHJpbnRRdWVy eU9wdCBteW9wdCA9IHBzZXQucG9wdDsKLQlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29s dW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl LCBmYWxzZX07CisJc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxz ZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNl fTsKIAogCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTgwMDAwKQogCXsKQEAgLTUyNzEsNiArNTI3MSw3 IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCQkJ CQkgICIgIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdfY29sbGF0aW9uIGMs IHBnX2NhdGFsb2cucGdfdHlwZSBidFxuIgogCQkJCQkgICIgICBXSEVSRSBjLm9pZCA9IHYudmFy Y29sbGF0aW9uIEFORCBidC5vaWQgPSB2LnZhcnR5cGUgQU5EIHYudmFyY29sbGF0aW9uIDw+IGJ0 LnR5cGNvbGxhdGlvbikgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0 X3VzZXJieWlkKHYudmFyb3duZXIpIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9n LnBnX2dldF9leHByKHYudmFyZGVmZXhwciwgMCkgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIENB U0Ugdi52YXJ4YWN0ZW5kYWN0aW9uXG4iCiAJCQkJCSAgIiAgICBXSEVOICdkJyBUSEVOICdPTiBD T01NSVQgRFJPUCdcbiIKIAkJCQkJICAiICAgIFdIRU4gJ3InIFRIRU4gJ09OIFRSQU5TQUNUSU9O IEVORCBSRVNFVCdcbiIKQEAgLTUyODAsNiArNTI4MSw3IEBAIGxpc3RWYXJpYWJsZXMoY29uc3Qg Y2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIp LAogCQkJCQkgIGdldHRleHRfbm9vcCgiQ29sbGF0aW9uIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29w KCJPd25lciIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiRGVmYXVsdCIpLAogCQkJCQkgIGdldHRl eHRfbm9vcCgiVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIikpOwogCiAJaWYgKHZlcmJvc2UpCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXggMmM1MTk4OWFhNC4uMzUyOGE5OGY2NyAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaApAQCAtNjgsNiArNjgsOSBAQCBDQVRBTE9HKHBnX3Zh cmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQogCS8qIGFjY2VzcyBwZXJtaXNzaW9ucyAq LwogCWFjbGl0ZW0JCXZhcmFjbFsxXSBCS0lfREVGQVVMVChfbnVsbF8pOwogCisJLyogbGlzdCBv ZiBleHByZXNzaW9uIHRyZWVzIGZvciB2YXJpYWJsZSBkZWZhdWx0IChOVUxMIGlmIG5vbmUpICov CisJcGdfbm9kZV90cmVlIHZhcmRlZmV4cHIgQktJX0RFRkFVTFQoX251bGxfKTsKKwogI2VuZGlm CiB9IEZvcm1EYXRhX3BnX3ZhcmlhYmxlOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rl cy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggMTI0 OGIxYTk4NS4uOTBiMjczZTRhZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu 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 eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggODJmYmRmZTUxNC4uZmE2NmVmMTBh MyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl 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 VkFSSUFCTEUgc3ZhcnRlc3QudmFyMTsKQEAgLTIxMjgsMyArMjEyOCw2NiBAQCBTRUxFQ1QgdmFy 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 IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4IDg4ZDdh NjRkMDkuLmY2N2FhZTM5ZGQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Np b25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zhcmlh Ymxlcy5zcWwKQEAgLTE0NDIsMyArMTQ0Miw1MSBAQCBST0xMQkFDSzsKIFNFTEVDVCB2YXIxIElT IE5VTEw7CiAKIERST1AgVkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJ T04gdmFydGVzdF9meCgpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNF ICd2YXJ0ZXN0X2Z4IGV4ZWN1dGVkJzsKKyAgUkVUVVJOIDA7CitFTkQ7CiskJCBMQU5HVUFHRSBw bHBnc3FsOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgREVGQVVMVCB2YXJ0ZXN0X2Z4 KCk7CisKKy0tIHZhcnRlc3RfZnggc2hvdWxkIGJlIHByb3RlY3RlZCBieSBkZXAsIHNob3VsZCBm YWlsCitEUk9QIEZVTkNUSU9OIHZhcnRlc3RfZngoKTsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxF Q1QgdmFyMTsKKworLS0gdGhlIGRlZmV4cHIgc2hvdWxkIGJlIGV2YWx1YXRlZCBvbmx5IG9uY2UK K1NFTEVDVCB2YXIxOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gaW4gdGhpcyBjYXNlLCB0 aGUgZGVmZXhwciBzaG91bGQgbm90IGJlIGV2YWx1YXRlZAorTEVUIHZhcjEgPSAxMDA7CitTRUxF Q1QgdmFyMTsKKworRElTQ0FSRCBWQVJJQUJMRVM7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNU SU9OIHZhcnRlc3RfZngoKQorUkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIEVYQ0VQ VElPTiAndmFydGVzdF9meCBpcyBleGVjdXRpbmcnOworICBSRVRVUk4gMDsKK0VORDsKKyQkIExB TkdVQUdFIHBscGdzcWw7CisKKy0tIHNob3VsZCB0byBmYWlsLCBidXQgbm90IHRvIGNyYXNoCitT RUxFQ1QgdmFyMTsKKworLS0gYWdhaW4KK1NFTEVDVCB2YXIxOworCistLSBidXQgd2UgY2FuIHdy aXRlCitMRVQgdmFyMSA9IDEwMDsKK1NFTEVDVCB2YXIxOworCitEUk9QIFZBUklBQkxFIHZhcjE7 CitEUk9QIEZVTkNUSU9OIHZhcnRlc3RfZngoKTsKLS0gCjIuNDcuMQoK --0000000000009e568d0629bac7df Content-Type: text/x-patch; charset="US-ASCII"; name="v20241220-2-0013-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Disposition: attachment; filename="v20241220-2-0013-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4xams859 RnJvbSA4NDYyNTNlNjIxZTU1NTE3YjdhZGQzMjRhNDQ1NzQxZjdhYWFmZTcyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMjoxMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTMvMjJdIEltcGxlbWVudGF0aW9uIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCBjbGF1c2UKClRo aXMgaXMgc2ltcGxlIHBhdGNoIC0ganVzdCBhZGQgc3BlY2lhbCBmbGFnIHRvIHNlc3Npb24gdmFy aWFibGUgbWVtb3J5IGVudHJ5LgpUaGUgZW50cmllcyB3aXRoIGFjdGl2ZSB0aGlzIGZsYWcgYXJl IHJlbW92ZWQgZnJvbSBzZXNzaW9udmFycyBoYXNoIHRhYmxlCmF0IHRyYW5zYWN0aW9uIGVuZC4g VGhlICJUUkFOU0FDVElPTiBFTkQiIGlzIHN5bm9ueW1zIGZvciAiQ09NTUlUIFJPTExCQUNLIgpi dXQgdGhlICJUUkFOU0FDVElPTiBFTkQiIGlzIG1vcmUgaWxsdXN0cmF0aXZlIGFuZCBsZXNzIGNv bmZ1c2luZyB0aGVuICJDT01NSVQgUk9MTEJBQ0siLgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAzICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAxMyArKysrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgNTEgKysrKysrKysrKysrKysrKysrKwogc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgMTEgKysrKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgMTggKysrKysrKwogc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgIDEgKwogLi4uL2lzb2xhdGlvbi9l eHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgIDQgKy0KIC4uLi9pc29sYXRpb24vc3Bl Y3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICA0ICstCiAuLi4vcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAzNCArKysrKysrKysrKysrCiBzcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyMCArKysrKysrKwogMTMgZmls ZXMgY2hhbmdlZCwgMTU4IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bAppbmRleCAyYjA3N2Q2MjQ1Li5kNjg3OGM4NDcyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtOTg0NSw3 ICs5ODQ1LDggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+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 ZS5jCmluZGV4IGI5M2RhODcxODEuLjIzZjg0YjM0ZTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k 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 cmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCA5NGU1MzU3ZTkzLi5mZjNhMzJiZjliIDEwMDY0 NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3Jp YmUuYwpAQCAtNTI3Myw2ICs1MjczLDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0 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 ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDljNjM1NDA0ZDQuLjgyZmJkZmU1 MTQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJs ZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMu b3V0CkBAIC0yMDk0LDMgKzIwOTQsMzcgQEAgU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lv bl92YXJpYWJsZXMoKTsKICAgICAgMAogKDEgcm93KQogCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUOworQkVHSU47CisgIExFVCB2YXIxID0gMTAw OworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitDT01N SVQ7CistLSBzaG91bGQgYmUgTlVMTDsKK1NFTEVDVCB2YXIxIElTIE5VTEw7CisgP2NvbHVtbj8g CistLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitCRUdJTjsKKyAgTEVUIHZhcjEgPSAxMDA7Cisg IFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK1JPTExCQUNL OworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxIElTIE5VTEw7CisgP2NvbHVtbj8gCist LS0tLS0tLS0tCisgdAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggZTMyM2Y1YmQyMy4uODhkN2E2 NGQwOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAt MTQyMiwzICsxNDIyLDIzIEBAIENPTU1JVDsKIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Zhcmlh YmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CiAtLSBzaG91bGQgYmUgemVybwogU0VMRUNUIGNv dW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgaW50IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDsKKworQkVHSU47CisgIExFVCB2YXIx ID0gMTAwOworICBTRUxFQ1QgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIE5VTEw7CitT RUxFQ1QgdmFyMSBJUyBOVUxMOworCitCRUdJTjsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVD VCB2YXIxOworUk9MTEJBQ0s7CisKKy0tIHNob3VsZCBiZSBOVUxMCitTRUxFQ1QgdmFyMSBJUyBO VUxMOworCitEUk9QIFZBUklBQkxFIHZhcjE7Ci0tIAoyLjQ3LjEKCg== --0000000000009e568d0629bac7df Content-Type: text/x-patch; charset="US-ASCII"; name="v20241220-2-0012-implementation-of-temporary-session-variables.patch" Content-Disposition: attachment; filename="v20241220-2-0012-implementation-of-temporary-session-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4xams8f10 RnJvbSAzZjg5YjAyNDUyMmZmNDIyZDkzZWI0ODNmNjNkMTgzYzNlYzk3NmIyIE1vbiBTZXAgMTcg 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 LnNnbWwKaW5kZXggZTQ3OWQ2NmNmMC4uMmIwNzdkNjI0NSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTk4 MzksNiArOTgzOSwxNiBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9u 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 c3Npb25fdmFyaWFibGUuYwppbmRleCA1ZDkyM2VhYzY2Li5iOTNkYTg3MTgxIDEwMDY0NAotLS0g 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 ZXIvYW5hbHl6ZS5jCmluZGV4IDVjZGU0MzFkNzkuLmRkYWIyNzAxNjAgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5 emUuYwpAQCAtMzM4OSwxMCArMzM4OSwxMCBAQCB0cmFuc2Zvcm1DcmVhdGVUYWJsZUFzU3RtdChQ 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 L3BzcWwvZGVzY3JpYmUuYwppbmRleCA1NWE1ZWY4MGI3Li45NGU1MzU3ZTkzIDEwMDY0NAotLS0g YS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpA QCAtNTI1MCw3ICs1MjUwLDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBi b29sIHZlcmJvc2UpCiAJUFFFeHBCdWZmZXJEYXRhIGJ1ZjsKIAlQR3Jlc3VsdCAgICpyZXM7CiAJ cHJpbnRRdWVyeU9wdCBteW9wdCA9IHBzZXQucG9wdDsKLQlzdGF0aWMgY29uc3QgYm9vbCB0cmFu c2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs c2UsIGZhbHNlfTsKKwlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2Zh bHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CiAK IAlpZiAocHNldC5zdmVyc2lvbiA8IDE4MDAwMCkKIAl7CkBAIC01MjcwLDEyICs1MjcwLDE2IEBA 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 bGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAppbmRleCA5MGU5 YmMxYTgzLi4wMDQ1MTExNWRkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5oCkBAIC0yMSw3ICsyMSwxMSBAQAogI2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCiAjaW5jbHVk ZSAidXRpbHMvcXVlcnllbnZpcm9ubWVudC5oIgogCi1leHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFi bGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZhcmlkKTsKK2V4dGVybiB2b2lkIFNlc3Npb25WYXJpYWJs ZUNyZWF0ZVBvc3Rwcm9jZXNzKE9pZCB2YXJpZCwgY2hhciBYYWN0RW5kQWN0aW9uKTsKK2V4dGVy biB2b2lkIFNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQsIGNoYXIgWGFj dEVuZEFjdGlvbik7CitleHRlcm4gdm9pZCBBdFByZUVPWGFjdF9TZXNzaW9uVmFyaWFibGVzKGJv b2wgaXNDb21taXQpOworZXh0ZXJuIHZvaWQgQXRFT1N1YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyhi b29sIGlzQ29tbWl0LCBTdWJUcmFuc2FjdGlvbklkIG15U3ViaWQsCisJCQkJCQkJCQkJIFN1YlRy YW5zYWN0aW9uSWQgcGFyZW50U3ViaWQpOwogCiBleHRlcm4gdm9pZCBTZXRTZXNzaW9uVmFyaWFi bGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpOwogZXh0ZXJuIERhdHVtIEdl dFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCwgT2lkICp0eXBpZCk7CmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggNjdmNDFiNGFiOS4uMTI0OGIxYTk4NSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaApAQCAtMzQ4Nyw2ICszNDg3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRl U2Vzc2lvblZhclN0bXQKIAlUeXBlTmFtZSAgICp0eXBlTmFtZTsJCS8qIHRoZSB0eXBlIG9mIHZh cmlhYmxlICovCiAJQ29sbGF0ZUNsYXVzZSAqY29sbENsYXVzZTsKIAlib29sCQlpZl9ub3RfZXhp c3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0IGFscmVhZHkgZXhpc3RzICovCisJY2hhcgkJWGFjdEVu ZEFjdGlvbjsJLyogb24gdHJhbnNhY3Rpb24gZW5kIGFjdGlvbiAqLwogfSBDcmVhdGVTZXNzaW9u VmFyU3RtdDsKIAogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBi L3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCmluZGV4IDYyYmQwYjJmYzUuLjI4NmViYTU3 NGQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3NyYy9p bmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC01MSw3ICs1MSw5IEBAIHR5cGVkZWYgc3RydWN0 IEFsaWFzCiAJTGlzdAkgICAqY29sbmFtZXM7CQkvKiBvcHRpb25hbCBsaXN0IG9mIGNvbHVtbiBh bGlhc2VzICovCiB9IEFsaWFzOwogCi0vKiBXaGF0IHRvIGRvIGF0IGNvbW1pdCB0aW1lIGZvciB0 ZW1wb3JhcnkgcmVsYXRpb25zICovCisvKgorICogV2hhdCB0byBkbyBhdCBjb21taXQgdGltZSBm b3IgdGVtcG9yYXJ5IHJlbGF0aW9ucyBvciBzZXNzaW9uIHZhcmlhYmxlcy4KKyAqLwogdHlwZWRl ZiBlbnVtIE9uQ29tbWl0QWN0aW9uCiB7CiAJT05DT01NSVRfTk9PUCwJCQkJLyogTm8gT04gQ09N TUlUIGNsYXVzZSAoZG8gbm90aGluZykgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZV9yZWxhdGlvbi5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgK aW5kZXggOTFmZDhlMjQzYi4uYTgxMTdiY2FlMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFy c2VyL3BhcnNlX3JlbGF0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0 aW9uLmgKQEAgLTEyNiw2ICsxMjYsNiBAQCBleHRlcm4gaW50CWF0dG5hbWVBdHROdW0oUmVsYXRp b24gcmQsIGNvbnN0IGNoYXIgKmF0dG5hbWUsIGJvb2wgc3lzQ29sT0spOwogZXh0ZXJuIGNvbnN0 IE5hbWVEYXRhICphdHRudW1BdHROYW1lKFJlbGF0aW9uIHJkLCBpbnQgYXR0aWQpOwogZXh0ZXJu IE9pZAlhdHRudW1UeXBlSWQoUmVsYXRpb24gcmQsIGludCBhdHRpZCk7CiBleHRlcm4gT2lkCWF0 dG51bUNvbGxhdGlvbklkKFJlbGF0aW9uIHJkLCBpbnQgYXR0aWQpOwotZXh0ZXJuIGJvb2wgaXNR dWVyeVVzaW5nVGVtcFJlbGF0aW9uKFF1ZXJ5ICpxdWVyeSk7CitleHRlcm4gYm9vbCBpc1F1ZXJ5 VXNpbmdUZW1wT2JqZWN0KFF1ZXJ5ICpxdWVyeSk7CiAKICNlbmRpZgkJCQkJCQkvKiBQQVJTRV9S RUxBVElPTl9IICovCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vz c2lvbi12YXJpYWJsZS5vdXQgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12 YXJpYWJsZS5vdXQKaW5kZXggMGE1NTc5ZGM3Yy4uYTYwOTc5N2RjNSAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CisrKyBiL3NyYy90 ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApAQCAtODYsMTAgKzg2 LDExIEBAIG15dmFyCiAKIHN0ZXAgc3IxOiBST0xMQkFDSzsKIAotc3RhcnRpbmcgcGVybXV0YXRp b246IGNyZWF0ZTMgbGV0MyBzMyBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2Nh cmQgc2MzIHN0YXRlCitzdGFydGluZyBwZXJtdXRhdGlvbjogY3JlYXRlMyBsZXQzIHMzIG9fY19k IGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKIHN0ZXAg Y3JlYXRlMzogQ1JFQVRFIFZBUklBQkxFIG15dmFyMyBBUyB0ZXh0Owogc3RlcCBsZXQzOiBMRVQg bXl2YXIzID0gJ3Rlc3QnOwogc3RlcCBzMzogQkVHSU47CitzdGVwIG9fY19kOiBDUkVBVEUgVEVN UCBWQVJJQUJMRSBteXZhcl9vX2NfZCBBUyB0ZXh0IE9OIENPTU1JVCBEUk9QOwogc3RlcCBjcmVh dGU0OiBDUkVBVEUgVkFSSUFCTEUgbXl2YXI0IEFTIHRleHQ7CiBzdGVwIGxldDQ6IExFVCBteXZh cjQgPSAndGVzdCc7CiBzdGVwIGRyb3A0OiBEUk9QIFZBUklBQkxFIG15dmFyNDsKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgYi9zcmMv dGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCmluZGV4IGM4NjRmZWU0 MDAuLjQ1ZTY1ZDQwODUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNz aW9uLXZhcmlhYmxlLnNwZWMKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24t dmFyaWFibGUuc3BlYwpAQCAtMjQsNiArMjQsNyBAQCBzdGVwIGNyZWF0ZQkJeyBDUkVBVEUgVkFS SUFCTEUgbXl2YXIgQVMgdGV4dDsgfQogc2Vzc2lvbiBzMwogc3RlcCBzMwkJCXsgQkVHSU47IH0K IHN0ZXAgbGV0MwkJeyBMRVQgbXl2YXIzID0gJ3Rlc3QnOyB9CitzdGVwIG9fY19kCQl7IENSRUFU RSBURU1QIFZBUklBQkxFIG15dmFyX29fY19kIEFTIHRleHQgT04gQ09NTUlUIERST1A7IH0KIHN0 ZXAgY3JlYXRlNAl7IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsgfQogc3RlcCBsZXQ0 CQl7IExFVCBteXZhcjQgPSAndGVzdCc7IH0KIHN0ZXAgZHJvcDQJCXsgRFJPUCBWQVJJQUJMRSBt eXZhcjQ7IH0KQEAgLTQ3LDQgKzQ4LDQgQEAgcGVybXV0YXRpb24gbGV0IHZhbCBkYmcgZHJvcCBj cmVhdGUgZGJnIHZhbAogIyBjYWxsaW5nIHRoZSBkYmcgc3RlcCBhZnRlciB0aGUgY29uY3VycmVu dCBkcm9wCiBwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFsIHNy MQogIyB0ZXN0IGZvciBESVNDQVJEIEFMTCB3aGVuIGFsbCBpbnRlcm5hbCBxdWV1ZXMgaGF2ZSBh Y3Rpb25zIHJlZ2lzdGVyZWQKLXBlcm11dGF0aW9uIGNyZWF0ZTMgbGV0MyBzMyBjcmVhdGU0IGxl dDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0YXRlCitwZXJtdXRhdGlvbiBjcmVh dGUzIGxldDMgczMgb19jX2QgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJk IHNjMyBzdGF0ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXggODhlMjExOTQ3MS4u NjEwNzdhNTJiMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CkBAIC01OTM1LDIwICs1 OTM1LDIwIEBAIENSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBTRVQgUk9MRSBU TyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwogQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hh ciBDT0xMQVRFICJDIjsKIFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBU eXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBBY2Nlc3Mg cHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8 IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgICAgICAgICAgICB8 IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAg IHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IFRyYW5zYWN0aW9uYWwgZW5k IGFjdGlvbiB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tCisgcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwg cmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIx IFRPIFBVQkxJQzsKIENPTU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlv bic7CiBcZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwg ICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwg ICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgICBEZXNj cmlwdGlvbiAgICAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2YXIx IHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVy IHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29t ZSBkZXNjcmlwdGlvbgotICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVy ICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZh cmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8 ICAgICAgICAgT3duZXIgICAgICAgICAgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAg ICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0 aW9uICAgIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8 IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdy ZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCBzb21lIGRlc2Ny aXB0aW9uCisgICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3Jl Z3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQog CiBEUk9QIFZBUklBQkxFIHZhcjE7CkBAIC02NDE2LDkgKzY0MTYsOSBAQCBMaXN0IG9mIHNjaGVt YXMKICgwIHJvd3MpCiAKIFxkViAibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgIExpc3Qg b2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAK LS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorICAgICAgICAgICAg ICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwg Q29sbGF0aW9uIHwgT3duZXIgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSst LS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmlj YXRpb25zLgpAQCAtNjU5MSw5ICs2NTkxLDkgQEAgaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRv byBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guaW5zdGEKIFxk eSAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBpbXByb3BlciBxdWFs aWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC5ldmVudC50cmlnZ2VyIgogXGRWICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFi bGUiCi0gICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBl IHwgQ29sbGF0aW9uIHwgT3duZXIgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBT Y2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGgg Y3VycmVudCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY3 MzAsOSArNjczMCw5IEBAIExpc3Qgb2YgdGV4dCBzZWFyY2ggdGVtcGxhdGVzCiAoMCByb3dzKQog CiBcZFYgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAg ICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxh dGlvbiB8IE93bmVyIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t CisgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwg TmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlv biAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBk YXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KZGlmZiAtLWdpdCBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggOGJjZWJjNDZkNi4u OWM2MzU0MDRkNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlcy5vdXQKQEAgLTExNiwxMSArMTE2LDExIEBAIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFy aWFibGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CiBTRVQg Uk9MRSBUTyBERUZBVUxUOwogXGRWKyBzdmFydGVzdC52YXIxCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0g IFNjaGVtYSAgfCBOYW1lIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAg ICAgICAgfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAg fCBEZXNjcmlwdGlvbiAKLS0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHN2YXJ0ZXN0IHwgdmFyMSB8IGludGVn ZXIgfCAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgcmVncmVzc192YXJpYWJs ZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgCi0gICAgICAgICAgfCAgICAgIHwg ICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3Zh cmlhYmxlX3JlYWRlcj1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2YgdmFyaWFibGVzCisgIFNjaGVtYSAgfCBOYW1lIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8 ICAgICAgICAgT3duZXIgICAgICAgICAgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAg ICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCBEZXNjcmlwdGlv biAKKy0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHN2YXJ0ZXN0 IHwgdmFyMSB8IGludGVnZXIgfCAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdy ZXNzX3ZhcmlhYmxlX293bmVyK3wgCisgICAgICAgICAgfCAgICAgIHwgICAgICAgICB8ICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAg fCByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcj1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAKICgx IHJvdykKIAogRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIxOwpAQCAtMTk3NCwzICsxOTc0LDEy MyBAQCBTRUxFQ1QgdmFyMTsKIAogREVBTExPQ0FURSBwMTsKIERST1AgVkFSSUFCTEUgdmFyMTsK Ky0tIHRlbXBvcmFyeSB2YXJpYWJsZXMKK0NSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50 OworLS0gdGhpcyB2aWV3IHNob3VsZCBiZSB0ZW1wb3JhcnkKK0NSRUFURSBWSUVXIHZhcl90ZXN0 X3ZpZXcgQVMgU0VMRUNUIHZhcjE7CitOT1RJQ0U6ICB2aWV3ICJ2YXJfdGVzdF92aWV3IiB3aWxs IGJlIGEgdGVtcG9yYXJ5IHZpZXcKK0RST1AgVkFSSUFCTEUgdmFyMSBDQVNDQURFOworTk9USUNF OiAgZHJvcCBjYXNjYWRlcyB0byB2aWV3IHZhcl90ZXN0X3ZpZXcKK0JFR0lOOworICBDUkVBVEUg VEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsKKyAgTEVUIHZhcjEgPSAx MDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK0NP TU1JVDsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ192YXJpYWJs ZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSBy b3cpCisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9u X3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0JFR0lO OworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsKKyAg TEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCiso MSByb3cpCisKK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBG Uk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgY291bnQgCistLS0tLS0t CisgICAgIDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBG Uk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygx IHJvdykKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENP TU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworQ09N TUlUOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxl IFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJv dykKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25f dmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworQkVHSU47 CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBM RVQgdmFyMSA9IDEwMDsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworUk9MTEJBQ0s7CistLSBzaG91 bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFt ZSA9ICd2YXIxJzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCistLSBzaG91 bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsK KyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitCRUdJTjsKKyAgQ1JFQVRFIFRF TVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAw OworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgUk9MTEJBQ0sgVE8g czE7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK0NP TU1JVDsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ192YXJpYWJs ZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSBy b3cpCisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9u X3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCAzMTdmNzU5MGVjLi5l MzIzZjViZDIzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zhcmlh Ymxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3Fs CkBAIC0xMTE2LDYgKzExMTYsNyBAQCBCRUdJTjsKICAgRFJPUCBWQVJJQUJMRSB2YXIxOwogICBT RUxFQ1QgdmFyMjsKIFJPTExCQUNLOworCiAtLSBzaG91bGQgYmUgb2sKIFNFTEVDVCB2YXIxOwog CkBAIC0xMzU2LDMgKzEzNTcsNjggQEAgU0VMRUNUIHZhcjE7CiAKIERFQUxMT0NBVEUgcDE7CiBE Uk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHRlbXBvcmFyeSB2YXJpYWJsZXMKK0NSRUFURSBURU1Q IFZBUklBQkxFIHZhcjEgQVMgaW50OworLS0gdGhpcyB2aWV3IHNob3VsZCBiZSB0ZW1wb3JhcnkK K0NSRUFURSBWSUVXIHZhcl90ZXN0X3ZpZXcgQVMgU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFC TEUgdmFyMSBDQVNDQURFOworCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBB UyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsK K0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Zh cmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CistLSBzaG91bGQgYmUgemVybworU0VMRUNU IGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQkVHSU47CisgIENSRUFU RSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9 IDEwMDsKKyAgU0VMRUNUIHZhcjE7CitST0xMQkFDSzsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NF TEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7Cist LSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJs ZXMoKTsKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENP TU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworQ09N TUlUOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfdmFyaWFi bGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291 bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitCRUdJTjsKKyAgQ1JFQVRFIFRF TVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAw OworICBEUk9QIFZBUklBQkxFIHZhcjE7CitST0xMQkFDSzsKKworLS0gc2hvdWxkIGJlIHplcm8K K1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7 CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJp YWJsZXMoKTsKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9O IENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9Q IFZBUklBQkxFIHZhcjE7CisgIFJPTExCQUNLIFRPIHMxOworICBTRUxFQ1QgdmFyMTsKK0NPTU1J VDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxl IFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50 KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9w Z2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QK aW5kZXggYTA1Y2UyMDlkZi4uNWM4NzVhZTY4NCAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QK QEAgLTI4MDYsNiArMjgwNiw3IEBAIFN1cHBvcnRSZXF1ZXN0V0Z1bmNNb25vdG9uaWMKIFNWYXJp YWJsZQogU1ZhcmlhYmxlRGF0YQogU1ZhcmlhYmxlU3RhdGUKK1NWYXJpYWJsZVhBY3REcm9wSXRl bQogU3luCiBTeW5jT3BzCiBTeW5jUmVwQ29uZmlnRGF0YQotLSAKMi40Ny4xCgo= --0000000000009e568d0629bac7df Content-Type: text/x-patch; charset="US-ASCII"; name="v20241220-2-0011-PREPARE-LET-support.patch" Content-Disposition: attachment; filename="v20241220-2-0011-PREPARE-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4xams8n11 RnJvbSBhMjUyNGNiNWI1MzUwMzQyMDA4MTVlNzM5YjNhZDY1YzIzZjRjNmQ1IE1vbiBTZXAgMTcg 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 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDczNjYwYWM5MjAu LjhiY2ViYzQ2ZDYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXMub3V0CkBAIC03NjgsOSArNzY4LDkgQEAgRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIy OwogLS0gdGhlIExFVCBzdGF0ZW1lbnQgc2hvdWxkIGJlIGRpc2FsbG93ZWQgaW4gQ1RFCiBDUkVB VEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CiBXSVRIIHggQVMgKExFVCB2YXIxID0gMTAwKSBTRUxF Q1QgKiBGUk9NIHg7Ci1FUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICJMRVQiCitFUlJP UjogIExFVCBub3Qgc3VwcG9ydGVkIGluIFdJVEggcXVlcnkKIExJTkUgMTogV0lUSCB4IEFTIChM RVQgdmFyMSA9IDEwMCkgU0VMRUNUICogRlJPTSB4OwotICAgICAgICAgICAgICAgICAgIF4KKyAg ICAgICAgICAgICBeCiAtLSBzaG91bGQgYmUgb2sKIExFVCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVz KDEsIDEpOwogLS0gc2hvdWxkIGZhaWwKQEAgLTE4OTUsNSArMTg5NSw4MiBAQCBTRUxFQ1QgdmFy 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 LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCBk YzNmYmJlY2UzLi4zMTdmNzU5MGVjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9z ZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsCkBAIC0xMjk3LDUgKzEyOTcsNjIgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGLCBU SU1JTkcgT0ZGLCBBTkFMWVpFLCBTVU1NQVJZIE9GRiwgQlVGRkVSUyBPRkYpIExFVCB2YXIxID0g KFMKIC0tIHNob3VsZCBiZSAxMAogU0VMRUNUIHZhcjE7CiAKK1NFVCBwbGFuX2NhY2hlX21vZGUg VE8gZm9yY2VfZ2VuZXJpY19wbGFuOworCitQUkVQQVJFIHAxIEFTIExFVCB2YXIxID0gKFNFTEVD VCBjb3VudCgqKSBGUk9NIHZhcl90YWJfdGVzdF90YWJsZSk7CisKK0xFVCB2YXIxID0gTlVMTDsK KworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHAxOworCistLSBzaG91bGQgYmUgTlVMTAor U0VMRUNUIHZhcjE7CisKK0VYUExBSU4gKENPU1RTIE9GRiwgVElNSU5HIE9GRiwgQU5BTFlaRSwg U1VNTUFSWSBPRkYsIEJVRkZFUlMgT0ZGKSBFWEVDVVRFIHAxOworCistLSBzaG91bGQgYmUgMTAK K1NFTEVDVCB2YXIxOworCitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIERFRkFVTFQ7CisKK0RFQUxM T0NBVEUgcDE7CisKIERST1AgVkFSSUFCTEUgdmFyMTsKIERST1AgVEFCTEUgdmFyX3RhYl90ZXN0 X3RhYmxlOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1lcmljOworCitTRVQgcGxhbl9jYWNo ZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKKworUFJFUEFSRSBwMShudW1lcmljKSBBUyBM RVQgdmFyMSA9ICQxOworUFJFUEFSRSBwMiBBUyBTRUxFQ1QgdmFyMTsKKworRVhFQ1VURSBwMShw aSgpICsgMTAwKTsKK0VYRUNVVEUgcDI7CisKKy0tIHByZXBhcmVkIHBsYW4gY2FjaGUgaW52YWxp ZGF0aW9uIHRlc3QKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIG51 bWVyaWM7CisKKy0tIHNob3VsZCBiZSBOVUxMCitFWEVDVVRFIHAyOworCitERUFMTE9DQVRFIHAx OworREVBTExPQ0FURSBwMjsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCitTRVQgcGxhbl9jYWNo ZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgbnVt ZXJpY1tdOworCitQUkVQQVJFIHAxKGludCwgbnVtZXJpYykgQVMgTEVUIHZhcjFbJDFdID0gJDI7 CisKK0xFVCB2YXIxID0gJ3t9Jzo6bnVtZXJpY1tdOworRVhFQ1VURSBwMSgxLCAxMC4yKTsKK0VY RUNVVEUgcDEoMiwgMTAuMyk7CisKK1NFTEVDVCB2YXIxOworCitERUFMTE9DQVRFIHAxOworRFJP UCBWQVJJQUJMRSB2YXIxOwotLSAKMi40Ny4xCgo= --0000000000009e568d0629bac7df Content-Type: text/x-patch; charset="US-ASCII"; name="v20241220-2-0010-EXPLAIN-LET-support.patch" Content-Disposition: attachment; filename="v20241220-2-0010-EXPLAIN-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4xams8y12 RnJvbSBhZGFmNzhiMmE5NDViNzIzOTYyZjc5MWM2YjE2MTlkNGI1ZWQyNzE3IE1vbiBTZXAgMTcg 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 b25fdmFyaWFibGVzLm91dAppbmRleCA2N2MzM2QzN2EwLi43MzY2MGFjOTIwIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTg1Nywz ICsxODU3LDQzIEBAIE5PVElDRTogIDIwIHQKIFNFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVu Y2VfY29udGV4dF9ndWFyZCBUTyBERUZBVUxUOwogRFJPUCBWQVJJQUJMRSB2YXIxOwogRFJPUCBU QUJMRSB2YXJ0ZXN0X3RhYjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBiaWdpbnQ7CitDUkVBVEUg VEFCTEUgdmFyX3RhYl90ZXN0X3RhYmxlKGEgaW50KTsKK0lOU0VSVCBJTlRPIHZhcl90YWJfdGVz dF90YWJsZSBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsKK1ZBQ1VVTSBBTkFM WVpFIHZhcl90YWJfdGVzdF90YWJsZTsKK0VYUExBSU4gKENPU1RTIE9GRikgTEVUIHZhcjEgPSAo U0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKyAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTRVQgU0VTU0lPTiBWQVJJQUJMRQorIFJlc3VsdAor ICAgSW5pdFBsYW4gMQorICAgICAtPiAgQWdncmVnYXRlCisgICAgICAgICAgIC0+ICBTZXEgU2Nh biBvbiB2YXJfdGFiX3Rlc3RfdGFibGUKKyg1IHJvd3MpCisKKy0tIHNob3VsZCBiZSBOVUxMCitT RUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAgIAorKDEgcm93KQorCitFWFBMQUlOIChD T1NUUyBPRkYsIFRJTUlORyBPRkYsIEFOQUxZWkUsIFNVTU1BUlkgT0ZGLCBCVUZGRVJTIE9GRikg TEVUIHZhcjEgPSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNFVCBTRVNTSU9OIFZBUklBQkxFCisgUmVz dWx0IChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICBJbml0UGxhbiAxCisgICAgIC0+ICBBZ2dy ZWdhdGUgKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKKyAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9u IHZhcl90YWJfdGVzdF90YWJsZSAoYWN0dWFsIHJvd3M9MTAgbG9vcHM9MSkKKyg1IHJvd3MpCisK Ky0tIHNob3VsZCBiZSAxMAorU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygx IHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJfdGFiX3Rlc3RfdGFi bGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggMzll Y2IxNGM5Zi4uZGMzZmJiZWNlMyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFy aWFibGVzLnNxbApAQCAtMTI3OCwzICsxMjc4LDI0IEBAIFNFVCBzZXNzaW9uX3ZhcmlhYmxlc191 c2VfZmVuY2VfY29udGV4dF9ndWFyZCBUTyBERUZBVUxUOwogCiBEUk9QIFZBUklBQkxFIHZhcjE7 CiBEUk9QIFRBQkxFIHZhcnRlc3RfdGFiMTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgYmlnaW50 OworCitDUkVBVEUgVEFCTEUgdmFyX3RhYl90ZXN0X3RhYmxlKGEgaW50KTsKKworSU5TRVJUIElO VE8gdmFyX3RhYl90ZXN0X3RhYmxlIFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAp OworCitWQUNVVU0gQU5BTFlaRSB2YXJfdGFiX3Rlc3RfdGFibGU7CisKK0VYUExBSU4gKENPU1RT IE9GRikgTEVUIHZhcjEgPSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxl KTsKKworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxOworCitFWFBMQUlOIChDT1NUUyBP RkYsIFRJTUlORyBPRkYsIEFOQUxZWkUsIFNVTU1BUlkgT0ZGLCBCVUZGRVJTIE9GRikgTEVUIHZh cjEgPSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKworLS0gc2hv dWxkIGJlIDEwCitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJM RSB2YXJfdGFiX3Rlc3RfdGFibGU7Ci0tIAoyLjQ3LjEKCg== --0000000000009e568d0629bac7df Content-Type: text/x-patch; charset="US-ASCII"; name="v20241220-2-0009-dynamic-check-of-usage-of-session-variable-fences.patch" Content-Disposition: attachment; filename="v20241220-2-0009-dynamic-check-of-usage-of-session-variable-fences.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4xams9613 RnJvbSBiOWE5ZTkzZWE3MWFlNGEwZTBjNDA5NDMwYmJlMTEwNzIyNjQ3NTkxIE1vbiBTZXAgMTcg 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 IDJjM2U1OWUxYzIuLjVkOTIzZWFjNjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmMKQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9u X3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiZXhlY3V0b3Ivc3BpLmgiCiAjaW5jbHVkZSAiZXhlY3V0 b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCiAjaW5jbHVkZSAi bWlzY2FkbWluLmgiCkBAIC0zMSw2ICszMiwxMyBAQAogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3Iu aCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogCisvKgorICogVGhlIHNlc3Npb24gdmFy aWFibGVzIHVzZSBmZW5jZSBjb250ZXh0IGFsbG93IHRvIHNwZWNpZnkKKyAqIHRoZSBjb250ZXh0 cyB3aGVyZSB1c2luZyBzZXNzaW9uIHZhcmlhYmxlIGZlbmNlcyBhcmUgcmVxdWlyZWQuCisgKi8K K2ludAkJc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgPQorCQkJCQkJ CQlTRVNTSU9OVkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfTk9ORTsKKwogLyoKICAq IFRoZSB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHN0b3JlZCBpbiB0aGUgYmFja2Vu ZCdzIHByaXZhdGUgbWVtb3J5CiAgKiBpbiB0aGUgZGVkaWNhdGVkIG1lbW9yeSBjb250ZXh0IFNW YXJpYWJsZU1lbW9yeUNvbnRleHQgaW4gYmluYXJ5IGZvcm1hdC4KQEAgLTgxNiwzICs4MjQsMjgg QEAgUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpCiAJaWYgKFNWYXJpYWJsZU1lbW9yeUNvbnRl eHQgIT0gTlVMTCkKIAkJTWVtb3J5Q29udGV4dFJlc2V0KFNWYXJpYWJsZU1lbW9yeUNvbnRleHQp OwogfQorCisvKgorICogUmFpc2UgZXJyb3Igd2hlbiB1bmZlbmNlZCB2YXJpYWJsZSBpcyB1c2Vk IGluIHdyb25nIGNvbnRleHQuCisgKiBUaGlzIGNoZWNrIGFsbG93cyB0byBmb3JjZSBzZXNzaW9u IHZhcmlhYmxlIGZlbmNpbmcgb3V0c2lkZQorICogc3RvcmVkIHByb2NlZHVyZXMgZW52aXJvbm1l bnQuCisgKi8KK3ZvaWQKK1Nlc3Npb25WYXJpYWJsZXNVc2VGZW5jZUNvbnRleHRDaGVjayhPaWQg dmFyaWQsIGJvb2wgaXNfZmVuY2VkKQoreworCWlmIChpc19mZW5jZWQpCisJCXJldHVybjsKKwor CWlmICgoKHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkID09CisJCQlT RVNTSU9OVkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfQUxMKSAmJiAhaXNfZmVuY2Vk KSB8fAorCQkoKHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkID09CisJ CQlTRVNTSU9OVkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfTk9TUEkpICYmCisJCQkJ IVNQSV9pbnNpZGVfc3BpX2NvbnRleHQoKSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNv ZGUoRVJSQ09ERV9JTlZBTElEX0NPTFVNTl9SRUZFUkVOQ0UpLAorCQkJCSBlcnJtc2coInNlc3Np b24gdmFyaWFibGUgXCIlcy4lc1wiIGlzIG5vdCB1c2VkIGluc2lkZSB2YXJpYWJsZSBmZW5jZSIs CisJCQkJIGdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uo dmFyaWQpKSwKKwkJCQkgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpLAorCQkJCSBl cnJkZXRhaWwoIlRoZXJlIGlzIGEgcmlzayBvZiB1bndhbnRlZCB1c2FnZSBvZiBzZXNzaW9uIHZh cmlhYmxlLiIpLAorCQkJCSBlcnJoaW50KCJVc2UgdmFyaWFibGUgZmVuY2UgXCJWQVJJQUJMRSh2 YXJuYW1lKSBmb3IgYWNjZXNzIHRvIHZhcmlhYmxlXCIuIikpKTsKK30KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj RXhwci5jCmluZGV4IDNhOTNhMGM3MzMuLjU5MzE1YzQ5NjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr 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 ZS5oCmluZGV4IDM5NDk5ZDExNGYuLjkwZTliYzFhODMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmgKQEAgLTMxLDUgKzMxLDIxIEBAIGV4dGVybiB2b2lkIEV4ZWN1dGVM ZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCwgUGFyYW1MaXN0SW5mbyBw YXJhCiAJCQkJCQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwgUXVlcnlDb21wbGV0aW9u ICpxYyk7CiAKIGV4dGVybiB2b2lkIFJlc2V0U2Vzc2lvblZhcmlhYmxlcyh2b2lkKTsKK2V4dGVy biB2b2lkIFNlc3Npb25WYXJpYWJsZXNVc2VGZW5jZUNvbnRleHRDaGVjayhPaWQgdmFyaWQsIGJv b2wgaXNfZmVuY2VkKTsKKworLyoKKyAqIFNwZWNpZnkgdGhlIGR5bmFtaWMgY29udGV4dCB3aGVy ZSB2YXJpYWJsZSBmZW5jZSBpcyByZXF1aXJlZAorICovCit0eXBlZGVmIGVudW0gU2Vzc2lvblZh cmlhYmxlc1VzZUZlbmNlQ29udGV4dEd1YXJkCit7CisJLyogRGlzYWJsZSBmZW5jZSB1c2FnZSBj b250ZXh0IGd1YXJkICovCisJU0VTU0lPTlZBUklBQkxFX1VTRV9GRU5DRV9DT05URVhUX0dVQVJE X05PTkUsCisJLyogRW5hYmxlIGZlbmNlIHVzYWdlIGNvbnRleHQgZ3VhcmQgZXZlcnl3aGVyZSAq LworCVNFU1NJT05WQVJJQUJMRV9VU0VfRkVOQ0VfQ09OVEVYVF9HVUFSRF9BTEwsCisJLyogRW5h YmxlIGZlbmNlIHVzYWdlIGNvbnRleHQgZ3VhcmQgd2hlbiBTUEkgaXMgbm90IHVzZWQgKi8KKwlT RVNTSU9OVkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfTk9TUEksCit9IFNlc3Npb25W YXJpYWJsZXNVc2VGZW5jZUNvbnRleHRHdWFyZDsKKworZXh0ZXJuIFBHRExMSU1QT1JUIGludCBz ZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZDsKIAogI2VuZGlmCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9zcGkuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9y L3NwaS5oCmluZGV4IDQ4Yjg3NzMwZWEuLjRlYThiZGE5MzEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2V4ZWN1dG9yL3NwaS5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3NwaS5oCkBAIC0y MDMsNSArMjAzLDYgQEAgZXh0ZXJuIHZvaWQgU1BJX3JvbGxiYWNrX2FuZF9jaGFpbih2b2lkKTsK IGV4dGVybiB2b2lkIEF0RU9YYWN0X1NQSShib29sIGlzQ29tbWl0KTsKIGV4dGVybiB2b2lkIEF0 RU9TdWJYYWN0X1NQSShib29sIGlzQ29tbWl0LCBTdWJUcmFuc2FjdGlvbklkIG15U3ViaWQpOwog ZXh0ZXJuIGJvb2wgU1BJX2luc2lkZV9ub25hdG9taWNfY29udGV4dCh2b2lkKTsKK2V4dGVybiBi b29sIFNQSV9pbnNpZGVfc3BpX2NvbnRleHQodm9pZCk7CiAKICNlbmRpZgkJCQkJCQkvKiBTUElf SCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dAppbmRleCBlYjM4MTg1NzI5Li42N2MzM2QzN2EwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTc2NywzICsxNzY3LDkzIEBAIERS 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 dGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggNTQwODhkMWMyMi4u MzllY2IxNGM5ZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJp YWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bApAQCAtMTIwNSwzICsxMjA1LDc2IEBAIERST1AgU0NIRU1BIHRlc3R2YXI7CiBTRVQgc2Vzc2lv 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== --0000000000009e568d0629bac7df Content-Type: text/x-patch; charset="US-ASCII"; name="v20241220-2-0008-variable-fence-syntax-support-and-variable-fence-usa.patch" Content-Disposition: attachment; filename="v20241220-2-0008-variable-fence-syntax-support-and-variable-fence-usa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4xams9g14 RnJvbSBkOTQ4NzY5ODlkOWYxYmViODBhMjE2MTcxMTBhZGIwMTQ3NzMzYWQ4IE1vbiBTZXAgMTcg 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 c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCBjNDUyZDc4NjdmLi45OGY0ZDY0 NTMzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3Ny 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 bGxpZDsKQEAgLTExNTcsNiArMTE3Nyw1NCBAQCB0cmFuc2Zvcm1QYXJhbVJlZihQYXJzZVN0YXRl 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 YXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggNDEzYTRj NzY1Yi4uNjdmNDFiNGFiOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMzEyLDYgKzMxMiwx NiBAQCB0eXBlZGVmIHN0cnVjdCBQYXJhbVJlZgogCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9r ZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KIH0gUGFyYW1SZWY7CiAKKy8qCisgKiBW YXJpYWJsZUZlbmNlIC0gZW5zdXJlIHNvIGZpZWxkcyB3aWxsIGJlIGludGVycHJldHRlZCBhcyBh IHZhcmlhYmxlCisgKi8KK3R5cGVkZWYgc3RydWN0IFZhcmlhYmxlRmVuY2UKK3sKKwlOb2RlVGFn CQl0eXBlOworCUxpc3QJICAgKnZhcm5hbWU7CQkvKiB2YXJpYWJsZSBuYW1lIChTdHJpbmcgbm9k ZXMpICovCisJUGFyc2VMb2MJbG9jYXRpb247CQkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYg dW5rbm93biAqLworfSBWYXJpYWJsZUZlbmNlOworCiAvKgogICogQV9FeHByIC0gaW5maXgsIHBy ZWZpeCwgYW5kIHBvc3RmaXggZXhwcmVzc2lvbnMKICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRl eCA0ZGZmYjAzMTVhLi42MmJkMGIyZmM1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9w cmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtMzg4LDYg KzM4OCw4IEBAIHR5cGVkZWYgc3RydWN0IFBhcmFtCiAJT2lkCQkJcGFyYW12YXJpZDsKIAkvKiB0 cnVlIHdoZW4gcGFyYW0gaXMgdXNlZCBsaWtlIGJhc2Ugbm9kZSBvZiBhc3NpZ25tZW50IGluZGly ZWN0aW9uICovCiAJYm9vbAkJcGFyYW1iYXNlbm9kZTsKKwkvKiB0cnVlIHdoZW4gdmFyaWFibGUg aXMgdXNlZCBpbnNpZGUgYW4gZmVuY2UgKi8KKwlib29sCQlwYXJhbXZhcmZlbmNlZDsKIAkvKiB0 b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLwogCVBhcnNlTG9jCWxvY2F0aW9uOwog fSBQYXJhbTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmggYi9z cmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCmluZGV4IDBkNjRiMzAwZjguLjA5NDhhMGIx YjcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKKysrIGIvc3Jj L2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaApAQCAtMTgsNiArMTgsNyBAQAogLyogR1VDIHBh cmFtZXRlcnMgKi8KIGV4dGVybiBQR0RMTElNUE9SVCBib29sIFRyYW5zZm9ybV9udWxsX2VxdWFs czsKIGV4dGVybiBQR0RMTElNUE9SVCBib29sIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93 YXJuaW5nOworZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2Zl bmNlX3dhcm5pbmdfZ3VhcmQ7CiAKIGV4dGVybiBOb2RlICp0cmFuc2Zvcm1FeHByKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgUGFyc2VFeHByS2luZCBleHByS2luZCk7CiAKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggYzZk ZWI4NGY0My4uZWIzODE4NTcyOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTE3MDgsMyArMTcwOCw2MiBAQCBTRVQgc2Vzc2lvbl92 YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOwogRFJPUCBUQUJMRSBwdWJsaWMueHh0 YWI7CiBEUk9QIFNDSEVNQSB4eHRhYiBDQVNDQURFOwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0 byBzZXNzaW9uIHZhcmlhYmxlIHh4dGFiLmF2YXIKKy0tIHRlc3Qgc2Vzc2lvbl92YXJpYWJsZXNf dXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlf d2FybmluZyBUTyBvbjsKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19n dWFyZCBUTyBvbjsKK0NSRUFURSBTQ0hFTUEgdGVzdHZhcjsKK1NFVCBzZWFyY2hfcGF0aCBUTyAn dGVzdHZhcic7CitDUkVBVEUgVkFSSUFCTEUgYSBBUyBpbnQ7CitMRVQgYSA9IDEwOworQ1JFQVRF IFRBQkxFIHRlc3RfdGFibGUoYSBpbnQsIGIgaW50KTsKK0lOU0VSVCBJTlRPIHRlc3RfdGFibGUg VkFMVUVTKDIwLCAyMCk7CistLSBubyB3YXJuaW5nCitTRUxFQ1QgYTsKKyBhICAKKy0tLS0KKyAx MAorKDEgcm93KQorCistLSB3YXJuaW5nIHZhcmlhYmxlIGlzIHNoYWRvd2VkCitTRUxFQ1QgYSwg YiBGUk9NIHRlc3RfdGFibGU7CitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJpYWJsZSAiYSIgaXMgc2hh ZG93ZWQKK0xJTkUgMTogU0VMRUNUIGEsIGIgRlJPTSB0ZXN0X3RhYmxlOworICAgICAgICAgICAg ICAgXgorREVUQUlMOiAgU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVt bnMsIHJvdXRpbmUncyB2YXJpYWJsZXMgYW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUg c2FtZSBuYW1lLgorIGEgIHwgYiAgCistLS0tKy0tLS0KKyAyMCB8IDIwCisoMSByb3cpCisKKy0t IG5vIHdhcm5pbmcKK1NFTEVDVCB2YXJpYWJsZShhKSBGUk9NIHRlc3RfdGFibGU7CisgYSAgCist LS0tCisgMTAKKygxIHJvdykKKworQUxURVIgVEFCTEUgdGVzdF90YWJsZSBEUk9QIENPTFVNTiBh OworLS0gd2FybmluZyAtIHZhcmlhYmxlIGZlbmNlIGlzIG5vdCB1c2VkCitTRUxFQ1QgYSwgYiBG Uk9NIHRlc3RfdGFibGU7CitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJpYWJsZSAiYSIgaXMgbm90IHVz ZWQgaW5zaWRlIHZhcmlhYmxlIGZlbmNlCitMSU5FIDE6IFNFTEVDVCBhLCBiIEZST00gdGVzdF90 YWJsZTsKKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIFRoZSBjb2xsaXNpb24gb2Ygc2Vzc2lv biB2YXJpYWJsZScgbmFtZXMgYW5kIGNvbHVtbiBuYW1lcyBpcyBwb3NzaWJsZS4KKyBhICB8IGIg IAorLS0tLSstLS0tCisgMTAgfCAyMAorKDEgcm93KQorCistLSBubyB3YXJuaW5nCitTRUxFQ1Qg dmFyaWFibGUoYSksIGIgRlJPTSB0ZXN0X3RhYmxlOworIGEgIHwgYiAgCistLS0tKy0tLS0KKyAx MCB8IDIwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgYTsKK0RST1AgVEFCTEUgdGVzdF90YWJs ZTsKK0RST1AgU0NIRU1BIHRlc3R2YXI7CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5 X3dhcm5pbmcgVE8gREVGQVVMVDsKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2Fy bmluZ19ndWFyZCBUTyBERUZBVUxUOworU0VUIHNlYXJjaF9wYXRoIFRPIERFRkFVTFQ7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggZTU3OWE5NTllZi4u NTQwODhkMWMyMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJp YWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bApAQCAtMTE2NCwzICsxMTY0LDQ0IEBAIFNFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlf d2FybmluZyBUTyBvZmY7CiAKIERST1AgVEFCTEUgcHVibGljLnh4dGFiOwogRFJPUCBTQ0hFTUEg eHh0YWIgQ0FTQ0FERTsKKworLS0gdGVzdCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2Fy bmluZ19ndWFyZAorU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9u OworU0VUIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkIFRPIG9uOwor CitDUkVBVEUgU0NIRU1BIHRlc3R2YXI7CisKK1NFVCBzZWFyY2hfcGF0aCBUTyAndGVzdHZhcic7 CisKK0NSRUFURSBWQVJJQUJMRSBhIEFTIGludDsKK0xFVCBhID0gMTA7CisKK0NSRUFURSBUQUJM RSB0ZXN0X3RhYmxlKGEgaW50LCBiIGludCk7CisKK0lOU0VSVCBJTlRPIHRlc3RfdGFibGUgVkFM VUVTKDIwLCAyMCk7CisKKy0tIG5vIHdhcm5pbmcKK1NFTEVDVCBhOworCistLSB3YXJuaW5nIHZh cmlhYmxlIGlzIHNoYWRvd2VkCitTRUxFQ1QgYSwgYiBGUk9NIHRlc3RfdGFibGU7CisKKy0tIG5v IHdhcm5pbmcKK1NFTEVDVCB2YXJpYWJsZShhKSBGUk9NIHRlc3RfdGFibGU7CisKK0FMVEVSIFRB QkxFIHRlc3RfdGFibGUgRFJPUCBDT0xVTU4gYTsKKworLS0gd2FybmluZyAtIHZhcmlhYmxlIGZl bmNlIGlzIG5vdCB1c2VkCitTRUxFQ1QgYSwgYiBGUk9NIHRlc3RfdGFibGU7CisKKy0tIG5vIHdh cm5pbmcKK1NFTEVDVCB2YXJpYWJsZShhKSwgYiBGUk9NIHRlc3RfdGFibGU7CisKK0RST1AgVkFS SUFCTEUgYTsKK0RST1AgVEFCTEUgdGVzdF90YWJsZTsKKworRFJPUCBTQ0hFTUEgdGVzdHZhcjsK KworU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIERFRkFVTFQ7CitT RVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQgVE8gREVGQVVMVDsK K1NFVCBzZWFyY2hfcGF0aCBUTyBERUZBVUxUOwotLSAKMi40Ny4xCgo= --0000000000009e568d0629bac7df Content-Type: text/x-patch; charset="US-ASCII"; name="v20241220-2-0007-GUC-session_variables_ambiguity_warning.patch" Content-Disposition: attachment; filename="v20241220-2-0007-GUC-session_variables_ambiguity_warning.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4xams9p15 RnJvbSBiNTdlODUyZGUzYjkxZDExM2FkZjg3NjBlZjU2MzkwMzE5MjU0MDYyIE1vbiBTZXAgMTcg 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 IDNhMTA3MjQwYTcuLmM0NTJkNzg2N2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9w 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 c2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IGZiMmNmODY5MDAuLmM2ZGViODRmNDMgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0x Njg2LDMgKzE2ODYsMjUgQEAgU0VMRUNUIHZhcjE7CiAoMSByb3cpCiAKIERST1AgVkFSSUFCTEUg dmFyMSwgdmFyMjsKKy0tIHRlc3Qgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcK K0NSRUFURSBTQ0hFTUEgeHh0YWI7CitDUkVBVEUgVkFSSUFCTEUgeHh0YWIuYXZhciBpbnQ7CitD UkVBVEUgVEFCTEUgcHVibGljLnh4dGFiKGF2YXIgaW50KTsKK0lOU0VSVCBJTlRPIHB1YmxpYy54 eHRhYiBWQUxVRVMoMSk7CitMRVQgeHh0YWIuYXZhciA9IDIwOworU0VUIHNlc3Npb25fdmFyaWFi bGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9uOworLS0tIHNob3VsZCB0byByYWlzZSB3YXJuaW5n LCBzaG93IDEKK1NFTEVDVCB4eHRhYi5hdmFyIEZST00gcHVibGljLnh4dGFiOworV0FSTklORzog IHNlc3Npb24gdmFyaWFibGUgInh4dGFiLmF2YXIiIGlzIHNoYWRvd2VkCitMSU5FIDE6IFNFTEVD VCB4eHRhYi5hdmFyIEZST00gcHVibGljLnh4dGFiOworICAgICAgICAgICAgICAgXgorREVUQUlM OiAgU2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJvdXRpbmUn cyB2YXJpYWJsZXMgYW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUgc2FtZSBuYW1lLgor IGF2YXIgCistLS0tLS0KKyAgICAxCisoMSByb3cpCisKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19h bWJpZ3VpdHlfd2FybmluZyBUTyBvZmY7CitEUk9QIFRBQkxFIHB1YmxpYy54eHRhYjsKK0RST1Ag U0NIRU1BIHh4dGFiIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24g dmFyaWFibGUgeHh0YWIuYXZhcgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsCmluZGV4IGM3Y2MxYmI2YTQuLmU1NzlhOTU5ZWYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTExNDQsMyArMTE0NCwyMyBAQCBCRUdJTjsg RFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsKIFNFTEVDVCB2YXIxOwogCiBEUk9QIFZBUklB QkxFIHZhcjEsIHZhcjI7CisKKy0tIHRlc3Qgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dh cm5pbmcKK0NSRUFURSBTQ0hFTUEgeHh0YWI7CisKK0NSRUFURSBWQVJJQUJMRSB4eHRhYi5hdmFy IGludDsKKworQ1JFQVRFIFRBQkxFIHB1YmxpYy54eHRhYihhdmFyIGludCk7CisKK0lOU0VSVCBJ TlRPIHB1YmxpYy54eHRhYiBWQUxVRVMoMSk7CisKK0xFVCB4eHRhYi5hdmFyID0gMjA7CisKK1NF VCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKKy0tLSBzaG91bGQg dG8gcmFpc2Ugd2FybmluZywgc2hvdyAxCitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHB1YmxpYy54 eHRhYjsKKworU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9mZjsK KworRFJPUCBUQUJMRSBwdWJsaWMueHh0YWI7CitEUk9QIFNDSEVNQSB4eHRhYiBDQVNDQURFOwot LSAKMi40Ny4xCgo= --0000000000009e568d0629bac7df Content-Type: text/x-patch; charset="US-ASCII"; name="v20241220-2-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20241220-2-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4xamsa617 RnJvbSAyMTQwMGM2ZDA1ZGQwYzM1ZWE0NmQyMmM1ZmIxZTVjNzQxNzQ3ZjYwIE1vbiBTZXAgMTcg 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 ZS5jCmluZGV4IDRmNWI0NGFiY2MuLjJjM2U1OWUxYzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k 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 YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggM2U0ODQ2MjljNi4uMzk0OTlkMTE0ZiAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3Ny Yy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMjEsNiArMjEsOCBAQAog I2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCiAjaW5jbHVkZSAidXRpbHMvcXVlcnllbnZpcm9ubWVu dC5oIgogCitleHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZh cmlkKTsKKwogZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0g dmFsdWUsIGJvb2wgaXNOdWxsKTsKIGV4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFyaWFibGUoT2lk IHZhcmlkLCBib29sICppc051bGwsIE9pZCAqdHlwaWQpOwogZXh0ZXJuIERhdHVtIEdldFNlc3Np b25WYXJpYWJsZVdpdGhUeXBlQ2hlY2soT2lkIHZhcmlkLCBib29sICppc051bGwsIE9pZCBleHBl Y3RlZF90eXBpZCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vz c2lvbi12YXJpYWJsZS5vdXQgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12 YXJpYWJsZS5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMGE1NTc5 ZGM3YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNz aW9uLXZhcmlhYmxlLm91dApAQCAtMCwwICsxLDExMCBAQAorUGFyc2VkIHRlc3Qgc3BlYyB3aXRo IDQgc2Vzc2lvbnMKKworc3RhcnRpbmcgcGVybXV0YXRpb246IGxldCB2YWwgZHJvcCB2YWwKK3N0 ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7CitzdGVwIHZhbDogU0VMRUNUIG15dmFyOworbXl2 YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVwIGRyb3A6IERST1AgVkFSSUFCTEUgbXl2 YXI7CitzdGVwIHZhbDogU0VMRUNUIG15dmFyOworRVJST1I6ICBjb2x1bW4gIm15dmFyIiBkb2Vz IG5vdCBleGlzdAorCitzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBzMSBkcm9wIHZhbCBz cjEKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7CitzdGVwIHZhbDogU0VMRUNUIG15dmFy OworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVwIHMxOiBCRUdJTjsKK3N0ZXAg ZHJvcDogRFJPUCBWQVJJQUJMRSBteXZhcjsKK3N0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitFUlJP UjogIGNvbHVtbiAibXl2YXIiIGRvZXMgbm90IGV4aXN0CitzdGVwIHNyMTogUk9MTEJBQ0s7CisK K3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFsCitz dGVwIGxldDogTEVUIG15dmFyID0gJ3Rlc3QnOworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK215 dmFyCistLS0tLQordGVzdCAKKygxIHJvdykKKworc3RlcCBkYmc6IFNFTEVDVCBzY2hlbWEsIG5h bWUsIHJlbW92ZWQgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworc2NoZW1hfG5hbWUgfHJl bW92ZWQKKy0tLS0tLSstLS0tLSstLS0tLS0tCitwdWJsaWN8bXl2YXJ8ZiAgICAgIAorKDEgcm93 KQorCitzdGVwIGRyb3A6IERST1AgVkFSSUFCTEUgbXl2YXI7CitzdGVwIGNyZWF0ZTogQ1JFQVRF IFZBUklBQkxFIG15dmFyIEFTIHRleHQ7CitzdGVwIGRiZzogU0VMRUNUIHNjaGVtYSwgbmFtZSwg cmVtb3ZlZCBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CitzY2hlbWF8bmFtZXxyZW1vdmVk CistLS0tLS0rLS0tLSstLS0tLS0tCisgICAgICB8ICAgIHx0ICAgICAgCisoMSByb3cpCisKK3N0 ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitteXZhcgorLS0tLS0KKyAgICAgCisoMSByb3cpCisKKwor c3RhcnRpbmcgcGVybXV0YXRpb246IGxldCB2YWwgczEgZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwg c3IxCitzdGVwIGxldDogTEVUIG15dmFyID0gJ3Rlc3QnOworc3RlcCB2YWw6IFNFTEVDVCBteXZh cjsKK215dmFyCistLS0tLQordGVzdCAKKygxIHJvdykKKworc3RlcCBzMTogQkVHSU47CitzdGVw IGRiZzogU0VMRUNUIHNjaGVtYSwgbmFtZSwgcmVtb3ZlZCBGUk9NIHBnX3Nlc3Npb25fdmFyaWFi bGVzKCk7CitzY2hlbWF8bmFtZSB8cmVtb3ZlZAorLS0tLS0tKy0tLS0tKy0tLS0tLS0KK3B1Ymxp Y3xteXZhcnxmICAgICAgCisoMSByb3cpCisKK3N0ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBteXZh cjsKK3N0ZXAgY3JlYXRlOiBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsKK3N0ZXAgZGJn OiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMo KTsKK3NjaGVtYXxuYW1lIHxyZW1vdmVkCistLS0tLS0rLS0tLS0rLS0tLS0tLQorcHVibGljfG15 dmFyfGYgICAgICAKKygxIHJvdykKKworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK215dmFyCist LS0tLQorICAgICAKKygxIHJvdykKKworc3RlcCBzcjE6IFJPTExCQUNLOworCitzdGFydGluZyBw ZXJtdXRhdGlvbjogY3JlYXRlMyBsZXQzIHMzIGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9wMyBpbnZh bDMgZGlzY2FyZCBzYzMgc3RhdGUKK3N0ZXAgY3JlYXRlMzogQ1JFQVRFIFZBUklBQkxFIG15dmFy MyBBUyB0ZXh0Oworc3RlcCBsZXQzOiBMRVQgbXl2YXIzID0gJ3Rlc3QnOworc3RlcCBzMzogQkVH SU47CitzdGVwIGNyZWF0ZTQ6IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsKK3N0ZXAg bGV0NDogTEVUIG15dmFyNCA9ICd0ZXN0JzsKK3N0ZXAgZHJvcDQ6IERST1AgVkFSSUFCTEUgbXl2 YXI0Oworc3RlcCBkcm9wMzogRFJPUCBWQVJJQUJMRSBteXZhcjM7CitzdGVwIGludmFsMzogU0VM RUNUIENPVU5UKCopID49IDAgRlJPTSBwZ19mb3JlaWduX3RhYmxlOworP2NvbHVtbj8KKy0tLS0t LS0tCit0ICAgICAgIAorKDEgcm93KQorCitzdGVwIGRpc2NhcmQ6IERJU0NBUkQgVkFSSUFCTEVT Oworc3RlcCBzYzM6IENPTU1JVDsKK3N0ZXAgc3RhdGU6IFNFTEVDVCB2YXJuYW1lIEZST00gcGdf dmFyaWFibGU7Cit2YXJuYW1lCistLS0tLS0tCitteXZhciAgCisoMSByb3cpCisKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUgYi9zcmMvdGVzdC9pc29s YXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCmluZGV4IDE0MzEwOWFhNGQuLjc0NTM2ODVkMDQgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKKysrIGIvc3Jj L3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZQpAQCAtMTE1LDMgKzExNSw0IEBAIHRl c3Q6IHNlcmlhbGl6YWJsZS1wYXJhbGxlbC0yCiB0ZXN0OiBzZXJpYWxpemFibGUtcGFyYWxsZWwt MwogdGVzdDogbWF0dmlldy13cml0ZS1za2V3CiB0ZXN0OiBsb2NrLW5vd2FpdAordGVzdDogc2Vz c2lvbi12YXJpYWJsZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Np b24tdmFyaWFibGUuc3BlYyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlh YmxlLnNwZWMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYzg2NGZlZTQw MAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZh cmlhYmxlLnNwZWMKQEAgLTAsMCArMSw1MCBAQAorIyBUZXN0IHNlc3Npb24gdmFyaWFibGVzIG1l bW9yeSBjbGVhbnVwIGZvciBzaW52YWwKKworc2V0dXAKK3sKKyAgICBDUkVBVEUgVkFSSUFCTEUg bXl2YXIgQVMgdGV4dDsKK30KKwordGVhcmRvd24KK3sKKyAgICBEUk9QIFZBUklBQkxFIElGIEVY SVNUUyBteXZhcjsKK30KKworc2Vzc2lvbiBzMQorc3RlcCBzMQkJeyBCRUdJTjsgfQorc3RlcCBs ZXQJeyBMRVQgbXl2YXIgPSAndGVzdCc7IH0KK3N0ZXAgdmFsCXsgU0VMRUNUIG15dmFyOyB9Citz dGVwIGRiZwl7IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBwZ19zZXNzaW9uX3Zh cmlhYmxlcygpOyB9CitzdGVwIHNyMQl7IFJPTExCQUNLOyB9CisKK3Nlc3Npb24gczIKK3N0ZXAg ZHJvcAkJeyBEUk9QIFZBUklBQkxFIG15dmFyOyB9CitzdGVwIGNyZWF0ZQkJeyBDUkVBVEUgVkFS SUFCTEUgbXl2YXIgQVMgdGV4dDsgfQorCitzZXNzaW9uIHMzCitzdGVwIHMzCQkJeyBCRUdJTjsg fQorc3RlcCBsZXQzCQl7IExFVCBteXZhcjMgPSAndGVzdCc7IH0KK3N0ZXAgY3JlYXRlNAl7IENS RUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsgfQorc3RlcCBsZXQ0CQl7IExFVCBteXZhcjQg PSAndGVzdCc7IH0KK3N0ZXAgZHJvcDQJCXsgRFJPUCBWQVJJQUJMRSBteXZhcjQ7IH0KK3N0ZXAg aW52YWwzCQl7IFNFTEVDVCBDT1VOVCgqKSA+PSAwIEZST00gcGdfZm9yZWlnbl90YWJsZTsgfQor c3RlcCBkaXNjYXJkCXsgRElTQ0FSRCBWQVJJQUJMRVM7IH0KK3N0ZXAgc2MzCQl7IENPTU1JVDsg fQorc3RlcCBzdGF0ZQkJeyBTRUxFQ1QgdmFybmFtZSBGUk9NIHBnX3ZhcmlhYmxlOyB9CisKK3Nl c3Npb24gczQKK3N0ZXAgY3JlYXRlMwl7IENSRUFURSBWQVJJQUJMRSBteXZhcjMgQVMgdGV4dDsg fQorc3RlcCBkcm9wMwkJeyBEUk9QIFZBUklBQkxFIG15dmFyMzsgfQorCisjIENvbmN1cnJlbnQg ZHJvcCBvZiBhIGtub3duIHZhcmlhYmxlIHNob3VsZCBsZWFkIHRvIGFuIGVycm9yCitwZXJtdXRh dGlvbiBsZXQgdmFsIGRyb3AgdmFsCisjIFNhbWUsIGJ1dCB3aXRoIGFuIGV4cGxpY2l0IHRyYW5z YWN0aW9uCitwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRyb3AgdmFsIHNyMQorIyBDb25jdXJyZW50 IGRyb3AvY3JlYXRlIG9mIGEga25vd24gdmFyaWFibGUgc2hvdWxkIGxlYWQgdG8gZW1wdHkgdmFy aWFibGUKK3Blcm11dGF0aW9uIGxldCB2YWwgZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwKKyMgQ29u Y3VycmVudCBkcm9wL2NyZWF0ZSBvZiBhIGtub3duIHZhcmlhYmxlIHNob3VsZCBsZWFkIHRvIGVt cHR5IHZhcmlhYmxlCisjIFdlIG5lZWQgYSB0cmFuc2FjdGlvbiB0byBtYWtlIHN1cmUgdGhhdCB3 ZSB3b24ndCBhY2NlcHQgaW52YWxpZGF0aW9uIHdoZW4KKyMgY2FsbGluZyB0aGUgZGJnIHN0ZXAg YWZ0ZXIgdGhlIGNvbmN1cnJlbnQgZHJvcAorcGVybXV0YXRpb24gbGV0IHZhbCBzMSBkYmcgZHJv cCBjcmVhdGUgZGJnIHZhbCBzcjEKKyMgdGVzdCBmb3IgRElTQ0FSRCBBTEwgd2hlbiBhbGwgaW50 ZXJuYWwgcXVldWVzIGhhdmUgYWN0aW9ucyByZWdpc3RlcmVkCitwZXJtdXRhdGlvbiBjcmVhdGUz IGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0 ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApp bmRleCAwNGNjNzM0NTg0Li5mYjJjZjg2OTAwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTQ2OSwzICsxNDY5LDIyMCBAQCBTRUxF Q1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwogICAgICAwCiAoMSByb3cp CiAKKy0tIGRyb3BwZWQgdmFyaWFibGVzIHNob3VsZCBiZSByZW1vdmVkIGZyb20gbWVtb3J5IGJl Zm9yZSB0aGUgbmV4dCB1c2FnZQorLS0gb2YgYW55IHNlc3Npb24gdmFyaWFibGUgaW4gdGhlIG5l eHQgdHJhbnNhY3Rpb24KK0xFVCB2YXIxID0gJ0Fob2onOworU0VMRUNUIG5hbWUsIHR5cG5hbWUs IGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIG5h bWUgfCAgICAgIHR5cG5hbWUgICAgICB8IGNhbl9zZWxlY3QgfCBjYW5fdXBkYXRlIAorLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHZhcjEgfCBj aGFyYWN0ZXIgdmFyeWluZyB8IHQgICAgICAgICAgfCB0CisoMSByb3cpCisKK0RST1AgVkFSSUFC TEUgdmFyMTsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNz aW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOworIGNvdW50IAorLS0tLS0tLQorICAg ICAwCisoMSByb3cpCisKKy0tIHRoZSBjb250ZW50IG9mIHRoZSB2YWx1ZSBzaG91bGQgYmUgcHJl c2VydmVkIHdoZW4gYSB2YXJpYWJsZSBpcyBkcm9wcGVkCistLSBieSBhbiBhYm9ydGVkIHRyYW5z YWN0aW9uCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOworTEVUIHZhcjEgPSAnQWhv aic7CitCRUdJTjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1Qg dmFyMTsKK0VSUk9SOiAgY29sdW1uICJ2YXIxIiBkb2VzIG5vdCBleGlzdAorTElORSAxOiBTRUxF Q1QgdmFyMTsKKyAgICAgICAgICAgICAgIF4KK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIG9rCitT RUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgQWhvagorKDEgcm93KQorCistLSBhbm90aGVy IHRlc3QKK0JFR0lOOworRFJPUCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIFZBUklBQkxFIHZhcjEg QVMgaW50OworTEVUIHZhcjEgPSAxMDA7CistLSBzaG91bGQgYmUgb2ssIHJlc3VsdCAxMDAKK1NF TEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK1JPTExCQUNLOwor LS0gc2hvdWxkIGJlIG9rLCByZXN1bHQgJ0Fob2onCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0t LS0tCisgQWhvagorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBzaG91bGQgYmUg emVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKSBXSEVSRSBO T1QgcmVtb3ZlZDsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitCRUdJTjsK KyAgQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VM RUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykKKworICBTRUxFQ1QgbmFt ZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3VwZGF0ZSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFi bGVzKCk7CisgbmFtZSB8IHR5cG5hbWUgfCBjYW5fc2VsZWN0IHwgY2FuX3VwZGF0ZSAKKy0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHZhcjEgfCBpbnRlZ2VyIHwg dCAgICAgICAgICB8IHQKKygxIHJvdykKKworICBEUk9QIFZBUklBQkxFIHZhcjE7CitDT01NSVQ7 CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJp YWJsZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEg cm93KQorCitCRUdJTjsKKyAgQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworICBMRVQgdmFy MSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykK KworICBTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3VwZGF0ZSBGUk9NIHBn X3Nlc3Npb25fdmFyaWFibGVzKCk7CisgbmFtZSB8IHR5cG5hbWUgfCBjYW5fc2VsZWN0IHwgY2Fu X3VwZGF0ZSAKKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHZh cjEgfCBpbnRlZ2VyIHwgdCAgICAgICAgICB8IHQKKygxIHJvdykKKworICBEUk9QIFZBUklBQkxF IHZhcjE7CitDT01NSVQ7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00g cGdfc2Vzc2lvbl92YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKyBjb3VudCAKKy0tLS0t LS0KKyAgICAgMAorKDEgcm93KQorCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVB VEUgVkFSSUFCTEUgdmFyMiBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwOworTEVUIHZhcjIgPSAwOwor QkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICAtLSBmb3Jj ZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNU IHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworICBST0xMQkFDSyBUTyBz MTsKKyAgU0FWRVBPSU5UIHMyOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIFNFTEVDVCB2YXIy OworIHZhcjIgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKKyAgUk9MTEJBQ0sgVE8gczI7CitD T01NSVQ7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAg IDEwCisoMSByb3cpCisKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUg dmFyMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZh cmlhYmxlCisgIFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisK KyAgUk9MTEJBQ0sgVE8gczE7CisgIFNBVkVQT0lOVCBzMjsKKyAgRFJPUCBWQVJJQUJMRSB2YXIx OworICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCitST0xM QkFDSzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAg MTAKKygxIHJvdykKKworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2 YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFy aWFibGUKKyAgU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKwor ICBTQVZFUE9JTlQgczI7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIg c2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAor KDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3Vj aGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0t LS0tLQorICAgIDAKKygxIHJvdykKKworQ09NTUlUOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1Qg dmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCistLSByZXBlYXRlZCBhYm9y dGVkIHRyYW5zYWN0aW9uCitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsKK0JF R0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOworQkVHSU47IERST1AgVkFSSUFCTEUg dmFyMTsgUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCist LS0tLS0KKyAgIDEwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMSwgdmFyMjsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCAzOTNlNjg1MzUwLi5j N2NjMWJiNmE0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zhcmlh Ymxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3Fs CkBAIC0xMDI0LDMgKzEwMjQsMTIzIEBAIERJU0NBUkQgVkFSSUFCTEVTOwogCiAtLSBzaG91bGQg YmUgemVybyBhZ2FpbgogU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMo KTsKKworLS0gZHJvcHBlZCB2YXJpYWJsZXMgc2hvdWxkIGJlIHJlbW92ZWQgZnJvbSBtZW1vcnkg YmVmb3JlIHRoZSBuZXh0IHVzYWdlCistLSBvZiBhbnkgc2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGUg bmV4dCB0cmFuc2FjdGlvbgorCitMRVQgdmFyMSA9ICdBaG9qJzsKK1NFTEVDVCBuYW1lLCB0eXBu YW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsK K0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkgV0hFUkUgTk9UIHJlbW92ZWQ7CisKKy0tIHRo ZSBjb250ZW50IG9mIHRoZSB2YWx1ZSBzaG91bGQgYmUgcHJlc2VydmVkIHdoZW4gYSB2YXJpYWJs ZSBpcyBkcm9wcGVkCistLSBieSBhbiBhYm9ydGVkIHRyYW5zYWN0aW9uCitDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyB2YXJjaGFyOworTEVUIHZhcjEgPSAnQWhvaic7CitCRUdJTjsKK0RST1AgVkFS SUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxOworCitST0xMQkFDSzsK KworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworLS0gYW5vdGhlciB0ZXN0CitCRUdJ TjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0xF VCB2YXIxID0gMTAwOworLS0gc2hvdWxkIGJlIG9rLCByZXN1bHQgMTAwCitTRUxFQ1QgdmFyMTsK K1JPTExCQUNLOworLS0gc2hvdWxkIGJlIG9rLCByZXN1bHQgJ0Fob2onCitTRUxFQ1QgdmFyMTsK KworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50 KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKworQkVH SU47CisgIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKyAgTEVUIHZhcjEgPSAxMDA7Cisg IFNFTEVDVCB2YXIxOworICBTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3Vw ZGF0ZSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgIERST1AgVkFSSUFCTEUgdmFyMTsK K0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nl c3Npb25fdmFyaWFibGVzKCkgV0hFUkUgTk9UIHJlbW92ZWQ7CisKK0JFR0lOOworICBDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsK KyAgU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19z ZXNzaW9uX3ZhcmlhYmxlcygpOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitDT01NSVQ7CisKKy0t IHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxl cygpIFdIRVJFIE5PVCByZW1vdmVkOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitD UkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwOworTEVUIHZhcjIgPSAw OworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICAtLSBm b3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VM RUNUIHZhcjI7CisgIFJPTExCQUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFS SUFCTEUgdmFyMTsKKyAgU0VMRUNUIHZhcjI7CisgIFJPTExCQUNLIFRPIHMyOworQ09NTUlUOwor LS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsK KyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBh bm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgIFJPTExCQUNLIFRPIHMx OworICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgU0VMRUNUIHZhcjI7 CitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKK0JFR0lOOworICBT QVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcg YnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworCisg IFNBVkVQT0lOVCBzMjsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBz ZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworICBST0xMQkFDSyBUTyBzMTsKKyAgLS0g Zm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNF TEVDVCB2YXIyOworQ09NTUlUOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworLS0g cmVwZWF0ZWQgYWJvcnRlZCB0cmFuc2FjdGlvbgorQkVHSU47IERST1AgVkFSSUFCTEUgdmFyMTsg Uk9MTEJBQ0s7CitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsKK0JFR0lOOyBE Uk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2 YXIxOworCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7Ci0tIAoyLjQ3LjEKCg== --0000000000009e568d0629bac7df Content-Type: text/x-patch; charset="US-ASCII"; name="v20241220-2-0006-plpgsql-tests.patch" Content-Disposition: attachment; filename="v20241220-2-0006-plpgsql-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4xams9x16 RnJvbSBlMDdhMjc0YjYzYmNkMjJiYWZiZGFmNjM1MGVkNzA4MjkwYWI4NTNiIE1vbiBTZXAgMTcg 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== --0000000000009e568d0629bac7df Content-Type: text/x-patch; charset="US-ASCII"; name="v20241220-2-0004-DISCARD-VARIABLES.patch" Content-Disposition: attachment; filename="v20241220-2-0004-DISCARD-VARIABLES.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4xamsad18 RnJvbSA5N2Q3ZDNmNGM3ZWM5ZGI1YWMyZTVlY2M5ZGJkOTNlNGU5M2M0MjU1IE1vbiBTZXAgMTcg 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 L2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDI0NTU3Yzg3ZTUuLjRm NWI0NGFiY2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFi bGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTk0 LDcgKzk0LDEzIEBAIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywgaW50IGNh Y2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCiAKIAllbG9nKERFQlVHMSwgInBnX3ZhcmlhYmxlX2Nh Y2hlX2NhbGxiYWNrICV1ICV1IiwgY2FjaGVpZCwgaGFzaHZhbHVlKTsKIAotCUFzc2VydChzZXNz aW9udmFycyk7CisJLyoKKwkgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgb2Ygc2Vzc2lvbiB2YXJp YWJsZXMgYmVpbmcgaW5pdGlhbGl6ZWQsIGV2ZW4gd2hlbgorCSAqIHJlY2VpdmluZyBhbiBpbnZh bGlkYXRpb24gY2FsbGJhY2ssIGFzIERJU0NBUkQgWyBBTEwgfCBWQVJJQUJMRVMgXQorCSAqIGRl c3Ryb3lzIHRoZSBoYXNoIHRhYmxlIGVudGlyZWx5LgorCSAqLworCWlmICghc2Vzc2lvbnZhcnMp CisJCXJldHVybjsKIAogCS8qCiAJICogSWYgdGhlIGhhc2h2YWx1ZSBpcyBub3Qgc3BlY2lmaWVk LCB3ZSBoYXZlIHRvIHJlY2hlY2sgYWxsIGN1cnJlbnRseQpAQCAtNjQ1LDMgKzY1MSwyMyBAQCBw 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 ZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggOTNiYmM2YTVjZS4uM2U0ODQ2MjljNiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNs dWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMjgsNCArMjgsNiBAQCBleHRlcm4g RGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlV2l0aFR5cGVDaGVjayhPaWQgdmFyaWQsIGJvb2wgKmlz TnVsbCwgT2lkIGV4cGVjdAogZXh0ZXJuIHZvaWQgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAq cHN0YXRlLCBMZXRTdG10ICpzdG10LCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKIAkJCQkJCSAgIFF1 ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LCBRdWVyeUNvbXBsZXRpb24gKnFjKTsKIAorZXh0ZXJu IHZvaWQgUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpOworCiAjZW5kaWYKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaAppbmRleCAyODRkMDExYzk0Li40MTNhNGM3NjViIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oCkBAIC0zOTg4LDYgKzM5ODgsNyBAQCB0eXBlZGVmIGVudW0gRGlzY2FyZE1vZGUKIAlESVND QVJEX1BMQU5TLAogCURJU0NBUkRfU0VRVUVOQ0VTLAogCURJU0NBUkRfVEVNUCwKKwlESVNDQVJE X1ZBUklBQkxFUywKIH0gRGlzY2FyZE1vZGU7CiAKIHR5cGVkZWYgc3RydWN0IERpc2NhcmRTdG10 CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCBiL3NyYy9pbmNsdWRl L3Rjb3AvY21kdGFnbGlzdC5oCmluZGV4IGE5MjFhZjI0ODYuLmJkNzk2NGFlYTYgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3Av Y21kdGFnbGlzdC5oCkBAIC0xMzUsNiArMTM1LDcgQEAgUEdfQ01EVEFHKENNRFRBR19ESVNDQVJE X0FMTCwgIkRJU0NBUkQgQUxMIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURU QUdfRElTQ0FSRF9QTEFOUywgIkRJU0NBUkQgUExBTlMiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQog UEdfQ01EVEFHKENNRFRBR19ESVNDQVJEX1NFUVVFTkNFUywgIkRJU0NBUkQgU0VRVUVOQ0VTIiwg ZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FSRF9URU1QLCAiRElT Q0FSRCBURU1QIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfRElTQ0FS RF9WQVJJQUJMRVMsICJESVNDQVJEIFZBUklBQkxFUyIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQ R19DTURUQUcoQ01EVEFHX0RPLCAiRE8iLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFH KENNRFRBR19EUk9QX0FDQ0VTU19NRVRIT0QsICJEUk9QIEFDQ0VTUyBNRVRIT0QiLCB0cnVlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQUdHUkVHQVRFLCAiRFJPUCBBR0dS RUdBVEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDlmNzUxMjhjNDIuLjA0Y2M3MzQ1ODQgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBA IC0xNDA2LDMgKzE0MDYsNjYgQEAgRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmI7 CiBEUk9QIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiOwogRFJPUCBTQ0hF TUEgOiJEQk5BTUUiOwogUkVTRVQgc2VhcmNoX3BhdGg7CistLSBtZW1vcnkgY2xlYW5pbmcgYnkg RElTQ0FSRCBjb21tYW5kCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOworTEVUIHZh cjEgPSAnSGVsbG8nOworU0VMRUNUIHZhcjE7CisgdmFyMSAgCistLS0tLS0tCisgSGVsbG8KKygx IHJvdykKKworRElTQ0FSRCBBTEw7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgCiso MSByb3cpCisKK0xFVCB2YXIxID0gJ0FIT0onOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0t LQorIEFIT0oKKygxIHJvdykKKworRElTQ0FSRCBWQVJJQUJMRVM7CitTRUxFQ1QgdmFyMTsKKyB2 YXIxIAorLS0tLS0tCisgCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIGluaXRp YWwgdGVzdCBvZiBkZWJ1ZyBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmdW5jdGlvbgorLS0gc2hvdWxk IGJlIHplcm8gbm93CitESVNDQVJEIFZBUklBQkxFUzsKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBn X3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykK KworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhcjsKKy0tIHNob3VsZCBiZSB6ZXJvIHN0 aWxsCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50 IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0xFVCB2YXIxID0gJ0FIT0onOworU0VMRUNU IG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3Zh cmlhYmxlcygpOworIG5hbWUgfCAgICAgIHR5cG5hbWUgICAgICB8IGNhbl9zZWxlY3QgfCBjYW5f dXBkYXRlIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLQorIHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IHQgICAgICAgICAgfCB0CisoMSByb3cp CisKK0RJU0NBUkQgVkFSSUFCTEVTOworLS0gc2hvdWxkIGJlIHplcm8gYWdhaW4KK1NFTEVDVCBj b3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisg ICAgIDAKKygxIHJvdykKKwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCmluZGV4IDI0ZTg5N2E4YzQuLjM5M2U2ODUzNTAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTk4OCwzICs5ODgsMzkgQEAgRFJPUCBWQVJJQUJM RSA6IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJOQU1FIjsKIERST1AgU0NIRU1BIDoiREJOQU1FIjsK IAogUkVTRVQgc2VhcmNoX3BhdGg7CisKKy0tIG1lbW9yeSBjbGVhbmluZyBieSBESVNDQVJEIGNv bW1hbmQKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXI7CitMRVQgdmFyMSA9ICdIZWxs byc7CitTRUxFQ1QgdmFyMTsKKworRElTQ0FSRCBBTEw7CitTRUxFQ1QgdmFyMTsKKworTEVUIHZh cjEgPSAnQUhPSic7CitTRUxFQ1QgdmFyMTsKKworRElTQ0FSRCBWQVJJQUJMRVM7CitTRUxFQ1Qg dmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBpbml0aWFsIHRlc3Qgb2YgZGVidWcg cGdfc2Vzc2lvbl92YXJpYWJsZXMgZnVuY3Rpb24KKy0tIHNob3VsZCBiZSB6ZXJvIG5vdworRElT Q0FSRCBWQVJJQUJMRVM7CisKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFi bGVzKCk7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXI7CisKKy0tIHNob3VsZCBi ZSB6ZXJvIHN0aWxsCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygp OworCitMRVQgdmFyMSA9ICdBSE9KJzsKKworU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxl Y3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitESVNDQVJEIFZB UklBQkxFUzsKKworLS0gc2hvdWxkIGJlIHplcm8gYWdhaW4KK1NFTEVDVCBjb3VudCgqKSBGUk9N IHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7Ci0tIAoyLjQ3LjEKCg== --0000000000009e568d0629bac7df Content-Type: text/x-patch; charset="US-ASCII"; name="v20241220-2-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Disposition: attachment; filename="v20241220-2-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4xamsak19 RnJvbSAwMjRlODhjYTAwNmEzMDk4MzIzNDUxZmIyMTQzYWFhZWY1NDZiZGMzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMjA6MDE6NTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDAz LzIyXSBmdW5jdGlvbiBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmb3IgY2xlYW5pbmcgdGVzdHMKClRo aXMgaXMgYSBmdW5jdGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQg cmV0dXJucyB0aGUKY29udGVudCBvZiBzZXNzaW9udmFycyBhcy1pcywgYW5kIGNhbiB0aGVyZWZv cmUgZGlzcGxheSBlbnRyaWVzIGFib3V0CnNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9w cGVkIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndApwcm9jZXNzIHRoZSBzaGFyZWQg aW52YWxpZGF0aW9ucyB5ZXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICAgIHwgIDggKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEwMCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IGMz M2EyMzJiMTUuLjI0NTU3Yzg3ZTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKQEAgLTU1MywzICs1NTMsOTUgQEAgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0 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 --0000000000009e568d0629bac7df Content-Type: text/x-patch; charset="US-ASCII"; name="v20241220-2-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Disposition: attachment; filename="v20241220-2-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4xamsau20 RnJvbSAxYWEzOTE3MjQ5M2NiMzNiZjU0NTBmZjQwNzFmOTkyNTNjMjIyNDQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAwODoyOToyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIv MjJdIFN0b3JhZ2UgZm9yIHNlc3Npb24gdmFyaWFibGVzIGFuZCBTUUwgaW50ZXJmYWNlCgpTZXNz aW9uIHZhcmlhYmxlcyBhcmUgc3RvcmVkIGluIHNlc3Npb24gbWVtb3J5IGluIGEgZGVkaWNhdGVk IGhhc2ggdGFibGUuClRoZXkgYXJlIHNldCBieSB0aGUgTEVUIGNvbW1hbmQgYW5kIHJlYWQgYnkg dGhlIFNFTEVDVCBjb21tYW5kLgpUaGUgYWNjZXNzIHJpZ2h0cyBzaG91bGQgYmUgY2hlY2tlZC4K ClRoZSBpZGVudGlmaWVycyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBzaG91bGQgYWx3YXlzIGJlIHNo YWRvd2VkIGJ5IHBvc3NpYmxlCmNvbHVtbiBpZGVudGlmaWVyczogd2UgZG9uJ3Qgd2FudCB0byBi cmVhayBhbiBhcHBsaWNhdGlvbiBieSBjcmVhdGluZyBzb21lCmJhZGx5IG5hbWVkIHNlc3Npb24g dmFyaWFibGUuCgpUaGUgbGltaXRzIG9mIHRoaXMgcGF0Y2ggKHNvbHZlZCBieSBvdGhlciBwYXRj aGVzKToKCi0gc2Vzc2lvbiB2YXJpYWJsZXMgYmxvY2sgcGFyYWxsZWwgZXhlY3V0aW9uCi0gc2Vz c2lvbiB2YXJpYWJsZXMgYmxvY2tzIHNpbXBsZSBleHByZXNzaW9uIGV2YWx1YXRpb24gKGluIHBs cGdzcWwpCi0gU1FMIGZ1bmN0aW9ucyB3aXRoIHNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgaW5s aW5lZAotIENBTEwgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgKHVzYWdlIG9mIGRpcmVjdCBh Y2Nlc3MgdG8gZXhwcmVzcyBleGVjdXRvcikKLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBub3Qgc3Vw cG9ydGVkICh1c2FnZSBvZiBkaXJlY3QgYWNjZXNzIHRvIGV4cHJlc3MgZXhlY3V0b3IpCi0gbWVt b3J5IHVzZWQgYnkgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QgcmVsZWFzZWQKCklt cGxlbWVudGF0aW9ucyBvZiBFWFBMQUlOIExFVCBhbmQgUFJFUEFSRSBMRVQgc3RhdGVtZW50cwph cmUgaW4gc2VwYXJhdGUgcGF0Y2hlcyAoZm9yIGJldHRlciByZWFkYWJpbGl0eSkKLS0tCiBkb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsKIGRvYy9z cmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNDMgKwogZG9jL3Ny Yy9zZ21sL3BhcmFsbGVsLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICAgNiArCiBkb2Mvc3Jj L3NnbWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsKIGRvYy9zcmMv c2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8ICAgIDEgKwogZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sICAgICAgICAgIHwgICAgMSArCiBkb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAgICAzICsKIGRvYy9zcmMvc2dt bC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sICAgICAgICAgICB8ICAgIDEgKwogZG9jL3NyYy9zZ21s L3JlZi9sZXQuc2dtbCAgICAgICAgICAgICAgICAgICAgIHwgICA5NiArKwogZG9jL3NyYy9zZ21s L3JlZmVyZW5jZS5zZ21sICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9j YXRhbG9nL2RlcGVuZGVuY3kuYyAgICAgICAgICAgICAgfCAgICA1ICsKIHNyYy9iYWNrZW5kL2Nh dGFsb2cvbmFtZXNwYWNlLmMgICAgICAgICAgICAgICB8ICAyODkgKysrKysKIHNyYy9iYWNrZW5k L2NhdGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8ICAgIDIgKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9j b21tYW5kcy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3ByZXBhcmUuYyAgICAgICAgICAgICAgICB8ICAgIDggKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgIDU1NSArKysrKysrKysKIHNyYy9iYWNr ZW5kL2V4ZWN1dG9yL01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0V4cHIuYyAgICAgICAgICAgICAgIHwgICAzNiArCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjTWFpbi5jICAgICAgICAgICAgICAgfCAgIDY3ICsrCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5k L2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMgICAgICB8ICAyMDEgKysrKwogc3JjL2JhY2tl bmQvbm9kZXMvbm9kZUZ1bmNzLmMgICAgICAgICAgICAgICAgIHwgICAxMCArCiBzcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgICAgICAgICAgfCAgIDIxICsKIHNyYy9iYWNrZW5k L29wdGltaXplci9wbGFuL3NldHJlZnMuYyAgICAgICAgICB8ICAxNTQgKystCiBzcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYyAgICAgfCAgICAzICsKIHNyYy9iYWNrZW5k L29wdGltaXplci91dGlsL2NsYXVzZXMuYyAgICAgICAgICB8ICAgMzUgKy0KIHNyYy9iYWNrZW5k L3BhcnNlci9hbmFseXplLmMgICAgICAgICAgICAgICAgICB8ICAyNzAgKysrKy0KIHNyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICAgNDkgKy0KIHNyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyAgICAgICAgICAgICAgICB8ICAgIDkgKwogc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICAgICAgICAgICAgIHwgIDIyMyArKystCiBzcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jICAgICAgICAgICAgICAgfCAgICAyICsKIHNyYy9iYWNr ZW5kL3Rjb3AvZGVzdC5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDcgKwogc3JjL2JhY2tl bmQvdGNvcC9wcXVlcnkuYyAgICAgICAgICAgICAgICAgICAgIHwgICAgMyArCiBzcmMvYmFja2Vu ZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgIDE2ICsKIHNyYy9iYWNrZW5k L3V0aWxzL2FkdC9ydWxldXRpbHMuYyAgICAgICAgICAgICB8ICAgNDYgKwogc3JjL2JhY2tlbmQv dXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMgICAgICAgICAgIHwgICA0MSArLQogc3JjL2JhY2tlbmQv dXRpbHMvZm1nci9mbWdyLmMgICAgICAgICAgICAgICAgIHwgICAxMCArLQogc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgICAxMiArLQogc3JjL2luY2x1ZGUv Y2F0YWxvZy9uYW1lc3BhY2UuaCAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9pbmNsdWRlL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgMzEgKwogc3JjL2luY2x1ZGUvZXhl Y3V0b3IvZXhlY2Rlc2MuaCAgICAgICAgICAgICAgIHwgICAgNCArCiBzcmMvaW5jbHVkZS9leGVj dXRvci9zdmFyaWFibGVSZWNlaXZlci5oICAgICAgfCAgIDIyICsKIHNyYy9pbmNsdWRlL25vZGVz L2V4ZWNub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgMTYgKwogc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgICAxNyArCiBzcmMvaW5jbHVkZS9ub2Rlcy9w YXRobm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDExICsKIHNyYy9pbmNsdWRlL25vZGVzL3Bs YW5ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgIDkgKwogc3JjL2luY2x1ZGUvbm9kZXMvcHJp bW5vZGVzLmggICAgICAgICAgICAgICAgIHwgICAgOCArCiBzcmMvaW5jbHVkZS9vcHRpbWl6ZXIv cGxhbm1haW4uaCAgICAgICAgICAgICAgfCAgICAyICsKIHNyYy9pbmNsdWRlL3BhcnNlci9rd2xp c3QuaCAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNl X25vZGUuaCAgICAgICAgICAgICAgIHwgICAgMyArCiBzcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xp c3QuaCAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL3Rjb3AvZGVzdC5oICAg ICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMu YyAgICAgICAgICAgICAgICAgIHwgICAgMyArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0ICAgIHwgMTA1MyArKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgIDcyNyArKysrKysrKysrKysKIHNy Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgIDUgKwogNTgg ZmlsZXMgY2hhbmdlZCwgNDE1OSBpbnNlcnRpb25zKCspLCAyMiBkZWxldGlvbnMoLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2xldC5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYwogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgKCmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRh bG9ncy5zZ21sCmluZGV4IDZiYmM2YzdlMjguLmU0NzlkNjZjZjAgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBA IC05Nzg0LDYgKzk3ODQsMTkgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJh dGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFy YT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAg ICAgICA8c3RydWN0ZmllbGQ+dmFyY3JlYXRlX2xzbjwvc3RydWN0ZmllbGQ+IDx0eXBlPlhMb2dS ZWNQdHI8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBMU04gb2Yg dGhlIHRyYW5zYWN0aW9uIHdoZXJlIHRoZSB2YXJpYWJsZSB3YXMgY3JlYXRlZC4KKyAgICAgICA8 c3RydWN0ZmllbGQ+dmFyY3JlYXRlX2xzbjwvc3RydWN0ZmllbGQ+IGFuZAorICAgICAgIDxzdHJ1 Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiB0b2dldGhlciBmb3JtIHRoZSBhbGwtdGltZSB1bmlx dWUKKyAgICAgICBpZGVudGlmaWVyICg8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gYWxv bmUgaXMgbm90IGVub3VnaCwgc2luY2UKKyAgICAgICBvYmplY3QgaWRlbnRpZmllcnMgY2FuIGdl dCByZXVzZWQpLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxy b3c+CiAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0i Y29sdW1uX2RlZmluaXRpb24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJuYW1lPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+bmFtZTwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dt bCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCAxNmNiZjUxM2E5Li4wMmZjODgyYjg2IDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5z Z21sCkBAIC01MzU3LDYgKzUzNTcsNDkgQEAgRVhQTEFJTiBTRUxFQ1QgY291bnQoKikgRlJPTSBt ZWFzdXJlbWVudCBXSEVSRSBsb2dkYXRlICZndDs9IERBVEUgJzIwMDgtMDEtMDEnOwogICAgIFRo ZSBzZXNzaW9uIHZhcmlhYmxlIGhvbGRzIHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAgVGhpcyB2 YWx1ZSBpcyBwcml2YXRlCiAgICAgdG8gZWFjaCBzZXNzaW9uIGFuZCBpcyByZWxlYXNlZCB3aGVu IHRoZSBzZXNzaW9uIGVuZHMuCiAgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSB2YWx1 ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgc2V0IHdpdGggdGhlIFNRTCBzdGF0ZW1lbnQKKyAg ICA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+LiAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJs ZSBjYW4gYmUgcmV0cmlldmVkCisgICAgd2l0aCB0aGUgU1FMIHN0YXRlbWVudCA8Y29tbWFuZD5T RUxFQ1Q8L2NvbW1hbmQ+LgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIHZhcjEg QVMgZGF0ZTsKK0xFVCB2YXIxID0gY3VycmVudF9kYXRlOworU0VMRUNUIHZhcjE7Cis8L3Byb2dy YW1saXN0aW5nPgorCisgICAgb3IKKworPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxF IHB1YmxpYy5jdXJyZW50X3VzZXJfaWQgQVMgaW50ZWdlcjsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJ QUJMRSBwdWJsaWMuY3VycmVudF91c2VyX2lkIFRPIFBVQkxJQzsKK0xFVCBjdXJyZW50X3VzZXJf aWQgPSAoU0VMRUNUIGlkIEZST00gdXNlcnMgV0hFUkUgdXNlbmFtZSA9IHNlc3Npb25fdXNlcik7 CitTRUxFQ1QgY3VycmVudF91c2VyX2lkOworPC9wcm9ncmFtbGlzdGluZz4KKyAgIDwvcGFyYT4K KworICAgPHBhcmE+CisgICAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBsb2Nh bCB0byB0aGUgY3VycmVudCBzZXNzaW9uLiBSZXRyaWV2aW5nCisgICAgYSB2YXJpYWJsZSdzIHZh bHVlIHJldHVybnMgYSA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiwgdW5sZXNzIGl0cyB2YWx1ZSBo YXMKKyAgICBiZWVuIHNldCB0byBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBzZXNzaW9u IHVzaW5nIHRoZQorICAgIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4gIFNlc3Npb24g dmFyaWFibGVzIGFyZSBub3QgdHJhbnNhY3Rpb25hbDoKKyAgICBhbnkgY2hhbmdlcyBtYWRlIHRv IHRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaW4gYSB0cmFuc2FjdGlvbiB3b24ndAor ICAgIGJlIHVuZG9uZSBpZiB0aGUgdHJhbnNhY3Rpb24gaXMgcm9sbGVkIGJhY2sgKGp1c3QgbGlr ZSB2YXJpYWJsZXMgaW4KKyAgICBwcm9jZWR1cmFsIGxhbmd1YWdlcykuICBTZXNzaW9uIHZhcmlh YmxlcyB0aGVtc2VsdmVzIGFyZSBwZXJzaXN0ZW50LCBidXQKKyAgICB0aGVpciB2YWx1ZXMgYXJl IG5laXRoZXIgcGVyc2lzdGVudCBub3Igc2hhcmVkIChsaWtlIHRoZSBjb250ZW50IG9mCisgICAg dGVtcG9yYXJ5IHRhYmxlcykuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIEluc2lkZSBh IHF1ZXJ5IG9yIGFuIGV4cHJlc3Npb24sIGEgc2Vzc2lvbiB2YXJpYWJsZSBjYW4gYmUKKyAgICA8 cXVvdGU+c2hhZG93ZWQ8L3F1b3RlPiBieSBhIGNvbHVtbiB3aXRoIHRoZSBzYW1lIG5hbWUuICBT aW1pbGFybHksIHRoZQorICAgIG5hbWUgb2YgYSBmdW5jdGlvbiBvciBwcm9jZWR1cmUgYXJndW1l bnQgb3IgYSBQTC9wZ1NRTCB2YXJpYWJsZSAoc2VlCisgICAgPHhyZWYgbGlua2VuZD0icGxwZ3Nx bC1kZWNsYXJhdGlvbnMiLz4pIGNhbiBzaGFkb3cgYSBzZXNzaW9uIHZhcmlhYmxlCisgICAgaW4g dGhlIHJvdXRpbmUncyBib2R5LiAgU3VjaCBjb2xsaXNpb25zIG9mIGlkZW50aWZpZXJzIGNhbiBi ZSByZXNvbHZlZAorICAgIGJ5IHVzaW5nIHF1YWxpZmllZCBpZGVudGlmaWVyczogU2Vzc2lvbiB2 YXJpYWJsZXMgY2FuIGJlIHF1YWxpZmllZCB3aXRoCisgICAgdGhlIHNjaGVtYSBuYW1lLCBjb2x1 bW5zIGNhbiB1c2UgdGFibGUgYWxpYXNlcywgcm91dGluZSB2YXJpYWJsZXMgY2FuIHVzZQorICAg IGJsb2NrIGxhYmVscywgYW5kIHJvdXRpbmUgYXJndW1lbnRzIGNhbiB1c2UgdGhlIHJvdXRpbmUg bmFtZS4KKyAgIDwvcGFyYT4KICAgPC9zZWN0MT4KIAogIDxzZWN0MSBpZD0iZGRsLW90aGVycyI+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbCBiL2RvYy9zcmMvc2dtbC9w YXJhbGxlbC5zZ21sCmluZGV4IDFjZTlhYmY4NmYuLjY4M2RlZGU2YWQgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21s CkBAIC01MTUsNiArNTE1LDEyIEBAIEVYUExBSU4gU0VMRUNUICogRlJPTSBwZ2JlbmNoX2FjY291 bnRzIFdIRVJFIGZpbGxlciBMSUtFICcleCUnOwogICAgICAgICBQbGFuIG5vZGVzIHRoYXQgcmVm ZXJlbmNlIGEgY29ycmVsYXRlZCA8bGl0ZXJhbD5TdWJQbGFuPC9saXRlcmFsPi4KICAgICAgIDwv cGFyYT4KICAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+Cisg ICAgICAgIFBsYW4gbm9kZXMgdGhhdCB1c2UgYSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICAgPC9w YXJhPgorICAgIDwvbGlzdGl0ZW0+CiAgIDwvaXRlbWl6ZWRsaXN0PgogCiAgPHNlY3QyIGlkPSJw YXJhbGxlbC1sYWJlbGluZyI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21s IGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAppbmRleCA3OGU0OTgzMTM5Li5iZmJmZjlhYjc0 IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9wbHBnc3FsLnNnbWwKQEAgLTYwMzQsNiArNjAzNCwyMCBAQCAkJCBMQU5HVUFHRSBwbHBnc3Fs IFNUUklDVCBJTU1VVEFCTEU7CiA8L3Byb2dyYW1saXN0aW5nPgogICAgIDwvcGFyYT4KICAgIDwv c2VjdDM+CisKKyAgIDxzZWN0MyBpZD0icGxwZ3NxbC1wb3J0aW5nLXBhY2thZ2UtdmFyaWFibGVz Ij4KKyAgICA8dGl0bGU+PGNvbW1hbmQ+UGFja2FnZXMgYW5kIHBhY2thZ2UgdmFyaWFibGVzPC9j b21tYW5kPjwvdGl0bGU+CisKKyAgICA8cGFyYT4KKyAgICAgVGhlIDxhcHBsaWNhdGlvbj5QTC9w Z1NRTDwvYXBwbGljYXRpb24+IGxhbmd1YWdlIGhhcyBubyBwYWNrYWdlcywgYW5kCisgICAgIHRo ZXJlZm9yZSBubyBwYWNrYWdlIHZhcmlhYmxlcyBvciBwYWNrYWdlIGNvbnN0YW50cy4KKyAgICAg WW91IGNhbiBjb25zaWRlciB0cmFuc2xhdGluZyBhbiBPcmFjbGUgcGFja2FnZSBpbnRvIGEgc2No ZW1hIGluCisgICAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4uICBQYWNr YWdlIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcworICAgICB3b3VsZCB0aGVuIGJlY29tZSBmdW5j dGlvbnMgYW5kIHByb2NlZHVyZXMgaW4gdGhhdCBzY2hlbWEsIGFuZCBwYWNrYWdlCisgICAgIHZh cmlhYmxlcyBjb3VsZCBiZSB0cmFuc2xhdGVkIHRvIHNlc3Npb24gdmFyaWFibGVzIGluIHRoYXQg c2NoZW1hLgorICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyIv PikuCisgICAgPC9wYXJhPgorICAgPC9zZWN0Mz4KICAgPC9zZWN0Mj4KIAogICA8c2VjdDIgaWQ9 InBscGdzcWwtcG9ydGluZy1hcHBlbmRpeCI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm L2FsbGZpbGVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKaW5kZXggMmY2 N2RlM2UyMS4uY2MzYmQ1YWI1NCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxl cy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbApAQCAtMTU4LDYgKzE1 OCw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNnbWwgc291cmNlIGZpbGVzIGluIHRoaXMg ZGlyZWN0b3J5LgogPCFFTlRJVFkgZ3JhbnQgICAgICAgICAgICAgIFNZU1RFTSAiZ3JhbnQuc2dt bCI+CiA8IUVOVElUWSBpbXBvcnRGb3JlaWduU2NoZW1hIFNZU1RFTSAiaW1wb3J0X2ZvcmVpZ25f c2NoZW1hLnNnbWwiPgogPCFFTlRJVFkgaW5zZXJ0ICAgICAgICAgICAgIFNZU1RFTSAiaW5zZXJ0 LnNnbWwiPgorPCFFTlRJVFkgbGV0ICAgICAgICAgICAgICAgIFNZU1RFTSAibGV0LnNnbWwiPgog PCFFTlRJVFkgbGlzdGVuICAgICAgICAgICAgIFNZU1RFTSAibGlzdGVuLnNnbWwiPgogPCFFTlRJ VFkgbG9hZCAgICAgICAgICAgICAgIFNZU1RFTSAibG9hZC5zZ21sIj4KIDwhRU5USVRZIGxvY2sg ICAgICAgICAgICAgICBTWVNURU0gImxvY2suc2dtbCI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3Zhcmlh YmxlLnNnbWwKaW5kZXggOTZkMjU4NjQyMy4uMjIxYTY5OTQ2OSAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0 ZXJfdmFyaWFibGUuc2dtbApAQCAtMTczLDYgKzE3Myw3IEBAIEFMVEVSIFZBUklBQkxFIGJvbyBT RVQgU0NIRU1BIHByaXZhdGU7CiAgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CiAgICA8bWVt YmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVtYmVyPgogICAgPG1l bWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVt YmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1sZXQiLz48L21lbWJlcj4KICAgPC9zaW1wbGVsaXN0Pgog IDwvcmVmc2VjdDE+CiA8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNn bWwKaW5kZXggNmU5ODhmMmU0Ny4uZDY4MTQwNDA1NSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92 YXJpYWJsZS5zZ21sCkBAIC0xMjMsNiArMTIzLDggQEAgQ1JFQVRFIFZBUklBQkxFIFsgSUYgTk9U IEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWIK ICAgIENyZWF0ZSBhbiBkYXRlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJh bD46CiA8cHJvZ3JhbWxpc3Rpbmc+CiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBkYXRlOworTEVU IHZhcjEgPSBjdXJyZW50X2RhdGU7CitTRUxFQ1QgdmFyMTsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAg IDwvcGFyYT4KIApAQCAtMTQzLDYgKzE0NSw3IEBAIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGRh dGU7CiAgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtl bmQ9InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtl bmQ9InNxbC1kcm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2Vu ZD0ic3FsLWxldCIvPjwvbWVtYmVyPgogICA8L3NpbXBsZWxpc3Q+CiAgPC9yZWZzZWN0MT4KIApk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbAppbmRleCA1YmRiMzU2MGYwLi42Nzk4OGI1ZmNk IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbAorKysgYi9k b2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbApAQCAtMTExLDYgKzExMSw3IEBAIERS T1AgVkFSSUFCTEUgdmFyMTsKICAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KICAgIDxtZW1i ZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUiLz48L21lbWJlcj4KICAgIDxtZW1i ZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVt YmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1sZXQiLz48L21lbWJlcj4KICAgPC9zaW1wbGVsaXN0Pgog IDwvcmVmc2VjdDE+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwgYi9k b2Mvc3JjL3NnbWwvcmVmL2xldC5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAuLmY2NjQwNTc2YmUKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2xl dC5zZ21sCkBAIC0wLDAgKzEsOTYgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwK K1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWxldCI+ CisgPGluZGV4dGVybSB6b25lPSJzcWwtbGV0Ij4KKyAgPHByaW1hcnk+TEVUPC9wcmltYXJ5Pgor IDwvaW5kZXh0ZXJtPgorCisgPGluZGV4dGVybT4KKyAgPHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJs ZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFyeT5jaGFuZ2luZzwvc2Vjb25kYXJ5PgorIDwvaW5kZXh0 ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkxFVDwvcmVmZW50cnl0aXRsZT4K KyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFn ZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4K KyAgPHJlZm5hbWU+TEVUPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5jaGFuZ2UgYSBzZXNzaW9u IHZhcmlhYmxlJ3MgdmFsdWU8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5 bm9wc2lzZGl2PgorPHN5bm9wc2lzPgorTEVUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5zZXNzaW9uX3ZhcmlhYmxlPC9yZXBsYWNlYWJsZT4gPSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+c3FsX2V4cHJlc3Npb248L3JlcGxhY2VhYmxlPgorPC9zeW5vcHNpcz4KKyA8L3Jl ZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxl PgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZCBhc3Np Z25zIGEgdmFsdWUgdG8gdGhlIHNwZWNpZmllZCBzZXNzaW9uCisgICB2YXJpYWJsZS4KKyAgPC9w YXJhPgorCisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8 L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJt PjxsaXRlcmFsPnNlc3Npb25fdmFyaWFibGU8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRl bT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4K KyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg PHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5zcWxfZXhwcmVzc2lvbjwvbGl0ZXJh bD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIEFuIGFyYml0cmFy eSBTUUwgZXhwcmVzc2lvbi4gIFRoZSByZXN1bHQgbXVzdCBiZSBvZiBhIGRhdGEgdHlwZSB0aGF0 IGNhbgorICAgICAgYmUgY2FzdCB0byB0aGUgdHlwZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBp biBhbiBhc3NpZ25tZW50LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFy bGlzdGVudHJ5PgorCisgIDwvdmFyaWFibGVsaXN0PgorCisgIDxwYXJhPgorICAgRXhhbXBsZToK Kzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSBteXZhciBBUyBpbnRlZ2VyOworTEVU IG15dmFyID0gMTA7CitMRVQgbXl2YXIgPSAoU0VMRUNUIHN1bSh2YWwpIEZST00gdGFiKTsKKzwv cHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgor ICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1h bmQ+TEVUPC9jb21tYW5kPiBpcyBhIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFt ZT4KKyAgIGV4dGVuc2lvbi4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+ CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5l Ij4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUiLz48L21lbWJl cj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+PC9tZW1i ZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48L21lbWJl cj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+Cis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5z Z21sCmluZGV4IDI1NTc4ZjM5NDYuLjEzZTRhZGM1ZGYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWZlcmVuY2Uuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKQEAgLTE4 Niw2ICsxODYsNyBAQAogICAgJmdyYW50OwogICAgJmltcG9ydEZvcmVpZ25TY2hlbWE7CiAgICAm aW5zZXJ0OworICAgJmxldDsKICAgICZsaXN0ZW47CiAgICAmbG9hZDsKICAgICZsb2NrOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgYi9zcmMvYmFja2VuZC9j YXRhbG9nL2RlcGVuZGVuY3kuYwppbmRleCBkNjYyZTc2YWNmLi5mMTgxMzQyOGUxIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYworKysgYi9zcmMvYmFja2VuZC9j YXRhbG9nL2RlcGVuZGVuY3kuYwpAQCAtMTg2NCw2ICsxODY0LDExIEBAIGZpbmRfZXhwcl9yZWZl cmVuY2VzX3dhbGtlcihOb2RlICpub2RlLAogCXsKIAkJUGFyYW0JICAgKnBhcmFtID0gKFBhcmFt ICopIG5vZGU7CiAKKwkJLyogYSB2YXJpYWJsZSBwYXJhbWV0ZXIgZGVwZW5kcyBvbiB0aGUgc2Vz c2lvbiB2YXJpYWJsZSAqLworCQlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJM RSkKKwkJCWFkZF9vYmplY3RfYWRkcmVzcyhWYXJpYWJsZVJlbGF0aW9uSWQsIHBhcmFtLT5wYXJh bXZhcmlkLCAwLAorCQkJCQkJCSAgIGNvbnRleHQtPmFkZHJzKTsKKwogCQkvKiBBIHBhcmFtZXRl ciBtdXN0IGRlcGVuZCBvbiB0aGUgcGFyYW1ldGVyJ3MgZGF0YXR5cGUgKi8KIAkJYWRkX29iamVj dF9hZGRyZXNzKFR5cGVSZWxhdGlvbklkLCBwYXJhbS0+cGFyYW10eXBlLCAwLAogCQkJCQkJICAg Y29udGV4dC0+YWRkcnMpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3Bh Y2UuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKaW5kZXggNTNkNWNkNmMxNC4u Yjg2MWM2YzE5NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYwor KysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC0zNDk3LDYgKzM0OTcsMjk1 IEBAIE5hbWVzRnJvbUxpc3QoTGlzdCAqbmFtZXMpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyog LS0tLS0KKyAqIElkZW50aWZ5VmFyaWFibGUgLSB0cnkgdG8gZmluZCBhIHZhcmlhYmxlIGZyb20g YSBsaXN0IG9mIGlkZW50aWZpZXJzCisgKgorICogUmV0dXJucyB0aGUgT0lEIG9mIHRoZSB2YXJp YWJsZSBmb3VuZCwgb3IgSW52YWxpZE9pZC4KKyAqCisgKiAibmFtZXMiIGlzIGEgbGlzdCBvZiB1 cCB0byBmb3VyIGlkZW50aWZpZXJzOyBwb3NzaWJsZSBtZWFuaW5ncyBhcmU6CisgKiAtIHZhcmlh YmxlICAoc2VhcmNoZWQgb24gdGhlIHNlYXJjaF9wYXRoKQorICogLSBzY2hlbWEudmFyaWFibGUK KyAqIC0gdmFyaWFibGUuYXR0cmlidXRlICAoc2VhcmNoZWQgb24gdGhlIHNlYXJjaF9wYXRoKQor ICogLSBzY2hlbWEudmFyaWFibGUuYXR0cmlidXRlCisgKiAtIGRhdGFiYXNlLnNjaGVtYS52YXJp YWJsZQorICogLSBkYXRhYmFzZS5zY2hlbWEudmFyaWFibGUuYXR0cmlidXRlCisgKgorICogSWYg dGhlcmUgaXMgbW9yZSB0aGFuIG9uZSB3YXkgdG8gaWRlbnRpZnkgYSB2YXJpYWJsZSwgIm5vdF91 bmlxdWUiIHdpbGwgYmUKKyAqIHNldCB0byB0cnVlLgorICoKKyAqIFVubGVzcyAibm9lcnJvciIg aXMgdHJ1ZSwgYW4gZXJyb3IgaXMgcmFpc2VkIGlmIHRoZXJlIGFyZSBtb3JlIHRoYW4gZm91cgor ICogIGlkZW50aWZpZXJzIGluIHRoZSBsaXN0LCBvciBpZiB0aGUgbmFtZWQgZGF0YWJhc2UgaXMg bm90IHRoZSBjdXJyZW50IG9uZS4KKyAqIFRoaXMgaXMgdXNlZnVsIGlmIHdlIHdhbnQgdG8gaWRl bnRpZnkgYSBzaGFkb3dlZCB2YXJpYWJsZS4KKyAqCisgKiBJZiBhbiBhdHRyaWJ1dGUgaXMgaWRl bnRpZmllZCwgaXQgaXMgc3RvcmVkIGluICJhdHRybmFtZSIsIG90aGVyd2lzZSB0aGUKKyAqIHBh cmFtZXRlciBpcyBzZXQgdG8gTlVMTC4KKyAqCisgKiBUaGUgaWRlbnRpZmllZCBzZXNzaW9uIHZh cmlhYmxlIHdpbGwgYmUgbG9ja2VkIHdpdGggYW4gQWNjZXNzU2hhcmVMb2NrLgorICogLS0tLS0K KyAqLworT2lkCitJZGVudGlmeVZhcmlhYmxlKExpc3QgKm5hbWVzLCBjaGFyICoqYXR0cm5hbWUs IGJvb2wgKm5vdF91bmlxdWUsIGJvb2wgbm9lcnJvcikKK3sKKwlPaWQJCQl2YXJpZCA9IEludmFs aWRPaWQ7CisJT2lkCQkJb2xkX3ZhcmlkID0gSW52YWxpZE9pZDsKKwl1aW50NjQJCWludmFsX2Nv dW50OworCWJvb2wJCXJldHJ5ID0gZmFsc2U7CisKKwkvKgorCSAqIERETCBvcGVyYXRpb25zIGNh biBjaGFuZ2UgdGhlIHJlc3VsdHMgb2YgYSBuYW1lIGxvb2t1cC4gIFNpbmNlIGFsbCBzdWNoCisJ ICogb3BlcmF0aW9ucyB3aWxsIGdlbmVyYXRlIGludmFsaWRhdGlvbiBtZXNzYWdlcywgd2Uga2Vl cCB0cmFjayBvZgorCSAqIHdoZXRoZXIgYW55IHN1Y2ggbWVzc2FnZXMgc2hvdyB1cCB3aGlsZSB3 ZSdyZSBwZXJmb3JtaW5nIHRoZSBvcGVyYXRpb24sCisJICogYW5kIHJldHJ5IHVudGlsIGVpdGhl ciAoMSkgbm8gbW9yZSBpbnZhbGlkYXRpb24gbWVzc2FnZXMgc2hvdyB1cCBvciAoMikKKwkgKiB0 aGUgYW5zd2VyIGRvZXNuJ3QgY2hhbmdlLgorCSAqLworCWZvciAoOzspCisJeworCQlOb2RlCSAg ICpmaWVsZDEgPSBOVUxMOworCQlOb2RlCSAgICpmaWVsZDIgPSBOVUxMOworCQlOb2RlCSAgICpm aWVsZDMgPSBOVUxMOworCQlOb2RlCSAgICpmaWVsZDQgPSBOVUxMOworCQljaGFyCSAgICphID0g TlVMTDsKKwkJY2hhcgkgICAqYiA9IE5VTEw7CisJCWNoYXIJICAgKmMgPSBOVUxMOworCQljaGFy CSAgICpkID0gTlVMTDsKKwkJT2lkCQkJdmFyb2lkX3dpdGhvdXRfYXR0ciA9IEludmFsaWRPaWQ7 CisJCU9pZAkJCXZhcm9pZF93aXRoX2F0dHIgPSBJbnZhbGlkT2lkOworCisJCSpub3RfdW5pcXVl ID0gZmFsc2U7CisJCSphdHRybmFtZSA9IE5VTEw7CisJCXZhcmlkID0gSW52YWxpZE9pZDsKKwor CQlpbnZhbF9jb3VudCA9IFNoYXJlZEludmFsaWRNZXNzYWdlQ291bnRlcjsKKworCQlzd2l0Y2gg KGxpc3RfbGVuZ3RoKG5hbWVzKSkKKwkJeworCQkJY2FzZSAxOgorCQkJCWZpZWxkMSA9IGxpbml0 aWFsKG5hbWVzKTsKKworCQkJCUFzc2VydChJc0EoZmllbGQxLCBTdHJpbmcpKTsKKworCQkJCXZh cmlkID0gTG9va3VwVmFyaWFibGUoTlVMTCwgc3RyVmFsKGZpZWxkMSksIHRydWUpOworCQkJCWJy ZWFrOworCisJCQljYXNlIDI6CisJCQkJZmllbGQxID0gbGluaXRpYWwobmFtZXMpOworCQkJCWZp ZWxkMiA9IGxzZWNvbmQobmFtZXMpOworCisJCQkJQXNzZXJ0KElzQShmaWVsZDEsIFN0cmluZykp OworCQkJCWEgPSBzdHJWYWwoZmllbGQxKTsKKworCQkJCWlmIChJc0EoZmllbGQyLCBTdHJpbmcp KQorCQkJCXsKKwkJCQkJLyogd2hlbiBib3RoIGZpZWxkcyBhcmUgb2Ygc3RyaW5nIHR5cGUgKi8K KwkJCQkJYiA9IHN0clZhbChmaWVsZDIpOworCisJCQkJCS8qCisJCQkJCSAqIGEuYiBjYW4gbWVh biAic2NoZW1hIi4idmFyaWFibGUiIG9yICJ2YXJpYWJsZSIuImZpZWxkIi4KKwkJCQkJICogQ2hl Y2sgYm90aCB2YXJpYW50cywgYW5kIHJldHVybnMgSW52YWxpZE9pZCB3aXRoCisJCQkJCSAqIG5v dF91bmlxdWUgZmxhZywgd2hlbiBib3RoIGludGVycHJldGF0aW9ucyBhcmUKKwkJCQkJICogcG9z c2libGUuCisJCQkJCSAqLworCQkJCQl2YXJvaWRfd2l0aG91dF9hdHRyID0gTG9va3VwVmFyaWFi bGUoYSwgYiwgdHJ1ZSk7CisJCQkJCXZhcm9pZF93aXRoX2F0dHIgPSBMb29rdXBWYXJpYWJsZShO VUxMLCBhLCB0cnVlKTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJLyogdGhlIGxhc3Qg ZmllbGQgb2YgbGlzdCBjYW4gYmUgc3RhciB0b28gKi8KKwkJCQkJQXNzZXJ0KElzQShmaWVsZDIs IEFfU3RhcikpOworCisJCQkJCS8qCisJCQkJCSAqIEluIHRoaXMgY2FzZSwgdGhlIGZpZWxkMSBz aG91bGQgYmUgdmFyaWFibGUgbmFtZS4gQnV0CisJCQkJCSAqIGRpcmVjdCB1bmJveGluZyBvZiBj b21wb3NpdGUgc2Vzc2lvbiB2YXJpYWJsZXMgaXMgbm90CisJCQkJCSAqIHN1cHBvcnRlZCBub3cs IGFuZCB0aGVuIHdlIGRvbid0IG5lZWQgdG8gdHJ5IGxvb2t1cAorCQkJCQkgKiByZWxhdGVkIHZh cmlhYmxlLgorCQkJCQkgKgorCQkJCQkgKiBVbmJveGluZyBpcyBzdXBwb3J0ZWQgYnkgc3ludGF4 ICh2YXIpLioKKwkJCQkJICovCisJCQkJCXJldHVybiBJbnZhbGlkT2lkOworCQkJCX0KKworCQkJ CWlmIChPaWRJc1ZhbGlkKHZhcm9pZF93aXRob3V0X2F0dHIpICYmIE9pZElzVmFsaWQodmFyb2lk X3dpdGhfYXR0cikpCisJCQkJeworCQkJCQkqbm90X3VuaXF1ZSA9IHRydWU7CisJCQkJCXZhcmlk ID0gdmFyb2lkX3dpdGhvdXRfYXR0cjsKKwkJCQl9CisJCQkJZWxzZSBpZiAoT2lkSXNWYWxpZCh2 YXJvaWRfd2l0aG91dF9hdHRyKSkKKwkJCQl7CisJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhvdXRf YXR0cjsKKwkJCQl9CisJCQkJZWxzZSBpZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aF9hdHRyKSkK KwkJCQl7CisJCQkJCSphdHRybmFtZSA9IGI7CisJCQkJCXZhcmlkID0gdmFyb2lkX3dpdGhfYXR0 cjsKKwkJCQl9CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgMzoKKwkJCQl7CisJCQkJCWJvb2wJCWZp ZWxkMV9pc19jYXRhbG9nID0gZmFsc2U7CisKKwkJCQkJZmllbGQxID0gbGluaXRpYWwobmFtZXMp OworCQkJCQlmaWVsZDIgPSBsc2Vjb25kKG5hbWVzKTsKKwkJCQkJZmllbGQzID0gbHRoaXJkKG5h bWVzKTsKKworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMSwgU3RyaW5nKSk7CisJCQkJCUFzc2VydChJ c0EoZmllbGQyLCBTdHJpbmcpKTsKKworCQkJCQlhID0gc3RyVmFsKGZpZWxkMSk7CisJCQkJCWIg PSBzdHJWYWwoZmllbGQyKTsKKworCQkJCQlpZiAoSXNBKGZpZWxkMywgU3RyaW5nKSkKKwkJCQkJ eworCQkJCQkJYyA9IHN0clZhbChmaWVsZDMpOworCisJCQkJCQkvKgorCQkJCQkJICogYS5iLmMg Y2FuIG1lYW4gY2F0YWxvZy5zY2hlbWEudmFyaWFibGUgb3IKKwkJCQkJCSAqIHNjaGVtYS52YXJp YWJsZS5maWVsZC4KKwkJCQkJCSAqCisJCQkJCQkgKiBDaGVjayBib3RoIHZhcmlhbnRzLCBhbmQg c2V0IG5vdF91bmlxdWUgZmxhZywgd2hlbgorCQkJCQkJICogYm90aCBpbnRlcnByZXRhdGlvbnMg YXJlIHBvc3NpYmxlLgorCQkJCQkJICoKKwkJCQkJCSAqIFdoZW4gdGhpcmQgbm9kZSBpcyBzdGFy LCBvbmx5IHBvc3NpYmxlCisJCQkJCQkgKiBpbnRlcnByZXRhdGlvbiBpcyBzY2hlbWEudmFyaWFi bGUuKiwgYnV0IHRoaXMKKwkJCQkJCSAqIHBhdHRlcm4gaXMgbm90IHN1cHBvcnRlZCBub3cuCisJ CQkJCQkgKi8KKwkJCQkJCXZhcm9pZF93aXRoX2F0dHIgPSBMb29rdXBWYXJpYWJsZShhLCBiLCB0 cnVlKTsKKworCQkJCQkJLyoKKwkJCQkJCSAqIGNoZWNrIHBhdHRlcm4gY2F0YWxvZy5zY2hlbWEu dmFyaWFibGUgb25seSB3aGVuCisJCQkJCQkgKiB0aGVyZSBpcyBwb3NzaWJpbGl0eSB0byBzdWNj ZXNzLgorCQkJCQkJICovCisJCQkJCQlpZiAoc3RyY21wKGEsIGdldF9kYXRhYmFzZV9uYW1lKE15 RGF0YWJhc2VJZCkpID09IDApCisJCQkJCQl7CisJCQkJCQkJZmllbGQxX2lzX2NhdGFsb2cgPSB0 cnVlOworCQkJCQkJCXZhcm9pZF93aXRob3V0X2F0dHIgPSBMb29rdXBWYXJpYWJsZShiLCBjLCB0 cnVlKTsKKwkJCQkJCX0KKwkJCQkJfQorCQkJCQllbHNlCisJCQkJCXsKKwkJCQkJCUFzc2VydChJ c0EoZmllbGQzLCBBX1N0YXIpKTsKKwkJCQkJCXJldHVybiBJbnZhbGlkT2lkOworCQkJCQl9CisK KwkJCQkJaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhvdXRfYXR0cikgJiYgT2lkSXNWYWxpZCh2 YXJvaWRfd2l0aF9hdHRyKSkKKwkJCQkJeworCQkJCQkJKm5vdF91bmlxdWUgPSB0cnVlOworCQkJ CQkJdmFyaWQgPSB2YXJvaWRfd2l0aG91dF9hdHRyOworCQkJCQl9CisJCQkJCWVsc2UgaWYgKE9p ZElzVmFsaWQodmFyb2lkX3dpdGhvdXRfYXR0cikpCisJCQkJCXsKKwkJCQkJCXZhcmlkID0gdmFy b2lkX3dpdGhvdXRfYXR0cjsKKwkJCQkJfQorCQkJCQllbHNlIGlmIChPaWRJc1ZhbGlkKHZhcm9p ZF93aXRoX2F0dHIpKQorCQkJCQl7CisJCQkJCQkqYXR0cm5hbWUgPSBjOworCQkJCQkJdmFyaWQg PSB2YXJvaWRfd2l0aF9hdHRyOworCQkJCQl9CisKKwkJCQkJLyoKKwkJCQkJICogV2hlbiB3ZSBk aWRuJ3QgZmluZCB2YXJpYWJsZSwgd2UgY2FuICh3aGVuIGl0IGlzCisJCQkJCSAqIGFsbG93ZWQp IHJhaXNlIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZSBlcnJvci4KKwkJCQkJICovCisJCQkJCWlm ICghT2lkSXNWYWxpZCh2YXJpZCkgJiYgIW5vZXJyb3IgJiYgIWZpZWxkMV9pc19jYXRhbG9nKQor CQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05P VF9TVVBQT1JURUQpLAorCQkJCQkJCQkgZXJybXNnKCJjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2Vz IGFyZSBub3QgaW1wbGVtZW50ZWQ6ICVzIiwKKwkJCQkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5h bWVzKSkpKTsKKwkJCQl9CisJCQkJYnJlYWs7CisKKwkJCWNhc2UgNDoKKwkJCQl7CisJCQkJCWZp ZWxkMSA9IGxpbml0aWFsKG5hbWVzKTsKKwkJCQkJZmllbGQyID0gbHNlY29uZChuYW1lcyk7CisJ CQkJCWZpZWxkMyA9IGx0aGlyZChuYW1lcyk7CisJCQkJCWZpZWxkNCA9IGxmb3VydGgobmFtZXMp OworCisJCQkJCUFzc2VydChJc0EoZmllbGQxLCBTdHJpbmcpKTsKKwkJCQkJQXNzZXJ0KElzQShm aWVsZDIsIFN0cmluZykpOworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMywgU3RyaW5nKSk7CisKKwkJ CQkJYSA9IHN0clZhbChmaWVsZDEpOworCQkJCQliID0gc3RyVmFsKGZpZWxkMik7CisJCQkJCWMg PSBzdHJWYWwoZmllbGQzKTsKKworCQkJCQkvKgorCQkJCQkgKiBJbiB0aGlzIGNhc2UsICJhIiBp cyB1c2VkIGFzIGNhdGFsb2cgbmFtZSAtIGNoZWNrIGl0LgorCQkJCQkgKi8KKwkJCQkJaWYgKHN0 cmNtcChhLCBnZXRfZGF0YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpKSAhPSAwKQorCQkJCQl7CisJ CQkJCQlpZiAoIW5vZXJyb3IpCisJCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJCShlcnJj b2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCQkJCSBlcnJtc2coImNy b3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogJXMiLAorCQkJCQkJ CQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSkpKTsKKwkJCQkJfQorCisJCQkJCWlmIChJc0Eo ZmllbGQ0LCBTdHJpbmcpKQorCQkJCQl7CisJCQkJCQlkID0gc3RyVmFsKGZpZWxkNCk7CisJCQkJ CX0KKwkJCQkJZWxzZQorCQkJCQl7CisJCQkJCQlBc3NlcnQoSXNBKGZpZWxkNCwgQV9TdGFyKSk7 CisJCQkJCQlyZXR1cm4gSW52YWxpZE9pZDsKKwkJCQkJfQorCisJCQkJCSphdHRybmFtZSA9IGQ7 CisJCQkJCXZhcmlkID0gTG9va3VwVmFyaWFibGUoYiwgYywgdHJ1ZSk7CisJCQkJfQorCQkJCWJy ZWFrOworCisJCQlkZWZhdWx0OgorCQkJCWlmICghbm9lcnJvcikKKwkJCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCQkJIGVycm1z ZygiaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICVzIiwK KwkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSkpOworCQkJCXJldHVybiBJbnZhbGlk T2lkOworCQl9CisKKwkJLyoKKwkJICogSWYsIHVwb24gcmV0cnksIHdlIGdldCBiYWNrIHRoZSBz YW1lIE9JRCB3ZSBkaWQgbGFzdCB0aW1lLCB0aGVuIHRoZQorCQkgKiBpbnZhbGlkYXRpb24gbWVz c2FnZXMgd2UgcHJvY2Vzc2VkIGRpZCBub3QgY2hhbmdlIHRoZSBmaW5hbCBhbnN3ZXIuCisJCSAq IFNvIHdlJ3JlIGRvbmUuCisJCSAqCisJCSAqIElmIHdlIGdvdCBhIGRpZmZlcmVudCBPSUQsIHdl J3ZlIGxvY2tlZCB0aGUgdmFyaWFibGUgdGhhdCB1c2VkIHRvCisJCSAqIGhhdmUgdGhpcyBuYW1l IHJhdGhlciB0aGFuIHRoZSBvbmUgdGhhdCBkb2VzIG5vdy4gIFNvIHJlbGVhc2UgdGhlCisJCSAq IGxvY2suCisJCSAqLworCQlpZiAocmV0cnkpCisJCXsKKwkJCWlmIChvbGRfdmFyaWQgPT0gdmFy aWQpCisJCQkJYnJlYWs7CisKKwkJCWlmIChPaWRJc1ZhbGlkKG9sZF92YXJpZCkpCisJCQkJVW5s b2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCBvbGRfdmFyaWQsIDAsIEFjY2Vz c1NoYXJlTG9jayk7CisJCX0KKworCQkvKgorCQkgKiBMb2NrIHRoZSB2YXJpYWJsZS4gIFRoaXMg d2lsbCBhbHNvIGFjY2VwdCBhbnkgcGVuZGluZyBpbnZhbGlkYXRpb24KKwkJICogbWVzc2FnZXMu ICBJZiB3ZSBnb3QgYmFjayBJbnZhbGlkT2lkLCBpbmRpY2F0aW5nIG5vdCBmb3VuZCwgdGhlbgor CQkgKiB0aGVyZSdzIG5vdGhpbmcgdG8gbG9jaywgYnV0IHdlIGFjY2VwdCBpbnZhbGlkYXRpb24g bWVzc2FnZXMKKwkJICogYW55d2F5LCB0byBmbHVzaCBhbnkgbmVnYXRpdmUgY2F0Y2FjaGUgZW50 cmllcyB0aGF0IG1heSBiZQorCQkgKiBsaW5nZXJpbmcuCisJCSAqLworCQlpZiAoIU9pZElzVmFs aWQodmFyaWQpKQorCQkJQWNjZXB0SW52YWxpZGF0aW9uTWVzc2FnZXMoKTsKKwkJZWxzZSBpZiAo T2lkSXNWYWxpZCh2YXJpZCkpCisJCQlMb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlv bklkLCB2YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCQlpZiAoaW52YWxfY291bnQgPT0g U2hhcmVkSW52YWxpZE1lc3NhZ2VDb3VudGVyKQorCQkJYnJlYWs7CisKKwkJcmV0cnkgPSB0cnVl OworCQlvbGRfdmFyaWQgPSB2YXJpZDsKKwkJdmFyaWQgPSBJbnZhbGlkT2lkOworCX0KKworCXJl dHVybiB2YXJpZDsKK30KKwogLyoKICAqIERlY29uc3RydWN0UXVhbGlmaWVkTmFtZQogICoJCUdp dmVuIGEgcG9zc2libHktcXVhbGlmaWVkIG5hbWUgZXhwcmVzc2VkIGFzIGEgbGlzdCBvZiBTdHJp bmcgbm9kZXMsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKaW5kZXggYTIxY2FhMGUwZi4uYzk5 YTJlYWMwMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCisr KyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtMjYsNiArMjYsNyBAQAog I2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMu aCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9wZ19sc24u aCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogCiBzdGF0aWMgT2JqZWN0QWRkcmVzcyBj cmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKQEAgLTEwMSw2ICsxMDIsNyBAQCBj cmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAl2YXJpZCA9IEdldE5ld09pZFdp dGhJbmRleChyZWwsIFZhcmlhYmxlT2lkSW5kZXhJZCwgQW51bV9wZ192YXJpYWJsZV9vaWQpOwog CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfb2lkIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZh cmlkKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjcmVhdGVfbHNuIC0gMV0gPSBMU05H ZXREYXR1bShHZXRYTG9nSW5zZXJ0UmVjUHRyKCkpOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxl X3Zhcm5hbWUgLSAxXSA9IE5hbWVHZXREYXR1bSgmdmFybmFtZSk7CiAJdmFsdWVzW0FudW1fcGdf dmFyaWFibGVfdmFybmFtZXNwYWNlIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhck5hbWVzcGFj ZSk7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFydHlwZSAtIDFdID0gT2JqZWN0SWRHZXRE YXR1bSh2YXJUeXBlKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxl IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKaW5kZXggNDhmNzM0OGY5MS4uMWNmYWVj YTUxZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKQEAgLTUwLDYgKzUwLDcgQEAgT0JKUyA9IFwKIAlz Y2hlbWFjbWRzLm8gXAogCXNlY2xhYmVsLm8gXAogCXNlcXVlbmNlLm8gXAorCXNlc3Npb25fdmFy aWFibGUubyBcCiAJc3RhdHNjbWRzLm8gXAogCXN1YnNjcmlwdGlvbmNtZHMubyBcCiAJdGFibGVj bWRzLm8gXApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZAppbmRleCA2ZGQwMGE0YWJkLi5jYTYyMWJl NWVjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZAorKysgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZApAQCAtMzgsNiArMzgsNyBAQCBiYWNrZW5k X3NvdXJjZXMgKz0gZmlsZXMoCiAgICdzY2hlbWFjbWRzLmMnLAogICAnc2VjbGFiZWwuYycsCiAg ICdzZXF1ZW5jZS5jJywKKyAgJ3Nlc3Npb25fdmFyaWFibGUuYycsCiAgICdzdGF0c2NtZHMuYycs CiAgICdzdWJzY3JpcHRpb25jbWRzLmMnLAogICAndGFibGVjbWRzLmMnLApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJl cGFyZS5jCmluZGV4IDM5YTcxYzFkZTIuLmU5ZTM5M2FhMDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3ByZXBhcmUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJl LmMKQEAgLTMzOCw2ICszMzgsMTQgQEAgRXZhbHVhdGVQYXJhbXMoUGFyc2VTdGF0ZSAqcHN0YXRl LCBQcmVwYXJlZFN0YXRlbWVudCAqcHN0bXQsIExpc3QgKnBhcmFtcywKIAkJaSsrOwogCX0KIAor CS8qCisJICogVGhlIGFyZ3VtZW50cyBvZiBFWEVDVVRFIGFyZSBldmFsdWF0ZWQgYnkgYSBkaXJl Y3QgZXhwcmVzc2lvbgorCSAqIGV4ZWN1dG9yIGNhbGwuICBUaGlzIG1vZGUgZG9lc24ndCBzdXBw b3J0IHNlc3Npb24gdmFyaWFibGVzIHlldC4KKwkgKiBJdCB3aWxsIGJlIGVuYWJsZWQgbGF0ZXIu CisJICovCisJaWYgKHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzKQorCQllbG9nKEVSUk9S LCAic2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudCIpOworCiAJ LyogUHJlcGFyZSB0aGUgZXhwcmVzc2lvbnMgZm9yIGV4ZWN1dGlvbiAqLwogCWV4cHJzdGF0ZXMg PSBFeGVjUHJlcGFyZUV4cHJMaXN0KHBhcmFtcywgZXN0YXRlKTsKIApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAuLmMzM2EyMzJiMTUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTAsMCArMSw1NTUgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor ICoKKyAqIHNlc3Npb25fdmFyaWFibGUuYworICoJICBzZXNzaW9uIHZhcmlhYmxlIGNyZWF0aW9u L21hbmlwdWxhdGlvbiBjb21tYW5kcworICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5 Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMg Q29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3Ju aWEKKyAqCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNpbmNsdWRl ICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgorI2luY2x1 ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKKyNpbmNsdWRlICJleGVjdXRvci9zdmFy aWFibGVSZWNlaXZlci5oIgorI2luY2x1ZGUgImZ1bmNhcGkuaCIKKyNpbmNsdWRlICJtaXNjYWRt aW4uaCIKKyNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgiCisjaW5jbHVkZSAic3Rv cmFnZS9sbWdyLmgiCisjaW5jbHVkZSAic3RvcmFnZS9wcm9jLmgiCisjaW5jbHVkZSAidGNvcC90 Y29wcHJvdC5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMv ZGF0dW0uaCIKKyNpbmNsdWRlICJ1dGlscy9pbnZhbC5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNj YWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNj YWNoZS5oIgorCisvKgorICogVGhlIHZhbHVlcyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgc3Rv cmVkIGluIHRoZSBiYWNrZW5kJ3MgcHJpdmF0ZSBtZW1vcnkKKyAqIGluIHRoZSBkZWRpY2F0ZWQg bWVtb3J5IGNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCBpbiBiaW5hcnkgZm9ybWF0Lgor ICogVGhleSBhcmUgc3RvcmVkIGluIHRoZSAic2Vzc2lvbnZhcnMiIGhhc2ggdGFibGUsIHdob3Nl IGtleSBpcyB0aGUgT0lEIG9mIHRoZQorICogdmFyaWFibGUuICBIb3dldmVyLCB0aGUgT0lEIGlz IG5vdCBnb29kIGVub3VnaCB0byBpZGVudGlmeSBhIHNlc3Npb24KKyAqIHZhcmlhYmxlOiBjb25j dXJyZW50IHNlc3Npb25zIGNvdWxkIGRyb3AgdGhlIHNlc3Npb24gdmFyaWFibGUgYW5kIGNyZWF0 ZSBhCisgKiBuZXcgb25lLCB3aGljaCBjb3VsZCBiZSBhc3NpZ25lZCB0aGUgc2FtZSBPSUQuICBU byBlbnN1cmUgdGhhdCB0aGUgdmFsdWVzCisgKiBzdG9yZWQgaW4gbWVtb3J5IGFuZCB0aGUgY2F0 YWxvZyBkZWZpbml0aW9uIG1hdGNoLCB3ZSBhbHNvIGtlZXAgdHJhY2sgb2YKKyAqIHRoZSAiY3Jl YXRlX2xzbiIuICBCZWZvcmUgYW55IGFjY2VzcyB0byB0aGUgdmFyaWFibGUgdmFsdWVzLCB3ZSBu ZWVkIHRvCisgKiBjaGVjayBpZiB0aGUgTFNOIHN0b3JlZCBpbiBtZW1vcnkgbWF0Y2hlcyB0aGUg TFNOIGluIHRoZSBjYXRhbG9nLiAgSWYgdGhlcmUKKyAqIGlzIGEgbWlzbWF0Y2ggYmV0d2VlbiB0 aGUgTFNOcywgb3IgaWYgdGhlIE9JRCBpcyBub3QgcHJlc2VudCBpbiBwZ192YXJpYWJsZQorICog YXQgYWxsLCB0aGUgdmFsdWUgc3RvcmVkIGluIG1lbW9yeSBpcyByZWxlYXNlZC4KKyAqLwordHlw ZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlRGF0YQoreworCU9pZAkJCXZhcmlkOwkJCS8qIHBnX3Zhcmlh YmxlIE9JRCBvZiB0aGUgdmFyaWFibGUgKGhhc2gga2V5KSAqLworCVhMb2dSZWNQdHIJY3JlYXRl X2xzbjsKKworCWJvb2wJCWlzbnVsbDsKKwlEYXR1bQkJdmFsdWU7CisKKwlPaWQJCQl0eXBpZDsK KwlpbnQxNgkJdHlwbGVuOworCWJvb2wJCXR5cGJ5dmFsOworCisJYm9vbAkJaXNfZG9tYWluOwor CisJLyoKKwkgKiBkb21haW5fY2hlY2tfZXh0cmEgaG9sZHMgY2FjaGVkIGRvbWFpbiBtZXRhZGF0 YS4gIFRoaXMgImV4dHJhIiBpcworCSAqIHVzdWFsbHkgc3RvcmVkIGluIGZuX21jeHQuICBXZSBk byBub3QgaGF2ZSBhY2Nlc3MgdG8gdGhhdCBtZW1vcnkgY29udGV4dAorCSAqIGZvciBzZXNzaW9u IHZhcmlhYmxlcywgYnV0IHdlIGNhbiB1c2UgVG9wVHJhbnNhY3Rpb25Db250ZXh0IGluc3RlYWQu CisJICogQSBmcmVzaCB2YWx1ZSBpcyBmb3JjZWQgd2hlbiB3ZSBkZXRlY3Qgd2UgYXJlIGluIGEg ZGlmZmVyZW50IHRyYW5zYWN0aW9uCisJICogKHRoZSBsb2NhbCB0cmFuc2FjdGlvbiBJRCBkaWZm ZXJzIGZyb20gZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQpLgorCSAqLworCXZvaWQJICAgKmRvbWFp bl9jaGVja19leHRyYTsKKwlMb2NhbFRyYW5zYWN0aW9uSWQgZG9tYWluX2NoZWNrX2V4dHJhX2x4 aWQ7CisKKwkvKgorCSAqIFN0b3JlZCB2YWx1ZSBhbmQgdHlwZSBkZXNjcmlwdGlvbiBjYW4gYmUg b3V0ZGF0ZWQgd2hlbiB3ZSByZWNlaXZlIGEKKwkgKiBzaW52YWwgbWVzc2FnZS4gIFdlIHRoZW4g aGF2ZSB0byBjaGVjayBpZiB0aGUgc3RvcmVkIGRhdGEgYXJlIHN0aWxsCisJICogdHJ1c3R3b3J0 aHkuCisJICovCisJYm9vbAkJaXNfdmFsaWQ7CisKKwl1aW50MzIJCWhhc2h2YWx1ZTsJCS8qIHVz ZWQgZm9yIHBhaXJpbmcgc2ludmFsIG1lc3NhZ2UgKi8KK30gU1ZhcmlhYmxlRGF0YTsKKwordHlw ZWRlZiBTVmFyaWFibGVEYXRhICpTVmFyaWFibGU7CisKK3N0YXRpYyBIVEFCICpzZXNzaW9udmFy cyA9IE5VTEw7CS8qIGhhc2ggdGFibGUgZm9yIHNlc3Npb24gdmFyaWFibGVzICovCisKK3N0YXRp YyBNZW1vcnlDb250ZXh0IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgPSBOVUxMOworCisvKgorICog Q2FsbGJhY2sgZnVuY3Rpb24gZm9yIHNlc3Npb24gdmFyaWFibGUgaW52YWxpZGF0aW9uLgorICov CitzdGF0aWMgdm9pZAorcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2soRGF0dW0gYXJnLCBpbnQg Y2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKK3sKKwlIQVNIX1NFUV9TVEFUVVMgc3RhdHVzOwor CVNWYXJpYWJsZQlzdmFyOworCisJZWxvZyhERUJVRzEsICJwZ192YXJpYWJsZV9jYWNoZV9jYWxs YmFjayAldSAldSIsIGNhY2hlaWQsIGhhc2h2YWx1ZSk7CisKKwlBc3NlcnQoc2Vzc2lvbnZhcnMp OworCisJLyoKKwkgKiBJZiB0aGUgaGFzaHZhbHVlIGlzIG5vdCBzcGVjaWZpZWQsIHdlIGhhdmUg dG8gcmVjaGVjayBhbGwgY3VycmVudGx5CisJICogdXNlZCBzZXNzaW9uIHZhcmlhYmxlcy4gIFNp bmNlIHdlIGNhbid0IHRlbGwgdGhlIGV4YWN0IHNlc3Npb24gdmFyaWFibGUKKwkgKiBmcm9tIGl0 cyBoYXNodmFsdWUsIHdlIGhhdmUgdG8gaXRlcmF0ZSBvdmVyIGFsbCBpdGVtcyBpbiB0aGUgaGFz aCBidWNrZXQuCisJICovCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFycyk7CisK Kwl3aGlsZSAoKHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1cykpICE9 IE5VTEwpCisJeworCQlpZiAoaGFzaHZhbHVlID09IDAgfHwgc3Zhci0+aGFzaHZhbHVlID09IGhh c2h2YWx1ZSkKKwkJeworCQkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKKwkJfQorCX0KK30KKwor LyoKKyAqIFJlbGVhc2Ugc3RvcmVkIHZhbHVlLCBmcmVlIG1lbW9yeQorICovCitzdGF0aWMgdm9p ZAorZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKFNWYXJpYWJsZSBzdmFyKQoreworCS8qIGNs ZWFuIHRoZSBjdXJyZW50IHZhbHVlICovCisJaWYgKCFzdmFyLT5pc251bGwpCisJeworCQlpZiAo IXN2YXItPnR5cGJ5dmFsKQorCQkJcGZyZWUoRGF0dW1HZXRQb2ludGVyKHN2YXItPnZhbHVlKSk7 CisKKwkJc3Zhci0+aXNudWxsID0gdHJ1ZTsKKwl9CisKKwlzdmFyLT52YWx1ZSA9IChEYXR1bSkg MDsKK30KKworLyoKKyAqIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSBlbnRyeSBpbiBwZ192YXJpYWJs ZSBpcyBjb25zaXN0ZW50IHdpdGggdGhlIGdpdmVuCisgKiBzZXNzaW9uIHZhcmlhYmxlLgorICov CitzdGF0aWMgYm9vbAoraXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChTVmFyaWFibGUgc3ZhcikK K3sKKwlIZWFwVHVwbGUJdHA7CisJYm9vbAkJcmVzdWx0ID0gZmFsc2U7CisKKwlBc3NlcnQoT2lk SXNWYWxpZChzdmFyLT52YXJpZCkpOworCisJdHAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVP SUQsIE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dmFyaWQpKTsKKworCWlmIChIZWFwVHVwbGVJc1Zh bGlkKHRwKSkKKwl7CisJCS8qCisJCSAqIFRoZSBPSUQgYWxvbmUgaXMgbm90IGVub3VnaCBhcyBh biB1bmlxdWUgaWRlbnRpZmllciwgYmVjYXVzZSBPSUQKKwkJICogdmFsdWVzIGdldCByZWN5Y2xl ZCwgYW5kIGEgbmV3IHNlc3Npb24gdmFyaWFibGUgY291bGQgaGF2ZSBnb3QKKwkJICogdGhlIHNh bWUgT0lELiAgV2UgZG8gYSBzZWNvbmQgY2hlY2sgYWdhaW5zdCB0aGUgNjQtYml0IExTTiB3aGVu CisJCSAqIHRoZSB2YXJpYWJsZSB3YXMgY3JlYXRlZC4KKwkJICovCisJCWlmIChzdmFyLT5jcmVh dGVfbHNuID09ICgoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHRwKSktPnZhcmNyZWF0ZV9s c24pCisJCQlyZXN1bHQgPSB0cnVlOworCisJCVJlbGVhc2VTeXNDYWNoZSh0cCk7CisJfQorCisJ cmV0dXJuIHJlc3VsdDsKK30KKworLyoKKyAqIEluaXRpYWxpemUgYXR0cmlidXRlcyBjYWNoZWQg aW4gInN2YXIiCisgKi8KK3N0YXRpYyB2b2lkCitzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJp YWJsZSBzdmFyLCBPaWQgdmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3Zhcmlh YmxlIHZhcmZvcm07CisKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJpZCkpOworCisJdHVwID0gU2Vh cmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlp ZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBm YWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3JtID0gKEZv cm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJc3Zhci0+dmFyaWQgPSB2YXJpZDsK KwlzdmFyLT5jcmVhdGVfbHNuID0gdmFyZm9ybS0+dmFyY3JlYXRlX2xzbjsKKworCXN2YXItPnR5 cGlkID0gdmFyZm9ybS0+dmFydHlwZTsKKworCWdldF90eXBsZW5ieXZhbChzdmFyLT50eXBpZCwg JnN2YXItPnR5cGxlbiwgJnN2YXItPnR5cGJ5dmFsKTsKKworCXN2YXItPmlzX2RvbWFpbiA9IChn ZXRfdHlwdHlwZSh2YXJmb3JtLT52YXJ0eXBlKSA9PSBUWVBUWVBFX0RPTUFJTik7CisJc3Zhci0+ ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKKwlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmFfbHhp ZCA9IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQ7CisKKwlzdmFyLT5pc251bGwgPSB0cnVlOwor CXN2YXItPnZhbHVlID0gKERhdHVtKSAwOworCisJc3Zhci0+aXNfdmFsaWQgPSB0cnVlOworCisJ c3Zhci0+aGFzaHZhbHVlID0gR2V0U3lzQ2FjaGVIYXNoVmFsdWUxKFZBUklBQkxFT0lELAorCQkJ CQkJCQkJCQlPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVw KTsKK30KKworLyoKKyAqIEFzc2lnbiBhIG5ldyB2YWx1ZSB0byB0aGUgc2Vzc2lvbiB2YXJpYWJs ZS4gIEl0IGlzIGNvcGllZCB0bworICogU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCBpZiBuZWNlc3Nh cnkuCisgKgorICogSWYgYW55IGVycm9yIGhhcHBlbnMsIHRoZSBleGlzdGluZyB2YWx1ZSB3b24n dCBiZSBtb2RpZmllZC4KKyAqLworc3RhdGljIHZvaWQKK3NldF9zZXNzaW9uX3ZhcmlhYmxlKFNW YXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCit7CisJRGF0dW0JCW5ld3Zh bDsKKwlTVmFyaWFibGVEYXRhIGxvY3N2YXIsCisJCQkgICAqX3N2YXI7CisKKwlBc3NlcnQoc3Zh cik7CisJQXNzZXJ0KCFpc251bGwgfHwgdmFsdWUgPT0gKERhdHVtKSAwKTsKKworCS8qCisJICog VXNlIHR5cGJ5dmFsLCB0eXBieWxlbiBmcm9tIHNlc3Npb24gdmFyaWFibGUgb25seSB3aGVuIHRo ZXkgYXJlCisJICogdHJ1c3R3b3J0aHkgKHRoZSBpbnZhbGlkYXRpb24gbWVzc2FnZSB3YXMgbm90 IGFjY2VwdGVkIGZvciB0aGlzCisJICogdmFyaWFibGUpLiAgSWYgdGhlIHZhcmlhYmxlIG1pZ2h0 IGJlIGludmFsaWQsIGZvcmNlIHNldHVwLgorCSAqCisJICogRG8gbm90IG92ZXJ3cml0ZSB0aGUg cGFzc2VkIHNlc3Npb24gdmFyaWFibGUgdW50aWwgd2UgY2FuIGJlIGNlcnRhaW4KKwkgKiB0aGF0 IG5vIGVycm9yIGNhbiBiZSB0aHJvd24uCisJICovCisJaWYgKCFzdmFyLT5pc192YWxpZCkKKwl7 CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoJmxvY3N2YXIsIHN2YXItPnZhcmlkKTsKKwkJX3N2 YXIgPSAmbG9jc3ZhcjsKKwl9CisJZWxzZQorCQlfc3ZhciA9IHN2YXI7CisKKwlpZiAoIWlzbnVs bCkKKwl7CisJCU1lbW9yeUNvbnRleHQgb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKFNW YXJpYWJsZU1lbW9yeUNvbnRleHQpOworCisJCW5ld3ZhbCA9IGRhdHVtQ29weSh2YWx1ZSwgX3N2 YXItPnR5cGJ5dmFsLCBfc3Zhci0+dHlwbGVuKTsKKworCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8o b2xkY3h0KTsKKwl9CisJZWxzZQorCQluZXd2YWwgPSB2YWx1ZTsKKworCWZyZWVfc2Vzc2lvbl92 YXJpYWJsZV92YWx1ZShzdmFyKTsKKworCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSBc IiVzLiVzXCIgKG9pZDoldSkgaGFzIG5ldyB2YWx1ZSIsCisJCSBnZXRfbmFtZXNwYWNlX25hbWUo Z2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCisJCSBnZXRfc2Vz c2lvbl92YXJpYWJsZV9uYW1lKHN2YXItPnZhcmlkKSwKKwkJIHN2YXItPnZhcmlkKTsKKworCS8q IG5vIG1vcmUgZXJyb3IgZXhwZWN0ZWQsIHNvIHdlIGNhbiBvdmVyd3JpdGUgdGhlIG9sZCB2YXJp YWJsZSBub3cgKi8KKwlpZiAoc3ZhciAhPSBfc3ZhcikKKwkJbWVtY3B5KHN2YXIsIF9zdmFyLCBz aXplb2YoU1ZhcmlhYmxlRGF0YSkpOworCisJc3Zhci0+dmFsdWUgPSBuZXd2YWw7CisJc3Zhci0+ aXNudWxsID0gaXNudWxsOworfQorCisvKgorICogQ3JlYXRlIHRoZSBoYXNoIHRhYmxlIGZvciBz dG9yaW5nIHNlc3Npb24gdmFyaWFibGVzLgorICovCitzdGF0aWMgdm9pZAorY3JlYXRlX3Nlc3Np b252YXJzX2hhc2h0YWJsZXModm9pZCkKK3sKKwlIQVNIQ1RMCQl2YXJzX2N0bDsKKworCUFzc2Vy dCghc2Vzc2lvbnZhcnMpOworCisJaWYgKCFTVmFyaWFibGVNZW1vcnlDb250ZXh0KQorCXsKKwkJ LyogcmVhZCBzaW52YWwgbWVzc2FnZXMgKi8KKwkJQ2FjaGVSZWdpc3RlclN5c2NhY2hlQ2FsbGJh Y2soVkFSSUFCTEVPSUQsCisJCQkJCQkJCQkgIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrLAor CQkJCQkJCQkJICAoRGF0dW0pIDApOworCisJCS8qIHdlIG5lZWQgb3VyIG93biBsb25nLWxpdmVk IG1lbW9yeSBjb250ZXh0ICovCisJCVNWYXJpYWJsZU1lbW9yeUNvbnRleHQgPQorCQkJQWxsb2NT ZXRDb250ZXh0Q3JlYXRlKFRvcE1lbW9yeUNvbnRleHQsCisJCQkJCQkJCSAgInNlc3Npb24gdmFy aWFibGVzIiwKKwkJCQkJCQkJICBBTExPQ1NFVF9TVEFSVF9TTUFMTF9TSVpFUyk7CisJfQorCisJ bWVtc2V0KCZ2YXJzX2N0bCwgMCwgc2l6ZW9mKHZhcnNfY3RsKSk7CisJdmFyc19jdGwua2V5c2l6 ZSA9IHNpemVvZihPaWQpOworCXZhcnNfY3RsLmVudHJ5c2l6ZSA9IHNpemVvZihTVmFyaWFibGVE YXRhKTsKKwl2YXJzX2N0bC5oY3h0ID0gU1ZhcmlhYmxlTWVtb3J5Q29udGV4dDsKKworCXNlc3Np b252YXJzID0gaGFzaF9jcmVhdGUoIlNlc3Npb24gdmFyaWFibGVzIiwgNjQsICZ2YXJzX2N0bCwK KwkJCQkJCQkgIEhBU0hfRUxFTSB8IEhBU0hfQkxPQlMgfCBIQVNIX0NPTlRFWFQpOworfQorCisv KgorICogU2VhcmNoIGEgc2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGUgaGFzaCB0YWJsZSBnaXZlbiBp dHMgT0lELiAgSWYgaXQKKyAqIGRvZXNuJ3QgZXhpc3QsIHRoZW4gaW5zZXJ0IGl0IHRoZXJlLgor ICoKKyAqIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGRvaW5nIHBlcm1pc3Npb24gY2hl Y2tzLgorICoKKyAqIEFzIGEgc2lkZSBlZmZlY3QsIHRoaXMgZnVuY3Rpb24gYWNxdWlyZXMgYSBB Y2Nlc3NTaGFyZUxvY2sgb24gdGhlCisgKiBzZXNzaW9uIHZhcmlhYmxlIHVudGlsIHRoZSBlbmQg b2YgdGhlIHRyYW5zYWN0aW9uLgorICovCitzdGF0aWMgU1ZhcmlhYmxlCitnZXRfc2Vzc2lvbl92 YXJpYWJsZShPaWQgdmFyaWQpCit7CisJU1ZhcmlhYmxlCXN2YXI7CisJYm9vbAkJZm91bmQ7CisK KwkvKiBwcm90ZWN0IHRoZSB1c2VkIHNlc3Npb24gdmFyaWFibGUgYWdhaW5zdCBEUk9QICovCisJ TG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIDAsIEFjY2Vzc1No YXJlTG9jayk7CisKKwlpZiAoIXNlc3Npb252YXJzKQorCQljcmVhdGVfc2Vzc2lvbnZhcnNfaGFz aHRhYmxlcygpOworCisJc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VhcmNoKHNlc3Npb252YXJz LCAmdmFyaWQsCisJCQkJCQkJCSAgIEhBU0hfRU5URVIsICZmb3VuZCk7CisKKwlpZiAoZm91bmQp CisJeworCQlpZiAoIXN2YXItPmlzX3ZhbGlkKQorCQl7CisJCQkvKgorCQkJICogSWYgdGhlcmUg d2FzIGFuIGludmFsaWRhdGlvbiBtZXNzYWdlLCB0aGUgdmFyaWFibGUgbWlnaHQgc3RpbGwgYmUK KwkJCSAqIHZhbGlkLCBidXQgd2UgaGF2ZSB0byBjaGVjayB3aXRoIHRoZSBzeXN0ZW0gY2F0YWxv Zy4KKwkJCSAqLworCQkJaWYgKGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoc3ZhcikpCisJCQkJ c3Zhci0+aXNfdmFsaWQgPSB0cnVlOworCQkJZWxzZQorCQkJCS8qIGlmIHRoZSB2YWx1ZSBjYW5u b3QgYmUgdmFsaWRhdGVkLCB3ZSBoYXZlIHRvIGRpc2NhcmQgaXQgKi8KKwkJCQlmcmVlX3Nlc3Np b25fdmFyaWFibGVfdmFsdWUoc3Zhcik7CisJCX0KKwl9CisJZWxzZQorCQlzdmFyLT5pc192YWxp ZCA9IGZhbHNlOworCisJLyoKKwkgKiBGb3JjZSBzZXR1cCBmb3Igbm90IHlldCBpbml0aWFsaXpl ZCB2YXJpYWJsZXMgb3IgdmFyaWFibGVzIHRoYXQgY2Fubm90CisJICogYmUgdmFsaWRhdGVkLgor CSAqLworCWlmICghc3Zhci0+aXNfdmFsaWQpCisJeworCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxl KHN2YXIsIHZhcmlkKTsKKworCQllbG9nKERFQlVHMSwgInNlc3Npb24gdmFyaWFibGUgXCIlcy4l c1wiIChvaWQ6JXUpIGhhcyBhc3NpZ25lZCBlbnRyeSBpbiBtZW1vcnkgKGVtaXR0ZWQgYnkgUkVB RCkiLAorCQkJIGdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3Bh Y2UodmFyaWQpKSwKKwkJCSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSwKKwkJCSB2 YXJpZCk7CisJfQorCisJLyogZW5zdXJlIHRoZSByZXR1cm5lZCBkYXRhIGlzIHN0aWxsIG9mIHRo ZSBjb3JyZWN0IGRvbWFpbiAqLworCWlmIChzdmFyLT5pc19kb21haW4pCisJeworCQkvKgorCQkg KiBTdG9yZSAiZXh0cmEiIGZvciBkb21haW5fY2hlY2soKSBpbiBUb3BUcmFuc2FjdGlvbkNvbnRl eHQuICBXaGVuIHdlCisJCSAqIGFyZSBpbiBhIG5ldyB0cmFuc2FjdGlvbiwgZG9tYWluX2NoZWNr X2V4dHJhIGNhY2hlIGlzIG5vdCB2YWxpZCBhbnkKKwkJICogbW9yZS4KKwkJICovCisJCWlmIChz dmFyLT5kb21haW5fY2hlY2tfZXh0cmFfbHhpZCAhPSBNeVByb2MtPnZ4aWQubHhpZCkKKwkJCXN2 YXItPmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7CisKKwkJZG9tYWluX2NoZWNrKHN2YXItPnZh bHVlLCBzdmFyLT5pc251bGwsCisJCQkJCSBzdmFyLT50eXBpZCwgJnN2YXItPmRvbWFpbl9jaGVj a19leHRyYSwKKwkJCQkJIFRvcFRyYW5zYWN0aW9uQ29udGV4dCk7CisKKwkJc3Zhci0+ZG9tYWlu X2NoZWNrX2V4dHJhX2x4aWQgPSBNeVByb2MtPnZ4aWQubHhpZDsKKwl9CisKKwlyZXR1cm4gc3Zh cjsKK30KKworLyoKKyAqIFN0b3JlIHRoZSBnaXZlbiB2YWx1ZSBpbiBhIHNlc3Npb24gdmFyaWFi bGUgaW4gdGhlIGNhY2hlLgorICoKKyAqIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGRv aW5nIHBlcm1pc3Npb24gY2hlY2tzLgorICoKKyAqIEFzIGEgc2lkZSBlZmZlY3QsIHRoaXMgZnVu Y3Rpb24gYWNxdWlyZXMgYSBBY2Nlc3NTaGFyZUxvY2sgb24gdGhlIHNlc3Npb24KKyAqIHZhcmlh YmxlIHVudGlsIHRoZSBlbmQgb2YgdGhlIHRyYW5zYWN0aW9uLgorICovCit2b2lkCitTZXRTZXNz aW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpCit7CisJU1Zh cmlhYmxlCXN2YXI7CisJYm9vbAkJZm91bmQ7CisKKwkvKiBwcm90ZWN0IHVzZWQgc2Vzc2lvbiB2 YXJpYWJsZSBhZ2FpbnN0IERST1AgKi8KKwlMb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxh dGlvbklkLCB2YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCWlmICghc2Vzc2lvbnZhcnMp CisJCWNyZWF0ZV9zZXNzaW9udmFyc19oYXNodGFibGVzKCk7CisKKwlzdmFyID0gKFNWYXJpYWJs ZSkgaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwKKwkJCQkJCQkJICAgSEFTSF9FTlRF UiwgJmZvdW5kKTsKKworCWlmICghZm91bmQpCisJeworCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxl KHN2YXIsIHZhcmlkKTsKKworCQllbG9nKERFQlVHMSwgInNlc3Npb24gdmFyaWFibGUgXCIlcy4l c1wiIChvaWQ6JXUpIGhhcyBhc3NpZ25lZCBlbnRyeSBpbiBtZW1vcnkgKGVtaXR0ZWQgYnkgV1JJ VEUpIiwKKwkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNw YWNlKHN2YXItPnZhcmlkKSksCisJCQkgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShzdmFyLT52 YXJpZCksCisJCQkgdmFyaWQpOworCX0KKworCS8qIGlmIHRoaXMgZmFpbHMsIGl0IHdvbid0IGNo YW5nZSB0aGUgc3RvcmVkIHZhbHVlICovCisJc2V0X3Nlc3Npb25fdmFyaWFibGUoc3ZhciwgdmFs dWUsIGlzTnVsbCk7Cit9CisKKy8qCisgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFsdWUgc3Rv cmVkIGluIGEgdmFyaWFibGUuCisgKi8KK3N0YXRpYyBpbmxpbmUgRGF0dW0KK2NvcHlfc2Vzc2lv bl92YXJpYWJsZV92YWx1ZShTVmFyaWFibGUgc3ZhciwgYm9vbCAqaXNOdWxsKQoreworCURhdHVt CQl2YWx1ZTsKKworCS8qIGZvcmNlIGNvcHkgb2Ygbm9uIE5VTEwgdmFsdWUgKi8KKwlpZiAoIXN2 YXItPmlzbnVsbCkKKwl7CisJCXZhbHVlID0gZGF0dW1Db3B5KHN2YXItPnZhbHVlLCBzdmFyLT50 eXBieXZhbCwgc3Zhci0+dHlwbGVuKTsKKwkJKmlzTnVsbCA9IGZhbHNlOworCX0KKwllbHNlCisJ eworCQl2YWx1ZSA9IChEYXR1bSkgMDsKKwkJKmlzTnVsbCA9IHRydWU7CisJfQorCisJcmV0dXJu IHZhbHVlOworfQorCisvKgorICogUmV0dXJucyBhIGNvcHkgb2YgdGhlIHZhbHVlIG9mIHRoZSBz ZXNzaW9uIHZhcmlhYmxlIChpbiB0aGUgY3VycmVudCBtZW1vcnkKKyAqIGNvbnRleHQpLiAgVGhl IGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgcGVybWlzc2lvbiBjaGVja3MuCisgKi8KK0RhdHVt CitHZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBib29sICppc051bGwsIE9pZCAqdHlwaWQp Cit7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwlzdmFyID0gZ2V0X3Nlc3Npb25fdmFyaWFibGUodmFy aWQpOworCisJLyoKKwkgKiBBbHRob3VnaCAic3ZhciIgaXMgZnJlc2hseSB2YWxpZGF0ZWQgaW4g dGhpcyBwb2ludCwgc3Zhci0+aXNfdmFsaWQgY2FuCisJICogYmUgZmFsc2UsIGlmIGFuIGludmFs aWRhdGlvbiBtZXNzYWdlIHdzIHByb2Nlc3NlZCBkdXJpbmcgdGhlIGRvbWFpbiBjaGVjay4KKwkg KiBCdXQgdGhlIHZhcmlhYmxlIGFuZCBhbGwgaXRzIGRlcGVuZGVuY2llcyBhcmUgbG9ja2VkIG5v dywgc28gd2UgZG9uJ3QgbmVlZAorCSAqIHRvIHJlcGVhdCB0aGUgdmFsaWRhdGlvbi4KKwkgKi8K KwlBc3NlcnQoc3Zhcik7CisKKwkqdHlwaWQgPSBzdmFyLT50eXBpZDsKKworCXJldHVybiBjb3B5 X3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3ZhciwgaXNOdWxsKTsKK30KKworLyoKKyAqIFJldHVy bnMgYSBjb3B5IG9mIHRoZSB2YWx1ZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBhZnRlciBjaGVj a2luZyBpZiB0aGUKKyAqIHR5cGUgaXMgdGhlIHNhbWUgYXMgImV4cGVjdGVkX3R5cGlkIi4gIFRo ZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yCisgKiBwZXJtaXNzaW9uIGNoZWNrcy4KKyAqLwor RGF0dW0KK0dldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlQ2hlY2soT2lkIHZhcmlkLCBib29sICpp c051bGwsIE9pZCBleHBlY3RlZF90eXBpZCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsKKworCXN2YXIg PSBnZXRfc2Vzc2lvbl92YXJpYWJsZSh2YXJpZCk7CisKKwlBc3NlcnQoc3ZhciAmJiBzdmFyLT5p c192YWxpZCk7CisKKwlpZiAoZXhwZWN0ZWRfdHlwaWQgIT0gc3Zhci0+dHlwaWQpCisJCWVsb2co RVJST1IsICJ0eXBlIG9mIHZhcmlhYmxlIFwiJXMuJXNcIiBpcyBkaWZmZXJlbnQgdGhhbiBleHBl Y3RlZCIsCisJCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVz cGFjZSh2YXJpZCkpLAorCQkJIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKTsKKwor CXJldHVybiBjb3B5X3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3ZhciwgaXNOdWxsKTsKK30KKwor LyoKKyAqIEFzc2lnbiB0aGUgcmVzdWx0IG9mIHRoZSBldmFsdWF0ZWQgZXhwcmVzc2lvbiB0byB0 aGUgc2Vzc2lvbiB2YXJpYWJsZQorICovCit2b2lkCitFeGVjdXRlTGV0U3RtdChQYXJzZVN0YXRl ICpwc3RhdGUsCisJCQkgICBMZXRTdG10ICpzdG10LAorCQkJICAgUGFyYW1MaXN0SW5mbyBwYXJh bXMsCisJCQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwKKwkJCSAgIFF1ZXJ5Q29tcGxl dGlvbiAqcWMpCit7CisJUXVlcnkJICAgKnF1ZXJ5ID0gY2FzdE5vZGUoUXVlcnksIHN0bXQtPnF1 ZXJ5KTsKKwlMaXN0CSAgICpyZXdyaXR0ZW47CisJRGVzdFJlY2VpdmVyICpkZXN0OworCUFjbFJl c3VsdAlhY2xyZXN1bHQ7CisJUGxhbm5lZFN0bXQgKnBsYW47CisJUXVlcnlEZXNjICAqcXVlcnlE ZXNjOworCU9pZAkJCXZhcmlkID0gcXVlcnktPnJlc3VsdFZhcmlhYmxlOworCisJQXNzZXJ0KE9p ZElzVmFsaWQodmFyaWQpKTsKKworCS8qIGRvIHdlIGhhdmUgcGVybWlzc2lvbiB0byB3cml0ZSB0 byB0aGUgc2Vzc2lvbiB2YXJpYWJsZT8gKi8KKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2so VmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgR2V0VXNlcklkKCksIEFDTF9VUERBVEUpOworCWlm IChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwg T0JKRUNUX1ZBUklBQkxFLCBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSk7CisKKwkv KiBjcmVhdGUgYSBkZXN0IHJlY2VpdmVyIGZvciBMRVQgKi8KKwlkZXN0ID0gQ3JlYXRlVmFyaWFi bGVEZXN0UmVjZWl2ZXIodmFyaWQpOworCisJLyogcnVuIHRoZSBxdWVyeSByZXdyaXRlciAqLwor CXF1ZXJ5ID0gY29weU9iamVjdChxdWVyeSk7CisKKwlyZXdyaXR0ZW4gPSBRdWVyeVJld3JpdGUo cXVlcnkpOworCisJQXNzZXJ0KGxpc3RfbGVuZ3RoKHJld3JpdHRlbikgPT0gMSk7CisKKwlxdWVy eSA9IGxpbml0aWFsX25vZGUoUXVlcnksIHJld3JpdHRlbik7CisJQXNzZXJ0KHF1ZXJ5LT5jb21t YW5kVHlwZSA9PSBDTURfU0VMRUNUKTsKKworCS8qIHBsYW4gdGhlIHF1ZXJ5ICovCisJcGxhbiA9 IHBnX3BsYW5fcXVlcnkocXVlcnksIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAorCQkJCQkJIENVUlNP Ul9PUFRfUEFSQUxMRUxfT0ssIHBhcmFtcyk7CisKKwkvKgorCSAqIFVzZSBhIHNuYXBzaG90IHdp dGggYW4gdXBkYXRlZCBjb21tYW5kIElEIHRvIGVuc3VyZSB0aGlzIHF1ZXJ5IHNlZXMgdGhlCisJ ICogcmVzdWx0cyBvZiBhbnkgcHJldmlvdXNseSBleGVjdXRlZCBxdWVyaWVzLiAgKFRoaXMgY291 bGQgb25seSBtYXR0ZXIgaWYKKwkgKiB0aGUgcGxhbm5lciBleGVjdXRlZCBhbiBhbGxlZ2VkbHkt c3RhYmxlIGZ1bmN0aW9uIHRoYXQgY2hhbmdlZCB0aGUKKwkgKiBkYXRhYmFzZSBjb250ZW50cywg YnV0IGxldCdzIGRvIGl0IGFueXdheSB0byBiZSBwYXJhbGxlbCB0byB0aGUgRVhQTEFJTgorCSAq IGNvZGUgcGF0aC4pCisJICovCisJUHVzaENvcGllZFNuYXBzaG90KEdldEFjdGl2ZVNuYXBzaG90 KCkpOworCVVwZGF0ZUFjdGl2ZVNuYXBzaG90Q29tbWFuZElkKCk7CisKKwkvKiBjcmVhdGUgYSBR dWVyeURlc2MsIHJlZGlyZWN0aW5nIG91dHB1dCB0byBvdXIgdHVwbGUgcmVjZWl2ZXIgKi8KKwlx dWVyeURlc2MgPSBDcmVhdGVRdWVyeURlc2MocGxhbiwgcHN0YXRlLT5wX3NvdXJjZXRleHQsCisJ CQkJCQkJCUdldEFjdGl2ZVNuYXBzaG90KCksIEludmFsaWRTbmFwc2hvdCwKKwkJCQkJCQkJZGVz dCwgcGFyYW1zLCBxdWVyeUVudiwgMCk7CisKKwkvKiBjYWxsIEV4ZWN1dG9yU3RhcnQgdG8gcHJl cGFyZSB0aGUgcGxhbiBmb3IgZXhlY3V0aW9uICovCisJRXhlY3V0b3JTdGFydChxdWVyeURlc2Ms IDApOworCisJLyoKKwkgKiBSdW4gdGhlIHBsYW4gdG8gY29tcGxldGlvbi4gIFRoZSByZXN1bHQg c2hvdWxkIGJlIG9ubHkgb25lIHJvdy4gIFRvCisJICogY2hlY2sgaWYgdGhlcmUgYXJlIHRvbyBt YW55IHJlc3VsdCByb3dzLCB3ZSB0cnkgdG8gZmV0Y2ggdHdvLgorCSAqLworCUV4ZWN1dG9yUnVu KHF1ZXJ5RGVzYywgRm9yd2FyZFNjYW5EaXJlY3Rpb24sIDJMKTsKKworCS8qIHNhdmUgdGhlIHJv d2NvdW50IGlmIHdlJ3JlIGdpdmVuIGEgUXVlcnlDb21wbGV0aW9uIHRvIGZpbGwgKi8KKwlpZiAo cWMpCisJCVNldFF1ZXJ5Q29tcGxldGlvbihxYywgQ01EVEFHX0xFVCwgcXVlcnlEZXNjLT5lc3Rh dGUtPmVzX3Byb2Nlc3NlZCk7CisKKwkvKiBhbmQgY2xlYW4gdXAgKi8KKwlFeGVjdXRvckZpbmlz aChxdWVyeURlc2MpOworCUV4ZWN1dG9yRW5kKHF1ZXJ5RGVzYyk7CisKKwlGcmVlUXVlcnlEZXNj KHF1ZXJ5RGVzYyk7CisKKwlQb3BBY3RpdmVTbmFwc2hvdCgpOworfQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmls ZQppbmRleCAxMTExOGQwY2UwLi43MTI0OGEzNGYyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9l eGVjdXRvci9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9NYWtlZmlsZQpAQCAt NzYsNiArNzYsNyBAQCBPQkpTID0gXAogCW5vZGVXaW5kb3dBZ2cubyBcCiAJbm9kZVdvcmt0YWJs ZXNjYW4ubyBcCiAJc3BpLm8gXAorCXN2YXJpYWJsZVJlY2VpdmVyLm8gXAogCXRxdWV1ZS5vIFwK IAl0c3RvcmVSZWNlaXZlci5vCiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNFeHByLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCmluZGV4IDNkMDFhOTBi ZDYuLjNhOTNhMGM3MzMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBy LmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpAQCAtMzQsNiArMzQsNyBA QAogI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWNjZXNzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxv Zy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNFeHByLmgiCiAjaW5jbHVk ZSAiZXhlY3V0b3Ivbm9kZVN1YnBsYW4uaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCkBAIC05OTEs NiArOTkyLDQxIEBAIEV4ZWNJbml0RXhwclJlYyhFeHByICpub2RlLCBFeHByU3RhdGUgKnN0YXRl LAogCQkJCQkJc2NyYXRjaC5kLnBhcmFtLnBhcmFtdHlwZSA9IHBhcmFtLT5wYXJhbXR5cGU7CiAJ CQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CiAJCQkJCQlicmVhazsKKwor CQkJCQljYXNlIFBBUkFNX1ZBUklBQkxFOgorCQkJCQkJeworCQkJCQkJCWludAkJCWVzX251bV9z ZXNzaW9uX3ZhcmlhYmxlcyA9IDA7CisJCQkJCQkJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKmVzX3Nl c3Npb25fdmFyaWFibGVzID0gTlVMTDsKKwkJCQkJCQlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqdmFy OworCisJCQkJCQkJaWYgKHN0YXRlLT5wYXJlbnQgJiYgc3RhdGUtPnBhcmVudC0+c3RhdGUpCisJ CQkJCQkJeworCQkJCQkJCQllc19zZXNzaW9uX3ZhcmlhYmxlcyA9IHN0YXRlLT5wYXJlbnQtPnN0 YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlczsKKwkJCQkJCQkJZXNfbnVtX3Nlc3Npb25fdmFyaWFi bGVzID0gc3RhdGUtPnBhcmVudC0+c3RhdGUtPmVzX251bV9zZXNzaW9uX3ZhcmlhYmxlczsKKwkJ CQkJCQl9CisKKwkJCQkJCQlBc3NlcnQoZXNfc2Vzc2lvbl92YXJpYWJsZXMpOworCisJCQkJCQkJ LyogcGFyYW1ldGVyIHNhbml0eSBjaGVja3MgKi8KKwkJCQkJCQlpZiAocGFyYW0tPnBhcmFtaWQg Pj0gZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzKQorCQkJCQkJCQllbG9nKEVSUk9SLCAicGFyYW1p ZCBvZiBQQVJBTV9WQVJJQUJMRSBwYXJhbSBpcyBvdXQgb2YgcmFuZ2UiKTsKKworCQkJCQkJCXZh ciA9ICZlc19zZXNzaW9uX3ZhcmlhYmxlc1twYXJhbS0+cGFyYW1pZF07CisKKwkJCQkJCQlpZiAo dmFyLT50eXBpZCAhPSBwYXJhbS0+cGFyYW10eXBlKQorCQkJCQkJCQllbG9nKEVSUk9SLCAidHlw ZSBvZiBidWZmZXJlZCB2YWx1ZSBpcyBkaWZmZXJlbnQgdGhhbiBQQVJBTV9WQVJJQUJMRSB0eXBl Iik7CisKKwkJCQkJCQkvKgorCQkJCQkJCSAqIEluIHRoaXMgY2FzZSwgcGFzcyB0aGUgdmFsdWUg bGlrZSBhCisJCQkJCQkJICogY29uc3RhbnQuCisJCQkJCQkJICovCisJCQkJCQkJc2NyYXRjaC5v cGNvZGUgPSBFRU9QX0NPTlNUOworCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZhbC52YWx1ZSA9IHZh ci0+dmFsdWU7CisJCQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFsLmlzbnVsbCA9IHZhci0+aXNudWxs OworCQkJCQkJCUV4cHJFdmFsUHVzaFN0ZXAoc3RhdGUsICZzY3JhdGNoKTsKKwkJCQkJCX0KKwkJ CQkJCWJyZWFrOworCiAJCQkJCWNhc2UgUEFSQU1fRVhURVJOOgogCiAJCQkJCQkvKgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNNYWluLmMKaW5kZXggMWMxMmQ2ZWJmZi4uM2MxNzRmMjc1ZiAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjTWFpbi5jCkBAIC00Myw3ICs0Myw5IEBACiAjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIK ICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGFydGl0 aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1h bmRzL21hdHZpZXcuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9y LmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivbm9kZVN1YnBsYW4uaCIKQEAgLTE5Myw2ICsxOTUsNzEg QEAgc3RhbmRhcmRfRXhlY3V0b3JTdGFydChRdWVyeURlc2MgKnF1ZXJ5RGVzYywgaW50IGVmbGFn cykKIAlBc3NlcnQocXVlcnlEZXNjLT5zb3VyY2VUZXh0ICE9IE5VTEwpOwogCWVzdGF0ZS0+ZXNf c291cmNlVGV4dCA9IHF1ZXJ5RGVzYy0+c291cmNlVGV4dDsKIAorCS8qCisJICogVGhlIGV4ZWN1 dG9yIGRvZXNuJ3Qgd29yayB3aXRoIHNlc3Npb24gdmFyaWFibGVzIGRpcmVjdGx5LiBWYWx1ZXMg b2YKKwkgKiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGVzIGFyZSBjb3BpZWQgdG8gYSBkZWRpY2F0 ZWQgYXJyYXksIGFuZCB0aGlzIGFycmF5CisJICogaXMgcGFzc2VkIHRvIHRoZSBleGVjdXRvci4g VGhpcyBhcnJheSBpcyBzdGFibGUgInNuYXBzaG90IiBvZiB2YWx1ZXMgb2YKKwkgKiB1c2VkIHNl c3Npb24gdmFyaWFibGVzLiBUaGVyZSBhcmUgdGhyZWUgYmVuZWZpdHMgb2YgdGhpcyBzdHJhdGVn eToKKwkgKgorCSAqIC0gY29uc2lzdGVuY3kgd2l0aCBleHRlcm5hbCBwYXJhbWV0ZXJzIGFuZCBw bHBnc3FsIHZhcmlhYmxlcywKKwkgKgorCSAqIC0gc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHBh cmFsbGVsIHNhZmUsCisJICoKKwkgKiAtIHdlIGRvbid0IG5lZWQgbWFrZSBmcmVzaCBjb3B5IGZv ciBhbnkgcmVhZCBvZiBzZXNzaW9uIHZhcmlhYmxlCisJICogICAgKHRoaXMgaXMgbmVjZXNzYXJ5 IGJlY2F1c2UgdGhlIGludGVybmFsbHkgdGhlIHNlc3Npb24gdmFyaWFibGUgY2FuCisJICogICAg YmUgY2hhbmdlZCBpbnNpZGUgcXVlcnkgZXhlY3V0aW9uIHRpbWUsIGFuZCB0aGVuIGEgcmVmZXJl bmNlIHRvCisJICogICAgcHJldmlvdXNseSByZXR1cm5lZCB2YWx1ZSBjYW4gYmUgY29ycnVwdGVk KS4KKwkgKi8KKwlpZiAocXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykK Kwl7CisJCWludAkJCW5TZXNzaW9uVmFyaWFibGVzOworCQlpbnQJCQlpID0gMDsKKworCQkvKgor CQkgKiBJbiB0aGlzIGNhc2UsIHRoZSBxdWVyeSB1c2VzIHNlc3Npb24gdmFyaWFibGVzLCBidXQg d2UgaGF2ZSB0bworCQkgKiBwcmVwYXJlIHRoZSBhcnJheSB3aXRoIHBhc3NlZCB2YWx1ZXMgKG9m IHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMpCisJCSAqIGZpcnN0LgorCQkgKi8KKwkJQXNzZXJ0KCFJ c1BhcmFsbGVsV29ya2VyKCkpOworCQluU2Vzc2lvblZhcmlhYmxlcyA9IGxpc3RfbGVuZ3RoKHF1 ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPnNlc3Npb25WYXJpYWJsZXMpOworCisJCS8qIGNyZWF0ZSB0 aGUgYXJyYXkgdXNlZCBmb3IgcGFzc2luZyB2YWx1ZXMgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxl cyAqLworCQllc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzID0gKFNlc3Npb25WYXJpYWJsZVZh bHVlICopCisJCQlwYWxsb2MoblNlc3Npb25WYXJpYWJsZXMgKiBzaXplb2YoU2Vzc2lvblZhcmlh YmxlVmFsdWUpKTsKKworCQkvKiBmaWxsIHRoZSBhcnJheSAqLworCQlmb3JlYWNoX29pZCh2YXJp ZCwgcXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykKKwkJeworCQkJLyoK KwkJCSAqIFBlcm1pc3Npb24gY2hlY2sgc2hvdWxkIGJlIGV4ZWN1dGVkIG9uIGFsbCBleHBsaWNp dGx5IHVzZWQKKwkJCSAqIHZhcmlhYmxlcyBpbiB0aGUgcXVlcnkuIEZvciBpbXBsaWNpdGx5IHVz ZWQgdmFyaWFibGUKKwkJCSAqIChsaWtlIGJhc2Ugbm9kZSBvZiBhc3NpZ25tZW50IGluZGlyZWN0 KSB3ZSBjYW5ub3QgZG8gcGVybWlzc2lvbgorCQkJICogY2hlY2ssIGJlY2F1c2Ugd2UgbmVlZCBy ZWFkIHRoZSB2YWx1ZSAoYW5kIHVzZXIgY2FuIGhhdmUKKwkJCSAqIG9ubHkgVVBEQVRFIHZhcmlh YmxlKS4gSW4gdGhpcyBjYXNlIHRoZSBwZXJtaXNzaW9uIGNoZWNrCisJCQkgKiBpcyBleGVjdXRl ZCBpbiB3cml0ZSB0aW1lLgorCQkJICovCisJCQlpZiAodmFyaWQgIT0gcXVlcnlEZXNjLT5wbGFu bmVkc3RtdC0+ZXhjbFNlbGVjdFBlcm1DaGVja1ZhcmlkKQorCQkJeworCQkJCUFjbFJlc3VsdAlh Y2xyZXN1bHQ7CisKKwkJCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxh dGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCQkJR2V0VXNlcklkKCksIEFDTF9TRUxFQ1QpOworCQkJ CWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCQkJCWFjbGNoZWNrX2Vycm9yKGFjbHJl c3VsdCwgT0JKRUNUX1ZBUklBQkxFLAorCQkJCQkJCQkgICBnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lKHZhcmlkKSk7CisJCQl9CisKKwkJCWVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0u dmFyaWQgPSB2YXJpZDsKKwkJCWVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0udmFsdWUg PSBHZXRTZXNzaW9uVmFyaWFibGUodmFyaWQsCisJCQkJCQkJCQkJCQkgICAmZXN0YXRlLT5lc19z ZXNzaW9uX3ZhcmlhYmxlc1tpXS5pc251bGwsCisJCQkJCQkJCQkJCQkgICAmZXN0YXRlLT5lc19z ZXNzaW9uX3ZhcmlhYmxlc1tpXS50eXBpZCk7CisKKwkJCWkrKzsKKwkJfQorCisJCWVzdGF0ZS0+ ZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gblNlc3Npb25WYXJpYWJsZXM7CisJfQorCiAJLyoK IAkgKiBGaWxsIGluIHRoZSBxdWVyeSBlbnZpcm9ubWVudCwgaWYgYW55LCBmcm9tIHF1ZXJ5RGVz Yy4KIAkgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxkIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVzb24uYnVpbGQKaW5kZXggYjUxMWE0MjlhZC4uYjY2NjJj NmU4ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVzb24uYnVpbGQKKysrIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVzb24uYnVpbGQKQEAgLTY0LDYgKzY0LDcgQEAgYmFja2Vu ZF9zb3VyY2VzICs9IGZpbGVzKAogICAnbm9kZVdpbmRvd0FnZy5jJywKICAgJ25vZGVXb3JrdGFi bGVzY2FuLmMnLAogICAnc3BpLmMnLAorICAnc3ZhcmlhYmxlUmVjZWl2ZXIuYycsCiAgICd0cXVl dWUuYycsCiAgICd0c3RvcmVSZWNlaXZlci5jJywKICkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9zdmFy aWFibGVSZWNlaXZlci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmM0 Y2ZmNDRlY2YKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFi bGVSZWNlaXZlci5jCkBAIC0wLDAgKzEsMjAxIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisg KiBzdmFyaWFibGVSZWNlaXZlci5jCisgKgkgIEFuIGltcGxlbWVudGF0aW9uIG9mIERlc3RSZWNl aXZlciB0aGF0IHN0b3JlcyB0aGUgcmVzdWx0IHZhbHVlIGluCisgKgkgIGEgc2Vzc2lvbiB2YXJp YWJsZS4KKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5 NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogSURFTlRJ RklDQVRJT04KKyAqCSAgc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYwor ICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpbmNsdWRlICJwb3N0Z3Jlcy5oIgorI2lu Y2x1ZGUgIm1pc2NhZG1pbi5oIgorCisjaW5jbHVkZSAiYWNjZXNzL2RldG9hc3QuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92 YXJpYWJsZS5oIgorI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCisjaW5j bHVkZSAic3RvcmFnZS9sb2NrLmgiCisjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNs dWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgorCisv KgorICogVGhpcyBEZXN0UmVjZWl2ZXIgaXMgdXNlZCBieSB0aGUgTEVUIGNvbW1hbmQgZm9yIHN0 b3JpbmcgdGhlIHJlc3VsdCB0byBhCisgKiBzZXNzaW9uIHZhcmlhYmxlLiAgVGhlIHJlc3VsdCBo YXMgdG8gaGF2ZSBvbmx5IG9uZSB0dXBsZSB3aXRoIG9ubHkgb25lCisgKiBub24tZGVsZXRlZCBh dHRyaWJ1dGUuICBUaGUgcm93IGNvdW50ZXIgKGZpZWxkICJyb3dzIikgaXMgaW5jcmVtZW50ZWQK KyAqIGFmdGVyIHJlY2VpdmluZyBhIHJvdywgYW5kIGFuIGVycm9yIGlzIHJhaXNlZCB3aGVuIHRo ZXJlIGFyZSBubyByb3dzIG9yCisgKiB0aGVyZSBhcmUgbW9yZSB0aGFuIG9uZSByZWNlaXZlZCBy b3dzLiAgQmVjYXVzZSBhIHJlY2VpdmVkIHR1cGxlIGNhbiBoYXZlCisgKiBkZWxldGVkIGF0dHJp YnV0ZXMsIHdlIG5lZWQgdG8gZmluZCB0aGUgZmlyc3Qgbm9uLWRlbGV0ZWQgYXR0cmlidXRlCisg KiAoZmllbGQgInNsb3Rfb2Zmc2V0IikuICBUaGUgdmFsdWUgaXMgZGV0b2FzdGVkIGJlZm9yZSBz dG9yaW5nIGl0IGluIHRoZQorICogc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLwordHlwZWRlZiBzdHJ1 Y3QKK3sKKwlEZXN0UmVjZWl2ZXIgcHViOworCU9pZAkJCXZhcmlkOworCWJvb2wJCW5lZWRfZGV0 b2FzdDsJCS8qIGRvIHdlIG5lZWQgdG8gZGV0b2FzdCB0aGUgYXR0cmlidXRlPyAqLworCWludAkJ CXNsb3Rfb2Zmc2V0OwkJLyogcG9zaXRpb24gb2Ygbm9uLWRlbGV0ZWQgYXR0cmlidXRlICovCisJ aW50CQkJcm93czsJCQkJLyogcm93IGNvdW50ZXIgKi8KK30gU1ZhcmlhYmxlU3RhdGU7CisKKy8q CisgKiBQcmVwYXJlIHRvIHJlY2VpdmUgdHVwbGVzIGZyb20gZXhlY3V0b3IuCisgKi8KK3N0YXRp YyB2b2lkCitzdmFyaWFibGVTdGFydHVwUmVjZWl2ZXIoRGVzdFJlY2VpdmVyICpzZWxmLCBpbnQg b3BlcmF0aW9uLCBUdXBsZURlc2MgdHlwZWluZm8pCit7CisJU1ZhcmlhYmxlU3RhdGUgKm15U3Rh dGUgPSAoU1ZhcmlhYmxlU3RhdGUgKikgc2VsZjsKKwlpbnQJCQluYXR0cyA9IHR5cGVpbmZvLT5u YXR0czsKKwlpbnQJCQlvdXRjb2xzID0gMDsKKwlpbnQJCQlpOworCUxPQ0tUQUcJCWxvY2t0YWcg UEdfVVNFRF9GT1JfQVNTRVJUU19PTkxZOworCisJQXNzZXJ0KG15U3RhdGUtPnB1Yi5teWRlc3Qg PT0gRGVzdFZhcmlhYmxlKTsKKwlBc3NlcnQoT2lkSXNWYWxpZChteVN0YXRlLT52YXJpZCkpOwor CUFzc2VydChTZWFyY2hTeXNDYWNoZUV4aXN0czEoVkFSSUFCTEVPSUQsIG15U3RhdGUtPnZhcmlk KSk7CisKKyNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisKKwlTRVRfTE9DS1RBR19PQkpFQ1Qo bG9ja3RhZywKKwkJCQkJICAgTXlEYXRhYmFzZUlkLAorCQkJCQkgICBWYXJpYWJsZVJlbGF0aW9u SWQsCisJCQkJCSAgIG15U3RhdGUtPnZhcmlkLAorCQkJCQkgICAwKTsKKworCUFzc2VydChMb2Nr SGVsZEJ5TWUoJmxvY2t0YWcsIEFjY2Vzc1NoYXJlTG9jaywgZmFsc2UpKTsKKworI2VuZGlmCisK Kwlmb3IgKGkgPSAwOyBpIDwgbmF0dHM7IGkrKykKKwl7CisJCUZvcm1fcGdfYXR0cmlidXRlIGF0 dHIgPSBUdXBsZURlc2NBdHRyKHR5cGVpbmZvLCBpKTsKKwkJT2lkCQkJdHlwaWQ7CisJCU9pZAkJ CWNvbGxpZDsKKwkJaW50MzIJCXR5cG1vZDsKKworCQlpZiAoYXR0ci0+YXR0aXNkcm9wcGVkKQor CQkJY29udGludWU7CisKKwkJaWYgKCsrb3V0Y29scyA+IDEpCisJCQljb250aW51ZTsKKworCQln ZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQobXlTdGF0ZS0+dmFyaWQsCisJ CQkJCQkJCQkJCQkmdHlwaWQsCisJCQkJCQkJCQkJCQkmdHlwbW9kLAorCQkJCQkJCQkJCQkJJmNv bGxpZCk7CisKKwkJLyoKKwkJICogRG91YmxlIGNoZWNrIC0gdGhlIHR5cGUgYW5kIHR5cG1vZCBv ZiB0YXJnZXQgdmFyaWFibGUgc2hvdWxkIGJlIHRoZQorCQkgKiBzYW1lIGFzIHRoZSB0eXBlIGFu ZCB0eXBtb2Qgb2YgYXNzaWdubWVudCBleHByZXNzaW9uLiAgVGhlCisJCSAqIGV4cHJlc3Npb24g c2hvdWxkIGJlIHdyYXBwZWQgYnkgYSBjYXN0IHRvIHRoZSB0YXJnZXQgdHlwZS90eXBtb2QuCisJ CSAqLworCQlpZiAoYXR0ci0+YXR0dHlwaWQgIT0gdHlwaWQgfHwKKwkJCShhdHRyLT5hdHR0eXBt b2QgPj0gMCAmJgorCQkJIGF0dHItPmF0dHR5cG1vZCAhPSB0eXBtb2QpKQorCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCSBl cnJtc2coInRhcmdldCBzZXNzaW9uIHZhcmlhYmxlIGlzIG9mIHR5cGUgJXMiCisJCQkJCQkJIiBi dXQgZXhwcmVzc2lvbiBpcyBvZiB0eXBlICVzIiwKKwkJCQkJCQlmb3JtYXRfdHlwZV93aXRoX3R5 cGVtb2QodHlwaWQsIHR5cG1vZCksCisJCQkJCQkJZm9ybWF0X3R5cGVfd2l0aF90eXBlbW9kKGF0 dHItPmF0dHR5cGlkLAorCQkJCQkJCQkJCQkJCSBhdHRyLT5hdHR0eXBtb2QpKSkpOworCisJCW15 U3RhdGUtPm5lZWRfZGV0b2FzdCA9IGF0dHItPmF0dGxlbiA9PSAtMTsKKwkJbXlTdGF0ZS0+c2xv dF9vZmZzZXQgPSBpOworCX0KKworCWlmIChvdXRjb2xzICE9IDEpCisJCWVyZXBvcnQoRVJST1Is CisJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCSBlcnJtc2dfcGx1cmFs KCJhc3NpZ25tZW50IGV4cHJlc3Npb24gcmV0dXJuZWQgJWQgY29sdW1uIiwKKwkJCQkJCQkgICAi YXNzaWdubWVudCBleHByZXNzaW9uIHJldHVybmVkICVkIGNvbHVtbnMiLAorCQkJCQkJCSAgIG91 dGNvbHMsCisJCQkJCQkJICAgb3V0Y29scykpKTsKKworCW15U3RhdGUtPnJvd3MgPSAwOworfQor CisvKgorICogUmVjZWl2ZSBhIHR1cGxlIGZyb20gdGhlIGV4ZWN1dG9yIGFuZCBzdG9yZSBpdCBp biB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLworc3RhdGljIGJvb2wKK3N2YXJpYWJsZVJlY2Vp dmVTbG90KFR1cGxlVGFibGVTbG90ICpzbG90LCBEZXN0UmVjZWl2ZXIgKnNlbGYpCit7CisJU1Zh cmlhYmxlU3RhdGUgKm15U3RhdGUgPSAoU1ZhcmlhYmxlU3RhdGUgKikgc2VsZjsKKwlEYXR1bQkJ dmFsdWU7CisJYm9vbAkJaXNudWxsOworCWJvb2wJCWZyZWV2YWwgPSBmYWxzZTsKKworCS8qIG1h a2Ugc3VyZSB0aGUgdHVwbGUgaXMgZnVsbHkgZGVjb25zdHJ1Y3RlZCAqLworCXNsb3RfZ2V0YWxs YXR0cnMoc2xvdCk7CisKKwl2YWx1ZSA9IHNsb3QtPnR0c192YWx1ZXNbbXlTdGF0ZS0+c2xvdF9v ZmZzZXRdOworCWlzbnVsbCA9IHNsb3QtPnR0c19pc251bGxbbXlTdGF0ZS0+c2xvdF9vZmZzZXRd OworCisJaWYgKG15U3RhdGUtPm5lZWRfZGV0b2FzdCAmJiAhaXNudWxsICYmIFZBUkFUVF9JU19F WFRFUk5BTChEYXR1bUdldFBvaW50ZXIodmFsdWUpKSkKKwl7CisJCXZhbHVlID0gUG9pbnRlckdl dERhdHVtKGRldG9hc3RfZXh0ZXJuYWxfYXR0cigoc3RydWN0IHZhcmxlbmEgKikKKwkJCQkJCQkJ CQkJCQkgIERhdHVtR2V0UG9pbnRlcih2YWx1ZSkpKTsKKwkJZnJlZXZhbCA9IHRydWU7CisJfQor CisJbXlTdGF0ZS0+cm93cyArPSAxOworCisJaWYgKG15U3RhdGUtPnJvd3MgPiAxKQorCQllcmVw b3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfVE9PX01BTllfUk9XUyksCisJCQkJIGVy cm1zZygiZXhwcmVzc2lvbiByZXR1cm5lZCBtb3JlIHRoYW4gb25lIHJvdyIpKSk7CisKKwlTZXRT ZXNzaW9uVmFyaWFibGUobXlTdGF0ZS0+dmFyaWQsIHZhbHVlLCBpc251bGwpOworCisJaWYgKGZy ZWV2YWwpCisJCXBmcmVlKERhdHVtR2V0UG9pbnRlcih2YWx1ZSkpOworCisJcmV0dXJuIHRydWU7 Cit9CisKKy8qCisgKiBDbGVhbiB1cCBhdCBlbmQgb2YgdGhlIGV4ZWN1dG9yIHJ1bgorICovCitz dGF0aWMgdm9pZAorc3ZhcmlhYmxlU2h1dGRvd25SZWNlaXZlcihEZXN0UmVjZWl2ZXIgKnNlbGYp Cit7CisJaWYgKCgoU1ZhcmlhYmxlU3RhdGUgKikgc2VsZiktPnJvd3MgPT0gMCkKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX05PX0RBVEFfRk9VTkQpLAorCQkJCSBlcnJt c2coImV4cHJlc3Npb24gcmV0dXJuZWQgbm8gcm93cyIpKSk7Cit9CisKKy8qCisgKiBEZXN0cm95 IHRoZSByZWNlaXZlciB3aGVuIHdlIGFyZSBkb25lIHdpdGggaXQKKyAqLworc3RhdGljIHZvaWQK K3N2YXJpYWJsZURlc3Ryb3lSZWNlaXZlcihEZXN0UmVjZWl2ZXIgKnNlbGYpCit7CisJcGZyZWUo c2VsZik7Cit9CisKKy8qCisgKiBJbml0aWFsbHkgY3JlYXRlIGEgRGVzdFJlY2VpdmVyIG9iamVj dC4KKyAqLworRGVzdFJlY2VpdmVyICoKK0NyZWF0ZVZhcmlhYmxlRGVzdFJlY2VpdmVyKE9pZCB2 YXJpZCkKK3sKKwlTVmFyaWFibGVTdGF0ZSAqc2VsZiA9IChTVmFyaWFibGVTdGF0ZSAqKSBwYWxs b2MwKHNpemVvZihTVmFyaWFibGVTdGF0ZSkpOworCisJc2VsZi0+cHViLnJlY2VpdmVTbG90ID0g c3ZhcmlhYmxlUmVjZWl2ZVNsb3Q7CisJc2VsZi0+cHViLnJTdGFydHVwID0gc3ZhcmlhYmxlU3Rh cnR1cFJlY2VpdmVyOworCXNlbGYtPnB1Yi5yU2h1dGRvd24gPSBzdmFyaWFibGVTaHV0ZG93blJl Y2VpdmVyOworCXNlbGYtPnB1Yi5yRGVzdHJveSA9IHN2YXJpYWJsZURlc3Ryb3lSZWNlaXZlcjsK KwlzZWxmLT5wdWIubXlkZXN0ID0gRGVzdFZhcmlhYmxlOworCisJc2VsZi0+dmFyaWQgPSB2YXJp ZDsKKworCXJldHVybiAoRGVzdFJlY2VpdmVyICopIHNlbGY7Cit9CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5j CmluZGV4IDUwNzA1YTFlMTUuLjQ4ZDg2ZWU3MjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25v ZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC00 MzQxLDYgKzQzNDEsMTYgQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpu b2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfTGV0U3Rt dDoKKwkJCXsKKwkJCQlMZXRTdG10ICAgICpzdG10ID0gKExldFN0bXQgKikgbm9kZTsKKworCQkJ CWlmIChXQUxLKHN0bXQtPnRhcmdldCkpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChXQUxL KHN0bXQtPnF1ZXJ5KSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQl9CisJCQlicmVhazsKIAkJY2Fz ZSBUX1BMQXNzaWduU3RtdDoKIAkJCXsKIAkJCQlQTEFzc2lnblN0bXQgKnN0bXQgPSAoUExBc3Np Z25TdG10ICopIG5vZGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9w bGFubmVyLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKaW5kZXggNzQ2 ODk2MWIwMS4uMmY2YzU1YWI5MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3Bs YW4vcGxhbm5lci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwpA QCAtMzMzLDYgKzMzMyw5IEBAIHN0YW5kYXJkX3BsYW5uZXIoUXVlcnkgKnBhcnNlLCBjb25zdCBj aGFyICpxdWVyeV9zdHJpbmcsIGludCBjdXJzb3JPcHRpb25zLAogCWdsb2ItPmxhc3RQbGFuTm9k ZUlkID0gMDsKIAlnbG9iLT50cmFuc2llbnRQbGFuID0gZmFsc2U7CiAJZ2xvYi0+ZGVwZW5kc09u Um9sZSA9IGZhbHNlOworCWdsb2ItPnNlc3Npb25WYXJpYWJsZXMgPSBOSUw7CisJZ2xvYi0+YmFz ZW5vZGVTZXNzaW9uVmFyaWQgPSBJbnZhbGlkT2lkOworCWdsb2ItPmNoZWNrU2VsZWN0UGVybVZh cmlkcyA9IE5VTEw7CiAKIAkvKgogCSAqIEFzc2VzcyB3aGV0aGVyIGl0J3MgZmVhc2libGUgdG8g dXNlIHBhcmFsbGVsIG1vZGUgZm9yIHRoaXMgcXVlcnkuIFdlCkBAIC01NjcsNiArNTcwLDE3IEBA IHN0YW5kYXJkX3BsYW5uZXIoUXVlcnkgKnBhcnNlLCBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcs IGludCBjdXJzb3JPcHRpb25zLAogCXJlc3VsdC0+cGFyYW1FeGVjVHlwZXMgPSBnbG9iLT5wYXJh bUV4ZWNUeXBlczsKIAkvKiB1dGlsaXR5U3RtdCBzaG91bGQgYmUgbnVsbCwgYnV0IHdlIG1pZ2h0 IGFzIHdlbGwgY29weSBpdCAqLwogCXJlc3VsdC0+dXRpbGl0eVN0bXQgPSBwYXJzZS0+dXRpbGl0 eVN0bXQ7CisKKwlyZXN1bHQtPnNlc3Npb25WYXJpYWJsZXMgPSBnbG9iLT5zZXNzaW9uVmFyaWFi bGVzOworCisJLyoKKwkgKiBUaGUgc2Vzc2lvbiB2YXJpYWJsZSB1c2VkIChhbmQgb25seSB1c2Vk KSBsaWtlIGJhc2Ugbm9kZQorCSAqIGZvciBhc3NpZ25lbW50IGluZGlyZWN0aW9uIHNob3VsZCBi ZSBleGNsdWRlZCBmcm9tIHBlcm1pc3Npb24KKwkgKiBjaGVjay4KKwkgKi8KKwlpZiAoIWJtc19p c19tZW1iZXIoZ2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyaWQsIGdsb2ItPmNoZWNrU2VsZWN0UGVy bVZhcmlkcykpCisJCXJlc3VsdC0+ZXhjbFNlbGVjdFBlcm1DaGVja1ZhcmlkID0gZ2xvYi0+YmFz ZW5vZGVTZXNzaW9uVmFyaWQ7CisKIAlyZXN1bHQtPnN0bXRfbG9jYXRpb24gPSBwYXJzZS0+c3Rt dF9sb2NhdGlvbjsKIAlyZXN1bHQtPnN0bXRfbGVuID0gcGFyc2UtPnN0bXRfbGVuOwogCkBAIC03 MzcsNiArNzUxLDEzIEBAIHN1YnF1ZXJ5X3BsYW5uZXIoUGxhbm5lckdsb2JhbCAqZ2xvYiwgUXVl cnkgKnBhcnNlLCBQbGFubmVySW5mbyAqcGFyZW50X3Jvb3QsCiAJICovCiAJcHVsbF91cF9zdWJx dWVyaWVzKHJvb3QpOwogCisJLyoKKwkgKiBDaGVjayBpZiBzb21lIHN1YnF1ZXJ5IHVzZXMgYSBz ZXNzaW9uIHZhcmlhYmxlLiAgVGhlIGZsYWcKKwkgKiBoYXNTZXNzaW9uVmFyaWFibGVzIHNob3Vs ZCBiZSB0cnVlIGlmIHRoZSBxdWVyeSBvciBzb21lIHN1YnF1ZXJ5IHVzZXMgYQorCSAqIHNlc3Np b24gdmFyaWFibGUuCisJICovCisJcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXMocm9vdCk7 CisKIAkvKgogCSAqIElmIHRoaXMgaXMgYSBzaW1wbGUgVU5JT04gQUxMIHF1ZXJ5LCBmbGF0dGVu IGl0IGludG8gYW4gYXBwZW5kcmVsLiBXZQogCSAqIGRvIHRoaXMgbm93IGJlY2F1c2UgaXQgcmVx dWlyZXMgYXBwbHlpbmcgcHVsbF91cF9zdWJxdWVyaWVzIHRvIHRoZSBsZWFmCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgYi9zcmMvYmFja2VuZC9vcHRp bWl6ZXIvcGxhbi9zZXRyZWZzLmMKaW5kZXggNmQyM2RmMTA4ZC4uYzA3OTlkZThiNiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jCisrKyBiL3NyYy9iYWNr ZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYwpAQCAtMjEwLDYgKzIxMCw5IEBAIHN0YXRpYyBM aXN0ICpzZXRfcmV0dXJuaW5nX2NsYXVzZV9yZWZlcmVuY2VzKFBsYW5uZXJJbmZvICpyb290LAog c3RhdGljIExpc3QgKnNldF93aW5kb3dhZ2dfcnVuY29uZGl0aW9uX3JlZmVyZW5jZXMoUGxhbm5l ckluZm8gKnJvb3QsCiAJCQkJCQkJCQkJCQkgICBMaXN0ICpydW5jb25kaXRpb24sCiAJCQkJCQkJ CQkJCQkgICBQbGFuICpwbGFuKTsKK3N0YXRpYyBib29sIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFy aWFibGVzX3dhbGtlcihOb2RlICpub2RlLAorCQkJCQkJCQkJCQkJIFBsYW5uZXJJbmZvICpyb290 KTsKK3N0YXRpYyB2b2lkIHJlY29yZF9wbGFuX3ZhcmlhYmxlX2RlcGVuZGVuY3koUGxhbm5lcklu Zm8gKnJvb3QsIE9pZCB2YXJpZCk7CiAKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xMzA5 LDYgKzEzMTIsNTAgQEAgc2V0X3BsYW5fcmVmcyhQbGFubmVySW5mbyAqcm9vdCwgUGxhbiAqcGxh biwgaW50IHJ0b2Zmc2V0KQogCXJldHVybiBwbGFuOwogfQogCisvKgorICogU2VhcmNoIHVzYWdl IG9mIHNlc3Npb24gdmFyaWFibGVzIGluIHN1YnF1ZXJpZXMKKyAqLwordm9pZAorcHVsbF91cF9o YXNfc2Vzc2lvbl92YXJpYWJsZXMoUGxhbm5lckluZm8gKnJvb3QpCit7CisJUXVlcnkJICAgKnF1 ZXJ5ID0gcm9vdC0+cGFyc2U7CisKKwlpZiAocXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMpCisJ eworCQlyb290LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gdHJ1ZTsKKwl9CisJZWxzZQorCXsKKwkJ KHZvaWQpIHF1ZXJ5X3RyZWVfd2Fsa2VyKHF1ZXJ5LAorCQkJCQkJCQkgcHVsbF91cF9oYXNfc2Vz c2lvbl92YXJpYWJsZXNfd2Fsa2VyLAorCQkJCQkJCQkgKHZvaWQgKikgcm9vdCwgMCk7CisJfQor fQorCitzdGF0aWMgYm9vbAorcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2Fsa2VyKE5v ZGUgKm5vZGUsIFBsYW5uZXJJbmZvICpyb290KQoreworCWlmIChub2RlID09IE5VTEwpCisJCXJl dHVybiBmYWxzZTsKKwlpZiAoSXNBKG5vZGUsIFF1ZXJ5KSkKKwl7CisJCVF1ZXJ5CSAgICpxdWVy eSA9IChRdWVyeSAqKSBub2RlOworCisJCWlmIChxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcykK KwkJeworCQkJcm9vdC0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHRydWU7CisJCQlyZXR1cm4gZmFs c2U7CisJCX0KKworCQkvKiByZWN1cnNlIGludG8gc3Vic2VsZWN0cyAqLworCQlyZXR1cm4gcXVl cnlfdHJlZV93YWxrZXIoKFF1ZXJ5ICopIG5vZGUsCisJCQkJCQkJCSBwdWxsX3VwX2hhc19zZXNz aW9uX3ZhcmlhYmxlc193YWxrZXIsCisJCQkJCQkJCSAodm9pZCAqKSByb290LCAwKTsKKwl9CisJ cmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9kZSwgcHVsbF91cF9oYXNfc2Vzc2lvbl92 YXJpYWJsZXNfd2Fsa2VyLAorCQkJCQkJCQkgICh2b2lkICopIHJvb3QpOworfQorCiAvKgogICog c2V0X2luZGV4b25seXNjYW5fcmVmZXJlbmNlcwogICoJCURvIHNldF9wbGFuX3JlZmVyZW5jZXMg cHJvY2Vzc2luZyBvbiBhbiBJbmRleE9ubHlTY2FuCkBAIC0xOTU3LDggKzIwMDQsOSBAQCBjb3B5 VmFyKFZhciAqdmFyKQogICogVGhpcyBpcyBjb2RlIHRoYXQgaXMgY29tbW9uIHRvIGFsbCB2YXJp YW50cyBvZiBleHByZXNzaW9uLWZpeGluZy4KICAqIFdlIG11c3QgbG9vayB1cCBvcGVyYXRvciBv cGNvZGUgaW5mbyBmb3IgT3BFeHByIGFuZCByZWxhdGVkIG5vZGVzLAogICogYWRkIE9JRHMgZnJv bSByZWdjbGFzcyBDb25zdCBub2RlcyBpbnRvIHJvb3QtPmdsb2ItPnJlbGF0aW9uT2lkcywgYW5k Ci0gKiBhZGQgUGxhbkludmFsSXRlbXMgZm9yIHVzZXItZGVmaW5lZCBmdW5jdGlvbnMgaW50byBy b290LT5nbG9iLT5pbnZhbEl0ZW1zLgotICogV2UgYWxzbyBmaWxsIGluIGNvbHVtbiBpbmRleCBs aXN0cyBmb3IgR1JPVVBJTkcoKSBleHByZXNzaW9ucy4KKyAqIGFkZCBQbGFuSW52YWxJdGVtcyBm b3IgdXNlci1kZWZpbmVkIGZ1bmN0aW9ucyBhbmQgc2Vzc2lvbiB2YXJpYWJsZXMgaW50bworICog cm9vdC0+Z2xvYi0+aW52YWxJdGVtcy4gIFdlIGFsc28gZmlsbCBpbiBjb2x1bW4gaW5kZXggbGlz dHMgZm9yIEdST1VQSU5HKCkKKyAqIGV4cHJlc3Npb25zLgogICoKICAqIFdlIGFzc3VtZSBpdCdz IG9rYXkgdG8gdXBkYXRlIG9wY29kZSBpbmZvIGluLXBsYWNlLiAgU28gdGhpcyBjb3VsZCBwb3Nz aWJseQogICogc2NyaWJibGUgb24gdGhlIHBsYW5uZXIncyBpbnB1dCBkYXRhIHN0cnVjdHVyZXMs IGJ1dCBpdCdzIE9LLgpAQCAtMjA0OCw2ICsyMDk2LDEzIEBAIGZpeF9leHByX2NvbW1vbihQbGFu bmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSkKIAkJCQlnLT5jb2xzID0gY29sczsKIAkJfQogCX0K KwllbHNlIGlmIChJc0Eobm9kZSwgUGFyYW0pKQorCXsKKwkJUGFyYW0JICAgKnAgPSAoUGFyYW0g Kikgbm9kZTsKKworCQlpZiAocC0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQkJcmVj b3JkX3BsYW5fdmFyaWFibGVfZGVwZW5kZW5jeShyb290LCBwLT5wYXJhbXZhcmlkKTsKKwl9CiB9 CiAKIC8qCkBAIC0yMDU3LDYgKzIxMTIsMTAgQEAgZml4X2V4cHJfY29tbW9uKFBsYW5uZXJJbmZv ICpyb290LCBOb2RlICpub2RlKQogICogSWYgaXQncyBhIFBBUkFNX01VTFRJRVhQUiwgcmVwbGFj ZSBpdCB3aXRoIHRoZSBhcHByb3ByaWF0ZSBQYXJhbSBmcm9tCiAgKiByb290LT5tdWx0aWV4cHJf cGFyYW1zOyBvdGhlcndpc2Ugbm8gY2hhbmdlIGlzIG5lZWRlZC4KICAqIEp1c3QgZm9yIHBhcmFu b2lhJ3Mgc2FrZSwgd2UgbWFrZSBhIGNvcHkgb2YgdGhlIG5vZGUgaW4gZWl0aGVyIGNhc2UuCisg KgorICogSWYgaXQncyBhIFBBUkFNX1ZBUklBQkxFLCB0aGVuIHdlIGNvbGxlY3QgdXNlZCBzZXNz aW9uIHZhcmlhYmxlcyBpbgorICogdGhlIGxpc3Qgcm9vdC0+Z2xvYi0+c2Vzc2lvblZhcmlhYmxl LiAgQWxzbywgYXNzaWduIHRoZSBwYXJhbWV0ZXIncworICogInBhcmFtaWQiIHRvIHRoZSBwYXJh bWV0ZXIncyBwb3NpdGlvbiBpbiB0aGF0IGxpc3QuCiAgKi8KIHN0YXRpYyBOb2RlICoKIGZpeF9w YXJhbV9ub2RlKFBsYW5uZXJJbmZvICpyb290LCBQYXJhbSAqcCkKQEAgLTIwNzUsNiArMjEzNCw2 MCBAQCBmaXhfcGFyYW1fbm9kZShQbGFubmVySW5mbyAqcm9vdCwgUGFyYW0gKnApCiAJCQllbG9n KEVSUk9SLCAidW5leHBlY3RlZCBQQVJBTV9NVUxUSUVYUFIgSUQ6ICVkIiwgcC0+cGFyYW1pZCk7 CiAJCXJldHVybiBjb3B5T2JqZWN0KGxpc3RfbnRoKHBhcmFtcywgY29sbm8gLSAxKSk7CiAJfQor CisJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwl7CisJCWludAkJCW4gPSAw OworCQlib29sCQlmb3VuZCA9IGZhbHNlOworCisJCS8qIHdlIHdpbGwgbW9kaWZ5IG9iamVjdCAq LworCQlwID0gKFBhcmFtICopIGNvcHlPYmplY3QocCk7CisKKwkJLyoKKwkJICogTm93LCB3ZSBj YW4gYWN0dWFsaXplIGxpc3Qgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMsIGFuZCB3ZSBjYW4KKwkJICog Y29tcGxldGUgcGFyYW1pZCBwYXJhbWV0ZXIuCisJCSAqLworCQlmb3JlYWNoX29pZCh2YXJpZCwg cm9vdC0+Z2xvYi0+c2Vzc2lvblZhcmlhYmxlcykKKwkJeworCQkJaWYgKHZhcmlkID09IHAtPnBh cmFtdmFyaWQpCisJCQl7CisJCQkJcC0+cGFyYW1pZCA9IG47CisJCQkJZm91bmQgPSB0cnVlOwor CQkJCWJyZWFrOworCQkJfQorCQkJbiArPSAxOworCQl9CisKKwkJaWYgKCFmb3VuZCkKKwkJewor CQkJcm9vdC0+Z2xvYi0+c2Vzc2lvblZhcmlhYmxlcyA9IGxhcHBlbmRfb2lkKHJvb3QtPmdsb2It PnNlc3Npb25WYXJpYWJsZXMsCisJCQkJCQkJCQkJCQkJICAgcC0+cGFyYW12YXJpZCk7CisJCQlw LT5wYXJhbWlkID0gbjsKKwkJfQorCisJCS8qCisJCSAqIEZvciBmb2xsb3dpbmcgcGVybWlzc2lv biBjaGVjayB3ZSBuZWVkIHRvIGNvbGxlY3QgaW5mb3JtYXRpb24KKwkJICogaWYgdmFyaWFibGUg aXMgdXNlZCAoYW5kIG9ubHkgdXNlZCkgbGlrZSBiYXNlIG5vZGUgb2YgYXNzaWdubWVudAorCQkg KiBpbmRpcmVjdGlvbi4gSW4gdGhpcyBjYXNlIHdlIG11c3Qgbm90IGRvIFNFTEVDVCBwZXJtaXNz aW9uIGNoZWNrLgorCQkgKiBJbiBvdGhlciBjYXNlcyB3ZSBoYXZlIGRvIFNFTEVDVCBwZXJtaXNz aW9uIGNoZWNrLgorCQkgKi8KKwkJaWYgKHAtPnBhcmFtYmFzZW5vZGUpCisJCXsKKwkJCS8qIHRo ZSB2YXJpYWJsZSBjYW4gYmUgdXNlZCBvbmx5IG9uY2UgYXMgYmFzZSBub2RlICovCisJCQlBc3Nl cnQoIShPaWRJc1ZhbGlkKHJvb3QtPmdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhcmlkKSkpOworCisJ CQlyb290LT5nbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJpZCA9IHAtPnBhcmFtdmFyaWQ7CisJCX0K KwkJZWxzZQorCQl7CisJCQlyb290LT5nbG9iLT5jaGVja1NlbGVjdFBlcm1WYXJpZHMgPQorCQkJ CQkJCSAgYm1zX2FkZF9tZW1iZXIocm9vdC0+Z2xvYi0+Y2hlY2tTZWxlY3RQZXJtVmFyaWRzLAor CQkJCQkJCQkJCQkgcC0+cGFyYW12YXJpZCk7CisJCX0KKworCQlyZXR1cm4gKE5vZGUgKikgcDsK Kwl9CisKIAlyZXR1cm4gKE5vZGUgKikgY29weU9iamVjdChwKTsKIH0KIApAQCAtMjEzNiw3ICsy MjQ5LDEwIEBAIGZpeF9hbHRlcm5hdGl2ZV9zdWJwbGFuKFBsYW5uZXJJbmZvICpyb290LCBBbHRl cm5hdGl2ZVN1YlBsYW4gKmFzcGxhbiwKICAqIHJlcGxhY2luZyBBZ2dyZWYgbm9kZXMgdGhhdCBz aG91bGQgYmUgcmVwbGFjZWQgYnkgaW5pdHBsYW4gb3V0cHV0IFBhcmFtcywKICAqIGNob29zaW5n IHRoZSBiZXN0IGltcGxlbWVudGF0aW9uIGZvciBBbHRlcm5hdGl2ZVN1YlBsYW5zLAogICogbG9v a2luZyB1cCBvcGVyYXRvciBvcGNvZGUgaW5mbyBmb3IgT3BFeHByIGFuZCByZWxhdGVkIG5vZGVz LAotICogYW5kIGFkZGluZyBPSURzIGZyb20gcmVnY2xhc3MgQ29uc3Qgbm9kZXMgaW50byByb290 LT5nbG9iLT5yZWxhdGlvbk9pZHMuCisgKiBhZGRpbmcgT0lEcyBmcm9tIHJlZ2NsYXNzIENvbnN0 IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVsYXRpb25PaWRzLAorICogYXNzaWduaW5nIHBhcmFt dmFyaWQgdG8gUEFSQU1fVkFSSUFCTEUgcGFyYW1zLCBhbmQgY29sbGVjdGluZyB0aGUKKyAqIE9J RHMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgaW4gdGhlIHJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJs ZXMgbGlzdAorICogKHBhcmFtdmFyaWQgaXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBzZXNzaW9uIHZh cmlhYmxlIGluIHRoaXMgbGlzdCkuCiAgKgogICogJ25vZGUnOiB0aGUgZXhwcmVzc2lvbiB0byBi ZSBtb2RpZmllZAogICogJ3J0b2Zmc2V0JzogaG93IG11Y2ggdG8gaW5jcmVtZW50IHZhcm5vcyBi eQpAQCAtMjE1OCw3ICsyMjc0LDggQEAgZml4X3NjYW5fZXhwcihQbGFubmVySW5mbyAqcm9vdCwg Tm9kZSAqbm9kZSwgaW50IHJ0b2Zmc2V0LCBkb3VibGUgbnVtX2V4ZWMpCiAJCXJvb3QtPm11bHRp ZXhwcl9wYXJhbXMgIT0gTklMIHx8CiAJCXJvb3QtPmdsb2ItPmxhc3RQSElkICE9IDAgfHwKIAkJ cm9vdC0+bWlubWF4X2FnZ3MgIT0gTklMIHx8Ci0JCXJvb3QtPmhhc0FsdGVybmF0aXZlU3ViUGxh bnMpCisJCXJvb3QtPmhhc0FsdGVybmF0aXZlU3ViUGxhbnMgfHwKKwkJcm9vdC0+aGFzU2Vzc2lv blZhcmlhYmxlcykKIAl7CiAJCXJldHVybiBmaXhfc2Nhbl9leHByX211dGF0b3Iobm9kZSwgJmNv bnRleHQpOwogCX0KQEAgLTM1MzYsNiArMzY1MywyNSBAQCByZWNvcmRfcGxhbl90eXBlX2RlcGVu ZGVuY3koUGxhbm5lckluZm8gKnJvb3QsIE9pZCB0eXBpZCkKIAl9CiB9CiAKKy8qCisgKiBSZWNv cmQgZGVwZW5kZW5jeSBvbiBhIHNlc3Npb24gdmFyaWFibGUuICBUaGUgdmFyaWFibGUgY2FuIGJl IHVzZWQgYXMgYQorICogc2Vzc2lvbiB2YXJpYWJsZSBpbiBhbiBleHByZXNzaW9uIGxpc3QsIG9y IGFzIHRoZSB0YXJnZXQgb2YgYSBMRVQgc3RhdGVtZW50LgorICovCitzdGF0aWMgdm9pZAorcmVj b3JkX3BsYW5fdmFyaWFibGVfZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9vdCwgT2lkIHZhcmlk KQoreworCVBsYW5JbnZhbEl0ZW0gKmludmFsX2l0ZW0gPSBtYWtlTm9kZShQbGFuSW52YWxJdGVt KTsKKworCS8qIHBhcmFtaWQgaXMgc3RpbGwgc2Vzc2lvbiB2YXJpYWJsZSBpZCAqLworCWludmFs X2l0ZW0tPmNhY2hlSWQgPSBWQVJJQUJMRU9JRDsKKwlpbnZhbF9pdGVtLT5oYXNoVmFsdWUgPSBH ZXRTeXNDYWNoZUhhc2hWYWx1ZTEoVkFSSUFCTEVPSUQsCisJCQkJCQkJCQkJCQkgIE9iamVjdElk R2V0RGF0dW0odmFyaWQpKTsKKworCS8qIGFwcGVuZCB0aGlzIHZhcmlhYmxlIHRvIGdsb2JhbCwg cmVnaXN0ZXIgZGVwZW5kZW5jeSAqLworCXJvb3QtPmdsb2ItPmludmFsSXRlbXMgPSBsYXBwZW5k KHJvb3QtPmdsb2ItPmludmFsSXRlbXMsCisJCQkJCQkJCQkgaW52YWxfaXRlbSk7Cit9CisKIC8q CiAgKiBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llcwogICoJCUdpdmVuIGEgcmV3cml0dGVuLCBi dXQgbm90IHlldCBwbGFubmVkLCBxdWVyeSBvciBxdWVyaWVzCkBAIC0zNjIxLDkgKzM3NTcsOSBA QCBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llc193YWxrZXIoTm9kZSAqbm9kZSwgUGxhbm5lcklu Zm8gKmNvbnRleHQpCiAJCQl9CiAKIAkJCS8qCi0JCQkgKiBJZ25vcmUgb3RoZXIgdXRpbGl0eSBz dGF0ZW1lbnRzLCBleGNlcHQgdGhvc2UgKHN1Y2ggYXMgRVhQTEFJTikKLQkJCSAqIHRoYXQgY29u dGFpbiBhIHBhcnNlZC1idXQtbm90LXBsYW5uZWQgcXVlcnkuICBGb3IgdGhvc2UsIHdlCi0JCQkg KiBqdXN0IG5lZWQgdG8gdHJhbnNmZXIgb3VyIGF0dGVudGlvbiB0byB0aGUgY29udGFpbmVkIHF1 ZXJ5LgorCQkJICogSWdub3JlIG90aGVyIHV0aWxpdHkgc3RhdGVtZW50cywgZXhjZXB0IHRob3Nl IChzdWNoIGFzIEVYUExBSU4KKwkJCSAqIG9yIExFVCkgdGhhdCBjb250YWluIGEgcGFyc2VkLWJ1 dC1ub3QtcGxhbm5lZCBxdWVyeS4gIEZvciB0aG9zZSwKKwkJCSAqIHdlIGp1c3QgbmVlZCB0byB0 cmFuc2ZlciBvdXIgYXR0ZW50aW9uIHRvIHRoZSBjb250YWluZWQgcXVlcnkuCiAJCQkgKi8KIAkJ CXF1ZXJ5ID0gVXRpbGl0eUNvbnRhaW5zUXVlcnkocXVlcnktPnV0aWxpdHlTdG10KTsKIAkJCWlm IChxdWVyeSA9PSBOVUxMKQpAQCAtMzY0Niw2ICszNzgyLDEwIEBAIGV4dHJhY3RfcXVlcnlfZGVw ZW5kZW5jaWVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVySW5mbyAqY29udGV4dCkKIAkJCQkJ bGFwcGVuZF9vaWQoY29udGV4dC0+Z2xvYi0+cmVsYXRpb25PaWRzLCBydGUtPnJlbGlkKTsKIAkJ fQogCisJCS8qIHJlY29yZCBkZXBlbmRlbmN5IG9uIHRoZSB0YXJnZXQgdmFyaWFibGUgb2YgYSBM RVQgY29tbWFuZCAqLworCQlpZiAoT2lkSXNWYWxpZChxdWVyeS0+cmVzdWx0VmFyaWFibGUpKQor CQkJcmVjb3JkX3BsYW5fdmFyaWFibGVfZGVwZW5kZW5jeShjb250ZXh0LCBxdWVyeS0+cmVzdWx0 VmFyaWFibGUpOworCiAJCS8qIEFuZCByZWN1cnNlIGludG8gdGhlIHF1ZXJ5J3Mgc3ViZXhwcmVz c2lvbnMgKi8KIAkJcmV0dXJuIHF1ZXJ5X3RyZWVfd2Fsa2VyKHF1ZXJ5LCBleHRyYWN0X3F1ZXJ5 X2RlcGVuZGVuY2llc193YWxrZXIsCiAJCQkJCQkJCSBjb250ZXh0LCAwKTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jIGIvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMKaW5kZXggYWRhZDdlYTlhOS4uZTIxYzFiODE5 YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMK KysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMKQEAgLTE0MzIs NiArMTQzMiw5IEBAIHB1bGxfdXBfc2ltcGxlX3N1YnF1ZXJ5KFBsYW5uZXJJbmZvICpyb290LCBO b2RlICpqdG5vZGUsIFJhbmdlVGJsRW50cnkgKnJ0ZSwKIAkvKiBJZiBzdWJxdWVyeSBoYWQgYW55 IFJMUyBjb25kaXRpb25zLCBub3cgbWFpbiBxdWVyeSBkb2VzIHRvbyAqLwogCXBhcnNlLT5oYXNS b3dTZWN1cml0eSB8PSBzdWJxdWVyeS0+aGFzUm93U2VjdXJpdHk7CiAKKwkvKiBpZiB0aGUgc3Vi cXVlcnkgaGFkIHNlc3Npb24gdmFyaWFibGVzLCB0aGUgbWFpbiBxdWVyeSBkb2VzIHRvbyAqLwor CXBhcnNlLT5oYXNTZXNzaW9uVmFyaWFibGVzIHw9IHN1YnF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFi bGVzOworCiAJLyoKIAkgKiBzdWJxdWVyeSB3b24ndCBiZSBwdWxsZWQgdXAgaWYgaXQgaGFzQWdn cywgaGFzV2luZG93RnVuY3MsIG9yCiAJICogaGFzVGFyZ2V0U1JGcywgc28gbm8gd29yayBuZWVk ZWQgb24gdGhvc2UgZmxhZ3MKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGls L2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwppbmRleCBi YjdhOWI3NzI4Li5lZmU4NzJiOGEzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv dXRpbC9jbGF1c2VzLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5j CkBAIC0yNCw2ICsyNCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19vcGVyYXRvci5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgor I2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJleGVjdXRv ci9leGVjdXRvci5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2Z1bmN0aW9ucy5oIgogI2luY2x1ZGUg ImZ1bmNhcGkuaCIKQEAgLTkzNCw2ICs5MzUsMTMgQEAgbWF4X3BhcmFsbGVsX2hhemFyZF93YWxr ZXIoTm9kZSAqbm9kZSwgbWF4X3BhcmFsbGVsX2hhemFyZF9jb250ZXh0ICpjb250ZXh0KQogCQlp ZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9FWFRFUk4pCiAJCQlyZXR1cm4gZmFsc2U7CiAK KwkJLyogd2UgZG9uJ3Qgc3VwcG9ydCBwYXNzaW5nIHNlc3Npb24gdmFyaWFibGVzIHRvIHdvcmtl cnMgKi8KKwkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJCXsKKwkJ CWlmIChtYXhfcGFyYWxsZWxfaGF6YXJkX3Rlc3QoUFJPUEFSQUxMRUxfUkVTVFJJQ1RFRCwgY29u dGV4dCkpCisJCQkJcmV0dXJuIHRydWU7CisJCX0KKwogCQlpZiAocGFyYW0tPnBhcmFta2luZCAh PSBQQVJBTV9FWEVDIHx8CiAJCQkhbGlzdF9tZW1iZXJfaW50KGNvbnRleHQtPnNhZmVfcGFyYW1f aWRzLCBwYXJhbS0+cGFyYW1pZCkpCiAJCXsKQEAgLTIzODgsNiArMjM5Niw3IEBAIGNvbnZlcnRf c2FvcF90b19oYXNoZWRfc2FvcF93YWxrZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKICAq CSAgdmFsdWUgb2YgdGhlIFBhcmFtLgogICogMi4gRm9sZCBzdGFibGUsIGFzIHdlbGwgYXMgaW1t dXRhYmxlLCBmdW5jdGlvbnMgdG8gY29uc3RhbnRzLgogICogMy4gUmVkdWNlIFBsYWNlSG9sZGVy VmFyIG5vZGVzIHRvIHRoZWlyIGNvbnRhaW5lZCBleHByZXNzaW9ucy4KKyAqIDQuIEN1cnJlbnQg dmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBjYW4gYmUgdXNlZCBmb3IgZXN0aW1hdGlvbiB0b28u CiAgKi0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKi8KIE5vZGUgKgpAQCAtMjUxNCw2ICsyNTIzLDI5 IEBAIGV2YWxfY29uc3RfZXhwcmVzc2lvbnNfbXV0YXRvcihOb2RlICpub2RlLAogCQkJCQkJfQog CQkJCQl9CiAJCQkJfQorCQkJCWVsc2UgaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFS SUFCTEUgJiYKKwkJCQkJCSBjb250ZXh0LT5lc3RpbWF0ZSkKKwkJCQl7CisJCQkJCWludDE2CQl0 eXBMZW47CisJCQkJCWJvb2wJCXR5cEJ5VmFsOworCQkJCQlEYXR1bQkJcHZhbDsKKwkJCQkJYm9v bAkJaXNudWxsOworCisJCQkJCWdldF90eXBsZW5ieXZhbChwYXJhbS0+cGFyYW10eXBlLAorCQkJ CQkJCQkJJnR5cExlbiwgJnR5cEJ5VmFsKTsKKworCQkJCQlwdmFsID0gR2V0U2Vzc2lvblZhcmlh YmxlV2l0aFR5cGVDaGVjayhwYXJhbS0+cGFyYW12YXJpZCwKKwkJCQkJCQkJCQkJCQkJICAgJmlz bnVsbCwKKwkJCQkJCQkJCQkJCQkJICAgcGFyYW0tPnBhcmFtdHlwZSk7CisKKwkJCQkJcmV0dXJu IChOb2RlICopIG1ha2VDb25zdChwYXJhbS0+cGFyYW10eXBlLAorCQkJCQkJCQkJCQkgIHBhcmFt LT5wYXJhbXR5cG1vZCwKKwkJCQkJCQkJCQkJICBwYXJhbS0+cGFyYW1jb2xsaWQsCisJCQkJCQkJ CQkJCSAgKGludCkgdHlwTGVuLAorCQkJCQkJCQkJCQkgIHB2YWwsCisJCQkJCQkJCQkJCSAgaXNu dWxsLAorCQkJCQkJCQkJCQkgIHR5cEJ5VmFsKTsKKwkJCQl9CiAKIAkJCQkvKgogCQkJCSAqIE5v dCByZXBsYWNlYWJsZSwgc28ganVzdCBjb3B5IHRoZSBQYXJhbSAobm8gbmVlZCB0bwpAQCAtNDcx Nyw3ICs0NzQ5LDggQEAgaW5saW5lX2Z1bmN0aW9uKE9pZCBmdW5jaWQsIE9pZCByZXN1bHRfdHlw ZSwgT2lkIHJlc3VsdF9jb2xsaWQsCiAJCXF1ZXJ5dHJlZS0+bGltaXRPZmZzZXQgfHwKIAkJcXVl cnl0cmVlLT5saW1pdENvdW50IHx8CiAJCXF1ZXJ5dHJlZS0+c2V0T3BlcmF0aW9ucyB8fAotCQls aXN0X2xlbmd0aChxdWVyeXRyZWUtPnRhcmdldExpc3QpICE9IDEpCisJCShsaXN0X2xlbmd0aChx dWVyeXRyZWUtPnRhcmdldExpc3QpICE9IDEpIHx8CisJCXF1ZXJ5dHJlZS0+aGFzU2Vzc2lvblZh cmlhYmxlcykKIAkJZ290byBmYWlsOwogCiAJLyogSWYgdGhlIGZ1bmN0aW9uIHJlc3VsdCBpcyBj b21wb3NpdGUsIHJlc29sdmUgaXQgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9h bmFseXplLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IDM4NjRhNjc1ZDIu LjVjZGU0MzFkNzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwpAQCAtMjUsOSArMjUsMTIgQEAKICNpbmNs dWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAiYWNjZXNzL3N5c2F0dHIuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUu aCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMv bWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCkBAIC01MSw2ICs1NCw3 IEBACiAjaW5jbHVkZSAidXRpbHMvYmFja2VuZF9zdGF0dXMuaCIKICNpbmNsdWRlICJ1dGlscy9i dWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2d1Yy5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNj YWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3JlbC5oIgogI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hl LmgiCiAKQEAgLTgzLDYgKzg3LDggQEAgc3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1DcmVhdGVUYWJs ZUFzU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJIENyZWF0ZVRhYmxlQXNTdG10 ICpzdG10KTsKIHN0YXRpYyBRdWVyeSAqdHJhbnNmb3JtQ2FsbFN0bXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLAogCQkJCQkJCQlDYWxsU3RtdCAqc3RtdCk7CitzdGF0aWMgUXVlcnkgKnRyYW5zZm9ybUxl dFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCSAgIExldFN0bXQgKnN0bXQpOwogc3Rh dGljIHZvaWQgdHJhbnNmb3JtTG9ja2luZ0NsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsIFF1ZXJ5 ICpxcnksCiAJCQkJCQkJCSAgIExvY2tpbmdDbGF1c2UgKmxjLCBib29sIHB1c2hlZERvd24pOwog I2lmZGVmIERFQlVHX05PREVfVEVTVFNfRU5BQkxFRApAQCAtNDE0LDYgKzQyMCw3IEBAIHRyYW5z Zm9ybVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpwYXJzZVRyZWUpCiAJCQljYXNlIFRf VXBkYXRlU3RtdDoKIAkJCWNhc2UgVF9EZWxldGVTdG10OgogCQkJY2FzZSBUX01lcmdlU3RtdDoK KwkJCWNhc2UgVF9MZXRTdG10OgogCQkJCSh2b2lkKSB0ZXN0X3Jhd19leHByZXNzaW9uX2NvdmVy YWdlKHBhcnNlVHJlZSwgTlVMTCk7CiAJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgpAQCAtNDkzLDYg KzUwMCwxMSBAQCB0cmFuc2Zvcm1TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqcGFyc2VU cmVlKQogCQkJCQkJCQkJICAgKENhbGxTdG10ICopIHBhcnNlVHJlZSk7CiAJCQlicmVhazsKIAor CQljYXNlIFRfTGV0U3RtdDoKKwkJCXJlc3VsdCA9IHRyYW5zZm9ybUxldFN0bXQocHN0YXRlLAor CQkJCQkJCQkJICAoTGV0U3RtdCAqKSBwYXJzZVRyZWUpOworCQkJYnJlYWs7CisKIAkJZGVmYXVs dDoKIAogCQkJLyoKQEAgLTU0NSw2ICs1NTcsNyBAQCBzdG10X3JlcXVpcmVzX3BhcnNlX2FuYWx5 c2lzKFJhd1N0bXQgKnBhcnNlVHJlZSkKIAkJY2FzZSBUX1NlbGVjdFN0bXQ6CiAJCWNhc2UgVF9S ZXR1cm5TdG10OgogCQljYXNlIFRfUExBc3NpZ25TdG10OgorCQljYXNlIFRfTGV0U3RtdDoKIAkJ CXJlc3VsdCA9IHRydWU7CiAJCQlicmVhazsKIApAQCAtNjUzLDYgKzY2Niw3IEBAIHRyYW5zZm9y bURlbGV0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBEZWxldGVTdG10ICpzdG10KQogCXFyeS0+ aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJn ZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRl LT5wX2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nl c3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7 CiAKQEAgLTEwNzksNiArMTA5Myw3IEBAIHRyYW5zZm9ybUluc2VydFN0bXQoUGFyc2VTdGF0ZSAq cHN0YXRlLCBJbnNlcnRTdG10ICpzdG10KQogCiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRl LT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNTdWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJM aW5rczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZh cmlhYmxlczsKIAogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAt MTU0NCw2ICsxNTU5LDcgQEAgdHJhbnNmb3JtU2VsZWN0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUs IFNlbGVjdFN0bXQgKnN0bXQpCiAJcXJ5LT5oYXNXaW5kb3dGdW5jcyA9IHBzdGF0ZS0+cF9oYXNX aW5kb3dGdW5jczsKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JG czsKIAlxcnktPmhhc0FnZ3MgPSBwc3RhdGUtPnBfaGFzQWdnczsKKwlxcnktPmhhc1Nlc3Npb25W YXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWZvcmVhY2gobCwg c3RtdC0+bG9ja2luZ0NsYXVzZSkKIAl7CkBAIC0xNzcwLDEyICsxNzg2LDI0MSBAQCB0cmFuc2Zv cm1WYWx1ZXNDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpzdG10KQogCXFy eS0+am9pbnRyZWUgPSBtYWtlRnJvbUV4cHIocHN0YXRlLT5wX2pvaW5saXN0LCBOVUxMKTsKIAog CXFyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5LT5oYXNTZXNz aW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25f cXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKIAlyZXR1cm4gcXJ5OwogfQogCisvKgor ICogdHJhbnNmb3JtTGV0U3RtdCAtCisgKgkgIHRyYW5zZm9ybSBhbiBMZXQgU3RhdGVtZW50Cisg Ki8KK3N0YXRpYyBRdWVyeSAqCit0cmFuc2Zvcm1MZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwg TGV0U3RtdCAqc3RtdCkKK3sKKwlRdWVyeQkgICAqcXVlcnk7CisJUXVlcnkJICAgKnJlc3VsdDsK KwlMaXN0CSAgICpleHByTGlzdCA9IE5JTDsKKwlMaXN0CSAgICpleHByTGlzdENvZXIgPSBOSUw7 CisJTGlzdENlbGwgICAqbGM7CisJTGlzdENlbGwgICAqaW5kaXJlY3Rpb25faGVhZCA9IE5VTEw7 CisJUXVlcnkJICAgKnNlbGVjdFF1ZXJ5OworCU9pZAkJCXZhcmlkOworCWNoYXIJICAgKmF0dHJu YW1lID0gTlVMTDsKKwlib29sCQlub3RfdW5pcXVlOworCWJvb2wJCWlzX3Jvd3R5cGU7CisJT2lk CQkJdHlwaWQ7CisJaW50MzIJCXR5cG1vZDsKKwlPaWQJCQljb2xsaWQ7CisJTGlzdAkgICAqbmFt 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 OworCisJcHN0YXRlLT5wX2V4cHJfa2luZCA9IEVYUFJfS0lORF9MRVRfVEFSR0VUOworCisJLyog d2UgbmVlZCB0byBwb3N0cG9uZSBjb252ZXJzaW9uIG9mICJ1bmtub3duIiB0byB0ZXh0ICovCisJ cHN0YXRlLT5wX3Jlc29sdmVfdW5rbm93bnMgPSBmYWxzZTsKKworCXNlbGVjdFF1ZXJ5ID0gdHJh bnNmb3JtU3RtdChwc3RhdGUsIHN0bXQtPnF1ZXJ5KTsKKworCS8qIHRoZSBncmFtbWFyIHNob3Vs ZCBoYXZlIHByb2R1Y2VkIGEgU0VMRUNUICovCisJQXNzZXJ0KElzQShzZWxlY3RRdWVyeSwgUXVl cnkpICYmIHNlbGVjdFF1ZXJ5LT5jb21tYW5kVHlwZSA9PSBDTURfU0VMRUNUKTsKKworCS8qCisJ ICogR2VuZXJhdGUgYW4gZXhwcmVzc2lvbiBsaXN0IGZvciB0aGUgTEVUIHRoYXQgc2VsZWN0cyBh bGwgdGhlIG5vbi1yZXNqdW5rCisJICogY29sdW1ucyBmcm9tIHRoZSBzdWJxdWVyeS4KKwkgKi8K KwlleHByTGlzdCA9IE5JTDsKKwlmb3JlYWNoX25vZGUoVGFyZ2V0RW50cnksIHRsZSwgc2VsZWN0 UXVlcnktPnRhcmdldExpc3QpCisJeworCQlpZiAodGxlLT5yZXNqdW5rKQorCQkJY29udGludWU7 CisKKwkJZXhwckxpc3QgPSBsYXBwZW5kKGV4cHJMaXN0LCB0bGUtPmV4cHIpOworCX0KKworCS8q IGRvbid0IGFsbG93IG11bHRpY29sdW1uIHJlc3VsdCAqLworCWlmIChsaXN0X2xlbmd0aChleHBy TGlzdCkgIT0gMSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRB WF9FUlJPUiksCisJCQkJIGVycm1zZ19wbHVyYWwoImFzc2lnbm1lbnQgZXhwcmVzc2lvbiByZXR1 cm5lZCAlZCBjb2x1bW4iLAorCQkJCQkJCSAgICJhc3NpZ25tZW50IGV4cHJlc3Npb24gcmV0dXJu ZWQgJWQgY29sdW1ucyIsCisJCQkJCQkJICAgbGlzdF9sZW5ndGgoZXhwckxpc3QpLAorCQkJCQkJ CSAgIGxpc3RfbGVuZ3RoKGV4cHJMaXN0KSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3Rh dGUsCisJCQkJCQkJCQlleHByTG9jYXRpb24oKE5vZGUgKikgZXhwckxpc3QpKSkpOworCisJZXhw ckxpc3RDb2VyID0gTklMOworCisJZm9yZWFjaChsYywgZXhwckxpc3QpCisJeworCQlFeHByCSAg ICpleHByID0gKEV4cHIgKikgbGZpcnN0KGxjKTsKKwkJRXhwcgkgICAqY29lcmNlZF9leHByOwor CQlPaWQJCQlleHBydHlwaWQ7CisKKwkJLyogbm93IHdlIGNhbiByZWFkIHRoZSB0eXBlIG9mIHRo ZSBleHByZXNzaW9uICovCisJCWV4cHJ0eXBpZCA9IGV4cHJUeXBlKChOb2RlICopIGV4cHIpOwor CisJCWlmIChpbmRpcmVjdGlvbl9oZWFkKQorCQl7CisJCQlib29sCQl0YXJnZXRJc0FycmF5Owor CQkJY2hhcgkgICAqdGFyZ2V0TmFtZTsKKwkJCVBhcmFtCSAgICpwYXJhbTsKKworCQkJdGFyZ2V0 TmFtZSA9IGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpOworCQkJdGFyZ2V0SXNBcnJh eSA9IE9pZElzVmFsaWQoZ2V0X2VsZW1lbnRfdHlwZSh0eXBpZCkpOworCisJCQlwc3RhdGUtPnBf aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHRydWU7CisKKwkJCXBhcmFtID0gbWFrZU5vZGUoUGFyYW0p OworCQkJcGFyYW0tPnBhcmFta2luZCA9IFBBUkFNX1ZBUklBQkxFOworCQkJcGFyYW0tPnBhcmFt dmFyaWQgPSB2YXJpZDsKKwkJCXBhcmFtLT5wYXJhbXR5cGUgPSB0eXBpZDsKKwkJCXBhcmFtLT5w YXJhbXR5cG1vZCA9IHR5cG1vZDsKKworCQkJLyoKKwkJCSAqIFRoZSBwYXJhbWV0ZXIgdXNlZCBh cyBiYXNlbm9kZSBoYXMgdG8gaGF2ZSBzcGVjaWFsCisJCQkgKiBtYXJrLCBiZWNhdXNlIHJlcXVp cmVzIHNwZWNpYWwgYWNjZXNzIHdoZW4gd2UgZG8KKwkJCSAqIFNFTEVDVCBhY2Nlc3MgY2hlY2su CisJCQkgKi8KKwkJCXBhcmFtLT5wYXJhbWJhc2Vub2RlID0gdHJ1ZTsKKworCQkJY29lcmNlZF9l eHByID0gKEV4cHIgKikKKwkJCQl0cmFuc2Zvcm1Bc3NpZ25tZW50SW5kaXJlY3Rpb24ocHN0YXRl LAorCQkJCQkJCQkJCQkgICAoTm9kZSAqKSBwYXJhbSwKKwkJCQkJCQkJCQkJICAgdGFyZ2V0TmFt ZSwKKwkJCQkJCQkJCQkJICAgdGFyZ2V0SXNBcnJheSwKKwkJCQkJCQkJCQkJICAgdHlwaWQsCisJ CQkJCQkJCQkJCSAgIHR5cG1vZCwKKwkJCQkJCQkJCQkJICAgSW52YWxpZE9pZCwKKwkJCQkJCQkJ CQkJICAgc3RtdC0+dGFyZ2V0LAorCQkJCQkJCQkJCQkgICBpbmRpcmVjdGlvbl9oZWFkLAorCQkJ CQkJCQkJCQkgICAoTm9kZSAqKSBleHByLAorCQkJCQkJCQkJCQkgICBDT0VSQ0lPTl9BU1NJR05N RU5ULAorCQkJCQkJCQkJCQkgICBzdG10LT5sb2NhdGlvbik7CisJCX0KKwkJZWxzZQorCQkJY29l cmNlZF9leHByID0gKEV4cHIgKikKKwkJCQljb2VyY2VfdG9fdGFyZ2V0X3R5cGUocHN0YXRlLAor CQkJCQkJCQkJICAoTm9kZSAqKSBleHByLAorCQkJCQkJCQkJICBleHBydHlwaWQsCisJCQkJCQkJ CQkgIHR5cGlkLCB0eXBtb2QsCisJCQkJCQkJCQkgIENPRVJDSU9OX0FTU0lHTk1FTlQsCisJCQkJ CQkJCQkgIENPRVJDRV9JTVBMSUNJVF9DQVNULAorCQkJCQkJCQkJICBzdG10LT5sb2NhdGlvbik7 CisKKwkJaWYgKGNvZXJjZWRfZXhwciA9PSBOVUxMKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ KGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJCSBlcnJtc2coInZhcmlh YmxlIFwiJXMuJXNcIiBpcyBvZiB0eXBlICVzLCIKKwkJCQkJCQkiIGJ1dCBleHByZXNzaW9uIGlz IG9mIHR5cGUgJXMiLAorCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KHZhcmlkKSwKKwkJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCksCisJCQkJCQkJZm9ybWF0X3R5 cGVfYmUoZXhwcnR5cGlkKSksCisJCQkJCSBlcnJoaW50KCJZb3Ugd2lsbCBuZWVkIHRvIHJld3Jp dGUgb3IgY2FzdCB0aGUgZXhwcmVzc2lvbi4iKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihw c3RhdGUsIGV4cHJMb2NhdGlvbigoTm9kZSAqKSBleHByKSkpKTsKKworCQlleHByTGlzdENvZXIg PSBsYXBwZW5kKGV4cHJMaXN0Q29lciwgY29lcmNlZF9leHByKTsKKwl9CisKKwkvKiBnZW5lcmF0 ZSBxdWVyeSdzIHRhcmdldCBsaXN0IHVzaW5nIHRoZSBjb21wdXRlZCBsaXN0IG9mIGV4cHJlc3Np b25zICovCisJcXVlcnkgPSBtYWtlTm9kZShRdWVyeSk7CisJcXVlcnktPmNvbW1hbmRUeXBlID0g Q01EX1NFTEVDVDsKKworCWZvcmVhY2gobGMsIGV4cHJMaXN0Q29lcikKKwl7CisJCUV4cHIJICAg KmV4cHIgPSAoRXhwciAqKSBsZmlyc3QobGMpOworCQlUYXJnZXRFbnRyeSAqdGxlOworCisJCXRs ZSA9IG1ha2VUYXJnZXRFbnRyeShleHByLAorCQkJCQkJCSAgaSArIDEsCisJCQkJCQkJICBGaWd1 cmVDb2xuYW1lKChOb2RlICopIGV4cHIpLAorCQkJCQkJCSAgZmFsc2UpOworCQlxdWVyeS0+dGFy Z2V0TGlzdCA9IGxhcHBlbmQocXVlcnktPnRhcmdldExpc3QsIHRsZSk7CisJfQorCisJLyogZG9u ZSBidWlsZGluZyB0aGUgcmFuZ2UgdGFibGUgYW5kIGpvaW50cmVlICovCisJcXVlcnktPnJ0YWJs ZSA9IHBzdGF0ZS0+cF9ydGFibGU7CisJcXVlcnktPmpvaW50cmVlID0gbWFrZUZyb21FeHByKHBz dGF0ZS0+cF9qb2lubGlzdCwgTlVMTCk7CisKKwlxdWVyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0 ZS0+cF9oYXNUYXJnZXRTUkZzOworCXF1ZXJ5LT5oYXNTdWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNT dWJMaW5rczsKKwlxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNz aW9uVmFyaWFibGVzOworCisJLyogdGhpcyBpcyB0b3AtbGV2ZWwgcXVlcnkgKi8KKwlxdWVyeS0+ Y2FuU2V0VGFnID0gdHJ1ZTsKKworCS8qCisJICogU2F2ZSB0YXJnZXQgc2Vzc2lvbiB2YXJpYWJs ZSBJRC4gSXQgaXMgdXNlZCBsYXRlciBmb3IKKwkgKiBhY3F1aXJpbmcgYW4gQWNjZXNzU2hhcmVM b2NrIG9uIHRhcmdldCB2YXJpYWJsZSwgc2V0dGluZworCSAqIHBsYW4gZGVwZW5kZW5jeSBhbmQg ZmluYWxseSBmb3IgY3JlYXRpbmcgVmFyaWFibGVEZXN0UmVjZWl2ZXIuCisJICovCisJcXVlcnkt PnJlc3VsdFZhcmlhYmxlID0gdmFyaWQ7CisKKwlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3Rh dGUsIHF1ZXJ5KTsKKworCS8qCisJICogVGhlIHF1ZXJ5IGlzIGV4ZWN1dGVkIGFzIHV0aWxpdHkg Y29tbWFuZCBieSBuZXN0ZWQgZXhlY3V0b3IgY2FsbC4KKwkgKiBBc3NpZ25lZCBxdWVyeUlkIGlz IHJlcXVpcmVkIGluIHRoaXMgY2FzZS4KKwkgKi8KKwlpZiAoSXNRdWVyeUlkRW5hYmxlZCgpKQor CQlKdW1ibGVRdWVyeShxdWVyeSk7CisKKwlzdG10LT5xdWVyeSA9IChOb2RlICopIHF1ZXJ5Owor CisJLyogcmVwcmVzZW50IHRoZSBjb21tYW5kIGFzIGEgdXRpbGl0eSBRdWVyeSAqLworCXJlc3Vs dCA9IG1ha2VOb2RlKFF1ZXJ5KTsKKwlyZXN1bHQtPmNvbW1hbmRUeXBlID0gQ01EX1VUSUxJVFk7 CisJcmVzdWx0LT51dGlsaXR5U3RtdCA9IChOb2RlICopIHN0bXQ7CisKKwlyZXR1cm4gcmVzdWx0 OworfQorCiAvKgogICogdHJhbnNmb3JtU2V0T3BlcmF0aW9uU3RtdCAtCiAgKgkgIHRyYW5zZm9y bXMgYSBzZXQtb3BlcmF0aW9ucyB0cmVlCkBAIC0yMDIxLDYgKzIyNjYsNyBAQCB0cmFuc2Zvcm1T ZXRPcGVyYXRpb25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCkKIAlx cnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFz VGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBz dGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9o YXNTZXNzaW9uVmFyaWFibGVzOwogCiAJZm9yZWFjaChsLCBsb2NraW5nQ2xhdXNlKQogCXsKQEAg LTI0OTYsNiArMjc0Miw3IEBAIHRyYW5zZm9ybVJldHVyblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRl LCBSZXR1cm5TdG10ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFz V2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNS RnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNzaW9u VmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVl cnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTI1NjMsNiArMjgxMCw3IEBAIHRyYW5z Zm9ybVVwZGF0ZVN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBVcGRhdGVTdG10ICpzdG10KQogCiAJ cXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNT dWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJs ZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWFzc2lnbl9xdWVyeV9jb2xs YXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMjc1MCw5ICsyOTk4LDE1IEBAIHRyYW5zZm9ybVBM QXNzaWduU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFBMQXNzaWduU3RtdCAqc3RtdCkKIAkvKgog CSAqIFRyYW5zZm9ybSB0aGUgdGFyZ2V0IHJlZmVyZW5jZS4gIFR5cGljYWxseSB3ZSB3aWxsIGdl dCBiYWNrIGEgUGFyYW0KIAkgKiBub2RlLCBidXQgdGhlcmUncyBubyByZWFzb24gdG8gYmUgdG9v IHBpY2t5IGFib3V0IGl0cyB0eXBlLgorCSAqCisJICogU2Vzc2lvbiB2YXJpYWJsZXMgc2hvdWxk IG5vdCBiZSB1c2VkIGFzIHRhcmdldCBvZiBhIFBML3BnU1FMIGFzc2lnbgorCSAqIHN0YXRlbWVu dC4gIFNvIHdlIHNob3VsZCB1c2UgYSBkZWRpY2F0ZWQgZXhwcmVzc2lvbiBraW5kIGFuZCBkaXNh bGxvdworCSAqIHNlc3Npb24gdmFyaWFibGVzIHRoZXJlLiAgVGhlIGRlZGljYXRlZCBjb250ZXh0 IGFsbG93cyB0byBlbGltaW5hdGUKKwkgKiB1bmRlc2lyYWJsZSB3YXJuaW5ncyBhYm91dCB0aGUg cG9zc2liaWxpdHkgb2YgYSB0YXJnZXQgUEwvcGdTUUwgdmFyaWFibGUKKwkgKiBzaGFkb3dpbmcg YSBzZXNzaW9uIHZhcmlhYmxlLgogCSAqLwogCXRhcmdldCA9IHRyYW5zZm9ybUV4cHIocHN0YXRl LCAoTm9kZSAqKSBjcmVmLAotCQkJCQkJICAgRVhQUl9LSU5EX1VQREFURV9UQVJHRVQpOworCQkJ CQkJICAgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQpOwogCXRhcmdldHR5cGUgPSBleHByVHlwZSh0 YXJnZXQpOwogCXRhcmdldHR5cG1vZCA9IGV4cHJUeXBtb2QodGFyZ2V0KTsKIAl0YXJnZXRjb2xs YXRpb24gPSBleHByQ29sbGF0aW9uKHRhcmdldCk7CkBAIC0yNzk0LDYgKzMwNDgsMTAgQEAgdHJh bnNmb3JtUExBc3NpZ25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUExBc3NpZ25TdG10ICpzdG10 KQogCSAqLwogCXR5cGVfaWQgPSBleHByVHlwZSgoTm9kZSAqKSB0bGUtPmV4cHIpOwogCisJLyoK KwkgKiBGb3IgaW5kaXJlY3Rpb24gcHJvY2Vzc2luZyBhbmQgYWRkaXRpb25hbCBjYXN0cyB3ZSBj YW4gdXNlIGV4cHJfa2luZAorCSAqIEVYUFJfS0lORF9VUERBVEVfVEFSR0VULgorCSAqLwogCXBz dGF0ZS0+cF9leHByX2tpbmQgPSBFWFBSX0tJTkRfVVBEQVRFX1RBUkdFVDsKIAogCWlmIChpbmRp cmVjdGlvbikKQEAgLTI5MzYsNiArMzE5NCw4IEBAIHRyYW5zZm9ybVBMQXNzaWduU3RtdChQYXJz ZVN0YXRlICpwc3RhdGUsIFBMQXNzaWduU3RtdCAqc3RtdCkKIAkJCQkJCQkgICAoTG9ja2luZ0Ns YXVzZSAqKSBsZmlyc3QobCksIGZhbHNlKTsKIAl9CiAKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJs ZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKKwogCWFzc2lnbl9xdWVyeV9jb2xs YXRpb25zKHBzdGF0ZSwgcXJ5KTsKIAogCS8qIHRoaXMgbXVzdCBiZSBkb25lIGFmdGVyIGNvbGxh dGlvbnMsIGZvciByZWxpYWJsZSBjb21wYXJpc29uIG9mIGV4cHJzICovCkBAIC0zMjA5LDYgKzM0 NjksMTQgQEAgdHJhbnNmb3JtQ2FsbFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDYWxsU3RtdCAq c3RtdCkKIAkJCQkJCQkgdHJ1ZSwKIAkJCQkJCQkgc3RtdC0+ZnVuY2NhbGwtPmxvY2F0aW9uKTsK IAorCS8qCisJICogVGhlIGFyZ3VtZW50cyBvZiBDQUxMIHN0YXRlbWVudCBhcmUgZXZhbHVhdGVk IGJ5IGEgZGlyZWN0IGV4cHJlc3Npb24KKwkgKiBleGVjdXRvciBjYWxsLiAgVGhpcyBwYXRoIGlz IHVuc3VwcG9ydGVkIHlldCwgc28gYmxvY2sgaXQuICBJdCB3aWxsIGJlCisJICogZW5hYmxlZCBs YXRlci4KKwkgKi8KKwlpZiAocHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMpCisJCWVsb2co RVJST1IsICJzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50Iik7 CisKIAlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgbm9kZSk7CiAKIAlmZXhwciA9IGNh c3ROb2RlKEZ1bmNFeHByLCBub2RlKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDg5ZmEyM2MyZGQuLjhhZTM2 OGM1MTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjkzLDcgKzI5Myw3IEBAIHN0YXRpYyBOb2RlICptYWtl UmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpx dWVyeSk7CiAJCURyb3BUcmFuc2Zvcm1TdG10CiAJCURyb3BVc2VyTWFwcGluZ1N0bXQgRXhwbGFp blN0bXQgRmV0Y2hTdG10CiAJCUdyYW50U3RtdCBHcmFudFJvbGVTdG10IEltcG9ydEZvcmVpZ25T Y2hlbWFTdG10IEluZGV4U3RtdCBJbnNlcnRTdG10Ci0JCUxpc3RlblN0bXQgTG9hZFN0bXQgTG9j a1N0bXQgTWVyZ2VTdG10IE5vdGlmeVN0bXQgRXhwbGFpbmFibGVTdG10IFByZXBhcmFibGVTdG10 CisJCUxldFN0bXQgTGlzdGVuU3RtdCBMb2FkU3RtdCBMb2NrU3RtdCBNZXJnZVN0bXQgTm90aWZ5 U3RtdCBFeHBsYWluYWJsZVN0bXQgUHJlcGFyYWJsZVN0bXQKIAkJQ3JlYXRlRnVuY3Rpb25TdG10 IEFsdGVyRnVuY3Rpb25TdG10IFJlaW5kZXhTdG10IFJlbW92ZUFnZ3JTdG10CiAJCVJlbW92ZUZ1 bmNTdG10IFJlbW92ZU9wZXJTdG10IFJlbmFtZVN0bXQgUmV0dXJuU3RtdCBSZXZva2VTdG10IFJl dm9rZVJvbGVTdG10CiAJCVJ1bGVBY3Rpb25TdG10IFJ1bGVBY3Rpb25TdG10T3JFbXB0eSBSdWxl U3RtdApAQCAtNDQzLDYgKzQ0Myw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1Nl bGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCQkJVHJp Z2dlclRyYW5zaXRpb25zIFRyaWdnZXJSZWZlcmVuY2luZwogCQkJCXZhY3V1bV9yZWxhdGlvbl9s aXN0IG9wdF92YWN1dW1fcmVsYXRpb25fbGlzdAogCQkJCWRyb3Bfb3B0aW9uX2xpc3QgcHViX29i al9saXN0CisJCQkJbGV0X3RhcmdldAogCiAldHlwZSA8bm9kZT4Jb3B0X3JvdXRpbmVfYm9keQog JXR5cGUgPGdyb3VwY2xhdXNlPiBncm91cF9jbGF1c2UKQEAgLTczNCw3ICs3MzUsNyBAQCBzdGF0 aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxp YXNlcywgTm9kZSAqcXVlcnkpOwogCUtFRVAgS0VZIEtFWVMKIAogCUxBQkVMIExBTkdVQUdFIExB UkdFX1AgTEFTVF9QIExBVEVSQUxfUAotCUxFQURJTkcgTEVBS1BST09GIExFQVNUIExFRlQgTEVW RUwgTElLRSBMSU1JVCBMSVNURU4gTE9BRCBMT0NBTAorCUxFQURJTkcgTEVBS1BST09GIExFQVNU IExFRlQgTEVUIExFVkVMIExJS0UgTElNSVQgTElTVEVOIExPQUQgTE9DQUwKIAlMT0NBTFRJTUUg TE9DQUxUSU1FU1RBTVAgTE9DQVRJT04gTE9DS19QIExPQ0tFRCBMT0dHRUQKIAogCU1BUFBJTkcg TUFUQ0ggTUFUQ0hFRCBNQVRFUklBTElaRUQgTUFYVkFMVUUgTUVSR0UgTUVSR0VfQUNUSU9OIE1F VEhPRApAQCAtMTA4MSw2ICsxMDgyLDcgQEAgc3RtdDoKIAkJCXwgSW1wb3J0Rm9yZWlnblNjaGVt YVN0bXQKIAkJCXwgSW5kZXhTdG10CiAJCQl8IEluc2VydFN0bXQKKwkJCXwgTGV0U3RtdAogCQkJ fCBMaXN0ZW5TdG10CiAJCQl8IFJlZnJlc2hNYXRWaWV3U3RtdAogCQkJfCBMb2FkU3RtdApAQCAt MTI3NzAsNiArMTI3NzIsNDcgQEAgb3B0X2hvbGQ6IC8qIEVNUFRZICovCQkJCQkJeyAkJCA9IDA7 IH0KIAkJCXwgV0lUSE9VVCBIT0xECQkJCQl7ICQkID0gMDsgfQogCQk7CiAKKy8qKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKgorICoKKyAqCQlRVUVSWToKKyAqCQkJCUxFVCBTVEFURU1FTlQKKyAqCisgKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKiovCitMZXRTdG10OglMRVQgbGV0X3RhcmdldCAnPScgYV9leHByCisJ CQkJeworCQkJCQlMZXRTdG10CSAgICpuID0gbWFrZU5vZGUoTGV0U3RtdCk7CisJCQkJCVNlbGVj dFN0bXQgKnNlbGVjdDsKKwkJCQkJUmVzVGFyZ2V0ICAqcmVzOworCisJCQkJCW4tPnRhcmdldCA9 ICQyOworCisJCQkJCXNlbGVjdCA9IG1ha2VOb2RlKFNlbGVjdFN0bXQpOworCQkJCQlyZXMgPSBt YWtlTm9kZShSZXNUYXJnZXQpOworCisJCQkJCS8qIGNyZWF0ZSB0YXJnZXQgbGlzdCBmb3IgaW1w bGljaXQgcXVlcnkgKi8KKwkJCQkJcmVzLT5uYW1lID0gTlVMTDsKKwkJCQkJcmVzLT5pbmRpcmVj dGlvbiA9IE5JTDsKKwkJCQkJcmVzLT52YWwgPSAoTm9kZSAqKSAkNDsKKwkJCQkJcmVzLT5sb2Nh dGlvbiA9IEA0OworCisJCQkJCXNlbGVjdC0+dGFyZ2V0TGlzdCA9IGxpc3RfbWFrZTEocmVzKTsK KwkJCQkJbi0+cXVlcnkgPSAoTm9kZSAqKSBzZWxlY3Q7CisKKwkJCQkJbi0+bG9jYXRpb24gPSBA MjsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJOworCitsZXRfdGFyZ2V0OgorCQkJ Q29sSWQgb3B0X2luZGlyZWN0aW9uCisJCQkJeworCQkJCQkkJCA9IGxpc3RfbWFrZTEobWFrZVN0 cmluZygkMSkpOworCQkJCQlpZiAoJDIpCisJCQkJCQkgICQkID0gbGlzdF9jb25jYXQoJCQsCisJ CQkJCQkJCQkJICAgY2hlY2tfaW5kaXJlY3Rpb24oJDIsIHl5c2Nhbm5lcikpOworCQkJCX0KKwkJ OworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKgkJUVVFUlk6CkBAIC0xNzg0MCw2ICsx Nzg4Myw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgTEFSR0VfUAogCQkJfCBMQVNUX1AK IAkJCXwgTEVBS1BST09GCisJCQl8IExFVAogCQkJfCBMRVZFTAogCQkJfCBMSVNURU4KIAkJCXwg TE9BRApAQCAtMTg0NTEsNiArMTg0OTUsNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IExF QUtQUk9PRgogCQkJfCBMRUFTVAogCQkJfCBMRUZUCisJCQl8IExFVAogCQkJfCBMRVZFTAogCQkJ fCBMSUtFCiAJCQl8IExJU1RFTgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2FnZy5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCmluZGV4IDA0YjQ1OTZhNjUu Ljk4ODM5ZjEyNDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwor KysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKQEAgLTU4MCw2ICs1ODAsMTEgQEAg Y2hlY2tfYWdnbGV2ZWxzX2FuZF9jb25zdHJhaW50cyhQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUg KmV4cHIpCiAJCQllcnJraW5kID0gdHJ1ZTsKIAkJCWJyZWFrOwogCisJCWNhc2UgRVhQUl9LSU5E X0FTU0lHTl9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CisJCQllcnJraW5k ID0gdHJ1ZTsKKwkJCWJyZWFrOworCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9uYWxs eSBubyBkZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCiAJCQkgKiBjb21waWxlciB3aWxs IHdhcm4gaWYgd2UgYWRkIGEgbmV3IFBhcnNlRXhwcktpbmQgd2l0aG91dApAQCAtOTcwLDYgKzk3 NSwxMCBAQCB0cmFuc2Zvcm1XaW5kb3dGdW5jQ2FsbChQYXJzZVN0YXRlICpwc3RhdGUsIFdpbmRv d0Z1bmMgKndmdW5jLAogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgogCQkJZXJya2luZCA9 IHRydWU7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJY2Fz ZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKKwkJCWVycmtpbmQgPSB0cnVlOworCQkJYnJlYWs7CiAK IAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6IGNhc2UgaGVy ZSwgc28gdGhhdCB0aGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHBy LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IGMyODA2Mjk3YWEuLjNh MTA3MjQwYTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtMTcsNiArMTcsNyBAQAogCiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19hZ2dyZWdhdGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5 cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVz L21ha2VmdW5jcy5oIgpAQCAtMzMsMTEgKzM0LDEzIEBACiAjaW5jbHVkZSAicGFyc2VyL3BhcnNl X3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3RhcmdldC5oIgogI2luY2x1ZGUg InBhcnNlci9wYXJzZV90eXBlLmgiCisjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgiCiAjaW5jbHVk ZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9kYXRlLmgiCiAjaW5jbHVkZSAi dXRpbHMvZm1ncm9pZHMuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRl ICJ1dGlscy90aW1lc3RhbXAuaCIKKyNpbmNsdWRlICJ1dGlscy90eXBjYWNoZS5oIgogI2luY2x1 ZGUgInV0aWxzL3htbC5oIgogCiAvKiBHVUMgcGFyYW1ldGVycyAqLwpAQCAtMTA2LDYgKzEwOSw5 IEBAIHN0YXRpYyBFeHByICptYWtlX2Rpc3RpbmN0X29wKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlz dCAqb3BuYW1lLAogCQkJCQkJCSAgTm9kZSAqbHRyZWUsIE5vZGUgKnJ0cmVlLCBpbnQgbG9jYXRp b24pOwogc3RhdGljIE5vZGUgKm1ha2VfbnVsbHRlc3RfZnJvbV9kaXN0aW5jdChQYXJzZVN0YXRl ICpwc3RhdGUsCiAJCQkJCQkJCQkJIEFfRXhwciAqZGlzdGluY3RhLCBOb2RlICphcmcpOworc3Rh dGljIE5vZGUgKm1ha2VQYXJhbVNlc3Npb25WYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsCisJ CQkJCQkJCQkgIE9pZCB2YXJpZCwgT2lkIHR5cGlkLCBpbnQzMiB0eXBtb2QsIE9pZCBjb2xsaWQs CisJCQkJCQkJCQkgIGNoYXIgKmF0dHJuYW1lLCBpbnQgbG9jYXRpb24pOwogCiAKIC8qCkBAIC00 OTksNiArNTA1LDg5IEBAIHRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwg QV9JbmRpcmVjdGlvbiAqaW5kKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qCisgKiBSZXR1cm5z IHRydWUgaWYgdGhlIGdpdmVuIGV4cHJlc3Npb24ga2luZCBpcyB2YWxpZCBmb3Igc2Vzc2lvbiB2 YXJpYWJsZXMuCisgKiBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgdXNlZCBldmVyeXdoZXJlIHdo ZXJlIGV4dGVybmFsIHBhcmFtZXRlcnMgY2FuIGJlCisgKiB1c2VkLiAgU2Vzc2lvbiB2YXJpYWJs ZXMgYXJlIG5vdCBhbGxvd2VkIGluIERETCBjb21tYW5kcyBvciBpbiBjb25zdHJhaW50cy4KKyAq CisgKiBBbiBpZGVudGlmaWVyIGNhbiBiZSBwYXJzZWQgYXMgYSBzZXNzaW9uIHZhcmlhYmxlIG9u bHkgZm9yIGV4cHJlc3Npb24ga2luZHMKKyAqIHdoZXJlIHNlc3Npb24gdmFyaWFibGVzIGFyZSBh bGxvd2VkLiAgVGhpcyBpcyB0aGUgcHJpbWFyeSB1c2FnZSBvZiB0aGlzCisgKiBmdW5jdGlvbi4K KyAqCisgKiBUaGUgc2Vjb25kIHVzYWdlIG9mIHRoaXMgZnVuY3Rpb24gaXMgdG8gZGVjaWRlIHdo ZXRoZXIgYSAiY29sdW1uIGRvZXMgbm90CisgKiBleGlzdCIgb3IgYSAiY29sdW1uIG9yIHZhcmlh YmxlIGRvZXMgbm90IGV4aXN0IiBlcnJvciBtZXNzYWdlIHNob3VsZCBiZQorICogcHJpbnRlZC4g IFdoZW4gd2UgYXJlIGluIGFuIGV4cHJlc3Npb24gd2hlcmUgc2Vzc2lvbiB2YXJpYWJsZXMgY2Fu bm90IGJlCisgKiB1c2VkLCB3ZSByYWlzZSB0aGUgZmlyc3QgZm9ybSBvZiBlcnJvciBtZXNzYWdl LgorICovCitzdGF0aWMgYm9vbAorZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3ZhcmlhYmxlcyhQ YXJzZUV4cHJLaW5kIHBfZXhwcl9raW5kKQoreworCWJvb2wJCXJlc3VsdCA9IGZhbHNlOworCisJ c3dpdGNoIChwX2V4cHJfa2luZCkKKwl7CisJCWNhc2UgRVhQUl9LSU5EX05PTkU6CisJCQlBc3Nl cnQoZmFsc2UpOwkJLyogY2FuJ3QgaGFwcGVuICovCisJCQlyZXR1cm4gZmFsc2U7CisKKwkJLyog c2Vzc2lvbiB2YXJpYWJsZXMgYWxsb3dlZCAqLworCQljYXNlIEVYUFJfS0lORF9PVEhFUjoKKwkJ Y2FzZSBFWFBSX0tJTkRfSk9JTl9PTjoKKwkJY2FzZSBFWFBSX0tJTkRfRlJPTV9TVUJTRUxFQ1Q6 CisJCWNhc2UgRVhQUl9LSU5EX0ZST01fRlVOQ1RJT046CisJCWNhc2UgRVhQUl9LSU5EX1dIRVJF OgorCQljYXNlIEVYUFJfS0lORF9IQVZJTkc6CisJCWNhc2UgRVhQUl9LSU5EX0ZJTFRFUjoKKwkJ Y2FzZSBFWFBSX0tJTkRfV0lORE9XX1BBUlRJVElPTjoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9X X09SREVSOgorCQljYXNlIEVYUFJfS0lORF9XSU5ET1dfRlJBTUVfUkFOR0U6CisJCWNhc2UgRVhQ Ul9LSU5EX1dJTkRPV19GUkFNRV9ST1dTOgorCQljYXNlIEVYUFJfS0lORF9XSU5ET1dfRlJBTUVf R1JPVVBTOgorCQljYXNlIEVYUFJfS0lORF9TRUxFQ1RfVEFSR0VUOgorCQljYXNlIEVYUFJfS0lO RF9JTlNFUlRfVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9VUERBVEVfU09VUkNFOgorCQljYXNl IEVYUFJfS0lORF9VUERBVEVfVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9NRVJHRV9XSEVOOgor CQljYXNlIEVYUFJfS0lORF9NRVJHRV9SRVRVUk5JTkc6CisJCWNhc2UgRVhQUl9LSU5EX0dST1VQ X0JZOgorCQljYXNlIEVYUFJfS0lORF9PUkRFUl9CWToKKwkJY2FzZSBFWFBSX0tJTkRfRElTVElO Q1RfT046CisJCWNhc2UgRVhQUl9LSU5EX0xJTUlUOgorCQljYXNlIEVYUFJfS0lORF9PRkZTRVQ6 CisJCWNhc2UgRVhQUl9LSU5EX1JFVFVSTklORzoKKwkJY2FzZSBFWFBSX0tJTkRfVkFMVUVTOgor CQljYXNlIEVYUFJfS0lORF9WQUxVRVNfU0lOR0xFOgorCQljYXNlIEVYUFJfS0lORF9BTFRFUl9D T0xfVFJBTlNGT1JNOgorCQljYXNlIEVYUFJfS0lORF9FWEVDVVRFX1BBUkFNRVRFUjoKKwkJY2Fz ZSBFWFBSX0tJTkRfUE9MSUNZOgorCQljYXNlIEVYUFJfS0lORF9DQUxMX0FSR1VNRU5UOgorCQlj YXNlIEVYUFJfS0lORF9DT1BZX1dIRVJFOgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgor CQkJcmVzdWx0ID0gdHJ1ZTsKKwkJCWJyZWFrOworCisJCS8qIHNlc3Npb24gdmFyaWFibGVzIG5v dCBhbGxvd2VkICovCisJCWNhc2UgRVhQUl9LSU5EX0NIRUNLX0NPTlNUUkFJTlQ6CisJCWNhc2Ug RVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKKwkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6 CisJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX0lO REVYX0VYUFJFU1NJT046CisJCWNhc2UgRVhQUl9LSU5EX0lOREVYX1BSRURJQ0FURToKKwkJY2Fz ZSBFWFBSX0tJTkRfU1RBVFNfRVhQUkVTU0lPTjoKKwkJY2FzZSBFWFBSX0tJTkRfVFJJR0dFUl9X SEVOOgorCQljYXNlIEVYUFJfS0lORF9QQVJUSVRJT05fQk9VTkQ6CisJCWNhc2UgRVhQUl9LSU5E X1BBUlRJVElPTl9FWFBSRVNTSU9OOgorCQljYXNlIEVYUFJfS0lORF9HRU5FUkFURURfQ09MVU1O OgorCQljYXNlIEVYUFJfS0lORF9KT0lOX1VTSU5HOgorCQljYXNlIEVYUFJfS0lORF9DWUNMRV9N QVJLOgorCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQkJcmVzdWx0ID0gZmFsc2U7 CisJCQlicmVhazsKKwl9CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAvKgogICogVHJhbnNmb3Jt IGEgQ29sdW1uUmVmLgogICoKQEAgLTU3NSw2ICs2NjQsOCBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYo UGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJCWNhc2UgRVhQUl9LSU5EX0NP UFlfV0hFUkU6CiAJCWNhc2UgRVhQUl9LSU5EX0dFTkVSQVRFRF9DT0xVTU46CiAJCWNhc2UgRVhQ Ul9LSU5EX0NZQ0xFX01BUks6CisJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6CisJCWNh c2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CiAJCQkvKiBva2F5ICovCiAJCQlicmVhazsKIApAQCAt ODQ3LDggKzkzOCw2MSBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBD b2x1bW5SZWYgKmNyZWYpCiAJfQogCiAJLyoKLQkgKiBUaHJvdyBlcnJvciBpZiBubyB0cmFuc2xh dGlvbiBmb3VuZC4KKwkgKiBUaGVyZSBhcmUgY29udGV4dHMgd2hlcmUgc2Vzc2lvbiB2YXJpYWJs ZXMgYXJlIG5vdCBhbGxvd2VkLiAgV2UgZG9uJ3QKKwkgKiBuZWVkIHRvIGlkZW50aWZ5IHNlc3Np b24gdmFyaWFibGVzIGluIHN1Y2ggYSBjb250ZXh0LCBidXQgaWRlbnRpZnlpbmcKKwkgKiB0aGVt IGFsbG93cyB1cyB0byByYWlzZSBtZWFuaW5nZnVsIGVycm9yIG1lc3NhZ2VzIGxpa2UgInlvdSBj YW5ub3QgdXNlCisJICogc2Vzc2lvbiB2YXJpYWJsZXMgaGVyZSIuCiAJICovCisJaWYgKGV4cHJf a2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMocHN0YXRlLT5wX2V4cHJfa2luZCkpCisJewor CQlPaWQJCQl2YXJpZCA9IEludmFsaWRPaWQ7CisJCWNoYXIJICAgKmF0dHJuYW1lID0gTlVMTDsK KwkJYm9vbAkJbm90X3VuaXF1ZTsKKworCQkvKiAtLS0tLQorCQkgKiBTZXNzaW9uIHZhcmlhYmxl cyBhcmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGluZSB2YXJpYWJsZXMgb3IKKwkJICogcm91 dGluZSBhcmd1bWVudHMuICBXZSBjZXJ0YWlubHkgZG9uJ3Qgd2FudCB0byB1c2UgYSBzZXNzaW9u IHZhcmlhYmxlCisJCSAqIHdoZW4gaXQgaXMgZXhhY3RseSBzaGFkb3dlZCwgYnV0IGEgUlRFIGxp a2UgdGhpcyBpcyBjb25jZWl2YWJsZToKKwkJICoKKwkJICogQ1JFQVRFIFRZUEUgdCBBUyAoYyBp bnQpOworCQkgKiBDUkVBVEUgVkFSSUFCTEUgZm9vIEFTIHQ7CisJCSAqIENSRUFURSBUQUJMRSBm b28oYSBpbnQsIGIgaW50KTsKKwkJICoKKwkJICogU0VMRUNUIGZvby5hLCBmb28uYiwgZm9vLmMg RlJPTSBmb287CisJCSAqCisJCSAqIEhvd2V2ZXIsIHRoYXQgaXMgdmVyeSBjb25mdXNpbmcsIHNv IHdlIGRpc2FsbG93IGl0LiAgV2UgZG9uJ3QgdHJ5IHRvCisJCSAqIGlkZW50aWZ5IGEgdmFyaWFi bGUgaWYgd2Uga25vdyB0aGF0IGl0IHdvdWxkIGJlIHNoYWRvd2VkLgorCQkgKiAtLS0tLQorCQkg Ki8KKwkJaWYgKCFub2RlICYmICEocmVsbmFtZSAmJiBjcmVyciA9PSBDUkVSUl9OT19DT0xVTU4p KQorCQl7CisJCQkvKiB0YWtlcyBhbiBBY2Nlc3NTaGFyZUxvY2sgb24gdGhlIHNlc3Npb24gdmFy aWFibGUgKi8KKwkJCXZhcmlkID0gSWRlbnRpZnlWYXJpYWJsZShjcmVmLT5maWVsZHMsICZhdHRy bmFtZSwgJm5vdF91bmlxdWUsIGZhbHNlKTsKKworCQkJaWYgKE9pZElzVmFsaWQodmFyaWQpKQor CQkJeworCQkJCU9pZAkJCXR5cGlkOworCQkJCWludDMyCQl0eXBtb2Q7CisJCQkJT2lkCQkJY29s bGlkOworCisJCQkJaWYgKG5vdF91bmlxdWUpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJ KGVycmNvZGUoRVJSQ09ERV9BTUJJR1VPVVNfUEFSQU1FVEVSKSwKKwkJCQkJCQkgZXJybXNnKCJz ZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSBcIiVzXCIgaXMgYW1iaWd1b3VzIiwKKwkJCQkJCQkJ CU5hbWVMaXN0VG9TdHJpbmcoY3JlZi0+ZmllbGRzKSksCisJCQkJCQkJIHBhcnNlcl9lcnJwb3Np dGlvbihwc3RhdGUsIGNyZWYtPmxvY2F0aW9uKSkpOworCisJCQkJZ2V0X3Nlc3Npb25fdmFyaWFi bGVfdHlwZV90eXBtb2RfY29sbGlkKHZhcmlkLCAmdHlwaWQsICZ0eXBtb2QsCisJCQkJCQkJCQkJ CQkJCSZjb2xsaWQpOworCisJCQkJbm9kZSA9IG1ha2VQYXJhbVNlc3Npb25WYXJpYWJsZShwc3Rh dGUsCisJCQkJCQkJCQkJCQl2YXJpZCwgdHlwaWQsIHR5cG1vZCwgY29sbGlkLAorCQkJCQkJCQkJ CQkJYXR0cm5hbWUsIGNyZWYtPmxvY2F0aW9uKTsKKwkJCX0KKwkJfQorCX0KKworCS8qIHRocm93 IGFuIGVycm9yIGlmIG5vIHRyYW5zbGF0aW9uIHdhcyBmb3VuZCAqLwogCWlmIChub2RlID09IE5V TEwpCiAJewogCQlzd2l0Y2ggKGNyZXJyKQpAQCAtODgwLDYgKzEwMjQsNzUgQEAgdHJhbnNmb3Jt Q29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCXJldHVybiBu b2RlOwogfQogCisvKgorICogR2VuZXJhdGUgcGFyYW0gdmFyaWFibGUgZm9yIHJlZmVyZW5jZSB0 byBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3N0YXRpYyBOb2RlICoKK21ha2VQYXJhbVNlc3Npb25W YXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkgT2lkIHZhcmlkLCBPaWQgdHlwaWQs IGludDMyIHR5cG1vZCwgT2lkIGNvbGxpZCwKKwkJCQkJCSBjaGFyICphdHRybmFtZSwgaW50IGxv Y2F0aW9uKQoreworCVBhcmFtCSAgICpwYXJhbTsKKworCXBhcmFtID0gbWFrZU5vZGUoUGFyYW0p OworCisJcGFyYW0tPnBhcmFta2luZCA9IFBBUkFNX1ZBUklBQkxFOworCXBhcmFtLT5wYXJhbXZh cmlkID0gdmFyaWQ7CisJcGFyYW0tPnBhcmFtdHlwZSA9IHR5cGlkOworCXBhcmFtLT5wYXJhbXR5 cG1vZCA9IHR5cG1vZDsKKwlwYXJhbS0+cGFyYW1jb2xsaWQgPSBjb2xsaWQ7CisKKwlwc3RhdGUt PnBfaGFzU2Vzc2lvblZhcmlhYmxlcyA9IHRydWU7CisKKwlpZiAoYXR0cm5hbWUgIT0gTlVMTCkK Kwl7CisJCVR1cGxlRGVzYwl0dXBkZXNjOworCQlpbnQJCQlpOworCisJCXR1cGRlc2MgPSBsb29r dXBfcm93dHlwZV90dXBkZXNjX25vZXJyb3IodHlwaWQsIHR5cG1vZCwgdHJ1ZSk7CisJCWlmICgh dHVwZGVzYykKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdf T0JKRUNUX1RZUEUpLAorCQkJCQkgZXJybXNnKCJ2YXJpYWJsZSBcIiVzLiVzXCIgaXMgb2YgdHlw ZSBcIiVzXCIsIHdoaWNoIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlIiwKKwkJCQkJCQlnZXRfbmFt ZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJ CQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCksCisJCQkJCQkJZm9ybWF0X3R5cGVf YmUodHlwaWQpKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkp OworCisJCWZvciAoaSA9IDA7IGkgPCB0dXBkZXNjLT5uYXR0czsgaSsrKQorCQl7CisJCQlGb3Jt X3BnX2F0dHJpYnV0ZSBhdHQgPSBUdXBsZURlc2NBdHRyKHR1cGRlc2MsIGkpOworCisJCQlpZiAo c3RyY21wKGF0dHJuYW1lLCBOYW1lU3RyKGF0dC0+YXR0bmFtZSkpID09IDAgJiYKKwkJCQkhYXR0 LT5hdHRpc2Ryb3BwZWQpCisJCQl7CisJCQkJLyogc3VjY2Vzcywgc28gZ2VuZXJhdGUgYSBGaWVs ZFNlbGVjdCBleHByZXNzaW9uICovCisJCQkJRmllbGRTZWxlY3QgKmZzZWxlY3QgPSBtYWtlTm9k ZShGaWVsZFNlbGVjdCk7CisKKwkJCQlmc2VsZWN0LT5hcmcgPSAoRXhwciAqKSBwYXJhbTsKKwkJ CQlmc2VsZWN0LT5maWVsZG51bSA9IGkgKyAxOworCQkJCWZzZWxlY3QtPnJlc3VsdHR5cGUgPSBh dHQtPmF0dHR5cGlkOworCQkJCWZzZWxlY3QtPnJlc3VsdHR5cG1vZCA9IGF0dC0+YXR0dHlwbW9k OworCQkJCS8qIHNhdmUgYXR0cmlidXRlJ3MgY29sbGF0aW9uIGZvciBwYXJzZV9jb2xsYXRlLmMg Ki8KKwkJCQlmc2VsZWN0LT5yZXN1bHRjb2xsaWQgPSBhdHQtPmF0dGNvbGxhdGlvbjsKKworCQkJ CVJlbGVhc2VUdXBsZURlc2ModHVwZGVzYyk7CisJCQkJcmV0dXJuIChOb2RlICopIGZzZWxlY3Q7 CisJCQl9CisJCX0KKworCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfVU5E RUZJTkVEX0NPTFVNTiksCisJCQkJIGVycm1zZygiY291bGQgbm90IGlkZW50aWZ5IGNvbHVtbiBc IiVzXCIgaW4gdmFyaWFibGUgXCIlcy4lc1wiIiwKKwkJCQkJCWF0dHJuYW1lLAorCQkJCQkJZ2V0 X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAor CQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpLAorCQkJCSBwYXJzZXJfZXJy cG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKKwl9CisKKwlyZXR1cm4gKE5vZGUgKikgcGFy YW07Cit9CisKIHN0YXRpYyBOb2RlICoKIHRyYW5zZm9ybVBhcmFtUmVmKFBhcnNlU3RhdGUgKnBz dGF0ZSwgUGFyYW1SZWYgKnByZWYpCiB7CkBAIC0xODE1LDYgKzIwMjgsNyBAQCB0cmFuc2Zvcm1T dWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKIAkJY2FzZSBFWFBS X0tJTkRfVkFMVUVTOgogCQljYXNlIEVYUFJfS0lORF9WQUxVRVNfU0lOR0xFOgogCQljYXNlIEVY UFJfS0lORF9DWUNMRV9NQVJLOgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgogCQkJLyog b2theSAqLwogCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NIRUNLX0NPTlNUUkFJTlQ6CkBA IC0xODU4LDYgKzIwNzIsOSBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwg U3ViTGluayAqc3VibGluaykKIAkJY2FzZSBFWFBSX0tJTkRfR0VORVJBVEVEX0NPTFVNTjoKIAkJ CWVyciA9IF8oImNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVz c2lvbiIpOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6CisJCQll cnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGFzIHRhcmdldCBvZiBhc3NpZ24gc3RhdGVtZW50 Iik7CisJCQlicmVhazsKIAogCQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8g ZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQpAQCAtMzE5Nyw2ICszNDE0LDEwIEBAIFBh cnNlRXhwcktpbmROYW1lKFBhcnNlRXhwcktpbmQgZXhwcktpbmQpCiAJCQlyZXR1cm4gIkdFTkVS QVRFRCBBUyI7CiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCQlyZXR1cm4gIkNZQ0xF IjsKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJCXJldHVybiAiQVNTSUdOIjsK KwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKKwkJCXJldHVybiAiTEVUIjsKIAogCQkJLyoK IAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0 aGF0IHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKaW5kZXggOWIyMzM0NGEzYi4uOWFhNGY2MDc2 OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYworKysgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCkBAIC0yNjU2LDYgKzI2NTYsOCBAQCBjaGVja19z cmZfY2FsbF9wbGFjZW1lbnQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpsYXN0X3NyZiwgaW50 IGxvY2F0aW9uKQogCQkJZXJyID0gXygic2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBh bGxvd2VkIGluIGNvbHVtbiBnZW5lcmF0aW9uIGV4cHJlc3Npb25zIik7CiAJCQlicmVhazsKIAkJ Y2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdF VDoKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKIAkJCWVycmtpbmQgPSB0cnVlOwogCQkJ YnJlYWs7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvZGVzdC5jIGIvc3JjL2JhY2tl bmQvdGNvcC9kZXN0LmMKaW5kZXggOTZmODBiMzA0Ni4uZGFjNzhiYTVjYyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMKQEAg LTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJleGVjdXRvci9mdW5jdGlvbnMuaCIKICNpbmNsdWRl ICJleGVjdXRvci90cXVldWUuaCIKICNpbmNsdWRlICJleGVjdXRvci90c3RvcmVSZWNlaXZlci5o IgorI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAibGli cHEvbGlicHEuaCIKICNpbmNsdWRlICJsaWJwcS9wcWZvcm1hdC5oIgogCkBAIC0xNTUsNiArMTU2 LDkgQEAgQ3JlYXRlRGVzdFJlY2VpdmVyKENvbW1hbmREZXN0IGRlc3QpCiAKIAkJY2FzZSBEZXN0 RXhwbGFpblNlcmlhbGl6ZToKIAkJCXJldHVybiBDcmVhdGVFeHBsYWluU2VyaWFsaXplRGVzdFJl Y2VpdmVyKE5VTEwpOworCisJCWNhc2UgRGVzdFZhcmlhYmxlOgorCQkJcmV0dXJuIENyZWF0ZVZh cmlhYmxlRGVzdFJlY2VpdmVyKEludmFsaWRPaWQpOwogCX0KIAogCS8qIHNob3VsZCBuZXZlciBn ZXQgaGVyZSAqLwpAQCAtMTkxLDYgKzE5NSw3IEBAIEVuZENvbW1hbmQoY29uc3QgUXVlcnlDb21w bGV0aW9uICpxYywgQ29tbWFuZERlc3QgZGVzdCwgYm9vbCBmb3JjZV91bmRlY29yYXRlZF9vCiAJ CWNhc2UgRGVzdFRyYW5zaWVudFJlbDoKIAkJY2FzZSBEZXN0VHVwbGVRdWV1ZToKIAkJY2FzZSBE ZXN0RXhwbGFpblNlcmlhbGl6ZToKKwkJY2FzZSBEZXN0VmFyaWFibGU6CiAJCQlicmVhazsKIAl9 CiB9CkBAIC0yMzcsNiArMjQyLDcgQEAgTnVsbENvbW1hbmQoQ29tbWFuZERlc3QgZGVzdCkKIAkJ Y2FzZSBEZXN0VHJhbnNpZW50UmVsOgogCQljYXNlIERlc3RUdXBsZVF1ZXVlOgogCQljYXNlIERl c3RFeHBsYWluU2VyaWFsaXplOgorCQljYXNlIERlc3RWYXJpYWJsZToKIAkJCWJyZWFrOwogCX0K IH0KQEAgLTI4MSw2ICsyODcsNyBAQCBSZWFkeUZvclF1ZXJ5KENvbW1hbmREZXN0IGRlc3QpCiAJ CWNhc2UgRGVzdFRyYW5zaWVudFJlbDoKIAkJY2FzZSBEZXN0VHVwbGVRdWV1ZToKIAkJY2FzZSBE ZXN0RXhwbGFpblNlcmlhbGl6ZToKKwkJY2FzZSBEZXN0VmFyaWFibGU6CiAJCQlicmVhazsKIAl9 CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3BxdWVyeS5jIGIvc3JjL2JhY2tlbmQv dGNvcC9wcXVlcnkuYwppbmRleCA4OWQ3MDRkZjhkLi5mODQ1MzU5NDdiIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC90Y29wL3BxdWVyeS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMK QEAgLTg2LDYgKzg2LDkgQEAgQ3JlYXRlUXVlcnlEZXNjKFBsYW5uZWRTdG10ICpwbGFubmVkc3Rt dCwKIAlxZC0+cXVlcnlFbnYgPSBxdWVyeUVudjsKIAlxZC0+aW5zdHJ1bWVudF9vcHRpb25zID0g aW5zdHJ1bWVudF9vcHRpb25zOwkvKiBpbnN0cnVtZW50YXRpb24gd2FudGVkPyAqLwogCisJcWQt Pm51bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IDA7CisJcWQtPnNlc3Npb25fdmFyaWFibGVzID0gTlVM TDsKKwogCS8qIG51bGwgdGhlc2UgZmllbGRzIHVudGlsIHNldCBieSBFeGVjdXRvclN0YXJ0ICov CiAJcWQtPnR1cERlc2MgPSBOVUxMOwogCXFkLT5lc3RhdGUgPSBOVUxMOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwpp bmRleCA4ODE1MThiYmNhLi4xOWVjZjJlNDI1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29w L3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwpAQCAtNDksNiArNDks NyBAQAogI2luY2x1ZGUgImNvbW1hbmRzL3NjaGVtYWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5k cy9zZWNsYWJlbC5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNlLmgiCisjaW5jbHVkZSAi Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3N1YnNjcmlw dGlvbmNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZWNtZHMuaCIKICNpbmNsdWRlICJj b21tYW5kcy90YWJsZXNwYWNlLmgiCkBAIC0yMzUsNiArMjM2LDcgQEAgQ2xhc3NpZnlVdGlsaXR5 Q29tbWFuZEFzUmVhZE9ubHkoTm9kZSAqcGFyc2V0cmVlKQogCiAJCWNhc2UgVF9DYWxsU3RtdDoK IAkJY2FzZSBUX0RvU3RtdDoKKwkJY2FzZSBUX0xldFN0bXQ6CiAJCQl7CiAJCQkJLyoKIAkJCQkg KiBDb21tYW5kcyBpbnNpZGUgdGhlIERPIGJsb2NrIG9yIHRoZSBjYWxsZWQgcHJvY2VkdXJlIG1p Z2h0CkBAIC0xMDY3LDYgKzEwNjksMTEgQEAgc3RhbmRhcmRfUHJvY2Vzc1V0aWxpdHkoUGxhbm5l ZFN0bXQgKnBzdG10LAogCQkJCWJyZWFrOwogCQkJfQogCisJCWNhc2UgVF9MZXRTdG10OgorCQkJ RXhlY3V0ZUxldFN0bXQocHN0YXRlLCAoTGV0U3RtdCAqKSBwYXJzZXRyZWUsIHBhcmFtcywKKwkJ CQkJCSAgIHF1ZXJ5RW52LCBxYyk7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJLyogQWxs IG90aGVyIHN0YXRlbWVudCB0eXBlcyBoYXZlIGV2ZW50IHRyaWdnZXIgc3VwcG9ydCAqLwogCQkJ UHJvY2Vzc1V0aWxpdHlTbG93KHBzdGF0ZSwgcHN0bXQsIHF1ZXJ5U3RyaW5nLApAQCAtMjIwNiw2 ICsyMjEzLDEwIEBAIFV0aWxpdHlDb250YWluc1F1ZXJ5KE5vZGUgKnBhcnNldHJlZSkKIAkJCQly ZXR1cm4gVXRpbGl0eUNvbnRhaW5zUXVlcnkocXJ5LT51dGlsaXR5U3RtdCk7CiAJCQlyZXR1cm4g cXJ5OwogCisJCWNhc2UgVF9MZXRTdG10OgorCQkJcXJ5ID0gY2FzdE5vZGUoUXVlcnksICgoTGV0 U3RtdCAqKSBwYXJzZXRyZWUpLT5xdWVyeSk7CisJCQlyZXR1cm4gcXJ5OworCiAJCWRlZmF1bHQ6 CiAJCQlyZXR1cm4gTlVMTDsKIAl9CkBAIC0yNDA0LDYgKzI0MTUsMTAgQEAgQ3JlYXRlQ29tbWFu ZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQl0YWcgPSBDTURUQUdfU0VMRUNUOwogCQkJYnJlYWs7 CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQl0YWcgPSBDTURUQUdfTEVUOworCQkJYnJlYWs7CisK IAkJCS8qIHV0aWxpdHkgc3RhdGVtZW50cyAtLS0gc2FtZSB3aGV0aGVyIHJhdyBvciBjb29rZWQg Ki8KIAkJY2FzZSBUX1RyYW5zYWN0aW9uU3RtdDoKIAkJCXsKQEAgLTMyODksNiArMzMwNCw3IEBA IEdldENvbW1hbmRMb2dMZXZlbChOb2RlICpwYXJzZXRyZWUpCiAJCQlicmVhazsKIAogCQljYXNl IFRfUExBc3NpZ25TdG10OgorCQljYXNlIFRfTGV0U3RtdDoKIAkJCWxldiA9IExPR1NUTVRfQUxM OwogCQkJYnJlYWs7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRp bHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCBiZTFmMWY1MGI3 Li4zZTFlMWFlNzk4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxz LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCkBAIC0zNyw2ICszNyw3 IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdGF0aXN0aWNfZXh0LmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ190cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgog I2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJjb21tb24va2V5d29y ZHMuaCIKQEAgLTUyOCw2ICs1MjksNyBAQCBzdGF0aWMgY2hhciAqZ2VuZXJhdGVfZnVuY3Rpb25f bmFtZShPaWQgZnVuY2lkLCBpbnQgbmFyZ3MsCiBzdGF0aWMgY2hhciAqZ2VuZXJhdGVfb3BlcmF0 b3JfbmFtZShPaWQgb3BlcmlkLCBPaWQgYXJnMSwgT2lkIGFyZzIpOwogc3RhdGljIHZvaWQgYWRk X2Nhc3RfdG8oU3RyaW5nSW5mbyBidWYsIE9pZCB0eXBpZCk7CiBzdGF0aWMgY2hhciAqZ2VuZXJh dGVfcXVhbGlmaWVkX3R5cGVfbmFtZShPaWQgdHlwaWQpOworc3RhdGljIGNoYXIgKmdlbmVyYXRl X3Nlc3Npb25fdmFyaWFibGVfbmFtZShPaWQgdmFyaWQpOwogc3RhdGljIHRleHQgKnN0cmluZ190 b190ZXh0KGNoYXIgKnN0cik7CiBzdGF0aWMgY2hhciAqZmxhdHRlbl9yZWxvcHRpb25zKE9pZCBy ZWxpZCk7CiBzdGF0aWMgdm9pZCBnZXRfcmVsb3B0aW9ucyhTdHJpbmdJbmZvIGJ1ZiwgRGF0dW0g cmVsb3B0aW9ucyk7CkBAIC04NjI1LDYgKzg2MjcsMTQgQEAgZ2V0X3BhcmFtZXRlcihQYXJhbSAq cGFyYW0sIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKIAkJcmV0dXJuOwogCX0KIAorCS8qIHRy YW5zbGF0ZSBwYXJhbXZhcmlkIHRvIHNlc3Npb24gdmFyaWFibGUgbmFtZSAqLworCWlmIChwYXJh bS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCXsKKwkJYXBwZW5kU3RyaW5nSW5mbyhj b250ZXh0LT5idWYsICIlcyIsCisJCQkJCQkgZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KHBhcmFtLT5wYXJhbXZhcmlkKSk7CisJCXJldHVybjsKKwl9CisKIAkvKgogCSAqIEFsdGVybmF0 aXZlbHksIG1heWJlIGl0J3MgYSBzdWJwbGFuIG91dHB1dCwgd2hpY2ggd2UgcHJpbnQgYXMgYQog CSAqIHJlZmVyZW5jZSB0byB0aGUgc3VicGxhbi4gIChXZSBjb3VsZCBkcmlsbCBkb3duIGludG8g dGhlIHN1YnBsYW4gYW5kCkBAIC0xMzQwNyw2ICsxMzQxNyw0MiBAQCBnZW5lcmF0ZV9jb2xsYXRp b25fbmFtZShPaWQgY29sbGlkKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qCisgKiBnZW5lcmF0 ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUKKyAqCQlDb21wdXRlIHRoZSBuYW1lIHRvIGRpc3BsYXkg Zm9yIGEgc2Vzc2lvbiB2YXJpYWJsZSBzcGVjaWZpZWQgYnkgT0lECisgKgorICogVGhlIHJlc3Vs dCBpbmNsdWRlcyBhbGwgbmVjZXNzYXJ5IHF1b3RpbmcgYW5kIHNjaGVtYS1wcmVmaXhpbmcuCisg Ki8KK3N0YXRpYyBjaGFyICoKK2dlbmVyYXRlX3Nlc3Npb25fdmFyaWFibGVfbmFtZShPaWQgdmFy aWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisJY2hh cgkgICAqdmFybmFtZTsKKwljaGFyCSAgICpuc3BuYW1lOworCWNoYXIJICAgKnJlc3VsdDsKKwor CXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJp ZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNo ZSBsb29rdXAgZmFpbGVkIGZvciB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAo Rm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwl2YXJuYW1lID0gTmFtZVN0cih2 YXJmb3JtLT52YXJuYW1lKTsKKworCWlmICghVmFyaWFibGVJc1Zpc2libGUodmFyaWQpKQorCQlu c3BuYW1lID0gZ2V0X25hbWVzcGFjZV9uYW1lX29yX3RlbXAodmFyZm9ybS0+dmFybmFtZXNwYWNl KTsKKwllbHNlCisJCW5zcG5hbWUgPSBOVUxMOworCisJcmVzdWx0ID0gcXVvdGVfcXVhbGlmaWVk X2lkZW50aWZpZXIobnNwbmFtZSwgdmFybmFtZSk7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsK KworCXJldHVybiByZXN1bHQ7Cit9CisKIC8qCiAgKiBHaXZlbiBhIEMgc3RyaW5nLCBwcm9kdWNl IGEgVEVYVCBkYXR1bS4KICAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9w bGFuY2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCmluZGV4IGM2 NmEwODhmNDAuLmE5NmVjNjQzOWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hl L3BsYW5jYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCkBA IC01OCw2ICs1OCw3IEBACiAKICNpbmNsdWRlICJhY2Nlc3MvdHJhbnNhbS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgog I2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAj aW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCkBAIC0xNjIsNiArMTYzLDcgQEAgSW5pdFBsYW5D YWNoZSh2b2lkKQogCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKEFNT1BPUElELCBQbGFu Q2FjaGVTeXNDYWxsYmFjaywgKERhdHVtKSAwKTsKIAlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxs YmFjayhGT1JFSUdOU0VSVkVST0lELCBQbGFuQ2FjaGVTeXNDYWxsYmFjaywgKERhdHVtKSAwKTsK IAlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhGT1JFSUdOREFUQVdSQVBQRVJPSUQsIFBs YW5DYWNoZVN5c0NhbGxiYWNrLCAoRGF0dW0pIDApOworCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNh bGxiYWNrKFZBUklBQkxFT0lELCBQbGFuQ2FjaGVPYmplY3RDYWxsYmFjaywgKERhdHVtKSAwKTsK IH0KIAogLyoKQEAgLTE5MDMsMTcgKzE5MDUsMzIgQEAgU2NhblF1ZXJ5Rm9yTG9ja3MoUXVlcnkg KnBhcnNldHJlZSwgYm9vbCBhY3F1aXJlKQogCiAJLyoKIAkgKiBSZWN1cnNlIGludG8gc3VibGlu ayBzdWJxdWVyaWVzLCB0b28uICBCdXQgd2UgYWxyZWFkeSBkaWQgdGhlIG9uZXMgaW4KLQkgKiB0 aGUgcnRhYmxlIGFuZCBjdGVMaXN0LgorCSAqIHRoZSBydGFibGUgYW5kIGN0ZUxpc3QuICBXZSBu ZWVkIHRvIGZvcmNlIGEgcmVjdXJzaXZlIGNhbGwgZm9yIHNlc3Npb24KKwkgKiB2YXJpYWJsZXMg dG9vLCB0byBmaW5kIGFuZCBsb2NrIHZhcmlhYmxlcyB1c2VkIGluIHRoZSBxdWVyeSAoc2VlCisJ ICogU2NhblF1ZXJ5V2Fsa2VyKS4KIAkgKi8KLQlpZiAocGFyc2V0cmVlLT5oYXNTdWJMaW5rcykK KwlpZiAocGFyc2V0cmVlLT5oYXNTdWJMaW5rcyB8fAorCQlwYXJzZXRyZWUtPmhhc1Nlc3Npb25W YXJpYWJsZXMpCiAJewogCQlxdWVyeV90cmVlX3dhbGtlcihwYXJzZXRyZWUsIFNjYW5RdWVyeVdh bGtlciwgJmFjcXVpcmUsCiAJCQkJCQkgIFFUV19JR05PUkVfUkNfU1VCUVVFUklFUyk7CiAJfQor CisJLyogcHJvY2VzcyBzZXNzaW9uIHZhcmlhYmxlcyAqLworCWlmIChPaWRJc1ZhbGlkKHBhcnNl dHJlZS0+cmVzdWx0VmFyaWFibGUpKQorCXsKKwkJaWYgKGFjcXVpcmUpCisJCQlMb2NrRGF0YWJh c2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCBwYXJzZXRyZWUtPnJlc3VsdFZhcmlhYmxlLAor CQkJCQkJCSAgIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCWVsc2UKKwkJCVVubG9ja0RhdGFiYXNl T2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgcGFyc2V0cmVlLT5yZXN1bHRWYXJpYWJsZSwKKwkJ CQkJCQkJIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJfQogfQogCiAvKgotICogV2Fsa2VyIHRvIGZp bmQgc3VibGluayBzdWJxdWVyaWVzIGZvciBTY2FuUXVlcnlGb3JMb2NrcworICogV2Fsa2VyIHRv IGZpbmQgc3VibGluayBzdWJxdWVyaWVzIG9yIHJlZmVyZW5jZWQgc2Vzc2lvbiB2YXJpYWJsZXMK KyAqIGZvciBTY2FuUXVlcnlGb3JMb2NrcwogICovCiBzdGF0aWMgYm9vbAogU2NhblF1ZXJ5V2Fs a2VyKE5vZGUgKm5vZGUsIGJvb2wgKmFjcXVpcmUpCkBAIC0xOTI4LDYgKzE5NDUsMjAgQEAgU2Nh blF1ZXJ5V2Fsa2VyKE5vZGUgKm5vZGUsIGJvb2wgKmFjcXVpcmUpCiAJCVNjYW5RdWVyeUZvckxv Y2tzKGNhc3ROb2RlKFF1ZXJ5LCBzdWItPnN1YnNlbGVjdCksICphY3F1aXJlKTsKIAkJLyogRmFs bCB0aHJvdWdoIHRvIHByb2Nlc3MgbGVmdGhhbmQgYXJncyBvZiBTdWJMaW5rICovCiAJfQorCWVs c2UgaWYgKElzQShub2RlLCBQYXJhbSkpCisJeworCQlQYXJhbQkgICAqcCA9IChQYXJhbSAqKSBu b2RlOworCisJCWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJCXsKKwkJCWlm IChhY3F1aXJlKQorCQkJCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHAt PnBhcmFtdmFyaWQsCisJCQkJCQkJCSAgIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQllbHNlCisJ CQkJVW5sb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCBwLT5wYXJhbXZhcmlk LAorCQkJCQkJCQkJIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCX0KKwl9CiAKIAkvKgogCSAqIERv IE5PVCByZWN1cnNlIGludG8gUXVlcnkgbm9kZXMsIGJlY2F1c2UgU2NhblF1ZXJ5Rm9yTG9ja3Mg YWxyZWFkeQpAQCAtMjA1OCw3ICsyMDg5LDkgQEAgUGxhbkNhY2hlUmVsQ2FsbGJhY2soRGF0dW0g YXJnLCBPaWQgcmVsaWQpCiAKIC8qCiAgKiBQbGFuQ2FjaGVPYmplY3RDYWxsYmFjawotICoJCVN5 c2NhY2hlIGludmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBQUk9DT0lEIGFuZCBUWVBFT0lEIGNh Y2hlcworICoJCVN5c2NhY2hlIGludmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBUWVBFT0lELCBQ Uk9DT0lELCBOQU1FU1BBQ0VPSUQsCisgKgkJT1BFUk9JRCwgQU1PUE9QSUQsIEZPUkVJR05TRVJW RVJPSUQsIEZPUkVJR05EQVRBV1JBUFBFUk9JRCBhbmQKKyAqCQlWQVJJQUJMRU9JRCBjYWNoZXMu CiAgKgogICogSW52YWxpZGF0ZSBhbGwgcGxhbnMgbWVudGlvbmluZyB0aGUgb2JqZWN0IHdpdGgg dGhlIHNwZWNpZmllZCBoYXNoIHZhbHVlLAogICogb3IgYWxsIHBsYW5zIG1lbnRpb25pbmcgYW55 IG1lbWJlciBvZiB0aGlzIGNhY2hlIGlmIGhhc2h2YWx1ZSA9PSAwLgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMgYi9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3Iu YwppbmRleCBlNDhhODZiZTU0Li5lYWFlMGM1YTkzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91 dGlscy9mbWdyL2ZtZ3IuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYwpAQCAt MjAyNiw5ICsyMDI2LDEzIEBAIGdldF9jYWxsX2V4cHJfYXJnX3N0YWJsZShOb2RlICpleHByLCBp bnQgYXJnbnVtKQogCSAqLwogCWlmIChJc0EoYXJnLCBDb25zdCkpCiAJCXJldHVybiB0cnVlOwot CWlmIChJc0EoYXJnLCBQYXJhbSkgJiYKLQkJKChQYXJhbSAqKSBhcmcpLT5wYXJhbWtpbmQgPT0g UEFSQU1fRVhURVJOKQotCQlyZXR1cm4gdHJ1ZTsKKwlpZiAoSXNBKGFyZywgUGFyYW0pKQorCXsK KwkJUGFyYW0JICAgKnAgPSAoUGFyYW0gKikgYXJnOworCisJCWlmIChwLT5wYXJhbWtpbmQgPT0g UEFSQU1fRVhURVJOIHx8IHAtPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJCXJldHVy biB0cnVlOworCX0KIAogCXJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNx bC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRl eCA3ZDc2ODM0ZTY5Li43ZTQ0ZWM3MzU5IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0xMjE0 LDggKzEyMTQsOCBAQCBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgc3FsX2NvbW1hbmRzW10gPSB7 CiAJIkFCT1JUIiwgIkFMVEVSIiwgIkFOQUxZWkUiLCAiQkVHSU4iLCAiQ0FMTCIsICJDSEVDS1BP SU5UIiwgIkNMT1NFIiwgIkNMVVNURVIiLAogCSJDT01NRU5UIiwgIkNPTU1JVCIsICJDT1BZIiwg IkNSRUFURSIsICJERUFMTE9DQVRFIiwgIkRFQ0xBUkUiLAogCSJERUxFVEUgRlJPTSIsICJESVND QVJEIiwgIkRPIiwgIkRST1AiLCAiRU5EIiwgIkVYRUNVVEUiLCAiRVhQTEFJTiIsCi0JIkZFVENI IiwgIkdSQU5UIiwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsICJJTlNFUlQgSU5UTyIsICJMSVNU RU4iLCAiTE9BRCIsICJMT0NLIiwKLQkiTUVSR0UgSU5UTyIsICJNT1ZFIiwgIk5PVElGWSIsICJQ UkVQQVJFIiwKKwkiRkVUQ0giLCAiR1JBTlQiLCAiSU1QT1JUIEZPUkVJR04gU0NIRU1BIiwgIklO U0VSVCBJTlRPIiwgIkxFVCIsCisJIkxJU1RFTiIsICJMT0FEIiwgIkxPQ0siLCAiTUVSR0UgSU5U TyIsICJNT1ZFIiwgIk5PVElGWSIsICJQUkVQQVJFIiwKIAkiUkVBU1NJR04iLCAiUkVGUkVTSCBN QVRFUklBTElaRUQgVklFVyIsICJSRUlOREVYIiwgIlJFTEVBU0UiLAogCSJSRVNFVCIsICJSRVZP S0UiLCAiUk9MTEJBQ0siLAogCSJTQVZFUE9JTlQiLCAiU0VDVVJJVFkgTEFCRUwiLCAiU0VMRUNU IiwgIlNFVCIsICJTSE9XIiwgIlNUQVJUIiwKQEAgLTQ2NjAsNiArNDY2MCwxNCBAQCBtYXRjaF9w cmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiVkFM VUVTIikgJiYgIVRhaWxNYXRjaGVzKCJERUZBVUxUIiwgIlZBTFVFUyIpKQogCQlDT01QTEVURV9X SVRIKCIoIik7CiAKKy8qIExFVCAqLworCS8qIElmIHByZXYuIHdvcmQgaXMgTEVUIHN1Z2dlc3Qg YSBsaXN0IG9mIHZhcmlhYmxlcyAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkxFVCIpKQorCQlDT01Q TEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOworCS8q IENvbXBsZXRlIExFVCA8dmFyaWFibGU+IHdpdGggIj0iICovCisJZWxzZSBpZiAoVGFpbE1hdGNo ZXMoIkxFVCIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgiPSIpOworCiAvKiBMT0NLICov CiAJLyogQ29tcGxldGUgTE9DSyBbVEFCTEVdIFtPTkxZXSB3aXRoIGEgbGlzdCBvZiB0YWJsZXMg Ki8KIAllbHNlIGlmIChNYXRjaGVzKCJMT0NLIikpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j YXRhbG9nL25hbWVzcGFjZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaAppbmRl eCBjZmU5NjUxNDcxLi5jYzZkZDU5NThjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9n L25hbWVzcGFjZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKQEAgLTE3 NCw2ICsxNzQsNyBAQCBleHRlcm4gYm9vbCBTZWFyY2hQYXRoTWF0Y2hlc0N1cnJlbnRFbnZpcm9u bWVudChTZWFyY2hQYXRoTWF0Y2hlciAqcGF0aCk7CiBleHRlcm4gTGlzdCAqTmFtZXNGcm9tTGlz dChMaXN0ICpuYW1lcyk7CiBleHRlcm4gT2lkCUxvb2t1cFZhcmlhYmxlKGNvbnN0IGNoYXIgKm5z cG5hbWUsIGNvbnN0IGNoYXIgKnZhcm5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lk CUxvb2t1cFZhcmlhYmxlRnJvbU5hbWVMaXN0KExpc3QgKm5hbWVzLCBib29sIG1pc3Npbmdfb2sp OworZXh0ZXJuIE9pZAlJZGVudGlmeVZhcmlhYmxlKExpc3QgKm5hbWVzLCBjaGFyICoqYXR0cm5h bWUsIGJvb2wgKm5vdF91bmlxdWUsIGJvb2wgbm9lcnJvcik7CiAKIGV4dGVybiBPaWQJZ2V0X2Nv bGxhdGlvbl9vaWQoTGlzdCAqY29sbG5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lk CWdldF9jb252ZXJzaW9uX29pZChMaXN0ICpjb25uYW1lLCBib29sIG1pc3Npbmdfb2spOwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ192YXJpYWJsZS5oCmluZGV4IDM4MTBlMDQwZjIuLmRiNThlNmFjMDEgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKQEAgLTE4LDYgKzE4LDcgQEAKICNpZm5kZWYgUEdfVkFS SUFCTEVfSAogI2RlZmluZSBQR19WQVJJQUJMRV9ICiAKKyNpbmNsdWRlICJhY2Nlc3MveGxvZ2Rl ZnMuaCIKICNpbmNsdWRlICJjYXRhbG9nL2dlbmJraS5oIgogI2luY2x1ZGUgImNhdGFsb2cvb2Jq ZWN0YWRkcmVzcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGVfZC5oIgpAQCAtMzUs NiArMzYsMTQgQEAgQ0FUQUxPRyhwZ192YXJpYWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkK IAkvKiBPSUQgb2YgZW50cnkgaW4gcGdfdHlwZSBmb3IgdmFyaWFibGUncyB0eXBlICovCiAJT2lk CQkJdmFydHlwZSBCS0lfTE9PS1VQKHBnX3R5cGUpOwogCisJLyoKKwkgKiBVc2VkIGZvciBpZGVu dGl0eSBjaGVjayBbb2lkLCBjcmVhdGVfbHNuXS4KKwkgKgorCSAqIFRoaXMgY29sdW1uIG9mIHRo ZSA4LWJ5dGUgWGxvZ1JlY1B0ciB0eXBlIHNob3VsZCBiZSBhdCBhbiBhZGRyZXNzIHRoYXQKKwkg KiBpcyBkaXZpc2libGUgYnkgOCwgYnV0IGJlZm9yZSBhbnkgY29sdW1uIG9mIHR5cGUgTmFtZURh dGEuCisJICovCisJWExvZ1JlY1B0cgl2YXJjcmVhdGVfbHNuOworCiAJLyogdmFyaWFibGUgbmFt ZSAqLwogCU5hbWVEYXRhCXZhcm5hbWU7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi45M2JiYzZhNWNl Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5oCkBAIC0wLDAgKzEsMzEgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHNlc3Npb252 YXJpYWJsZS5oCisgKgkgIHByb3RvdHlwZXMgZm9yIHNlc3Npb252YXJpYWJsZS5jLgorICoKKyAq CisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwg RGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50 cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKwor I2lmbmRlZiBTRVNTSU9OVkFSSUFCTEVfSAorI2RlZmluZSBTRVNTSU9OVkFSSUFCTEVfSAorCisj aW5jbHVkZSAibm9kZXMvcGFyYW1zLmgiCisjaW5jbHVkZSAibm9kZXMvcGFyc2Vub2Rlcy5oIgor I2luY2x1ZGUgInBhcnNlci9wYXJzZV9ub2RlLmgiCisjaW5jbHVkZSAidGNvcC9jbWR0YWcuaCIK KyNpbmNsdWRlICJ1dGlscy9xdWVyeWVudmlyb25tZW50LmgiCisKK2V4dGVybiB2b2lkIFNldFNl c3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCk7CitleHRl cm4gRGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsLCBPaWQg KnR5cGlkKTsKK2V4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlwZUNoZWNrKE9p ZCB2YXJpZCwgYm9vbCAqaXNOdWxsLCBPaWQgZXhwZWN0ZWRfdHlwaWQpOworCitleHRlcm4gdm9p ZCBFeGVjdXRlTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQsIFBhcmFt TGlzdEluZm8gcGFyYW1zLAorCQkJCQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYsIFF1 ZXJ5Q29tcGxldGlvbiAqcWMpOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4 ZWN1dG9yL2V4ZWNkZXNjLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjZGVzYy5oCmluZGV4 IDc5ZThiNjMxMTEuLmZlMWFiMDc2MGYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9y L2V4ZWNkZXNjLmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaApAQCAtNTEs NiArNTEsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgUXVlcnlEZXNjCiAJLyogVGhpcyBmaWVsZCBpcyBz ZXQgYnkgRXhlY3V0ZVBsYW4gKi8KIAlib29sCQlhbHJlYWR5X2V4ZWN1dGVkOwkvKiB0cnVlIGlm IHByZXZpb3VzbHkgZXhlY3V0ZWQgKi8KIAorCS8qIHJlZmVyZW5jZSB0byBzZXNzaW9uIHZhcmlh YmxlcyBidWZmZXIgKi8KKwlpbnQJCQludW1fc2Vzc2lvbl92YXJpYWJsZXM7CisJU2Vzc2lvblZh cmlhYmxlVmFsdWUgKnNlc3Npb25fdmFyaWFibGVzOworCiAJLyogVGhpcyBpcyBhbHdheXMgc2V0 IE5VTEwgYnkgdGhlIGNvcmUgc3lzdGVtLCBidXQgcGx1Z2lucyBjYW4gY2hhbmdlIGl0ICovCiAJ c3RydWN0IEluc3RydW1lbnRhdGlvbiAqdG90YWx0aW1lOwkvKiB0b3RhbCB0aW1lIHNwZW50IGlu IEV4ZWN1dG9yUnVuICovCiB9IFF1ZXJ5RGVzYzsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4 ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFi bGVSZWNlaXZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmRiNDRk OGI5NGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVS ZWNlaXZlci5oCkBAIC0wLDAgKzEsMjIgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHN2 YXJpYWJsZVJlY2VpdmVyLmgKKyAqCSAgcHJvdG90eXBlcyBmb3Igc3ZhcmlhYmxlUmVjZWl2ZXIu YworICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNR TCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5 NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2lu Y2x1ZGUvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaAorICoKKyAqLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICovCisKKyNpZm5kZWYgU1ZBUklBQkxFX1JFQ0VJVkVSX0gKKyNkZWZpbmUgU1ZBUklBQkxF X1JFQ0VJVkVSX0gKKworI2luY2x1ZGUgInRjb3AvZGVzdC5oIgorCitleHRlcm4gRGVzdFJlY2Vp dmVyICpDcmVhdGVWYXJpYWJsZURlc3RSZWNlaXZlcihPaWQgdmFyaWQpOworCisjZW5kaWYJCQkJ CQkJLyogU1ZBUklBQkxFX1JFQ0VJVkVSX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25v ZGVzL2V4ZWNub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggMTU5 MGI2NDM5Mi4uZGYxN2VjNDZiMyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25v ZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKQEAgLTYxNyw2ICs2MTcs MTggQEAgdHlwZWRlZiBzdHJ1Y3QgQXN5bmNSZXF1ZXN0CiAJCQkJCQkJCSAqIHR1cGxlcykgKi8K IH0gQXN5bmNSZXF1ZXN0OwogCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKiBTZXNzaW9uVmFyaWFi bGVWYWx1ZQorICogLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBTZXNzaW9u VmFyaWFibGVWYWx1ZQoreworCU9pZAkJCXZhcmlkOworCU9pZAkJCXR5cGlkOworCWJvb2wJCWlz bnVsbDsKKwlEYXR1bQkJdmFsdWU7Cit9IFNlc3Npb25WYXJpYWJsZVZhbHVlOworCiAvKiAtLS0t LS0tLS0tLS0tLS0tCiAgKgkgIEVTdGF0ZSBpbmZvcm1hdGlvbgogICoKQEAgLTY2OSw2ICs2ODEs MTAgQEAgdHlwZWRlZiBzdHJ1Y3QgRVN0YXRlCiAJUGFyYW1MaXN0SW5mbyBlc19wYXJhbV9saXN0 X2luZm87CS8qIHZhbHVlcyBvZiBleHRlcm5hbCBwYXJhbXMgKi8KIAlQYXJhbUV4ZWNEYXRhICpl c19wYXJhbV9leGVjX3ZhbHM7CS8qIHZhbHVlcyBvZiBpbnRlcm5hbCBwYXJhbXMgKi8KIAorCS8q IFNlc3Npb24gdmFyaWFibGVzIGluZm86ICovCisJaW50CQkJZXNfbnVtX3Nlc3Npb25fdmFyaWFi bGVzOwkJLyogbnVtYmVyIG9mIHVzZWQgdmFyaWFibGVzICovCisJU2Vzc2lvblZhcmlhYmxlVmFs dWUgKmVzX3Nlc3Npb25fdmFyaWFibGVzOwkvKiBhcnJheSBvZiBjb3BpZXMgb2YgdmFsdWVzICov CisKIAlRdWVyeUVudmlyb25tZW50ICplc19xdWVyeUVudjsJLyogcXVlcnkgZW52aXJvbm1lbnQg Ki8KIAogCS8qIE90aGVyIHdvcmtpbmcgc3RhdGU6ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5k ZXggMGUwODI5NmI0My4uMjg0ZDAxMWM5NCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMTQy LDYgKzE0Miw5IEBAIHR5cGVkZWYgc3RydWN0IFF1ZXJ5CiAJICovCiAJaW50CQkJcmVzdWx0UmVs YXRpb24gcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCisJLyogdGFyZ2V0IHZh cmlhYmxlIG9mIExFVCBzdGF0ZW1lbnQgKi8KKwlPaWQJCQlyZXN1bHRWYXJpYWJsZTsKKwogCS8q IGhhcyBhZ2dyZWdhdGVzIGluIHRsaXN0IG9yIGhhdmluZ1F1YWwgKi8KIAlib29sCQloYXNBZ2dz IHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiBoYXMgd2luZG93IGZ1bmN0 aW9ucyBpbiB0bGlzdCAqLwpAQCAtMTYyLDYgKzE2NSw4IEBAIHR5cGVkZWYgc3RydWN0IFF1ZXJ5 CiAJYm9vbAkJaGFzUm93U2VjdXJpdHkgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUp OwogCS8qIHBhcnNlciBoYXMgYWRkZWQgYW4gUlRFX0dST1VQIFJURSAqLwogCWJvb2wJCWhhc0dy b3VwUlRFIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKKwkvKiB1c2VzIHNlc3Np b24gdmFyaWFibGVzICovCisJYm9vbAkJaGFzU2Vzc2lvblZhcmlhYmxlcyBwZ19ub2RlX2F0dHIo cXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogaXMgYSBSRVRVUk4gc3RhdGVtZW50ICovCiAJYm9v bAkJaXNSZXR1cm4gcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCkBAIC0yMTAw LDYgKzIxMDUsMTggQEAgdHlwZWRlZiBzdHJ1Y3QgTWVyZ2VTdG10CiAJUGFyc2VMb2MJc3RtdF9s ZW47CQkvKiBsZW5ndGggaW4gYnl0ZXM7IDAgbWVhbnMgInJlc3Qgb2Ygc3RyaW5nIiAqLwogfSBN ZXJnZVN0bXQ7CiAKKy8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCQlMZXQgU3RhdGVtZW50 CisgKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IExldFN0bXQK K3sKKwlOb2RlVGFnCQl0eXBlOworCUxpc3QJICAgKnRhcmdldDsJCQkvKiB0YXJnZXQgdmFyaWFi bGUgKi8KKwlOb2RlCSAgICpxdWVyeTsJCQkvKiBzb3VyY2UgZXhwcmVzc2lvbiAqLworCVBhcnNl TG9jCWxvY2F0aW9uOworfSBMZXRTdG10OworCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg KgkJU2VsZWN0IFN0YXRlbWVudAogICoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3Bh dGhub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKaW5kZXggNTg3NDhkMmNh Ni4uY2MwMjNhNTA2ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgK KysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKQEAgLTE2Myw2ICsxNjMsMTUgQEAg dHlwZWRlZiBzdHJ1Y3QgUGxhbm5lckdsb2JhbAogCiAJLyogcGFydGl0aW9uIGRlc2NyaXB0b3Jz ICovCiAJUGFydGl0aW9uRGlyZWN0b3J5IHBhcnRpdGlvbl9kaXJlY3RvcnkgcGdfbm9kZV9hdHRy KHJlYWRfd3JpdGVfaWdub3JlKTsKKworCS8qIGxpc3Qgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxl cyAqLworCUxpc3QJICAgKnNlc3Npb25WYXJpYWJsZXM7CisKKwkvKiBvaWQgb2Ygc2Vzc2lvbiB2 YXJpYWJsZSB1c2VkIGxpa2UgYmFzZSBub2RlIGZvciBhc3NpZ25tZW50IGluZGlyZWN0aW9uICov CisJT2lkCQkJYmFzZW5vZGVTZXNzaW9uVmFyaWQ7CisKKwkvKiBzZXQgb2Ygc2Vzc2lvbiB2YXJp YWJsZXMgd2hlcmUgZXhlY3V0ZSBwZXJtaXNzaW9uIGNoZWNrIGlzIHJlcXVpcmVkICovCisJQml0 bWFwc2V0ICpjaGVja1NlbGVjdFBlcm1WYXJpZHM7CiB9IFBsYW5uZXJHbG9iYWw7CiAKIC8qIG1h Y3JvIGZvciBmZXRjaGluZyB0aGUgUGxhbiBhc3NvY2lhdGVkIHdpdGggYSBTdWJQbGFuIG5vZGUg Ki8KQEAgLTUwOCw2ICs1MTcsOCBAQCBzdHJ1Y3QgUGxhbm5lckluZm8KIAlib29sCQlwbGFjZWhv bGRlcnNGcm96ZW47CiAJLyogdHJ1ZSBpZiBwbGFubmluZyBhIHJlY3Vyc2l2ZSBXSVRIIGl0ZW0g Ki8KIAlib29sCQloYXNSZWN1cnNpb247CisJLyogdHJ1ZSBpZiBzZXNzaW9uIHZhcmlhYmxlcyB3 ZXJlIHVzZWQgKi8KKwlib29sCQloYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJLyoKIAkgKiBUaGUg cmFuZ2V0YWJsZSBpbmRleCBmb3IgdGhlIFJURV9HUk9VUCBSVEUsIG9yIDAgaWYgdGhlcmUgaXMg bm8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcGxhbm5vZGVzLmgKaW5kZXggNDYzMzEyMTY4OS4uOTI1YWMwYmQ0MSAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcGxhbm5vZGVzLmgKQEAgLTk0LDYgKzk0LDE1IEBAIHR5cGVkZWYgc3RydWN0IFBsYW5uZWRT dG10CiAKIAlOb2RlCSAgICp1dGlsaXR5U3RtdDsJLyogbm9uLW51bGwgaWYgdGhpcyBpcyB1dGls aXR5IHN0bXQgKi8KIAorCUxpc3QJICAgKnNlc3Npb25WYXJpYWJsZXM7CS8qIE9JRHMgZm9yIFBB UkFNX1ZBUklBQkxFIFBhcmFtcyAqLworCisJLyoKKwkgKiBUaGUgb2lkIG9mIHNlc3Npb24gdmFy aWFibGUgZXhlY2x1ZWQgZnJvbSBwZXJtaXNzaW9uIGNoZWNrLgorCSAqIEl0IGNhbiBiZSBpZCBv ZiBzZXNzaW9uIHZhcmlhYmxlIHVzZWQgbGlrZSBiYXNlIG5vZGUgb2YgYXNzaWdubWVudAorCSAq IGluZGlyZWN0aW9uIGlmIHRoaXMgdmFyaWFibGUgaXMgdXNlZCBvbmx5IHRoZXJlLgorCSAqLwor CU9pZAkJCWV4Y2xTZWxlY3RQZXJtQ2hlY2tWYXJpZDsKKwogCS8qIHN0YXRlbWVudCBsb2NhdGlv biBpbiBzb3VyY2Ugc3RyaW5nIChjb3BpZWQgZnJvbSBRdWVyeSkgKi8KIAlQYXJzZUxvYwlzdG10 X2xvY2F0aW9uOwkvKiBzdGFydCBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLwogCVBhcnNl TG9jCXN0bXRfbGVuOwkJLyogbGVuZ3RoIGluIGJ5dGVzOyAwIG1lYW5zICJyZXN0IG9mIHN0cmlu ZyIgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2lu Y2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggYjBlZjE5NTJlOC4uNGRmZmIwMzE1YSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUv bm9kZXMvcHJpbW5vZGVzLmgKQEAgLTM2MSw2ICszNjEsOSBAQCB0eXBlZGVmIHN0cnVjdCBDb25z dAogICoJCQkJb2YgdGhlIGBwYXJhbWlkJyBmaWVsZCBjb250YWluIHRoZSBTdWJMaW5rJ3Mgc3Vi TGlua0lkLCBhbmQKICAqCQkJCXRoZSBsb3ctb3JkZXIgMTYgYml0cyBjb250YWluIHRoZSBjb2x1 bW4gbnVtYmVyLiAgKFRoaXMgdHlwZQogICoJCQkJb2YgUGFyYW0gaXMgYWxzbyBjb252ZXJ0ZWQg dG8gUEFSQU1fRVhFQyBkdXJpbmcgcGxhbm5pbmcuKQorICoKKyAqCQlQQVJBTV9WQVJJQUJMRTog IFRoZSBwYXJhbWV0ZXIgaXMgYSByZWZlcmVuY2UgdG8gYSBzZXNzaW9uIHZhcmlhYmxlCisgKgkJ CQkocGFyYW1pZCBob2xkcyB0aGUgdmFyaWFibGUncyBPSUQpLgogICovCiB0eXBlZGVmIGVudW0g UGFyYW1LaW5kCiB7CkBAIC0zNjgsNiArMzcxLDcgQEAgdHlwZWRlZiBlbnVtIFBhcmFtS2luZAog CVBBUkFNX0VYRUMsCiAJUEFSQU1fU1VCTElOSywKIAlQQVJBTV9NVUxUSUVYUFIsCisJUEFSQU1f VkFSSUFCTEUsCiB9IFBhcmFtS2luZDsKIAogdHlwZWRlZiBzdHJ1Y3QgUGFyYW0KQEAgLTM4MCw2 ICszODQsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgUGFyYW0KIAlpbnQzMgkJcGFyYW10eXBtb2QgcGdf bm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIE9JRCBvZiBjb2xsYXRpb24sIG9y IEludmFsaWRPaWQgaWYgbm9uZSAqLwogCU9pZAkJCXBhcmFtY29sbGlkIHBnX25vZGVfYXR0cihx dWVyeV9qdW1ibGVfaWdub3JlKTsKKwkvKiBPSUQgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpZiBpdCBp cyB1c2VkICovCisJT2lkCQkJcGFyYW12YXJpZDsKKwkvKiB0cnVlIHdoZW4gcGFyYW0gaXMgdXNl ZCBsaWtlIGJhc2Ugbm9kZSBvZiBhc3NpZ25tZW50IGluZGlyZWN0aW9uICovCisJYm9vbAkJcGFy YW1iYXNlbm9kZTsKIAkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLwogCVBh cnNlTG9jCWxvY2F0aW9uOwogfSBQYXJhbTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL29wdGlt aXplci9wbGFubWFpbi5oIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmgKaW5kZXgg MGI2ZjBmNzk2OS4uMzkyOGUzM2E5NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1pemVy L3BsYW5tYWluLmgKKysrIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmgKQEAgLTEy NSw0ICsxMjUsNiBAQCBleHRlcm4gdm9pZCByZWNvcmRfcGxhbl9mdW5jdGlvbl9kZXBlbmRlbmN5 KFBsYW5uZXJJbmZvICpyb290LCBPaWQgZnVuY2lkKTsKIGV4dGVybiB2b2lkIHJlY29yZF9wbGFu X3R5cGVfZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9vdCwgT2lkIHR5cGlkKTsKIGV4dGVybiBi b29sIGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVy SW5mbyAqY29udGV4dCk7CiAKK2V4dGVybiB2b2lkIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFi bGVzKFBsYW5uZXJJbmZvICpyb290KTsKKwogI2VuZGlmCQkJCQkJCS8qIFBMQU5NQUlOX0ggKi8K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3Bh cnNlci9rd2xpc3QuaAppbmRleCA1NjY3MGU2NWIxLi5hZWZlNTFmMzM1IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlz dC5oCkBAIC0yNTYsNiArMjU2LDcgQEAgUEdfS0VZV09SRCgibGVhZGluZyIsIExFQURJTkcsIFJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZWFrcHJvb2YiLCBMRUFL UFJPT0YsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxlYXN0 IiwgTEVBU1QsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZWZ0 IiwgTEVGVCwgVFlQRV9GVU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQo ImxldCIsIExFVCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi bGV2ZWwiLCBMRVZFTCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09S RCgibGlrZSIsIExJS0UsIFRZUEVfRlVOQ19OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19L RVlXT1JEKCJsaW1pdCIsIExJTUlULCBSRVNFUlZFRF9LRVlXT1JELCBBU19MQUJFTCkKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJz ZXIvcGFyc2Vfbm9kZS5oCmluZGV4IDIzNzVlOTVjMTAuLmMxMWZkYjNkOTcgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2Vy L3BhcnNlX25vZGUuaApAQCAtODIsNiArODIsOCBAQCB0eXBlZGVmIGVudW0gUGFyc2VFeHByS2lu ZAogCUVYUFJfS0lORF9DT1BZX1dIRVJFLAkJLyogV0hFUkUgY29uZGl0aW9uIGluIENPUFkgRlJP TSAqLwogCUVYUFJfS0lORF9HRU5FUkFURURfQ09MVU1OLCAvKiBnZW5lcmF0aW9uIGV4cHJlc3Np b24gZm9yIGEgY29sdW1uICovCiAJRVhQUl9LSU5EX0NZQ0xFX01BUkssCQkvKiBjeWNsZSBtYXJr IHZhbHVlICovCisJRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQsCS8qIFBML3BnU1FMIGFzc2lnbm1l bnQgdGFyZ2V0ICovCisJRVhQUl9LSU5EX0xFVF9UQVJHRVQsCQkvKiBMRVQgdGFyZ2V0ICovCiB9 IFBhcnNlRXhwcktpbmQ7CiAKIApAQCAtMjQ0LDYgKzI0Niw3IEBAIHN0cnVjdCBQYXJzZVN0YXRl CiAJYm9vbAkJcF9oYXNUYXJnZXRTUkZzOwogCWJvb2wJCXBfaGFzU3ViTGlua3M7CiAJYm9vbAkJ cF9oYXNNb2RpZnlpbmdDVEU7CisJYm9vbAkJcF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJTm9k ZQkgICAqcF9sYXN0X3NyZjsJCS8qIG1vc3QgcmVjZW50IHNldC1yZXR1cm5pbmcgZnVuYy9vcCBm b3VuZCAqLwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCBiL3Ny Yy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCmluZGV4IDk0NjVkZjdiMmYuLmE5MjFhZjI0ODYg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBiL3NyYy9pbmNs dWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC0xODYsNiArMTg2LDcgQEAgUEdfQ01EVEFHKENNRFRB R19HUkFOVCwgIkdSQU5UIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19H UkFOVF9ST0xFLCAiR1JBTlQgUk9MRSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUco Q01EVEFHX0lNUE9SVF9GT1JFSUdOX1NDSEVNQSwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsIHRy dWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfSU5TRVJULCAiSU5TRVJUIiwgZmFs c2UsIGZhbHNlLCB0cnVlKQorUEdfQ01EVEFHKENNRFRBR19MRVQsICJMRVQiLCBmYWxzZSwgZmFs c2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19MSVNURU4sICJMSVNURU4iLCBmYWxzZSwgZmFs c2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19MT0FELCAiTE9BRCIsIGZhbHNlLCBmYWxzZSwg ZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0xPQ0tfVEFCTEUsICJMT0NLIFRBQkxFIiwgZmFsc2Us IGZhbHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvZGVzdC5oIGIvc3Jj L2luY2x1ZGUvdGNvcC9kZXN0LmgKaW5kZXggYTNkNTIxYjZmOS4uMzhjYzg3ZjRlNyAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9kZXN0 LmgKQEAgLTk3LDYgKzk3LDcgQEAgdHlwZWRlZiBlbnVtCiAJRGVzdFRyYW5zaWVudFJlbCwJCQkv KiByZXN1bHRzIHNlbnQgdG8gdHJhbnNpZW50IHJlbGF0aW9uICovCiAJRGVzdFR1cGxlUXVldWUs CQkJCS8qIHJlc3VsdHMgc2VudCB0byB0dXBsZSBxdWV1ZSAqLwogCURlc3RFeHBsYWluU2VyaWFs aXplLAkJLyogcmVzdWx0cyBhcmUgc2VyaWFsaXplZCBhbmQgZGlzY2FyZGVkICovCisJRGVzdFZh cmlhYmxlLAkJCQkvKiByZXN1bHRzIHNlbnQgdG8gc2Vzc2lvbiB2YXJpYWJsZSAqLwogfSBDb21t YW5kRGVzdDsKIAogLyogLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdz cWwvc3JjL3BsX2V4ZWMuYyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKaW5kZXggZTMx MjA2ZTdmNC4uOGI1ZGYxZDViNyAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4 ZWMuYworKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCkBAIC04MDk5LDcgKzgwOTks OCBAQCBleGVjX2lzX3NpbXBsZV9xdWVyeShQTHBnU1FMX2V4cHIgKmV4cHIpCiAJCXF1ZXJ5LT5z b3J0Q2xhdXNlIHx8CiAJCXF1ZXJ5LT5saW1pdE9mZnNldCB8fAogCQlxdWVyeS0+bGltaXRDb3Vu dCB8fAotCQlxdWVyeS0+c2V0T3BlcmF0aW9ucykKKwkJcXVlcnktPnNldE9wZXJhdGlvbnMgfHwK KwkJcXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJCXJldHVybiBmYWxzZTsKIAogCS8qCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4 IDkyMDFkYTRlMmIuLjlmNzUxMjhjNDIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0zNTMsMyArMzUzLDEwNTYgQEAgRFJPUCBWQVJJ QUJMRSBwdWJsaWMudmFyMTsKIERST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IxOwogRFJPUCBS T0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CiBEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25l cjsKKy0tIGNoZWNrIGFjY2VzcyByaWdodHMKK0NSRUFURSBST0xFIHJlZ3Jlc3Nfbm9vd25lcjsK K0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9O IHNxbGZ4KGludCkKK1JFVFVSTlMgaW50IEFTICQkIFNFTEVDVCAkMSArIHZhcjEgJCQgTEFOR1VB R0Ugc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZnhfc2QoaW50KQorUkVUVVJO UyBpbnQgQVMgJCQgU0VMRUNUICQxICsgdmFyMSAkJCBMQU5HVUFHRSBzcWwgU0VDVVJJVFkgREVG SU5FUjsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHBscGdzcWxmeChpbnQpCitSRVRVUk5T IGludCBBUyAkJCBCRUdJTiBSRVRVUk4gJDEgKyB2YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3Nx bDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHBscGdzcWxmeF9zZChpbnQpCitSRVRVUk5T IGludCBBUyAkJCBCRUdJTiBSRVRVUk4gJDEgKyB2YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3Nx bCBTRUNVUklUWSBERUZJTkVSOworTEVUIHZhcjEgPSAxMDsKKy0tIHNob3VsZCBiZSBvaworU0VM RUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworU0VMRUNUIHNxbGZ4 KDIwKTsKKyBzcWxmeCAKKy0tLS0tLS0KKyAgICAzMAorKDEgcm93KQorCitTRUxFQ1Qgc3FsZnhf c2QoMjApOworIHNxbGZ4X3NkIAorLS0tLS0tLS0tLQorICAgICAgIDMwCisoMSByb3cpCisKK1NF TEVDVCBwbHBnc3FsZngoMjApOworIHBscGdzcWxmeCAKKy0tLS0tLS0tLS0tCisgICAgICAgIDMw CisoMSByb3cpCisKK1NFTEVDVCBwbHBnc3FsZnhfc2QoMjApOworIHBscGdzcWxmeF9zZCAKKy0t LS0tLS0tLS0tLS0tCisgICAgICAgICAgIDMwCisoMSByb3cpCisKKy0tIHNob3VsZCBmYWlsCitT RVQgUk9MRSBUTyByZWdyZXNzX25vb3duZXI7CitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgcGVybWlz c2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorU0VMRUNUIHNxbGZ4KDIwKTsK K0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorQ09O VEVYVDogIFNRTCBmdW5jdGlvbiAic3FsZngiIHN0YXRlbWVudCAxCitTRUxFQ1QgcGxwZ3NxbGZ4 KDIwKTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFy MQorQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gIiQxICsgdmFyMSIKK1BML3BnU1FMIGZ1 bmN0aW9uIHBscGdzcWxmeChpbnRlZ2VyKSBsaW5lIDEgYXQgUkVUVVJOCistLSBzaG91bGQgYmUg b2sKK1NFTEVDVCBzcWxmeF9zZCgyMCk7Cisgc3FsZnhfc2QgCistLS0tLS0tLS0tCisgICAgICAg MzAKKygxIHJvdykKKworU0VMRUNUIHBscGdzcWxmeF9zZCgyMCk7CisgcGxwZ3NxbGZ4X3NkIAor LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMzAKKygxIHJvdykKKworU0VUIFJPTEUgVE8gREVG QVVMVDsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3Nfbm9vd25lcjsK Ky0tIHNob3VsZCBiZSBvaworU0VUIFJPTEUgVE8gcmVncmVzc19ub293bmVyOworU0VMRUNUIHZh cjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworU0VMRUNUIHNxbGZ4KDIwKTsK KyBzcWxmeCAKKy0tLS0tLS0KKyAgICAzMAorKDEgcm93KQorCitTRUxFQ1QgcGxwZ3NxbGZ4KDIw KTsKKyBwbHBnc3FsZnggCistLS0tLS0tLS0tLQorICAgICAgICAzMAorKDEgcm93KQorCitTRVQg Uk9MRSBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiBzcWxm eChpbnQpOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngoaW50KTsKK0RST1AgRlVOQ1RJT04gc3Fs Znhfc2QoaW50KTsKK0RST1AgRlVOQ1RJT04gcGxwZ3NxbGZ4X3NkKGludCk7CitEUk9QIFJPTEUg cmVncmVzc19ub293bmVyOworLS0gdXNlIHZhcmlhYmxlcyBpbnNpZGUgdmlld3MKK0NSRUFURSBW QVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7CistLSB1c2UgdmFyaWFibGVzIGluIHZpZXdzCitDUkVB VEUgVklFVyB0ZXN0X3ZpZXcgQVMgU0VMRUNUIENPQUxFU0NFKHZhcjEgKyB2LCAwKSBBUyByZXN1 bHQgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwyKSBnKHYpOworU0VMRUNUICogRlJPTSB0ZXN0X3Zp ZXc7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgICAgIDAKKyAgICAgIDAKKygyIHJvd3MpCisKK0xF VCB2YXIxID0gMy4xNDsKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworIHJlc3VsdCAKKy0tLS0t LS0tCisgICA0LjE0CisgICA1LjE0CisoMiByb3dzKQorCistLSBzdGFydCBhIG5ldyBzZXNzaW9u CitcYworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgICAg IDAKKyAgICAgIDAKKygyIHJvd3MpCisKK0xFVCB2YXIxID0gMy4xNDsKK1NFTEVDVCAqIEZST00g dGVzdF92aWV3OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICA0LjE0CisgICA1LjE0CisoMiByb3dz KQorCistLSBzaG91bGQgZmFpbCwgZGVwZW5kZW5jeQorRFJPUCBWQVJJQUJMRSB2YXIxOworRVJS T1I6ICBjYW5ub3QgZHJvcCBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgYmVjYXVzZSBvdGhlciBvYmpl Y3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgdmlldyB0ZXN0X3ZpZXcgZGVwZW5kcyBvbiBzZXNz aW9uIHZhcmlhYmxlIHZhcjEKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRo ZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCistLSBzaG91bGQgYmUgb2sKK0RST1AgVkFSSUFCTEUg dmFyMSBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byB2aWV3IHRlc3Rfdmlldwor Q1JFQVRFIFZBUklBQkxFIHZhcjEgdGV4dDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIHRleHQ7Cist LSB1c2UgdmFyaWFibGVzIGluIFNRTCBmdW5jdGlvbnMKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNU SU9OIHNxbGZ4MSh2YXJjaGFyKQorUkVUVVJOUyB2YXJjaGFyIEFTICQkIFNFTEVDVCB2YXIxIHx8 ICcsICcgfHwgJDEgJCQgTEFOR1VBR0Ugc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04g c3FsZngyKCB2YXJjaGFyKQorUkVUVVJOUyB2YXJjaGFyIEFTICQkIFNFTEVDVCB2YXIyIHx8ICcs ICcgfHwgJDEgJCQgTEFOR1VBR0Ugc3FsOworTEVUIHZhcjEgPSAnc3RyMSc7CitMRVQgdmFyMiA9 ICdzdHIyJzsKK1NFTEVDVCBzcWxmeDEoc3FsZngyKCdIZWxsbycpKTsKKyAgICAgIHNxbGZ4MSAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyBzdHIxLCBzdHIyLCBIZWxsbworKDEgcm93KQor CistLSBpbmxpbmluZyBpcyBibG9ja2VkCitFWFBMQUlOIChDT1NUUyBPRkYsIFZFUkJPU0UpIFNF TEVDVCBzcWxmeDEoc3FsZngyKCdIZWxsbycpKTsKKyAgICAgICAgICAgICAgICAgICAgICBRVUVS WSBQTEFOICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgUmVzdWx0CisgICBPdXRwdXQ6IHNxbGZ4MShz cWxmeDIoJ0hlbGxvJzo6Y2hhcmFjdGVyIHZhcnlpbmcpKQorKDIgcm93cykKKworRFJPUCBGVU5D VElPTiBzcWxmeDEodmFyY2hhcik7CitEUk9QIEZVTkNUSU9OIHNxbGZ4Mih2YXJjaGFyKTsKK0RS T1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVkFSSUFCTEUgdmFyMjsKKy0tIGFjY2VzcyBmcm9tIGNh Y2hlZCBwbGFucyBzaG91bGQgd29yaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpYzsK K0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIG51bWVyaWM7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5D VElPTiBwbHBnc3FsZngoKQorUkVUVVJOUyBudW1lcmljIEFTICQkIEJFR0lOIFJFVFVSTiB2YXIx OyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHBs cGdzcWxmeDIobnVtZXJpYykKK1JFVFVSTlMgdm9pZCBBUyAkJCBCRUdJTiBMRVQgdmFyMiA9ICQx OyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK1NFVCBwbGFuX2NhY2hlX21vZGUgVE8gZm9yY2Vf Z2VuZXJpY19wbGFuOworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUIHBscGdzcWxmeCgpOworIHBs cGdzcWxmeCAKKy0tLS0tLS0tLS0tCisgICAgICAzLjE0CisoMSByb3cpCisKK0xFVCB2YXIxID0g My4xNCAqIDI7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CisgcGxwZ3NxbGZ4IAorLS0tLS0tLS0tLS0K KyAgICAgIDYuMjgKKygxIHJvdykKKworU0VMRUNUIHBscGdzcWxmeDIoMTAuMCk7CisgcGxwZ3Nx bGZ4MiAKKy0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgdmFyMjsKKyB2YXIyIAor LS0tLS0tCisgMTAuMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZBUklB QkxFIHZhcjI7CistLSBkZXBlbmRlbmN5IChwbGFuIGludmFsaWRhdGlvbikgc2hvdWxkIHdvcmsK K0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBB UyBudW1lcmljOworTEVUIHZhcjEgPSAzLjE0ICogMzsKK1NFTEVDVCBwbHBnc3FsZngoKTsKKyBw bHBnc3FsZnggCistLS0tLS0tLS0tLQorICAgICAgOS40MgorKDEgcm93KQorCitMRVQgdmFyMSA9 IDMuMTQgKiA0OworU0VMRUNUIHBscGdzcWxmeCgpOworIHBscGdzcWxmeCAKKy0tLS0tLS0tLS0t CisgICAgIDEyLjU2CisoMSByb3cpCisKK1NFTEVDVCBwbHBnc3FsZngyKDEwLjApOworIHBscGdz cWxmeDIgCistLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHZhcjI7CisgdmFyMiAK Ky0tLS0tLQorIDEwLjAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJ QUJMRSB2YXIyOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngoKTsKK0RST1AgRlVOQ1RJT04gcGxw Z3NxbGZ4MigpOworRVJST1I6ICBmdW5jdGlvbiBwbHBnc3FsZngyKCkgZG9lcyBub3QgZXhpc3QK K1NFVCBwbGFuX2NhY2hlX21vZGUgVE8gREVGQVVMVDsKKy0tIHVzYWdlIExFVCBzdGF0ZW1lbnQg aW4gcGxwZ3NxbCBzaG91bGQgd29yaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgaW50OworQ1JFQVRF IFZBUklBQkxFIHZhcjIgbnVtZXJpY1tdOworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIyID0gJ3t9 Jzo6aW50W107CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9IGk7Cisg ICAgTEVUIHZhcjJbdmFyMV0gPSBpOworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9USUNFICdyZXN1 bHQgYXJyYXk6ICUnLCB2YXIyOworRU5EOworJCQ7CitOT1RJQ0U6ICByZXN1bHQgYXJyYXk6IHsx LDIsMyw0LDUsNiw3LDgsOSwxMH0KK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVkFSSUFCTEUg dmFyMjsKKy0tIENBTEwgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0CistLSByZXF1aXJl cyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1 dG9yCitDUkVBVEUgVkFSSUFCTEUgdiBpbnQ7CitDUkVBVEUgUFJPQ0VEVVJFIHAoYXJnIGludCkg QVMgJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgYXJnOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3Nx bDsKKy0tIHNob3VsZCBub3QgY3Jhc2ggKGJ1dCBpcyBub3Qgc3VwcG9ydGVkIHlldCkKK0NBTEwg cCh2KTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1 bWVudAorRE8gJCQgQkVHSU4gQ0FMTCBwKHYpOyBFTkQgJCQ7CitFUlJPUjogIHNlc3Npb24gdmFy aWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQKK0NPTlRFWFQ6ICBTUUwgc3RhdGVt ZW50ICJDQUxMIHAodikiCitQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5l IDEgYXQgQ0FMTAorRFJPUCBQUk9DRURVUkUgcChpbnQpOworRFJPUCBWQVJJQUJMRSB2OworLS0g RVhFQ1VURSBzdGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRlZCB5ZXQKKy0tIHJlcXVpcmVzIGRpcmVj dCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IKK0NS RUFURSBWQVJJQUJMRSB2IGludDsKK0xFVCB2ID0gMjA7CitQUkVQQVJFIHB0ZXN0KGludCkgQVMg U0VMRUNUICQxOworLS0gc2hvdWxkIGZhaWwKK0VYRUNVVEUgcHRlc3Qodik7CitFUlJPUjogIHNl c3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQKK0RFQUxMT0NBVEUg cHRlc3Q7CitEUk9QIFZBUklBQkxFIHY7CistLSB0ZXN0IHNlYXJjaCBwYXRoCitDUkVBVEUgU0NI RU1BIHN2YXJ0ZXN0OworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgbnVtZXJpYzsK Ky0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IHBpKCk7CitFUlJPUjogIHNlc3Npb24gdmFyaWFi bGUgInZhcjEiIGRvZXNuJ3QgZXhpc3QKK0xJTkUgMTogTEVUIHZhcjEgPSBwaSgpOworICAgICAg ICAgICAgXgorU0VMRUNUIHZhcjE7CitFUlJPUjogIGNvbHVtbiAidmFyMSIgZG9lcyBub3QgZXhp c3QKK0xJTkUgMTogU0VMRUNUIHZhcjE7CisgICAgICAgICAgICAgICBeCistLSBzaG91bGQgYmUg b2sKK0xFVCBzdmFydGVzdC52YXIxID0gcGkoKTsKK1NFTEVDVCBzdmFydGVzdC52YXIxOworICAg ICAgIHZhcjEgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0KKyAzLjE0MTU5MjY1MzU4OTc5Ciso MSByb3cpCisKK1NFVCBzZWFyY2hfcGF0aCBUTyBzdmFydGVzdDsKKy0tIHNob3VsZCBiZSBvawor TEVUIHZhcjEgPSBwaSgpICsgMTA7CitTRUxFQ1QgdmFyMTsKKyAgICAgICB2YXIxICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tCisgMTMuMTQxNTkyNjUzNTg5OAorKDEgcm93KQorCitSRVNFVCBz ZWFyY2hfcGF0aDsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0IENBU0NBREU7CitOT1RJQ0U6ICBkcm9w IGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgc3ZhcnRlc3QudmFyMQorQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgdGV4dDsKKy0tIHZhcmlhYmxlcyBjYW4gYmUgdXBkYXRlZCB1bmRlciBSTyB0 cmFuc2FjdGlvbgorQkVHSU47CitTRVQgVFJBTlNBQ1RJT04gUkVBRCBPTkxZOworTEVUIHZhcjEg PSAnaGVsbG8nOworQ09NTUlUOworU0VMRUNUIHZhcjE7CisgdmFyMSAgCistLS0tLS0tCisgaGVs bG8KKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gdGVzdCBvZiBkb21haW5zCitD UkVBVEUgRE9NQUlOIGludF9kb21haW4gQVMgaW50IE5PVCBOVUxMIENIRUNLIChWQUxVRSA+IDEw MCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnRfZG9tYWluOworLS0gc2hvdWxkIGZhaWwK K1NFTEVDVCB2YXIxOworRVJST1I6ICBkb21haW4gaW50X2RvbWFpbiBkb2VzIG5vdCBhbGxvdyBu dWxsIHZhbHVlcworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwMDA7CitTRUxFQ1QgdmFy MTsKKyB2YXIxIAorLS0tLS0tCisgMTAwMAorKDEgcm93KQorCistLSBzaG91bGQgZmFpbAorTEVU IHZhcjEgPSAxMDsKK0VSUk9SOiAgdmFsdWUgZm9yIGRvbWFpbiBpbnRfZG9tYWluIHZpb2xhdGVz IGNoZWNrIGNvbnN0cmFpbnQgImludF9kb21haW5fY2hlY2siCistLSBzaG91bGQgZmFpbAorTEVU IHZhcjEgPSBOVUxMOworRVJST1I6ICBkb21haW4gaW50X2RvbWFpbiBkb2VzIG5vdCBhbGxvdyBu dWxsIHZhbHVlcworLS0gbm90ZSAtIGRvbWFpbiBkZWZhdWx0cyBhcmUgbm90IHN1cHBvcnRlZCB5 ZXQgKGxpa2UgUExwZ1NRTCkKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRE9NQUlOIGludF9k b21haW47CistLSB0aGUgZXhwcmVzc2lvbiBzaG91bGQgcmVtYWluICJ1bmtub3duIgorQ1JFQVRF IFZBUklBQkxFIHZhcjEgQVMgaW50NG11bHRpcmFuZ2VbXTsKKy0tIHNob3VsZCBiZSBvaworTEVU IHZhcjEgPSBOVUxMOworTEVUIHZhcjEgPSAneyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUsOCksWzEy LDE0KX0ifSc7CitMRVQgdmFyMVsyXSA9ICd7WzUsOCksWzEyLDEwMCl9JzsKK1NFTEVDVCB2YXIx OworICAgICAgICAgICAgICAgICAgdmFyMSAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsie1syLDgpLFsxMSwxNCl9Iiwie1s1LDgp LFsxMiwxMDApfSJ9CisoMSByb3cpCisKKy0tSXQgc2hvdWxkIHdvcmsgaW4gcGxwZ3NxbCB0b28K K0RPICQkCitCRUdJTgorICBMRVQgdmFyMSA9IE5VTEw7CisgIExFVCB2YXIxID0gJ3sie1syLDgp LFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwxNCl9In0nOworICBMRVQgdmFyMVsyXSA9ICd7WzUsOCks WzEyLDEwMCl9JzsKKworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CitOT1RJ Q0U6ICB7IntbMiw4KSxbMTEsMTQpfSIsIntbNSw4KSxbMTIsMTAwKX0ifQorRFJPUCBWQVJJQUJM RSB2YXIxOworQ1JFQVRFIFNDSEVNQSBzdmFydGVzdCBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBp bnQgQ1JFQVRFIFRBQkxFIGZvbyhhIGludCk7CitMRVQgc3ZhcnRlc3QudmFyMSA9IDEwMDsKK1NF TEVDVCBzdmFydGVzdC52YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK1NF VCBzZWFyY2hfcGF0aCB0byBwdWJsaWMsIHN2YXJ0ZXN0OworU0VMRUNUIHZhcjE7CisgdmFyMSAK Ky0tLS0tLQorICAxMDAKKygxIHJvdykKKworRFJPUCBTQ0hFTUEgc3ZhcnRlc3QgQ0FTQ0FERTsK K05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gMiBvdGhlciBvYmplY3RzCitERVRBSUw6ICBkcm9w IGNhc2NhZGVzIHRvIHRhYmxlIGZvbworZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxl IHZhcjEKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIy IEFTIGludFtdOworTEVUIHZhcjEgPSAyOworTEVUIHZhcjIgPSAne30nOjppbnRbXTsKK0xFVCB2 YXIyW3ZhcjFdID0gMDsKK1NFTEVDVCB2YXIyOworICAgdmFyMiAgICAKKy0tLS0tLS0tLS0tCisg WzI6Ml09ezB9CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMSwgdmFyMjsKK0NSRUFURSBW QVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGludFtdOworTEVU IHZhcjEgPSAyOworTEVUIHZhcjIgPSAne30nOjppbnRbXTsKK1NFTEVDVCB2YXIyOworIHZhcjIg CistLS0tLS0KKyB7fQorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7CistLSB0 aGUgTEVUIHN0YXRlbWVudCBzaG91bGQgYmUgZGlzYWxsb3dlZCBpbiBDVEUKK0NSRUFURSBWQVJJ QUJMRSB2YXIxIEFTIGludDsKK1dJVEggeCBBUyAoTEVUIHZhcjEgPSAxMDApIFNFTEVDVCAqIEZS T00geDsKK0VSUk9SOiAgc3ludGF4IGVycm9yIGF0IG9yIG5lYXIgIkxFVCIKK0xJTkUgMTogV0lU SCB4IEFTIChMRVQgdmFyMSA9IDEwMCkgU0VMRUNUICogRlJPTSB4OworICAgICAgICAgICAgICAg ICAgIF4KKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwgMSk7 CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwgMik7CitFUlJP UjogIGV4cHJlc3Npb24gcmV0dXJuZWQgbW9yZSB0aGFuIG9uZSByb3cKK0xFVCB2YXIxID0gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDApOworRVJST1I6ICBleHByZXNzaW9uIHJldHVybmVkIG5vIHJvd3MK K0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIGNvbXBvc2l0ZSB2YXJpYWJsZXMKK0NSRUFURSBUWVBF IHN2X3h5eiBBUyAoeCBpbnQsIHkgaW50LCB6IG51bWVyaWMoMTAsMikpOworQ1JFQVRFIFZBUklB QkxFIHYxIEFTIHN2X3h5ejsKK0NSRUFURSBWQVJJQUJMRSB2MiBBUyBzdl94eXo7CitMRVQgdjEg PSAoMSwgMiwgMy4xNCk7CitMRVQgdjIgPSAoMTAsIDIwLCAzLjE0ICogMTApOworLS0gc2hvdWxk IHdvcmsgdG9vIC0gdGhlcmUgYXJlIHByZXBhcmVkIGNhc3RzCitMRVQgdjEgPSAoMSwgMiwgMyk7 CitTRUxFQ1QgdjE7CisgICAgIHYxICAgICAKKy0tLS0tLS0tLS0tLQorICgxLDIsMy4wMCkKKygx IHJvdykKKworU0VMRUNUIHYyOworICAgICAgdjIgICAgICAgCistLS0tLS0tLS0tLS0tLS0KKyAo MTAsMjAsMzEuNDApCisoMSByb3cpCisKK1NFTEVDVCAodjEpLio7CisgeCB8IHkgfCAgeiAgIAor LS0tKy0tLSstLS0tLS0KKyAxIHwgMiB8IDMuMDAKKygxIHJvdykKKworU0VMRUNUICh2MikuKjsK KyB4ICB8IHkgIHwgICB6ICAgCistLS0tKy0tLS0rLS0tLS0tLQorIDEwIHwgMjAgfCAzMS40MAor KDEgcm93KQorCitTRUxFQ1QgdjEueCArIHYxLno7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisg ICAgIDQuMDAKKygxIHJvdykKKworU0VMRUNUIHYyLnggKyB2Mi56OworID9jb2x1bW4/IAorLS0t LS0tLS0tLQorICAgIDQxLjQwCisoMSByb3cpCisKKy0tIGFjY2VzcyB0byBjb21wb3NpdGUgZmll bGRzIHNob3VsZCBiZSBzYWZlIHRvbworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfdGVzdF9yb2xl OworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfdGVzdF9yb2xlOworLS0gc2hvdWxkIGZhaWwKK1NF TEVDVCB2Mi54OworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJs ZSB2MgorU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgVkFSSUFCTEUgdjE7CitEUk9QIFZBUklB QkxFIHYyOworRFJPUCBUWVBFIHN2X3h5ejsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl90ZXN0X3Jv bGU7CitDUkVBVEUgVFlQRSB0MSBBUyAoYSBpbnQsIGIgbnVtZXJpYywgYyB0ZXh0KTsKK0NSRUFU RSBWQVJJQUJMRSB2MSBBUyB0MTsKK0xFVCB2MSA9ICgxLCBwaSgpLCAnaGVsbG8nKTsKK1NFTEVD VCB2MTsKKyAgICAgICAgICAgICB2MSAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAoMSwzLjE0MTU5MjY1MzU4OTc5LGhlbGxvKQorKDEgcm93KQorCitMRVQgdjEu YiA9IDEwLjIyMjI7CitTRUxFQ1QgdjE7CisgICAgICAgIHYxICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tCisgKDEsMTAuMjIyMixoZWxsbykKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWws IGF0dHJpYnV0ZSBkb2Vzbid0IGV4aXN0CitMRVQgdjEueCA9IDEwOworRVJST1I6ICBjYW5ub3Qg YXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gInYxIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1 Y2ggY29sdW1uIGluIGRhdGEgdHlwZSB0MQorTElORSAxOiBMRVQgdjEueCA9IDEwOworICAgICAg ICAgICAgXgorLS0gc2hvdWxkIGZhaWwsIGRvbid0IGFsbG93IG11bHRpIGNvbHVtbiBxdWVyeQor TEVUIHYxID0gKE5VTEw6OnQxKS4qOworRVJST1I6ICBhc3NpZ25tZW50IGV4cHJlc3Npb24gcmV0 dXJuZWQgMyBjb2x1bW5zCitMSU5FIDE6IExFVCB2MSA9IChOVUxMOjp0MSkuKjsKKyAgICAgICAg ICAgICAgICAgIF4KKy0tIGFsbG93IERST1Agb3IgQUREIEFUVFJJQlVURSBvbiBjb21wb3NpdGUg dHlwZXMKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBEUk9QIEFUVFJJQlVURSBjOwor U0VMRUNUIHYxOworICAgICB2MSAgICAgIAorLS0tLS0tLS0tLS0tLQorICgxLDEwLjIyMjIpCiso MSByb3cpCisKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBBREQgQVRUUklCVVRFIGMg aW50OworU0VMRUNUIHYxOworICAgICAgdjEgICAgICAKKy0tLS0tLS0tLS0tLS0tCisgKDEsMTAu MjIyMiwpCisoMSByb3cpCisKK0xFVCB2MSA9ICgxMCwgMTAuMywgMjApOworU0VMRUNUIHYxOwor ICAgICAgdjEgICAgICAKKy0tLS0tLS0tLS0tLS0tCisgKDEwLDEwLjMsMjApCisoMSByb3cpCisK Ky0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBEUk9QIEFUVFJJQlVURSBiOworU0VMRUNU IHYxOworICAgdjEgICAgCistLS0tLS0tLS0KKyAoMTAsMjApCisoMSByb3cpCisKKy0tIHNob3Vs ZCBmYWlsLCBkaXNhbGxvdyBkYXRhIHR5cGUgY2hhbmdlCitBTFRFUiBUWVBFIHQxIEFMVEVSIEFU VFJJQlVURSBjIFRZUEUgaW50OworRVJST1I6ICBjYW5ub3QgYWx0ZXIgdHlwZSAidDEiIGJlY2F1 c2Ugc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnYxIiB1c2VzIGl0CitEUk9QIFZBUklBQkxFIHYx OworRFJPUCBUWVBFIHQxOworLS0gdGhlIHRhYmxlIHR5cGUgY2FuIGJlIHVzZWQgYXMgY29tcG9z aXRlIHR5cGUgdG9vCitDUkVBVEUgVEFCTEUgc3Zhcl90ZXN0KGEgaW50LCBiIG51bWVyaWMsIGMg ZGF0ZSk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBzdmFyX3Rlc3Q7CitMRVQgdmFyMSA9ICgx MCwgcGkoKSwgJzIwMjMtMDUtMjYnKTsKK1NFTEVDVCB2YXIxOworICAgICAgICAgICAgICAgdmFy MSAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICgx MCwzLjE0MTU5MjY1MzU4OTc5LDA1LTI2LTIwMjMpCisoMSByb3cpCisKKy0tIHNob3VsZCBmYWls IGR1ZSBkZXBlbmRlbmN5CitBTFRFUiBUQUJMRSBzdmFyX3Rlc3QgQUxURVIgQ09MVU1OIGEgVFlQ RSB0ZXh0OworRVJST1I6ICBjYW5ub3QgYWx0ZXIgdGFibGUgInN2YXJfdGVzdCIgYmVjYXVzZSBz ZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgdXNlcyBpdAorLS0gc2hvdWxkIGZhaWwKK0RS T1AgVEFCTEUgc3Zhcl90ZXN0OworRVJST1I6ICBjYW5ub3QgZHJvcCB0YWJsZSBzdmFyX3Rlc3Qg YmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgc2Vzc2lvbiB2YXJp YWJsZSB2YXIxIGRlcGVuZHMgb24gdHlwZSBzdmFyX3Rlc3QKK0hJTlQ6ICBVc2UgRFJPUCAuLi4g Q0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCitEUk9QIFZBUklBQkxF IHZhcjE7CitEUk9QIFRBQkxFIHN2YXJfdGVzdDsKK0NSRUFURSBUWVBFIHZhcnRlc3RfdDEgQVMg KGEgaW50LCBiIGludCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJ0ZXN0X3QxOworQ1JF QVRFIFJPTEUgcmVncmVzc192YXJfdGVzdF9yb2xlOworR1JBTlQgVVBEQVRFIE9OIFZBUklBQkxF IHZhcjEgVE8gcmVncmVzc192YXJfdGVzdF9yb2xlOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJf dGVzdF9yb2xlOworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9ICgxMCwgMjApOworTEVUIHZh cjEuYSA9IDMwOworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gKDEwMCwgMTAwKTsKKyAgTEVU IHZhcjEuYSA9IDEwMDA7CitFTkQ7CiskJDsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyMS5h OworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitT RUxFQ1QgdmFyMTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFi bGUgdmFyMQorTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwOworRVJST1I6ICBwZXJtaXNzaW9uIGRl bmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0Ug JyUnLCB2YXIxOyBFTkQgJCQ7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9u IHZhcmlhYmxlIHZhcjEKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9uICJ2YXIxIgorUEwv cGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFJBSVNFCitETyAkJCBC RUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxLmE7IEVORCAkJDsKK0VSUk9SOiAgcGVybWlzc2lv biBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorQ09OVEVYVDogIFBML3BnU1FMIGV4 cHJlc3Npb24gInZhcjEuYSIKK1BML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxp bmUgMSBhdCBSQUlTRQorRE8gJCQgQkVHSU4gTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwOyBFTkQg JCQ7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEK K0NPTlRFWFQ6ICBTUUwgc3RhdGVtZW50ICJMRVQgdmFyMS5hID0gdmFyMS5hICsgMTAiCitQTC9w Z1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgU1FMIHN0YXRlbWVudAor U0VUIFJPTEUgVE8gREVGQVVMVDsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJl Z3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsK Ky0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjEuYTsKKyAgYSAgIAorLS0tLS0tCisgMTAwMAor KDEgcm93KQorCitTRUxFQ1QgdmFyMTsKKyAgICB2YXIxICAgIAorLS0tLS0tLS0tLS0tCisgKDEw MDAsMTAwKQorKDEgcm93KQorCitMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7CitETyAkJCBCRUdJ TiBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOyBFTkQgJCQ7CitOT1RJQ0U6ICAoMTAxMCwxMDApCitE TyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxLmE7IEVORCAkJDsKK05PVElDRTogIDEw MTAKK0RPICQkIEJFR0lOIExFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsgRU5EICQkOworU0VUIFJP TEUgVE8gREVGQVVMVDsKK1JFVk9LRSBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBGUk9NIHJlZ3Jl c3NfdmFyX3Rlc3Rfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKy0t IHNob3VsZCBmYWlsIGFnYWluCitTRUxFQ1QgdmFyMS5hOworRVJST1I6ICBwZXJtaXNzaW9uIGRl bmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgcGVy bWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorTEVUIHZhcjEuYSA9IHZh cjEuYSArIDEwOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJs ZSB2YXIxCitETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOyBFTkQgJCQ7CitFUlJP UjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0NPTlRFWFQ6 ICBQTC9wZ1NRTCBleHByZXNzaW9uICJ2YXIxIgorUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2Nv ZGVfYmxvY2sgbGluZSAxIGF0IFJBSVNFCitETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2 YXIxLmE7IEVORCAkJDsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFy aWFibGUgdmFyMQorQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gInZhcjEuYSIKK1BML3Bn U1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQorRE8gJCQgQkVH SU4gTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwOyBFTkQgJCQ7CitFUlJPUjogIHBlcm1pc3Npb24g ZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0NPTlRFWFQ6ICBTUUwgc3RhdGVtZW50 ICJMRVQgdmFyMS5hID0gdmFyMS5hICsgMTAiCitQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29k ZV9ibG9jayBsaW5lIDEgYXQgU1FMIHN0YXRlbWVudAorU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RS T1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitEUk9Q IFRZUEUgdmFydGVzdF90MTsKK0NSRUFURSBUWVBFIHZhcnRlc3RfdDEgQVMgKGEgaW50LCBiIGlu dCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0ZXh0OworQ1JFQVRFIFZBUklBQkxFIHZhcjIg QVMgdmFydGVzdF90MTsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyMS5hOworRVJST1I6ICB2 YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIG9mIHR5cGUgInRleHQiLCB3aGljaCBpcyBub3QgYSBj b21wb3NpdGUgdHlwZQorTElORSAxOiBTRUxFQ1QgdmFyMS5hOworICAgICAgICAgICAgICAgXgor U0VMRUNUIHZhcjIuYzsKK0VSUk9SOiAgY291bGQgbm90IGlkZW50aWZ5IGNvbHVtbiAiYyIgaW4g dmFyaWFibGUgInB1YmxpYy52YXIyIgorTElORSAxOiBTRUxFQ1QgdmFyMi5jOworICAgICAgICAg ICAgICAgXgorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworRFJPUCBU WVBFIHZhcnRlc3RfdDE7CistLSBhcnJheXMgYXJlIHN1cHBvcnRlZAorQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgbnVtZXJpY1tdOworTEVUIHZhcjEgPSBBUlJBWVsxLjEsMi4xXTsKK0xFVCB2YXIx WzFdID0gMTAuMTsKK1NFTEVDVCB2YXIxOworICAgIHZhcjEgICAgCistLS0tLS0tLS0tLS0KKyB7 MTAuMSwyLjF9CisoMSByb3cpCisKKy0tIExFVCB0YXJnZXQgZG9lc24ndCBhbGxvdyBzcmYsIHNo b3VsZCBmYWlsCitMRVQgdmFyMVtnZW5lcmF0ZV9zZXJpZXMoMSwzKV0gPSAxMDA7CitFUlJPUjog IHNldC1yZXR1cm5pbmcgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBMRVQKK0xJTkUgMTog TEVUIHZhcjFbZ2VuZXJhdGVfc2VyaWVzKDEsMyldID0gMTAwOworICAgICAgICAgICAgICAgICBe CitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBhcnJheXMgaW5zaWRlIGNvbXBvc2l0ZQorQ1JFQVRF IFRZUEUgdDEgQVMgKGEgbnVtZXJpYywgYiBudW1lcmljW10pOworQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgdDE7CitMRVQgdmFyMSA9ICgxMC4xLCBBUlJBWVswLjAsIDAuMF0pOworTEVUIHZhcjEu YSA9IDEwLjI7CitTRUxFQ1QgdmFyMTsKKyAgICAgICAgdmFyMSAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLQorICgxMC4yLCJ7MC4wLDAuMH0iKQorKDEgcm93KQorCitMRVQgdmFyMS5iWzFd ID0gMTAuMzsKK1NFTEVDVCB2YXIxOworICAgICAgICB2YXIxICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAoMTAuMiwiezEwLjMsMC4wfSIpCisoMSByb3cpCisKK0RST1AgVkFSSUFC TEUgdmFyMTsKK0RST1AgVFlQRSB0MTsKKy0tIEVuY291cmFnZSB1c2Ugb2YgcGFyYWxsZWwgcGxh bnMKK1NFVCBwYXJhbGxlbF9zZXR1cF9jb3N0ID0gMDsKK1NFVCBwYXJhbGxlbF90dXBsZV9jb3N0 ID0gMDsKK1NFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplID0gMDsKK1NFVCBtYXhfcGFy YWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyID0gMjsKKy0tIHRlc3Qgb24gcXVlcnkgd2l0aCB3b3Jr ZXJzCitDUkVBVEUgVEFCTEUgc3Zhcl90ZXN0KGEgaW50KTsKK0lOU0VSVCBJTlRPIHN2YXJfdGVz dCBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwMDApOworQU5BTFlaRSBzdmFyX3Rl c3Q7CitDUkVBVEUgVkFSSUFCTEUgemVybyBpbnQ7CitMRVQgemVybyA9IDA7CistLSByZXN1bHQg c2hvdWxkIGJlIDEwMAorU0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0IFdIRVJFIGElMTAg PSB6ZXJvOworIGNvdW50IAorLS0tLS0tLQorICAgMTAwCisoMSByb3cpCisKKy0tIHBhcmFsbGVs IGV4ZWN1dGlvbiBpcyBub3Qgc3VwcG9ydGVkIHlldAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxF Q1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87CisgICAgICAgICAg ICBRVUVSWSBQTEFOICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBBZ2dyZWdhdGUKKyAgIC0+ICBTZXEgU2NhbiBvbiBzdmFyX3Rlc3QKKyAgICAgICAg IEZpbHRlcjogKChhICUgMTApID0gemVybykKKygzIHJvd3MpCisKK0xFVCB6ZXJvID0gKFNFTEVD VCBjb3VudCgqKSBGUk9NIHN2YXJfdGVzdCk7CistLSByZXN1bHQgc2hvdWxkIGJlIDEwMDAKK1NF TEVDVCB6ZXJvOworIHplcm8gCistLS0tLS0KKyAxMDAwCisoMSByb3cpCisKK0RST1AgVkFSSUFC TEUgemVybzsKK0RST1AgVEFCTEUgc3Zhcl90ZXN0OworUkVTRVQgcGFyYWxsZWxfc2V0dXBfY29z dDsKK1JFU0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3Q7CitSRVNFVCBtaW5fcGFyYWxsZWxfdGFibGVf c2Nhbl9zaXplOworUkVTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhlcjsKKy0tIHRo ZSByZXN1bHQgb2YgdmlldyBzaG91bGQgYmUgc2FtZSBpbiBwYXJhbGxlbCBtb2RlIHRvbworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworTEVUIHZhcjEgPSAxMDsKK0NSRUFURSBWSUVXIHZh cjF2aWV3IEFTIFNFTEVDVCBDT0FMRVNDRSh2YXIxLCAwKSBBUyByZXN1bHQ7CitTRUxFQ1QgKiBG Uk9NIHZhcjF2aWV3OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICAgIDEwCisoMSByb3cpCisKK1NF VCBkZWJ1Z19wYXJhbGxlbF9xdWVyeSBUTyBvbjsKK1NFTEVDVCAqIEZST00gdmFyMXZpZXc7Cisg cmVzdWx0IAorLS0tLS0tLS0KKyAgICAgMTAKKygxIHJvdykKKworU0VUIGRlYnVnX3BhcmFsbGVs X3F1ZXJ5IFRPIG9mZjsKK0RST1AgVklFVyB2YXIxdmlldzsKK0RST1AgVkFSSUFCTEUgdmFyMTsK K0NSRUFURSBWQVJJQUJMRSB2YXJpZCBpbnQ7CitDUkVBVEUgVEFCTEUgc3Zhcl90ZXN0KGlkIGlu dCwgdiBpbnQpOworTEVUIHZhcmlkID0gMTsKK0lOU0VSVCBJTlRPIHN2YXJfdGVzdCBWQUxVRVMo dmFyaWQsIDEwMCk7CitTRUxFQ1QgKiBGUk9NIHN2YXJfdGVzdDsKKyBpZCB8ICB2ICAKKy0tLS0r LS0tLS0KKyAgMSB8IDEwMAorKDEgcm93KQorCitVUERBVEUgc3Zhcl90ZXN0IFNFVCB2ID0gMjAw IFdIRVJFIGlkID0gdmFyaWQ7CitTRUxFQ1QgKiBGUk9NIHN2YXJfdGVzdDsKKyBpZCB8ICB2ICAK Ky0tLS0rLS0tLS0KKyAgMSB8IDIwMAorKDEgcm93KQorCitERUxFVEUgRlJPTSBzdmFyX3Rlc3Qg V0hFUkUgaWQgPSB2YXJpZDsKK1NFTEVDVCAqIEZST00gc3Zhcl90ZXN0OworIGlkIHwgdiAKKy0t LS0rLS0tCisoMCByb3dzKQorCitEUk9QIFRBQkxFIHN2YXJfdGVzdDsKK0RST1AgVkFSSUFCTEUg dmFyaWQ7CistLSB2aXNpYmlsaXR5IGNoZWNrCistLSB2YXJpYWJsZXMgc2hvdWxkIGJlIHNoYWRv d2VkIGFsd2F5cworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGV4dDsKK1NFTEVDVCB2YXIxLnJl bG5hbWUgRlJPTSBwZ19jbGFzcyB2YXIxIFdIRVJFIHZhcjEucmVsbmFtZSA9ICdwZ19jbGFzcyc7 CisgcmVsbmFtZSAgCistLS0tLS0tLS0tCisgcGdfY2xhc3MKKygxIHJvdykKKworRFJPUCBWQVJJ QUJMRSB2YXIxOworQ1JFQVRFIFRBQkxFIHh4dGFiKGF2YXIgaW50KTsKK0lOU0VSVCBJTlRPIHh4 dGFiIFZBTFVFUygzMzMpOworQ1JFQVRFIFRZUEUgeHh0eXBlIEFTIChhdmFyIGludCk7CitDUkVB VEUgVkFSSUFCTEUgeHh0YWIgQVMgeHh0eXBlOworSU5TRVJUIElOVE8geHh0YWIgVkFMVUVTKDEw KTsKKy0tIGl0IGlzIGFtYmlndW91cywgYnV0IGNvbHVtbnMgYXJlIHByZWZlcnJlZAorU0VMRUNU IHh4dGFiLmF2YXIgRlJPTSB4eHRhYjsKKyBhdmFyIAorLS0tLS0tCisgIDMzMworICAgMTAKKygy IHJvd3MpCisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIGF2YXIgRlJPTSB4eHRhYjsKKyBhdmFy IAorLS0tLS0tCisgIDMzMworICAgMTAKKygyIHJvd3MpCisKK0NSRUFURSBWQVJJQUJMRSBwdWJs aWMuYXZhciBBUyBpbnQ7CistLSBzaG91bGQgYmUgb2ssIHNlZSB0aGUgdGFibGUKK1NFTEVDVCBh dmFyIEZST00geHh0YWI7CisgYXZhciAKKy0tLS0tLQorICAzMzMKKyAgIDEwCisoMiByb3dzKQor CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBwdWJsaWMuYXZhciBGUk9NIHh4dGFiOworIGF2YXIg CistLS0tLS0KKyAgICAgCisgICAgIAorKDIgcm93cykKKworRFJPUCBWQVJJQUJMRSB4eHRhYjsK K1NFTEVDVCB4eHRhYi5hdmFyIEZST00geHh0YWI7CisgYXZhciAKKy0tLS0tLQorICAzMzMKKyAg IDEwCisoMiByb3dzKQorCitEUk9QIFZBUklBQkxFIHB1YmxpYy5hdmFyOworRFJPUCBUWVBFIHh4 dHlwZTsKK0RST1AgVEFCTEUgeHh0YWI7CistLSBUaGUgdmFyaWFibGUgY2FuIGJlIHNoYWRvd2Vk IGJ5IHRhYmxlIG9yIGJ5IGFsaWFzCitDUkVBVEUgVFlQRSBwdWJsaWMuc3Zhcl90eXBlIEFTIChh IGludCwgYiBpbnQsIGMgaW50KTsKK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuc3ZhciBBUyBwdWJs aWMuc3Zhcl90eXBlOworQ1JFQVRFIFRBQkxFIHB1YmxpYy5zdmFyKGEgaW50LCBiIGludCk7CitJ TlNFUlQgSU5UTyBwdWJsaWMuc3ZhciBWQUxVRVMoMTAsIDIwKTsKK0xFVCBwdWJsaWMuc3ZhciA9 ICgxMDAsIDIwMCwgMzAwKTsKKy0tIHNob3VsZCBiZSBvaworLS0gc2hvdyB0YWJsZQorU0VMRUNU ICogRlJPTSBwdWJsaWMuc3ZhcjsKKyBhICB8IGIgIAorLS0tLSstLS0tCisgMTAgfCAyMAorKDEg cm93KQorCitTRUxFQ1Qgc3Zhci5hIEZST00gcHVibGljLnN2YXI7CisgYSAgCistLS0tCisgMTAK KygxIHJvdykKKworU0VMRUNUIHN2YXIuKiBGUk9NIHB1YmxpYy5zdmFyOworIGEgIHwgYiAgCist LS0tKy0tLS0KKyAxMCB8IDIwCisoMSByb3cpCisKKy0tIHNob3cgdmFyaWFibGUKK1NFTEVDVCBw dWJsaWMuc3ZhcjsKKyAgICAgc3ZhciAgICAgIAorLS0tLS0tLS0tLS0tLS0tCisgKDEwMCwyMDAs MzAwKQorKDEgcm93KQorCitTRUxFQ1QgcHVibGljLnN2YXIuYzsKKyAgYyAgCistLS0tLQorIDMw MAorKDEgcm93KQorCitTRUxFQ1QgKHB1YmxpYy5zdmFyKS4qOworICBhICB8ICBiICB8ICBjICAK Ky0tLS0tKy0tLS0tKy0tLS0tCisgMTAwIHwgMjAwIHwgMzAwCisoMSByb3cpCisKKy0tIHRoZSB2 YXJpYWJsZSBpcyBzaGFkb3dlZCwgcmFpc2UgZXJyb3IKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZS T00gcHVibGljLnN2YXI7CitFUlJPUjogIGNvbHVtbiBzdmFyLmMgZG9lcyBub3QgZXhpc3QKK0xJ TkUgMTogU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhcjsKKyAgICAgICAgICAg ICAgIF4KKy0tIGNhbiBiZSBmaXhlZCBieSBhbGlhcworU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJP TSBwdWJsaWMuc3ZhciB4OworICBjICAKKy0tLS0tCisgMzAwCisoMSByb3cpCisKK1NFTEVDVCBz dmFyLmEgRlJPTSBwdWJsaWMuc3ZhcjsKKyBhICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitTRUxF Q1Qgc3Zhci4qIEZST00gcHVibGljLnN2YXI7CisgYSAgfCBiICAKKy0tLS0rLS0tLQorIDEwIHwg MjAKKygxIHJvdykKKworLS0gc2hvdyB2YXJpYWJsZQorU0VMRUNUIHB1YmxpYy5zdmFyOworICAg ICBzdmFyICAgICAgCistLS0tLS0tLS0tLS0tLS0KKyAoMTAwLDIwMCwzMDApCisoMSByb3cpCisK K1NFTEVDVCBwdWJsaWMuc3Zhci5jOworICBjICAKKy0tLS0tCisgMzAwCisoMSByb3cpCisKK1NF TEVDVCAocHVibGljLnN2YXIpLio7CisgIGEgIHwgIGIgIHwgIGMgIAorLS0tLS0rLS0tLS0rLS0t LS0KKyAxMDAgfCAyMDAgfCAzMDAKKygxIHJvdykKKworLS0gdGhlIHZhcmlhYmxlIGlzIHNoYWRv d2VkLCByYWlzZSBlcnJvcgorU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhcjsK K0VSUk9SOiAgY29sdW1uIHN2YXIuYyBkb2VzIG5vdCBleGlzdAorTElORSAxOiBTRUxFQ1QgcHVi bGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworICAgICAgICAgICAgICAgXgorLS0gY2FuIGJl IGZpeGVkIGJ5IGFsaWFzCitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyIHg7 CisgIGMgIAorLS0tLS0KKyAzMDAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMuc3Zh cjsKK0RST1AgVEFCTEUgcHVibGljLnN2YXI7CitEUk9QIFRZUEUgcHVibGljLnN2YXJfdHlwZTsK K0NSRUFURSBUWVBFIGFiIEFTIChhIGludGVnZXIsIGIgaW50ZWdlcik7CitDUkVBVEUgVkFSSUFC TEUgdl9hYiBBUyBhYjsKK0NSRUFURSBUQUJMRSB2X2FiIChhIGludGVnZXIsIGIgaW50ZWdlcik7 CitJTlNFUlQgSU5UTyB2X2FiIFZBTFVFUygxMCwyMCk7CistLSB3ZSBzaG91bGQgc2VlIHRhYmxl CitTRUxFQ1Qgdl9hYi5hIEZST00gdl9hYjsKKyBhICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitD UkVBVEUgU0NIRU1BIHZfYWI7CitDUkVBVEUgVkFSSUFCTEUgdl9hYi5hIEFTIGludGVnZXI7Cist LSB3ZSBzaG91bGQgc2VlIHRhYmxlCitTRUxFQ1Qgdl9hYi5hIEZST00gdl9hYjsKKyBhICAKKy0t LS0KKyAxMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZfYWI7CitEUk9QIFRBQkxFIHZfYWI7 CitEUk9QIFRZUEUgYWI7CitEUk9QIFZBUklBQkxFIHZfYWIuYTsKK0RST1AgU0NIRU1BIHZfYWI7 CitDUkVBVEUgVFlQRSB0X2FtX3R5cGUgQVMgKGIgaW50KTsKK0NSRUFURSBTQ0hFTUEgeHh4X2Ft OworU0VUIHNlYXJjaF9wYXRoIFRPIHB1YmxpYzsKK0NSRUFURSBWQVJJQUJMRSB4eHhfYW0gQVMg dF9hbV90eXBlOworTEVUIHh4eF9hbSA9IFJPVygxMCk7CistLSBzaG91bGQgYmUgb2sKK1NFTEVD VCB4eHhfYW07CisgeHh4X2FtIAorLS0tLS0tLS0KKyAoMTApCisoMSByb3cpCisKK0NSRUFURSBW QVJJQUJMRSB4eHhfYW0uYiBBUyBpbnQ7CitMRVQgOiJEQk5BTUUiLnh4eF9hbS5iID0gMjA7Cist LSBzaG91bGQgYmUgc3RpbGwgb2sKK1NFTEVDVCB4eHhfYW07CisgeHh4X2FtIAorLS0tLS0tLS0K KyAoMTApCisoMSByb3cpCisKKy0tIHNob3VsZCBmYWlsLCB0aGUgcmVmZXJlbmNlIHNob3VsZCBi ZSBhbWJpZ3VvdXMKK1NFTEVDVCB4eHhfYW0uYjsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBy ZWZlcmVuY2UgInh4eF9hbS5iIiBpcyBhbWJpZ3VvdXMKK0xJTkUgMTogU0VMRUNUIHh4eF9hbS5i OworICAgICAgICAgICAgICAgXgorLS0gZW5oYW5jZWQgcmVmZXJlbmNlcyBzaG91bGQgYmUgb2sK K1NFTEVDVCBwdWJsaWMueHh4X2FtLmI7CisgYiAgCistLS0tCisgMTAKKygxIHJvdykKKworU0VM RUNUIDoiREJOQU1FIi54eHhfYW0uYjsKKyBiICAKKy0tLS0KKyAyMAorKDEgcm93KQorCitDUkVB VEUgVEFCTEUgeHh4X2FtKGIgIGludCk7CitJTlNFUlQgSU5UTyB4eHhfYW0gVkFMVUVTKDEwKTsK Ky0tIHdlIHNob3VsZCBzZWUgdGFibGUKK1NFTEVDVCB4eHhfYW0uYiBGUk9NIHh4eF9hbTsKKyBi ICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitTRUxFQ1QgeC5iIEZST00geHh4X2FtIHg7CisgYiAg CistLS0tCisgMTAKKygxIHJvdykKKworRFJPUCBUQUJMRSB4eHhfYW07CitEUk9QIFZBUklBQkxF IHB1YmxpYy54eHhfYW07CitEUk9QIFZBUklBQkxFIHh4eF9hbS5iOworRFJPUCBTQ0hFTUEgeHh4 X2FtOworQ1JFQVRFIFNDSEVNQSA6IkRCTkFNRSI7CitDUkVBVEUgVkFSSUFCTEUgOiJEQk5BTUUi LjoiREJOQU1FIi46IkRCTkFNRSIgQVMgdF9hbV90eXBlOworQ1JFQVRFIFZBUklBQkxFIDoiREJO QU1FIi46IkRCTkFNRSIuYiBBUyBpbnQ7CitTRVQgc2VhcmNoX3BhdGggVE8gOiJEQk5BTUUiOwor LS0gc2hvdWxkIGJlIGFtYmlndW91cworU0VMRUNUIDoiREJOQU1FIi5iOworRVJST1I6ICBzZXNz aW9uIHZhcmlhYmxlIHJlZmVyZW5jZSAicmVncmVzc2lvbi5iIiBpcyBhbWJpZ3VvdXMKK0xJTkUg MTogU0VMRUNUICJyZWdyZXNzaW9uIi5iOworICAgICAgICAgICAgICAgXgorLS0gc2hvdWxkIGJl IGFtYmlndW91cyB0b28KK1NFTEVDVCA6IkRCTkFNRSIuOiJEQk5BTUUiLmI7CitFUlJPUjogIHNl c3Npb24gdmFyaWFibGUgcmVmZXJlbmNlICJyZWdyZXNzaW9uLnJlZ3Jlc3Npb24uYiIgaXMgYW1i aWd1b3VzCitMSU5FIDE6IFNFTEVDVCAicmVncmVzc2lvbiIuInJlZ3Jlc3Npb24iLmI7CisgICAg ICAgICAgICAgICBeCitDUkVBVEUgVEFCTEUgOiJEQk5BTUUiKGIgaW50KTsKKy0tIHNob3VsZCBi ZSBvaworU0VMRUNUIDoiREJOQU1FIi5iIEZST00gOiJEQk5BTUUiOworIGIgCistLS0KKygwIHJv d3MpCisKK0RST1AgVEFCTEUgOiJEQk5BTUUiOworRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJE Qk5BTUUiLmI7CitEUk9QIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiOwor RFJPUCBTQ0hFTUEgOiJEQk5BTUUiOworUkVTRVQgc2VhcmNoX3BhdGg7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggMmE0ZDQyOWE5OC4uMjRlODk3YThj NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3Fs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtMjYx LDMgKzI2MSw3MzAgQEAgRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CiBEUk9QIFJPTEUg cmVncmVzc192YXJpYWJsZV9yMjsKIAogRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7 CisKKy0tIGNoZWNrIGFjY2VzcyByaWdodHMKK0NSRUFURSBST0xFIHJlZ3Jlc3Nfbm9vd25lcjsK KworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5D VElPTiBzcWxmeChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBTRUxFQ1QgJDEgKyB2YXIxICQkIExB TkdVQUdFIHNxbDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZnhfc2QoaW50KQor UkVUVVJOUyBpbnQgQVMgJCQgU0VMRUNUICQxICsgdmFyMSAkJCBMQU5HVUFHRSBzcWwgU0VDVVJJ VFkgREVGSU5FUjsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4KGludCkK K1JFVFVSTlMgaW50IEFTICQkIEJFR0lOIFJFVFVSTiAkMSArIHZhcjE7IEVORCAkJCBMQU5HVUFH RSBwbHBnc3FsOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBwbHBnc3FsZnhfc2QoaW50 KQorUkVUVVJOUyBpbnQgQVMgJCQgQkVHSU4gUkVUVVJOICQxICsgdmFyMTsgRU5EICQkIExBTkdV QUdFIHBscGdzcWwgU0VDVVJJVFkgREVGSU5FUjsKKworTEVUIHZhcjEgPSAxMDsKKy0tIHNob3Vs ZCBiZSBvaworU0VMRUNUIHZhcjE7CitTRUxFQ1Qgc3FsZngoMjApOworU0VMRUNUIHNxbGZ4X3Nk KDIwKTsKK1NFTEVDVCBwbHBnc3FsZngoMjApOworU0VMRUNUIHBscGdzcWxmeF9zZCgyMCk7CisK Ky0tIHNob3VsZCBmYWlsCitTRVQgUk9MRSBUTyByZWdyZXNzX25vb3duZXI7CisKK1NFTEVDVCB2 YXIxOworU0VMRUNUIHNxbGZ4KDIwKTsKK1NFTEVDVCBwbHBnc3FsZngoMjApOworCistLSBzaG91 bGQgYmUgb2sKK1NFTEVDVCBzcWxmeF9zZCgyMCk7CitTRUxFQ1QgcGxwZ3NxbGZ4X3NkKDIwKTsK KworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRP IHJlZ3Jlc3Nfbm9vd25lcjsKKworLS0gc2hvdWxkIGJlIG9rCitTRVQgUk9MRSBUTyByZWdyZXNz X25vb3duZXI7CisKK1NFTEVDVCB2YXIxOworU0VMRUNUIHNxbGZ4KDIwKTsKK1NFTEVDVCBwbHBn c3FsZngoMjApOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSB2YXIxOwor RFJPUCBGVU5DVElPTiBzcWxmeChpbnQpOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngoaW50KTsK K0RST1AgRlVOQ1RJT04gc3FsZnhfc2QoaW50KTsKK0RST1AgRlVOQ1RJT04gcGxwZ3NxbGZ4X3Nk KGludCk7CisKK0RST1AgUk9MRSByZWdyZXNzX25vb3duZXI7CisKKy0tIHVzZSB2YXJpYWJsZXMg aW5zaWRlIHZpZXdzCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljOworCistLSB1c2Ug dmFyaWFibGVzIGluIHZpZXdzCitDUkVBVEUgVklFVyB0ZXN0X3ZpZXcgQVMgU0VMRUNUIENPQUxF U0NFKHZhcjEgKyB2LCAwKSBBUyByZXN1bHQgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwyKSBnKHYp OworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CitMRVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1QgKiBG Uk9NIHRlc3RfdmlldzsKKworLS0gc3RhcnQgYSBuZXcgc2Vzc2lvbgorXGMKKworU0VMRUNUICog RlJPTSB0ZXN0X3ZpZXc7CitMRVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1QgKiBGUk9NIHRlc3Rfdmll dzsKKworLS0gc2hvdWxkIGZhaWwsIGRlcGVuZGVuY3kKK0RST1AgVkFSSUFCTEUgdmFyMTsKKwor LS0gc2hvdWxkIGJlIG9rCitEUk9QIFZBUklBQkxFIHZhcjEgQ0FTQ0FERTsKKworQ1JFQVRFIFZB UklBQkxFIHZhcjEgdGV4dDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIHRleHQ7CisKKy0tIHVzZSB2 YXJpYWJsZXMgaW4gU1FMIGZ1bmN0aW9ucworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3Fs ZngxKHZhcmNoYXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQgU0VMRUNUIHZhcjEgfHwgJywgJyB8 fCAkMSAkJCBMQU5HVUFHRSBzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4 MiggdmFyY2hhcikKK1JFVFVSTlMgdmFyY2hhciBBUyAkJCBTRUxFQ1QgdmFyMiB8fCAnLCAnIHx8 ICQxICQkIExBTkdVQUdFIHNxbDsKKworTEVUIHZhcjEgPSAnc3RyMSc7CitMRVQgdmFyMiA9ICdz dHIyJzsKKworU0VMRUNUIHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOworCistLSBpbmxpbmluZyBp cyBibG9ja2VkCitFWFBMQUlOIChDT1NUUyBPRkYsIFZFUkJPU0UpIFNFTEVDVCBzcWxmeDEoc3Fs ZngyKCdIZWxsbycpKTsKKworRFJPUCBGVU5DVElPTiBzcWxmeDEodmFyY2hhcik7CitEUk9QIEZV TkNUSU9OIHNxbGZ4Mih2YXJjaGFyKTsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVkFSSUFC TEUgdmFyMjsKKworLS0gYWNjZXNzIGZyb20gY2FjaGVkIHBsYW5zIHNob3VsZCB3b3JrCitDUkVB VEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljOworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgbnVt ZXJpYzsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4KCkKK1JFVFVSTlMg bnVtZXJpYyBBUyAkJCBCRUdJTiBSRVRVUk4gdmFyMTsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7 CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHBscGdzcWxmeDIobnVtZXJpYykKK1JFVFVS TlMgdm9pZCBBUyAkJCBCRUdJTiBMRVQgdmFyMiA9ICQxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3Nx bDsKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBmb3JjZV9nZW5lcmljX3BsYW47CisKK0xFVCB2 YXIxID0gMy4xNDsKK1NFTEVDVCBwbHBnc3FsZngoKTsKK0xFVCB2YXIxID0gMy4xNCAqIDI7CitT RUxFQ1QgcGxwZ3NxbGZ4KCk7CisKK1NFTEVDVCBwbHBnc3FsZngyKDEwLjApOworU0VMRUNUIHZh cjI7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVkFSSUFCTEUgdmFyMjsKKworLS0gZGVw ZW5kZW5jeSAocGxhbiBpbnZhbGlkYXRpb24pIHNob3VsZCB3b3JrCitDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyBudW1lcmljOworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgbnVtZXJpYzsKKworTEVU IHZhcjEgPSAzLjE0ICogMzsKK1NFTEVDVCBwbHBnc3FsZngoKTsKK0xFVCB2YXIxID0gMy4xNCAq IDQ7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CisKK1NFTEVDVCBwbHBnc3FsZngyKDEwLjApOworU0VM RUNUIHZhcjI7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVkFSSUFCTEUgdmFyMjsKK0RS T1AgRlVOQ1RJT04gcGxwZ3NxbGZ4KCk7CitEUk9QIEZVTkNUSU9OIHBscGdzcWxmeDIoKTsKKwor U0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBERUZBVUxUOworCistLSB1c2FnZSBMRVQgc3RhdGVtZW50 IGluIHBscGdzcWwgc2hvdWxkIHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIGludDsKK0NSRUFU RSBWQVJJQUJMRSB2YXIyIG51bWVyaWNbXTsKKworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIyID0g J3t9Jzo6aW50W107CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9IGk7 CisgICAgTEVUIHZhcjJbdmFyMV0gPSBpOworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9USUNFICdy ZXN1bHQgYXJyYXk6ICUnLCB2YXIyOworRU5EOworJCQ7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsK K0RST1AgVkFSSUFCTEUgdmFyMjsKKworLS0gQ0FMTCBzdGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRl ZCB5ZXQKKy0tIHJlcXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSBmcm9t IGV4cHJlc3Npb24gZXhlY3V0b3IKK0NSRUFURSBWQVJJQUJMRSB2IGludDsKKworQ1JFQVRFIFBS T0NFRFVSRSBwKGFyZyBpbnQpIEFTICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIGFyZzsgRU5E ICQkIExBTkdVQUdFIHBscGdzcWw7CisKKy0tIHNob3VsZCBub3QgY3Jhc2ggKGJ1dCBpcyBub3Qg c3VwcG9ydGVkIHlldCkKK0NBTEwgcCh2KTsKKworRE8gJCQgQkVHSU4gQ0FMTCBwKHYpOyBFTkQg JCQ7CisKK0RST1AgUFJPQ0VEVVJFIHAoaW50KTsKK0RST1AgVkFSSUFCTEUgdjsKKworLS0gRVhF Q1VURSBzdGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRlZCB5ZXQKKy0tIHJlcXVpcmVzIGRpcmVjdCBh Y2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IKK0NSRUFU RSBWQVJJQUJMRSB2IGludDsKK0xFVCB2ID0gMjA7CitQUkVQQVJFIHB0ZXN0KGludCkgQVMgU0VM RUNUICQxOworCistLSBzaG91bGQgZmFpbAorRVhFQ1VURSBwdGVzdCh2KTsKKworREVBTExPQ0FU RSBwdGVzdDsKK0RST1AgVkFSSUFCTEUgdjsKKworLS0gdGVzdCBzZWFyY2ggcGF0aAorQ1JFQVRF IFNDSEVNQSBzdmFydGVzdDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIG51bWVy aWM7CisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IHBpKCk7CitTRUxFQ1QgdmFyMTsKKwor LS0gc2hvdWxkIGJlIG9rCitMRVQgc3ZhcnRlc3QudmFyMSA9IHBpKCk7CitTRUxFQ1Qgc3ZhcnRl c3QudmFyMTsKKworU0VUIHNlYXJjaF9wYXRoIFRPIHN2YXJ0ZXN0OworCistLSBzaG91bGQgYmUg b2sKK0xFVCB2YXIxID0gcGkoKSArIDEwOworU0VMRUNUIHZhcjE7CisKK1JFU0VUIHNlYXJjaF9w YXRoOworRFJPUCBTQ0hFTUEgc3ZhcnRlc3QgQ0FTQ0FERTsKKworQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgdGV4dDsKKworLS0gdmFyaWFibGVzIGNhbiBiZSB1cGRhdGVkIHVuZGVyIFJPIHRyYW5z YWN0aW9uCitCRUdJTjsKK1NFVCBUUkFOU0FDVElPTiBSRUFEIE9OTFk7CitMRVQgdmFyMSA9ICdo ZWxsbyc7CitDT01NSVQ7CisKK1NFTEVDVCB2YXIxOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisK Ky0tIHRlc3Qgb2YgZG9tYWlucworQ1JFQVRFIERPTUFJTiBpbnRfZG9tYWluIEFTIGludCBOT1Qg TlVMTCBDSEVDSyAoVkFMVUUgPiAxMDApOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50X2Rv bWFpbjsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxOworCistLSBzaG91bGQgYmUgb2sK K0xFVCB2YXIxID0gMTAwMDsKK1NFTEVDVCB2YXIxOworCistLSBzaG91bGQgZmFpbAorTEVUIHZh cjEgPSAxMDsKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gTlVMTDsKKworLS0gbm90ZSAt IGRvbWFpbiBkZWZhdWx0cyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQgKGxpa2UgUExwZ1NRTCkKKwor RFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBET01BSU4gaW50X2RvbWFpbjsKKworLS0gdGhlIGV4 cHJlc3Npb24gc2hvdWxkIHJlbWFpbiAidW5rbm93biIKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFT IGludDRtdWx0aXJhbmdlW107CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gTlVMTDsKK0xF VCB2YXIxID0gJ3sie1syLDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwxNCl9In0nOworTEVUIHZh cjFbMl0gPSAne1s1LDgpLFsxMiwxMDApfSc7CitTRUxFQ1QgdmFyMTsKKworLS1JdCBzaG91bGQg d29yayBpbiBwbHBnc3FsIHRvbworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gTlVMTDsKKyAg TEVUIHZhcjEgPSAneyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUsOCksWzEyLDE0KX0ifSc7CisgIExF VCB2YXIxWzJdID0gJ3tbNSw4KSxbMTIsMTAwKX0nOworCisgIFJBSVNFIE5PVElDRSAnJScsIHZh cjE7CitFTkQ7CiskJDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCitDUkVBVEUgU0NIRU1BIHN2 YXJ0ZXN0IENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBDUkVBVEUgVEFCTEUgZm9vKGEgaW50 KTsKK0xFVCBzdmFydGVzdC52YXIxID0gMTAwOworU0VMRUNUIHN2YXJ0ZXN0LnZhcjE7CisKK1NF VCBzZWFyY2hfcGF0aCB0byBwdWJsaWMsIHN2YXJ0ZXN0OworCitTRUxFQ1QgdmFyMTsKKworRFJP UCBTQ0hFTUEgc3ZhcnRlc3QgQ0FTQ0FERTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50 OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgaW50W107CisKK0xFVCB2YXIxID0gMjsKK0xFVCB2 YXIyID0gJ3t9Jzo6aW50W107CisKK0xFVCB2YXIyW3ZhcjFdID0gMDsKKworU0VMRUNUIHZhcjI7 CisKK0RST1AgVkFSSUFCTEUgdmFyMSwgdmFyMjsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg aW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgaW50W107CisKK0xFVCB2YXIxID0gMjsKK0xF VCB2YXIyID0gJ3t9Jzo6aW50W107CisKK1NFTEVDVCB2YXIyOworCitEUk9QIFZBUklBQkxFIHZh cjEsIHZhcjI7CisKKy0tIHRoZSBMRVQgc3RhdGVtZW50IHNob3VsZCBiZSBkaXNhbGxvd2VkIGlu IENURQorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworV0lUSCB4IEFTIChMRVQgdmFyMSA9 IDEwMCkgU0VMRUNUICogRlJPTSB4OworCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDEpOworCistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSBnZW5lcmF0 ZV9zZXJpZXMoMSwgMik7CitMRVQgdmFyMSA9IGdlbmVyYXRlX3NlcmllcygxLCAwKTsKKworRFJP UCBWQVJJQUJMRSB2YXIxOworCistLSBjb21wb3NpdGUgdmFyaWFibGVzCitDUkVBVEUgVFlQRSBz dl94eXogQVMgKHggaW50LCB5IGludCwgeiBudW1lcmljKDEwLDIpKTsKKworQ1JFQVRFIFZBUklB QkxFIHYxIEFTIHN2X3h5ejsKK0NSRUFURSBWQVJJQUJMRSB2MiBBUyBzdl94eXo7CisKK0xFVCB2 MSA9ICgxLCAyLCAzLjE0KTsKK0xFVCB2MiA9ICgxMCwgMjAsIDMuMTQgKiAxMCk7CisKKy0tIHNo b3VsZCB3b3JrIHRvbyAtIHRoZXJlIGFyZSBwcmVwYXJlZCBjYXN0cworTEVUIHYxID0gKDEsIDIs IDMpOworCitTRUxFQ1QgdjE7CitTRUxFQ1QgdjI7CitTRUxFQ1QgKHYxKS4qOworU0VMRUNUICh2 MikuKjsKKworU0VMRUNUIHYxLnggKyB2MS56OworU0VMRUNUIHYyLnggKyB2Mi56OworCistLSBh Y2Nlc3MgdG8gY29tcG9zaXRlIGZpZWxkcyBzaG91bGQgYmUgc2FmZSB0b28KK0NSRUFURSBST0xF IHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfdGVzdF9y b2xlOworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHYyLng7CisKK1NFVCBST0xFIFRPIERFRkFV TFQ7CisKK0RST1AgVkFSSUFCTEUgdjE7CitEUk9QIFZBUklBQkxFIHYyOworRFJPUCBUWVBFIHN2 X3h5ejsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CisKK0NSRUFURSBUWVBFIHQx IEFTIChhIGludCwgYiBudW1lcmljLCBjIHRleHQpOworCitDUkVBVEUgVkFSSUFCTEUgdjEgQVMg dDE7CitMRVQgdjEgPSAoMSwgcGkoKSwgJ2hlbGxvJyk7CitTRUxFQ1QgdjE7CitMRVQgdjEuYiA9 IDEwLjIyMjI7CitTRUxFQ1QgdjE7CisKKy0tIHNob3VsZCBmYWlsLCBhdHRyaWJ1dGUgZG9lc24n dCBleGlzdAorTEVUIHYxLnggPSAxMDsKKworLS0gc2hvdWxkIGZhaWwsIGRvbid0IGFsbG93IG11 bHRpIGNvbHVtbiBxdWVyeQorTEVUIHYxID0gKE5VTEw6OnQxKS4qOworCistLSBhbGxvdyBEUk9Q IG9yIEFERCBBVFRSSUJVVEUgb24gY29tcG9zaXRlIHR5cGVzCistLSBzaG91bGQgYmUgb2sKK0FM VEVSIFRZUEUgdDEgRFJPUCBBVFRSSUJVVEUgYzsKK1NFTEVDVCB2MTsKKworLS0gc2hvdWxkIGJl IG9rCitBTFRFUiBUWVBFIHQxIEFERCBBVFRSSUJVVEUgYyBpbnQ7CitTRUxFQ1QgdjE7CisKK0xF VCB2MSA9ICgxMCwgMTAuMywgMjApOworU0VMRUNUIHYxOworCistLSBzaG91bGQgYmUgb2sKK0FM VEVSIFRZUEUgdDEgRFJPUCBBVFRSSUJVVEUgYjsKK1NFTEVDVCB2MTsKKworLS0gc2hvdWxkIGZh aWwsIGRpc2FsbG93IGRhdGEgdHlwZSBjaGFuZ2UKK0FMVEVSIFRZUEUgdDEgQUxURVIgQVRUUklC VVRFIGMgVFlQRSBpbnQ7CisKK0RST1AgVkFSSUFCTEUgdjE7CitEUk9QIFRZUEUgdDE7CisKKy0t IHRoZSB0YWJsZSB0eXBlIGNhbiBiZSB1c2VkIGFzIGNvbXBvc2l0ZSB0eXBlIHRvbworQ1JFQVRF IFRBQkxFIHN2YXJfdGVzdChhIGludCwgYiBudW1lcmljLCBjIGRhdGUpOworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgc3Zhcl90ZXN0OworCitMRVQgdmFyMSA9ICgxMCwgcGkoKSwgJzIwMjMtMDUt MjYnKTsKK1NFTEVDVCB2YXIxOworCistLSBzaG91bGQgZmFpbCBkdWUgZGVwZW5kZW5jeQorQUxU RVIgVEFCTEUgc3Zhcl90ZXN0IEFMVEVSIENPTFVNTiBhIFRZUEUgdGV4dDsKKworLS0gc2hvdWxk IGZhaWwKK0RST1AgVEFCTEUgc3Zhcl90ZXN0OworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9Q IFRBQkxFIHN2YXJfdGVzdDsKKworQ1JFQVRFIFRZUEUgdmFydGVzdF90MSBBUyAoYSBpbnQsIGIg aW50KTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnRlc3RfdDE7CisKK0NSRUFURSBST0xF IHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKworR1JBTlQgVVBEQVRFIE9OIFZBUklBQkxFIHZhcjEg VE8gcmVncmVzc192YXJfdGVzdF9yb2xlOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl90ZXN0 X3JvbGU7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAoMTAsIDIwKTsKK0xFVCB2YXIx LmEgPSAzMDsKKworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gKDEwMCwgMTAwKTsKKyAgTEVU IHZhcjEuYSA9IDEwMDA7CitFTkQ7CiskJDsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIx LmE7CitTRUxFQ1QgdmFyMTsKK0xFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsKKworRE8gJCQgQkVH SU4gUkFJU0UgTk9USUNFICclJywgdmFyMTsgRU5EICQkOworRE8gJCQgQkVHSU4gUkFJU0UgTk9U SUNFICclJywgdmFyMS5hOyBFTkQgJCQ7CitETyAkJCBCRUdJTiBMRVQgdmFyMS5hID0gdmFyMS5h ICsgMTA7IEVORCAkJDsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0dSQU5UIFNFTEVDVCBPTiBW QVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jl c3NfdmFyX3Rlc3Rfcm9sZTsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMS5hOworU0VM RUNUIHZhcjE7CitMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7CisKK0RPICQkIEJFR0lOIFJBSVNF IE5PVElDRSAnJScsIHZhcjE7IEVORCAkJDsKK0RPICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScs IHZhcjEuYTsgRU5EICQkOworRE8gJCQgQkVHSU4gTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwOyBF TkQgJCQ7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitSRVZPS0UgU0VMRUNUIE9OIFZBUklBQkxF IHZhcjEgRlJPTSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zh cl90ZXN0X3JvbGU7CisKKy0tIHNob3VsZCBmYWlsIGFnYWluCitTRUxFQ1QgdmFyMS5hOworU0VM RUNUIHZhcjE7CitMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7CisKK0RPICQkIEJFR0lOIFJBSVNF IE5PVElDRSAnJScsIHZhcjE7IEVORCAkJDsKK0RPICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScs IHZhcjEuYTsgRU5EICQkOworRE8gJCQgQkVHSU4gTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwOyBF TkQgJCQ7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RS T1AgUk9MRSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitEUk9QIFRZUEUgdmFydGVzdF90MTsKKwor Q1JFQVRFIFRZUEUgdmFydGVzdF90MSBBUyAoYSBpbnQsIGIgaW50KTsKKworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgdGV4dDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIHZhcnRlc3RfdDE7CisK Ky0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyMS5hOworU0VMRUNUIHZhcjIuYzsKKworRFJPUCBW QVJJQUJMRSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworRFJPUCBUWVBFIHZhcnRlc3RfdDE7 CisKKy0tIGFycmF5cyBhcmUgc3VwcG9ydGVkCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1l cmljW107CitMRVQgdmFyMSA9IEFSUkFZWzEuMSwyLjFdOworTEVUIHZhcjFbMV0gPSAxMC4xOwor U0VMRUNUIHZhcjE7CisKKy0tIExFVCB0YXJnZXQgZG9lc24ndCBhbGxvdyBzcmYsIHNob3VsZCBm YWlsCitMRVQgdmFyMVtnZW5lcmF0ZV9zZXJpZXMoMSwzKV0gPSAxMDA7CisKK0RST1AgVkFSSUFC TEUgdmFyMTsKKworLS0gYXJyYXlzIGluc2lkZSBjb21wb3NpdGUKK0NSRUFURSBUWVBFIHQxIEFT IChhIG51bWVyaWMsIGIgbnVtZXJpY1tdKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHQxOwor TEVUIHZhcjEgPSAoMTAuMSwgQVJSQVlbMC4wLCAwLjBdKTsKK0xFVCB2YXIxLmEgPSAxMC4yOwor U0VMRUNUIHZhcjE7CitMRVQgdmFyMS5iWzFdID0gMTAuMzsKK1NFTEVDVCB2YXIxOworCitEUk9Q IFZBUklBQkxFIHZhcjE7CitEUk9QIFRZUEUgdDE7CisKKy0tIEVuY291cmFnZSB1c2Ugb2YgcGFy YWxsZWwgcGxhbnMKK1NFVCBwYXJhbGxlbF9zZXR1cF9jb3N0ID0gMDsKK1NFVCBwYXJhbGxlbF90 dXBsZV9jb3N0ID0gMDsKK1NFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplID0gMDsKK1NF VCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyID0gMjsKKworLS0gdGVzdCBvbiBxdWVy eSB3aXRoIHdvcmtlcnMKK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoYSBpbnQpOworSU5TRVJUIElO VE8gc3Zhcl90ZXN0IFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwMCk7CitBTkFM WVpFIHN2YXJfdGVzdDsKK0NSRUFURSBWQVJJQUJMRSB6ZXJvIGludDsKK0xFVCB6ZXJvID0gMDsK KworLS0gcmVzdWx0IHNob3VsZCBiZSAxMDAKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVz dCBXSEVSRSBhJTEwID0gemVybzsKKworLS0gcGFyYWxsZWwgZXhlY3V0aW9uIGlzIG5vdCBzdXBw b3J0ZWQgeWV0CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJf dGVzdCBXSEVSRSBhJTEwID0gemVybzsKKworTEVUIHplcm8gPSAoU0VMRUNUIGNvdW50KCopIEZS T00gc3Zhcl90ZXN0KTsKKworLS0gcmVzdWx0IHNob3VsZCBiZSAxMDAwCitTRUxFQ1QgemVybzsK KworRFJPUCBWQVJJQUJMRSB6ZXJvOworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CisKK1JFU0VUIHBh cmFsbGVsX3NldHVwX2Nvc3Q7CitSRVNFVCBwYXJhbGxlbF90dXBsZV9jb3N0OworUkVTRVQgbWlu X3BhcmFsbGVsX3RhYmxlX3NjYW5fc2l6ZTsKK1JFU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Bl cl9nYXRoZXI7CisKKy0tIHRoZSByZXN1bHQgb2YgdmlldyBzaG91bGQgYmUgc2FtZSBpbiBwYXJh bGxlbCBtb2RlIHRvbworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworTEVUIHZhcjEgPSAx MDsKKworQ1JFQVRFIFZJRVcgdmFyMXZpZXcgQVMgU0VMRUNUIENPQUxFU0NFKHZhcjEsIDApIEFT IHJlc3VsdDsKKworU0VMRUNUICogRlJPTSB2YXIxdmlldzsKKworU0VUIGRlYnVnX3BhcmFsbGVs X3F1ZXJ5IFRPIG9uOworCitTRUxFQ1QgKiBGUk9NIHZhcjF2aWV3OworCitTRVQgZGVidWdfcGFy YWxsZWxfcXVlcnkgVE8gb2ZmOworCitEUk9QIFZJRVcgdmFyMXZpZXc7CitEUk9QIFZBUklBQkxF IHZhcjE7CisKK0NSRUFURSBWQVJJQUJMRSB2YXJpZCBpbnQ7CitDUkVBVEUgVEFCTEUgc3Zhcl90 ZXN0KGlkIGludCwgdiBpbnQpOworCitMRVQgdmFyaWQgPSAxOworSU5TRVJUIElOVE8gc3Zhcl90 ZXN0IFZBTFVFUyh2YXJpZCwgMTAwKTsKK1NFTEVDVCAqIEZST00gc3Zhcl90ZXN0OworVVBEQVRF IHN2YXJfdGVzdCBTRVQgdiA9IDIwMCBXSEVSRSBpZCA9IHZhcmlkOworU0VMRUNUICogRlJPTSBz dmFyX3Rlc3Q7CitERUxFVEUgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgaWQgPSB2YXJpZDsKK1NFTEVD VCAqIEZST00gc3Zhcl90ZXN0OworCitEUk9QIFRBQkxFIHN2YXJfdGVzdDsKK0RST1AgVkFSSUFC TEUgdmFyaWQ7CisKKworLS0gdmlzaWJpbGl0eSBjaGVjaworLS0gdmFyaWFibGVzIHNob3VsZCBi ZSBzaGFkb3dlZCBhbHdheXMKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRleHQ7CitTRUxFQ1Qg dmFyMS5yZWxuYW1lIEZST00gcGdfY2xhc3MgdmFyMSBXSEVSRSB2YXIxLnJlbG5hbWUgPSAncGdf Y2xhc3MnOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKK0NSRUFURSBUQUJMRSB4eHRhYihhdmFy IGludCk7CisKK0lOU0VSVCBJTlRPIHh4dGFiIFZBTFVFUygzMzMpOworCitDUkVBVEUgVFlQRSB4 eHR5cGUgQVMgKGF2YXIgaW50KTsKKworQ1JFQVRFIFZBUklBQkxFIHh4dGFiIEFTIHh4dHlwZTsK KworSU5TRVJUIElOVE8geHh0YWIgVkFMVUVTKDEwKTsKKworLS0gaXQgaXMgYW1iaWd1b3VzLCBi dXQgY29sdW1ucyBhcmUgcHJlZmVycmVkCitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHh4dGFiOwor CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBhdmFyIEZST00geHh0YWI7CisKK0NSRUFURSBWQVJJ QUJMRSBwdWJsaWMuYXZhciBBUyBpbnQ7CisKKy0tIHNob3VsZCBiZSBvaywgc2VlIHRoZSB0YWJs ZQorU0VMRUNUIGF2YXIgRlJPTSB4eHRhYjsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgcHVi bGljLmF2YXIgRlJPTSB4eHRhYjsKKworRFJPUCBWQVJJQUJMRSB4eHRhYjsKKworU0VMRUNUIHh4 dGFiLmF2YXIgRlJPTSB4eHRhYjsKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMuYXZhcjsKKworRFJP UCBUWVBFIHh4dHlwZTsKKworRFJPUCBUQUJMRSB4eHRhYjsKKworLS0gVGhlIHZhcmlhYmxlIGNh biBiZSBzaGFkb3dlZCBieSB0YWJsZSBvciBieSBhbGlhcworQ1JFQVRFIFRZUEUgcHVibGljLnN2 YXJfdHlwZSBBUyAoYSBpbnQsIGIgaW50LCBjIGludCk7CitDUkVBVEUgVkFSSUFCTEUgcHVibGlj LnN2YXIgQVMgcHVibGljLnN2YXJfdHlwZTsKKworQ1JFQVRFIFRBQkxFIHB1YmxpYy5zdmFyKGEg aW50LCBiIGludCk7CisKK0lOU0VSVCBJTlRPIHB1YmxpYy5zdmFyIFZBTFVFUygxMCwgMjApOwor CitMRVQgcHVibGljLnN2YXIgPSAoMTAwLCAyMDAsIDMwMCk7CisKKy0tIHNob3VsZCBiZSBvawor LS0gc2hvdyB0YWJsZQorU0VMRUNUICogRlJPTSBwdWJsaWMuc3ZhcjsKK1NFTEVDVCBzdmFyLmEg RlJPTSBwdWJsaWMuc3ZhcjsKK1NFTEVDVCBzdmFyLiogRlJPTSBwdWJsaWMuc3ZhcjsKKworLS0g c2hvdyB2YXJpYWJsZQorU0VMRUNUIHB1YmxpYy5zdmFyOworU0VMRUNUIHB1YmxpYy5zdmFyLmM7 CitTRUxFQ1QgKHB1YmxpYy5zdmFyKS4qOworCistLSB0aGUgdmFyaWFibGUgaXMgc2hhZG93ZWQs IHJhaXNlIGVycm9yCitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworCist LSBjYW4gYmUgZml4ZWQgYnkgYWxpYXMKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGlj LnN2YXIgeDsKKworU0VMRUNUIHN2YXIuYSBGUk9NIHB1YmxpYy5zdmFyOworU0VMRUNUIHN2YXIu KiBGUk9NIHB1YmxpYy5zdmFyOworCistLSBzaG93IHZhcmlhYmxlCitTRUxFQ1QgcHVibGljLnN2 YXI7CitTRUxFQ1QgcHVibGljLnN2YXIuYzsKK1NFTEVDVCAocHVibGljLnN2YXIpLio7CisKKy0t IHRoZSB2YXJpYWJsZSBpcyBzaGFkb3dlZCwgcmFpc2UgZXJyb3IKK1NFTEVDVCBwdWJsaWMuc3Zh ci5jIEZST00gcHVibGljLnN2YXI7CisKKy0tIGNhbiBiZSBmaXhlZCBieSBhbGlhcworU0VMRUNU IHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhciB4OworCitEUk9QIFZBUklBQkxFIHB1Ymxp Yy5zdmFyOworRFJPUCBUQUJMRSBwdWJsaWMuc3ZhcjsKK0RST1AgVFlQRSBwdWJsaWMuc3Zhcl90 eXBlOworCitDUkVBVEUgVFlQRSBhYiBBUyAoYSBpbnRlZ2VyLCBiIGludGVnZXIpOworCitDUkVB VEUgVkFSSUFCTEUgdl9hYiBBUyBhYjsKKworQ1JFQVRFIFRBQkxFIHZfYWIgKGEgaW50ZWdlciwg YiBpbnRlZ2VyKTsKK0lOU0VSVCBJTlRPIHZfYWIgVkFMVUVTKDEwLDIwKTsKKworLS0gd2Ugc2hv dWxkIHNlZSB0YWJsZQorU0VMRUNUIHZfYWIuYSBGUk9NIHZfYWI7CisKK0NSRUFURSBTQ0hFTUEg dl9hYjsKKworQ1JFQVRFIFZBUklBQkxFIHZfYWIuYSBBUyBpbnRlZ2VyOworCistLSB3ZSBzaG91 bGQgc2VlIHRhYmxlCitTRUxFQ1Qgdl9hYi5hIEZST00gdl9hYjsKKworRFJPUCBWQVJJQUJMRSB2 X2FiOworRFJPUCBUQUJMRSB2X2FiOworRFJPUCBUWVBFIGFiOworRFJPUCBWQVJJQUJMRSB2X2Fi LmE7CitEUk9QIFNDSEVNQSB2X2FiOworCitDUkVBVEUgVFlQRSB0X2FtX3R5cGUgQVMgKGIgaW50 KTsKK0NSRUFURSBTQ0hFTUEgeHh4X2FtOworCitTRVQgc2VhcmNoX3BhdGggVE8gcHVibGljOwor CitDUkVBVEUgVkFSSUFCTEUgeHh4X2FtIEFTIHRfYW1fdHlwZTsKK0xFVCB4eHhfYW0gPSBST1co MTApOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB4eHhfYW07CisKK0NSRUFURSBWQVJJQUJM RSB4eHhfYW0uYiBBUyBpbnQ7CitMRVQgOiJEQk5BTUUiLnh4eF9hbS5iID0gMjA7CisKKy0tIHNo b3VsZCBiZSBzdGlsbCBvaworU0VMRUNUIHh4eF9hbTsKKworLS0gc2hvdWxkIGZhaWwsIHRoZSBy ZWZlcmVuY2Ugc2hvdWxkIGJlIGFtYmlndW91cworU0VMRUNUIHh4eF9hbS5iOworCistLSBlbmhh bmNlZCByZWZlcmVuY2VzIHNob3VsZCBiZSBvaworU0VMRUNUIHB1YmxpYy54eHhfYW0uYjsKK1NF TEVDVCA6IkRCTkFNRSIueHh4X2FtLmI7CisKK0NSRUFURSBUQUJMRSB4eHhfYW0oYiAgaW50KTsK K0lOU0VSVCBJTlRPIHh4eF9hbSBWQUxVRVMoMTApOworCistLSB3ZSBzaG91bGQgc2VlIHRhYmxl CitTRUxFQ1QgeHh4X2FtLmIgRlJPTSB4eHhfYW07CitTRUxFQ1QgeC5iIEZST00geHh4X2FtIHg7 CisKK0RST1AgVEFCTEUgeHh4X2FtOworRFJPUCBWQVJJQUJMRSBwdWJsaWMueHh4X2FtOworRFJP UCBWQVJJQUJMRSB4eHhfYW0uYjsKK0RST1AgU0NIRU1BIHh4eF9hbTsKKworQ1JFQVRFIFNDSEVN QSA6IkRCTkFNRSI7CisKK0NSRUFURSBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJO QU1FIiBBUyB0X2FtX3R5cGU7CitDUkVBVEUgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi5i IEFTIGludDsKKworU0VUIHNlYXJjaF9wYXRoIFRPIDoiREJOQU1FIjsKKworLS0gc2hvdWxkIGJl IGFtYmlndW91cworU0VMRUNUIDoiREJOQU1FIi5iOworCistLSBzaG91bGQgYmUgYW1iaWd1b3Vz IHRvbworU0VMRUNUIDoiREJOQU1FIi46IkRCTkFNRSIuYjsKKworQ1JFQVRFIFRBQkxFIDoiREJO QU1FIihiIGludCk7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIDoiREJOQU1FIi5iIEZST00g OiJEQk5BTUUiOworCitEUk9QIFRBQkxFIDoiREJOQU1FIjsKKworRFJPUCBWQVJJQUJMRSA6IkRC TkFNRSIuOiJEQk5BTUUiLmI7CitEUk9QIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuOiJE Qk5BTUUiOworRFJPUCBTQ0hFTUEgOiJEQk5BTUUiOworCitSRVNFVCBzZWFyY2hfcGF0aDsKZGlm ZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3Bn aW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggY2JlNTlmYjA3MC4uYTA1Y2UyMDlkZiAxMDA2NDQK LS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3Bn aW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTE1MDAsNiArMTUwMCw3IEBAIExhcmdlT2JqZWN0RGVz YwogTGF0Y2gKIExhdW5jaGVyTGFzdFN0YXJ0VGltZXNFbnRyeQogTGVycEZ1bmMKK0xldFN0bXQK IExleERlc2NyCiBMZXhlbWVFbnRyeQogTGV4ZW1lSGFzaEtleQpAQCAtMjYwOSw2ICsyNjEwLDcg QEAgU2VyaWFsaXplZFRyYW5zYWN0aW9uU3RhdGUKIFNlc3Npb24KIFNlc3Npb25CYWNrdXBTdGF0 ZQogU2Vzc2lvbkVuZFR5cGUKK1Nlc3Npb25WYXJpYWJsZVZhbHVlCiBTZXRDb25zdHJhaW50U3Rh dGUKIFNldENvbnN0cmFpbnRTdGF0ZURhdGEKIFNldENvbnN0cmFpbnRUcmlnZ2VyRGF0YQpAQCAt MjgwMSw2ICsyODAzLDkgQEAgU3VwcG9ydFJlcXVlc3RSb3dzCiBTdXBwb3J0UmVxdWVzdFNlbGVj dGl2aXR5CiBTdXBwb3J0UmVxdWVzdFNpbXBsaWZ5CiBTdXBwb3J0UmVxdWVzdFdGdW5jTW9ub3Rv bmljCitTVmFyaWFibGUKK1NWYXJpYWJsZURhdGEKK1NWYXJpYWJsZVN0YXRlCiBTeW4KIFN5bmNP cHMKIFN5bmNSZXBDb25maWdEYXRhCi0tIAoyLjQ3LjEKCg== --0000000000009e568d0629bac7df Content-Type: text/x-patch; charset="US-ASCII"; name="v20241220-2-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Disposition: attachment; filename="v20241220-2-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m4xamsb221 RnJvbSA3ZjkwY2M0YTk2Njk4MGYxNDE5NjAyYmExMmY4NmM2NTdhN2Y2YjFjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTU6NDE6NTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDAx LzIyXSBFbmhhbmNpbmcgY2F0YWxvZyBmb3Igc3VwcG9ydCBzZXNzaW9uIHZhcmlhYmxlcyBhbmQK IHJlbGF0ZWQgc3VwcG9ydAoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBzeXN0ZW0gY2F0YWxv ZyB0YWJsZSBwZ192YXJpYWJsZS4gVGhpcyB0YWJsZSBob2xkcyBtZXRhZGF0YSBhYm91dApzZXNz aW9uIHZhcmlhYmxlcyBjcmVhdGVkIGJ5IGNvbW1hbmQgQ1JFQVRFIFZBUklBQkxFLCBhbmQgZHJv cHBlZCBieSBjb21tYW5kIERST1AgVkFSSUFCTEUuCkJvdGggY29tbWFuZHMgYXJlIGltcGxlbWVu dGVkIGJ5IHRoaXMgcGF0Y2guIFBvc3NpYmlsaXR5IHRvIGNoYW5nZSBvd25lciwgc2NoZW1hIG9y IHJlbmFtZS4KCkFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgY29udHJvbGxlZCBi eSBTRUxFQ1Qgb3IgVVBEQVRFIHJpZ2h0cy4gQm90aCByaWdodHMgYXJlCmludHJvZHVjZWQgYnkg dGhpcyBwYXRjaCB0b28uCgpUaGlzIHBhdGNoIGVuaGFuY2luZyBwZ19kdW1wIGFuZCBwc3FsIHRv IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMuIFRoZSBjaGFuZ2VzIGFyZSByZWxhdGVkCnRvIHN5 c3RlbSBjYXRhbG9nLgoKVGhpcyBwYXRjaCBpcyBub3Qgc2hvcnQsIGJ1dCB0aGUgY29kZSBpcyBz aW1wbGUuCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgMTIzICsrKysrLQogZG9jL3NyYy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAg 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 ICAgICAgICB8IDEwMCArKysrLQogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmggICAgICAgICAgICAg ICAgICAgICAgIHwgICAzICsKIHNyYy9iaW4vcHNxbC9oZWxwLmMgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgMSArCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAg ICAgICAgfCAgNDMgKystCiBzcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlICAgICAgICAgICAg ICAgICAgfCAgIDMgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQgICAgICAgICAg ICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oICAgICAgICAgICAg ICAgfCAgIDYgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oICAgICAgICAg IHwgICAxICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8 ICAyMyArKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwg IDgxICsrKysKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8 ICAxNiArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggICAgICAgICAgICAgICAgICAgfCAg IDIgKwogc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmggICAgICAgICAgICAgICAgIHwgICAz ICsKIHNyYy9pbmNsdWRlL3V0aWxzL2FjbC5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSAr CiBzcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCAgICAgICAgICAgICAgICAgfCAgIDkgKwog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kZXBlbmRlbmN5Lm91dCAgICAgIHwgIDE3ICsKIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0ICAgICAgICB8ICAgNCArCiBzcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAgNTAgKysrCiAuLi4v cmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAzNTUgKysrKysrKysr KysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAgICAg fCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3kuc3FsICAgICAgICAgICB8 ICAxNCArCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbCAgICAgICAgICAgICAgICAgfCAg MjEgKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDI2 MyArKysrKysrKysrKysrCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAg ICAgICAgfCAgIDQgKwogNjcgZmlsZXMgY2hhbmdlZCwgMzI1OSBpbnNlcnRpb25zKCspLCAzNyBk ZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3Zh cmlhYmxlLnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92 YXJpYWJsZS5zZ21sCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3Zh cmlhYmxlLnNnbWwKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Zh cmlhYmxlLmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Zhcmlh YmxlLmgKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggY2M2Y2Y5YmVmMC4uNmJi YzZjN2UyOCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTM2OSw2ICszNjksMTEgQEAKICAgICAgIDxlbnRy eT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXVzZXItbWFwcGluZyI+PHN0cnVjdG5hbWU+cGdf dXNlcl9tYXBwaW5nPC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgogICAgICAgPGVudHJ5Pm1h cHBpbmdzIG9mIHVzZXJzIHRvIGZvcmVpZ24gc2VydmVyczwvZW50cnk+CiAgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy12YXJp YWJsZSI+PHN0cnVjdG5hbWU+cGdfdmFyaWFibGU8L3N0cnVjdG5hbWU+PC9saW5rPjwvZW50cnk+ CisgICAgICA8ZW50cnk+c2Vzc2lvbiB2YXJpYWJsZXM8L2VudHJ5PgorICAgICA8L3Jvdz4KICAg ICA8L3Rib2R5PgogICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CkBAIC0zMzI4LDcgKzMzMzMsOCBA QCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVw bGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgIDxsaXRlcmFsPlM8L2xpdGVyYWw+ID0g c2VxdWVuY2UsCiAgICAgICAgPGxpdGVyYWw+ZjwvbGl0ZXJhbD4gPSBmdW5jdGlvbiwKICAgICAg ICA8bGl0ZXJhbD5UPC9saXRlcmFsPiA9IHR5cGUsCi0gICAgICAgPGxpdGVyYWw+bjwvbGl0ZXJh bD4gPSBzY2hlbWEKKyAgICAgICA8bGl0ZXJhbD5uPC9saXRlcmFsPiA9IHNjaGVtYSwKKyAgICAg ICA8bGl0ZXJhbD5WPC9saXRlcmFsPiA9IHNlc3Npb24gdmFyaWFibGUKICAgICAgIDwvcGFyYT48 L2VudHJ5PgogICAgICA8L3Jvdz4KIApAQCAtOTczMiw0ICs5NzM4LDExOSBAQCBTQ1JBTS1TSEEt MjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+Ojxy ZXBsYWNlYWJsZT4mbAogICA8L3RhYmxlPgogIDwvc2VjdDE+CiAKKyA8c2VjdDEgaWQ9ImNhdGFs b2ctcGctdmFyaWFibGUiPgorICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfdmFyaWFibGU8L3N0cnVj dG5hbWU+PC90aXRsZT4KKworICA8aW5kZXh0ZXJtIHpvbmU9ImNhdGFsb2ctcGctdmFyaWFibGUi PgorICAgPHByaW1hcnk+cGdfdmFyaWFibGU8L3ByaW1hcnk+CisgIDwvaW5kZXh0ZXJtPgorCisg IDxwYXJhPgorICAgVGhlIGNhdGFsb2cgPHN0cnVjdG5hbWU+cGdfdmFyaWFibGU8L3N0cnVjdG5h bWU+IHN0b3JlcyBpbmZvcm1hdGlvbiBhYm91dAorICAgc2Vzc2lvbiB2YXJpYWJsZXMuCisgIDwv cGFyYT4KKworICA8dGFibGU+CisgICA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfdmFyaWFibGU8L3N0 cnVjdG5hbWU+IENvbHVtbnM8L3RpdGxlPgorICAgPHRncm91cCBjb2xzPSIxIj4KKyAgICA8dGhl YWQ+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIENvbHVtbiBUeXBlCisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBEZXNjcmlwdGlvbgorICAgICAgPC9wYXJh PjwvZW50cnk+CisgICAgIDwvcm93PgorICAgIDwvdGhlYWQ+CisKKyAgICA8dGJvZHk+CisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZp ZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICBSb3cgaWRlbnRpZmllcgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisg ICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJ0eXBlPC9z dHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxp bmtlbmQ9ImNhdGFsb2ctcGctdHlwZSI+PHN0cnVjdG5hbWU+cGdfdHlwZTwvc3RydWN0bmFtZT48 L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIFRoZSBPSUQgb2YgdGhlIHZhcmlhYmxlJ3MgZGF0YSB0eXBlCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcm5hbWU8L3N0cnVjdGZpZWxkPiA8dHlwZT5u YW1lPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTmFtZSBvZiB0 aGUgc2Vzc2lvbiB2YXJpYWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJuYW1l c3BhY2U8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMg PGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1uYW1lc3BhY2UiPjxzdHJ1Y3RuYW1lPnBnX25hbWVz cGFjZTwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikK KyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBPSUQgb2YgdGhlIG5hbWVz cGFjZSB0aGF0IGNvbnRhaW5zIHRoaXMgdmFyaWFibGUKKyAgICAgIDwvcGFyYT48L2VudHJ5Pgor ICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0 ZmllbGQ+dmFyb3duZXI8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJl ZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1hdXRoaWQiPjxzdHJ1Y3RuYW1lPnBn X2F1dGhpZDwvc3RydWN0bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxk PikKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIE93bmVyIG9mIHRoZSB2YXJp YWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+Cisg ICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1u X2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJ0eXBtb2Q8L3N0cnVjdGZpZWxk PiA8dHlwZT5pbnQ0PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAg PHN0cnVjdGZpZWxkPnZhcnR5cG1vZDwvc3RydWN0ZmllbGQ+IHJlY29yZHMgdHlwZS1zcGVjaWZp YyBkYXRhCisgICAgICAgc3VwcGxpZWQgYXQgdmFyaWFibGUgY3JlYXRpb24gdGltZSAoZm9yIGV4 YW1wbGUsIHRoZSBtYXhpbXVtCisgICAgICAgbGVuZ3RoIG9mIGEgPHR5cGU+dmFyY2hhcjwvdHlw ZT4gY29sdW1uKS4gIEl0IGlzIHBhc3NlZCB0bworICAgICAgIHR5cGUtc3BlY2lmaWMgaW5wdXQg ZnVuY3Rpb25zIGFuZCBsZW5ndGggY29lcmNpb24gZnVuY3Rpb25zLgorICAgICAgIFRoZSB2YWx1 ZSB3aWxsIGdlbmVyYWxseSBiZSAtMSBmb3IgdHlwZXMgdGhhdCBkbyBub3QgbmVlZCA8c3RydWN0 ZmllbGQ+dmFydHlwbW9kPC9zdHJ1Y3RmaWVsZD4uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAg ICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxl X2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZp ZWxkPnZhcmNvbGxhdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAo cmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLWNvbGxhdGlvbiI+PHN0cnVjdG5h bWU+cGdfY29sbGF0aW9uPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwvc3Ry dWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIGRlZmlu ZWQgY29sbGF0aW9uIG9mIHRoZSB2YXJpYWJsZSwgb3IgemVybyBpZiB0aGUgdmFyaWFibGUgaXMK KyAgICAgICBub3Qgb2YgYSBjb2xsYXRhYmxlIGRhdGEgdHlwZS4KKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+dmFyYWNsPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YWNsaXRlbVtdPC90eXBlPgor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgQWNjZXNzIHByaXZpbGVnZXM7IHNl ZQorICAgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1ncmFudCIvPiBhbmQKKyAgICAgICA8eHJlZiBs aW5rZW5kPSJzcWwtcmV2b2tlIi8+CisgICAgICAgZm9yIGRldGFpbHMKKyAgICAgIDwvcGFyYT48 L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgIDwvdGJvZHk+CisgICA8L3Rncm91cD4KKyAgPC90 YWJsZT4KKyA8L3NlY3QxPgogPC9jaGFwdGVyPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Rk bC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IGRlYTA0ZDY0ZGIuLjE2Y2JmNTEz YTkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv ZGRsLnNnbWwKQEAgLTE5OTMsNiArMTk5Myw3IEBAIFJFVk9LRSBBTEwgT04gYWNjb3VudHMgRlJP TSBQVUJMSUM7CiAgICAgICAgRm9yIHNlcXVlbmNlcywgdGhpcyBwcml2aWxlZ2UgYWxzbyBhbGxv d3MgdXNlIG9mIHRoZQogICAgICAgIDxmdW5jdGlvbj5jdXJydmFsPC9mdW5jdGlvbj4gZnVuY3Rp b24uCiAgICAgICAgRm9yIGxhcmdlIG9iamVjdHMsIHRoaXMgcHJpdmlsZWdlIGFsbG93cyB0aGUg b2JqZWN0IHRvIGJlIHJlYWQuCisgICAgICAgRm9yIHNlc3Npb24gdmFyaWFibGVzLCB0aGlzICBw cml2aWxlZ2UgYWxsb3dzIHRoZSBvYmplY3QgdG8gYmUgcmVhZC4KICAgICAgIDwvcGFyYT4KICAg ICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTIwMjgsNiArMjAyOSw4IEBA IFJFVk9LRSBBTEwgT04gYWNjb3VudHMgRlJPTSBQVUJMSUM7CiAgICAgICAgPGZ1bmN0aW9uPnNl dHZhbDwvZnVuY3Rpb24+IGZ1bmN0aW9ucy4KICAgICAgICBGb3IgbGFyZ2Ugb2JqZWN0cywgdGhp cyBwcml2aWxlZ2UgYWxsb3dzIHdyaXRpbmcgb3IgdHJ1bmNhdGluZyB0aGUKICAgICAgICBvYmpl Y3QuCisgICAgICAgRm9yIHNlc3Npb24gdmFyaWFibGVzLCB0aGlzIHByaXZpbGVnZSBhbGxvd3Mg dG8gc2V0IGEgdmFsdWUgdG8gdGhlCisgICAgICAgb2JqZWN0LgogICAgICAgPC9wYXJhPgogICAg ICA8L2xpc3RpdGVtPgogICAgIDwvdmFybGlzdGVudHJ5PgpAQCAtMjI3MSw3ICsyMjc0LDggQEAg UkVWT0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBVQkxJQzsKICAgICAgICA8bGl0ZXJhbD5MQVJH RSBPQkpFQ1Q8L2xpdGVyYWw+LAogICAgICAgIDxsaXRlcmFsPlNFUVVFTkNFPC9saXRlcmFsPiwK ICAgICAgICA8bGl0ZXJhbD5UQUJMRTwvbGl0ZXJhbD4gKGFuZCB0YWJsZS1saWtlIG9iamVjdHMp LAotICAgICAgIHRhYmxlIGNvbHVtbgorICAgICAgIHRhYmxlIGNvbHVtbiwKKyAgICAgICA8bGl0 ZXJhbD5WQVJJQUJMRTwvbGl0ZXJhbD4KICAgICAgIDwvZW50cnk+CiAgICAgIDwvcm93PgogICAg ICA8cm93PgpAQCAtMjI4Niw3ICsyMjkwLDggQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50cyBGUk9N IFBVQkxJQzsKICAgICAgICA8bGl0ZXJhbD5MQVJHRSBPQkpFQ1Q8L2xpdGVyYWw+LAogICAgICAg IDxsaXRlcmFsPlNFUVVFTkNFPC9saXRlcmFsPiwKICAgICAgICA8bGl0ZXJhbD5UQUJMRTwvbGl0 ZXJhbD4sCi0gICAgICAgdGFibGUgY29sdW1uCisgICAgICAgdGFibGUgY29sdW1uLAorICAgICAg IDxsaXRlcmFsPlZBUklBQkxFPC9saXRlcmFsPgogICAgICAgPC9lbnRyeT4KICAgICAgPC9yb3c+ CiAgICAgIDxyb3c+CkBAIC0yNDczLDYgKzI0NzgsMTIgQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50 cyBGUk9NIFBVQkxJQzsKICAgICAgIDxlbnRyeT48bGl0ZXJhbD5VPC9saXRlcmFsPjwvZW50cnk+ CiAgICAgICA8ZW50cnk+PGxpdGVyYWw+XGRUKzwvbGl0ZXJhbD48L2VudHJ5PgogICAgICA8L3Jv dz4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD5WQVJJQUJMRTwvbGl0ZXJhbD48 L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPnJ3PC9saXRlcmFsPjwvZW50cnk+CisgICAg ICA8ZW50cnk+PGxpdGVyYWw+bm9uZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5Pjxs aXRlcmFsPlxkVis8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgPC9yb3c+CiAgICAgPC90Ym9keT4K ICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpAQCAtNTMyMyw2ICs1MzM0LDMxIEBAIEVYUExBSU4g U0VMRUNUIGNvdW50KCopIEZST00gbWVhc3VyZW1lbnQgV0hFUkUgbG9nZGF0ZSAmZ3Q7PSBEQVRF ICcyMDA4LTAxLTAxJzsKICAgIDwvcGFyYT4KICA8L3NlY3QxPgogCisgIDxzZWN0MSBpZD0iZGRs LXNlc3Npb24tdmFyaWFibGVzIj4KKyAgIDx0aXRsZT5TZXNzaW9uIFZhcmlhYmxlczwvdGl0bGU+ CisKKyAgIDxpbmRleHRlcm0gem9uZT0iZGRsLXNlc3Npb24tdmFyaWFibGVzIj4KKyAgICA8cHJp bWFyeT5TZXNzaW9uIHZhcmlhYmxlczwvcHJpbWFyeT4KKyAgIDwvaW5kZXh0ZXJtPgorCisgICA8 aW5kZXh0ZXJtPgorICAgIDxwcmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3ByaW1hcnk+CisgICA8 L2luZGV4dGVybT4KKworICAgPHBhcmE+CisgICAgU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGRhdGFi YXNlIG9iamVjdHMgdGhhdCBjYW4gaG9sZCBhIHZhbHVlLgorICAgIFNlc3Npb24gdmFyaWFibGVz LCBsaWtlIHJlbGF0aW9ucywgZXhpc3Qgd2l0aGluIGEgc2NoZW1hIGFuZCB0aGVpciBhY2Nlc3MK KyAgICBpcyBjb250cm9sbGVkIHZpYSA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gYW5kIDxjb21t YW5kPlJFVk9LRTwvY29tbWFuZD4KKyAgICBjb21tYW5kcy4gIEEgc2Vzc2lvbiB2YXJpYWJsZSBj YW4gYmUgY3JlYXRlZCBieSB0aGUgPGNvbW1hbmQ+Q1JFQVRFCisgICAgVkFSSUFCTEU8L2NvbW1h bmQ+IGNvbW1hbmQuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSBzZXNzaW9uIHZh cmlhYmxlIGhvbGRzIHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAgVGhpcyB2YWx1ZSBpcyBwcml2 YXRlCisgICAgdG8gZWFjaCBzZXNzaW9uIGFuZCBpcyByZWxlYXNlZCB3aGVuIHRoZSBzZXNzaW9u IGVuZHMuCisgICA8L3BhcmE+CisgIDwvc2VjdDE+CisKICA8c2VjdDEgaWQ9ImRkbC1vdGhlcnMi PgogICA8dGl0bGU+T3RoZXIgRGF0YWJhc2UgT2JqZWN0czwvdGl0bGU+CiAKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCmluZGV4IDQ3 MzcwZTU4MWEuLmQwNDFhODczMzUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbApAQCAtMjUyNjksNiArMjUyNjksMjUgQEAgU0VM RUNUIGhhc19mdW5jdGlvbl9wcml2aWxlZ2UoJ2pvZXVzZXInLCAnbXlmdW5jKGludCwgdGV4dCkn LCAnZXhlY3V0ZScpOwogICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICAgPC9yb3c+CiAKKyAg ICAgIDxyb3c+CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJv bGU9ImZ1bmNfc2lnbmF0dXJlIj4KKyAgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAgIDxwcmlt YXJ5Pmhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZTwvcHJpbWFyeT4KKyAgICAgICAgPC9p bmRleHRlcm0+CisgICAgICAgIDxmdW5jdGlvbj5oYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2U8L2Z1bmN0aW9uPiAoCisgICAgICAgICAgPG9wdGlvbmFsPiA8cGFyYW1ldGVyPnVzZXI8L3Bh cmFtZXRlcj4gPHR5cGU+bmFtZTwvdHlwZT4gb3IgPHR5cGU+b2lkPC90eXBlPiwgPC9vcHRpb25h bD4KKyAgICAgICAgICA8cGFyYW1ldGVyPnNlc3Npb25fdmFyaWFibGU8L3BhcmFtZXRlcj4gPHR5 cGU+dGV4dDwvdHlwZT4gb3IgPHR5cGU+b2lkPC90eXBlPiwKKyAgICAgICAgICA8cGFyYW1ldGVy PnByaXZpbGVnZTwvcGFyYW1ldGVyPiA8dHlwZT50ZXh0PC90eXBlPiApCisgICAgICAgIDxyZXR1 cm52YWx1ZT5ib29sZWFuPC9yZXR1cm52YWx1ZT4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBh cmE+CisgICAgICAgIERvZXMgdXNlciBoYXZlIHByaXZpbGVnZSBmb3Igc2Vzc2lvbiB2YXJpYWJs ZT8KKyAgICAgICAgQWxsb3dhYmxlIHByaXZpbGVnZSB0eXBlcyBhcmUKKyAgICAgICAgPGxpdGVy YWw+U0VMRUNUPC9saXRlcmFsPiwgYW5kCisgICAgICAgIDxsaXRlcmFsPlVQREFURTwvbGl0ZXJh bD4uCisgICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgICA8L3Jvdz4KKwogICAgICAgPHJvdz4K ICAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iZnVuY19z aWduYXR1cmUiPgogICAgICAgICA8aW5kZXh0ZXJtPgpAQCAtMjU3OTQsNiArMjU4MTMsMTkgQEAg U0VMRUNUIHJlbG5hbWUgRlJPTSBwZ19jbGFzcyBXSEVSRSBwZ190YWJsZV9pc192aXNpYmxlKG9p ZCk7CiAgICAgICAgIElzIHR5cGUgKG9yIGRvbWFpbikgdmlzaWJsZSBpbiBzZWFyY2ggcGF0aD8K ICAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgIDwvcm93PgorCisgICAgICA8cm93PgorICAg ICAgIDxlbnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3NpZ25h dHVyZSI+CisgICAgICAgIDxpbmRleHRlcm0+CisgICAgICAgICA8cHJpbWFyeT5wZ192YXJpYWJs ZV9pc192aXNpYmxlPC9wcmltYXJ5PgorICAgICAgICA8L2luZGV4dGVybT4KKyAgICAgICAgPGZ1 bmN0aW9uPnBnX3ZhcmlhYmxlX2lzX3Zpc2libGU8L2Z1bmN0aW9uPiAoIDxwYXJhbWV0ZXI+dmFy aWFibGU8L3BhcmFtZXRlcj4gPHR5cGU+b2lkPC90eXBlPiApCisgICAgICAgIDxyZXR1cm52YWx1 ZT5ib29sZWFuPC9yZXR1cm52YWx1ZT4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+Cisg ICAgICAgIElzIHNlc3Npb24gdmFyaWFibGUgdmlzaWJsZSBpbiBzZWFyY2ggcGF0aD8KKyAgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgIDwvcm93PgogICAgICA8L3Rib2R5PgogICAgIDwvdGdy b3VwPgogICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21s IGIvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwKaW5kZXggZjU0ZjI1YzFjNi4uZDBjYjUzNzYz YSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL2dsb3NzYXJ5LnNnbWwKQEAgLTE2NjQsNiArMTY2NCwyMSBAQAogICAgPC9nbG9zc2RlZj4K ICAgPC9nbG9zc2VudHJ5PgogCisgIDxnbG9zc2VudHJ5IGlkPSJnbG9zc2FyeS1zZXNzaW9uLXZh cmlhYmxlIj4KKyAgIDxnbG9zc3Rlcm0+U2Vzc2lvbiB2YXJpYWJsZTwvZ2xvc3N0ZXJtPgorICAg PGdsb3NzZGVmPgorICAgIDxwYXJhPgorICAgICBBIHBlcnNpc3RlbnQgZGF0YWJhc2Ugb2JqZWN0 IHRoYXQgaG9sZHMgYSB2YWx1ZSBpbiBzZXNzaW9uIG1lbW9yeS4gIFRoaXMKKyAgICAgdmFsdWUg aXMgcHJpdmF0ZSB0byBlYWNoIHNlc3Npb24gYW5kIGlzIHJlbGVhc2VkIHdoZW4gdGhlIHNlc3Np b24gZW5kcy4KKyAgICAgUmVhZCBvciB3cml0ZSBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZXMg aXMgY29udHJvbGxlZCBieSBwcml2aWxlZ2VzLAorICAgICBzaW1pbGFyIHRvIG90aGVyIGRhdGFi YXNlIG9iamVjdHMuCisgICAgPC9wYXJhPgorICAgIDxwYXJhPgorICAgICBGb3IgbW9yZSBpbmZv cm1hdGlvbiwgc2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyIvPi4KKyAg ICA8L3BhcmE+CisgICA8L2dsb3NzZGVmPgorICA8L2dsb3NzZW50cnk+CisKICAgPGdsb3NzZW50 cnkgaWQ9Imdsb3NzYXJ5LXNoYXJlZC1tZW1vcnkiPgogICAgPGdsb3NzdGVybT5TaGFyZWQgbWVt b3J5PC9nbG9zc3Rlcm0+CiAgICA8Z2xvc3NkZWY+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cmVmL2FsbGZpbGVzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKaW5kZXgg ZjViZTYzODg2Ny4uMmY2N2RlM2UyMSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxm aWxlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbApAQCAtNDcsNiAr NDcsNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlz IGRpcmVjdG9yeS4KIDwhRU5USVRZIGFsdGVyVHlwZSAgICAgICAgICBTWVNURU0gImFsdGVyX3R5 cGUuc2dtbCI+CiA8IUVOVElUWSBhbHRlclVzZXIgICAgICAgICAgU1lTVEVNICJhbHRlcl91c2Vy LnNnbWwiPgogPCFFTlRJVFkgYWx0ZXJVc2VyTWFwcGluZyAgIFNZU1RFTSAiYWx0ZXJfdXNlcl9t YXBwaW5nLnNnbWwiPgorPCFFTlRJVFkgYWx0ZXJWYXJpYWJsZSAgICAgIFNZU1RFTSAiYWx0ZXJf dmFyaWFibGUuc2dtbCI+CiA8IUVOVElUWSBhbHRlclZpZXcgICAgICAgICAgU1lTVEVNICJhbHRl cl92aWV3LnNnbWwiPgogPCFFTlRJVFkgYW5hbHl6ZSAgICAgICAgICAgIFNZU1RFTSAiYW5hbHl6 ZS5zZ21sIj4KIDwhRU5USVRZIGJlZ2luICAgICAgICAgICAgICBTWVNURU0gImJlZ2luLnNnbWwi PgpAQCAtOTksNiArMTAwLDcgQEAgQ29tcGxldGUgbGlzdCBvZiB1c2FibGUgc2dtbCBzb3VyY2Ug ZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8IUVOVElUWSBjcmVhdGVUeXBlICAgICAgICAgU1lT VEVNICJjcmVhdGVfdHlwZS5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZVVzZXIgICAgICAgICBTWVNU RU0gImNyZWF0ZV91c2VyLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlVXNlck1hcHBpbmcgIFNZU1RF TSAiY3JlYXRlX3VzZXJfbWFwcGluZy5zZ21sIj4KKzwhRU5USVRZIGNyZWF0ZVZhcmlhYmxlICAg ICBTWVNURU0gImNyZWF0ZV92YXJpYWJsZS5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZVZpZXcgICAg ICAgICBTWVNURU0gImNyZWF0ZV92aWV3LnNnbWwiPgogPCFFTlRJVFkgZGVhbGxvY2F0ZSAgICAg ICAgIFNZU1RFTSAiZGVhbGxvY2F0ZS5zZ21sIj4KIDwhRU5USVRZIGRlY2xhcmUgICAgICAgICAg ICBTWVNURU0gImRlY2xhcmUuc2dtbCI+CkBAIC0xNDcsNiArMTQ5LDcgQEAgQ29tcGxldGUgbGlz dCBvZiB1c2FibGUgc2dtbCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8IUVOVElU WSBkcm9wVHlwZSAgICAgICAgICAgU1lTVEVNICJkcm9wX3R5cGUuc2dtbCI+CiA8IUVOVElUWSBk cm9wVXNlciAgICAgICAgICAgU1lTVEVNICJkcm9wX3VzZXIuc2dtbCI+CiA8IUVOVElUWSBkcm9w VXNlck1hcHBpbmcgICAgU1lTVEVNICJkcm9wX3VzZXJfbWFwcGluZy5zZ21sIj4KKzwhRU5USVRZ IGRyb3BWYXJpYWJsZSAgICAgICBTWVNURU0gImRyb3BfdmFyaWFibGUuc2dtbCI+CiA8IUVOVElU WSBkcm9wVmlldyAgICAgICAgICAgU1lTVEVNICJkcm9wX3ZpZXcuc2dtbCI+CiA8IUVOVElUWSBl bmQgICAgICAgICAgICAgICAgU1lTVEVNICJlbmQuc2dtbCI+CiA8IUVOVElUWSBleGVjdXRlICAg ICAgICAgICAgU1lTVEVNICJleGVjdXRlLnNnbWwiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0 ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwKaW5kZXggODlhYWNlYzRmYS4uYTU4NTJkMzI1NiAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21sCkBA IC01MSw2ICs1MSwxMSBAQCBHUkFOVCB7IHsgVVNBR0UgfCBDUkVBVEUgfQogICAgIE9OIFNDSEVN QVMKICAgICBUTyB7IFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9s ZV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5dIFsgV0lUSCBHUkFOVCBPUFRJ T04gXQogCitHUkFOVCB7IHsgU0VMRUNUIHwgVVBEQVRFIH0KKyAgICBbLCAuLi5dIHwgQUxMIFsg UFJJVklMRUdFUyBdIH0KKyAgICBPTiBWQVJJQUJMRVMKKyAgICBUTyB7IFsgR1JPVVAgXSA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBQVUJM SUMgfSBbLCAuLi5dIFsgV0lUSCBHUkFOVCBPUFRJT04gXQorCiBSRVZPS0UgWyBHUkFOVCBPUFRJ T04gRk9SIF0KICAgICB7IHsgU0VMRUNUIHwgSU5TRVJUIHwgVVBEQVRFIHwgREVMRVRFIHwgVFJV TkNBVEUgfCBSRUZFUkVOQ0VTIHwgVFJJR0dFUiB8IE1BSU5UQUlOIH0KICAgICBbLCAuLi5dIHwg QUxMIFsgUFJJVklMRUdFUyBdIH0KQEAgLTgzLDYgKzg4LDEyIEBAIFJFVk9LRSBbIEdSQU5UIE9Q VElPTiBGT1IgXQogICAgIE9OIFNDSEVNQVMKICAgICBGUk9NIHsgWyBHUk9VUCBdIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiB8IFBVQkxJQyB9 IFssIC4uLl0KICAgICBbIENBU0NBREUgfCBSRVNUUklDVCBdCisKK1JFVk9LRSBbIEdSQU5UIE9Q VElPTiBGT1IgXQorICAgIHsgeyBTRUxFQ1QgfCBVUERBVEUgfSBbLCAuLi5dIHwgQUxMIFsgUFJJ VklMRUdFUyBdIH0KKyAgICBPTiBWQVJJQUJMRVMKKyAgICBGUk9NIHsgWyBHUk9VUCBdIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiB8IFBVQkxJ QyB9IFssIC4uLl0KKyAgICBbIENBU0NBREUgfCBSRVNUUklDVCBdCiA8L3N5bm9wc2lzPgogIDwv cmVmc3lub3BzaXNkaXY+CiAKQEAgLTExNywxNCArMTI4LDE0IEBAIFJFVk9LRSBbIEdSQU5UIE9Q VElPTiBGT1IgXQogICA8cGFyYT4KICAgIEN1cnJlbnRseSwKICAgIG9ubHkgdGhlIHByaXZpbGVn ZXMgZm9yIHNjaGVtYXMsIHRhYmxlcyAoaW5jbHVkaW5nIHZpZXdzIGFuZCBmb3JlaWduCi0gICB0 YWJsZXMpLCBzZXF1ZW5jZXMsIGZ1bmN0aW9ucywgYW5kIHR5cGVzIChpbmNsdWRpbmcgZG9tYWlu cykgY2FuIGJlCi0gICBhbHRlcmVkLiAgRm9yIHRoaXMgY29tbWFuZCwgZnVuY3Rpb25zIGluY2x1 ZGUgYWdncmVnYXRlcyBhbmQgcHJvY2VkdXJlcy4KLSAgIFRoZSB3b3JkcyA8bGl0ZXJhbD5GVU5D VElPTlM8L2xpdGVyYWw+IGFuZCA8bGl0ZXJhbD5ST1VUSU5FUzwvbGl0ZXJhbD4gYXJlCi0gICBl cXVpdmFsZW50IGluIHRoaXMgY29tbWFuZC4gICg8bGl0ZXJhbD5ST1VUSU5FUzwvbGl0ZXJhbD4g aXMgcHJlZmVycmVkCi0gICBnb2luZyBmb3J3YXJkIGFzIHRoZSBzdGFuZGFyZCB0ZXJtIGZvciBm dW5jdGlvbnMgYW5kIHByb2NlZHVyZXMgdGFrZW4KLSAgIHRvZ2V0aGVyLiAgSW4gZWFybGllciBQ b3N0Z3JlU1FMIHJlbGVhc2VzLCBvbmx5IHRoZQotICAgd29yZCA8bGl0ZXJhbD5GVU5DVElPTlM8 L2xpdGVyYWw+IHdhcyBhbGxvd2VkLiAgSXQgaXMgbm90IHBvc3NpYmxlIHRvIHNldAotICAgZGVm YXVsdCBwcml2aWxlZ2VzIGZvciBmdW5jdGlvbnMgYW5kIHByb2NlZHVyZXMgc2VwYXJhdGVseS4p CisgICB0YWJsZXMpLCBzZXF1ZW5jZXMsIGZ1bmN0aW9ucywgdHlwZXMgKGluY2x1ZGluZyBkb21h aW5zKSwgYW5kIHNlc3Npb24KKyAgIHZhcmlhYmxlcyBjYW4gYmUgYWx0ZXJlZC4gIEZvciB0aGlz IGNvbW1hbmQsIGZ1bmN0aW9ucyBpbmNsdWRlIGFnZ3JlZ2F0ZXMKKyAgIGFuZCBwcm9jZWR1cmVz LiAgVGhlIHdvcmRzIDxsaXRlcmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4gYW5kCisgICA8bGl0ZXJh bD5ST1VUSU5FUzwvbGl0ZXJhbD4gYXJlIGVxdWl2YWxlbnQgaW4gdGhpcyBjb21tYW5kLgorICAg KDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBpcyBwcmVmZXJyZWQgZ29pbmcgZm9yd2FyZCBh cyB0aGUgc3RhbmRhcmQKKyAgIHRlcm0gZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyB0YWtl biB0b2dldGhlci4gIEluIGVhcmxpZXIgUG9zdGdyZVNRTAorICAgcmVsZWFzZXMsIG9ubHkgdGhl IHdvcmQgPGxpdGVyYWw+RlVOQ1RJT05TPC9saXRlcmFsPiB3YXMgYWxsb3dlZC4gIEl0IGlzIG5v dAorICAgcG9zc2libGUgdG8gc2V0IGRlZmF1bHQgcHJpdmlsZWdlcyBmb3IgZnVuY3Rpb25zIGFu ZCBwcm9jZWR1cmVzIHNlcGFyYXRlbHkuKQogICA8L3BhcmE+CiAKICAgPHBhcmE+CmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMC4uOTZkMjU4NjQyMwotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0 ZXJfdmFyaWFibGUuc2dtbApAQCAtMCwwICsxLDE3OCBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3Jl Zi9hbHRlcl92YXJpYWJsZS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8 cmVmZW50cnkgaWQ9InNxbC1hbHRlcnZhcmlhYmxlIj4KKyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1h bHRlcnZhcmlhYmxlIj4KKyAgPHByaW1hcnk+QUxURVIgVkFSSUFCTEU8L3ByaW1hcnk+CisgPC9p bmRleHRlcm0+CisKKyA8aW5kZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNzaW9uIHZhcmlhYmxlPC9w cmltYXJ5PgorICA8c2Vjb25kYXJ5PmFsdGVyaW5nPC9zZWNvbmRhcnk+CisgPC9pbmRleHRlcm0+ CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+QUxURVIgVkFSSUFCTEU8L3JlZmVudHJ5 dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0g TGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJlZm5h bWVkaXY+CisgIDxyZWZuYW1lPkFMVEVSIFZBUklBQkxFPC9yZWZuYW1lPgorICA8cmVmcHVycG9z ZT4KKyAgIGNoYW5nZSB0aGUgZGVmaW5pdGlvbiBvZiBhIHNlc3Npb24gdmFyaWFibGUKKyAgPC9y ZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNp cz4KK0FMVEVSIFZBUklBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9y ZXBsYWNlYWJsZT4gT1dORVIgVE8geyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3 X293bmVyPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1JPTEUgfCBDVVJSRU5UX1VTRVIgfCBTRVNT SU9OX1VTRVIgfQorQUxURVIgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi Pm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5ld19uYW1lPC9yZXBsYWNlYWJsZT4KK0FMVEVSIFZBUklBQkxFIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gU0VUIFNDSEVNQSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X3NjaGVtYTwvcmVwbGFjZWFibGU+Cis8L3N5bm9wc2lz PgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlwdGlv bjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+QUxURVIgVkFSSUFCTEU8L2Nv bW1hbmQ+IGNvbW1hbmQgY2hhbmdlcyB0aGUgZGVmaW5pdGlvbiBvZiBhbgorICAgZXhpc3Rpbmcg c2Vzc2lvbiB2YXJpYWJsZS4gVGhlcmUgYXJlIHNldmVyYWwgc3ViZm9ybXM6CisKKyAgPHZhcmlh YmxlbGlzdD4KKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+T1dORVI8L2xp dGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZv cm0gY2hhbmdlcyB0aGUgb3duZXIgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgICAgIDwvcGFy YT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50 cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+UkVOQU1FPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlz dGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhpcyBmb3JtIGNoYW5nZXMgdGhlIG5hbWUgb2Yg dGhlIHNlc3Npb24gdmFyaWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAg PC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+ U0VUIFNDSEVNQTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFRoaXMgZm9ybSBtb3ZlcyB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBpbnRvIGFub3RoZXIg c2NoZW1hLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5 PgorCisgIDwvdmFyaWFibGVsaXN0PgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBPbmx5IHRo ZSBvd25lciBvciBhIHN1cGVydXNlciBpcyBhbGxvd2VkIHRvIGFsdGVyIGEgc2Vzc2lvbiB2YXJp YWJsZS4KKyAgIEluIG9yZGVyIHRvIG1vdmUgYSBzZXNzaW9uIHZhcmlhYmxlIGZyb20gb25lIHNj aGVtYSB0byBhbm90aGVyLCB0aGUgdXNlcgorICAgbXVzdCBhbHNvIGhhdmUgdGhlIDxsaXRlcmFs PkNSRUFURTwvbGl0ZXJhbD4gcHJpdmlsZWdlIG9uIHRoZSBuZXcgc2NoZW1hIChvcgorICAgYmUg YSBzdXBlcnVzZXIpLgorCisgICBJbiBvcmRlciB0byBtb3ZlIHRoZSBzZXNzaW9uIHZhcmlhYmxl IG93bmVyc2hpcCBmcm9tIG9uZSByb2xlIHRvIGFub3RoZXIsCisgICB0aGUgdXNlciBtdXN0IGFs c28gYmUgYSBkaXJlY3Qgb3IgaW5kaXJlY3QgbWVtYmVyIG9mIHRoZSBuZXcKKyAgIG93bmluZyBy b2xlLCBhbmQgdGhhdCByb2xlIG11c3QgaGF2ZSB0aGUgPGxpdGVyYWw+Q1JFQVRFPC9saXRlcmFs PiBwcml2aWxlZ2UKKyAgIG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxlJ3Mgc2NoZW1hIChvciBiZSBh IHN1cGVydXNlcikuIFRoZXNlIHJlc3RyaWN0aW9ucworICAgZW5mb3JjZSB0aGF0IGFsdGVyaW5n IHRoZSBvd25lciBkb2Vzbid0IGRvIGFueXRoaW5nIHlvdSBjb3VsZG4ndCBkbyBieQorICAgZHJv cHBpbmcgYW5kIHJlY3JlYXRpbmcgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgIDwvcGFyYT4KKyA8 L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisK KyAgIDxwYXJhPgorICAgIDx2YXJpYWJsZWxpc3Q+CisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAg ICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgbmFt ZSAocG9zc2libHkgc2NoZW1hLXF1YWxpZmllZCkgb2YgdGhlIGV4aXN0aW5nIHNlc3Npb24gdmFy aWFibGUKKyAgICAgICAgdG8gYWx0ZXIuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRl bT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0 ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfb3duZXI8L3JlcGxhY2VhYmxl PjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIHVz ZXIgbmFtZSBvZiB0aGUgbmV3IG93bmVyIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICAg IDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAg IDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmV3X25hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAg ICA8cGFyYT4KKyAgICAgICAgVGhlIG5ldyBuYW1lIGZvciB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4K KyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4K KworICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPm5ld19zY2hlbWE8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAgIDxsaXN0aXRl bT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgVGhlIG5ldyBzY2hlbWEgZm9yIHRoZSBzZXNzaW9u IHZhcmlhYmxlLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFy bGlzdGVudHJ5PgorICAgIDwvdmFyaWFibGVsaXN0PgorICAgPC9wYXJhPgorICA8L3JlZnNlY3Qx PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCisgIDxwYXJhPgor ICAgVG8gcmVuYW1lIGEgc2Vzc2lvbiB2YXJpYWJsZToKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVS IFZBUklBQkxFIGZvbyBSRU5BTUUgVE8gYm9vOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJh PgorCisgIDxwYXJhPgorICAgVG8gY2hhbmdlIHRoZSBvd25lciBvZiB0aGUgc2Vzc2lvbiB2YXJp YWJsZSA8bGl0ZXJhbD5ib288L2xpdGVyYWw+IHRvCisgICA8bGl0ZXJhbD5qb2U8L2xpdGVyYWw+ OgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgVkFSSUFCTEUgYm9vIE9XTkVSIFRPIGpvZTsKKzwv cHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRvIGNoYW5nZSB0aGUg c2NoZW1hIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIDxsaXRlcmFsPmJvbzwvbGl0ZXJhbD4gdG8K KyAgIDxsaXRlcmFsPnByaXZhdGU8L2xpdGVyYWw+OgorPHByb2dyYW1saXN0aW5nPgorQUxURVIg VkFSSUFCTEUgYm9vIFNFVCBTQ0hFTUEgcHJpdmF0ZTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwv cGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0 eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBTZXNzaW9uIHZhcmlhYmxlcyBhbmQgdGhpcyBjb21t YW5kIGluIHBhcnRpY3VsYXIgYXJlIGEgUG9zdGdyZVNRTCBleHRlbnNpb24uCisgIDwvcGFyYT4K KyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxIGlkPSJzcWwtYWx0ZXJ2YXJpYWJsZS1zZWUtYWxz byI+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5s aW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+PC9t ZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48L21l bWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+Cis8L3JlZmVudHJ5PgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jb21tZW50LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Nv bW1lbnQuc2dtbAppbmRleCA1YjQzYzU2YjEzLi4yMWNkODA4MThmIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQu c2dtbApAQCAtNjUsNiArNjUsNyBAQCBDT01NRU5UIE9OCiAgIFRSQU5TRk9STSBGT1IgPHJlcGxh Y2VhYmxlPnR5cGVfbmFtZTwvcmVwbGFjZWFibGU+IExBTkdVQUdFIDxyZXBsYWNlYWJsZT5sYW5n X25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFRSSUdHRVIgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnRyaWdnZXJfbmFtZTwvcmVwbGFjZWFibGU+IE9OIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBUWVBFIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFtZTwvcmVwbGFjZWFibGU+IHwKKyAgVkFSSUFC TEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJs ZT4gfAogICBWSUVXIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFtZTwv cmVwbGFjZWFibGU+CiB9IElTIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnN0cmlu Z19saXRlcmFsPC9yZXBsYWNlYWJsZT4gfCBOVUxMIH0KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zY2hl bWEuc2dtbAppbmRleCBlZDY5Mjk4Y2NjLi5kMmJiMjY1MjA5IDEwMDY0NAotLS0gYS9kb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV9zY2hlbWEuc2dtbApAQCAtMTAzLDkgKzEwMywxMCBAQCBDUkVBVEUgU0NIRU1BIElGIE5PVCBF WElTVFMgQVVUSE9SSVpBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9z cAogICAgICAgICBzY2hlbWEuIEN1cnJlbnRseSwgb25seSA8Y29tbWFuZD5DUkVBVEUKICAgICAg ICAgVEFCTEU8L2NvbW1hbmQ+LCA8Y29tbWFuZD5DUkVBVEUgVklFVzwvY29tbWFuZD4sIDxjb21t YW5kPkNSRUFURQogICAgICAgICBJTkRFWDwvY29tbWFuZD4sIDxjb21tYW5kPkNSRUFURSBTRVFV RU5DRTwvY29tbWFuZD4sIDxjb21tYW5kPkNSRUFURQotICAgICAgICBUUklHR0VSPC9jb21tYW5k PiBhbmQgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGFyZSBhY2NlcHRlZCBhcyBjbGF1c2VzCi0g ICAgICAgIHdpdGhpbiA8Y29tbWFuZD5DUkVBVEUgU0NIRU1BPC9jb21tYW5kPi4gT3RoZXIga2lu ZHMgb2Ygb2JqZWN0cyBtYXkKLSAgICAgICAgYmUgY3JlYXRlZCBpbiBzZXBhcmF0ZSBjb21tYW5k cyBhZnRlciB0aGUgc2NoZW1hIGlzIGNyZWF0ZWQuCisgICAgICAgIFRSSUdHRVI8L2NvbW1hbmQ+ LCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gYW5kIDxjb21tYW5kPkNSRUFURQorICAgICAgICBW QVJJQUJMRTwvY29tbWFuZD4gYXJlIGFjY2VwdGVkIGFzIGNsYXVzZXMgd2l0aGluIDxjb21tYW5k PkNSRUFURQorICAgICAgICBTQ0hFTUE8L2NvbW1hbmQ+LiBPdGhlciBraW5kcyBvZiBvYmplY3Rz IG1heSBiZSBjcmVhdGVkIGluIHNlcGFyYXRlCisgICAgICAgIGNvbW1hbmRzIGFmdGVyIHRoZSBz Y2hlbWEgaXMgY3JlYXRlZC4KICAgICAgICA8L3BhcmE+CiAgICAgICA8L2xpc3RpdGVtPgogICAg ICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTIxNCw2ICsyMTUsMTEgQEAgQ1JFQVRFIFZJRVcgaG9sbHl3 b29kLndpbm5lcnMgQVMKICAgIFRoZSA8bGl0ZXJhbD5JRiBOT1QgRVhJU1RTPC9saXRlcmFsPiBv cHRpb24gaXMgYQogICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBleHRl bnNpb24uCiAgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5DUkVBVEUgVkFS SUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQgaXMgYQorICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8 L3Byb2R1Y3RuYW1lPiBleHRlbnNpb24uCisgIDwvcGFyYT4KICA8L3JlZnNlY3QxPgogCiAgPHJl ZnNlY3QxPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNmU5ODhmMmU0NwotLS0gL2Rldi9udWxsCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTAsMCArMSwxNDkgQEAKKzwh LS0KK2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKK1Bvc3RncmVTUUwgZG9j dW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIj4KKyA8 aW5kZXh0ZXJtIHpvbmU9InNxbC1jcmVhdGV2YXJpYWJsZSI+CisgIDxwcmltYXJ5PkNSRUFURSBW QVJJQUJMRTwvcHJpbWFyeT4KKyA8L2luZGV4dGVybT4KKworIDxpbmRleHRlcm0+CisgIDxwcmlt YXJ5PnNlc3Npb24gdmFyaWFibGU8L3ByaW1hcnk+CisgIDxzZWNvbmRhcnk+ZGVmaW5pbmc8L3Nl Y29uZGFyeT4KKyA8L2luZGV4dGVybT4KKworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5D UkVBVEUgVkFSSUFCTEU8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVt PgorICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+ CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkNSRUFURSBWQVJJQUJM RTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBvc2U+ZGVmaW5lIGEgc2Vzc2lvbiB2YXJpYWJsZTwvcmVm cHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+ CitDUkVBVEUgVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IFsgQ09MTEFURSA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQorPC9zeW5vcHNpcz4K KyA8L3JlZnN5bm9wc2lzZGl2PgorIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90 aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5DUkVBVEUgVkFSSUFCTEU8L2NvbW1h bmQ+IGNvbW1hbmQgY3JlYXRlcyBhIHNlc3Npb24gdmFyaWFibGUuCisgICBTZXNzaW9uIHZhcmlh YmxlcywgbGlrZSByZWxhdGlvbnMsIGV4aXN0IHdpdGhpbiBhIHNjaGVtYSBhbmQgdGhlaXIgYWNj ZXNzIGlzCisgICBjb250cm9sbGVkIHZpYSB0aGUgY29tbWFuZHMgPGNvbW1hbmQ+R1JBTlQ8L2Nv bW1hbmQ+IGFuZCA8Y29tbWFuZD5SRVZPS0U8L2NvbW1hbmQ+LgorICA8L3BhcmE+CisKKyAgPHBh cmE+CisgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlzIGxvY2FsIHRvIHRoZSBj dXJyZW50IHNlc3Npb24uICBSZXRyaWV2aW5nCisgICBhIHNlc3Npb24gdmFyaWFibGUncyB2YWx1 ZSByZXR1cm5zIE5VTEwsIHVubGVzcyBpdHMgdmFsdWUgaXMgc2V0IHRvCisgICBzb21ldGhpbmcg ZWxzZSBpbiB0aGUgY3VycmVudCBzZXNzaW9uIHdpdGggYSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+ IGNvbW1hbmQuCisgICBUaGUgY29udGVudCBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbm90IHRy YW5zYWN0aW9uYWwuIFRoaXMgaXMgdGhlIHNhbWUgYXMKKyAgIHJlZ3VsYXIgdmFyaWFibGVzIGlu IHByb2NlZHVyYWwgbGFuZ3VhZ2VzLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBTZXNzaW9u IHZhcmlhYmxlcyBhcmUgcmV0cmlldmVkIGJ5IHRoZSA8Y29tbWFuZD5TRUxFQ1Q8L2NvbW1hbmQ+ CisgICBjb21tYW5kLiAgVGhlaXIgdmFsdWUgaXMgc2V0IHdpdGggdGhlIDxjb21tYW5kPkxFVDwv Y29tbWFuZD4gY29tbWFuZC4KKyAgPC9wYXJhPgorCisgIDxub3RlPgorICAgPHBhcmE+CisgICAg U2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIDxxdW90ZT5zaGFkb3dlZDwvcXVvdGU+IGJ5IG90aGVy IGlkZW50aWZpZXJzLgorICAgIEZvciBkZXRhaWxzLCBzZWUgPHhyZWYgbGlua2VuZD0iZGRsLXNl c3Npb24tdmFyaWFibGVzIi8+LgorICAgPC9wYXJhPgorICA8L25vdGU+CisgPC9yZWZzZWN0MT4K KworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJpYWJs ZWxpc3Q+CisKKyAgIDx2YXJsaXN0ZW50cnkgIGlkPSJzcWwtY3JlYXRldmFyaWFibGUtaWYtbm90 LWV4aXN0cyI+CisgICAgPHRlcm0+PGxpdGVyYWw+SUYgTk9UIEVYSVNUUzwvbGl0ZXJhbD48L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIERvIG5vdCB0aHJvdyBhbiBl cnJvciBpZiB0aGUgbmFtZSBhbHJlYWR5IGV4aXN0cy4gQSBub3RpY2UgaXMgaXNzdWVkIGluCisg ICAgICB0aGlzIGNhc2UuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1uYW1l Ij4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFj ZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFt ZSwgb3B0aW9uYWxseSBzY2hlbWEtcXVhbGlmaWVkLCBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4K KyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAg PHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLWRhdGFfdHlwZSI+CisgICAgPHRl cm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+ PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSwgb3B0 aW9uYWxseSBzY2hlbWEtcXVhbGlmaWVkLCBvZiB0aGUgZGF0YSB0eXBlIG9mIHRoZSBzZXNzaW9u CisgICAgICB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zh cmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLWNv bGxhdGUiPgorICAgIDx0ZXJtPjxsaXRlcmFsPkNPTExBVEUgPHJlcGxhY2VhYmxlPmNvbGxhdGlv bjwvcmVwbGFjZWFibGU+PC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxw YXJhPgorICAgICAgVGhlIDxsaXRlcmFsPkNPTExBVEU8L2xpdGVyYWw+IGNsYXVzZSBhc3NpZ25z IGEgY29sbGF0aW9uIHRvIHRoZSBzZXNzaW9uCisgICAgICB2YXJpYWJsZSAod2hpY2ggbXVzdCBi ZSBvZiBhIGNvbGxhdGFibGUgZGF0YSB0eXBlKS4gIElmIG5vdCBzcGVjaWZpZWQsCisgICAgICB0 aGUgZGF0YSB0eXBlJ3MgZGVmYXVsdCBjb2xsYXRpb24gaXMgdXNlZC4KKyAgICAgPC9wYXJhPgor ICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICA8L3ZhcmlhYmxlbGlzdD4K KyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Tm90ZXM8L3RpdGxlPgorCisg IDxwYXJhPgorICAgVXNlIHRoZSA8Y29tbWFuZD5EUk9QIFZBUklBQkxFPC9jb21tYW5kPiBjb21t YW5kIHRvIHJlbW92ZSBhIHNlc3Npb24KKyAgIHZhcmlhYmxlLgorICA8L3BhcmE+CisgPC9yZWZz ZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFy YT4KKyAgIENyZWF0ZSBhbiBkYXRlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0 ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBkYXRlOwor PC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0 MT4KKyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxj b21tYW5kPkNSRUFURSBWQVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCBpcyBhCisgICA8cHJvZHVj dG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGV4dGVuc2lvbi4KKyAgPC9wYXJhPgorIDwv cmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAg PHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3Fs LWFsdGVydmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3Fs LWRyb3B2YXJpYWJsZSIvPjwvbWVtYmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4K KworPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJs ZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNWJkYjM1NjBmMAotLS0gL2Rldi9udWxsCisrKyBi L2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCkBAIC0wLDAgKzEsMTE3IEBACis8 IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbAorUG9zdGdyZVNRTCBkb2N1 bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtZHJvcHZhcmlhYmxlIj4KKyA8aW5k ZXh0ZXJtIHpvbmU9InNxbC1kcm9wdmFyaWFibGUiPgorICA8cHJpbWFyeT5EUk9QIFZBUklBQkxF PC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4dGVybT4KKyAgPHByaW1hcnk+c2Vz c2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFyeT5yZW1vdmluZzwvc2Vjb25kYXJ5 PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkRST1AgVkFS SUFCTEU8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+NzwvbWFudm9sbnVtPgorICA8cmVm bWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwvcmVmbWlzY2luZm8+CisgPC9yZWZt ZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkRST1AgVkFSSUFCTEU8L3JlZm5hbWU+ CisgIDxyZWZwdXJwb3NlPnJlbW92ZSBhIHNlc3Npb24gdmFyaWFibGU8L3JlZnB1cnBvc2U+Cisg PC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lzPgorRFJPUCBWQVJJ QUJMRSBbIElGIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9y ZXBsYWNlYWJsZT4gWywgLi4uXSBbIENBU0NBREUgfCBSRVNUUklDVCBdCis8L3N5bm9wc2lzPgor IDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5EZXNjcmlwdGlvbjwv dGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5EUk9QIFZBUklBQkxFPC9jb21tYW5kPiBy ZW1vdmVzIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgIEEgc2Vzc2lvbiB2YXJpYWJsZSBjYW4gb25s eSBiZSByZW1vdmVkIGJ5IGl0cyBvd25lciBvciBhIHN1cGVydXNlci4KKyAgPC9wYXJhPgorIDwv cmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KKwor ICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5J RiBFWElTVFM8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+Cisg ICAgICBEbyBub3QgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIHNlc3Npb24gdmFyaWFibGUgZG9lcyBu b3QgZXhpc3QuIEEgbm90aWNlIGlzCisgICAgICBpc3N1ZWQgaW4gdGhpcyBjYXNlLgorICAgICA8 L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlz dGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9y ZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRo ZSBuYW1lLCBvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQsIG9mIGEgc2Vzc2lvbiB2YXJpYWJs ZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5DQVNDQURFPC9saXRlcmFsPjwv dGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgQXV0b21hdGljYWxseSBk cm9wIG9iamVjdHMgdGhhdCBkZXBlbmQgb24gdGhlIHNlc3Npb24gdmFyaWFibGUgKHN1Y2ggYXMK KyAgICAgIHZpZXdzKSwgYW5kIGluIHR1cm4gYWxsIG9iamVjdHMgdGhhdCBkZXBlbmQgb24gdGhv c2Ugb2JqZWN0cworICAgICAgKHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtZGVwZW5kIi8+KS4KKyAg ICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZh cmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5SRVNUUklDVDwvbGl0ZXJhbD48L3Rlcm0+ CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFJlZnVzZSB0byBkcm9wIHRoZSBz ZXNzaW9uIHZhcmlhYmxlIGlmIGFueSBvYmplY3RzIGRlcGVuZCBvbiBpdC4gIFRoaXMgaXMKKyAg ICAgIHRoZSBkZWZhdWx0LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFy bGlzdGVudHJ5PgorICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3Qx PgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVG8gcmVtb3ZlIHRo ZSBzZXNzaW9uIHZhcmlhYmxlIDxsaXRlcmFsPnZhcjE8L2xpdGVyYWw+OgorCis8cHJvZ3JhbWxp c3Rpbmc+CitEUk9QIFZBUklBQkxFIHZhcjE7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKyA8 L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+ CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+RFJPUCBWQVJJQUJMRTwvY29tbWFuZD4gY29t bWFuZCBpcyBhCisgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGV4dGVu c2lvbi4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5T ZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1i ZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1i ZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+PC9tZW1iZXI+CisgIDwvc2lt cGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3JlZi9ncmFudC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21sCmluZGV4 IDk5OWY2NTdkNWMuLmMxMTg2MGZhMjAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZ3Jh bnQuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwKQEAgLTEwMSw2ICsxMDEs MTIgQEAgR1JBTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVw bGFjZWFibGU+IFssIC4uLl0gVE8gPHJlcGxhY2UKICAgICBbIFdJVEggeyBBRE1JTiB8IElOSEVS SVQgfCBTRVQgfSB7IE9QVElPTiB8IFRSVUUgfCBGQUxTRSB9IF0KICAgICBbIEdSQU5URUQgQlkg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFj ZWFibGU+IF0KIAorR1JBTlQgeyBTRUxFQ1QgfCBVUERBVEUgfCBBTEwgWyBQUklWSUxFR0VTIF0g fQorICAgIE9OIHsgVkFSSUFCTEUgPHJlcGxhY2VhYmxlPnZhcmlhYmxlX25hbWU8L3JlcGxhY2Vh YmxlPiBbLCAuLi5dCisgICAgICAgfCBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+c2NoZW1hX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIH0K KyAgICBUTyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9u PC9yZXBsYWNlYWJsZT4gWywgLi4uXSBbIFdJVEggR1JBTlQgT1BUSU9OIF0KKyAgICBbIEdSQU5U RUQgQlkgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwv cmVwbGFjZWFibGU+IF0KKwogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gY2FuIGJlOjwvcGhyYXNlPgog CiAgICAgWyBHUk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8 L3JlcGxhY2VhYmxlPgpAQCAtMTE5LDggKzEyNSw4IEBAIEdSQU5UIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFRPIDxyZXBsYWNl CiAgICB0aGF0IGdyYW50cyBwcml2aWxlZ2VzIG9uIGEgZGF0YWJhc2Ugb2JqZWN0ICh0YWJsZSwg Y29sdW1uLCB2aWV3LAogICAgZm9yZWlnbiB0YWJsZSwgc2VxdWVuY2UsIGRhdGFiYXNlLCBmb3Jl aWduLWRhdGEgd3JhcHBlciwgZm9yZWlnbiBzZXJ2ZXIsCiAgICBmdW5jdGlvbiwgcHJvY2VkdXJl LCBwcm9jZWR1cmFsIGxhbmd1YWdlLCBsYXJnZSBvYmplY3QsIGNvbmZpZ3VyYXRpb24KLSAgIHBh cmFtZXRlciwgc2NoZW1hLCB0YWJsZXNwYWNlLCBvciB0eXBlKSwgYW5kIG9uZSB0aGF0IGdyYW50 cwotICAgbWVtYmVyc2hpcCBpbiBhIHJvbGUuICBUaGVzZSB2YXJpYW50cyBhcmUgc2ltaWxhciBp biBtYW55IHdheXMsIGJ1dAorICAgcGFyYW1ldGVyLCBzY2hlbWEsIHNlc3Npb24gdmFyaWFibGUs IHRhYmxlc3BhY2UsIG9yIHR5cGUpLCBhbmQgb25lIHRoYXQKKyAgIGdyYW50cyBtZW1iZXJzaGlw IGluIGEgcm9sZS4gIFRoZXNlIHZhcmlhbnRzIGFyZSBzaW1pbGFyIGluIG1hbnkgd2F5cywgYnV0 CiAgICB0aGV5IGFyZSBkaWZmZXJlbnQgZW5vdWdoIHRvIGJlIGRlc2NyaWJlZCBzZXBhcmF0ZWx5 LgogICA8L3BhcmE+CiAKQEAgLTIzNiw5ICsyNDIsOSBAQCBHUkFOVCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBUTyA8cmVwbGFj ZQogICA8cGFyYT4KICAgIFRoZXJlIGlzIGFsc28gYW4gb3B0aW9uIHRvIGdyYW50IHByaXZpbGVn ZXMgb24gYWxsIG9iamVjdHMgb2YgdGhlIHNhbWUKICAgIHR5cGUgd2l0aGluIG9uZSBvciBtb3Jl IHNjaGVtYXMuICBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgY3VycmVudGx5IHN1cHBvcnRlZAotICAg b25seSBmb3IgdGFibGVzLCBzZXF1ZW5jZXMsIGZ1bmN0aW9ucywgYW5kIHByb2NlZHVyZXMuICA8 bGl0ZXJhbD5BTEwKLSAgIFRBQkxFUzwvbGl0ZXJhbD4gYWxzbyBhZmZlY3RzIHZpZXdzIGFuZCBm b3JlaWduIHRhYmxlcywganVzdCBsaWtlIHRoZQotICAgc3BlY2lmaWMtb2JqZWN0IDxjb21tYW5k PkdSQU5UPC9jb21tYW5kPiBjb21tYW5kLiAgPGxpdGVyYWw+QUxMCisgICBvbmx5IGZvciB0YWJs ZXMsIHNlcXVlbmNlcywgZnVuY3Rpb25zLCBwcm9jZWR1cmVzIGFuZCB2YXJpYWJsZXMuCisgICA8 bGl0ZXJhbD5BTEwgVEFCTEVTPC9saXRlcmFsPiBhbHNvIGFmZmVjdHMgdmlld3MgYW5kIGZvcmVp Z24gdGFibGVzLCBqdXN0CisgICBsaWtlIHRoZSBzcGVjaWZpYy1vYmplY3QgPGNvbW1hbmQ+R1JB TlQ8L2NvbW1hbmQ+IGNvbW1hbmQuICA8bGl0ZXJhbD5BTEwKICAgIEZVTkNUSU9OUzwvbGl0ZXJh bD4gYWxzbyBhZmZlY3RzIGFnZ3JlZ2F0ZSBhbmQgd2luZG93IGZ1bmN0aW9ucywgYnV0IG5vdAog ICAgcHJvY2VkdXJlcywgYWdhaW4ganVzdCBsaWtlIHRoZSBzcGVjaWZpYy1vYmplY3QgPGNvbW1h bmQ+R1JBTlQ8L2NvbW1hbmQ+CiAgICBjb21tYW5kLiAgVXNlIDxsaXRlcmFsPkFMTCBST1VUSU5F UzwvbGl0ZXJhbD4gdG8gaW5jbHVkZSBwcm9jZWR1cmVzLgpAQCAtNTE4LDggKzUyNCw4IEBAIEdS QU5UIGFkbWlucyBUTyBqb2U7CiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgotICAgIFByaXZpbGVn ZXMgb24gZGF0YWJhc2VzLCB0YWJsZXNwYWNlcywgc2NoZW1hcywgbGFuZ3VhZ2VzLCBhbmQKLSAg ICBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgYXJlCisgICAgUHJpdmlsZWdlcyBvbiBkYXRhYmFz ZXMsIHRhYmxlc3BhY2VzLCBzY2hlbWFzLCBsYW5ndWFnZXMsIHNlc3Npb24gdmFyaWFibGVzCisg ICAgYW5kIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBhcmUKICAgICA8cHJvZHVjdG5hbWU+UG9z dGdyZVNRTDwvcHJvZHVjdG5hbWU+IGV4dGVuc2lvbnMuCiAgICA8L3BhcmE+CiAgPC9yZWZzZWN0 MT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbCBiL2RvYy9zcmMv c2dtbC9yZWYvcHNxbC1yZWYuc2dtbAppbmRleCA3MmYzMzQ3ZTUzLi5hYzI2NWRiMzVlIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L3JlZi9wc3FsLXJlZi5zZ21sCkBAIC0yMDM0LDYgKzIwMzQsMTkgQEAgU0VMRUNUICQxIFxwYXJz ZSBzdG10MQogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAg ICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImFwcC1wc3FsLW1ldGEtY29tbWFuZC1kdiI+CisgICAgICAg IDx0ZXJtPjxsaXRlcmFsPlxkVlsrXSBbIDxsaW5rIGxpbmtlbmQ9ImFwcC1wc3FsLXBhdHRlcm5z Ij48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwvcmVwbGFjZWFibGU+PC9s aW5rPiBdPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICA8cGFy YT4KKyAgICAgICAgTGlzdHMgc2Vzc2lvbiB2YXJpYWJsZXMuCisgICAgICAgIElmIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT4gaXMKKyAgICAgICAg c3BlY2lmaWVkLCBvbmx5IHNlc3Npb24gdmFyaWFibGVzIHdob3NlIG5hbWVzIG1hdGNoIHRoZSBw YXR0ZXJuIGFyZSBsaXN0ZWQuCisgICAgICAgIElmIHRoZSBmb3JtIDxsaXRlcmFsPlxkVis8L2xp dGVyYWw+IGlzIHVzZWQsIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24KKyAgICAgICAgYWJvdXQgZWFj aCB2YXJpYWJsZSBpcyBzaG93biwgbGlrZSAgYWNjZXNzIHByaXZpbGVnZXMgYW5kIGRlc2NyaXB0 aW9uLgorICAgICAgICA8L3BhcmE+CisgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxp c3RlbnRyeT4KKwogICAgICAgPHZhcmxpc3RlbnRyeSBpZD0iYXBwLXBzcWwtbWV0YS1jb21tYW5k LWR1Ij4KICAgICAgICAgPHRlcm0+PGxpdGVyYWw+XGR1W1MrXSBbIDxsaW5rIGxpbmtlbmQ9ImFw cC1wc3FsLXBhdHRlcm5zIj48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwv cmVwbGFjZWFibGU+PC9saW5rPiBdPC9saXRlcmFsPjwvdGVybT4KICAgICAgICAgPGxpc3RpdGVt PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvcmV2b2tlLnNnbWwKaW5kZXggOGRmNDkyMjgxYS4uNzYwZmRkYjdjMiAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3Jl dm9rZS5zZ21sCkBAIC0xMzAsNiArMTMwLDE0IEBAIFJFVk9LRSBbIHsgQURNSU4gfCBJTkhFUklU IHwgU0VUIH0gT1BUSU9OIEZPUiBdCiAgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBdCiAgICAgWyBD QVNDQURFIHwgUkVTVFJJQ1QgXQogCitSRVZPS0UgWyBHUkFOVCBPUFRJT04gRk9SIF0KKyAgICB7 IHsgU0VMRUNUIHwgVVBEQVRFIH0gWywgLi4uXSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CisgICAg T04geyBWQVJJQUJMRSA8cmVwbGFjZWFibGU+dmFyaWFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFss IC4uLl0KKyAgICAgICB8IEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gfQorICAgIEZS T00geyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9y ZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5dCisgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBd CisgICAgWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQorCiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBjYW4g YmU6PC9waHJhc2U+CiAKICAgICBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm ZXJlbmNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKaW5kZXggZmY4NWFjZTgz Zi4uMjU1NzhmMzk0NiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbApAQCAtNzUsNiArNzUsNyBAQAogICAgJmFs dGVyVHlwZTsKICAgICZhbHRlclVzZXI7CiAgICAmYWx0ZXJVc2VyTWFwcGluZzsKKyAgICZhbHRl clZhcmlhYmxlOwogICAgJmFsdGVyVmlldzsKICAgICZhbmFseXplOwogICAgJmJlZ2luOwpAQCAt MTI3LDYgKzEyOCw3IEBACiAgICAmY3JlYXRlVHlwZTsKICAgICZjcmVhdGVVc2VyOwogICAgJmNy ZWF0ZVVzZXJNYXBwaW5nOworICAgJmNyZWF0ZVZhcmlhYmxlOwogICAgJmNyZWF0ZVZpZXc7CiAg ICAmZGVhbGxvY2F0ZTsKICAgICZkZWNsYXJlOwpAQCAtMTc1LDYgKzE3Nyw3IEBACiAgICAmZHJv cFR5cGU7CiAgICAmZHJvcFVzZXI7CiAgICAmZHJvcFVzZXJNYXBwaW5nOworICAgJmRyb3BWYXJp YWJsZTsKICAgICZkcm9wVmlldzsKICAgICZlbmQ7CiAgICAmZXhlY3V0ZTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgYi9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2Vm aWxlCmluZGV4IDE1ODlhNzVmZDUuLjdhOTBmY2ZjNDUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZQpAQCAt NDUsNiArNDUsNyBAQCBPQkpTID0gXAogCXBnX3NoZGVwZW5kLm8gXAogCXBnX3N1YnNjcmlwdGlv bi5vIFwKIAlwZ190eXBlLm8gXAorCXBnX3ZhcmlhYmxlLm8gXAogCXN0b3JhZ2UubyBcCiAJdG9h c3RpbmcubwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYwppbmRleCBhYWY5NmE5NjVlLi4xYWRiOGJkZTczIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCisrKyBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvYWNsY2hrLmMKQEAgLTY0LDYgKzY0LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5j bHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5o IgogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKQEAgLTI5MSw2ICsyOTIsOSBA QCByZXN0cmljdF9hbmRfY2hlY2tfZ3JhbnQoYm9vbCBpc19ncmFudCwgQWNsTW9kZSBhdmFpbF9n b3B0aW9ucywgYm9vbCBhbGxfcHJpdnMsCiAJCWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9BQ0w6CiAJ CQl3aG9sZV9tYXNrID0gQUNMX0FMTF9SSUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWJyZWFrOwor CQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXdob2xlX21hc2sgPSBBQ0xfQUxMX1JJR0hUU19W QVJJQUJMRTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2du aXplZCBvYmplY3QgdHlwZTogJWQiLCBvYmp0eXBlKTsKIAkJCS8qIG5vdCByZWFjaGVkLCBidXQg a2VlcCBjb21waWxlciBxdWlldCAqLwpAQCAtNTM1LDYgKzUzOSwxMCBAQCBFeGVjdXRlR3JhbnRT dG10KEdyYW50U3RtdCAqc3RtdCkKIAkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNf UEFSQU1FVEVSX0FDTDsKIAkJCWVycm9ybXNnID0gZ2V0dGV4dF9ub29wKCJpbnZhbGlkIHByaXZp bGVnZSB0eXBlICVzIGZvciBwYXJhbWV0ZXIiKTsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9W QVJJQUJMRToKKwkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJ CQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3Ig c2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9S LCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0eXBlOiAlZCIsCiAJCQkJIChpbnQpIHN0bXQt Pm9ianR5cGUpOwpAQCAtNjQwLDYgKzY0OCw5IEBAIEV4ZWNHcmFudFN0bXRfb2lkcyhJbnRlcm5h bEdyYW50ICppc3RtdCkKIAkJY2FzZSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDoKIAkJCUV4ZWNHcmFu dF9QYXJhbWV0ZXIoaXN0bXQpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgor CQkJRXhlY0dyYW50X2NvbW1vbihpc3RtdCwgVmFyaWFibGVSZWxhdGlvbklkLCBBQ0xfQUxMX1JJ R0hUU19WQVJJQUJMRSwgTlVMTCk7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJS T1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGludCkgaXN0 bXQtPm9ianR5cGUpOwpAQCAtNzYwLDYgKzc3MSwxOCBAQCBvYmplY3ROYW1lc1RvT2lkcyhPYmpl Y3RUeXBlIG9ianR5cGUsIExpc3QgKm9iam5hbWVzLCBib29sIGlzX2dyYW50KQogCQkJCQlvYmpl Y3RzID0gbGFwcGVuZF9vaWQob2JqZWN0cywgcGFyYW1ldGVySWQpOwogCQkJfQogCQkJYnJlYWs7 CisKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlmb3JlYWNoX25vZGUoUmFuZ2VWYXIsIHZh cnZhciwgb2JqbmFtZXMpCisJCQl7CisJCQkJT2lkCQkJcmVsT2lkOworCisJCQkJcmVsT2lkID0g TG9va3VwVmFyaWFibGUodmFydmFyLT5zY2hlbWFuYW1lLAorCQkJCQkJCQkJCXZhcnZhci0+cmVs bmFtZSwKKwkJCQkJCQkJCQlmYWxzZSk7CisJCQkJb2JqZWN0cyA9IGxhcHBlbmRfb2lkKG9iamVj dHMsIHJlbE9pZCk7CisJCQl9CisJCQlicmVhazsKIAl9CiAKIAlyZXR1cm4gb2JqZWN0czsKQEAg LTg0Niw2ICs4NjksMzIgQEAgb2JqZWN0c0luU2NoZW1hVG9PaWRzKE9iamVjdFR5cGUgb2JqdHlw ZSwgTGlzdCAqbnNwbmFtZXMpCiAJCQkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2Nr KTsKIAkJCQl9CiAJCQkJYnJlYWs7CisJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCQl7CisJ CQkJCVNjYW5LZXlEYXRhIGtleTsKKwkJCQkJUmVsYXRpb24JcmVsOworCQkJCQlUYWJsZVNjYW5E ZXNjIHNjYW47CisJCQkJCUhlYXBUdXBsZQl0dXBsZTsKKworCQkJCQlTY2FuS2V5SW5pdCgma2V5 LAorCQkJCQkJCQlBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWVzcGFjZSwKKwkJCQkJCQkJQlRFcXVh bFN0cmF0ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKG5hbWVz cGFjZUlkKSk7CisKKwkJCQkJcmVsID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9uSWQsIEFj Y2Vzc1NoYXJlTG9jayk7CisJCQkJCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW5fY2F0YWxvZyhyZWws IDEsICZrZXkpOworCisJCQkJCXdoaWxlICgodHVwbGUgPSBoZWFwX2dldG5leHQoc2NhbiwgRm9y d2FyZFNjYW5EaXJlY3Rpb24pKSAhPSBOVUxMKQorCQkJCQl7CisJCQkJCQlPaWQJCQlvaWQgPSAo KEZvcm1fcGdfcHJvYykgR0VUU1RSVUNUKHR1cGxlKSktPm9pZDsKKworCQkJCQkJb2JqZWN0cyA9 IGxhcHBlbmRfb2lkKG9iamVjdHMsIG9pZCk7CisJCQkJCX0KKworCQkJCQl0YWJsZV9lbmRzY2Fu KHNjYW4pOworCQkJCQl0YWJsZV9jbG9zZShyZWwsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJfQor CQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBzaG91bGQgbm90IGhhcHBlbiAqLwogCQkJ CWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKQEAgLTEw MDUsNiArMTA1NCwxMCBAQCBFeGVjQWx0ZXJEZWZhdWx0UHJpdmlsZWdlc1N0bXQoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBBbHRlckRlZmF1bHRQcml2aWxlZ2VzU3RtdCAqcwogCQkJYWxsX3ByaXZpbGVn ZXMgPSBBQ0xfQUxMX1JJR0hUU19TQ0hFTUE7CiAJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgi aW52YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3Igc2NoZW1hIik7CiAJCQlicmVhazsKKwkJY2Fz ZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlhbGxfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1ZB UklBQkxFOworCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5 cGUgJXMgZm9yIHNlc3Npb24gdmFyaWFibGUiKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJ ZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAo aW50KSBhY3Rpb24tPm9ianR5cGUpOwpAQCAtMTE5Niw2ICsxMjQ5LDEyIEBAIFNldERlZmF1bHRB Q0woSW50ZXJuYWxEZWZhdWx0QUNMICppYWNscykKIAkJCQl0aGlzX3ByaXZpbGVnZXMgPSBBQ0xf QUxMX1JJR0hUU19TQ0hFTUE7CiAJCQlicmVhazsKIAorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToK KwkJCW9ianR5cGUgPSBERUZBQ0xPQkpfVkFSSUFCTEU7CisJCQlpZiAoaWFjbHMtPmFsbF9wcml2 cyAmJiB0aGlzX3ByaXZpbGVnZXMgPT0gQUNMX05PX1JJR0hUUykKKwkJCQl0aGlzX3ByaXZpbGVn ZXMgPSBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJ CQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsCiAJCQkJIChpbnQp IGlhY2xzLT5vYmp0eXBlKTsKQEAgLTE0MzksNiArMTQ5OCw5IEBAIFJlbW92ZVJvbGVGcm9tT2Jq ZWN0QUNMKE9pZCByb2xlaWQsIE9pZCBjbGFzc2lkLCBPaWQgb2JqaWQpCiAJCQljYXNlIERFRkFD TE9CSl9OQU1FU1BBQ0U6CiAJCQkJaWFjbHMub2JqdHlwZSA9IE9CSkVDVF9TQ0hFTUE7CiAJCQkJ YnJlYWs7CisJCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCQlpYWNscy5vYmp0eXBlID0g T0JKRUNUX1ZBUklBQkxFOworCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBTaG91bGRu J3QgZ2V0IGhlcmUgKi8KIAkJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBkZWZhdWx0IEFDTCB0 eXBlOiAlZCIsCkBAIC0xNDk5LDYgKzE1NjEsOSBAQCBSZW1vdmVSb2xlRnJvbU9iamVjdEFDTChP aWQgcm9sZWlkLCBPaWQgY2xhc3NpZCwgT2lkIG9iamlkKQogCQkJY2FzZSBQYXJhbWV0ZXJBY2xS ZWxhdGlvbklkOgogCQkJCWlzdG10Lm9ianR5cGUgPSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDsKIAkJ CQlicmVhazsKKwkJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJCWlzdG10Lm9ianR5cGUg PSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCWVsb2coRVJS T1IsICJ1bmV4cGVjdGVkIG9iamVjdCBjbGFzcyAldSIsIGNsYXNzaWQpOwogCQkJCWJyZWFrOwpA QCAtMjczMiw2ICsyNzk3LDkgQEAgYWNsY2hlY2tfZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwgT2Jq ZWN0VHlwZSBvYmp0eXBlLAogCQkJCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJCQkJbXNnID0gZ2V0 dGV4dF9ub29wKCJwZXJtaXNzaW9uIGRlbmllZCBmb3IgdHlwZSAlcyIpOwogCQkJCQkJYnJlYWs7 CisJCQkJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJw ZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAlcyIpOworCQkJCQkJYnJlYWs7 CiAJCQkJCWNhc2UgT0JKRUNUX1ZJRVc6CiAJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoInBlcm1p c3Npb24gZGVuaWVkIGZvciB2aWV3ICVzIik7CiAJCQkJCQlicmVhazsKQEAgLTI4NDMsNiArMjkx MSw5IEBAIGFjbGNoZWNrX2Vycm9yKEFjbFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2JqdHlw ZSwKIAkJCQkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVz dCBiZSBvd25lciBvZiB0eXBlICVzIik7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBPQkpFQ1Rf VkFSSUFCTEU6CisJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2Ygc2Vz c2lvbiB2YXJpYWJsZSAlcyIpOworCQkJCQkJYnJlYWs7CiAJCQkJCWNhc2UgT0JKRUNUX1ZJRVc6 CiAJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2YgdmlldyAlcyIpOwog CQkJCQkJYnJlYWs7CkBAIC0yOTkxLDYgKzMwNjIsOCBAQCBwZ19hY2xtYXNrKE9iamVjdFR5cGUg b2JqdHlwZSwgT2lkIG9iamVjdF9vaWQsIEF0dHJOdW1iZXIgYXR0bnVtLCBPaWQgcm9sZWlkLAog CQkJcmV0dXJuIEFDTF9OT19SSUdIVFM7CiAJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQlyZXR1cm4g b2JqZWN0X2FjbG1hc2soVHlwZVJlbGF0aW9uSWQsIG9iamVjdF9vaWQsIHJvbGVpZCwgbWFzaywg aG93KTsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlyZXR1cm4gb2JqZWN0X2FjbG1hc2so VmFyaWFibGVSZWxhdGlvbklkLCBvYmplY3Rfb2lkLCByb2xlaWQsIG1hc2ssIGhvdyk7CiAJCWRl ZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsCiAJ CQkJIChpbnQpIG9ianR5cGUpOwpAQCAtNDI1OCw2ICs0MzMxLDEwIEBAIGdldF91c2VyX2RlZmF1 bHRfYWNsKE9iamVjdFR5cGUgb2JqdHlwZSwgT2lkIG93bmVySWQsIE9pZCBuc3Bfb2lkKQogCQkJ ZGVmYWNsb2JqdHlwZSA9IERFRkFDTE9CSl9OQU1FU1BBQ0U7CiAJCQlicmVhazsKIAorCQljYXNl IE9CSkVDVF9WQVJJQUJMRToKKwkJCWRlZmFjbG9ianR5cGUgPSBERUZBQ0xPQkpfVkFSSUFCTEU7 CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJcmV0dXJuIE5VTEw7CiAJfQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9n L2RlcGVuZGVuY3kuYwppbmRleCAyYWZjNTUwNTQwLi5kNjYyZTc2YWNmIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9n L2RlcGVuZGVuY3kuYwpAQCAtNjUsMTIgKzY1LDE0IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190 c190ZW1wbGF0ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfdXNlcl9tYXBwaW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5o IgogI2luY2x1ZGUgImNvbW1hbmRzL2NvbW1lbnQuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZy ZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy9ldmVudF90cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvZXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcG9saWN5LmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2NoZW1h Y21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlY2xhYmVsLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvc2VxdWVuY2UuaCIKICNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCkBAIC0xNDQ0LDYg KzE0NDYsMTAgQEAgZG9EZWxldGlvbihjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsIGludCBm bGFncykKIAkJCVJlbW92ZVB1YmxpY2F0aW9uQnlJZChvYmplY3QtPm9iamVjdElkKTsKIAkJCWJy ZWFrOwogCisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJRHJvcFZhcmlhYmxlQnlJZChv YmplY3QtPm9iamVjdElkKTsKKwkJCWJyZWFrOworCiAJCWNhc2UgQ2FzdFJlbGF0aW9uSWQ6CiAJ CWNhc2UgQ29sbGF0aW9uUmVsYXRpb25JZDoKIAkJY2FzZSBDb252ZXJzaW9uUmVsYXRpb25JZDoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL21lc29uLmJ1aWxkCmluZGV4IDJmM2RlZDhhMGUuLmJmZGI0ZGEzMzAgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9tZXNvbi5idWlsZApAQCAtMzIsNiArMzIsNyBAQCBiYWNrZW5kX3NvdXJjZXMgKz0g ZmlsZXMoCiAgICdwZ19zaGRlcGVuZC5jJywKICAgJ3BnX3N1YnNjcmlwdGlvbi5jJywKICAgJ3Bn X3R5cGUuYycsCisgICdwZ192YXJpYWJsZS5jJywKICAgJ3N0b3JhZ2UuYycsCiAgICd0b2FzdGlu Zy5jJywKICkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgYi9z cmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCmluZGV4IDMwODA3ZjkxOTAuLjUzZDVjZDZj MTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKKysrIGIvc3Jj L2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdHNfcGFyc2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0 ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdf dmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAi Y29tbW9uL2hhc2hmbl91bnN0YWJsZS5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKQEAgLTIyNSw2 ICsyMjYsNyBAQCBzdGF0aWMgYm9vbCBUU1BhcnNlcklzVmlzaWJsZUV4dChPaWQgcHJzSWQsIGJv b2wgKmlzX21pc3NpbmcpOwogc3RhdGljIGJvb2wgVFNEaWN0aW9uYXJ5SXNWaXNpYmxlRXh0KE9p ZCBkaWN0SWQsIGJvb2wgKmlzX21pc3NpbmcpOwogc3RhdGljIGJvb2wgVFNUZW1wbGF0ZUlzVmlz aWJsZUV4dChPaWQgdG1wbElkLCBib29sICppc19taXNzaW5nKTsKIHN0YXRpYyBib29sIFRTQ29u ZmlnSXNWaXNpYmxlRXh0KE9pZCBjZmdpZCwgYm9vbCAqaXNfbWlzc2luZyk7CitzdGF0aWMgYm9v bCBWYXJpYWJsZUlzVmlzaWJsZUV4dChPaWQgdmFyaWQsIGJvb2wgKmlzX21pc3NpbmcpOwogc3Rh dGljIHZvaWQgcmVjb21wdXRlTmFtZXNwYWNlUGF0aCh2b2lkKTsKIHN0YXRpYyB2b2lkIEFjY2Vz c1RlbXBUYWJsZU5hbWVzcGFjZShib29sIGZvcmNlKTsKIHN0YXRpYyB2b2lkIEluaXRUZW1wVGFi bGVOYW1lc3BhY2Uodm9pZCk7CkBAIC05ODYsNiArOTg4LDg0IEBAIFJlbGF0aW9uSXNWaXNpYmxl RXh0KE9pZCByZWxpZCwgYm9vbCAqaXNfbWlzc2luZykKIAlyZXR1cm4gdmlzaWJsZTsKIH0KIAor LyoKKyAqIFZhcmlhYmxlSXNWaXNpYmxlCisgKgkJRGV0ZXJtaW5lIHdoZXRoZXIgYSB2YXJpYWJs ZSAoaWRlbnRpZmllZCBieSBPSUQpIGlzIHZpc2libGUgaW4gdGhlCisgKgkJY3VycmVudCBzZWFy Y2ggcGF0aC4gVmlzaWJsZSBtZWFucyAid291bGQgYmUgZm91bmQgYnkgc2VhcmNoaW5nCisgKgkJ Zm9yIHRoZSB1bnF1YWxpZmllZCB2YXJpYWJsZSBuYW1lIi4KKyAqLworYm9vbAorVmFyaWFibGVJ c1Zpc2libGUoT2lkIHZhcmlkKQoreworCXJldHVybiBWYXJpYWJsZUlzVmlzaWJsZUV4dCh2YXJp ZCwgTlVMTCk7Cit9CisKKy8qCisgKiBWYXJpYWJsZUlzVmlzaWJsZUV4dAorICoJCUFzIGFib3Zl LCBidXQgaWYgdGhlIHZhcmlhYmxlIGlzbid0IGZvdW5kIGFuZCBpc19taXNzaW5nIGlzIG5vdCBO VUxMLAorICoJCXRoZW4gc2V0ICppc19taXNzaW5nID0gdHJ1ZSBhbmQgcmV0dXJuIGZhbHNlLCBp bnN0ZWFkIG9mIHRocm93aW5nCisgKgkJYW4gZXJyb3IuIChDYWxsZXIgbXVzdCBpbml0aWFsaXpl ICppc19taXNzaW5nID0gZmFsc2UuKQorICovCitzdGF0aWMgYm9vbAorVmFyaWFibGVJc1Zpc2li bGVFeHQoT2lkIHZhcmlkLCBib29sICppc19taXNzaW5nKQoreworCUhlYXBUdXBsZQl2YXJ0dXA7 CisJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCU9pZAkJCXZhcm5hbWVzcGFjZTsKKwlib29s CQl2aXNpYmxlOworCisJdmFydHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmpl Y3RJZEdldERhdHVtKHZhcmlkKSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHZhcnR1cCkpCisJ eworCQlpZiAoaXNfbWlzc2luZyAhPSBOVUxMKQorCQl7CisJCQkqaXNfbWlzc2luZyA9IHRydWU7 CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKworCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZh aWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKwl9CisJdmFyZm9ybSA9IChG b3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodmFydHVwKTsKKworCXJlY29tcHV0ZU5hbWVzcGFj ZVBhdGgoKTsKKworCS8qCisJICogUXVpY2sgY2hlY2s6IGlmIGl0IGFpbid0IGluIHRoZSBwYXRo IGF0IGFsbCwgaXQgYWluJ3QgdmlzaWJsZS4gV2UKKwkgKiBkb24ndCBleHBlY3QgdXNhZ2Ugb2Yg c2Vzc2lvbiB2YXJpYWJsZXMgaW4gdGhlIHN5c3RlbSBuYW1lc3BhY2UuCisJICovCisJdmFybmFt ZXNwYWNlID0gdmFyZm9ybS0+dmFybmFtZXNwYWNlOworCWlmICghbGlzdF9tZW1iZXJfb2lkKGFj dGl2ZVNlYXJjaFBhdGgsIHZhcm5hbWVzcGFjZSkpCisJCXZpc2libGUgPSBmYWxzZTsKKwllbHNl CisJeworCQkvKgorCQkgKiBJZiBpdCBpcyBpbiB0aGUgcGF0aCwgaXQgbWlnaHQgc3RpbGwgbm90 IGJlIHZpc2libGU7IGl0IGNvdWxkIGJlCisJCSAqIGhpZGRlbiBieSBhbm90aGVyIHZhcmlhYmxl IG9mIHRoZSBzYW1lIG5hbWUgZWFybGllciBpbiB0aGUgcGF0aC4gU28KKwkJICogd2UgbXVzdCBk byBhIHNsb3cgY2hlY2sgZm9yIGNvbmZsaWN0aW5nIHJlbGF0aW9ucy4KKwkJICovCisJCWNoYXIJ ICAgKnZhcm5hbWUgPSBOYW1lU3RyKHZhcmZvcm0tPnZhcm5hbWUpOworCisJCXZpc2libGUgPSBm YWxzZTsKKwkJZm9yZWFjaF9vaWQobmFtZXNwYWNlSWQsIGFjdGl2ZVNlYXJjaFBhdGgpCisJCXsK KwkJCWlmIChuYW1lc3BhY2VJZCA9PSB2YXJuYW1lc3BhY2UpCisJCQl7CisJCQkJLyogZm91bmQg aXQgZmlyc3QgaW4gcGF0aCAqLworCQkJCXZpc2libGUgPSB0cnVlOworCQkJCWJyZWFrOworCQkJ fQorCQkJaWYgKE9pZElzVmFsaWQoZ2V0X3Zhcm5hbWVfdmFyaWQodmFybmFtZSwgbmFtZXNwYWNl SWQpKSkKKwkJCXsKKwkJCQkvKiBmb3VuZCBzb21ldGhpbmcgZWxzZSBmaXJzdCBpbiBwYXRoICov CisJCQkJYnJlYWs7CisJCQl9CisJCX0KKwl9CisKKwlSZWxlYXNlU3lzQ2FjaGUodmFydHVwKTsK KworCXJldHVybiB2aXNpYmxlOworfQogCiAvKgogICogVHlwZW5hbWVHZXRUeXBpZApAQCAtMzI4 OSw2ICszMzY5LDEzMyBAQCBUU0NvbmZpZ0lzVmlzaWJsZUV4dChPaWQgY2ZnaWQsIGJvb2wgKmlz X21pc3NpbmcpCiAJcmV0dXJuIHZpc2libGU7CiB9CiAKKy8qCisgKiBSZXR1cm5zIG9pZCBvZiBz ZXNzaW9uIHZhcmlhYmxlIHNwZWNpZmllZCBieSBwb3NzaWJseSBxdWFsaWZpZWQgaWRlbnRpZmll ci4KKyAqCisgKiBJZiBub3QgZm91bmQsIHJldHVybnMgSW52YWxpZE9pZCBpZiBtaXNzaW5nX29r LCBlbHNlIHRocm93cyBlcnJvci4KKyAqLworT2lkCitMb29rdXBWYXJpYWJsZShjb25zdCBjaGFy ICpuc3BuYW1lLAorCQkJICAgY29uc3QgY2hhciAqdmFybmFtZSwKKwkJCSAgIGJvb2wgbWlzc2lu Z19vaykKK3sKKwlPaWQJCQl2YXJvaWQgPSBJbnZhbGlkT2lkOworCisJaWYgKG5zcG5hbWUpCisJ eworCQlPaWQgbmFtZXNwYWNlSWQgPSBMb29rdXBFeHBsaWNpdE5hbWVzcGFjZShuc3BuYW1lLCBt aXNzaW5nX29rKTsKKworCQkvKiBpZiBuc3BuYW1lIGlzIGEga25vd24gbmFtZXNwYWNlLCB0aGUg dmFyaWFibGUgbXVzdCBiZSB0aGVyZSAqLworCQlpZiAoT2lkSXNWYWxpZChuYW1lc3BhY2VJZCkp CisJCXsKKwkJCXZhcm9pZCA9IEdldFN5c0NhY2hlT2lkMihWQVJJQUJMRU5BTUVOU1AsIEFudW1f cGdfdmFyaWFibGVfb2lkLAorCQkJCQkJCQkJIFBvaW50ZXJHZXREYXR1bSh2YXJuYW1lKSwKKwkJ CQkJCQkJCSBPYmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlkKSk7CisJCX0KKwl9CisJZWxzZQor CXsKKwkJLyogaXRlcmF0ZSBvdmVyIHRoZSBzY2hlbWFzIG9uIHRoZSBzZWFyY2hfcGF0aCAqLwor CQlyZWNvbXB1dGVOYW1lc3BhY2VQYXRoKCk7CisKKwkJZm9yZWFjaF9vaWQobmFtZXNwYWNlSWQs IGFjdGl2ZVNlYXJjaFBhdGgpCisJCXsKKwkJCXZhcm9pZCA9IEdldFN5c0NhY2hlT2lkMihWQVJJ QUJMRU5BTUVOU1AsIEFudW1fcGdfdmFyaWFibGVfb2lkLAorCQkJCQkJCQkJIFBvaW50ZXJHZXRE YXR1bSh2YXJuYW1lKSwKKwkJCQkJCQkJCSBPYmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlkKSk7 CisKKwkJCWlmIChPaWRJc1ZhbGlkKHZhcm9pZCkpCisJCQkJYnJlYWs7CisJCX0KKwl9CisKKwlp ZiAoIU9pZElzVmFsaWQodmFyb2lkKSAmJiAhbWlzc2luZ19vaykKKwl7CisJCWlmIChuc3BuYW1l KQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JK RUNUKSwKKwkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgZG9lcyBub3Qg ZXhpc3QiLAorCQkJCQkJCW5zcG5hbWUsIHZhcm5hbWUpKSk7CisJCWVsc2UKKwkJCWVyZXBvcnQo RVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJCSBl cnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCQl2 YXJuYW1lKSkpOworCX0KKworCXJldHVybiB2YXJvaWQ7Cit9CisKKy8qCisgKiBSZXR1cm5zIG9p ZCBvZiBzZXNzaW9uIHZhcmlhYmxlIHNwZWNpZmllZCBieSBwb3NzaWJseSBxdWFsaWZpZWQgaWRl bnRpZmllcgorICoKKyAqIElmIG5vdCBmb3VuZCwgcmV0dXJucyBJbnZhbGlkT2lkIGlmIG1pc3Np bmdfb2ssIGVsc2UgdGhyb3dzIGVycm9yLgorICovCitPaWQKK0xvb2t1cFZhcmlhYmxlRnJvbU5h bWVMaXN0KExpc3QgKm5hbWVzLAorCQkJCQkJICAgYm9vbCBtaXNzaW5nX29rKQoreworCWNoYXIJ ICAgKmNhdG5hbWUgPSBOVUxMOworCWNoYXIJICAgKm5zcG5hbWUgPSBOVUxMOworCWNoYXIJICAg KnZhcm5hbWUgPSBOVUxMOworCisJc3dpdGNoIChsaXN0X2xlbmd0aChuYW1lcykpCisJeworCQlj YXNlIDE6CisJCQl2YXJuYW1lID0gc3RyVmFsKGxpbml0aWFsKG5hbWVzKSk7CisJCQlicmVhazsK KwkJY2FzZSAyOgorCQkJbnNwbmFtZSA9IHN0clZhbChsaW5pdGlhbChuYW1lcykpOworCQkJdmFy bmFtZSA9IHN0clZhbChsc2Vjb25kKG5hbWVzKSk7CisJCQlicmVhazsKKwkJY2FzZSAzOgorCQkJ Y2F0bmFtZSA9IHN0clZhbChsaW5pdGlhbChuYW1lcykpOworCQkJbnNwbmFtZSA9IHN0clZhbChs c2Vjb25kKG5hbWVzKSk7CisJCQl2YXJuYW1lID0gc3RyVmFsKGx0aGlyZChuYW1lcykpOworCisJ CQkvKiBjaGVjayBjYXRhbG9nIG5hbWUgKi8KKwkJCWlmIChzdHJjbXAoY2F0bmFtZSwgZ2V0X2Rh dGFiYXNlX25hbWUoTXlEYXRhYmFzZUlkKSkgIT0gMCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJ CQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1z ZygiY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAlcyIsCisJ CQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSkpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6 CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiks CisJCQkJCSBlcnJtc2coImltcHJvcGVyIHNlc3Npb24gdmFyaWFibGUgbmFtZSAodG9vIG1hbnkg ZG90dGVkIG5hbWVzKTogJXMiLAorCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSkpOwor CQkJYnJlYWs7CisJfQorCisJcmV0dXJuIExvb2t1cFZhcmlhYmxlKG5zcG5hbWUsIHZhcm5hbWUs IG1pc3Npbmdfb2spOworfQorCisvKgorICogVGhlIGlucHV0IGxpc3QgY29udGFpbnMgbmFtZXMg d2l0aCBpbmRpcmVjdGlvbiBleHByZXNzaW9ucyB1c2VkIGFzIHRoZSBsZWZ0CisgKiBwYXJ0IG9m IExFVCBzdGF0ZW1lbnQuIFRoZSBmb2xsb3dpbmcgcm91dGluZSByZXR1cm5zIGEgbmV3IGxpc3Qg d2l0aCBvbmx5CisgKiBpbml0aWFsIHN0cmluZ3MgKG5hbWVzKSAtIHdpdGhvdXQgaW5kaXJlY3Rp b24gZXhwcmVzc2lvbnMuCisgKi8KK0xpc3QgKgorTmFtZXNGcm9tTGlzdChMaXN0ICpuYW1lcykK K3sKKwlMaXN0Q2VsbCAgICpsOworCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKKworCWZvcmVhY2go bCwgbmFtZXMpCisJeworCQlOb2RlCSAgICpuID0gbGZpcnN0KGwpOworCisJCWlmIChJc0Eobiwg U3RyaW5nKSkKKwkJeworCQkJcmVzdWx0ID0gbGFwcGVuZChyZXN1bHQsIG4pOworCQl9CisJCWVs c2UKKwkJCWJyZWFrOworCX0KKworCXJldHVybiByZXN1bHQ7Cit9CiAKIC8qCiAgKiBEZWNvbnN0 cnVjdFF1YWxpZmllZE5hbWUKQEAgLTUwODUsMyArNTI5MiwxNyBAQCBwZ19pc19vdGhlcl90ZW1w X3NjaGVtYShQR19GVU5DVElPTl9BUkdTKQogCiAJUEdfUkVUVVJOX0JPT0woaXNPdGhlclRlbXBO YW1lc3BhY2Uob2lkKSk7CiB9CisKK0RhdHVtCitwZ192YXJpYWJsZV9pc192aXNpYmxlKFBHX0ZV TkNUSU9OX0FSR1MpCit7CisJT2lkCQkJb2lkID0gUEdfR0VUQVJHX09JRCgwKTsKKwlib29sCQly ZXN1bHQ7CisJYm9vbAkJaXNfbWlzc2luZyA9IGZhbHNlOworCisJcmVzdWx0ID0gVmFyaWFibGVJ c1Zpc2libGVFeHQob2lkLCAmaXNfbWlzc2luZyk7CisKKwlpZiAoaXNfbWlzc2luZykKKwkJUEdf UkVUVVJOX05VTEwoKTsKKwlQR19SRVRVUk5fQk9PTChyZXN1bHQpOworfQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9vYmplY3RhZGRyZXNzLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9n L29iamVjdGFkZHJlc3MuYwppbmRleCBiZTdlNGE1ZGQwLi43ZTc2YzJlMzc1IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYworKysgYi9zcmMvYmFja2VuZC9j YXRhbG9nL29iamVjdGFkZHJlc3MuYwpAQCAtNjIsNiArNjIsNyBAQAogI2luY2x1ZGUgImNhdGFs b2cvcGdfdHNfdGVtcGxhdGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3VzZXJfbWFwcGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFy aWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgpAQCAt NjM2LDYgKzYzNywyMCBAQCBzdGF0aWMgY29uc3QgT2JqZWN0UHJvcGVydHlUeXBlIE9iamVjdFBy b3BlcnR5W10gPQogCQlPQkpFQ1RfVVNFUl9NQVBQSU5HLAogCQlmYWxzZQogCX0sCisJeworCQki c2Vzc2lvbiB2YXJpYWJsZSIsCisJCVZhcmlhYmxlUmVsYXRpb25JZCwKKwkJVmFyaWFibGVPaWRJ bmRleElkLAorCQlWQVJJQUJMRU9JRCwKKwkJVkFSSUFCTEVOQU1FTlNQLAorCQlBbnVtX3BnX3Zh cmlhYmxlX29pZCwKKwkJQW51bV9wZ192YXJpYWJsZV92YXJuYW1lLAorCQlBbnVtX3BnX3Zhcmlh YmxlX3Zhcm5hbWVzcGFjZSwKKwkJQW51bV9wZ192YXJpYWJsZV92YXJvd25lciwKKwkJQW51bV9w Z192YXJpYWJsZV92YXJhY2wsCisJCU9CSkVDVF9WQVJJQUJMRSwKKwkJdHJ1ZQorCX0KIH07CiAK IC8qCkBAIC04MzEsNiArODQ2LDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvYmplY3RfdHlwZV9t YXAKIAl9LAogCXsKIAkJInN0YXRpc3RpY3Mgb2JqZWN0IiwgT0JKRUNUX1NUQVRJU1RJQ19FWFQK Kwl9LAorCXsKKwkJInNlc3Npb24gdmFyaWFibGUiLCBPQkpFQ1RfVkFSSUFCTEUKIAl9CiB9Owog CkBAIC04NTYsNiArODc0LDcgQEAgc3RhdGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVjdF9hZGRy ZXNzX2F0dHJkZWYoT2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQkJCQkJCQkJYm9vbCBtaXNzaW5n X29rKTsKIHN0YXRpYyBPYmplY3RBZGRyZXNzIGdldF9vYmplY3RfYWRkcmVzc190eXBlKE9iamVj dFR5cGUgb2JqdHlwZSwKIAkJCQkJCQkJCQkJIFR5cGVOYW1lICp0eXBlbmFtZSwgYm9vbCBtaXNz aW5nX29rKTsKK3N0YXRpYyBPYmplY3RBZGRyZXNzIGdldF9vYmplY3RfYWRkcmVzc192YXJpYWJs ZShMaXN0ICpvYmplY3QsIGJvb2wgbWlzc2luZ19vayk7CiBzdGF0aWMgT2JqZWN0QWRkcmVzcyBn ZXRfb2JqZWN0X2FkZHJlc3Nfb3BjZihPYmplY3RUeXBlIG9ianR5cGUsIExpc3QgKm9iamVjdCwK IAkJCQkJCQkJCQkJIGJvb2wgbWlzc2luZ19vayk7CiBzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRf b2JqZWN0X2FkZHJlc3Nfb3BmX21lbWJlcihPYmplY3RUeXBlIG9ianR5cGUsCkBAIC0xMTI3LDYg KzExNDYsOSBAQCBnZXRfb2JqZWN0X2FkZHJlc3MoT2JqZWN0VHlwZSBvYmp0eXBlLCBOb2RlICpv YmplY3QsCiAJCQkJCQkJCQkJCQkJCQkgbWlzc2luZ19vayk7CiAJCQkJYWRkcmVzcy5vYmplY3RT dWJJZCA9IDA7CiAJCQkJYnJlYWs7CisJCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCQlhZGRy ZXNzID0gZ2V0X29iamVjdF9hZGRyZXNzX3ZhcmlhYmxlKGNhc3ROb2RlKExpc3QsIG9iamVjdCks IG1pc3Npbmdfb2spOworCQkJCWJyZWFrOwogCQkJCS8qIG5vIGRlZmF1bHQsIHRvIGxldCBjb21w aWxlciB3YXJuIGFib3V0IG1pc3NpbmcgY2FzZSAqLwogCQl9CiAKQEAgLTIwMDUsMTYgKzIwMjcs MjAgQEAgZ2V0X29iamVjdF9hZGRyZXNzX2RlZmFjbChMaXN0ICpvYmplY3QsIGJvb2wgbWlzc2lu Z19vaykKIAkJY2FzZSBERUZBQ0xPQkpfTkFNRVNQQUNFOgogCQkJb2JqdHlwZV9zdHIgPSAic2No ZW1hcyI7CiAJCQlicmVhazsKKwkJY2FzZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJCQlvYmp0eXBl X3N0ciA9ICJ2YXJpYWJsZXMiOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllcmVwb3J0KEVS Uk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJ CQkJIGVycm1zZygidW5yZWNvZ25pemVkIGRlZmF1bHQgQUNMIG9iamVjdCB0eXBlIFwiJWNcIiIs IG9ianR5cGUpLAotCQkJCQkgZXJyaGludCgiVmFsaWQgb2JqZWN0IHR5cGVzIGFyZSBcIiVjXCIs IFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIi4iLAorCQkJCQkgZXJyaGludCgiVmFsaWQg b2JqZWN0IHR5cGVzIGFyZSBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwg XCIlY1wiLiIsCiAJCQkJCQkJIERFRkFDTE9CSl9SRUxBVElPTiwKIAkJCQkJCQkgREVGQUNMT0JK X1NFUVVFTkNFLAogCQkJCQkJCSBERUZBQ0xPQkpfRlVOQ1RJT04sCiAJCQkJCQkJIERFRkFDTE9C Sl9UWVBFLAotCQkJCQkJCSBERUZBQ0xPQkpfTkFNRVNQQUNFKSkpOworCQkJCQkJCSBERUZBQ0xP QkpfTkFNRVNQQUNFLAorCQkJCQkJCSBERUZBQ0xPQkpfVkFSSUFCTEUpKSk7CiAJfQogCiAJLyoK QEAgLTIwOTgsNiArMjEyNCwyNCBAQCB0ZXh0YXJyYXlfdG9fc3RydmFsdWVsaXN0KEFycmF5VHlw ZSAqYXJyKQogCXJldHVybiBsaXN0OwogfQogCisvKgorICogRmluZCB0aGUgT2JqZWN0QWRkcmVz cyBmb3IgYSBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3N0YXRpYyBPYmplY3RBZGRyZXNzCitnZXRf b2JqZWN0X2FkZHJlc3NfdmFyaWFibGUoTGlzdCAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCit7 CisJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOworCWNoYXIJICAgKm5zcG5hbWUgPSBOVUxMOworCWNo YXIJICAgKnZhcm5hbWUgPSBOVUxMOworCisJT2JqZWN0QWRkcmVzc1NldChhZGRyZXNzLCBWYXJp YWJsZVJlbGF0aW9uSWQsIEludmFsaWRPaWQpOworCisJRGVjb25zdHJ1Y3RRdWFsaWZpZWROYW1l KG9iamVjdCwgJm5zcG5hbWUsICZ2YXJuYW1lKTsKKwlhZGRyZXNzLm9iamVjdElkID0gTG9va3Vw VmFyaWFibGUobnNwbmFtZSwgdmFybmFtZSwgbWlzc2luZ19vayk7CisKKwlyZXR1cm4gYWRkcmVz czsKK30KKwogLyoKICAqIFNRTC1jYWxsYWJsZSB2ZXJzaW9uIG9mIGdldF9vYmplY3RfYWRkcmVz cwogICovCkBAIC0yMjkyLDYgKzIzMzYsNyBAQCBwZ19nZXRfb2JqZWN0X2FkZHJlc3MoUEdfRlVO Q1RJT05fQVJHUykKIAkJY2FzZSBPQkpFQ1RfVEFCQ09OU1RSQUlOVDoKIAkJY2FzZSBPQkpFQ1Rf T1BDTEFTUzoKIAkJY2FzZSBPQkpFQ1RfT1BGQU1JTFk6CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxF OgogCQkJb2Jqbm9kZSA9IChOb2RlICopIG5hbWU7CiAJCQlicmVhazsKIAkJY2FzZSBPQkpFQ1Rf QUNDRVNTX01FVEhPRDoKQEAgLTI0NjMsNiArMjUwOCw3IEBAIGNoZWNrX29iamVjdF9vd25lcnNo aXAoT2lkIHJvbGVpZCwgT2JqZWN0VHlwZSBvYmp0eXBlLCBPYmplY3RBZGRyZXNzIGFkZHJlc3Ms CiAJCWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19FWFQ6CiAJCWNhc2UgT0JKRUNUX1RTRElDVElPTkFS WToKIAkJY2FzZSBPQkpFQ1RfVFNDT05GSUdVUkFUSU9OOgorCQljYXNlIE9CSkVDVF9WQVJJQUJM RToKIAkJCWlmICghb2JqZWN0X293bmVyY2hlY2soYWRkcmVzcy5jbGFzc0lkLCBhZGRyZXNzLm9i amVjdElkLCByb2xlaWQpKQogCQkJCWFjbGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9PV05FUiwg b2JqdHlwZSwKIAkJCQkJCQkgICBOYW1lTGlzdFRvU3RyaW5nKGNhc3ROb2RlKExpc3QsIG9iamVj dCkpKTsKQEAgLTM0NjcsNiArMzUxMywzMiBAQCBnZXRPYmplY3REZXNjcmlwdGlvbihjb25zdCBP YmplY3RBZGRyZXNzICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKIAkJCQlicmVhazsKIAkJCX0K IAorCQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJCXsKKwkJCQljaGFyCSAgICpuc3BuYW1l OworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCisJ CQkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKG9i amVjdC0+b2JqZWN0SWQpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJCQkJ ZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUi LAorCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQpOworCisJCQkJdmFyZm9ybSA9IChGb3JtX3BnX3Zh cmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCQkJCWlmIChWYXJpYWJsZUlzVmlzaWJsZShvYmpl Y3QtPm9iamVjdElkKSkKKwkJCQkJbnNwbmFtZSA9IE5VTEw7CisJCQkJZWxzZQorCQkJCQluc3Bu YW1lID0gZ2V0X25hbWVzcGFjZV9uYW1lKHZhcmZvcm0tPnZhcm5hbWVzcGFjZSk7CisKKwkJCQlh cHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsIF8oInNlc3Npb24gdmFyaWFibGUgJXMiKSwKKwkJCQkJ CQkJIHF1b3RlX3F1YWxpZmllZF9pZGVudGlmaWVyKG5zcG5hbWUsCisJCQkJCQkJCQkJCQkJCQlO YW1lU3RyKHZhcmZvcm0tPnZhcm5hbWUpKSk7CisKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsK KwkJCQlicmVhazsKKwkJCX0KKwogCQljYXNlIFRTUGFyc2VyUmVsYXRpb25JZDoKIAkJCXsKIAkJ CQlIZWFwVHVwbGUJdHVwOwpAQCAtMzgxOSw2ICszODkxLDE2IEBAIGdldE9iamVjdERlc2NyaXB0 aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQkJCQkJ CQkJCSBfKCJkZWZhdWx0IHByaXZpbGVnZXMgb24gbmV3IHNjaGVtYXMgYmVsb25naW5nIHRvIHJv bGUgJXMiKSwKIAkJCQkJCQkJCQkgcm9sZW5hbWUpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2Ug REVGQUNMT0JKX1ZBUklBQkxFOgorCQkJCQkJaWYgKG5zcG5hbWUpCisJCQkJCQkJYXBwZW5kU3Ry aW5nSW5mbygmYnVmZmVyLAorCQkJCQkJCQkJCQkgXygiZGVmYXVsdCBwcml2aWxlZ2VzIG9uIG5l dyBzZXNzaW9uIHZhcmlhYmxlcyBiZWxvbmdpbmcgdG8gcm9sZSAlcyBpbiBzY2hlbWEgJXMiKSwK KwkJCQkJCQkJCQkJIHJvbGVuYW1lLCBuc3BuYW1lKTsKKwkJCQkJCWVsc2UKKwkJCQkJCQlhcHBl bmRTdHJpbmdJbmZvKCZidWZmZXIsCisJCQkJCQkJCQkJCSBfKCJkZWZhdWx0IHByaXZpbGVnZXMg b24gbmV3IHNlc3Npb24gdmFyaWFibGVzIGJlbG9uZ2luZyB0byByb2xlICVzIiksCisJCQkJCQkJ CQkJCSByb2xlbmFtZSk7CisJCQkJCQlicmVhazsKIAkJCQkJZGVmYXVsdDoKIAkJCQkJCS8qIHNo b3VsZG4ndCBnZXQgaGVyZSAqLwogCQkJCQkJaWYgKG5zcG5hbWUpCkBAIC00NjM1LDYgKzQ3MTcs MTAgQEAgZ2V0T2JqZWN0VHlwZURlc2NyaXB0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVj dCwgYm9vbCBtaXNzaW5nX29rKQogCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCAi dHJhbnNmb3JtIik7CiAJCQlicmVhazsKIAorCQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJ CWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwgInNlc3Npb24gdmFyaWFibGUiKTsKKwkJ CWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2JqZWN0 IGNsYXNzOiAldSIsIG9iamVjdC0+Y2xhc3NJZCk7CiAJfQpAQCAtNTc0MSw2ICs1ODI3LDEwIEBA IGdldE9iamVjdElkZW50aXR5UGFydHMoY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LAogCQkJ CQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLAogCQkJCQkJCQkJCQkgICAiIG9uIHNj aGVtYXMiKTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJ CQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoJmJ1ZmZlciwKKwkJCQkJCQkJCQkJICAgIiBvbiBz ZXNzaW9uIHZhcmlhYmxlcyIpOworCQkJCQkJYnJlYWs7CiAJCQkJfQogCiAJCQkJaWYgKG9iam5h bWUpCkBAIC01OTgxLDYgKzYwNzEsMzMgQEAgZ2V0T2JqZWN0SWRlbnRpdHlQYXJ0cyhjb25zdCBP YmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQl9CiAJCQlicmVhazsKIAorCQljYXNlIFZhcmlhYmxl UmVsYXRpb25JZDoKKwkJCXsKKwkJCQljaGFyCSAgICpzY2hlbWE7CisJCQkJY2hhcgkgICAqdmFy bmFtZTsKKwkJCQlIZWFwVHVwbGUJdHVwOworCQkJCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsK KworCQkJCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1 bShvYmplY3QtPm9iamVjdElkKSk7CisJCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJ CQkJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxl ICV1IiwKKwkJCQkJCSBvYmplY3QtPm9iamVjdElkKTsKKworCQkJCXZhcmZvcm0gPSAoRm9ybV9w Z192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwkJCQlzY2hlbWEgPSBnZXRfbmFtZXNwYWNl X25hbWVfb3JfdGVtcCh2YXJmb3JtLT52YXJuYW1lc3BhY2UpOworCQkJCXZhcm5hbWUgPSBOYW1l U3RyKHZhcmZvcm0tPnZhcm5hbWUpOworCisJCQkJYXBwZW5kU3RyaW5nSW5mbygmYnVmZmVyLCAi JXMiLAorCQkJCQkJCQkgcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIoc2NoZW1hLCB2YXJuYW1l KSk7CisKKwkJCQlpZiAob2JqbmFtZSkKKwkJCQkJKm9iam5hbWUgPSBsaXN0X21ha2UyKHNjaGVt YSwgcHN0cmR1cCh2YXJuYW1lKSk7CisKKwkJCQlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwkJCQli cmVhazsKKwkJCX0KKwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVuc3VwcG9ydGVkIG9i amVjdCBjbGFzczogJXUiLCBvYmplY3QtPmNsYXNzSWQpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfc2hkZXBlbmQuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc2hk ZXBlbmQuYwppbmRleCA3NTNhZmI4ODQ1Li4xZWEzZDZkYjA1IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jYXRhbG9nL3BnX3NoZGVwZW5kLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19z aGRlcGVuZC5jCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c19kaWN0 LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ191 c2VyX21hcHBpbmcuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvYWx0ZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCkBAIC0xNzE0LDYgKzE3MTUsNyBAQCBzaGRlcFJl YXNzaWduT3duZWRfT3duZXIoRm9ybV9wZ19zaGRlcGVuZCBzZGVwRm9ybSwgT2lkIG5ld3JvbGUp CiAJCWNhc2UgRGF0YWJhc2VSZWxhdGlvbklkOgogCQljYXNlIFRTQ29uZmlnUmVsYXRpb25JZDoK IAkJY2FzZSBUU0RpY3Rpb25hcnlSZWxhdGlvbklkOgorCQljYXNlIFZhcmlhYmxlUmVsYXRpb25J ZDoKIAkJCUFsdGVyT2JqZWN0T3duZXJfaW50ZXJuYWwoc2RlcEZvcm0tPmNsYXNzaWQsCiAJCQkJ CQkJCQkgIHNkZXBGb3JtLT5vYmppZCwKIAkJCQkJCQkJCSAgbmV3cm9sZSk7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9n L3BnX3ZhcmlhYmxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYTIx Y2FhMGUwZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFi bGUuYwpAQCAtMCwwICsxLDI1MSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfdmFy aWFibGUuYworICoJCXNlc3Npb24gdmFyaWFibGVzCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0 IChjKSAxOTk2LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQ b3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2Yg Q2FsaWZvcm5pYQorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkJc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ192YXJpYWJsZS5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2luY2x1ZGUg InBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJhY2Nlc3MvaGVhcGFtLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9kZXBlbmRlbmN5LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9pbmRleGluZy5oIgorI2luY2x1 ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhY2Nlc3Mu aCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5oIgorI2luY2x1ZGUgImNhdGFsb2cv cGdfbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgorI2luY2x1 ZGUgIm1pc2NhZG1pbi5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCisjaW5jbHVk ZSAidXRpbHMvYnVpbHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNs dWRlICJ1dGlscy9zeXNjYWNoZS5oIgorCitzdGF0aWMgT2JqZWN0QWRkcmVzcyBjcmVhdGVfdmFy aWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKKwkJCQkJCQkJCSBPaWQgdmFyTmFtZXNwYWNlLAor CQkJCQkJCQkJIE9pZCB2YXJUeXBlLAorCQkJCQkJCQkJIGludDMyIHZhclR5cG1vZCwKKwkJCQkJ CQkJCSBPaWQgdmFyT3duZXIsCisJCQkJCQkJCQkgT2lkIHZhckNvbGxhdGlvbiwKKwkJCQkJCQkJ CSBib29sIGlmX25vdF9leGlzdHMpOworCisKKy8qCisgKiBDcmVhdGVzIGVudHJ5IGluIHBnX3Zh cmlhYmxlIHRhYmxlCisgKi8KK3N0YXRpYyBPYmplY3RBZGRyZXNzCitjcmVhdGVfdmFyaWFibGUo Y29uc3QgY2hhciAqdmFyTmFtZSwKKwkJCQlPaWQgdmFyTmFtZXNwYWNlLAorCQkJCU9pZCB2YXJU eXBlLAorCQkJCWludDMyIHZhclR5cG1vZCwKKwkJCQlPaWQgdmFyT3duZXIsCisJCQkJT2lkIHZh ckNvbGxhdGlvbiwKKwkJCQlib29sIGlmX25vdF9leGlzdHMpCit7CisJQWNsCQkgICAqdmFyYWNs OworCU5hbWVEYXRhCXZhcm5hbWU7CisJYm9vbAkJbnVsbHNbTmF0dHNfcGdfdmFyaWFibGVdOwor CURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfdmFyaWFibGVdOworCVJlbGF0aW9uCXJlbDsKKwlIZWFw VHVwbGUJdHVwOworCVR1cGxlRGVzYwl0dXBkZXNjOworCU9iamVjdEFkZHJlc3MgbXlzZWxmLAor CQkJCXJlZmVyZW5jZWQ7CisJT2JqZWN0QWRkcmVzc2VzICphZGRyczsKKwlPaWQJCQl2YXJpZDsK KworCUFzc2VydCh2YXJOYW1lKTsKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJOYW1lc3BhY2UpKTsK KwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJUeXBlKSk7CisJQXNzZXJ0KE9pZElzVmFsaWQodmFyT3du ZXIpKTsKKworCXJlbCA9IHRhYmxlX29wZW4oVmFyaWFibGVSZWxhdGlvbklkLCBSb3dFeGNsdXNp dmVMb2NrKTsKKworCS8qCisJICogQ2hlY2sgZm9yIGR1cGxpY2F0ZXMuIE5vdGUgdGhhdCB0aGlz IGRvZXMgbm90IHJlYWxseSBwcmV2ZW50CisJICogZHVwbGljYXRlcywgaXQncyBoZXJlIGp1c3Qg dG8gcHJvdmlkZSBuaWNlciBlcnJvciBtZXNzYWdlIGluIGNvbW1vbgorCSAqIGNhc2UuIFRoZSBy ZWFsIHByb3RlY3Rpb24gaXMgdGhlIHVuaXF1ZSBrZXkgb24gdGhlIGNhdGFsb2cuCisJICovCisJ aWYgKFNlYXJjaFN5c0NhY2hlRXhpc3RzMihWQVJJQUJMRU5BTUVOU1AsCisJCQkJCQkJICBQb2lu dGVyR2V0RGF0dW0odmFyTmFtZSksCisJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKHZhck5hbWVz cGFjZSkpKQorCXsKKwkJaWYgKGlmX25vdF9leGlzdHMpCisJCQllcmVwb3J0KE5PVElDRSwKKwkJ CQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKKwkJCQkJIGVycm1zZygic2Vz c2lvbiB2YXJpYWJsZSBcIiVzXCIgYWxyZWFkeSBleGlzdHMsIHNraXBwaW5nIiwKKwkJCQkJCQl2 YXJOYW1lKSkpOworCQllbHNlCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJD T0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwi JXNcIiBhbHJlYWR5IGV4aXN0cyIsCisJCQkJCQkJdmFyTmFtZSkpKTsKKworCQl0YWJsZV9jbG9z ZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJCXJldHVybiBJbnZhbGlkT2JqZWN0QWRkcmVz czsKKwl9CisKKwltZW1zZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7CisJbWVtc2V0KG51 bGxzLCBmYWxzZSwgc2l6ZW9mKG51bGxzKSk7CisKKwluYW1lc3RyY3B5KCZ2YXJuYW1lLCB2YXJO YW1lKTsKKworCXZhcmlkID0gR2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgVmFyaWFibGVPaWRJbmRl eElkLCBBbnVtX3BnX3ZhcmlhYmxlX29pZCk7CisKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV9v aWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyaWQpOworCXZhbHVlc1tBbnVtX3BnX3Zhcmlh YmxlX3Zhcm5hbWUgLSAxXSA9IE5hbWVHZXREYXR1bSgmdmFybmFtZSk7CisJdmFsdWVzW0FudW1f cGdfdmFyaWFibGVfdmFybmFtZXNwYWNlIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhck5hbWVz cGFjZSk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFydHlwZSAtIDFdID0gT2JqZWN0SWRH ZXREYXR1bSh2YXJUeXBlKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBtb2QgLSAx XSA9IEludDMyR2V0RGF0dW0odmFyVHlwbW9kKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92 YXJvd25lciAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJPd25lcik7CisJdmFsdWVzW0FudW1f cGdfdmFyaWFibGVfdmFyY29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxh dGlvbik7CisKKwl2YXJhY2wgPSBnZXRfdXNlcl9kZWZhdWx0X2FjbChPQkpFQ1RfVkFSSUFCTEUs IHZhck93bmVyLAorCQkJCQkJCQkgIHZhck5hbWVzcGFjZSk7CisJaWYgKHZhcmFjbCAhPSBOVUxM KQorCQl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJhY2wgLSAxXSA9IFBvaW50ZXJHZXREYXR1 bSh2YXJhY2wpOworCWVsc2UKKwkJbnVsbHNbQW51bV9wZ192YXJpYWJsZV92YXJhY2wgLSAxXSA9 IHRydWU7CisKKwl0dXBkZXNjID0gUmVsYXRpb25HZXREZXNjcihyZWwpOworCisJdHVwID0gaGVh cF9mb3JtX3R1cGxlKHR1cGRlc2MsIHZhbHVlcywgbnVsbHMpOworCUNhdGFsb2dUdXBsZUluc2Vy dChyZWwsIHR1cCk7CisJQXNzZXJ0KE9pZElzVmFsaWQodmFyaWQpKTsKKworCWFkZHJzID0gbmV3 X29iamVjdF9hZGRyZXNzZXMoKTsKKworCU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBWYXJpYWJs ZVJlbGF0aW9uSWQsIHZhcmlkKTsKKworCS8qIGRlcGVuZGVuY3kgb24gbmFtZXNwYWNlICovCisJ T2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2VkLCBOYW1lc3BhY2VSZWxhdGlvbklkLCB2YXJOYW1l c3BhY2UpOworCWFkZF9leGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJlbmNlZCwgYWRkcnMpOwor CisJLyogZGVwZW5kZW5jeSBvbiB1c2VkIHR5cGUgKi8KKwlPYmplY3RBZGRyZXNzU2V0KHJlZmVy ZW5jZWQsIFR5cGVSZWxhdGlvbklkLCB2YXJUeXBlKTsKKwlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJl c3MoJnJlZmVyZW5jZWQsIGFkZHJzKTsKKworCS8qIGRlcGVuZGVuY3kgb24gY29sbGF0aW9uICov CisJaWYgKE9pZElzVmFsaWQodmFyQ29sbGF0aW9uKSAmJgorCQl2YXJDb2xsYXRpb24gIT0gREVG QVVMVF9DT0xMQVRJT05fT0lEKQorCXsKKwkJT2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2VkLCBD b2xsYXRpb25SZWxhdGlvbklkLCB2YXJDb2xsYXRpb24pOworCQlhZGRfZXhhY3Rfb2JqZWN0X2Fk ZHJlc3MoJnJlZmVyZW5jZWQsIGFkZHJzKTsKKwl9CisKKwlyZWNvcmRfb2JqZWN0X2FkZHJlc3Nf ZGVwZW5kZW5jaWVzKCZteXNlbGYsIGFkZHJzLCBERVBFTkRFTkNZX05PUk1BTCk7CisJZnJlZV9v YmplY3RfYWRkcmVzc2VzKGFkZHJzKTsKKworCS8qIGRlcGVuZGVuY3kgb24gb3duZXIgKi8KKwly ZWNvcmREZXBlbmRlbmN5T25Pd25lcihWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCB2YXJPd25l cik7CisKKwkvKiBkZXBlbmRlbmNpZXMgb24gcm9sZXMgbWVudGlvbmVkIGluIGRlZmF1bHQgQUNM ICovCisJcmVjb3JkRGVwZW5kZW5jeU9uTmV3QWNsKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQs IDAsIHZhck93bmVyLCB2YXJhY2wpOworCisJLyogZGVwZW5kZW5jeSBvbiBleHRlbnNpb24gKi8K KwlyZWNvcmREZXBlbmRlbmN5T25DdXJyZW50RXh0ZW5zaW9uKCZteXNlbGYsIGZhbHNlKTsKKwor CWhlYXBfZnJlZXR1cGxlKHR1cCk7CisKKwkvKiBwb3N0IGNyZWF0aW9uIGhvb2sgZm9yIG5ldyBm dW5jdGlvbiAqLworCUludm9rZU9iamVjdFBvc3RDcmVhdGVIb29rKFZhcmlhYmxlUmVsYXRpb25J ZCwgdmFyaWQsIDApOworCisJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwor CXJldHVybiBteXNlbGY7Cit9CisKKy8qCisgKiBDcmVhdGVzIGEgbmV3IHZhcmlhYmxlCisgKgor ICogVXNlZCBieSBDUkVBVEUgVkFSSUFCTEUgY29tbWFuZAorICovCitPYmplY3RBZGRyZXNzCitD cmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpz dG10KQoreworCU9pZAkJCW5hbWVzcGFjZWlkOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJT2lk CQkJdHlwaWQ7CisJaW50MzIJCXR5cG1vZDsKKwlPaWQJCQl2YXJvd25lciA9IEdldFVzZXJJZCgp OworCU9pZAkJCWNvbGxhdGlvbjsKKwlPaWQJCQl0eXBjb2xsYXRpb247CisJT2JqZWN0QWRkcmVz cyB2YXJpYWJsZTsKKworCW5hbWVzcGFjZWlkID0KKwkJUmFuZ2VWYXJHZXRBbmRDaGVja0NyZWF0 aW9uTmFtZXNwYWNlKHN0bXQtPnZhcmlhYmxlLCBOb0xvY2ssIE5VTEwpOworCisJdHlwZW5hbWVU eXBlSWRBbmRNb2QocHN0YXRlLCBzdG10LT50eXBlTmFtZSwgJnR5cGlkLCAmdHlwbW9kKTsKKwor CS8qIGRpc2FsbG93IHBzZXVkb3R5cGVzICovCisJaWYgKGdldF90eXB0eXBlKHR5cGlkKSA9PSBU WVBUWVBFX1BTRVVETykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dS T05HX09CSkVDVF9UWVBFKSwKKwkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBi ZSBwc2V1ZG8tdHlwZSAlcyIsCisJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkpKSk7CisKKwlh Y2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soVHlwZVJlbGF0aW9uSWQsIHR5cGlkLCBHZXRVc2Vy SWQoKSwgQUNMX1VTQUdFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQlhY2xj aGVja19lcnJvcl90eXBlKGFjbHJlc3VsdCwgdHlwaWQpOworCisJdHlwY29sbGF0aW9uID0gZ2V0 X3R5cGNvbGxhdGlvbih0eXBpZCk7CisKKwlpZiAoc3RtdC0+Y29sbENsYXVzZSkKKwkJY29sbGF0 aW9uID0gTG9va3VwQ29sbGF0aW9uKHBzdGF0ZSwKKwkJCQkJCQkJCXN0bXQtPmNvbGxDbGF1c2Ut PmNvbGxuYW1lLAorCQkJCQkJCQkJc3RtdC0+Y29sbENsYXVzZS0+bG9jYXRpb24pOworCWVsc2UK KwkJY29sbGF0aW9uID0gdHlwY29sbGF0aW9uOzsKKworCS8qIGNvbXBsYWluIGlmIENPTExBVEUg aXMgYXBwbGllZCB0byBhbiB1bmNvbGxhdGFibGUgdHlwZSAqLworCWlmIChPaWRJc1ZhbGlkKGNv bGxhdGlvbikgJiYgIU9pZElzVmFsaWQodHlwY29sbGF0aW9uKSkKKwkJZXJlcG9ydChFUlJPUiwK KwkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkgZXJybXNnKCJj b2xsYXRpb25zIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IHR5cGUgJXMiLAorCQkJCQkJZm9ybWF0X3R5 cGVfYmUodHlwaWQpKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgc3RtdC0+Y29s bENsYXVzZS0+bG9jYXRpb24pKSk7CisKKwl2YXJpYWJsZSA9IGNyZWF0ZV92YXJpYWJsZShzdG10 LT52YXJpYWJsZS0+cmVsbmFtZSwKKwkJCQkJCQkgICBuYW1lc3BhY2VpZCwKKwkJCQkJCQkgICB0 eXBpZCwKKwkJCQkJCQkgICB0eXBtb2QsCisJCQkJCQkJICAgdmFyb3duZXIsCisJCQkJCQkJICAg Y29sbGF0aW9uLAorCQkJCQkJCSAgIHN0bXQtPmlmX25vdF9leGlzdHMpOworCisJZWxvZyhERUJV RzEsICJyZWNvcmQgZm9yIHNlc3Npb24gdmFyaWFibGUgXCIlc1wiIChvaWQ6JWQpIHdhcyBjcmVh dGVkIGluIHBnX3ZhcmlhYmxlIiwKKwkJIHN0bXQtPnZhcmlhYmxlLT5yZWxuYW1lLCB2YXJpYWJs ZS5vYmplY3RJZCk7CisKKwlyZXR1cm4gdmFyaWFibGU7Cit9CisKKy8qCisgKiBEcm9wIHZhcmlh YmxlIGJ5IE9JRAorICovCit2b2lkCitEcm9wVmFyaWFibGVCeUlkKE9pZCB2YXJpZCkKK3sKKwlS ZWxhdGlvbglyZWw7CisJSGVhcFR1cGxlCXR1cDsKKworCXJlbCA9IHRhYmxlX29wZW4oVmFyaWFi bGVSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hl MShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVw bGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciB2 YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCUNhdGFsb2dUdXBsZURlbGV0ZShyZWwsICZ0dXAtPnRf c2VsZik7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXRhYmxlX2Nsb3NlKHJlbCwgUm93 RXhjbHVzaXZlTG9jayk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRl ci5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYwppbmRleCBhNDVmM2JiNmI4Li5kNGQ4 OGQxMTMxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jCisrKyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJj YXRhbG9nL3BnX3RzX2RpY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3BhcnNlci5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfdGVtcGxhdGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3Bn X3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYWx0ZXIuaCIKICNpbmNsdWRlICJjb21t YW5kcy9jb2xsYXRpb25jbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgpA QCAtMTM5LDYgKzE0MCwxMCBAQCByZXBvcnRfbmFtZXNwYWNlX2NvbmZsaWN0KE9pZCBjbGFzc0lk LCBjb25zdCBjaGFyICpuYW1lLCBPaWQgbnNwT2lkKQogCQkJQXNzZXJ0KE9pZElzVmFsaWQobnNw T2lkKSk7CiAJCQltc2dmbXQgPSBnZXR0ZXh0X25vb3AoInRleHQgc2VhcmNoIGNvbmZpZ3VyYXRp b24gXCIlc1wiIGFscmVhZHkgZXhpc3RzIGluIHNjaGVtYSBcIiVzXCIiKTsKIAkJCWJyZWFrOwor CQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKKwkJCUFzc2VydChPaWRJc1ZhbGlkKG5zcE9pZCkp OworCQkJbXNnZm10ID0gZ2V0dGV4dF9ub29wKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBhbHJl YWR5IGV4aXN0cyBpbiBzY2hlbWEgXCIlc1wiIik7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJ CWVsb2coRVJST1IsICJ1bnN1cHBvcnRlZCBvYmplY3QgY2xhc3M6ICV1IiwgY2xhc3NJZCk7CiAJ CQlicmVhazsKQEAgLTQxOCw2ICs0MjMsNyBAQCBFeGVjUmVuYW1lU3RtdChSZW5hbWVTdG10ICpz dG10KQogCQljYXNlIE9CSkVDVF9UU1RFTVBMQVRFOgogCQljYXNlIE9CSkVDVF9QVUJMSUNBVElP TjoKIAkJY2FzZSBPQkpFQ1RfU1VCU0NSSVBUSU9OOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToK IAkJCXsKIAkJCQlPYmplY3RBZGRyZXNzIGFkZHJlc3M7CiAJCQkJUmVsYXRpb24JY2F0YWxvZzsK QEAgLTU1OCw2ICs1NjQsNyBAQCBFeGVjQWx0ZXJPYmplY3RTY2hlbWFTdG10KEFsdGVyT2JqZWN0 U2NoZW1hU3RtdCAqc3RtdCwKIAkJY2FzZSBPQkpFQ1RfVFNESUNUSU9OQVJZOgogCQljYXNlIE9C SkVDVF9UU1BBUlNFUjoKIAkJY2FzZSBPQkpFQ1RfVFNURU1QTEFURToKKwkJY2FzZSBPQkpFQ1Rf VkFSSUFCTEU6CiAJCQl7CiAJCQkJUmVsYXRpb24JY2F0YWxvZzsKIAkJCQlPaWQJCQljbGFzc0lk OwpAQCAtNjQwLDYgKzY0Nyw3IEBAIEFsdGVyT2JqZWN0TmFtZXNwYWNlX29pZChPaWQgY2xhc3NJ ZCwgT2lkIG9iamlkLCBPaWQgbnNwT2lkLAogCQljYXNlIFRTRGljdGlvbmFyeVJlbGF0aW9uSWQ6 CiAJCWNhc2UgVFNUZW1wbGF0ZVJlbGF0aW9uSWQ6CiAJCWNhc2UgVFNDb25maWdSZWxhdGlvbklk OgorCQljYXNlIFZhcmlhYmxlUmVsYXRpb25JZDoKIAkJCXsKIAkJCQlSZWxhdGlvbgljYXRhbG9n OwogCkBAIC04NzAsNiArODc4LDcgQEAgRXhlY0FsdGVyT3duZXJTdG10KEFsdGVyT3duZXJTdG10 ICpzdG10KQogCQljYXNlIE9CSkVDVF9UQUJMRVNQQUNFOgogCQljYXNlIE9CSkVDVF9UU0RJQ1RJ T05BUlk6CiAJCWNhc2UgT0JKRUNUX1RTQ09ORklHVVJBVElPTjoKKwkJY2FzZSBPQkpFQ1RfVkFS SUFCTEU6CiAJCQl7CiAJCQkJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJv cGNtZHMuYwppbmRleCA4NWVlYzdlMzk0Li4zY2NlMTdlOTJhIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3Bj bWRzLmMKQEAgLTQ3Niw2ICs0NzYsMTAgQEAgZG9lc19ub3RfZXhpc3Rfc2tpcHBpbmcoT2JqZWN0 VHlwZSBvYmp0eXBlLCBOb2RlICpvYmplY3QpCiAJCQltc2cgPSBnZXR0ZXh0X25vb3AoInB1Ymxp Y2F0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmciKTsKIAkJCW5hbWUgPSBzdHJW YWwob2JqZWN0KTsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCW1zZyA9 IGdldHRleHRfbm9vcCgic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIHNr aXBwaW5nIik7CisJCQluYW1lID0gTmFtZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShMaXN0LCBvYmpl Y3QpKTsKKwkJCWJyZWFrOwogCiAJCWNhc2UgT0JKRUNUX0NPTFVNTjoKIAkJY2FzZSBPQkpFQ1Rf REFUQUJBU0U6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2Vy LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKaW5kZXggZGNmYzFkYmFm Zi4uZDAzY2I5NDdlNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJp Z2dlci5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYwpAQCAtMjE0 OSw2ICsyMTQ5LDggQEAgc3RyaW5naWZ5X2dyYW50X29ianR5cGUoT2JqZWN0VHlwZSBvYmp0eXBl KQogCQkJcmV0dXJuICJUQUJMRVNQQUNFIjsKIAkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCXJldHVy biAiVFlQRSI7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJcmV0dXJuICJWQVJJQUJMRSI7 CiAJCQkvKiB0aGVzZSBjdXJyZW50bHkgYXJlbid0IHVzZWQgKi8KIAkJY2FzZSBPQkpFQ1RfQUND RVNTX01FVEhPRDoKIAkJY2FzZSBPQkpFQ1RfQUdHUkVHQVRFOgpAQCAtMjIzMiw2ICsyMjM0LDgg QEAgc3RyaW5naWZ5X2FkZWZwcml2c19vYmp0eXBlKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJCXJl dHVybiAiVEFCTEVTUEFDRVMiOwogCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJcmV0dXJuICJUWVBF UyI7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJcmV0dXJuICJWQVJJQUJMRVMiOwogCQkJ LyogdGhlc2UgY3VycmVudGx5IGFyZW4ndCB1c2VkICovCiAJCWNhc2UgT0JKRUNUX0FDQ0VTU19N RVRIT0Q6CiAJCWNhc2UgT0JKRUNUX0FHR1JFR0FURToKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3NlY2xhYmVsLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jCmlu ZGV4IDU2MDcyNzNiZjkuLmMwMjZhYjVkY2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3NlY2xhYmVsLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYwpAQCAt OTIsNiArOTIsNyBAQCBTZWNMYWJlbFN1cHBvcnRzT2JqZWN0VHlwZShPYmplY3RUeXBlIG9ianR5 cGUpCiAJCWNhc2UgT0JKRUNUX1RTUEFSU0VSOgogCQljYXNlIE9CSkVDVF9UU1RFTVBMQVRFOgog CQljYXNlIE9CSkVDVF9VU0VSX01BUFBJTkc6CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJ cmV0dXJuIGZhbHNlOwogCiAJCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv dGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCA0OTM3 NDc4MjYyLi5kZWVlMmVkNDM3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJs ZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtNTIsNiAr NTIsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZS5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3N0b3JhZ2UuaCIK ICNpbmNsdWRlICJjYXRhbG9nL3N0b3JhZ2VfeGxvZy5oIgogI2luY2x1ZGUgImNhdGFsb2cvdG9h c3RpbmcuaCIKQEAgLTY3NzIsNiArNjc3Myw3IEBAIEFUVHlwZWRUYWJsZVJlY3Vyc2lvbihMaXN0 ICoqd3F1ZXVlLCBSZWxhdGlvbiByZWwsIEFsdGVyVGFibGVDbWQgKmNtZCwKICAqIChwb3NzaWJs eSBuZXN0ZWQgc2V2ZXJhbCBsZXZlbHMgZGVlcCBpbiBjb21wb3NpdGUgdHlwZXMsIGFycmF5cywg ZXRjISkuCiAgKiBFdmVudHVhbGx5LCB3ZSdkIGxpa2UgdG8gcHJvcGFnYXRlIHRoZSBjaGVjayBv ciByZXdyaXRlIG9wZXJhdGlvbgogICogaW50byBzdWNoIHRhYmxlcywgYnV0IGZvciBub3csIGp1 c3QgZXJyb3Igb3V0IGlmIHdlIGZpbmQgYW55LgorICogQWxzbywgY2hlY2sgaWYgInR5cGVPaWQi IGlzIHVzZWQgYXMgdHlwZSBvZiBzb21lIHNlc3Npb24gdmFyaWFibGUuCiAgKgogICogQ2FsbGVy IHNob3VsZCBwcm92aWRlIGVpdGhlciB0aGUgYXNzb2NpYXRlZCByZWxhdGlvbiBvZiBhIHJvd3R5 cGUsCiAgKiBvciBhIHR5cGUgbmFtZSAobm90IGJvdGgpIGZvciB1c2UgaW4gdGhlIGVycm9yIG1l c3NhZ2UsIGlmIGFueS4KQEAgLTY4MzUsNiArNjgzNyw0NSBAQCBmaW5kX2NvbXBvc2l0ZV90eXBl X2RlcGVuZGVuY2llcyhPaWQgdHlwZU9pZCwgUmVsYXRpb24gb3JpZ1JlbGF0aW9uLAogCQkJY29u dGludWU7CiAJCX0KIAorCQkvKiBjaGVjayBpZiB0aGUgdHlwZSBpcyB1c2VkIGFzIHR5cGUgb2Yg c29tZSBzZXNzaW9uIHZhcmlhYmxlICovCisJCWlmIChwZ19kZXBlbmQtPmNsYXNzaWQgPT0gVmFy aWFibGVSZWxhdGlvbklkKQorCQl7CisJCQlPaWQJCQl2YXJpZCA9IHBnX2RlcGVuZC0+b2JqaWQ7 CisKKwkJCWlmIChvcmlnVHlwZU5hbWUpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJj b2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coImNhbm5v dCBhbHRlciB0eXBlIFwiJXNcIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIHVz ZXMgaXQiLAorCQkJCQkJCQlvcmlnVHlwZU5hbWUsCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFt ZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nl c3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpKSk7CisJCQllbHNlIGlmIChvcmlnUmVsYXRpb24t PnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX0NPTVBPU0lURV9UWVBFKQorCQkJCWVyZXBvcnQo RVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJ CQkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgdHlwZSBcIiVzXCIgYmVjYXVzZSBzZXNzaW9uIHZh cmlhYmxlIFwiJXMuJXNcIiB1c2VzIGl0IiwKKwkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5h bWUob3JpZ1JlbGF0aW9uKSwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9u X3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lKHZhcmlkKSkpKTsKKwkJCWVsc2UgaWYgKG9yaWdSZWxhdGlvbi0+cmRfcmVsLT5yZWxr aW5kID09IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJ KGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygi Y2Fubm90IGFsdGVyIGZvcmVpZ24gdGFibGUgXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJs ZSBcIiVzLiVzXCIgdXNlcyBpdCIsCisJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKG9y aWdSZWxhdGlvbiksCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFt ZSh2YXJpZCkpKSk7CisJCQllbHNlIGlmIChvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9 PSBSRUxLSU5EX1JFTEFUSU9OIHx8CisJCQkJCSBvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2lu ZCA9PSBSRUxLSU5EX01BVFZJRVcgfHwKKwkJCQkJIG9yaWdSZWxhdGlvbi0+cmRfcmVsLT5yZWxr aW5kID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJt c2coImNhbm5vdCBhbHRlciB0YWJsZSBcIiVzXCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwi JXMuJXNcIiB1c2VzIGl0IiwKKwkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUob3JpZ1Jl bGF0aW9uKSwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxl X25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZh cmlkKSkpKTsKKworCQkJY29udGludWU7CisJCX0KKwogCQkvKiBFbHNlLCBpZ25vcmUgZGVwZW5k ZWVzIHRoYXQgYXJlbid0IHJlbGF0aW9ucyAqLwogCQlpZiAocGdfZGVwZW5kLT5jbGFzc2lkICE9 IFJlbGF0aW9uUmVsYXRpb25JZCkKIAkJCWNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvdHlwZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMK aW5kZXggNGYyMGI1YmUwNi4uODVmNmE1NGEzZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvdHlwZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCkBA IC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ19yYW5nZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1 ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIK ICNpbmNsdWRlICJjb21tYW5kcy90YWJsZWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy90eXBl Y21kcy5oIgpAQCAtMzQwNCw2ICszNDA1LDIwIEBAIGdldF9yZWxzX3dpdGhfZG9tYWluKE9pZCBk b21haW5PaWQsIExPQ0tNT0RFIGxvY2ttb2RlKQogCQkJfQogCQkJY29udGludWU7CiAJCX0KKwkJ ZWxzZSBpZiAocGdfZGVwZW5kLT5jbGFzc2lkID09IFZhcmlhYmxlUmVsYXRpb25JZCkKKwkJewor CQkJLyoKKwkJCSAqIFdlIGNhbm5vdCB0byB2YWxpZGF0ZSBjb25zdHJhaW50IGluc2lkZSBzZXNz aW9uIHZhcmlhYmxlcworCQkJICogZnJvbSBvdGhlciBzZXNzaW9ucywgc28gYmV0dGVyIHRvIGZh aWwgaWYgdGhlcmUgYXJlIGFueQorCQkJICogc2Vzc2lvbiB2YXJpYWJsZSwgdGhhdCB1c2UgdGhp cyBkb21haW4uCisJCQkgKi8KKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNP REVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJIGVycm1zZygiY2Fubm90IGFsdGVyIGRv bWFpbiBcIiVzXCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2VzIGl0IiwK KwkJCQkJCQkJZG9tYWluVHlwZU5hbWUsCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRf c2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UocGdfZGVwZW5kLT5vYmppZCkpLAorCQkJCQkJCQln ZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHBnX2RlcGVuZC0+b2JqaWQpKSkpOworCQl9CiAKIAkJ LyogRWxzZSwgaWdub3JlIGRlcGVuZGVlcyB0aGF0IGFyZW4ndCB1c2VyIGNvbHVtbnMgb2YgcmVs YXRpb25zICovCiAJCS8qICh3ZSBhc3N1bWUgc3lzdGVtIGNvbHVtbnMgYXJlIG5ldmVyIG9mIGRv bWFpbiB0eXBlcykgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDY3ZWI5NjM5NmEuLjg5ZmEyM2MyZGQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueQpAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNl LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hbS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHJp Z2dlci5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21t YW5kcy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCiAjaW5jbHVkZSAi Z3JhbXBhcnNlLmgiCkBAIC0yODEsOCArMjgyLDggQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNp dmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsK IAkJQ29uc3RyYWludHNTZXRTdG10IENvcHlTdG10IENyZWF0ZUFzU3RtdCBDcmVhdGVDYXN0U3Rt dAogCQlDcmVhdGVEb21haW5TdG10IENyZWF0ZUV4dGVuc2lvblN0bXQgQ3JlYXRlR3JvdXBTdG10 IENyZWF0ZU9wQ2xhc3NTdG10CiAJCUNyZWF0ZU9wRmFtaWx5U3RtdCBBbHRlck9wRmFtaWx5U3Rt dCBDcmVhdGVQTGFuZ1N0bXQKLQkJQ3JlYXRlU2NoZW1hU3RtdCBDcmVhdGVTZXFTdG10IENyZWF0 ZVN0bXQgQ3JlYXRlU3RhdHNTdG10IENyZWF0ZVRhYmxlU3BhY2VTdG10Ci0JCUNyZWF0ZUZkd1N0 bXQgQ3JlYXRlRm9yZWlnblNlcnZlclN0bXQgQ3JlYXRlRm9yZWlnblRhYmxlU3RtdAorCQlDcmVh dGVTY2hlbWFTdG10IENyZWF0ZVNlcVN0bXQgQ3JlYXRlU2Vzc2lvblZhclN0bXQgQ3JlYXRlU3Rt dCBDcmVhdGVTdGF0c1N0bXQKKwkJQ3JlYXRlVGFibGVTcGFjZVN0bXQgQ3JlYXRlRmR3U3RtdCBD cmVhdGVGb3JlaWduU2VydmVyU3RtdCBDcmVhdGVGb3JlaWduVGFibGVTdG10CiAJCUNyZWF0ZUFz c2VydGlvblN0bXQgQ3JlYXRlVHJhbnNmb3JtU3RtdCBDcmVhdGVUcmlnU3RtdCBDcmVhdGVFdmVu dFRyaWdTdG10CiAJCUNyZWF0ZVVzZXJTdG10IENyZWF0ZVVzZXJNYXBwaW5nU3RtdCBDcmVhdGVS b2xlU3RtdCBDcmVhdGVQb2xpY3lTdG10CiAJCUNyZWF0ZWRiU3RtdCBEZWNsYXJlQ3Vyc29yU3Rt dCBEZWZpbmVTdG10IERlbGV0ZVN0bXQgRGlzY2FyZFN0bXQgRG9TdG10CkBAIC03NzUsOCArNzc2 LDggQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUs IExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlVRVNDQVBFIFVOQk9VTkRFRCBVTkNPTkRJ VElPTkFMIFVOQ09NTUlUVEVEIFVORU5DUllQVEVEIFVOSU9OIFVOSVFVRSBVTktOT1dOCiAJVU5M SVNURU4gVU5MT0dHRUQgVU5USUwgVVBEQVRFIFVTRVIgVVNJTkcKIAotCVZBQ1VVTSBWQUxJRCBW QUxJREFURSBWQUxJREFUT1IgVkFMVUVfUCBWQUxVRVMgVkFSQ0hBUiBWQVJJQURJQyBWQVJZSU5H Ci0JVkVSQk9TRSBWRVJTSU9OX1AgVklFVyBWSUVXUyBWT0xBVElMRQorCVZBQ1VVTSBWQUxJRCBW QUxJREFURSBWQUxJREFUT1IgVkFMVUVfUCBWQUxVRVMgVkFSQ0hBUiBWQVJJQUJMRSBWQVJJQUJM RVMKKwlWQVJJQURJQyBWQVJZSU5HIFZFUkJPU0UgVkVSU0lPTl9QIFZJRVcgVklFV1MgVk9MQVRJ TEUKIAogCVdIRU4gV0hFUkUgV0hJVEVTUEFDRV9QIFdJTkRPVyBXSVRIIFdJVEhJTiBXSVRIT1VU IFdPUksgV1JBUFBFUiBXUklURQogCkBAIC0xMDQyLDYgKzEwNDMsNyBAQCBzdG10OgogCQkJfCBD cmVhdGVQb2xpY3lTdG10CiAJCQl8IENyZWF0ZVBMYW5nU3RtdAogCQkJfCBDcmVhdGVTY2hlbWFT dG10CisJCQl8IENyZWF0ZVNlc3Npb25WYXJTdG10CiAJCQl8IENyZWF0ZVNlcVN0bXQKIAkJCXwg Q3JlYXRlU3RtdAogCQkJfCBDcmVhdGVTdWJzY3JpcHRpb25TdG10CkBAIC0xNTg0LDYgKzE1ODYs NyBAQCBzY2hlbWFfc3RtdDoKIAkJCXwgQ3JlYXRlVHJpZ1N0bXQKIAkJCXwgR3JhbnRTdG10CiAJ CQl8IFZpZXdTdG10CisJCQl8IENyZWF0ZVNlc3Npb25WYXJTdG10CiAJCTsKIAogCkBAIC01MjEw LDYgKzUyMTMsMzQgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToKIAkJCQl9CiAJCTsKIAor LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCisgKgorICoJCVFVRVJZIDoKKyAqCQkJCUNSRUFURSBWQVJJ QUJMRSB2YXJuYW1lIFtBU10gdHlwZQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworQ3Jl YXRlU2Vzc2lvblZhclN0bXQ6CisJCQlDUkVBVEUgVkFSSUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0 X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZQorCQkJCXsKKwkJCQkJQ3JlYXRlU2Vzc2lv blZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7CisJCQkJCW4tPnZh cmlhYmxlID0gJDM7CisJCQkJCW4tPnR5cGVOYW1lID0gJDU7CisJCQkJCW4tPmNvbGxDbGF1c2Ug PSAoQ29sbGF0ZUNsYXVzZSAqKSAkNjsKKwkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZhbHNlOwor CQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQkJfCBDUkVBVEUgVkFSSUFCTEUgSUZfUCBO T1QgRVhJU1RTIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1 c2UKKwkJCQl7CisJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRl U2Vzc2lvblZhclN0bXQpOworCQkJCQluLT52YXJpYWJsZSA9ICQ2OworCQkJCQluLT50eXBlTmFt ZSA9ICQ4OworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDk7CisJCQkJ CW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQor CQk7CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqIEFMVEVSIEVYVEVOU0lPTiBuYW1l IFVQREFURSBbIFRPIHZlcnNpb24gXQpAQCAtNjk5OCw2ICs3MDI5LDcgQEAgb2JqZWN0X3R5cGVf YW55X25hbWU6CiAJCQl8IFRFWFRfUCBTRUFSQ0ggRElDVElPTkFSWQkJCQl7ICQkID0gT0JKRUNU X1RTRElDVElPTkFSWTsgfQogCQkJfCBURVhUX1AgU0VBUkNIIFRFTVBMQVRFCQkJCXsgJCQgPSBP QkpFQ1RfVFNURU1QTEFURTsgfQogCQkJfCBURVhUX1AgU0VBUkNIIENPTkZJR1VSQVRJT04JCQl7 ICQkID0gT0JKRUNUX1RTQ09ORklHVVJBVElPTjsgfQorCQkJfCBWQVJJQUJMRQkJCQkJCQkJeyAk JCA9IE9CSkVDVF9WQVJJQUJMRTsgfQogCQk7CiAKIC8qCkBAIC03ODc0LDYgKzc5MDYsMTQgQEAg cHJpdmlsZWdlX3RhcmdldDoKIAkJCQkJbi0+b2JqcyA9ICQyOwogCQkJCQkkJCA9IG47CiAJCQkJ fQorCQkJfCBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZV9saXN0CisJCQkJeworCQkJCQlQcml2VGFy Z2V0ICpuID0gKFByaXZUYXJnZXQgKikgcGFsbG9jKHNpemVvZihQcml2VGFyZ2V0KSk7CisJCQkJ CW4tPnRhcmd0eXBlID0gQUNMX1RBUkdFVF9PQkpFQ1Q7CisJCQkJCW4tPm9ianR5cGUgPSBPQkpF Q1RfVkFSSUFCTEU7CisJCQkJCW4tPm9ianMgPSAkMjsKKwkJCQkJJCQgPSBuOworCQkJCX0KIAkJ CXwgQUxMIFRBQkxFUyBJTl9QIFNDSEVNQSBuYW1lX2xpc3QKIAkJCQl7CiAJCQkJCVByaXZUYXJn ZXQgKm4gPSAoUHJpdlRhcmdldCAqKSBwYWxsb2Moc2l6ZW9mKFByaXZUYXJnZXQpKTsKQEAgLTc5 MTksNiArNzk1OSwxNCBAQCBwcml2aWxlZ2VfdGFyZ2V0OgogCQkJCQluLT5vYmpzID0gJDU7CiAJ CQkJCSQkID0gbjsKIAkJCQl9CisJCQl8IEFMTCBWQVJJQUJMRVMgSU5fUCBTQ0hFTUEgbmFtZV9s aXN0CisJCQkJeworCQkJCQlQcml2VGFyZ2V0ICpuID0gKFByaXZUYXJnZXQgKikgcGFsbG9jKHNp emVvZihQcml2VGFyZ2V0KSk7CisJCQkJCW4tPnRhcmd0eXBlID0gQUNMX1RBUkdFVF9BTExfSU5f U0NIRU1BOworCQkJCQluLT5vYmp0eXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmpz ID0gJDU7CisJCQkJCSQkID0gbjsKKwkJCQl9CiAJCTsKIAogCkBAIC04MTE2LDYgKzgxNjQsNyBA QCBkZWZhY2xfcHJpdmlsZWdlX3RhcmdldDoKIAkJCXwgU0VRVUVOQ0VTCQl7ICQkID0gT0JKRUNU X1NFUVVFTkNFOyB9CiAJCQl8IFRZUEVTX1AJCXsgJCQgPSBPQkpFQ1RfVFlQRTsgfQogCQkJfCBT Q0hFTUFTCQl7ICQkID0gT0JKRUNUX1NDSEVNQTsgfQorCQkJfCBWQVJJQUJMRVMJCXsgJCQgPSBP QkpFQ1RfVkFSSUFCTEU7IH0KIAkJOwogCiAKQEAgLTk5MDQsNiArOTk1MywyNCBAQCBSZW5hbWVT dG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJndHlwZXMgUkVOQU1FIFRPIG5h bWUKIAkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJ CQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBhbnlfbmFtZSBSRU5BTUUgVE8gbmFtZQorCQkJCXsK KwkJCQkJUmVuYW1lU3RtdCAqbiA9IG1ha2VOb2RlKFJlbmFtZVN0bXQpOworCQkJCQluLT5yZW5h bWVUeXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkMzsK KwkJCQkJbi0+bmV3bmFtZSA9ICQ2OworCQkJCQluLT5taXNzaW5nX29rID0gZmFsc2U7CisJCQkJ CSQkID0gKE5vZGUgKiluOworCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgSUZfUCBFWElTVFMg YW55X25hbWUgUkVOQU1FIFRPIG5hbWUKKwkJCQl7CisJCQkJCVJlbmFtZVN0bXQgKm4gPSBtYWtl Tm9kZShSZW5hbWVTdG10KTsKKwkJCQkJbi0+cmVuYW1lVHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsK KwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDU7CisJCQkJCW4tPm5ld25hbWUgPSAkODsKKwkJ CQkJbi0+bWlzc2luZ19vayA9IHRydWU7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0KIAkJ OwogCiBvcHRfY29sdW1uOiBDT0xVTU4KQEAgLTEwMjY1LDYgKzEwMzMyLDI0IEBAIEFsdGVyT2Jq ZWN0U2NoZW1hU3RtdDoKIAkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOwogCQkJCQkkJCA9IChO b2RlICopIG47CiAJCQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBhbnlfbmFtZSBTRVQgU0NIRU1B IG5hbWUKKwkJCQl7CisJCQkJCUFsdGVyT2JqZWN0U2NoZW1hU3RtdCAqbiA9IG1ha2VOb2RlKEFs dGVyT2JqZWN0U2NoZW1hU3RtdCk7CisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfVkFSSUFC TEU7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQzOworCQkJCQluLT5uZXdzY2hlbWEgPSAk NjsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJ CQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIElGX1AgRVhJU1RTIGFueV9uYW1lIFNFVCBTQ0hFTUEg bmFtZQorCQkJCXsKKwkJCQkJQWx0ZXJPYmplY3RTY2hlbWFTdG10ICpuID0gbWFrZU5vZGUoQWx0 ZXJPYmplY3RTY2hlbWFTdG10KTsKKwkJCQkJbi0+b2JqZWN0VHlwZSA9IE9CSkVDVF9WQVJJQUJM RTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDU7CisJCQkJCW4tPm5ld3NjaGVtYSA9ICQ4 OworCQkJCQluLT5taXNzaW5nX29rID0gdHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJ fQogCQk7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgpAQCAtMTA1NDYsNiArMTA2MzEsMTQgQEAg QWx0ZXJPd25lclN0bXQ6IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBP V05FUiBUTyBSb2xlU3BlYwogCQkJCQluLT5uZXdvd25lciA9ICQ2OwogCQkJCQkkJCA9IChOb2Rl ICopIG47CiAJCQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBhbnlfbmFtZSBPV05FUiBUTyBSb2xl U3BlYworCQkJCXsKKwkJCQkJQWx0ZXJPd25lclN0bXQgKm4gPSBtYWtlTm9kZShBbHRlck93bmVy U3RtdCk7CisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJCW4tPm9i amVjdCA9IChOb2RlICopICQzOworCQkJCQluLT5uZXdvd25lciA9ICQ2OworCQkJCQkkJCA9IChO b2RlICopbjsKKwkJCQl9CiAJCTsKIAogCkBAIC0xNzkxNyw2ICsxODAxMCw4IEBAIHVucmVzZXJ2 ZWRfa2V5d29yZDoKIAkJCXwgVkFMSURBVEUKIAkJCXwgVkFMSURBVE9SCiAJCQl8IFZBTFVFX1AK KwkJCXwgVkFSSUFCTEUKKwkJCXwgVkFSSUFCTEVTCiAJCQl8IFZBUllJTkcKIAkJCXwgVkVSU0lP Tl9QCiAJCQl8IFZJRVcKQEAgLTE4NTcwLDYgKzE4NjY1LDggQEAgYmFyZV9sYWJlbF9rZXl3b3Jk OgogCQkJfCBWQUxVRV9QCiAJCQl8IFZBTFVFUwogCQkJfCBWQVJDSEFSCisJCQl8IFZBUklBQkxF CisJCQl8IFZBUklBQkxFUwogCQkJfCBWQVJJQURJQwogCQkJfCBWRVJCT1NFCiAJCQl8IFZFUlNJ T05fUApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKaW5kZXggOTVkYWQ3NjY4My4uOWRjN2I2 MDUyZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYworKysg Yi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCkBAIC0xMDUsNiArMTA1LDcgQEAg dHlwZWRlZiBzdHJ1Y3QKIAlMaXN0CSAgICppbmRleGVzOwkJLyogQ1JFQVRFIElOREVYIGl0ZW1z ICovCiAJTGlzdAkgICAqdHJpZ2dlcnM7CQkvKiBDUkVBVEUgVFJJR0dFUiBpdGVtcyAqLwogCUxp c3QJICAgKmdyYW50czsJCQkvKiBHUkFOVCBpdGVtcyAqLworCUxpc3QJICAgKnZhcmlhYmxlczsJ CS8qIENSRUFURSBWQVJJQUJMRSBpdGVtcyAqLwogfSBDcmVhdGVTY2hlbWFTdG10Q29udGV4dDsK IAogCkBAIC00MDM5LDYgKzQwNDAsNyBAQCB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVu dHMoTGlzdCAqc2NoZW1hRWx0cywgY29uc3QgY2hhciAqc2NoZW1hTmFtZSkKIAljeHQuaW5kZXhl cyA9IE5JTDsKIAljeHQudHJpZ2dlcnMgPSBOSUw7CiAJY3h0LmdyYW50cyA9IE5JTDsKKwljeHQu dmFyaWFibGVzID0gTklMOwogCiAJLyoKIAkgKiBSdW4gdGhyb3VnaCBlYWNoIHNjaGVtYSBlbGVt ZW50IGluIHRoZSBzY2hlbWEgZWxlbWVudCBsaXN0LiBTZXBhcmF0ZQpAQCAtNDEwNyw2ICs0MTA5 LDE1IEBAIHRyYW5zZm9ybUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhMaXN0ICpzY2hlbWFFbHRz LCBjb25zdCBjaGFyICpzY2hlbWFOYW1lKQogCQkJCWN4dC5ncmFudHMgPSBsYXBwZW5kKGN4dC5n cmFudHMsIGVsZW1lbnQpOwogCQkJCWJyZWFrOwogCisJCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZh clN0bXQ6CisJCQkJeworCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqZWxwID0gKENyZWF0ZVNl c3Npb25WYXJTdG10ICopIGVsZW1lbnQ7CisKKwkJCQkJc2V0U2NoZW1hTmFtZShjeHQuc2NoZW1h bmFtZSwgJmVscC0+dmFyaWFibGUtPnNjaGVtYW5hbWUpOworCQkJCQljeHQudmFyaWFibGVzID0g bGFwcGVuZChjeHQudmFyaWFibGVzLCBlbGVtZW50KTsKKwkJCQl9CisJCQkJYnJlYWs7CisKIAkJ CWRlZmF1bHQ6CiAJCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwK IAkJCQkJIChpbnQpIG5vZGVUYWcoZWxlbWVudCkpOwpAQCAtNDEyMCw2ICs0MTMxLDcgQEAgdHJh bnNmb3JtQ3JlYXRlU2NoZW1hU3RtdEVsZW1lbnRzKExpc3QgKnNjaGVtYUVsdHMsIGNvbnN0IGNo YXIgKnNjaGVtYU5hbWUpCiAJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQuaW5kZXhl cyk7CiAJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQudHJpZ2dlcnMpOwogCXJlc3Vs dCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgY3h0LmdyYW50cyk7CisJcmVzdWx0ID0gbGlzdF9jb25j YXQocmVzdWx0LCBjeHQudmFyaWFibGVzKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0 eS5jCmluZGV4IDMzZGVhNWE3ODEuLjg4MTUxOGJiY2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCkBAIC0yMyw2 ICsyMyw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX2F1dGhpZC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfaW5oZXJpdHMuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy90b2FzdGluZy5o IgogI2luY2x1ZGUgImNvbW1hbmRzL2FsdGVyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMu aCIKQEAgLTE4Miw2ICsxODMsNyBAQCBDbGFzc2lmeVV0aWxpdHlDb21tYW5kQXNSZWFkT25seShO b2RlICpwYXJzZXRyZWUpCiAJCWNhc2UgVF9DcmVhdGVSYW5nZVN0bXQ6CiAJCWNhc2UgVF9DcmVh dGVSb2xlU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVNjaGVtYVN0bXQ6CisJCWNhc2UgVF9DcmVhdGVT ZXNzaW9uVmFyU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVNlcVN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVT dGF0c1N0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTdG10OgpAQCAtMTM4OSw2ICsxMzkxLDEwIEBAIFBy b2Nlc3NVdGlsaXR5U2xvdyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJfQogCQkJCWJyZWFrOwog CisJCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQkJYWRkcmVzcyA9IENyZWF0ZVZh cmlhYmxlKHBzdGF0ZSwgKENyZWF0ZVNlc3Npb25WYXJTdG10ICopIHBhcnNldHJlZSk7CisJCQkJ YnJlYWs7CisKIAkJCQkvKgogCQkJCSAqICoqKioqKioqKioqKiogb2JqZWN0IGNyZWF0aW9uIC8g ZGVzdHJ1Y3Rpb24gKioqKioqKioqKioqKioKIAkJCQkgKi8KQEAgLTIzNDEsNiArMjM0Nyw5IEBA IEFsdGVyT2JqZWN0VHlwZUNvbW1hbmRUYWcoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQljYXNlIE9C SkVDVF9TVEFUSVNUSUNfRVhUOgogCQkJdGFnID0gQ01EVEFHX0FMVEVSX1NUQVRJU1RJQ1M7CiAJ CQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQl0YWcgPSBDTURUQUdfQUxURVJf VkFSSUFCTEU7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCXRhZyA9IENNRFRBR19VTktOT1dO OwogCQkJYnJlYWs7CkBAIC0yNjQ5LDYgKzI2NTgsOSBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUg KnBhcnNldHJlZSkKIAkJCQljYXNlIE9CSkVDVF9TVEFUSVNUSUNfRVhUOgogCQkJCQl0YWcgPSBD TURUQUdfRFJPUF9TVEFUSVNUSUNTOwogCQkJCQlicmVhazsKKwkJCQljYXNlIE9CSkVDVF9WQVJJ QUJMRToKKwkJCQkJdGFnID0gQ01EVEFHX0RST1BfVkFSSUFCTEU7CisJCQkJCWJyZWFrOwogCQkJ CWRlZmF1bHQ6CiAJCQkJCXRhZyA9IENNRFRBR19VTktOT1dOOwogCQkJfQpAQCAtMzIyNSw2ICsz MjM3LDEwIEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAqcGFyc2V0cmVlKQogCQkJfQogCQkJYnJl YWs7CiAKKwkJY2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJTdG10OgorCQkJdGFnID0gQ01EVEFHX0NS RUFURV9WQVJJQUJMRTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQllbG9nKFdBUk5JTkcs ICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIG5vZGVUYWcocGFyc2V0 cmVlKSk7CkBAIC0zNzU5LDYgKzM3NzUsMTAgQEAgR2V0Q29tbWFuZExvZ0xldmVsKE5vZGUgKnBh cnNldHJlZSkKIAkJCX0KIAkJCWJyZWFrOwogCisJCWNhc2UgVF9DcmVhdGVTZXNzaW9uVmFyU3Rt dDoKKwkJCWxldiA9IExPR1NUTVRfRERMOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWVs b2coV0FSTklORywgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKIAkJCQkgKGludCkgbm9k ZVRhZyhwYXJzZXRyZWUpKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYwppbmRleCA1ODNkNmU3Zjg5Li4xOTJjODA0 N2I0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2FjbC5jCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190YWJsZXNwYWNlLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgog I2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9wcm9j bGFuZy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIKQEAgLTEyOSw2ICsxMzAs OCBAQCBzdGF0aWMgQWNsTW9kZSBjb252ZXJ0X3R5cGVfcHJpdl9zdHJpbmcodGV4dCAqcHJpdl90 eXBlX3RleHQpOwogc3RhdGljIEFjbE1vZGUgY29udmVydF9wYXJhbWV0ZXJfcHJpdl9zdHJpbmco dGV4dCAqcHJpdl90ZXh0KTsKIHN0YXRpYyBBY2xNb2RlIGNvbnZlcnRfbGFyZ2VvYmplY3RfcHJp dl9zdHJpbmcodGV4dCAqcHJpdl90ZXh0KTsKIHN0YXRpYyBBY2xNb2RlIGNvbnZlcnRfcm9sZV9w cml2X3N0cmluZyh0ZXh0ICpwcml2X3R5cGVfdGV4dCk7CitzdGF0aWMgT2lkCWNvbnZlcnRfc2Vz c2lvbl92YXJpYWJsZV9uYW1lKHRleHQgKnZhcm5hbWUpOworc3RhdGljIEFjbE1vZGUgY29udmVy dF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHRleHQgKnByaXZfdHlwZV90ZXh0KTsKIHN0 YXRpYyBBY2xSZXN1bHQgcGdfcm9sZV9hY2xjaGVjayhPaWQgcm9sZV9vaWQsIE9pZCByb2xlaWQs IEFjbE1vZGUgbW9kZSk7CiAKIHN0YXRpYyB2b2lkIFJvbGVNZW1iZXJzaGlwQ2FjaGVDYWxsYmFj ayhEYXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50MzIgaGFzaHZhbHVlKTsKQEAgLTg1MSw2ICs4 NTQsMTAgQEAgYWNsZGVmYXVsdChPYmplY3RUeXBlIG9ianR5cGUsIE9pZCBvd25lcklkKQogCQkJ d29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CiAJCQlvd25lcl9kZWZhdWx0ID0gQUNMX0FM TF9SSUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJM RToKKwkJCXdvcmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklHSFRTOworCQkJb3duZXJfZGVmYXVsdCA9 IEFDTF9BTExfUklHSFRTX1ZBUklBQkxFOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9n KEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsIChpbnQpIG9ianR5cGUpOwog CQkJd29ybGRfZGVmYXVsdCA9IEFDTF9OT19SSUdIVFM7CS8qIGtlZXAgY29tcGlsZXIgcXVpZXQg Ki8KQEAgLTk0OCw2ICs5NTUsOSBAQCBhY2xkZWZhdWx0X3NxbChQR19GVU5DVElPTl9BUkdTKQog CQljYXNlICdUJzoKIAkJCW9ianR5cGUgPSBPQkpFQ1RfVFlQRTsKIAkJCWJyZWFrOworCQljYXNl ICdWJzoKKwkJCW9ianR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQlicmVhazsKIAkJZGVmYXVs dDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGUgYWJicmV2aWF0aW9u OiAlYyIsIG9ianR5cGVjKTsKIAl9CkBAIC01MDE2LDYgKzUwMjYsMjE3IEBAIHBnX3JvbGVfYWNs Y2hlY2soT2lkIHJvbGVfb2lkLCBPaWQgcm9sZWlkLCBBY2xNb2RlIG1vZGUpCiAJcmV0dXJuIEFD TENIRUNLX05PX1BSSVY7CiB9CiAKKy8qCisgKiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UgdmFyaWFudHMKKyAqCQlUaGVzZSBhcmUgYWxsIG5hbWVkICJoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UiIGF0IHRoZSBTUUwgbGV2ZWwuCisgKgkJVGhleSB0YWtlIHZhcmlvdXMgY29t YmluYXRpb25zIG9mIHZhcmlhYmxlIG5hbWUsIHZhcmlhYmxlIE9JRCwKKyAqCQl1c2VyIG5hbWUs IHVzZXIgT0lELCBvciBpbXBsaWNpdCB1c2VyID0gY3VycmVudF91c2VyLgorICoKKyAqCQlUaGUg cmVzdWx0IGlzIGEgYm9vbGVhbiB2YWx1ZTogdHJ1ZSBpZiB1c2VyIGhhcyB0aGUgaW5kaWNhdGVk CisgKgkJcHJpdmlsZWdlLCBmYWxzZSBpZiBub3QsIG9yIE5VTEwgaWYgc2Vzc2lvbiB2YXJpYWJs ZSBkb2Vzbid0CisgKgkJZXhpc3RzLgorICovCisKKy8qCisgKiBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2VfbmFtZV9uYW1lCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgc2Vz c2lvbiB2YXJpYWJsZSBnaXZlbgorICoJCW5hbWUgdXNlcm5hbWUsIHRleHQgc2Vzc2lvbiB2YXJp YWJsZSBuYW1lLCBhbmQgdGV4dCBwcml2IG5hbWUuCisgKi8KK0RhdHVtCitoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2VfbmFtZV9uYW1lKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJTmFtZQkJ cm9sZW5hbWUgPSBQR19HRVRBUkdfTkFNRSgwKTsKKwl0ZXh0CSAgICp2YXJuYW1lID0gUEdfR0VU QVJHX1RFWFRfUFAoMSk7CisJdGV4dAkgICAqcHJpdl90eXBlX3RleHQgPSBQR19HRVRBUkdfVEVY VF9QUCgyKTsKKwlPaWQJCQlyb2xlaWQ7CisJT2lkCQkJdmFyaWQ7CisJQWNsTW9kZQkJbW9kZTsK KwlBY2xSZXN1bHQJYWNscmVzdWx0OworCWJvb2wJCWlzX21pc3NpbmcgPSBmYWxzZTsKKworCXJv bGVpZCA9IGdldF9yb2xlX29pZF9vcl9wdWJsaWMoTmFtZVN0cigqcm9sZW5hbWUpKTsKKwltb2Rl ID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0KTsK Kwl2YXJpZCA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcm5hbWUpOworCisJYWNs cmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrX2V4dChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAor CQkJCQkJCQkJcm9sZWlkLCBtb2RlLAorCQkJCQkJCQkJJmlzX21pc3NpbmcpOworCisJaWYgKGlz X21pc3NpbmcpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xyZXN1 bHQgPT0gQUNMQ0hFQ0tfT0spOworfQorCisvKgorICogaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlX25hbWUKKyAqCQlDaGVjayB1c2VyIHByaXZpbGVnZXMgb24gYSBzZXNzaW9uIHZhcmlh YmxlIGdpdmVuCisgKgkJdGV4dCBzZXNzaW9uIHZhcmlhYmxlIGFuZCB0ZXh0IHByaXYgbmFtZS4K KyAqCQljdXJyZW50X3VzZXIgaXMgYXNzdW1lZAorICovCitEYXR1bQoraGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlX25hbWUoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwl0ZXh0CSAgICp2YXJu YW1lID0gUEdfR0VUQVJHX1RFWFRfUFAoMCk7CisJdGV4dAkgICAqcHJpdl90eXBlX3RleHQgPSBQ R19HRVRBUkdfVEVYVF9QUCgxKTsKKwlPaWQJCQlyb2xlaWQ7CisJT2lkCQkJdmFyaWQ7CisJQWNs TW9kZQkJbW9kZTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCWJvb2wJCWlzX21pc3NpbmcgPSBm YWxzZTsKKworCXJvbGVpZCA9IEdldFVzZXJJZCgpOworCW1vZGUgPSBjb252ZXJ0X3Nlc3Npb25f dmFyaWFibGVfcHJpdl9zdHJpbmcocHJpdl90eXBlX3RleHQpOworCXZhcmlkID0gY29udmVydF9z ZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFybmFtZSk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNs Y2hlY2tfZXh0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQlyb2xlaWQsIG1v ZGUsCisJCQkJCQkJCQkmaXNfbWlzc2luZyk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xyZXN1bHQg PT0gQUNMQ0hFQ0tfT0spOworfQorCisvKgorICogaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlX25hbWVfaWQKKyAqCQlDaGVjayB1c2VyIHByaXZpbGVnZXMgb24gYSBzZXNzaW9uIHZhcmlh YmxlIGdpdmVuCisgKgkJbmFtZSB1c2VuYW1lLCBzZXNzaW9uIHZhcmlhYmxlIG9pZCwgYW5kIHRl eHQgcHJpdiBuYW1lLgorICovCitEYXR1bQoraGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl X25hbWVfaWQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlOYW1lCQl1c2VybmFtZSA9IFBHX0dFVEFS R19OQU1FKDApOworCU9pZAkJCXZhcmlkID0gUEdfR0VUQVJHX09JRCgxKTsKKwl0ZXh0CSAgICpw cml2X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDIpOworCU9pZAkJCXJvbGVpZDsKKwlB Y2xNb2RlCQltb2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9vbAkJaXNfbWlzc2luZyA9 IGZhbHNlOworCisJcm9sZWlkID0gZ2V0X3JvbGVfb2lkX29yX3B1YmxpYyhOYW1lU3RyKCp1c2Vy bmFtZSkpOworCW1vZGUgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmcocHJp dl90eXBlX3RleHQpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrX2V4dChWYXJpYWJs ZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJcm9sZWlkLCBtb2RlLAorCQkJCQkJCQkJJmlz X21pc3NpbmcpOworCisJaWYgKGlzX21pc3NpbmcpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQ R19SRVRVUk5fQk9PTChhY2xyZXN1bHQgPT0gQUNMQ0hFQ0tfT0spOworfQorCisvKgorICogaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2Vz IG9uIGEgc2Vzc2lvbiB2YXJpYWJsZSBnaXZlbgorICoJCXNlc3Npb24gdmFyaWFibGUgb2lkLCBh bmQgdGV4dCBwcml2IG5hbWUuCisgKgkJY3VycmVudF91c2VyIGlzIGFzc3VtZWQKKyAqLworRGF0 dW0KK2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9pZChQR19GVU5DVElPTl9BUkdTKQor eworCU9pZAkJCXZhcmlkID0gUEdfR0VUQVJHX09JRCgwKTsKKwl0ZXh0CSAgICpwcml2X3R5cGVf dGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDEpOworCU9pZAkJCXJvbGVpZDsKKwlBY2xNb2RlCQlt b2RlOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJYm9vbAkJaXNfbWlzc2luZyA9IGZhbHNlOwor CisJcm9sZWlkID0gR2V0VXNlcklkKCk7CisJbW9kZSA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJs ZV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisKKwlhY2xyZXN1bHQgPSBvYmplY3RfYWNs Y2hlY2tfZXh0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsCisJCQkJCQkJCQlyb2xlaWQsIG1v ZGUsCisJCQkJCQkJCQkmaXNfbWlzc2luZyk7CisKKwlpZiAoaXNfbWlzc2luZykKKwkJUEdfUkVU VVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9CT09MKGFjbHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7 Cit9CisKKy8qCisgKiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWRfbmFtZQorICoJ CUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBvbiBhIHNlc3Npb24gdmFyaWFibGUgZ2l2ZW4KKyAqCQly b2xlaWQsIHRleHQgc2Vzc2lvbiB2YXJpYWJsZSBuYW1lLCBhbmQgdGV4dCBwcml2IG5hbWUuCisg Ki8KK0RhdHVtCitoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWRfbmFtZShQR19GVU5D VElPTl9BUkdTKQoreworCU9pZAkJCXJvbGVpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJdGV4dAkg ICAqdmFybmFtZSA9IFBHX0dFVEFSR19URVhUX1BQKDEpOworCXRleHQJICAgKnByaXZfdHlwZV90 ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAoMik7CisJT2lkCQkJdmFyaWQ7CisJQWNsTW9kZQkJbW9k ZTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCWJvb2wJCWlzX21pc3NpbmcgPSBmYWxzZTsKKwor CW1vZGUgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmcocHJpdl90eXBlX3Rl eHQpOworCXZhcmlkID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFybmFtZSk7CisK KwlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2tfZXh0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFy aWQsCisJCQkJCQkJCQlyb2xlaWQsIG1vZGUsCisJCQkJCQkJCQkmaXNfbWlzc2luZyk7CisKKwlp ZiAoaXNfbWlzc2luZykKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9CT09MKGFj bHJlc3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKiBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2VfaWRfaWQKKyAqCQlDaGVjayB1c2VyIHByaXZpbGVnZXMgb24gYSBzZXNzaW9u IHZhcmlhYmxlIGdpdmVuCisgKgkJcm9sZWlkLCBzZXNzaW9uIHZhcmlhYmxlIG9pZCwgYW5kIHRl eHQgcHJpdiBuYW1lLgorICovCitEYXR1bQoraGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl X2lkX2lkKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJT2lkCQkJcm9sZWlkID0gUEdfR0VUQVJHX09J RCgwKTsKKwlPaWQJCQl2YXJpZCA9IFBHX0dFVEFSR19PSUQoMSk7CisJdGV4dAkgICAqcHJpdl90 eXBlX3RleHQgPSBQR19HRVRBUkdfVEVYVF9QUCgyKTsKKwlBY2xNb2RlCQltb2RlOworCUFjbFJl c3VsdAlhY2xyZXN1bHQ7CisJYm9vbAkJaXNfbWlzc2luZyA9IGZhbHNlOworCisJbW9kZSA9IGNv bnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisKKwlh Y2xyZXN1bHQgPSBvYmplY3RfYWNsY2hlY2tfZXh0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQs CisJCQkJCQkJCQlyb2xlaWQsIG1vZGUsCisJCQkJCQkJCQkmaXNfbWlzc2luZyk7CisKKwlpZiAo aXNfbWlzc2luZykKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9CT09MKGFjbHJl c3VsdCA9PSBBQ0xDSEVDS19PSyk7Cit9CisKKy8qCisgKiBHaXZlbiBhIHNlc3Npb24gdmFyaWFi bGUgbmFtZSBleHByZXNzZWQgYXMgYSBzdHJpbmcsIGxvb2sgaXQgdXAgYW5kIHJldHVybgorICog T2lkCisgKi8KK3N0YXRpYyBPaWQKK2NvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHRleHQg KnZhcm5hbWUpCit7CisJcmV0dXJuIExvb2t1cFZhcmlhYmxlRnJvbU5hbWVMaXN0KHRleHRUb1F1 YWxpZmllZE5hbWVMaXN0KHZhcm5hbWUpLCB0cnVlKTsKK30KKworLyoKKyAqIGNvbnZlcnRfdmFy aWFibGVfcHJpdl9zdHJpbmcKKyAqCQlDb252ZXJ0IHRleHQgc3RyaW5nIHRvIEFjbE1vZGUgdmFs dWUuCisgKi8KK3N0YXRpYyBBY2xNb2RlCitjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9z dHJpbmcodGV4dCAqcHJpdl90eXBlX3RleHQpCit7CisJc3RhdGljIGNvbnN0IHByaXZfbWFwIHNl c3Npb25fdmFyaWFibGVfcHJpdl9tYXBbXSA9IHsKKwkJeyJTRUxFQ1QiLCBBQ0xfU0VMRUNUfSwK KwkJeyJTRUxFQ1QgV0lUSCBHUkFOVCBPUFRJT04iLCBBQ0xfR1JBTlRfT1BUSU9OX0ZPUihBQ0xf U0VMRUNUKX0sCisJCXsiVVBEQVRFIiwgQUNMX1VQREFURX0sCisJCXsiVVBEQVRFIFdJVEggR1JB TlQgT1BUSU9OIiwgQUNMX0dSQU5UX09QVElPTl9GT1IoQUNMX1VQREFURSl9LAorCQl7TlVMTCwg MH0KKwl9OworCisJcmV0dXJuIGNvbnZlcnRfYW55X3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0 LCBzZXNzaW9uX3ZhcmlhYmxlX3ByaXZfbWFwKTsKK30KIAogLyoKICAqIGluaXRpYWxpemF0aW9u IGZ1bmN0aW9uIChjYWxsZWQgYnkgSW5pdFBvc3RncmVzKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lz Y2FjaGUuYwppbmRleCBhODVkYzBkODkxLi5iNDY0YTdmMDkwIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNo ZS9sc3lzY2FjaGUuYwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3Vi c2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190cmFuc2Zvcm0uaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAj aW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5j bHVkZSAidXRpbHMvYXJyYXkuaCIKQEAgLTM3MTQsMyArMzcxNSwxMTUgQEAgZ2V0X3N1YnNjcmlw dGlvbl9uYW1lKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29rKQogCiAJcmV0dXJuIHN1Ym5hbWU7 CiB9CisKKy8qCQkJCS0tLS0tLS0tLS0gUEdfVkFSSUFCTEUgQ0FDSEUgLS0tLS0tLS0tLQkJCQkg Ki8KKworLyoKKyAqIGdldF92YXJuYW1lX3ZhcmlkCisgKgkJR2l2ZW4gbmFtZSBhbmQgbmFtZXNw YWNlIG9mIHZhcmlhYmxlLCBsb29rIHVwIHRoZSBPSUQuCisgKi8KK09pZAorZ2V0X3Zhcm5hbWVf dmFyaWQoY29uc3QgY2hhciAqdmFybmFtZSwgT2lkIHZhcm5hbWVzcGFjZSkKK3sKKwlyZXR1cm4g R2V0U3lzQ2FjaGVPaWQyKFZBUklBQkxFTkFNRU5TUCwgQW51bV9wZ192YXJpYWJsZV9vaWQsCisJ CQkJCQkgICBQb2ludGVyR2V0RGF0dW0odmFybmFtZSksCisJCQkJCQkgICBPYmplY3RJZEdldERh dHVtKHZhcm5hbWVzcGFjZSkpOworfQorCisvKgorICogZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFt ZQorICoJCVJldHVybnMgYSBwYWxsb2MnZCBjb3B5IG9mIHRoZSBuYW1lIG9mIGEgZ2l2ZW4gc2Vz c2lvbiB2YXJpYWJsZS4KKyAqLworY2hhciAqCitnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKE9p ZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsK KwljaGFyCSAgICp2YXJuYW1lOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lE LCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVw KSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFi bGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVD VCh0dXApOworCisJdmFybmFtZSA9IHBzdHJkdXAoTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKSk7 CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXJldHVybiB2YXJuYW1lOworfQorCisvKgor ICogZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlCisgKgkJUmV0dXJucyB0aGUgcGdfbmFt ZXNwYWNlIE9JRCBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlLgorICov CitPaWQKK2dldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShPaWQgdmFyaWQpCit7CisJSGVh cFR1cGxlCXR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisJT2lkCQkJdmFybmFtZXNw YWNlOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERh dHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJP UiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFy Zm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCXZhcm5hbWVzcGFj ZSA9IHZhcmZvcm0tPnZhcm5hbWVzcGFjZTsKKworCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCisJ cmV0dXJuIHZhcm5hbWVzcGFjZTsKK30KKworLyoKKyAqIFJldHVybnMgdGhlIHR5cGUgb2YgdGhl IGdpdmVuIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK09pZAorZ2V0X3Nlc3Npb25fdmFyaWFibGVf dHlwZShPaWQgdmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZh cmZvcm07CisJT2lkCQkJdmFydHlwZTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJM RU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlk KHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZh cmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRT VFJVQ1QodHVwKTsKKworCXZhcnR5cGUgPSB2YXJmb3JtLT52YXJ0eXBlOworCisJUmVsZWFzZVN5 c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4gdmFydHlwZTsKK30KKworLyoKKyAqIFJldHVybnMgdGhl IHR5cGUsIHR5cG1vZCBhbmQgY29sbGlkIG9mIHRoZSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlLgor ICovCit2b2lkCitnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQoT2lkIHZh cmlkLCBPaWQgKnR5cGlkLCBpbnQzMiAqdHlwbW9kLAorCQkJCQkJCQkJCU9pZCAqY29sbGlkKQor eworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCisJdHVwID0g U2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisK KwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1 cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3JtID0g KEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJKnR5cGlkID0gdmFyZm9ybS0+ dmFydHlwZTsKKwkqdHlwbW9kID0gdmFyZm9ybS0+dmFydHlwbW9kOworCSpjb2xsaWQgPSB2YXJm b3JtLT52YXJjb2xsYXRpb247CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKK30KZGlmZiAtLWdp dCBhL3NyYy9iaW4vcGdfZHVtcC9jb21tb24uYyBiL3NyYy9iaW4vcGdfZHVtcC9jb21tb24uYwpp bmRleCAzM2QzMjMwODVmLi5iMDQ1MWMxYjkwIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAv Y29tbW9uLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jCkBAIC0yNDYsNiArMjQ2LDkg QEAgZ2V0U2NoZW1hRGF0YShBcmNoaXZlICpmb3V0LCBpbnQgKm51bVRhYmxlc1B0cikKIAlwZ19s b2dfaW5mbygicmVhZGluZyBzdWJzY3JpcHRpb24gbWVtYmVyc2hpcCBvZiB0YWJsZXMiKTsKIAln ZXRTdWJzY3JpcHRpb25UYWJsZXMoZm91dCk7CiAKKwlwZ19sb2dfaW5mbygicmVhZGluZyB2YXJp YWJsZXMiKTsKKwlnZXRWYXJpYWJsZXMoZm91dCk7CisKIAlmcmVlKGluaGluZm8pOwkJCQkvKiBu b3QgbmVlZGVkIGFueSBsb25nZXIgKi8KIAogCSpudW1UYWJsZXNQdHIgPSBudW1UYWJsZXM7CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvZHVtcHV0aWxzLmMgYi9zcmMvYmluL3BnX2R1bXAv ZHVtcHV0aWxzLmMKaW5kZXggNTY0OTg1OWFhMS4uNTBkZTVkMGVhMiAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9kdW1wdXRpbHMu YwpAQCAtNTExLDYgKzUxMSwxMiBAQCBkbyB7IFwKIAkJQ09OVkVSVF9QUklWKCdyJywgIlNFTEVD VCIpOwogCQlDT05WRVJUX1BSSVYoJ3cnLCAiVVBEQVRFIik7CiAJfQorCWVsc2UgaWYgKHN0cmNt cCh0eXBlLCAiVkFSSUFCTEUiKSA9PSAwIHx8CisJCQkgc3RyY21wKHR5cGUsICJWQVJJQUJMRVMi KSA9PSAwKQorCXsKKwkJQ09OVkVSVF9QUklWKCdyJywgIlNFTEVDVCIpOworCQlDT05WRVJUX1BS SVYoJ3cnLCAiVVBEQVRFIik7CisJfQogCWVsc2UKIAkJYWJvcnQoKTsKIApkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5o CmluZGV4IGYwZjE5YmIwYjIuLjQ0ZWVkMDNhMmYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVt cC9wZ19iYWNrdXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmgKQEAgLTEzMiwx MiArMTMyLDE0IEBAIHR5cGVkZWYgc3RydWN0IF9yZXN0b3JlT3B0aW9ucwogCWludAkJCXNlbEZ1 bmN0aW9uOwogCWludAkJCXNlbFRyaWdnZXI7CiAJaW50CQkJc2VsVGFibGU7CisJaW50CQkJc2Vs VmFyaWFibGU7CiAJU2ltcGxlU3RyaW5nTGlzdCBpbmRleE5hbWVzOwogCVNpbXBsZVN0cmluZ0xp c3QgZnVuY3Rpb25OYW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0IHNjaGVtYU5hbWVzOwogCVNpbXBs ZVN0cmluZ0xpc3Qgc2NoZW1hRXhjbHVkZU5hbWVzOwogCVNpbXBsZVN0cmluZ0xpc3QgdHJpZ2dl ck5hbWVzOwogCVNpbXBsZVN0cmluZ0xpc3QgdGFibGVOYW1lczsKKwlTaW1wbGVTdHJpbmdMaXN0 IHZhcmlhYmxlTmFtZXM7CiAKIAlpbnQJCQl1c2VEQjsKIAlDb25uUGFyYW1zCWNwYXJhbXM7CQkv KiBwYXJhbWV0ZXJzIHRvIHVzZSBpZiB1c2VEQiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19k dW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNo aXZlci5jCmluZGV4IDcwN2EzZmM4NDQuLmFmYWJlNWZlNDkgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFj a3VwX2FyY2hpdmVyLmMKQEAgLTMxMDIsNiArMzEwMiwxNCBAQCBfdG9jRW50cnlSZXF1aXJlZChU b2NFbnRyeSAqdGUsIHRlU2VjdGlvbiBjdXJTZWN0aW9uLCBBcmNoaXZlSGFuZGxlICpBSCkKIAkJ CQkJIXNpbXBsZV9zdHJpbmdfbGlzdF9tZW1iZXIoJnJvcHQtPnRyaWdnZXJOYW1lcywgdGUtPnRh ZykpCiAJCQkJCXJldHVybiAwOwogCQkJfQorCQkJZWxzZSBpZiAoc3RyY21wKHRlLT5kZXNjLCAi VkFSSUFCTEUiKSA9PSAwKQorCQkJeworCQkJCWlmICghcm9wdC0+c2VsVmFyaWFibGUpCisJCQkJ CXJldHVybiAwOworCQkJCWlmIChyb3B0LT52YXJpYWJsZU5hbWVzLmhlYWQgIT0gTlVMTCAmJgor CQkJCQkhc2ltcGxlX3N0cmluZ19saXN0X21lbWJlcigmcm9wdC0+dmFyaWFibGVOYW1lcywgdGUt PnRhZykpCisJCQkJCXJldHVybiAwOworCQkJfQogCQkJZWxzZQogCQkJCXJldHVybiAwOwogCQl9 CkBAIC0zNjUxLDYgKzM2NTksNyBAQCBfZ2V0T2JqZWN0RGVzY3JpcHRpb24oUFFFeHBCdWZmZXIg YnVmLCBjb25zdCBUb2NFbnRyeSAqdGUpCiAJCXN0cmNtcCh0eXBlLCAiVEVYVCBTRUFSQ0ggRElD VElPTkFSWSIpID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJURVhUIFNFQVJDSCBDT05GSUdVUkFU SU9OIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIlRZUEUiKSA9PSAwIHx8CisJCXN0cmNtcCh0 eXBlLCAiVkFSSUFCTEUiKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiVklFVyIpID09IDAgfHwK IAkvKiBub24tc2NoZW1hLXNwZWNpZmllZCBvYmplY3RzICovCiAJCXN0cmNtcCh0eXBlLCAiREFU QUJBU0UiKSA9PSAwIHx8CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCAxOTk2OWU0MDBmLi5hMGIzOWQxM2YxIDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmMKQEAgLTM2Myw2ICszNjMsNyBAQCBzdGF0aWMgdm9pZCBkdW1wUHVibGljYXRp b24oQXJjaGl2ZSAqZm91dCwgY29uc3QgUHVibGljYXRpb25JbmZvICpwdWJpbmZvKTsKIHN0YXRp YyB2b2lkIGR1bXBQdWJsaWNhdGlvblRhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0 aW9uUmVsSW5mbyAqcHVicmluZm8pOwogc3RhdGljIHZvaWQgZHVtcFN1YnNjcmlwdGlvbihBcmNo aXZlICpmb3V0LCBjb25zdCBTdWJzY3JpcHRpb25JbmZvICpzdWJpbmZvKTsKIHN0YXRpYyB2b2lk IGR1bXBTdWJzY3JpcHRpb25UYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBTdWJSZWxJbmZvICpz dWJyaW5mbyk7CitzdGF0aWMgdm9pZCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3Qg VmFyaWFibGVJbmZvICp2YXJpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBEYXRhYmFzZShBcmNoaXZl ICpmb3V0KTsKIHN0YXRpYyB2b2lkIGR1bXBEYXRhYmFzZUNvbmZpZyhBcmNoaXZlICpBSCwgUFFF eHBCdWZmZXIgb3V0YnVmLAogCQkJCQkJCSAgIGNvbnN0IGNoYXIgKmRibmFtZSwgT2lkIGRib2lk KTsKQEAgLTU0MTksNiArNTQyMCwxOTAgQEAgZ2V0X25leHRfcG9zc2libGVfZnJlZV9wZ190eXBl X29pZChBcmNoaXZlICpmb3V0LCBQUUV4cEJ1ZmZlciB1cGdyYWRlX3F1ZXJ5KQogCXJldHVybiBu ZXh0X3Bvc3NpYmxlX2ZyZWVfb2lkOwogfQogCisvKgorICogZ2V0VmFyaWFibGVzCisgKgkgIGdl dCBpbmZvcm1hdGlvbiBhYm91dCB2YXJpYWJsZXMKKyAqLwordm9pZAorZ2V0VmFyaWFibGVzKEFy Y2hpdmUgKmZvdXQpCit7CisJUFFFeHBCdWZmZXIgcXVlcnk7CisJUEdyZXN1bHQgICAqcmVzOwor CVZhcmlhYmxlSW5mbyAqdmFyaW5mbzsKKwlpbnQJCQlpX3RhYmxlb2lkOworCWludAkJCWlfb2lk OworCWludAkJCWlfdmFybmFtZTsKKwlpbnQJCQlpX3Zhcm5hbWVzcGFjZTsKKwlpbnQJCQlpX3Zh cnR5cGU7CisJaW50CQkJaV92YXJ0eXBuYW1lOworCWludAkJCWlfdmFyb3duZXI7CisJaW50CQkJ aV92YXJjb2xsYXRpb247CisJaW50CQkJaV92YXJhY2w7CisJaW50CQkJaV9hY2xkZWZhdWx0Owor CWludAkJCWksCisJCQkJbnR1cHM7CisKKwlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA8IDE4MDAw MCkKKwkJcmV0dXJuOworCisJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJcmVzZXRQ UUV4cEJ1ZmZlcihxdWVyeSk7CisKKwkvKiBnZXQgdGhlIHZhcmlhYmxlcyBpbiBjdXJyZW50IGRh dGFiYXNlICovCisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksCisJCQkJCSAgIlNFTEVDVCB2LnRh Ymxlb2lkLCB2Lm9pZCwgdi52YXJuYW1lLFxuIgorCQkJCQkgICIgICAgICAgdi52YXJuYW1lc3Bh Y2UsIHYudmFydHlwZSxcbiIKKwkJCQkJICAiICAgICAgIHBnX2NhdGFsb2cuZm9ybWF0X3R5cGUo di52YXJ0eXBlLCB2LnZhcnR5cG1vZCkgYXMgdmFydHlwbmFtZSxcbiIKKwkJCQkJICAiICAgICAg IENBU0UgV0hFTiB2LnZhcmNvbGxhdGlvbiA8PiB0LnR5cGNvbGxhdGlvbiAiCisJCQkJCSAgIiAg ICAgICAgICAgIFRIRU4gdi52YXJjb2xsYXRpb25cbiIKKwkJCQkJICAiICAgICAgICAgICAgRUxT RSAwXG4iCisJCQkJCSAgIiAgICAgICBFTkQgQVMgdmFyY29sbGF0aW9uLFxuIgorCQkJCQkgICIg ICAgICAgdi52YXJvd25lciwgdi52YXJhY2wsXG4iCisJCQkJCSAgIiAgICAgICBhY2xkZWZhdWx0 KCdWJywgdi52YXJvd25lcikgQVMgYWNsZGVmYXVsdFxuIgorCQkJCQkgICJGUk9NIHBnX2NhdGFs b2cucGdfdmFyaWFibGUgdlxuIgorCQkJCQkgICJKT0lOIHBnX2NhdGFsb2cucGdfdHlwZSB0ICIK KwkJCQkJICAiT04gKHYudmFydHlwZSA9IHQub2lkKSIpOworCisJcmVzID0gRXhlY3V0ZVNxbFF1 ZXJ5KGZvdXQsIHF1ZXJ5LT5kYXRhLCBQR1JFU19UVVBMRVNfT0spOworCisJbnR1cHMgPSBQUW50 dXBsZXMocmVzKTsKKworCWlfdGFibGVvaWQgPSBQUWZudW1iZXIocmVzLCAidGFibGVvaWQiKTsK KwlpX29pZCA9IFBRZm51bWJlcihyZXMsICJvaWQiKTsKKwlpX3Zhcm5hbWUgPSBQUWZudW1iZXIo cmVzLCAidmFybmFtZSIpOworCWlfdmFybmFtZXNwYWNlID0gUFFmbnVtYmVyKHJlcywgInZhcm5h bWVzcGFjZSIpOworCWlfdmFydHlwZSA9IFBRZm51bWJlcihyZXMsICJ2YXJ0eXBlIik7CisJaV92 YXJ0eXBuYW1lID0gUFFmbnVtYmVyKHJlcywgInZhcnR5cG5hbWUiKTsKKwlpX3ZhcmNvbGxhdGlv biA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRpb24iKTsKKworCWlfdmFyb3duZXIgPSBQUWZu dW1iZXIocmVzLCAidmFyb3duZXIiKTsKKwlpX3ZhcmFjbCA9IFBRZm51bWJlcihyZXMsICJ2YXJh Y2wiKTsKKwlpX2FjbGRlZmF1bHQgPSBQUWZudW1iZXIocmVzLCAiYWNsZGVmYXVsdCIpOworCisJ dmFyaW5mbyA9IHBnX21hbGxvYyhudHVwcyAqIHNpemVvZihWYXJpYWJsZUluZm8pKTsKKworCWZv ciAoaSA9IDA7IGkgPCBudHVwczsgaSsrKQorCXsKKwkJVHlwZUluZm8gICAqdnR5cGU7CisKKwkJ dmFyaW5mb1tpXS5kb2JqLm9ialR5cGUgPSBET19WQVJJQUJMRTsKKwkJdmFyaW5mb1tpXS5kb2Jq LmNhdElkLnRhYmxlb2lkID0KKwkJCWF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV90YWJsZW9p ZCkpOworCQl2YXJpbmZvW2ldLmRvYmouY2F0SWQub2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVz LCBpLCBpX29pZCkpOworCQlBc3NpZ25EdW1wSWQoJnZhcmluZm9baV0uZG9iaik7CisJCXZhcmlu Zm9baV0uZG9iai5uYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zhcm5hbWUp KTsKKwkJdmFyaW5mb1tpXS5kb2JqLm5hbWVzcGFjZSA9CisJCQlmaW5kTmFtZXNwYWNlKGF0b29p ZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJuYW1lc3BhY2UpKSk7CisKKwkJdmFyaW5mb1tpXS52 YXJ0eXBlID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcnR5cGUpKTsKKwkJdmFyaW5m b1tpXS52YXJ0eXBuYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcnR5cG5h bWUpKTsKKwkJdmFyaW5mb1tpXS52YXJjb2xsYXRpb24gPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMs IGksIGlfdmFyY29sbGF0aW9uKSk7CisKKwkJdmFyaW5mb1tpXS5kYWNsLmFjbCA9IHBnX3N0cmR1 cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJhY2wpKTsKKwkJdmFyaW5mb1tpXS5kYWNsLmFjbGRl ZmF1bHQgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfYWNsZGVmYXVsdCkpOworCQl2 YXJpbmZvW2ldLmRhY2wucHJpdnR5cGUgPSAwOworCQl2YXJpbmZvW2ldLmRhY2wuaW5pdHByaXZz ID0gTlVMTDsKKwkJdmFyaW5mb1tpXS5yb2xuYW1lID0gZ2V0Um9sZU5hbWUoUFFnZXR2YWx1ZShy ZXMsIGksIGlfdmFyb3duZXIpKTsKKworCQkvKiBkbyBub3QgdHJ5IHRvIGR1bXAgQUNMIGlmIG5v IEFDTCBleGlzdHMgKi8KKwkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGksIGlfdmFyYWNsKSkKKwkJ CXZhcmluZm9baV0uZG9iai5jb21wb25lbnRzIHw9IERVTVBfQ09NUE9ORU5UX0FDTDsKKworCQlp ZiAoc3RybGVuKHZhcmluZm9baV0ucm9sbmFtZSkgPT0gMCkKKwkJCXBnX2xvZ193YXJuaW5nKCJv d25lciBvZiB2YXJpYWJsZSBcIiVzXCIgYXBwZWFycyB0byBiZSBpbnZhbGlkIiwKKwkJCQkJCSAg IHZhcmluZm9baV0uZG9iai5uYW1lKTsKKworCQkvKiBkZWNpZGUgd2hldGhlciB3ZSB3YW50IHRv IGR1bXAgaXQgKi8KKwkJc2VsZWN0RHVtcGFibGVPYmplY3QoJih2YXJpbmZvW2ldLmRvYmopLCBm b3V0KTsKKworCQl2dHlwZSA9IGZpbmRUeXBlQnlPaWQodmFyaW5mb1tpXS52YXJ0eXBlKTsKKwkJ YWRkT2JqZWN0RGVwZW5kZW5jeSgmdmFyaW5mb1tpXS5kb2JqLCB2dHlwZS0+ZG9iai5kdW1wSWQp OworCX0KKwlQUWNsZWFyKHJlcyk7CisKKwlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkpOworfQor CisvKgorICogZHVtcFZhcmlhYmxlCisgKgkgIGR1bXAgdGhlIGRlZmluaXRpb24gb2YgdGhlIGdp dmVuIHNlc3Npb24gdmFyaWFibGUKKyAqLworc3RhdGljIHZvaWQKK2R1bXBWYXJpYWJsZShBcmNo aXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCit7CisJRHVtcE9wdGlvbnMg KmRvcHQgPSBmb3V0LT5kb3B0OworCisJUFFFeHBCdWZmZXIgZGVscTsKKwlQUUV4cEJ1ZmZlciBx dWVyeTsKKwljaGFyCSAgICpxdWFsdmFybmFtZTsKKwljb25zdCBjaGFyICp2YXJ0eXBuYW1lOwor CU9pZAkJCXZhcmNvbGxhdGlvbjsKKworCS8qIHNraXAgaWYgbm90IHRvIGJlIGR1bXBlZCAqLwor CWlmICghdmFyaW5mby0+ZG9iai5kdW1wIHx8ICFkb3B0LT5kdW1wU2NoZW1hKQorCQlyZXR1cm47 CisKKwlkZWxxID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKwlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVm ZmVyKCk7CisKKwlxdWFsdmFybmFtZSA9IHBnX3N0cmR1cChmbXRRdWFsaWZpZWREdW1wYWJsZSh2 YXJpbmZvKSk7CisJdmFydHlwbmFtZSA9IHZhcmluZm8tPnZhcnR5cG5hbWU7CisJdmFyY29sbGF0 aW9uID0gdmFyaW5mby0+dmFyY29sbGF0aW9uOworCisJYXBwZW5kUFFFeHBCdWZmZXIoZGVscSwg IkRST1AgVkFSSUFCTEUgJXM7XG4iLAorCQkJCQkgIHF1YWx2YXJuYW1lKTsKKworCWFwcGVuZFBR RXhwQnVmZmVyKHF1ZXJ5LCAiQ1JFQVRFIFZBUklBQkxFICVzIEFTICVzIiwKKwkJCQkJICBxdWFs dmFybmFtZSwgdmFydHlwbmFtZSk7CisKKwlpZiAoT2lkSXNWYWxpZCh2YXJjb2xsYXRpb24pKQor CXsKKwkJQ29sbEluZm8gICAqY29sbDsKKworCQljb2xsID0gZmluZENvbGxhdGlvbkJ5T2lkKHZh cmNvbGxhdGlvbik7CisJCWlmIChjb2xsKQorCQkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIg Q09MTEFURSAlcyIsCisJCQkJCQkJICBmbXRRdWFsaWZpZWREdW1wYWJsZShjb2xsKSk7CisJfQor CisJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICI7XG4iKTsKKworCWlmICh2YXJpbmZvLT5kb2Jq LmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9ERUZJTklUSU9OKQorCQlBcmNoaXZlRW50cnkoZm91dCwg dmFyaW5mby0+ZG9iai5jYXRJZCwgdmFyaW5mby0+ZG9iai5kdW1wSWQsCisJCQkJCSBBUkNISVZF X09QVFMoLnRhZyA9IHZhcmluZm8tPmRvYmoubmFtZSwKKwkJCQkJCQkJICAubmFtZXNwYWNlID0g dmFyaW5mby0+ZG9iai5uYW1lc3BhY2UtPmRvYmoubmFtZSwKKwkJCQkJCQkJICAub3duZXIgPSB2 YXJpbmZvLT5yb2xuYW1lLAorCQkJCQkJCQkgIC5kZXNjcmlwdGlvbiA9ICJWQVJJQUJMRSIsCisJ CQkJCQkJCSAgLnNlY3Rpb24gPSBTRUNUSU9OX1BSRV9EQVRBLAorCQkJCQkJCQkgIC5jcmVhdGVT dG10ID0gcXVlcnktPmRhdGEsCisJCQkJCQkJCSAgLmRyb3BTdG10ID0gZGVscS0+ZGF0YSkpOwor CisJLyogZHVtcCBjb21tZW50IGlmIGFueSAqLworCWlmICh2YXJpbmZvLT5kb2JqLmR1bXAgJiBE VU1QX0NPTVBPTkVOVF9DT01NRU5UKQorCQlkdW1wQ29tbWVudChmb3V0LCAiVkFSSUFCTEUiLCBx dWFsdmFybmFtZSwKKwkJCQkJTlVMTCwgdmFyaW5mby0+cm9sbmFtZSwKKwkJCQkJdmFyaW5mby0+ ZG9iai5jYXRJZCwgMCwgdmFyaW5mby0+ZG9iai5kdW1wSWQpOworCisJLyogZHVtcCBBQ0wgaWYg YW55ICovCisJaWYgKHZhcmluZm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0FDTCkKKwl7 CisJCWNoYXIJICAgKnF2YXJuYW1lID0gcGdfc3RyZHVwKGZtdElkKHZhcmluZm8tPmRvYmoubmFt ZSkpOworCisJCWR1bXBBQ0woZm91dCwgdmFyaW5mby0+ZG9iai5kdW1wSWQsIEludmFsaWREdW1w SWQsICJWQVJJQUJMRSIsCisJCQkJcXZhcm5hbWUsIE5VTEwsCisJCQkJdmFyaW5mby0+ZG9iai5u YW1lc3BhY2UtPmRvYmoubmFtZSwgTlVMTCwgdmFyaW5mby0+cm9sbmFtZSwKKwkJCQkmdmFyaW5m by0+ZGFjbCk7CisKKwkJZnJlZShxdmFybmFtZSk7CisJfQorCisJZGVzdHJveVBRRXhwQnVmZmVy KGRlbHEpOworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihxdWVyeSk7CisKKwlmcmVlKHF1YWx2YXJuYW1l KTsKK30KKwogc3RhdGljIHZvaWQKIGJpbmFyeV91cGdyYWRlX3NldF90eXBlX29pZHNfYnlfdHlw ZV9vaWQoQXJjaGl2ZSAqZm91dCwKIAkJCQkJCQkJCQkgUFFFeHBCdWZmZXIgdXBncmFkZV9idWZm ZXIsCkBAIC0xMDE0NSw3ICsxMDMzMCw4IEBAIGdldEFkZGl0aW9uYWxBQ0xzKEFyY2hpdmUgKmZv dXQpCiAJCQkJCWRvYmotPm9ialR5cGUgPT0gRE9fVEFCTEUgfHwKIAkJCQkJZG9iai0+b2JqVHlw ZSA9PSBET19QUk9DTEFORyB8fAogCQkJCQlkb2JqLT5vYmpUeXBlID09IERPX0ZEVyB8fAotCQkJ CQlkb2JqLT5vYmpUeXBlID09IERPX0ZPUkVJR05fU0VSVkVSKQorCQkJCQlkb2JqLT5vYmpUeXBl ID09IERPX0ZPUkVJR05fU0VSVkVSIHx8CisJCQkJCWRvYmotPm9ialR5cGUgPT0gRE9fVkFSSUFC TEUpCiAJCQkJewogCQkJCQlEdW1wYWJsZU9iamVjdFdpdGhBY2wgKmRhb2JqID0gKER1bXBhYmxl T2JqZWN0V2l0aEFjbCAqKSBkb2JqOwogCkBAIC0xMDc0NCw2ICsxMDkzMCw5IEBAIGR1bXBEdW1w YWJsZU9iamVjdChBcmNoaXZlICpmb3V0LCBEdW1wYWJsZU9iamVjdCAqZG9iaikKIAkJY2FzZSBE T19TVUJTQ1JJUFRJT05fUkVMOgogCQkJZHVtcFN1YnNjcmlwdGlvblRhYmxlKGZvdXQsIChjb25z dCBTdWJSZWxJbmZvICopIGRvYmopOwogCQkJYnJlYWs7CisJCWNhc2UgRE9fVkFSSUFCTEU6CisJ CQlkdW1wVmFyaWFibGUoZm91dCwgKFZhcmlhYmxlSW5mbyAqKSBkb2JqKTsKKwkJCWJyZWFrOwog CQljYXNlIERPX1BSRV9EQVRBX0JPVU5EQVJZOgogCQljYXNlIERPX1BPU1RfREFUQV9CT1VOREFS WToKIAkJCS8qIG5ldmVyIGR1bXBlZCwgbm90aGluZyB0byBkbyAqLwpAQCAtMTUxOTUsNiArMTUz ODQsOSBAQCBkdW1wRGVmYXVsdEFDTChBcmNoaXZlICpmb3V0LCBjb25zdCBEZWZhdWx0QUNMSW5m byAqZGFjbGluZm8pCiAJCWNhc2UgREVGQUNMT0JKX05BTUVTUEFDRToKIAkJCXR5cGUgPSAiU0NI RU1BUyI7CiAJCQlicmVhazsKKwkJY2FzZSBERUZBQ0xPQkpfVkFSSUFCTEU6CisJCQl0eXBlID0g IlZBUklBQkxFUyI7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCS8qIHNob3VsZG4ndCBnZXQg aGVyZSAqLwogCQkJcGdfZmF0YWwoInVucmVjb2duaXplZCBvYmplY3QgdHlwZSBpbiBkZWZhdWx0 IHByaXZpbGVnZXM6ICVkIiwKQEAgLTE4OTE0LDYgKzE5MTA2LDcgQEAgYWRkQm91bmRhcnlEZXBl bmRlbmNpZXMoRHVtcGFibGVPYmplY3QgKipkb2JqcywgaW50IG51bU9ianMsCiAJCQljYXNlIERP X0NPTlZFUlNJT046CiAJCQljYXNlIERPX1RBQkxFOgogCQkJY2FzZSBET19UQUJMRV9BVFRBQ0g6 CisJCQljYXNlIERPX1ZBUklBQkxFOgogCQkJY2FzZSBET19BVFRSREVGOgogCQkJY2FzZSBET19Q Uk9DTEFORzoKIAkJCWNhc2UgRE9fQ0FTVDoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9w Z19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDljNWRkZDIwY2YuLmU0 NjJkMzIyZmQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3Jj L2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNTIsNiArNTIsNyBAQCB0eXBlZGVmIGVudW0KIAlE T19UQUJMRSwKIAlET19UQUJMRV9BVFRBQ0gsCiAJRE9fQVRUUkRFRiwKKwlET19WQVJJQUJMRSwK IAlET19JTkRFWCwKIAlET19JTkRFWF9BVFRBQ0gsCiAJRE9fU1RBVFNFWFQsCkBAIC03MDcsNiAr NzA4LDIzIEBAIHR5cGVkZWYgc3RydWN0IF9TdWJSZWxJbmZvCiAJY2hhcgkgICAqc3JzdWJsc247 CiB9IFN1YlJlbEluZm87CiAKKy8qCisgKiBUaGUgVmFyaWFibGVJbmZvIHN0cnVjdCBpcyB1c2Vk IHRvIHJlcHJlc2VudCBzZXNzaW9uIHZhcmlhYmxlcworICovCit0eXBlZGVmIHN0cnVjdCBfVmFy aWFibGVJbmZvCit7CisJRHVtcGFibGVPYmplY3QgZG9iajsKKwlEdW1wYWJsZUFjbCBkYWNsOwor CU9pZAkJCXZhcnR5cGU7CisJY2hhcgkgICAqdmFydHlwbmFtZTsKKwljaGFyCSAgICp2YXJhY2w7 CisJY2hhcgkgICAqcnZhcmFjbDsKKwljaGFyCSAgICppbml0dmFyYWNsOworCWNoYXIJICAgKmlu aXRydmFyYWNsOworCU9pZAkJCXZhcmNvbGxhdGlvbjsKKwljb25zdCBjaGFyICpyb2xuYW1lOwkJ LyogbmFtZSBvZiBvd25lciwgb3IgZW1wdHkgc3RyaW5nICovCit9IFZhcmlhYmxlSW5mbzsKKwog LyoKICAqCWNvbW1vbiB1dGlsaXR5IGZ1bmN0aW9ucwogICovCkBAIC03OTAsNSArODA4LDYgQEAg ZXh0ZXJuIHZvaWQgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZv IHRibGluZm9bXSwKIAkJCQkJCQkJIGludCBudW1UYWJsZXMpOwogZXh0ZXJuIHZvaWQgZ2V0U3Vi c2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KTsKIGV4dGVybiB2b2lkIGdldFN1YnNjcmlwdGlvblRh YmxlcyhBcmNoaXZlICpmb3V0KTsKK2V4dGVybiB2b2lkIGdldFZhcmlhYmxlcyhBcmNoaXZlICpm b3V0KTsKIAogI2VuZGlmCQkJCQkJCS8qIFBHX0RVTVBfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5j CmluZGV4IDNjOGYyZWI4MDguLmNhMzIzMTcxYWEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wX3NvcnQuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKQEAg LTc3LDYgKzc3LDcgQEAgZW51bSBkYk9iamVjdFR5cGVQcmlvcml0aWVzCiAJUFJJT19EVU1NWV9U WVBFLAogCVBSSU9fQVRUUkRFRiwKIAlQUklPX0xBUkdFX09CSkVDVCwKKwlQUklPX1ZBUklBQkxF LAogCVBSSU9fUFJFX0RBVEFfQk9VTkRBUlksCQkvKiBib3VuZGFyeSEgKi8KIAlQUklPX1RBQkxF X0RBVEEsCiAJUFJJT19TRVFVRU5DRV9TRVQsCkBAIC0xMTgsNiArMTE5LDcgQEAgc3RhdGljIGNv bnN0IGludCBkYk9iamVjdFR5cGVQcmlvcml0eVtdID0KIAlbRE9fVEFCTEVdID0gUFJJT19UQUJM RSwKIAlbRE9fVEFCTEVfQVRUQUNIXSA9IFBSSU9fVEFCTEVfQVRUQUNILAogCVtET19BVFRSREVG XSA9IFBSSU9fQVRUUkRFRiwKKwlbRE9fVkFSSUFCTEVdID0gUFJJT19WQVJJQUJMRSwKIAlbRE9f SU5ERVhdID0gUFJJT19JTkRFWCwKIAlbRE9fSU5ERVhfQVRUQUNIXSA9IFBSSU9fSU5ERVhfQVRU QUNILAogCVtET19TVEFUU0VYVF0gPSBQUklPX1NUQVRTRVhULApAQCAtMTUwMCw2ICsxNTAyLDEw IEBAIGRlc2NyaWJlRHVtcGFibGVPYmplY3QoRHVtcGFibGVPYmplY3QgKm9iaiwgY2hhciAqYnVm LCBpbnQgYnVmc2l6ZSkKIAkJCQkJICJQT1NULURBVEEgQk9VTkRBUlkgIChJRCAlZCkiLAogCQkJ CQkgb2JqLT5kdW1wSWQpOwogCQkJcmV0dXJuOworCQljYXNlIERPX1ZBUklBQkxFOgorCQkJc25w cmludGYoYnVmLCBidWZzaXplLAorCQkJCQkgIlZBUklBQkxFICVzICAoSUQgJWQgT0lEICV1KSIs CisJCQkJCSBvYmotPm5hbWUsIG9iai0+ZHVtcElkLCBvYmotPmNhdElkLm9pZCk7CiAJfQogCS8q IHNob3VsZG4ndCBnZXQgaGVyZSAqLwogCXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3Qv MDAyX3BnX2R1bXAucGwKaW5kZXggYWExNTY0Y2Q0NS4uZGQ4YzA1NGE2YSAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3Qv MDAyX3BnX2R1bXAucGwKQEAgLTc4OSw2ICs3ODksMTYgQEAgbXkgJXRlc3RzID0gKAogCQl1bmxp a2UgPT4geyBub19wcml2cyA9PiAxLCB9LAogCSAgfSwKIAorCSdBTFRFUiBERUZBVUxUIFBSSVZJ TEVHRVMgRk9SIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBHUkFOVCBTRUxFQ1QgT04gVkFS SUFCTEVTIFRPIFBVQkxJQycKKwkgID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDU2LAorCQljcmVh dGVfc3FsICAgPT4gJ0FMVEVSIERFRkFVTFQgUFJJVklMRUdFUyBGT1IgUk9MRSByZWdyZXNzX2R1 bXBfdGVzdF9yb2xlIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMgVE8gUFVCTElDOycsCisJCXJl Z2V4cCA9PiBxci9eCisJCQlcUUFMVEVSIERFRkFVTFQgUFJJVklMRUdFUyBGT1IgUk9MRSByZWdy ZXNzX2R1bXBfdGVzdF9yb2xlIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMgVE8gUFVCTElDO1xF L3htLAorCQlsaWtlID0+IHsgJWZ1bGxfcnVucywgc2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwK KwkJdW5saWtlID0+IHsgbm9fcHJpdnMgPT4gMSwgfSwKKwkgIH0sCisKIAknQUxURVIgUk9MRSBy ZWdyZXNzX2R1bXBfdGVzdF9yb2xlJyA9PiB7CiAJCXJlZ2V4cCA9PiBxci9eCiAJCQlcUUFMVEVS IFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBXSVRIIFxFCkBAIC0xNjc0LDYgKzE2ODQsMjMg QEAgbXkgJXRlc3RzID0gKAogCQl9LAogCX0sCiAKKwknQ09NTUVOVCBPTiBWQVJJQUJMRSBkdW1w X3Rlc3QudmFyaWFibGUxJyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA3MSwKKwkJY3JlYXRlX3Nx bCAgID0+ICdDT01NRU5UIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEKKwkJCQkJICAg SVMgXCdjb21tZW50IG9uIHZhcmlhYmxlXCc7JywKKwkJcmVnZXhwID0+CisJCSAgcXIvXlxRQ09N TUVOVCBPTiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxIElTICdjb21tZW50IG9uIHZhcmlh YmxlJztcRS9tLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3Nj aGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSAgICAgPT4gMSwKKwkJfSwKKwkJdW5saWtl ID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21l YXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDT1BZIHRlc3RfdGFibGUnID0+IHsK IAkJY3JlYXRlX29yZGVyID0+IDQsCiAJCWNyZWF0ZV9zcWwgPT4gJ0lOU0VSVCBJTlRPIGR1bXBf dGVzdC50ZXN0X3RhYmxlIChjb2wxKSAnCkBAIC0zOTQyLDYgKzM5NjksMjQgQEAgbXkgJXRlc3Rz ID0gKAogCQl9LAogCX0sCiAKKwknQ1JFQVRFIFZBUklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsK KwkJYWxsX3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21t YW5kcycsCisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUg VkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMSBBUyBpbnRlZ2VyOycsCisJCXJlZ2V4cCA9PiBx ci9eCisJCQlcUUNSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxIEFTIGludGVnZXI7 XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1h X3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJ CQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVu dCAgICA9PiAxLAorCQl9LAorCX0sCisKIAknQ1JFQVRFIFZJRVcgdGVzdF92aWV3JyA9PiB7CiAJ CWNyZWF0ZV9vcmRlciA9PiA2MSwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFZJRVcgZHVtcF90 ZXN0LnRlc3RfdmlldwpAQCAtNDQwNCw2ICs0NDQ5LDI1IEBAIG15ICV0ZXN0cyA9ICgKIAkJbGlr ZSA9PiB7fSwKIAl9LAogCisJJ0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFy aWFibGUxJyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA3MywKKwkJY3JlYXRlX3NxbCA9PgorCQkg ICdHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMSBUTyByZWdyZXNz X2R1bXBfdGVzdF9yb2xlOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUdSQU5UIFNFTEVDVCBP TiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxIFRPIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGU7 XEUKKwkJCS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9z Y2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+ IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJbm9fcHJpdnMgICAgICAg ICAgICAgICAgID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwK Kwl9LAorCiAJJ1JFRlJFU0ggTUFURVJJQUxJWkVEIFZJRVcgbWF0dmlldycgPT4gewogCQlyZWdl eHAgPT4gcXIvXlxRUkVGUkVTSCBNQVRFUklBTElaRUQgVklFVyBkdW1wX3Rlc3QubWF0dmlldztc RS9tLAogCQlsaWtlID0+CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvY29tbWFuZC5jIGIvc3Jj L2Jpbi9wc3FsL2NvbW1hbmQuYwppbmRleCBjZDE2ZjI3OTQ3Li41ZThkYmYxMWNiIDEwMDY0NAot LS0gYS9zcmMvYmluL3BzcWwvY29tbWFuZC5jCisrKyBiL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMK QEAgLTEwNzcsNiArMTA3Nyw5IEBAIGV4ZWNfY29tbWFuZF9kKFBzcWxTY2FuU3RhdGUgc2Nhbl9z dGF0ZSwgYm9vbCBhY3RpdmVfYnJhbmNoLCBjb25zdCBjaGFyICpjbWQpCiAJCQkJCQlicmVhazsK IAkJCQl9CiAJCQkJYnJlYWs7CisJCQljYXNlICdWJzoJCQkvKiBWYXJpYWJsZXMgKi8KKwkJCQlz dWNjZXNzID0gbGlzdFZhcmlhYmxlcyhwYXR0ZXJuLCBzaG93X3ZlcmJvc2UpOworCQkJCWJyZWFr OwogCQkJY2FzZSAneCc6CQkJLyogRXh0ZW5zaW9ucyAqLwogCQkJCWlmIChzaG93X3ZlcmJvc2Up CiAJCQkJCXN1Y2Nlc3MgPSBsaXN0RXh0ZW5zaW9uQ29udGVudHMocGF0dGVybik7CmRpZmYgLS1n aXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmlu ZGV4IDI2NTdhYmRjNzIuLjU1YTVlZjgwYjcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNj cmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBAIC0xMjA2LDcgKzEyMDYsNyBA QCBsaXN0RGVmYXVsdEFDTHMoY29uc3QgY2hhciAqcGF0dGVybikKIAlwcmludGZQUUV4cEJ1ZmZl cigmYnVmLAogCQkJCQkgICJTRUxFQ1QgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQoZC5kZWZh Y2xyb2xlKSBBUyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgbi5uc3BuYW1lIEFTIFwiJXNcIixcbiIK LQkJCQkJICAiICBDQVNFIGQuZGVmYWNsb2JqdHlwZSBXSEVOICclYycgVEhFTiAnJXMnIFdIRU4g JyVjJyBUSEVOICclcycgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhFTiAnJXMnIFdI RU4gJyVjJyBUSEVOICclcycgRU5EIEFTIFwiJXNcIixcbiIKKwkJCQkJICAiICBDQVNFIGQuZGVm YWNsb2JqdHlwZSBXSEVOICclYycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcycgV0hFTiAn JWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcycgV0hF TiAnJWMnIFRIRU4gJyVzJyBFTkQgQVMgXCIlc1wiLFxuIgogCQkJCQkgICIgICIsCiAJCQkJCSAg Z2V0dGV4dF9ub29wKCJPd25lciIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiU2NoZW1hIiksCkBA IC0xMjIwLDYgKzEyMjAsOCBAQCBsaXN0RGVmYXVsdEFDTHMoY29uc3QgY2hhciAqcGF0dGVybikK IAkJCQkJICBnZXR0ZXh0X25vb3AoInR5cGUiKSwKIAkJCQkJICBERUZBQ0xPQkpfTkFNRVNQQUNF LAogCQkJCQkgIGdldHRleHRfbm9vcCgic2NoZW1hIiksCisJCQkJCSAgREVGQUNMT0JKX1ZBUklB QkxFLAorCQkJCQkgIGdldHRleHRfbm9vcCgic2Vzc2lvbiB2YXJpYWJsZSIpLAogCQkJCQkgIGdl dHRleHRfbm9vcCgiVHlwZSIpKTsKIAogCXByaW50QUNMQ29sdW1uKCZidWYsICJkLmRlZmFjbGFj bCIpOwpAQCAtNTIzNyw2ICs1MjM5LDEwMiBAQCBlcnJvcl9yZXR1cm46CiAJcmV0dXJuIGZhbHNl OwogfQogCisvKgorICogXGRWCisgKgorICogbGlzdFZhcmlhYmxlcygpCisgKi8KK2Jvb2wKK2xp c3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQoreworCVBRRXhw QnVmZmVyRGF0YSBidWY7CisJUEdyZXN1bHQgICAqcmVzOworCXByaW50UXVlcnlPcHQgbXlvcHQg PSBwc2V0LnBvcHQ7CisJc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CisKKwlpZiAo cHNldC5zdmVyc2lvbiA8IDE4MDAwMCkKKwl7CisJCWNoYXIJCXN2ZXJidWZbMzJdOworCisJCXBn X2xvZ19lcnJvcigiVGhlIHNlcnZlciAodmVyc2lvbiAlcykgZG9lcyBub3Qgc3VwcG9ydCBzZXNz aW9uIHZhcmlhYmxlcy4iLAorCQkJCQkgZm9ybWF0UEdWZXJzaW9uTnVtYmVyKHBzZXQuc3ZlcnNp b24sIGZhbHNlLAorCQkJCQkJCQkJCSAgIHN2ZXJidWYsIHNpemVvZihzdmVyYnVmKSkpOworCQly ZXR1cm4gdHJ1ZTsKKwl9CisKKwlpbml0UFFFeHBCdWZmZXIoJmJ1Zik7CisKKwlwcmludGZQUUV4 cEJ1ZmZlcigmYnVmLAorCQkJCQkgICJTRUxFQ1Qgbi5uc3BuYW1lIGFzIFwiJXNcIixcbiIKKwkJ CQkJICAiICB2LnZhcm5hbWUgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIHBnX2NhdGFsb2cuZm9y bWF0X3R5cGUodi52YXJ0eXBlLCB2LnZhcnR5cG1vZCkgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIg IChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdfY29sbGF0aW9uIGMsIHBnX2Nh dGFsb2cucGdfdHlwZSBidFxuIgorCQkJCQkgICIgICBXSEVSRSBjLm9pZCA9IHYudmFyY29sbGF0 aW9uIEFORCBidC5vaWQgPSB2LnZhcnR5cGUgQU5EIHYudmFyY29sbGF0aW9uIDw+IGJ0LnR5cGNv bGxhdGlvbikgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJi eWlkKHYudmFyb3duZXIpIGFzIFwiJXNcIlxuIiwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIlNjaGVt YSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiTmFtZSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgi VHlwZSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiQ29sbGF0aW9uIiksCisJCQkJCSAgZ2V0dGV4 dF9ub29wKCJPd25lciIpKTsKKworCWlmICh2ZXJib3NlKQorCXsKKwkJYXBwZW5kUFFFeHBCdWZm ZXJTdHIoJmJ1ZiwgIixcbiAgIik7CisJCXByaW50QUNMQ29sdW1uKCZidWYsICJ2LnZhcmFjbCIp OworCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJICAiLFxuICBwZ19jYXRhbG9nLm9i al9kZXNjcmlwdGlvbih2Lm9pZCwgJ3BnX3ZhcmlhYmxlJykgQVMgXCIlc1wiIiwKKwkJCQkJCSAg Z2V0dGV4dF9ub29wKCJEZXNjcmlwdGlvbiIpKTsKKwl9CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0 cigmYnVmLAorCQkJCQkJICJcbkZST00gcGdfY2F0YWxvZy5wZ192YXJpYWJsZSB2IgorCQkJCQkJ ICJcbiAgICAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfbmFtZXNwYWNlIG4gT04gbi5vaWQgPSB2 LnZhcm5hbWVzcGFjZSIpOworCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIlxuV0hFUkUg dHJ1ZVxuIik7CisJaWYgKCFwYXR0ZXJuKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAi ICAgICAgQU5EIG4ubnNwbmFtZSA8PiAncGdfY2F0YWxvZydcbiIKKwkJCQkJCQkgIiAgICAgIEFO RCBuLm5zcG5hbWUgPD4gJ2luZm9ybWF0aW9uX3NjaGVtYSdcbiIpOworCisJaWYgKCF2YWxpZGF0 ZVNRTE5hbWVQYXR0ZXJuKCZidWYsIHBhdHRlcm4sIHRydWUsIGZhbHNlLAorCQkJCQkJCQkibi5u c3BuYW1lIiwgInYudmFybmFtZSIsIE5VTEwsCisJCQkJCQkJCSJwZ19jYXRhbG9nLnBnX3Zhcmlh YmxlX2lzX3Zpc2libGUodi5vaWQpIiwKKwkJCQkJCQkJTlVMTCwgMykpCisJCXJldHVybiBmYWxz ZTsKKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJPUkRFUiBCWSAxLDI7Iik7CisKKwly ZXMgPSBQU1FMZXhlYyhidWYuZGF0YSk7CisJdGVybVBRRXhwQnVmZmVyKCZidWYpOworCWlmICgh cmVzKQorCQlyZXR1cm4gZmFsc2U7CisKKwkvKgorCSAqIE1vc3QgZnVuY3Rpb25zIGluIHRoaXMg ZmlsZSBhcmUgY29udGVudCB0byBwcmludCBhbiBlbXB0eSB0YWJsZSB3aGVuCisJICogdGhlcmUg YXJlIG5vIG1hdGNoaW5nIG9iamVjdHMuICBXZSBpbnRlbnRpb25hbGx5IGRldmlhdGUgZnJvbSB0 aGF0CisJICogaGVyZSwgYnV0IG9ubHkgaW4gIXF1aWV0IG1vZGUsIGZvciBoaXN0b3JpY2FsIHJl YXNvbnMuCisJICovCisJaWYgKFBRbnR1cGxlcyhyZXMpID09IDAgJiYgIXBzZXQucXVpZXQpCisJ eworCQlpZiAocGF0dGVybikKKwkJCXBnX2xvZ19lcnJvcigiRGlkIG5vdCBmaW5kIGFueSBzZXNz aW9uIHZhcmlhYmxlIG5hbWVkIFwiJXNcIi4iLAorCQkJCQkJIHBhdHRlcm4pOworCQllbHNlCisJ CQlwZ19sb2dfZXJyb3IoIkRpZCBub3QgZmluZCBhbnkgc2Vzc2lvbiB2YXJpYWJsZXMuIik7CisJ fQorCWVsc2UKKwl7CisJCW15b3B0Lm51bGxQcmludCA9IE5VTEw7CisJCW15b3B0LnRpdGxlID0g XygiTGlzdCBvZiB2YXJpYWJsZXMiKTsKKwkJbXlvcHQudHJhbnNsYXRlX2hlYWRlciA9IHRydWU7 CisJCW15b3B0LnRyYW5zbGF0ZV9jb2x1bW5zID0gdHJhbnNsYXRlX2NvbHVtbnM7CisJCW15b3B0 Lm5fdHJhbnNsYXRlX2NvbHVtbnMgPSBsZW5ndGhvZih0cmFuc2xhdGVfY29sdW1ucyk7CisKKwkJ cHJpbnRRdWVyeShyZXMsICZteW9wdCwgcHNldC5xdWVyeUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2Zp bGUpOworCX0KKworCVBRY2xlYXIocmVzKTsKKwlyZXR1cm4gdHJ1ZTsKK30KIAogLyoKICAqIFxk RnAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oIGIvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmgKaW5kZXggMjczZjk3NDUzOC4uNGUxNWExODBlYSAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wc3FsL2Rlc2NyaWJlLmgKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmgKQEAgLTE0OSw0 ICsxNDksNyBAQCBleHRlcm4gYm9vbCBsaXN0T3BGYW1pbHlGdW5jdGlvbnMoY29uc3QgY2hhciAq YWNjZXNzX21ldGhvZF9wYXR0ZXJuLAogLyogXGRsIG9yIFxsb19saXN0ICovCiBleHRlcm4gYm9v bCBsaXN0TGFyZ2VPYmplY3RzKGJvb2wgdmVyYm9zZSk7CiAKKy8qIFxkViAqLworZXh0ZXJuIGJv b2wgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZhcmJvc2UpOworCiAj ZW5kaWYJCQkJCQkJLyogREVTQ1JJQkVfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2hl bHAuYyBiL3NyYy9iaW4vcHNxbC9oZWxwLmMKaW5kZXggM2Y0YWZjMmQxNC4uMjM1MmVkNzQyMiAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2hlbHAuYworKysgYi9zcmMvYmluL3BzcWwvaGVscC5j CkBAIC0yNjYsNiArMjY2LDcgQEAgc2xhc2hVc2FnZSh1bnNpZ25lZCBzaG9ydCBpbnQgcGFnZXIp CiAJSEVMUDAoIiAgXFxkVFtTK10gW1BBVFRFUk5dICAgICAgbGlzdCBkYXRhIHR5cGVzXG4iKTsK IAlIRUxQMCgiICBcXGR1W1MrXSBbUEFUVEVSTl0gICAgICBsaXN0IHJvbGVzXG4iKTsKIAlIRUxQ MCgiICBcXGR2W1MrXSBbUEFUVEVSTl0gICAgICBsaXN0IHZpZXdzXG4iKTsKKwlIRUxQMCgiICBc XGRWICAgICBbUEFUVEVSTl0gICAgICBsaXN0IHNlc3Npb24gdmFyaWFibGVzXG4iKTsKIAlIRUxQ MCgiICBcXGR4WytdICBbUEFUVEVSTl0gICAgICBsaXN0IGV4dGVuc2lvbnNcbiIpOwogCUhFTFAw KCIgIFxcZFggICAgIFtQQVRURVJOXSAgICAgIGxpc3QgZXh0ZW5kZWQgc3RhdGlzdGljc1xuIik7 CiAJSEVMUDAoIiAgXFxkeVsrXSAgW1BBVFRFUk5dICAgICAgbGlzdCBldmVudCB0cmlnZ2Vyc1xu Iik7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggMzFjNzcyMTRiNC4uN2Q3NjgzNGU2OSAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNx bC90YWItY29tcGxldGUuaW4uYwpAQCAtOTcwLDYgKzk3MCwxMyBAQCBzdGF0aWMgY29uc3QgU2No ZW1hUXVlcnkgUXVlcnlfZm9yX3RyaWdnZXJfb2ZfdGFibGUgPSB7CiAJLnJlZm5hbWVzcGFjZSA9 ICJjMS5yZWxuYW1lc3BhY2UiLAogfTsKIAorc3RhdGljIGNvbnN0IFNjaGVtYVF1ZXJ5IFF1ZXJ5 X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyA9IHsKKwkubWluX3NlcnZlcl92ZXJzaW9uID0gMTgwMDAw LAorCS5jYXRuYW1lID0gInBnX2NhdGFsb2cucGdfdmFyaWFibGUgdiIsCisJLnZpc2NvbmRpdGlv biA9ICJwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlX2lzX3Zpc2libGUodi5vaWQpIiwKKwkubmFtZXNw YWNlID0gInYudmFybmFtZXNwYWNlIiwKKwkucmVzdWx0ID0gInYudmFybmFtZSIsCit9OwogCiAv KgogICogUXVlcmllcyB0byBnZXQgbGlzdHMgb2YgbmFtZXMgb2YgdmFyaW91cyBraW5kcyBvZiB0 aGluZ3MsIHBvc3NpYmx5CkBAIC0xMzA0LDYgKzEzMTEsNyBAQCBzdGF0aWMgY29uc3QgcGdzcWxf dGhpbmdfdCB3b3Jkc19hZnRlcl9jcmVhdGVbXSA9IHsKIAkJCQkJCQkJCQkJCQkJCQkJCQkgKiBU QUJMRSAuLi4gKi8KIAl7IlVTRVIiLCBRdWVyeV9mb3JfbGlzdF9vZl9yb2xlcywgTlVMTCwgTlVM TCwgS2V5d29yZHNfZm9yX3VzZXJfdGhpbmd9LAogCXsiVVNFUiBNQVBQSU5HIEZPUiIsIE5VTEws IE5VTEwsIE5VTEx9LAorCXsiVkFSSUFCTEUiLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rf b2ZfdmFyaWFibGVzfSwKIAl7IlZJRVciLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2Zf dmlld3N9LAogCXtOVUxMfQkJCQkJCS8qIGVuZCBvZiBsaXN0ICovCiB9OwpAQCAtMTg2NSw3ICsx ODczLDcgQEAgcHNxbF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50 IGVuZCkKIAkJIlxcZEYiLCAiXFxkRmQiLCAiXFxkRnAiLCAiXFxkRnQiLCAiXFxkZyIsICJcXGRp IiwgIlxcZGwiLCAiXFxkTCIsCiAJCSJcXGRtIiwgIlxcZG4iLCAiXFxkbyIsICJcXGRPIiwgIlxc ZHAiLCAiXFxkUCIsICJcXGRQaSIsICJcXGRQdCIsCiAJCSJcXGRyZHMiLCAiXFxkcmciLCAiXFxk UnMiLCAiXFxkUnAiLCAiXFxkcyIsCi0JCSJcXGR0IiwgIlxcZFQiLCAiXFxkdiIsICJcXGR1Iiwg IlxcZHgiLCAiXFxkWCIsICJcXGR5IiwKKwkJIlxcZHQiLCAiXFxkVCIsICJcXGR2IiwgIlxcZHUi LCAiXFxkeCIsICJcXGRYIiwgIlxcZHkiLCAiXFxkViIsCiAJCSJcXGVjaG8iLCAiXFxlZGl0Iiwg IlxcZWYiLCAiXFxlbGlmIiwgIlxcZWxzZSIsICJcXGVuY29kaW5nIiwKIAkJIlxcZW5kaWYiLCAi XFxlcnJ2ZXJib3NlIiwgIlxcZXYiLAogCQkiXFxmIiwKQEAgLTI1NTYsNiArMjU2NCw5IEBAIG1h dGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkJCQkJCSAgIkFMTCIpOwog CWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlNZU1RFTSIsICJTRVQiLCBNYXRjaEFueSkpCiAJ CUNPTVBMRVRFX1dJVEgoIlRPIik7CisJLyogQUxURVIgVkFSSUFCTEUgPG5hbWU+ICovCisJZWxz ZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRF X1dJVEgoIk9XTkVSIFRPIiwgIlJFTkFNRSBUTyIsICJTRVQgU0NIRU1BIik7CiAJLyogQUxURVIg VklFVyA8bmFtZT4gKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJWSUVXIiwgTWF0Y2hB bnkpKQogCQlDT01QTEVURV9XSVRIKCJBTFRFUiBDT0xVTU4iLCAiT1dORVIgVE8iLCAiUkVOQU1F IiwgIlJFU0VUIiwgIlNFVCIpOwpAQCAtMzEzNiw3ICszMTQ3LDcgQEAgbWF0Y2hfcHJldmlvdXNf d29yZHMoaW50IHBhdHRlcm5faWQsCiAJCQkJCSAgIlJPVVRJTkUiLCAiUlVMRSIsICJTQ0hFTUEi LCAiU0VRVUVOQ0UiLCAiU0VSVkVSIiwKIAkJCQkJICAiU1RBVElTVElDUyIsICJTVUJTQ1JJUFRJ T04iLCAiVEFCTEUiLAogCQkJCQkgICJUQUJMRVNQQUNFIiwgIlRFWFQgU0VBUkNIIiwgIlRSQU5T Rk9STSBGT1IiLAotCQkJCQkgICJUUklHR0VSIiwgIlRZUEUiLCAiVklFVyIpOworCQkJCQkgICJU UklHR0VSIiwgIlRZUEUiLCAiVkFSSUFCTEUiLCAiVklFVyIpOwogCWVsc2UgaWYgKE1hdGNoZXMo IkNPTU1FTlQiLCAiT04iLCAiQUNDRVNTIiwgIk1FVEhPRCIpKQogCQlDT01QTEVURV9XSVRIX1FV RVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2FjY2Vzc19tZXRob2RzKTsKIAllbHNlIGlmIChNYXRjaGVz KCJDT01NRU5UIiwgIk9OIiwgIkNPTlNUUkFJTlQiKSkKQEAgLTM5NDYsNiArMzk1NywxMyBAQCBt YXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJZWxzZSBpZiAoVGFpbE1hdGNo ZXMoIj0iLCBNYXRjaEFueUV4Y2VwdCgiKikiKSkpCiAJCQlDT01QTEVURV9XSVRIKCIsIiwgIiki KTsKIAl9CisvKiBDUkVBVEUgVkFSSUFCTEUgLS0tIGlzIGFsbG93ZWQgaW5zaWRlIENSRUFURSBT Q0hFTUEsIHNvIHVzZSBUYWlsTWF0Y2hlcyAqLworCS8qIENvbXBsZXRlIENSRUFURSBWQVJJQUJM RSA8bmFtZT4gd2l0aCBBUyAqLworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAiVkFS SUFCTEUiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIkFTIik7CisJZWxzZSBpZiAoVGFp bE1hdGNoZXMoIlZBUklBQkxFIiwgTWF0Y2hBbnksICJBUyIpKQorCQkvKiBDb21wbGV0ZSBDUkVB VEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMgdHlwZXMgKi8KKwkJQ09NUExFVEVfV0lUSF9TQ0hF TUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfZGF0YXR5cGVzKTsKIAogLyogQ1JFQVRFIFZJRVcg LS0tIGlzIGFsbG93ZWQgaW5zaWRlIENSRUFURSBTQ0hFTUEsIHNvIHVzZSBUYWlsTWF0Y2hlcyAq LwogCS8qIENvbXBsZXRlIENSRUFURSBbIE9SIFJFUExBQ0UgXSBWSUVXIDxuYW1lPiB3aXRoIEFT IG9yIFdJVEggKi8KQEAgLTQyMjMsNiArNDI0MSwxMiBAQCBtYXRjaF9wcmV2aW91c193b3Jkcyhp bnQgcGF0dGVybl9pZCwKIAllbHNlIGlmIChNYXRjaGVzKCJEUk9QIiwgIlRSQU5TRk9STSIsICJG T1IiLCBNYXRjaEFueSwgIkxBTkdVQUdFIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJD QVNDQURFIiwgIlJFU1RSSUNUIik7CiAKKwkvKiBEUk9QIFZBUklBQkxFICovCisJZWxzZSBpZiAo TWF0Y2hlcygiRFJPUCIsICJWQVJJQUJMRSIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVS WShRdWVyeV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOworCWVsc2UgaWYgKE1hdGNoZXMoIkRST1Ai LCAiVkFSSUFCTEUiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIkNBU0NBREUiLCAiUkVT VFJJQ1QiKTsKKwogLyogRVhFQ1VURSAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkVYRUNVVEUiKSkK IAkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9wcmVwYXJlZF9zdGF0ZW1l bnRzKTsKQEAgLTQ0MjQsNyArNDQ0OCw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0 ZXJuX2lkLAogCQkgKiBvYmplY3RzIHN1cHBvcnRlZC4KIAkJICovCiAJCWlmIChIZWFkTWF0Y2hl cygiQUxURVIiLCAiREVGQVVMVCIsICJQUklWSUxFR0VTIikpCi0JCQlDT01QTEVURV9XSVRIKCJU QUJMRVMiLCAiU0VRVUVOQ0VTIiwgIkZVTkNUSU9OUyIsICJQUk9DRURVUkVTIiwgIlJPVVRJTkVT IiwgIlRZUEVTIiwgIlNDSEVNQVMiKTsKKwkJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyIsICJTRVFV RU5DRVMiLCAiRlVOQ1RJT05TIiwgIlBST0NFRFVSRVMiLCAiUk9VVElORVMiLCAiVFlQRVMiLCAi U0NIRU1BUyIsICJWQVJJQUJMRVMiKTsKIAkJZWxzZQogCQkJQ09NUExFVEVfV0lUSF9TQ0hFTUFf UVVFUllfUExVUyhRdWVyeV9mb3JfbGlzdF9vZl9ncmFudGFibGVzLAogCQkJCQkJCQkJCQkiQUxM IEZVTkNUSU9OUyBJTiBTQ0hFTUEiLApAQCAtNDQzMiw2ICs0NDU2LDcgQEAgbWF0Y2hfcHJldmlv dXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCQkJCQkJCQkJCSJBTEwgUk9VVElORVMgSU4gU0NI RU1BIiwKIAkJCQkJCQkJCQkJIkFMTCBTRVFVRU5DRVMgSU4gU0NIRU1BIiwKIAkJCQkJCQkJCQkJ IkFMTCBUQUJMRVMgSU4gU0NIRU1BIiwKKwkJCQkJCQkJCQkJIkFMTCBWQVJJQUJMRVMgSU4gU0NI RU1BIiwKIAkJCQkJCQkJCQkJIkRBVEFCQVNFIiwKIAkJCQkJCQkJCQkJIkRPTUFJTiIsCiAJCQkJ CQkJCQkJCSJGT1JFSUdOIERBVEEgV1JBUFBFUiIsCkBAIC00NDQ2LDcgKzQ0NzEsOCBAQCBtYXRj aF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJCQkJCQkJCQkJIlNFUVVFTkNFIiwK IAkJCQkJCQkJCQkJIlRBQkxFIiwKIAkJCQkJCQkJCQkJIlRBQkxFU1BBQ0UiLAotCQkJCQkJCQkJ CQkiVFlQRSIpOworCQkJCQkJCQkJCQkiVFlQRSIsCisJCQkJCQkJCQkJCSJWQVJJQUJMRSIpOwog CX0KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiR1JBTlR8UkVWT0tFIiwgTWF0Y2hBbnksICJPTiIs ICJBTEwiKSB8fAogCQkJIFRhaWxNYXRjaGVzKCJSRVZPS0UiLCAiR1JBTlQiLCAiT1BUSU9OIiwg IkZPUiIsIE1hdGNoQW55LCAiT04iLCAiQUxMIikpCkBAIC00NDU0LDcgKzQ0ODAsOCBAQCBtYXRj aF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJCQkJICAiUFJPQ0VEVVJFUyBJTiBT Q0hFTUEiLAogCQkJCQkgICJST1VUSU5FUyBJTiBTQ0hFTUEiLAogCQkJCQkgICJTRVFVRU5DRVMg SU4gU0NIRU1BIiwKLQkJCQkJICAiVEFCTEVTIElOIFNDSEVNQSIpOworCQkJCQkgICJUQUJMRVMg SU4gU0NIRU1BIiwKKwkJCQkJICAiVkFSSUFCTEVTIElOIFNDSEVNQSIpOwogCWVsc2UgaWYgKFRh aWxNYXRjaGVzKCJHUkFOVHxSRVZPS0UiLCBNYXRjaEFueSwgIk9OIiwgIkZPUkVJR04iKSB8fAog CQkJIFRhaWxNYXRjaGVzKCJSRVZPS0UiLCAiR1JBTlQiLCAiT1BUSU9OIiwgIkZPUiIsIE1hdGNo QW55LCAiT04iLCAiRk9SRUlHTiIpKQogCQlDT01QTEVURV9XSVRIKCJEQVRBIFdSQVBQRVIiLCAi U0VSVkVSIik7CkBAIC00NDkwLDYgKzQ1MTcsOCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQg cGF0dGVybl9pZCwKIAkJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFi bGVzcGFjZXMpOwogCQllbHNlIGlmIChUYWlsTWF0Y2hlcygiVFlQRSIpKQogCQkJQ09NUExFVEVf V0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfZGF0YXR5cGVzKTsKKwkJZWxzZSBp ZiAoVGFpbE1hdGNoZXMoIlZBUklBQkxFIikpCisJCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVS WShRdWVyeV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOwogCQllbHNlIGlmIChUYWlsTWF0Y2hlcygi R1JBTlQiLCBNYXRjaEFueSwgTWF0Y2hBbnksIE1hdGNoQW55KSkKIAkJCUNPTVBMRVRFX1dJVEgo IlRPIik7CiAJCWVsc2UKQEAgLTQ3OTIsNyArNDgyMSw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRz KGludCBwYXR0ZXJuX2lkLAogCiAvKiBQUkVQQVJFIHh4IEFTICovCiAJZWxzZSBpZiAoTWF0Y2hl cygiUFJFUEFSRSIsIE1hdGNoQW55LCAiQVMiKSkKLQkJQ09NUExFVEVfV0lUSCgiU0VMRUNUIiwg IlVQREFURSIsICJJTlNFUlQgSU5UTyIsICJERUxFVEUgRlJPTSIpOworCQlDT01QTEVURV9XSVRI KCJTRUxFQ1QiLCAiVVBEQVRFIiwgIklOU0VSVCBJTlRPIiwgIkRFTEVURSBGUk9NIiwgIkxFVCIp OwogCiAvKgogICogUFJFUEFSRSBUUkFOU0FDVElPTiBpcyBtaXNzaW5nIG9uIHB1cnBvc2UuIEl0 J3MgaW50ZW5kZWQgZm9yIHRyYW5zYWN0aW9uCkBAIC01Mjc0LDYgKzUzMDMsOCBAQCBtYXRjaF9w cmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVy eV9mb3JfbGlzdF9vZl9yb2xlcyk7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXNDUygiXFxkdioiKSkK IAkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2Zfdmlld3MpOwor CWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxcZFYqIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1B X1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3ZhcmlhYmxlcyk7CiAJZWxzZSBpZiAoVGFpbE1hdGNo ZXNDUygiXFxkeCoiKSkKIAkJQ09NUExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl9l eHRlbnNpb25zKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlc0NTKCJcXGRYKiIpKQpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZSBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFr ZWZpbGUKaW5kZXggMTY3ZjkxYTZlMy4uNTA3ZjM4MDgyMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9NYWtlZmlsZQorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlCkBA IC04MSw3ICs4MSw4IEBAIENBVEFMT0dfSEVBREVSUyA6PSBcCiAJcGdfcHVibGljYXRpb25fbmFt ZXNwYWNlLmggXAogCXBnX3B1YmxpY2F0aW9uX3JlbC5oIFwKIAlwZ19zdWJzY3JpcHRpb24uaCBc Ci0JcGdfc3Vic2NyaXB0aW9uX3JlbC5oCisJcGdfc3Vic2NyaXB0aW9uX3JlbC5oIFwKKwlwZ192 YXJpYWJsZS5oCiAKIEdFTkVSQVRFRF9IRUFERVJTIDo9ICQoQ0FUQUxPR19IRUFERVJTOiUuaD0l X2QuaCkKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZCBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKaW5kZXggZjcwZDFkYWJhNS4uNmVlYzc5ZDJl ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZAorKysgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCkBAIC02OSw2ICs2OSw3IEBAIGNhdGFsb2dfaGVh ZGVycyA9IFsKICAgJ3BnX3B1YmxpY2F0aW9uX3JlbC5oJywKICAgJ3BnX3N1YnNjcmlwdGlvbi5o JywKICAgJ3BnX3N1YnNjcmlwdGlvbl9yZWwuaCcsCisgICdwZ192YXJpYWJsZS5oJywKIF0KIAog IyBUaGUgLmRhdCBmaWxlcyB3ZSBuZWVkIGNhbiBqdXN0IGJlIGxpc3RlZCBhbHBoYWJldGljYWxs eS4KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmggYi9zcmMvaW5j bHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCmluZGV4IDhkNDM0ZDQ4ZDUuLmNmZTk2NTE0NzEgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKKysrIGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaApAQCAtOTcsNiArOTcsOCBAQCBleHRlcm4gT2lkCVR5cGVu YW1lR2V0VHlwaWQoY29uc3QgY2hhciAqdHlwbmFtZSk7CiBleHRlcm4gT2lkCVR5cGVuYW1lR2V0 VHlwaWRFeHRlbmRlZChjb25zdCBjaGFyICp0eXBuYW1lLCBib29sIHRlbXBfb2spOwogZXh0ZXJu IGJvb2wgVHlwZUlzVmlzaWJsZShPaWQgdHlwaWQpOwogCitleHRlcm4gYm9vbCBWYXJpYWJsZUlz VmlzaWJsZShPaWQgdmFyaWQpOworCiBleHRlcm4gRnVuY0NhbmRpZGF0ZUxpc3QgRnVuY25hbWVH ZXRDYW5kaWRhdGVzKExpc3QgKm5hbWVzLAogCQkJCQkJCQkJCQkgICBpbnQgbmFyZ3MsIExpc3Qg KmFyZ25hbWVzLAogCQkJCQkJCQkJCQkgICBib29sIGV4cGFuZF92YXJpYWRpYywKQEAgLTE2OSw2 ICsxNzEsMTAgQEAgZXh0ZXJuIFNlYXJjaFBhdGhNYXRjaGVyICpHZXRTZWFyY2hQYXRoTWF0Y2hl cihNZW1vcnlDb250ZXh0IGNvbnRleHQpOwogZXh0ZXJuIFNlYXJjaFBhdGhNYXRjaGVyICpDb3B5 U2VhcmNoUGF0aE1hdGNoZXIoU2VhcmNoUGF0aE1hdGNoZXIgKnBhdGgpOwogZXh0ZXJuIGJvb2wg U2VhcmNoUGF0aE1hdGNoZXNDdXJyZW50RW52aXJvbm1lbnQoU2VhcmNoUGF0aE1hdGNoZXIgKnBh dGgpOwogCitleHRlcm4gTGlzdCAqTmFtZXNGcm9tTGlzdChMaXN0ICpuYW1lcyk7CitleHRlcm4g T2lkCUxvb2t1cFZhcmlhYmxlKGNvbnN0IGNoYXIgKm5zcG5hbWUsIGNvbnN0IGNoYXIgKnZhcm5h bWUsIGJvb2wgbWlzc2luZ19vayk7CitleHRlcm4gT2lkCUxvb2t1cFZhcmlhYmxlRnJvbU5hbWVM aXN0KExpc3QgKm5hbWVzLCBib29sIG1pc3Npbmdfb2spOworCiBleHRlcm4gT2lkCWdldF9jb2xs YXRpb25fb2lkKExpc3QgKmNvbGxuYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAln ZXRfY29udmVyc2lvbl9vaWQoTGlzdCAqY29ubmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVy biBPaWQJRmluZERlZmF1bHRDb252ZXJzaW9uUHJvYyhpbnQzMiBmb3JfZW5jb2RpbmcsIGludDMy IHRvX2VuY29kaW5nKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGVmYXVs dF9hY2wuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wuaAppbmRleCBkMjcy Y2RmMDhiLi41MjlkNTNjNmJiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Rl ZmF1bHRfYWNsLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oCkBA IC02OCw2ICs2OCw3IEBAIE1BS0VfU1lTQ0FDSEUoREVGQUNMUk9MRU5TUE9CSiwgcGdfZGVmYXVs dF9hY2xfcm9sZV9uc3Bfb2JqX2luZGV4LCA4KTsKICNkZWZpbmUgREVGQUNMT0JKX0ZVTkNUSU9O CQknZicgLyogZnVuY3Rpb24gKi8KICNkZWZpbmUgREVGQUNMT0JKX1RZUEUJCQknVCcgLyogdHlw ZSAqLwogI2RlZmluZSBERUZBQ0xPQkpfTkFNRVNQQUNFCQknbicgLyogbmFtZXNwYWNlICovCisj ZGVmaW5lIERFRkFDTE9CSl9WQVJJQUJMRQkJJ1YnIC8qIHZhcmlhYmxlICovCiAKICNlbmRpZgkJ CQkJCQkvKiBFWFBPU0VfVE9fQ0xJRU5UX0NPREUgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQK aW5kZXggMmRjYzJkNDJkYS4uNmVkZTc0MDM2ZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBA IC01Mzk1LDYgKzUzOTUsMjYgQEAKICAgcHJvcmV0dHlwZSA9PiAnYm9vbCcsIHByb2FyZ3R5cGVz ID0+ICdvaWQgb2lkIHRleHQnLAogICBwcm9zcmMgPT4gJ2hhc19sYXJnZW9iamVjdF9wcml2aWxl Z2VfaWRfaWQnIH0sCiAKK3sgb2lkID0+ICc5NjEzJywgZGVzY3IgPT4gJ3VzZXIgcHJpdmlsZWdl IG9uIHNlc3Npb24gdmFyaWFibGUgYnkgdXNlcm5hbWUsIHNlcSBuYW1lJywKKyAgcHJvbmFtZSA9 PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBw cm9yZXR0eXBlID0+ICdib29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ25hbWUgdGV4dCB0ZXh0JywK KyAgcHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfbmFtZV9uYW1lJyB9 LAoreyBvaWQgPT4gJzk2MTQnLCBkZXNjciA9PiAndXNlciBwcml2aWxlZ2Ugb24gc2Vzc2lvbiB2 YXJpYWJsZSBieSB1c2VybmFtZSwgc2VxIG9pZCcsCisgIHByb25hbWUgPT4gJ2hhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAn Ym9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICduYW1lIG9pZCB0ZXh0JywgcHJvc3JjID0+ICdoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfbmFtZV9pZCcgfSwKK3sgb2lkID0+ICc5NjE1Jywg ZGVzY3IgPT4gJ3VzZXIgcHJpdmlsZWdlIG9uIHNlc3Npb24gdmFyaWFibGUgYnkgdXNlciBvaWQs IHNlcSBuYW1lJywKKyAgcHJvbmFtZSA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl JywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdib29sJywKKyAgcHJvYXJndHlw ZXMgPT4gJ29pZCB0ZXh0IHRleHQnLCBwcm9zcmMgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZV9pZF9uYW1lJyB9LAoreyBvaWQgPT4gJzk2MTYnLCBkZXNjciA9PiAndXNlciBwcml2 aWxlZ2Ugb24gc2Vzc2lvbiB2YXJpYWJsZSBieSB1c2VyIG9pZCwgc2VxIG9pZCcsCisgIHByb25h bWUgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ICdz JywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICdvaWQgb2lkIHRleHQn LCBwcm9zcmMgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9pZF9pZCcgfSwKK3sg b2lkID0+ICc5NjE3JywgZGVzY3IgPT4gJ2N1cnJlbnQgdXNlciBwcml2aWxlZ2Ugb24gc2Vzc2lv biB2YXJpYWJsZSBieSBzZXEgbmFtZScsCisgIHByb25hbWUgPT4gJ2hhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcs CisgIHByb2FyZ3R5cGVzID0+ICd0ZXh0IHRleHQnLCBwcm9zcmMgPT4gJ2hhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZV9uYW1lJyB9LAoreyBvaWQgPT4gJzk2MTgnLCBkZXNjciA9PiAnY3Vy cmVudCB1c2VyIHByaXZpbGVnZSBvbiBzZXNzaW9uIHZhcmlhYmxlIGJ5IHNlcSBvaWQnLAorICBw cm9uYW1lID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9 PiAncycsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0eXBlcyA9PiAnb2lkIHRleHQn LCBwcm9zcmMgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9pZCcgfSwKKwogeyBv aWQgPT4gJzMzNTUnLCBkZXNjciA9PiAnSS9PJywKICAgcHJvbmFtZSA9PiAncGdfbmRpc3RpbmN0 X2luJywgcHJvcmV0dHlwZSA9PiAncGdfbmRpc3RpbmN0JywKICAgcHJvYXJndHlwZXMgPT4gJ2Nz dHJpbmcnLCBwcm9zcmMgPT4gJ3BnX25kaXN0aW5jdF9pbicgfSwKQEAgLTY1NzksNiArNjU5OSw5 IEBACiAgIHByb25hbWUgPT4gJ3BnX2NvbGxhdGlvbl9pc192aXNpYmxlJywgcHJvY29zdCA9PiAn MTAnLCBwcm92b2xhdGlsZSA9PiAncycsCiAgIHByb3JldHR5cGUgPT4gJ2Jvb2wnLCBwcm9hcmd0 eXBlcyA9PiAnb2lkJywKICAgcHJvc3JjID0+ICdwZ19jb2xsYXRpb25faXNfdmlzaWJsZScgfSwK K3sgb2lkID0+ICc5MjIxJywgZGVzY3IgPT4gJ2lzIHNlc3Npb24gdmFyaWFibGUgdmlzaWJsZSBp biBzZWFyY2ggcGF0aD8nLAorICBwcm9uYW1lID0+ICdwZ192YXJpYWJsZV9pc192aXNpYmxlJywg cHJvY29zdCA9PiAnMTAnLCBwcm92b2xhdGlsZSA9PiAncycsCisgIHByb3JldHR5cGUgPT4gJ2Jv b2wnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywgcHJvc3JjID0+ICdwZ192YXJpYWJsZV9pc192aXNp YmxlJyB9LAogCiB7IG9pZCA9PiAnMjg1NCcsIGRlc2NyID0+ICdnZXQgT0lEIG9mIGN1cnJlbnQg c2Vzc2lvblwncyB0ZW1wIHNjaGVtYSwgaWYgYW55JywKICAgcHJvbmFtZSA9PiAncGdfbXlfdGVt cF9zY2hlbWEnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3BhcmFsbGVsID0+ICdyJywKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfdmFyaWFibGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw Li4zODEwZTA0MGYyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192 YXJpYWJsZS5oCkBAIC0wLDAgKzEsODEgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBn X3ZhcmlhYmxlLmgKKyAqCSAgZGVmaW5pdGlvbiBvZiBzZXNzaW9uIHZhcmlhYmxlcyBzeXN0ZW0g Y2F0YWxvZyAocGdfdmFyaWFibGVzKQorICoKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRp b25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxp Zm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisgKgorICog Tk9URVMKKyAqCSAgVGhlIENhdGFsb2cucG0gbW9kdWxlIHJlYWRzIHRoaXMgZmlsZSBhbmQgZGVy aXZlcyBzY2hlbWEKKyAqCSAgaW5mb3JtYXRpb24uCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg Ki8KKyNpZm5kZWYgUEdfVkFSSUFCTEVfSAorI2RlZmluZSBQR19WQVJJQUJMRV9ICisKKyNpbmNs dWRlICJjYXRhbG9nL2dlbmJraS5oIgorI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWRkcmVzcy5o IgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGVfZC5oIgorI2luY2x1ZGUgInV0aWxzL2Fj bC5oIgorCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJcGdfdmFyaWFibGUgZGVmaW5pdGlvbi4g IGNwcCB0dXJucyB0aGlzIGludG8KKyAqCQl0eXBlZGVmIHN0cnVjdCBGb3JtRGF0YV9wZ192YXJp YWJsZQorICogLS0tLS0tLS0tLS0tLS0tLQorICovCitDQVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIs VmFyaWFibGVSZWxhdGlvbklkKQoreworCU9pZAkJCW9pZDsJCQkvKiBvaWQgKi8KKworCS8qIE9J RCBvZiBlbnRyeSBpbiBwZ190eXBlIGZvciB2YXJpYWJsZSdzIHR5cGUgKi8KKwlPaWQJCQl2YXJ0 eXBlIEJLSV9MT09LVVAocGdfdHlwZSk7CisKKwkvKiB2YXJpYWJsZSBuYW1lICovCisJTmFtZURh dGEJdmFybmFtZTsKKworCS8qIE9JRCBvZiBuYW1lc3BhY2UgY29udGFpbmluZyB2YXJpYWJsZSBj bGFzcyAqLworCU9pZAkJCXZhcm5hbWVzcGFjZSBCS0lfTE9PS1VQKHBnX25hbWVzcGFjZSk7CisK KwkvKiB2YXJpYWJsZSBvd25lciAqLworCU9pZAkJCXZhcm93bmVyIEJLSV9MT09LVVAocGdfYXV0 aGlkKTsKKworCS8qIHR5cG1vZCBmb3IgdmFyaWFibGUncyB0eXBlICovCisJaW50MzIJCXZhcnR5 cG1vZCBCS0lfREVGQVVMVCgtMSk7CisKKwkvKiB2YXJpYWJsZSBjb2xsYXRpb24gKi8KKwlPaWQJ CQl2YXJjb2xsYXRpb24gQktJX0RFRkFVTFQoMCkgQktJX0xPT0tVUF9PUFQocGdfY29sbGF0aW9u KTsKKworCisjaWZkZWYgQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRz IHN0YXJ0IGhlcmUgKi8KKworCS8qIGFjY2VzcyBwZXJtaXNzaW9ucyAqLworCWFjbGl0ZW0JCXZh cmFjbFsxXSBCS0lfREVGQVVMVChfbnVsbF8pOworCisjZW5kaWYKK30gRm9ybURhdGFfcGdfdmFy aWFibGU7CisKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlGb3JtX3BnX3ZhcmlhYmxlIGNvcnJl c3BvbmRzIHRvIGEgcG9pbnRlciB0byBhIHR1cGxlIHdpdGgKKyAqCQl0aGUgZm9ybWF0IG9mIHRo ZSBwZ192YXJpYWJsZSByZWxhdGlvbi4KKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRl ZiBGb3JtRGF0YV9wZ192YXJpYWJsZSAqRm9ybV9wZ192YXJpYWJsZTsKKworREVDTEFSRV9UT0FT VChwZ192YXJpYWJsZSwgOTIyMywgOTIyNCk7CisKK0RFQ0xBUkVfVU5JUVVFX0lOREVYX1BLRVko cGdfdmFyaWFibGVfb2lkX2luZGV4LCA5MjI1LCBWYXJpYWJsZU9pZEluZGV4SWQsIHBnX3Zhcmlh YmxlLCBidHJlZShvaWQgb2lkX29wcykpOworREVDTEFSRV9VTklRVUVfSU5ERVgocGdfdmFyaWFi bGVfdmFybmFtZV9uc3BfaW5kZXgsIDkyMjYsIFZhcmlhYmxlTmFtZU5zcEluZGV4SWQsIHBnX3Zh cmlhYmxlLCBidHJlZSh2YXJuYW1lIG5hbWVfb3BzLCB2YXJuYW1lc3BhY2Ugb2lkX29wcykpOwor CitleHRlcm4gT2JqZWN0QWRkcmVzcyBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUs CisJCQkJCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCk7CitleHRlcm4gdm9pZCBEcm9w VmFyaWFibGVCeUlkKE9pZCB2YXJpZCk7CisKK01BS0VfU1lTQ0FDSEUoVkFSSUFCTEVOQU1FTlNQ LCBwZ192YXJpYWJsZV92YXJuYW1lX25zcF9pbmRleCwgOCk7CitNQUtFX1NZU0NBQ0hFKFZBUklB QkxFT0lELCBwZ192YXJpYWJsZV9vaWRfaW5kZXgsIDgpOworCisjZW5kaWYJCQkJCQkJLyogUEdf VkFSSUFCTEVfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o IGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDBmOTQ2MjQ5M2UuLjBlMDgy OTZiNDMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9z cmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTIzMTYsNiArMjMxNiw3IEBAIHR5cGVk ZWYgZW51bSBPYmplY3RUeXBlCiAJT0JKRUNUX1RTVEVNUExBVEUsCiAJT0JKRUNUX1RZUEUsCiAJ T0JKRUNUX1VTRVJfTUFQUElORywKKwlPQkpFQ1RfVkFSSUFCTEUsCiAJT0JKRUNUX1ZJRVcsCiB9 IE9iamVjdFR5cGU7CiAKQEAgLTM0NDcsNiArMzQ0OCwyMSBAQCB0eXBlZGVmIHN0cnVjdCBBbHRl clN0YXRzU3RtdAogCWJvb2wJCW1pc3Npbmdfb2s7CQkvKiBza2lwIGVycm9yIGlmIHN0YXRpc3Rp Y3Mgb2JqZWN0IGlzIG1pc3NpbmcgKi8KIH0gQWx0ZXJTdGF0c1N0bXQ7CiAKKworLyogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICoJCXtDcmVhdGV8QWx0ZXJ9IFZBUklBQkxFIFN0YXRlbWVudAor ICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBDcmVhdGVTZXNz aW9uVmFyU3RtdAoreworCU5vZGVUYWcJCXR5cGU7CisJUmFuZ2VWYXIgICAqdmFyaWFibGU7CQkv KiB0aGUgdmFyaWFibGUgdG8gY3JlYXRlICovCisJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkvKiB0 aGUgdHlwZSBvZiB2YXJpYWJsZSAqLworCUNvbGxhdGVDbGF1c2UgKmNvbGxDbGF1c2U7CisJYm9v bAkJaWZfbm90X2V4aXN0czsJLyogZG8gbm90aGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cyAqLwor fSBDcmVhdGVTZXNzaW9uVmFyU3RtdDsKKworCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAg KgkJQ3JlYXRlIEZ1bmN0aW9uIFN0YXRlbWVudAogICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFy c2VyL2t3bGlzdC5oCmluZGV4IDg5OWQ2NGFkNTUuLjU2NjcwZTY1YjEgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0 LmgKQEAgLTQ4NCw2ICs0ODQsOCBAQCBQR19LRVlXT1JEKCJ2YWxpZGF0b3IiLCBWQUxJREFUT1Is IFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhbHVlIiwgVkFM VUVfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFsdWVz IiwgVkFMVUVTLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFy Y2hhciIsIFZBUkNIQVIsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JE KCJ2YXJpYWJsZSIsIFZBUklBQkxFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQ R19LRVlXT1JEKCJ2YXJpYWJsZXMiLCBWQVJJQUJMRVMsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFS RV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhcmlhZGljIiwgVkFSSUFESUMsIFJFU0VSVkVEX0tFWVdP UkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJ5aW5nIiwgVkFSWUlORywgVU5SRVNFUlZF RF9LRVlXT1JELCBBU19MQUJFTCkKIFBHX0tFWVdPUkQoInZlcmJvc2UiLCBWRVJCT1NFLCBUWVBF X0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv dGNvcC9jbWR0YWdsaXN0LmggYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRleCA3 ZmRjZWM2ZGQ5Li45NDY1ZGY3YjJmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRh Z2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaApAQCAtNjgsNiArNjgs NyBAQCBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1RSQU5TRk9STSwgIkFMVEVSIFRSQU5TRk9STSIs IHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVFJJR0dFUiwgIkFM VEVSIFRSSUdHRVIiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVS X1RZUEUsICJBTFRFUiBUWVBFIiwgdHJ1ZSwgdHJ1ZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFH X0FMVEVSX1VTRVJfTUFQUElORywgIkFMVEVSIFVTRVIgTUFQUElORyIsIHRydWUsIGZhbHNlLCBm YWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfQUxURVJfVkFSSUFCTEUsICJBTFRFUiBWQVJJQUJMRSIs IHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVklFVywgIkFMVEVS IFZJRVciLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FOQUxZWkUsICJB TkFMWVpFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQkVHSU4sICJC RUdJTiIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCkBAIC0xMjMsNiArMTI0LDcgQEAgUEdfQ01EVEFH KENNRFRBR19DUkVBVEVfVFJBTlNGT1JNLCAiQ1JFQVRFIFRSQU5TRk9STSIsIHRydWUsIGZhbHNl LCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1RSSUdHRVIsICJDUkVBVEUgVFJJR0dF UiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1RZUEUsICJD UkVBVEUgVFlQRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRF X1VTRVJfTUFQUElORywgIkNSRUFURSBVU0VSIE1BUFBJTkciLCB0cnVlLCBmYWxzZSwgZmFsc2Up CitQR19DTURUQUcoQ01EVEFHX0NSRUFURV9WQVJJQUJMRSwgIkNSRUFURSBWQVJJQUJMRSIsIHRy dWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1ZJRVcsICJDUkVBVEUg VklFVyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfREVBTExPQ0FURSwg IkRFQUxMT0NBVEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ERUFM TE9DQVRFX0FMTCwgIkRFQUxMT0NBVEUgQUxMIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKQEAgLTE3 NSw2ICsxNzcsNyBAQCBQR19DTURUQUcoQ01EVEFHX0RST1BfVFJBTlNGT1JNLCAiRFJPUCBUUkFO U0ZPUk0iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfVFJJR0dF UiwgIkRST1AgVFJJR0dFUiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdf RFJPUF9UWVBFLCAiRFJPUCBUWVBFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENN RFRBR19EUk9QX1VTRVJfTUFQUElORywgIkRST1AgVVNFUiBNQVBQSU5HIiwgdHJ1ZSwgZmFsc2Us IGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19EUk9QX1ZBUklBQkxFLCAiRFJPUCBWQVJJQUJMRSIs IHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9WSUVXLCAiRFJPUCBW SUVXIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19FWEVDVVRFLCAiRVhF Q1VURSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0VYUExBSU4sICJF WFBMQUlOIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0 aWxzL2FjbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgKaW5kZXggNzMxZDg0YjJhOS4uOThh YWI5ODIyOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvYWNsLmgKKysrIGIvc3JjL2lu Y2x1ZGUvdXRpbHMvYWNsLmgKQEAgLTE2OSw2ICsxNjksNyBAQCB0eXBlZGVmIHN0cnVjdCBBcnJh eVR5cGUgQWNsOwogI2RlZmluZSBBQ0xfQUxMX1JJR0hUU19TQ0hFTUEJCShBQ0xfVVNBR0V8QUNM X0NSRUFURSkKICNkZWZpbmUgQUNMX0FMTF9SSUdIVFNfVEFCTEVTUEFDRQkoQUNMX0NSRUFURSkK ICNkZWZpbmUgQUNMX0FMTF9SSUdIVFNfVFlQRQkJCShBQ0xfVVNBR0UpCisjZGVmaW5lIEFDTF9B TExfUklHSFRTX1ZBUklBQkxFCQkoQUNMX1NFTEVDVHxBQ0xfVVBEQVRFKQogCiAvKiBvcGVyYXRp b24gY29kZXMgZm9yIHBnXypfYWNsbWFzayAqLwogdHlwZWRlZiBlbnVtCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNo ZS5oCmluZGV4IDIwNDQ2ZjZmODMuLjhhMzY4NGU3MTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3V0aWxzL2xzeXNjYWNoZS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCkBA IC0xMzQsNiArMTM0LDcgQEAgZXh0ZXJuIGNoYXIgZ2V0X2Z1bmNfcHJva2luZChPaWQgZnVuY2lk KTsKIGV4dGVybiBib29sIGdldF9mdW5jX2xlYWtwcm9vZihPaWQgZnVuY2lkKTsKIGV4dGVybiBS ZWdQcm9jZWR1cmUgZ2V0X2Z1bmNfc3VwcG9ydChPaWQgZnVuY2lkKTsKIGV4dGVybiBPaWQJZ2V0 X3JlbG5hbWVfcmVsaWQoY29uc3QgY2hhciAqcmVsbmFtZSwgT2lkIHJlbG5hbWVzcGFjZSk7Citl eHRlcm4gT2lkCWdldF92YXJuYW1lX3ZhcmlkKGNvbnN0IGNoYXIgKnZhcm5hbWUsIE9pZCB2YXJu YW1lc3BhY2UpOwogZXh0ZXJuIGNoYXIgKmdldF9yZWxfbmFtZShPaWQgcmVsaWQpOwogZXh0ZXJu IE9pZAlnZXRfcmVsX25hbWVzcGFjZShPaWQgcmVsaWQpOwogZXh0ZXJuIE9pZAlnZXRfcmVsX3R5 cGVfaWQoT2lkIHJlbGlkKTsKQEAgLTIwNiw2ICsyMDcsMTQgQEAgZXh0ZXJuIGNoYXIgKmdldF9w dWJsaWNhdGlvbl9uYW1lKE9pZCBwdWJpZCwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJ Z2V0X3N1YnNjcmlwdGlvbl9vaWQoY29uc3QgY2hhciAqc3VibmFtZSwgYm9vbCBtaXNzaW5nX29r KTsKIGV4dGVybiBjaGFyICpnZXRfc3Vic2NyaXB0aW9uX25hbWUoT2lkIHN1YmlkLCBib29sIG1p c3Npbmdfb2spOwogCitleHRlcm4gY2hhciAqZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShPaWQg dmFyaWQpOworZXh0ZXJuIE9pZAlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UoT2lkIHZh cmlkKTsKK2V4dGVybiBPaWQJZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZShPaWQgdmFyaWQpOwor ZXh0ZXJuIHZvaWQgZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKE9pZCB2 YXJpZCwKKwkJCQkJCQkJCQkJCQlPaWQgKnR5cGlkLAorCQkJCQkJCQkJCQkJCWludDMyICp0eXBt b2QsCisJCQkJCQkJCQkJCQkJT2lkICpjb2xsaWQpOworCiAjZGVmaW5lIHR5cGVfaXNfYXJyYXko dHlwaWQpICAoZ2V0X2VsZW1lbnRfdHlwZSh0eXBpZCkgIT0gSW52YWxpZE9pZCkKIC8qIHR5cGVf aXNfYXJyYXlfZG9tYWluIGFjY2VwdHMgYm90aCBwbGFpbiBhcnJheXMgYW5kIGRvbWFpbnMgb3Zl ciBhcnJheXMgKi8KICNkZWZpbmUgdHlwZV9pc19hcnJheV9kb21haW4odHlwaWQpICAoZ2V0X2Jh c2VfZWxlbWVudF90eXBlKHR5cGlkKSAhPSBJbnZhbGlkT2lkKQpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9kZXBlbmRlbmN5Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvZGVwZW5kZW5jeS5vdXQKaW5kZXggNzRkOWZmMjk5OC4uYzMzNmY2N2E1OSAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9kZXBlbmRlbmN5Lm91dAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0CkBAIC0xNTEsMyArMTUxLDIwIEBA IG93bmVyIG9mIHR5cGUgZGVwdGVzdF90CiBEUk9QIE9XTkVEIEJZIHJlZ3Jlc3NfZGVwX3VzZXIy LCByZWdyZXNzX2RlcF91c2VyMDsKIERST1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMjsKIERST1Ag VVNFUiByZWdyZXNzX2RlcF91c2VyMDsKKy0tIGRlcGVuZGVuY3kgb24gdHlwZQorQ1JFQVRFIERP TUFJTiB2YXJkb21haW4gQVMgaW50OworQ1JFQVRFIFRZUEUgdmFydHlwZSBBUyAoYSBpbnQsIGIg aW50LCBjIHZhcmRvbWFpbik7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJ0eXBlOworLS0g c2hvdWxkIGZhaWwKK0RST1AgRE9NQUlOIHZhcmRvbWFpbjsKK0VSUk9SOiAgY2Fubm90IGRyb3Ag dHlwZSB2YXJkb21haW4gYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlM OiAgY29sdW1uIGMgb2YgY29tcG9zaXRlIHR5cGUgdmFydHlwZSBkZXBlbmRzIG9uIHR5cGUgdmFy ZG9tYWluCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50 IG9iamVjdHMgdG9vLgorRFJPUCBUWVBFIHZhcnR5cGU7CitFUlJPUjogIGNhbm5vdCBkcm9wIHR5 cGUgdmFydHlwZSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBz ZXNzaW9uIHZhcmlhYmxlIHZhcjEgZGVwZW5kcyBvbiB0eXBlIHZhcnR5cGUKK0hJTlQ6ICBVc2Ug RFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCistLSBj bGVhbiB1cAorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUWVBFIHZhcnR5cGU7CitEUk9QIERP TUFJTiB2YXJkb21haW47CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29p ZGpvaW5zLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9pbnMub3V0CmluZGV4 IDIxNWViODk5YmUuLmQ5OTUzMzIxNDAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvb2lkam9pbnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb2lkam9p bnMub3V0CkBAIC0yNjYsMyArMjY2LDcgQEAgTk9USUNFOiAgY2hlY2tpbmcgcGdfc3Vic2NyaXB0 aW9uIHtzdWJkYmlkfSA9PiBwZ19kYXRhYmFzZSB7b2lkfQogTk9USUNFOiAgY2hlY2tpbmcgcGdf c3Vic2NyaXB0aW9uIHtzdWJvd25lcn0gPT4gcGdfYXV0aGlkIHtvaWR9CiBOT1RJQ0U6ICBjaGVj a2luZyBwZ19zdWJzY3JpcHRpb25fcmVsIHtzcnN1YmlkfSA9PiBwZ19zdWJzY3JpcHRpb24ge29p ZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlvbl9yZWwge3NycmVsaWR9ID0+IHBn X2NsYXNzIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ192YXJpYWJsZSB7dmFydHlwZX0gPT4g cGdfdHlwZSB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFibGUge3Zhcm5hbWVzcGFj ZX0gPT4gcGdfbmFtZXNwYWNlIHtvaWR9CitOT1RJQ0U6ICBjaGVja2luZyBwZ192YXJpYWJsZSB7 dmFyb3duZXJ9ID0+IHBnX2F1dGhpZCB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFi bGUge3ZhcmNvbGxhdGlvbn0gPT4gcGdfY29sbGF0aW9uIHtvaWR9CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wc3FsLm91dAppbmRleCAzNmRjMzFjMTZjLi44OGUyMTE5NDcxIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHNxbC5vdXQKQEAgLTU5MzAsNiArNTkzMCwzMCBAQCBDT01NSVQ7CiAjIGZpbmFsIE9O X0VSUk9SX1JPTExCQUNLOiBvZmYKIERST1AgVEFCTEUgYmxhOwogRFJPUCBGVU5DVElPTiBwc3Fs X2Vycm9yOworLS0gc2Vzc2lvbiB2YXJpYWJsZSB0ZXN0CitDUkVBVEUgUk9MRSByZWdyZXNzX3Zh cmlhYmxlX293bmVyOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXIgQ09MTEFURSAiQyI7CitcZFYrIHZhcjEKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMK KyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAg IE93bmVyICAgICAgICAgIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKKy0tLS0t LS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2 YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293 bmVyIHwgICAgICAgICAgICAgICAgICAgfCAKKygxIHJvdykKKworR1JBTlQgU0VMRUNUIE9OIFZB UklBQkxFIHZhcjEgVE8gUFVCTElDOworQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21l IGRlc2NyaXB0aW9uJzsKK1xkVisgdmFyMQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVt YSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIg ICAgICAgICAgfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAg ICAgfCAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIHB1 YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFy aWFibGVfb3duZXIgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVf b3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCisgICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAg ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFy aWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAorKDEgcm93KQorCitEUk9QIFZB UklBQkxFIHZhcjE7CitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFy aWFibGVfb3duZXI7CiAtLSBjaGVjayBkZXNjcmliaW5nIGludmFsaWQgbXVsdGlwYXJ0IG5hbWVz CiBcZEEgcmVncmVzc2lvbi5oZWFwCiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkg ZG90dGVkIG5hbWVzKTogcmVncmVzc2lvbi5oZWFwCkBAIC02MTUxLDYgKzYxNzUsMTIgQEAgY3Jv c3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiBub25lc3VjaC5wdWJs aWMuZnVuY19kZXBzX3N0YXQKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0 ZWQgbmFtZXMpOiByZWdyZXNzaW9uLm15ZXZ0CiBcZHkgbm9uZXN1Y2gubXlldnQKIGltcHJvcGVy IHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiBub25lc3VjaC5teWV2dAor XGRWIGhvc3QucmVncmVzc2lvbi5wdWJsaWMudmFyCitpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAo dG9vIG1hbnkgZG90dGVkIG5hbWVzKTogaG9zdC5yZWdyZXNzaW9uLnB1YmxpYy52YXIKK1xkViBy ZWdyZXNzaW9ufG15ZGIucHVibGljLnZhcgorY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUg bm90IGltcGxlbWVudGVkOiByZWdyZXNzaW9ufG15ZGIucHVibGljLnZhcgorXGRWIG5vbmVzdWNo LnB1YmxpYy52YXIKK2Nyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRl ZDogbm9uZXN1Y2gucHVibGljLnZhcgogLS0gY2hlY2sgdGhhdCBkb3RzIHdpdGhpbiBxdW90ZWQg bmFtZSBzZWdtZW50cyBhcmUgbm90IGNvdW50ZWQKIFxkQSAibm8uc3VjaC5hY2Nlc3MubWV0aG9k IgogTGlzdCBvZiBhY2Nlc3MgbWV0aG9kcwpAQCAtNjM4NSw2ICs2NDE1LDEyIEBAIExpc3Qgb2Yg c2NoZW1hcwogLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0KICgwIHJvd3MpCiAKK1xkViAibm8uc3VjaC52YXJpYWJsZSIKKyAgICAgICAgICAgIExpc3Qg b2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAK Ky0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorKDAgcm93cykKKwog LS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZEEgIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5hY2Nlc3MubWV0aG9kIgogaW1wcm9wZXIgcXVhbGlmaWVk IG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gu YWNjZXNzLm1ldGhvZCIKQEAgLTY1NTQsNiArNjU5MCwxMiBAQCBpbXByb3BlciBxdWFsaWZpZWQg bmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5p bnN0YQogCiBcZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgogaW1w cm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNj aGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKK1xkViAibm8uc3VjaC5zY2hlbWEiLiJuby5z dWNoLnZhcmlhYmxlIgorICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBO YW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tCisoMCByb3dzKQorCiAtLSBhZ2FpbiwgYnV0IHdpdGggY3VycmVu dCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkdCByZWdyZXNz aW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRpb24iCiAgICAgICBMaXN0 IG9mIHJlbGF0aW9ucwpAQCAtNjY4Nyw2ICs2NzI5LDEyIEBAIExpc3Qgb2YgdGV4dCBzZWFyY2gg dGVtcGxhdGVzCiAtLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tKy0tLS0tCiAoMCByb3dzKQogCitcZFYgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLnZhcmlhYmxlIgorICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBT Y2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAorLS0tLS0tLS0rLS0tLS0t Ky0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tCisoMCByb3dzKQorCiAtLSBhZ2FpbiwgYnV0IHdp dGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGR0 ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxlLnJlbGF0 aW9uIgogY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAibm8u c3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlvbiIK QEAgLTY3MzQsNiArNjc4Miw4IEBAIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBp bXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtCiBjcm9zcy1kYXRh YmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4i bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmRhdGEudHlwZSIKIFxkWCAibm8uc3VjaC5kYXRhYmFz ZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgogY3Jvc3Mt ZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAibm8uc3VjaC5kYXRhYmFz ZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgorXGRWICJu by5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgorY3Jv c3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAibm8uc3VjaC5kYXRh YmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKIC0tIGNoZWNrIFxkcmcg YW5kIFxkdQogQ1JFQVRFIFJPTEUgcmVncmVzc19kdV9yb2xlMDsKIENSRUFURSBST0xFIHJlZ3Jl c3NfZHVfcm9sZTE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXMub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjkyMDFkYTRl MmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzLm91dApAQCAtMCwwICsxLDM1NSBAQAorQ1JFQVRFIFJPTEUgcmVncmVzc192YXJp YWJsZV9vd25lcjsKK1NFVCBsb2dfc3RhdGVtZW50IFRPIGRkbDsKKy0tIHNob3VsZCBiZSBvawor Q1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworLS0gc2hvdWxkIGZhaWwsIHBzZXVkb3R5cGVz IGFyZSBub3QgYWxsb3dlZAorQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgYW55ZWxlbWVudDsKK0VS Uk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgcHNldWRvLXR5cGUgYW55ZWxlbWVudAor LS0gc2hvdWxkIGJlIG9rLCBkbyBub3RoaW5nCitEUk9QIFZBUklBQkxFIElGIEVYSVNUUyB2YXIy OworTk9USUNFOiAgc2Vzc2lvbiB2YXJpYWJsZSAidmFyMiIgZG9lcyBub3QgZXhpc3QsIHNraXBw aW5nCistLSBkbyBub3RoaW5nCitDUkVBVEUgVkFSSUFCTEUgSUYgTk9UIEVYSVNUUyB2YXIxIEFT IGludDsKK05PVElDRTogIHNlc3Npb24gdmFyaWFibGUgInZhcjEiIGFscmVhZHkgZXhpc3RzLCBz a2lwcGluZworLS0gc2hvdWxkIGZhaWwKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0VS Uk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAidmFyMSIgYWxyZWFkeSBleGlzdHMKKy0tIHNob3VsZCBi ZSBvaworRFJPUCBWQVJJQUJMRSBJRiBFWElTVFMgdmFyMTsKKy0tIHRoZSB2YXJpYWJsZSBjYW4g dXNlIGNvbXBvc2l0ZSB0eXBlcworQ1JFQVRFIFRBQkxFIHQxIChhIGludCwgYiBpbnQpOworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgdDE7CistLSBzaG91bGQgZmFpbAorRFJPUCBUQUJMRSB0MTsK K0VSUk9SOiAgY2Fubm90IGRyb3AgdGFibGUgdDEgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVu ZCBvbiBpdAorREVUQUlMOiAgc2Vzc2lvbiB2YXJpYWJsZSB2YXIxIGRlcGVuZHMgb24gdHlwZSB0 MQorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmpl Y3RzIHRvby4KKy0tIHNob3VsZCBiZSBvaworQUxURVIgVEFCTEUgdDEgQUREIENPTFVNTiBjIGlu dDsKKy0tIHNob3VsZCBmYWlsCitBTFRFUiBUQUJMRSB0MSBBTFRFUiBDT0xVTU4gYiBUWVBFIG51 bWVyaWM7CitFUlJPUjogIGNhbm5vdCBhbHRlciB0YWJsZSAidDEiIGJlY2F1c2Ugc2Vzc2lvbiB2 YXJpYWJsZSAicHVibGljLnZhcjEiIHVzZXMgaXQKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1Ag VEFCTEUgdDE7CitDUkVBVEUgVFlQRSB0MSBBUyAoYSBpbnQsIGIgaW50KTsKK0NSRUFURSBWQVJJ QUJMRSB2YXIxIEFTIHQxOworLS0gc2hvdWxkIGZhaWwKK0RST1AgVFlQRSB0MTsKK0VSUk9SOiAg Y2Fubm90IGRyb3AgdHlwZSB0MSBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitE RVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgZGVwZW5kcyBvbiB0eXBlIHQxCitISU5UOiAg VXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgor LS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIEFERCBBVFRSSUJVVEUgYyBpbnQ7CistLSBz aG91bGQgZmFpbAorQUxURVIgVFlQRSB0MSBBTFRFUiBBVFRSSUJVVEUgYiAgVFlQRSBudW1lcmlj OworRVJST1I6ICBjYW5ub3QgYWx0ZXIgdHlwZSAidDEiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJs ZSAicHVibGljLnZhcjEiIHVzZXMgaXQKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVFlQRSB0 MTsKK1NFVCBsb2dfc3RhdGVtZW50IFRPIGRlZmF1bHQ7CitDUkVBVEUgRE9NQUlOIHRlc3R2YXJf ZG9tYWluIEFTIGludDsKK0NSRUFURSBUWVBFIHRlc3R2YXJfdHlwZSBBUyAoYSB0ZXN0dmFyX2Rv bWFpbik7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0ZXN0dmFyX2RvbWFpbjsKKy0tIHNob3Vs ZCBmYWlsCitBTFRFUiBET01BSU4gdGVzdHZhcl9kb21haW4gQUREIENIRUNLKHZhbHVlIDw+IDEw MCk7CitFUlJPUjogIGNhbm5vdCBhbHRlciBkb21haW4gInRlc3R2YXJfZG9tYWluIiBiZWNhdXNl IHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiB1c2VzIGl0CitEUk9QIFZBUklBQkxFIHZh cjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0ZXN0dmFyX3R5cGU7CistLSBzaG91bGQgZmFp bAorQUxURVIgRE9NQUlOIHRlc3R2YXJfZG9tYWluIEFERCBDSEVDSyh2YWx1ZSA8PiAxMDApOwor RVJST1I6ICBjYW5ub3QgYWx0ZXIgdHlwZSAidGVzdHZhcl9kb21haW4iIGJlY2F1c2Ugc2Vzc2lv biB2YXJpYWJsZSAicHVibGljLnZhcjEiIHVzZXMgaXQKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0t IHNob3VsZCBiZSBvaworQUxURVIgRE9NQUlOIHRlc3R2YXJfZG9tYWluIEFERCBDSEVDSyh2YWx1 ZSA8PiAxMDApOworRFJPUCBUWVBFIHRlc3R2YXJfdHlwZTsKK0RST1AgVFlQRSB0ZXN0dmFyX2Rv bWFpbjsKKy0tIGNoZWNrIGV2ZW50IHRyaWdnZXIgc3VwcG9ydAorQ1JFQVRFIE9SIFJFUExBQ0Ug RlVOQ1RJT04gc3Zhcl9ldmVudF90cmlnZ2VyX3JlcG9ydF9kcm9wcGVkKCkKK1JFVFVSTlMgZXZl bnRfdHJpZ2dlcgorQVMgJCQKK0RFQ0xBUkUgciByZWNvcmQ7CitCRUdJTgorICBGT1IgciBJTiBT RUxFQ1QgKiBmcm9tIHBnX2V2ZW50X3RyaWdnZXJfZHJvcHBlZF9vYmplY3RzKCkKKyAgTE9PUAor ICAgIENPTlRJTlVFIFdIRU4gTk9UIHIubm9ybWFsIEFORCBOT1Qgci5vcmlnaW5hbDsKKworICAg IFJBSVNFIE5PVElDRQorICAgICAgICdOT1JNQUw6IG9yaWc9JSBub3JtYWw9JSBpc3RlbXA9JSB0 eXBlPSUgaWRlbnRpdHk9JSBuYW1lPSUgYXJncz0lJywKKyAgICAgICByLm9yaWdpbmFsLCByLm5v cm1hbCwgci5pc190ZW1wb3JhcnksIHIub2JqZWN0X3R5cGUsCisgICAgICAgci5vYmplY3RfaWRl bnRpdHksIHIuYWRkcmVzc19uYW1lcywgci5hZGRyZXNzX2FyZ3M7CisgIEVORCBMT09QOworRU5E OworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBFVkVOVCBUUklHR0VSIHN2YXJfcmVncmVz c19ldmVudF90cmlnZ2VyX3JlcG9ydF9kcm9wcGVkIE9OIHNxbF9kcm9wCisgIFdIRU4gVEFHIElO ICgnRFJPUCBWQVJJQUJMRScpCisgIEVYRUNVVEUgUFJPQ0VEVVJFIHN2YXJfZXZlbnRfdHJpZ2dl cl9yZXBvcnRfZHJvcHBlZCgpOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworRFJPUCBW QVJJQUJMRSB2YXIxOworTk9USUNFOiAgTk9STUFMOiBvcmlnPXQgbm9ybWFsPWYgaXN0ZW1wPWYg dHlwZT1zZXNzaW9uIHZhcmlhYmxlIGlkZW50aXR5PXB1YmxpYy52YXIxIG5hbWU9e3B1YmxpYyx2 YXIxfSBhcmdzPXt9CitEUk9QIEVWRU5UIFRSSUdHRVIgc3Zhcl9yZWdyZXNzX2V2ZW50X3RyaWdn ZXJfcmVwb3J0X2Ryb3BwZWQ7CistLSBjaGVjayBjb21tZW50IG9uIHZhcmlhYmxlCitDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUg dmFyaWFibGUgY29tbWVudCc7CitTRUxFQ1QgcGdfY2F0YWxvZy5vYmpfZGVzY3JpcHRpb24ob2lk LCAncGdfdmFyaWFibGUnKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7 CisgICAgb2JqX2Rlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBzb21l IHZhcmlhYmxlIGNvbW1lbnQKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0tIGNo ZWNrIGFjY2VzcyByaWdodHMgYW5kIHN1cHBvcnRlZCBBTFRFUgorQ1JFQVRFIFNDSEVNQSBzdmFy dGVzdDsKK0dSQU5UIEFMTCBPTiBTQ0hFTUEgc3ZhcnRlc3QgVE8gcmVncmVzc192YXJpYWJsZV9v d25lcjsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIGludDsKK0NSRUFURSBST0xF IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHN2YXJ0 ZXN0LnZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yZWFkZXI7CitSRVZPS0UgQUxMIE9OIFZBUklB QkxFIHN2YXJ0ZXN0LnZhcjEgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKK0FMVEVSIFZB UklBQkxFIHN2YXJ0ZXN0LnZhcjEgT1dORVIgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0FM VEVSIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgUkVOQU1FIFRPIHZhcnh4OworQUxURVIgVkFSSUFC TEUgc3ZhcnRlc3QudmFyeHggU0VUIFNDSEVNQSBwdWJsaWM7CitEUk9QIFZBUklBQkxFIHB1Ymxp Yy52YXJ4eDsKK0FMVEVSIERFRkFVTFQgUFJJVklMRUdFUworICAgRk9SIFJPTEUgcmVncmVzc192 YXJpYWJsZV9vd25lcgorICAgSU4gU0NIRU1BIHN2YXJ0ZXN0CisgICBHUkFOVCBTRUxFQ1QgT04g VkFSSUFCTEVTIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworLS0gY3JlYXRpbmcgdmFyaWFi bGUgd2l0aCBkZWZhdWx0IHByaXZpbGVnZXMKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CitTRVQgUk9MRSBU TyBERUZBVUxUOworXGRWKyBzdmFydGVzdC52YXIxCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgIFNjaGVt YSAgfCBOYW1lIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAg fCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCBEZXNj cmlwdGlvbiAKKy0tLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHN2YXJ0ZXN0IHwgdmFyMSB8IGludGVnZXIgfCAg ICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgcmVncmVzc192YXJpYWJsZV9vd25l cj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgCisgICAgICAgICAgfCAgICAgIHwgICAgICAg ICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxl X3JlYWRlcj1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAKKygxIHJvdykKKworRFJPUCBWQVJJ QUJMRSBzdmFydGVzdC52YXIxOworRFJPUCBTQ0hFTUEgc3ZhcnRlc3Q7CitEUk9QIFJPTEUgcmVn cmVzc192YXJpYWJsZV9yZWFkZXI7CistLSBjaGVjayBXSVRIIEdSQU5UIE9QVElPTgorQ1JFQVRF IFJPTEUgcmVncmVzc192YXJpYWJsZV9yMTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVf cjI7CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgaW50OworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc192 YXJpYWJsZV9yMSBXSVRIIEdSQU5UIE9QVElPTjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFi bGVfcjE7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxl X3IyIFdJVEggR1JBTlQgT1BUSU9OOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFTEVDVCB2YXJh Y2wgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZh cmFjbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7cmVncmVzc192 YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyLHJlZ3Jlc3NfdmFyaWFibGVf cjE9ciovcmVncmVzc192YXJpYWJsZV9vd25lcixyZWdyZXNzX3ZhcmlhYmxlX3IyPXIqL3JlZ3Jl c3NfdmFyaWFibGVfcjF9CisoMSByb3cpCisKK1JFVk9LRSBBTEwgUFJJVklMRUdFUyBPTiBWQVJJ QUJMRSB2YXIxIEZST00gcmVncmVzc192YXJpYWJsZV9yMSBDQVNDQURFOworU0VMRUNUIHZhcmFj bCBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgICAgICAgICAgICAg ICAgICAgICAgIHZhcmFjbCAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge3JlZ3Jlc3NfdmFyaWFibGVf b3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcn0KKygxIHJvdykKKworU0VUIFJPTEUgVE8g cmVncmVzc192YXJpYWJsZV9vd25lcjsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRP IHJlZ3Jlc3NfdmFyaWFibGVfcjEgV0lUSCBHUkFOVCBPUFRJT047CitTRVQgUk9MRSBUTyByZWdy ZXNzX3ZhcmlhYmxlX3IxOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVz c192YXJpYWJsZV9yMiBXSVRIIEdSQU5UIE9QVElPTjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFy aWFibGVfb3duZXI7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX3Zh cmlhYmxlX3IyOworU0VMRUNUIHZhcmFjbCBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUg PSAndmFyMSc7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJhY2wgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtyZWdyZXNzX3Zh cmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIscmVncmVzc192YXJpYWJsZV9y MT1yKi9yZWdyZXNzX3ZhcmlhYmxlX293bmVyLHJlZ3Jlc3NfdmFyaWFibGVfcjI9ciovcmVncmVz c192YXJpYWJsZV9yMSxyZWdyZXNzX3ZhcmlhYmxlX3IyPXIvcmVncmVzc192YXJpYWJsZV9vd25l cn0KKygxIHJvdykKKworUkVWT0tFIEFMTCBPTiBWQVJJQUJMRSB2YXIxIEZST00gcmVncmVzc192 YXJpYWJsZV9yMiBHUkFOVEVEIEJZIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitTRUxFQ1QgdmFy YWNsIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 YXJhY2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge3JlZ3Jlc3Nf dmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcixyZWdyZXNzX3ZhcmlhYmxl X3IxPXIqL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIscmVncmVzc192YXJpYWJsZV9yMj1yKi9yZWdy ZXNzX3ZhcmlhYmxlX3IxfQorKDEgcm93KQorCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBW QVJJQUJMRSB2YXIxOworQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKK0dSQU5UIEFMTCBPTiBTQ0hF TUEgc3ZhcnRlc3QgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK1NFVCBST0xFIFRPIHJlZ3Jl c3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7 CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMiBBUyBpbnQ7CitHUkFOVCBTRUxFQ1QgT04g QUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgc3ZhcnRlc3QgVE8gcmVncmVzc192YXJpYWJsZV9yMTsK K1NFTEVDVCB2YXJhY2wgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lIElOICgndmFyMScs ICd2YXIyJyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2 YXJhY2wgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge3JlZ3Jlc3NfdmFyaWFibGVf b3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcixyZWdyZXNzX3ZhcmlhYmxlX3IxPXIvcmVn cmVzc192YXJpYWJsZV9vd25lcn0KKyB7cmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNz X3ZhcmlhYmxlX293bmVyLHJlZ3Jlc3NfdmFyaWFibGVfcjE9ci9yZWdyZXNzX3ZhcmlhYmxlX293 bmVyfQorKDIgcm93cykKKworUkVWT0tFIFNFTEVDVCBPTiBBTEwgVkFSSUFCTEVTIElOIFNDSEVN QSBzdmFydGVzdCBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitTRUxFQ1QgdmFyYWNsIEZST00g cGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSBJTiAoJ3ZhcjEnLCAndmFyMicpOworICAgICAgICAg ICAgICAgICAgICAgICB2YXJhY2wgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtyZWdyZXNzX3Zhcmlh YmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXJ9Cisge3JlZ3Jlc3NfdmFyaWFibGVf b3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcn0KKygyIHJvd3MpCisKK1NFVCBST0xFIFRP IERFRkFVTFQ7CitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjE7CitEUk9QIFZBUklBQkxFIHN2 YXJ0ZXN0LnZhcjI7CitEUk9QIFNDSEVNQSBzdmFydGVzdDsKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgcHVibGljLnZhcjEgQVMgaW50OworU0VU IHNlYXJjaF9wYXRoIFRPIHB1YmxpYzsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBwdWJsaWMu dmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IxOworR1JBTlQgU0VMRUNULCBVUERBVEUgT04gVkFS SUFCTEUgcHVibGljLnZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMjsKK1NFTEVDVCBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGljLnZh cjEnLCAnU0VMRUNUJyk7CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGljLm5v dGV4aXN0cycsICdTRUxFQ1QnKSBJUyBOVUxMOworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIHQK KygxIHJvdykKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9yMTsKK1NFTEVDVCBoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAndmFyMScs ICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3ZhcjEnLCAn VVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsICd2YXIxJywgJ1NF TEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCAndmFyMScsICdVUERB VEUnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlKCd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0 CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3ZhcjEn LCAnVVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIG9pZCBB UyB2YXJpZAorICBGUk9NIHBnX3ZhcmlhYmxlCisgIFdIRVJFIHZhcm5hbWUgPSAndmFyMScgQU5E IHZhcm5hbWVzcGFjZSA9ICdwdWJsaWMnOjpyZWduYW1lc3BhY2UgXGdzZXQKK1NFTEVDVCBoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSgndmFyMScsICdVUERBVEUnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxF Q1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywg OnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Ug CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsIDp2 YXJpZCwgJ1VQREFURScpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBo YXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCA6dmFy aWQsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgOnZhcmlk LCAnVVBEQVRFJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSg6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl KDp2YXJpZCwgJ1VQREFURScpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVD VCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnOjpy ZWdyb2xlLCAndmFyMScsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQor CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxl X3IxJzo6cmVncm9sZSwgJ3ZhcjEnLCAnVVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygx IHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192 YXJpYWJsZV9yMic6OnJlZ3JvbGUsICd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Np b25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3Jl Z3Jlc3NfdmFyaWFibGVfcjInOjpyZWdyb2xlLCAndmFyMScsICdVUERBVEUnKTsgLS0gdAorIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJzo6cmVncm9sZSwgOnZhcmlkLCAnU0VMRUNUJyk7IC0t IHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMSc6OnJlZ3JvbGUsIDp2YXJpZCwgJ1VQREFU RScpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInOjpyZWdyb2xlLCA6dmFyaWQs ICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJzo6cmVncm9sZSwg OnZhcmlkLCAnVVBEQVRFJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Ug CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VUIFJP TEUgVE8gREVGQVVMVDsKK1NFVCBzZWFyY2hfcGF0aCBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJM RSBwdWJsaWMudmFyMTsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IxOworRFJPUCBST0xF IHJlZ3Jlc3NfdmFyaWFibGVfcjI7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVz dC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IDFlZGQ5ZTQ1ZWIuLjdmNGY3NGVlZWEg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpAQCAtMTExLDcgKzExMSw3IEBAIHRlc3Q6 IGpzb24ganNvbmIganNvbl9lbmNvZGluZyBqc29ucGF0aCBqc29ucGF0aF9lbmNvZGluZyBqc29u Yl9qc29ucGF0aCBzcWxqc29uCiAjIE5COiB0ZW1wLnNxbCBkb2VzIGEgcmVjb25uZWN0IHdoaWNo IHRyYW5zaWVudGx5IHVzZXMgMiBjb25uZWN0aW9ucywKICMgc28ga2VlcCB0aGlzIHBhcmFsbGVs IGdyb3VwIHRvIGF0IG1vc3QgMTkgdGVzdHMKICMgLS0tLS0tLS0tLQotdGVzdDogcGxhbmNhY2hl IGxpbWl0IHBscGdzcWwgY29weTIgdGVtcCBkb21haW4gcmFuZ2VmdW5jcyBwcmVwYXJlIGNvbnZl cnNpb24gdHJ1bmNhdGUgYWx0ZXJfdGFibGUgc2VxdWVuY2UgcG9seW1vcnBoaXNtIHJvd3R5cGVz IHJldHVybmluZyBsYXJnZW9iamVjdCB3aXRoIHhtbAordGVzdDogcGxhbmNhY2hlIGxpbWl0IHBs cGdzcWwgY29weTIgdGVtcCBkb21haW4gcmFuZ2VmdW5jcyBwcmVwYXJlIGNvbnZlcnNpb24gdHJ1 bmNhdGUgYWx0ZXJfdGFibGUgc2VxdWVuY2UgcG9seW1vcnBoaXNtIHJvd3R5cGVzIHJldHVybmlu ZyBsYXJnZW9iamVjdCB3aXRoIHhtbCBzZXNzaW9uX3ZhcmlhYmxlcwogCiAjIC0tLS0tLS0tLS0K ICMgQW5vdGhlciBncm91cCBvZiBwYXJhbGxlbCB0ZXN0cwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvZGVwZW5kZW5jeS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9kZXBlbmRl bmN5LnNxbAppbmRleCA4ZDc0ZWQ3MTIyLi42YzE4YjdmODQwIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9kZXBlbmRlbmN5LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9k ZXBlbmRlbmN5LnNxbApAQCAtMTE0LDMgKzExNCwxNyBAQCBEUk9QIFVTRVIgcmVncmVzc19kZXBf dXNlcjI7CiBEUk9QIE9XTkVEIEJZIHJlZ3Jlc3NfZGVwX3VzZXIyLCByZWdyZXNzX2RlcF91c2Vy MDsKIERST1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMjsKIERST1AgVVNFUiByZWdyZXNzX2RlcF91 c2VyMDsKKworLS0gZGVwZW5kZW5jeSBvbiB0eXBlCitDUkVBVEUgRE9NQUlOIHZhcmRvbWFpbiBB UyBpbnQ7CitDUkVBVEUgVFlQRSB2YXJ0eXBlIEFTIChhIGludCwgYiBpbnQsIGMgdmFyZG9tYWlu KTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnR5cGU7CisKKy0tIHNob3VsZCBmYWlsCitE Uk9QIERPTUFJTiB2YXJkb21haW47CitEUk9QIFRZUEUgdmFydHlwZTsKKworLS0gY2xlYW4gdXAK K0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVFlQRSB2YXJ0eXBlOworRFJPUCBET01BSU4gdmFy ZG9tYWluOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbAppbmRleCBjNTAyMWZjMGIxLi42NjZlZGRiNjMyIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9wc3FsLnNxbApAQCAtMTYzMSw2ICsxNjMxLDE5IEBAIENPTU1JVDsKIERST1Ag VEFCTEUgYmxhOwogRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogCistLSBzZXNzaW9uIHZhcmlh YmxlIHRlc3QKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitTRVQgUk9MRSBU TyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hh ciBDT0xMQVRFICJDIjsKK1xkVisgdmFyMQorR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEg VE8gUFVCTElDOworQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIGRlc2NyaXB0aW9u JzsKK1xkVisgdmFyMQorRFJPUCBWQVJJQUJMRSB2YXIxOworCitTRVQgUk9MRSBUTyBERUZBVUxU OworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CisKIC0tIGNoZWNrIGRlc2NyaWJp bmcgaW52YWxpZCBtdWx0aXBhcnQgbmFtZXMKIFxkQSByZWdyZXNzaW9uLmhlYXAKIFxkQSBub25l c3VjaC5oZWFwCkBAIC0xNzQyLDYgKzE3NTUsOSBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7 CiBcZFggbm9uZXN1Y2gucHVibGljLmZ1bmNfZGVwc19zdGF0CiBcZHkgcmVncmVzc2lvbi5teWV2 dAogXGR5IG5vbmVzdWNoLm15ZXZ0CitcZFYgaG9zdC5yZWdyZXNzaW9uLnB1YmxpYy52YXIKK1xk ViByZWdyZXNzaW9ufG15ZGIucHVibGljLnZhcgorXGRWIG5vbmVzdWNoLnB1YmxpYy52YXIKIAog LS0gY2hlY2sgdGhhdCBkb3RzIHdpdGhpbiBxdW90ZWQgbmFtZSBzZWdtZW50cyBhcmUgbm90IGNv dW50ZWQKIFxkQSAibm8uc3VjaC5hY2Nlc3MubWV0aG9kIgpAQCAtMTc4Myw2ICsxNzk5LDggQEAg RFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogXGR4ICJuby5zdWNoLmluc3RhbGxlZC5leHRlbnNp b24iCiBcZFggIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKIFxkeSAibm8uc3VjaC5ldmVu dC50cmlnZ2VyIgorXGRWICJuby5zdWNoLnZhcmlhYmxlIgorCiAKIC0tIGFnYWluLCBidXQgd2l0 aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGRBICJuby5zdWNoLnNjaGVtYSIuIm5v LnN1Y2guYWNjZXNzLm1ldGhvZCIKQEAgLTE4MjMsNiArMTg0MSw3IEBAIERST1AgRlVOQ1RJT04g cHNxbF9lcnJvcjsKIFxkeCAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmluc3RhbGxlZC5leHRl bnNpb24iCiBcZFggIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNz IgogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKK1xkViAibm8u c3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgogCiAtLSBhZ2FpbiwgYnV0IHdpdGggY3Vy cmVudCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkdCByZWdy ZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRpb24iCkBAIC0xODQ3 LDYgKzE4NjYsNyBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZFAgcmVncmVzc2lvbi4i bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnBhcnRpdGlvbmVkLnJlbGF0aW9uIgogXGRUIHJlZ3Jl c3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5kYXRhLnR5cGUiCiBcZFggcmVncmVzc2lv bi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCitcZFYgcmVn cmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgogCiAtLSBhZ2Fpbiwg YnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25z LgogXGR0ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxl LnJlbGF0aW9uIgpAQCAtMTg3Miw2ICsxODkyLDcgQEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9y OwogXGRQICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnBhcnRp dGlvbmVkLnJlbGF0aW9uIgogXGRUICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEi LiJuby5zdWNoLmRhdGEudHlwZSIKIFxkWCAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2No ZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgorXGRWICJuby5zdWNoLmRhdGFiYXNl Ii4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgogCiAtLSBjaGVjayBcZHJnIGFu ZCBcZHUKIENSRUFURSBST0xFIHJlZ3Jlc3NfZHVfcm9sZTA7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMC4uMmE0ZDQyOWE5OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtMCwwICsxLDI2MyBAQAorQ1JFQVRFIFJPTEUgcmVn cmVzc192YXJpYWJsZV9vd25lcjsKKworU0VUIGxvZ19zdGF0ZW1lbnQgVE8gZGRsOworCistLSBz aG91bGQgYmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKworLS0gc2hvdWxkIGZh aWwsIHBzZXVkb3R5cGVzIGFyZSBub3QgYWxsb3dlZAorQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMg YW55ZWxlbWVudDsKKworLS0gc2hvdWxkIGJlIG9rLCBkbyBub3RoaW5nCitEUk9QIFZBUklBQkxF IElGIEVYSVNUUyB2YXIyOworCistLSBkbyBub3RoaW5nCitDUkVBVEUgVkFSSUFCTEUgSUYgTk9U IEVYSVNUUyB2YXIxIEFTIGludDsKKworLS0gc2hvdWxkIGZhaWwKK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIGludDsKKworLS0gc2hvdWxkIGJlIG9rCitEUk9QIFZBUklBQkxFIElGIEVYSVNUUyB2 YXIxOworCistLSB0aGUgdmFyaWFibGUgY2FuIHVzZSBjb21wb3NpdGUgdHlwZXMKK0NSRUFURSBU QUJMRSB0MSAoYSBpbnQsIGIgaW50KTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHQxOworCist LSBzaG91bGQgZmFpbAorRFJPUCBUQUJMRSB0MTsKKworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBU QUJMRSB0MSBBREQgQ09MVU1OIGMgaW50OworCistLSBzaG91bGQgZmFpbAorQUxURVIgVEFCTEUg dDEgQUxURVIgQ09MVU1OIGIgVFlQRSBudW1lcmljOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitE Uk9QIFRBQkxFIHQxOworCitDUkVBVEUgVFlQRSB0MSBBUyAoYSBpbnQsIGIgaW50KTsKK0NSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIHQxOworCistLSBzaG91bGQgZmFpbAorRFJPUCBUWVBFIHQxOwor CistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUgdDEgQUREIEFUVFJJQlVURSBjIGludDsKKwor LS0gc2hvdWxkIGZhaWwKK0FMVEVSIFRZUEUgdDEgQUxURVIgQVRUUklCVVRFIGIgIFRZUEUgbnVt ZXJpYzsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUWVBFIHQxOworCitTRVQgbG9nX3N0 YXRlbWVudCBUTyBkZWZhdWx0OworCitDUkVBVEUgRE9NQUlOIHRlc3R2YXJfZG9tYWluIEFTIGlu dDsKK0NSRUFURSBUWVBFIHRlc3R2YXJfdHlwZSBBUyAoYSB0ZXN0dmFyX2RvbWFpbik7CisKK0NS RUFURSBWQVJJQUJMRSB2YXIxIEFTIHRlc3R2YXJfZG9tYWluOworCistLSBzaG91bGQgZmFpbAor QUxURVIgRE9NQUlOIHRlc3R2YXJfZG9tYWluIEFERCBDSEVDSyh2YWx1ZSA8PiAxMDApOworCitE Uk9QIFZBUklBQkxFIHZhcjE7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRlc3R2YXJfdHlw ZTsKKworLS0gc2hvdWxkIGZhaWwKK0FMVEVSIERPTUFJTiB0ZXN0dmFyX2RvbWFpbiBBREQgQ0hF Q0sodmFsdWUgPD4gMTAwKTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBzaG91bGQgYmUg b2sKK0FMVEVSIERPTUFJTiB0ZXN0dmFyX2RvbWFpbiBBREQgQ0hFQ0sodmFsdWUgPD4gMTAwKTsK KworRFJPUCBUWVBFIHRlc3R2YXJfdHlwZTsKK0RST1AgVFlQRSB0ZXN0dmFyX2RvbWFpbjsKKwor LS0gY2hlY2sgZXZlbnQgdHJpZ2dlciBzdXBwb3J0CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElP TiBzdmFyX2V2ZW50X3RyaWdnZXJfcmVwb3J0X2Ryb3BwZWQoKQorUkVUVVJOUyBldmVudF90cmln Z2VyCitBUyAkJAorREVDTEFSRSByIHJlY29yZDsKK0JFR0lOCisgIEZPUiByIElOIFNFTEVDVCAq IGZyb20gcGdfZXZlbnRfdHJpZ2dlcl9kcm9wcGVkX29iamVjdHMoKQorICBMT09QCisgICAgQ09O VElOVUUgV0hFTiBOT1Qgci5ub3JtYWwgQU5EIE5PVCByLm9yaWdpbmFsOworCisgICAgUkFJU0Ug Tk9USUNFCisgICAgICAgJ05PUk1BTDogb3JpZz0lIG5vcm1hbD0lIGlzdGVtcD0lIHR5cGU9JSBp ZGVudGl0eT0lIG5hbWU9JSBhcmdzPSUnLAorICAgICAgIHIub3JpZ2luYWwsIHIubm9ybWFsLCBy LmlzX3RlbXBvcmFyeSwgci5vYmplY3RfdHlwZSwKKyAgICAgICByLm9iamVjdF9pZGVudGl0eSwg ci5hZGRyZXNzX25hbWVzLCByLmFkZHJlc3NfYXJnczsKKyAgRU5EIExPT1A7CitFTkQ7CiskJCBM QU5HVUFHRSBwbHBnc3FsOworCitDUkVBVEUgRVZFTlQgVFJJR0dFUiBzdmFyX3JlZ3Jlc3NfZXZl bnRfdHJpZ2dlcl9yZXBvcnRfZHJvcHBlZCBPTiBzcWxfZHJvcAorICBXSEVOIFRBRyBJTiAoJ0RS T1AgVkFSSUFCTEUnKQorICBFWEVDVVRFIFBST0NFRFVSRSBzdmFyX2V2ZW50X3RyaWdnZXJfcmVw b3J0X2Ryb3BwZWQoKTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworRFJPUCBWQVJJ QUJMRSB2YXIxOworCitEUk9QIEVWRU5UIFRSSUdHRVIgc3Zhcl9yZWdyZXNzX2V2ZW50X3RyaWdn ZXJfcmVwb3J0X2Ryb3BwZWQ7CisKKy0tIGNoZWNrIGNvbW1lbnQgb24gdmFyaWFibGUKK0NSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NPTU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29t ZSB2YXJpYWJsZSBjb21tZW50JzsKK1NFTEVDVCBwZ19jYXRhbG9nLm9ial9kZXNjcmlwdGlvbihv aWQsICdwZ192YXJpYWJsZScpIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIx JzsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLS0gY2hlY2sgYWNjZXNzIHJpZ2h0cyBhbmQg c3VwcG9ydGVkIEFMVEVSCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0OworR1JBTlQgQUxMIE9OIFND SEVNQSBzdmFydGVzdCBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworCitDUkVBVEUgVkFSSUFC TEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CisKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVf cmVhZGVyOworCitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBUTyByZWdy ZXNzX3ZhcmlhYmxlX3JlYWRlcjsKK1JFVk9LRSBBTEwgT04gVkFSSUFCTEUgc3ZhcnRlc3QudmFy MSBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworCitBTFRFUiBWQVJJQUJMRSBzdmFydGVz dC52YXIxIE9XTkVSIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitBTFRFUiBWQVJJQUJMRSBz dmFydGVzdC52YXIxIFJFTkFNRSBUTyB2YXJ4eDsKK0FMVEVSIFZBUklBQkxFIHN2YXJ0ZXN0LnZh cnh4IFNFVCBTQ0hFTUEgcHVibGljOworCitEUk9QIFZBUklBQkxFIHB1YmxpYy52YXJ4eDsKKwor QUxURVIgREVGQVVMVCBQUklWSUxFR0VTCisgICBGT1IgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293 bmVyCisgICBJTiBTQ0hFTUEgc3ZhcnRlc3QKKyAgIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMg VE8gcmVncmVzc192YXJpYWJsZV9yZWFkZXI7CisKKy0tIGNyZWF0aW5nIHZhcmlhYmxlIHdpdGgg ZGVmYXVsdCBwcml2aWxlZ2VzCitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwor Q1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50OworU0VUIFJPTEUgVE8gREVGQVVM VDsKKworXGRWKyBzdmFydGVzdC52YXIxCisKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMTsK KworRFJPUCBTQ0hFTUEgc3ZhcnRlc3Q7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yZWFk ZXI7CisKKy0tIGNoZWNrIFdJVEggR1JBTlQgT1BUSU9OCitDUkVBVEUgUk9MRSByZWdyZXNzX3Zh cmlhYmxlX3IxOworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMjsKKworU0VUIFJPTEUg VE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsK KworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMSBX SVRIIEdSQU5UIE9QVElPTjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitHUkFO VCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IyIFdJVEggR1JB TlQgT1BUSU9OOworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworU0VMRUNUIHZhcmFjbCBGUk9NIHBn X3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisKK1JFVk9LRSBBTEwgUFJJVklMRUdF UyBPTiBWQVJJQUJMRSB2YXIxIEZST00gcmVncmVzc192YXJpYWJsZV9yMSBDQVNDQURFOworCitT RUxFQ1QgdmFyYWNsIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKwor U0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKKworR1JBTlQgU0VMRUNUIE9OIFZB UklBQkxFIHZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMSBXSVRIIEdSQU5UIE9QVElPTjsKK1NF VCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUg dmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IyIFdJVEggR1JBTlQgT1BUSU9OOworCitTRVQgUk9M RSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZh cjEgVE8gcmVncmVzc192YXJpYWJsZV9yMjsKKworU0VMRUNUIHZhcmFjbCBGUk9NIHBnX3Zhcmlh YmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisKK1JFVk9LRSBBTEwgT04gVkFSSUFCTEUgdmFy MSBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVfcjIgR1JBTlRFRCBCWSByZWdyZXNzX3ZhcmlhYmxlX293 bmVyOworCitTRUxFQ1QgdmFyYWNsIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2 YXIxJzsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCitD UkVBVEUgU0NIRU1BIHN2YXJ0ZXN0OworCitHUkFOVCBBTEwgT04gU0NIRU1BIHN2YXJ0ZXN0IFRP IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI7CisKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIGludDsKK0NSRUFURSBW QVJJQUJMRSBzdmFydGVzdC52YXIyIEFTIGludDsKKworR1JBTlQgU0VMRUNUIE9OIEFMTCBWQVJJ QUJMRVMgSU4gU0NIRU1BIHN2YXJ0ZXN0IFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CisKK1NFTEVD VCB2YXJhY2wgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lIElOICgndmFyMScsICd2YXIy Jyk7CisKK1JFVk9LRSBTRUxFQ1QgT04gQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgc3ZhcnRlc3Qg RlJPTSByZWdyZXNzX3ZhcmlhYmxlX3IxOworCitTRUxFQ1QgdmFyYWNsIEZST00gcGdfdmFyaWFi bGUgV0hFUkUgdmFybmFtZSBJTiAoJ3ZhcjEnLCAndmFyMicpOworCitTRVQgUk9MRSBUTyBERUZB VUxUOworCitEUk9QIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjE7CitEUk9QIFZBUklBQkxFIHN2YXJ0 ZXN0LnZhcjI7CisKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0OworCitTRVQgUk9MRSBUTyByZWdyZXNz X3ZhcmlhYmxlX293bmVyOworCitDUkVBVEUgVkFSSUFCTEUgcHVibGljLnZhcjEgQVMgaW50Owor CitTRVQgc2VhcmNoX3BhdGggVE8gcHVibGljOworCitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUg cHVibGljLnZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMTsKK0dSQU5UIFNFTEVDVCwgVVBEQVRF IE9OIFZBUklBQkxFIHB1YmxpYy52YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CisKK1NFTEVD VCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAn cHVibGljLnZhcjEnLCAnU0VMRUNUJyk7CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1YmxpYy5ub3RleGlzdHMnLCAnU0VMRUNU JykgSVMgTlVMTDsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9yMTsKKworU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICd2 YXIxJywgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3ZhcjEnLCAnVVBEQVRFJyk7IC0tIGYKK1NFTEVD VCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCAn dmFyMScsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZp bGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsICd2YXIxJywgJ1VQREFURScpOyAtLSB0CisKK1NF TEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3ZhcjEnLCAnU0VMRUNUJyk7IC0t IHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3ZhcjEnLCAnVVBEQVRF Jyk7IC0tIGYKKworU0VMRUNUIG9pZCBBUyB2YXJpZAorICBGUk9NIHBnX3ZhcmlhYmxlCisgIFdI RVJFIHZhcm5hbWUgPSAndmFyMScgQU5EIHZhcm5hbWVzcGFjZSA9ICdwdWJsaWMnOjpyZWduYW1l c3BhY2UgXGdzZXQKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgndmFy MScsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSgndmFyMScsICdVUERBVEUnKTsgLS0gZgorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQK K1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVf cjEnLCA6dmFyaWQsICdVUERBVEUnKTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsIDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0 CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxl X3IyJywgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIHQKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSg6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSg6dmFyaWQsICdVUERBVEUnKTsgLS0gZgorCitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJzo6cmVncm9s ZSwgJ3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnOjpyZWdyb2xlLCAndmFyMScsICdVUERBVEUn KTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192 YXJpYWJsZV9yMic6OnJlZ3JvbGUsICd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJzo6cmVncm9s ZSwgJ3ZhcjEnLCAnVVBEQVRFJyk7IC0tIHQKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMSc6OnJlZ3JvbGUsIDp2YXJpZCwgJ1NFTEVD VCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNz X3ZhcmlhYmxlX3IxJzo6cmVncm9sZSwgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIGYKK1NFTEVDVCBo YXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInOjpyZWdy b2xlLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMic6OnJlZ3JvbGUsIDp2YXJpZCwgJ1VQREFU RScpOyAtLSB0CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgc2VhcmNoX3BhdGggVE8gREVG QVVMVDsKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMudmFyMTsKKworRFJPUCBST0xFIHJlZ3Jlc3Nf dmFyaWFibGVfcjE7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMjsKKworRFJPUCBST0xF IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQv dHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IGUx YzRmOTEzZjguLmNiZTU5ZmIwNzAgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC01MzYs NiArNTM2LDcgQEAgQ3JlYXRlUm9sZVN0bXQKIENyZWF0ZVNjaGVtYVN0bXQKIENyZWF0ZVNjaGVt YVN0bXRDb250ZXh0CiBDcmVhdGVTZXFTdG10CitDcmVhdGVTZXNzaW9uVmFyU3RtdAogQ3JlYXRl U3RhdHNTdG10CiBDcmVhdGVTdG10CiBDcmVhdGVTdG10Q29udGV4dApAQCAtODc2LDYgKzg3Nyw3 IEBAIEZvcm1EYXRhX3BnX3RzX3BhcnNlcgogRm9ybURhdGFfcGdfdHNfdGVtcGxhdGUKIEZvcm1E YXRhX3BnX3R5cGUKIEZvcm1EYXRhX3BnX3VzZXJfbWFwcGluZworRm9ybURhdGFfcGdfdmFyaWFi bGUKIEZvcm1FeHRyYURhdGFfcGdfYXR0cmlidXRlCiBGb3JtX3BnX2FnZ3JlZ2F0ZQogRm9ybV9w Z19hbQpAQCAtOTM1LDYgKzkzNyw3IEBAIEZvcm1fcGdfdHNfcGFyc2VyCiBGb3JtX3BnX3RzX3Rl bXBsYXRlCiBGb3JtX3BnX3R5cGUKIEZvcm1fcGdfdXNlcl9tYXBwaW5nCitGb3JtX3BnX3Zhcmlh YmxlCiBGb3JtYXROb2RlCiBGcmVlQmxvY2tOdW1iZXJBcnJheQogRnJlZUxpc3REYXRhCkBAIC0z MDg4LDYgKzMwOTEsNyBAQCBWYXJTdHJpbmcKIFZhclN0cmluZ1NvcnRTdXBwb3J0CiBWYXJpYWJs ZQogVmFyaWFibGVBc3NpZ25Ib29rCitWYXJpYWJsZUluZm8KIFZhcmlhYmxlU2V0S2luZAogVmFy aWFibGVTZXRTdG10CiBWYXJpYWJsZVNob3dTdG10Ci0tIAoyLjQ3LjEKCg== --0000000000009e568d0629bac7df--