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.96) (envelope-from ) id 1vSWQ9-00Gt4O-2J for pgsql-hackers@arkaria.postgresql.org; Mon, 08 Dec 2025 08:16:38 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vSWQ7-00Fb94-1b for pgsql-hackers@arkaria.postgresql.org; Mon, 08 Dec 2025 08:16:35 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vSWQ6-00Fb8s-30 for pgsql-hackers@lists.postgresql.org; Mon, 08 Dec 2025 08:16:35 +0000 Received: from mail-yw1-x1129.google.com ([2607:f8b0:4864:20::1129]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vSWQ3-003oPS-2v for pgsql-hackers@lists.postgresql.org; Mon, 08 Dec 2025 08:16:34 +0000 Received: by mail-yw1-x1129.google.com with SMTP id 00721157ae682-78a6a7654a4so39238557b3.0 for ; Mon, 08 Dec 2025 00:16:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765181790; x=1765786590; 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=4bMFvMpu3dAwqZDzAMD8IDyv6l4G9eku+6UEvE1q1ls=; b=a97z13it/JgquvqmGhbZ6T5ThZ9WR234paUOBzkW1hYsg+3n9dL30WzNDXev0H5i6M eI3VPepaL2oq3hLcsxiYXd08MquFQW/BZj4oqv6+7U0+rDidUwkubofm7w4qQUm78K0k o/y7V+e4Gpx12AVPbulLXIBTGGL/3ffnhOW2O2Ydb05tZDTYUIengwt9uB0lrPX29d60 m7kcCXR7WLrb3XtDXr0fX08gFPIPsM0+FqkpEVdBAaZj1YSRS4nHze3NjCSqxYpfOP8I 1EEZ0Bwesmw5SW2FgQQ4RbzoQ94jjQHpzxqpHsjWLL4kBwi0OXpEF42YuuVM0kILvvdM w0Dw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765181790; x=1765786590; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=4bMFvMpu3dAwqZDzAMD8IDyv6l4G9eku+6UEvE1q1ls=; b=g5Y8YVfEPqv4G9M6bVb5kxOu9SvKEUp5c+ojVPjKa5QKf24YDlGu7hrOntagrDpO7b 0Sz1xIy25auaX0Afq1WQV8F/kI1ZQu9CEr7N/txZCObYd5DELkRp+ePbmeLCLf0qgv3s WCRqeE2eNGK6lhL6MGemNsXQWanjfUKDYf49d5NRwyJupMTYPNMm6kNhC7cZ1k33g31i FdU30iOknIy1mIaYxTWJh1K+mgBK2cb9FSV8TvcEPWK48DZDDUz8vJGorfRvaEn5pL8u QyfZ5uqzm3Tsu0O0WaBoWAt0RhmGAI06J73def4jFI6IBaoDzlJfC4lWZf/qTQP0Y8ZQ sjGA== X-Forwarded-Encrypted: i=1; AJvYcCVhRHi96xFD3UwZBg9xFo1DQHkr8nH5MdgGsog9nWGK6lic/5NmxIgEw0MbH66qq4EUfALePK1P3SRbhmPR@lists.postgresql.org X-Gm-Message-State: AOJu0YxktRFsLUosgkXYtLlfDfL5R0Xpd6+AnHsDcJuWQwJb9wIdMLWx tMig5wB3VeQUkSr4jbtZ7RJvdNvndZN3c3WmFyh7ICDt4f1E2x2Tu5Zh+uK4MuQKrBlaJmIHGak FD1D2kj0kBQ0CQcBjYiby2YwNQobZrrA= X-Gm-Gg: ASbGncsf+fL3GvUB6/d31Ks48XbwtrpQl2+QdF0irLHu7iXHA7zD6t19h66QeYMSe8D LyuJGLIR8Z6IkqTPQBPxRVSMzLG85uT60WNKap3NFeQCoJ+uYzUTtYLS2i42tET5mLT5ocmcHph sXguc8dizqkmGpt/8NOONh+ybPvqD1RHsiy9uJgd23D/0FlSoIJjXIxyma2tQ00IL4nOI0P0IwE 4h2N9UOHz3QtN3QupjClUk2neKOqVwJ9EEYoIchz2rTUQNgUXx7/kLKqn59RysiKTTrqDKYW28X AM5yS40YIXxtiPHhJ9XaUdn/EbUNh2Hrp7t5vJPyZxEAo3I8LRbUv/bKbrJVzOrKvpm0p+IaBhN bsKtFb+HDxtsDMw== X-Google-Smtp-Source: AGHT+IHP1WdnFwlSNi3dL0J3BPzO/C3h27LolUIe8T1Lg/6bfaDrSwcjWqurQq9puMEdjAdAxInLviQr1+xclwo8BBU= X-Received: by 2002:a05:690c:6712:b0:786:4fd5:e5de with SMTP id 00721157ae682-78c33ca3e84mr61854177b3.67.1765181789736; Mon, 08 Dec 2025 00:16:29 -0800 (PST) MIME-Version: 1.0 References: <62426ced-0795-4191-876a-4fa16d277757@uni-muenster.de> <8f7e3edc-ca20-46fc-8fa1-84aed33e1e46@uni-muenster.de> In-Reply-To: <8f7e3edc-ca20-46fc-8fa1-84aed33e1e46@uni-muenster.de> From: Pavel Stehule Date: Mon, 8 Dec 2025 09:15:50 +0100 X-Gm-Features: AQt7F2r2BbK1xCCAyHHtd6lezcfXTi4w2wncTaMxlX3-vih34D5_hqDw8GYsNn8 Message-ID: Subject: Re: proposal: schema variables To: Jim Jones Cc: Bruce Momjian , Dmitry Dolgov <9erthalion6@gmail.com>, Laurenz Albe , Erik Rijkers , Michael Paquier , Amit Kapila , DUVAL REMI , PostgreSQL Hackers , jian he , Alvaro Herrera , PegoraroF10 Content-Type: multipart/mixed; boundary="0000000000008b48e906456c698a" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000008b48e906456c698a Content-Type: multipart/alternative; boundary="0000000000008b48e706456c6988" --0000000000008b48e706456c6988 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi so 6. 12. 2025 v 12:29 odes=C3=ADlatel Jim Jones napsal: > > > On 05/12/2025 07:50, Pavel Stehule wrote: > > yes, there was a bug, fixed > > > Both mentioned issues are related to the declared target of this > > patchset - maximal reduction of the size. > > Nice, the memory is now being freed after a DROP VARIABLE and the tab > completion for LET and DROP VARIABLE works: > > postgres=3D# CREATE TEMPORARY VARIABLE var AS text; > CREATE VARIABLE > postgres=3D# LET > var x > postgres=3D# LET var =3D repeat('=F0=9F=90=98', 200000000); > LET > postgres=3D# SELECT pg_size_pretty(used_bytes) > FROM pg_backend_memory_contexts > WHERE name =3D 'session variables'; > pg_size_pretty > ---------------- > 763 MB > (1 row) > > postgres=3D# DROP VARIABLE > var x > postgres=3D# DROP VARIABLE var; > DROP VARIABLE > postgres=3D# SELECT pg_size_pretty(used_bytes) > FROM pg_backend_memory_contexts > WHERE name =3D 'session variables'; > pg_size_pretty > ---------------- > 240 bytes > (1 row) > > > -- DROP VARIABLE IF EXISTS also works: > > postgres=3D# DROP VARIABLE IF EXISTS x; > DROP VARIABLE > > > Some comments and a few minor issues: > > =3D=3D session_variables_ddl.sql =3D=3D > > 1) duplicate tests > > ... > DROP VARIABLE IF EXISTS x; > DROP VARIABLE IF EXISTS x; > ... > fixed > > 2) Typos in some comments "should to fail" > "should fail" > fixed > > =3D=3D Error messages =3D=3D > > 3) It is not possible to create a VIEW that depends on a session > variable, which makes perfect sense. > > postgres=3D# CREATE VIEW v AS SELECT variable(var); > ERROR: session variable "var" cannot be referenced in a persistent objec= t > > The error message is clear, but in case of TEMPORARY VIEWS it gets a bit > misleading, since a TEMPORARY VIEW is not a persistent object: > > postgres=3D# CREATE TEMPORARY VIEW tv AS SELECT variable(var); > ERROR: session variable "var" cannot be referenced in a persistent objec= t > > Perhaps something more generic? For instance: > > errmsg("session variable \"%s\" cannot be referenced in catalog > objects", param->paramvarname) > changed like you proposed > > =3D=3D ddl.sgml =3D=3D > > 4) There are invalid examples > > -- No schema qualified VARIABLE is supported: > > CREATE VARIABLE public.current_user_id AS integer; > > -- Only TEMPORARY VARIABLES are supported: > CREATE VARIABLE var1 AS date; > fixed > > 5) The term "variable fence" is introduced and emphasised, but not > described. > ?? There is already +++ b/doc/src/sgml/ddl.sgml @@ -5676,6 +5676,17 @@ EXPLAIN SELECT count(*) FROM measurement WHERE logdate >=3D DATE '2008-01-01'; The session variable holds value in session memory. This value is private to each session and is released when the session ends. + + + In an query the session variable can be used only inside + variable fence. This is special syntax for + session variable identifier, and can be used only for session variable + identifier. The special syntax for accessing session variables removes + risk of collisions between variable identifiers and column names. + +SELECT VARIABLE(current_user_id); + + > > 6) There is a slight repetition regarding the variable's isolation > > "This value is private to each session .." > "The value of a session variable is local to the current session" > > I would write something along these lines: > > "Session variables are temporary database objects that can hold a value. > A session variable can be created using the CREATE VARIABLE command and > can only be accessed by its owner. The value of a session variable is > stored in session memory and is private to each session. It is > automatically released when the session ends. > done > > In a query, a session variable can only be referenced using the special > VARIABLE(varname) syntax. This avoids any risk of > collision between variable names and column names. > done > > You set the value of a session variable with the LET > statement and retrieve it with SELECT: > > > CREATE TEMPORARY VARIABLE var1 AS date; > LET var1 =3D current_date; > SELECT VARIABLE(var1); > var1 > ------------ > 2025-12-06 > (1 row) > > > By default, retrieving a session variable returns > NULL unless it has been set in the current session > using the LET command. Session variables are not > transactional: changes to their values persist even if the transaction > is rolled back, similar to variables in procedural languages." > done > > =3D=3D let.sgml =3D=3D > > 7) Invalid example (missing TEMP/TEMPORARY) > > CREATE VARIABLE myvar AS integer; > fixed > > 8) Typo in the Synopsis (TEMPORAL should be TEMPORARY): > > CREATE { TEMP | TEMPORAL } VARIABLE [ IF NOT EXISTS ] name [ AS ] > data_type > fixed > > 9) In the description it says "The CREATE VARIABLE command creates a > temporal session variable.", but isn't the command now CREATE > TEMP/TEMPORARY VARIABLE? Is it ok to remove the TEMPORARY in the > description? > Although the TEMP clause in CREATE VARIABLE is mandatory now, I prefer to look on this like some temporary limit - so I don't libe to rename CREATE VARIABLE to CREATE TEMP VARIABLE. I changed this part to The CREATE VARIABLE command creates a session variable. Currently only temporary session variables are supported, and then the keyword TEMPORARY is required. > > 10) The description includes also info regarding SELECT and LET. Since > this page is about CREATE TEMPORARY VARIABLE, I guess it is out of place? > > I am sorry, I don't understand this point. Can you describe it? For the current patchset I wrote initial support for transactional DDL for session variables - patch 0010 and 0011. Now, the DDL is blocked in read only transactions, parallel worker and inside recovery. Regards Pavel > > Thanks! > > Best, Jim > --0000000000008b48e706456c6988 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi

so 6. 12. 2025 v= =C2=A012:29 odes=C3=ADlatel Jim Jones <jim.jones@uni-muenster.de> napsal:
=


On 05/12/2025 07:50, Pavel Stehule wrote:
> yes, there was a bug, fixed

> Both mentioned issues are related to the declared target of this
> patchset - maximal reduction of the size.

Nice, the memory is now being freed after a DROP VARIABLE and the tab
completion for LET and DROP VARIABLE works:

postgres=3D# CREATE TEMPORARY VARIABLE var AS text;
CREATE VARIABLE
postgres=3D# LET <TAB>
var=C2=A0 x
postgres=3D# LET var =3D repeat('=F0=9F=90=98', 200000000);
LET
postgres=3D# SELECT pg_size_pretty(used_bytes)
FROM pg_backend_memory_contexts
WHERE name =3D 'session variables';
=C2=A0pg_size_pretty
----------------
=C2=A0763 MB
(1 row)

postgres=3D# DROP VARIABLE <TAB>
var=C2=A0 x
postgres=3D# DROP VARIABLE var;
DROP VARIABLE
postgres=3D# SELECT pg_size_pretty(used_bytes)
FROM pg_backend_memory_contexts
WHERE name =3D 'session variables';
=C2=A0pg_size_pretty
----------------
=C2=A0240 bytes
(1 row)


-- DROP VARIABLE IF EXISTS also works:

postgres=3D# DROP VARIABLE IF EXISTS x;
DROP VARIABLE


Some comments and a few minor issues:

=3D=3D session_variables_ddl.sql =3D=3D

1) duplicate tests

...
DROP VARIABLE IF EXISTS x;
DROP VARIABLE IF EXISTS x;
...

fixed
=C2=A0

2) Typos in some comments "should to fail" > "should fail= "

fixed
=C2=A0

=3D=3D Error messages =3D=3D

3) It is not possible to create a VIEW that depends on a session
variable, which makes perfect sense.

postgres=3D# CREATE VIEW v AS SELECT variable(var);
ERROR:=C2=A0 session variable "var" cannot be referenced in a per= sistent object

The error message is clear, but in case of TEMPORARY VIEWS it gets a bit misleading, since a TEMPORARY VIEW is not a persistent object:

postgres=3D# CREATE TEMPORARY VIEW tv AS SELECT variable(var);
ERROR:=C2=A0 session variable "var" cannot be referenced in a per= sistent object

Perhaps something more generic? For instance:

errmsg("session variable \"%s\" cannot be referenced in cata= log
objects", param->paramvarname)

= changed like you proposed
=C2=A0

=3D=3D ddl.sgml =3D=3D

4) There are invalid examples

-- No schema qualified VARIABLE is supported:

CREATE VARIABLE public.current_user_id AS integer;

-- Only TEMPORARY VARIABLES are supported:
CREATE VARIABLE var1 AS date;

fixed
=C2=A0

5) The term "variable fence" is introduced and emphasised, but no= t
described.

?? There is already

+++ b/doc/src/sgml/ddl.sgml
@@ -5676,6 +5676,17 @@ EXPL= AIN SELECT count(*) FROM measurement WHERE logdate &gt;=3D DATE '20= 08-01-01';
=C2=A0 =C2=A0 =C2=A0The session variable holds value in s= ession memory.=C2=A0 This value is private
=C2=A0 =C2=A0 =C2=A0to each s= ession and is released when the session ends.
=C2=A0 =C2=A0 </para>= ;
+
+ =C2=A0 <para>
+ =C2=A0 =C2=A0In an query the session v= ariable can be used only inside
+ =C2=A0 =C2=A0<firstterm>variable= fence</firstterm>. This is special syntax for
+ =C2=A0 =C2=A0sess= ion variable identifier, and can be used only for session variable
+ =C2= =A0 =C2=A0identifier. The special syntax for accessing session variables re= moves
+ =C2=A0 =C2=A0risk of collisions between variable identifiers and= column names.
+<programlisting>
+SELECT VARIABLE(current_user_= id);
+</programlisting>
+ =C2=A0 </para>
=C2=A0 =C2=A0= </sect1>

=C2=A0

6) There is a slight repetition regarding the variable's isolation

"This value is private to each session .."
"The value of a session variable is local to the current session"=

I would write something along these lines:

"Session variables are temporary database objects that can hold a valu= e.
A session variable can be created using the CREATE VARIABLE command and
can only be accessed by its owner. The value of a session variable is
stored in session memory and is private to each session. It is
automatically released when the session ends.

done=C2=A0

In a query, a session variable can only be referenced using the special
<literal>VARIABLE(varname)</literal> syntax. This avoids any ri= sk of
collision between variable names and column names.
done
=C2=A0

You set the value of a session variable with the <command>LET</com= mand>
statement and retrieve it with <command>SELECT</command>:

<programlisting>
CREATE TEMPORARY VARIABLE var1 AS date;
LET var1 =3D current_date;
SELECT VARIABLE(var1);
=C2=A0 =C2=A0 var1
------------
=C2=A02025-12-06
(1 row)
</programlisting>

By default, retrieving a session variable returns
<literal>NULL</literal> unless it has been set in the current s= ession
using the <command>LET</command> command. Session variables are= not
transactional: changes to their values persist even if the transaction
is rolled back, similar to variables in procedural languages."

done
=C2=A0

=3D=3D let.sgml =3D=3D

7) Invalid example (missing TEMP/TEMPORARY)

CREATE VARIABLE myvar AS integer;

fixed=
=C2=A0

8) Typo in the Synopsis (TEMPORAL should be TEMPORARY):

CREATE { TEMP | TEMPORAL } VARIABLE=C2=A0 [ IF NOT EXISTS ] name [ AS ] dat= a_type

fixed
=C2=A0

9) In the description it says "The CREATE VARIABLE command creates a temporal session variable.", but isn't the command now CREATE
TEMP/TEMPORARY VARIABLE? Is it ok to remove the TEMPORARY in the
description?

Although the TEMP clause i= n CREATE VARIABLE is mandatory now, I prefer to look on this
like= some temporary limit - so I don't libe to rename CREATE VARIABLE to CR= EATE TEMP VARIABLE.

I changed this part to

=C2=A0 <para>
=C2=A0 =C2=A0The <command>CR= EATE VARIABLE</command> command creates a session
=C2=A0 =C2=A0var= iable. Currently only temporary session variables are supported,
=C2=A0 = =C2=A0and then the keyword <literal>TEMPORARY</literal> is requ= ired.
=C2=A0 </para>
=C2=A0

10) The description includes also info regarding SELECT and LET. Since
this page is about CREATE TEMPORARY VARIABLE, I guess it is out of place?

I am sorry, I don't understand thi= s point. Can you describe it?
=C2=A0

For= the current patchset I wrote initial support for transactional DDL for ses= sion variables - patch 0010 and 0011.
Now, the DDL is blocked in = read only transactions, parallel worker and inside recovery.

=
Regards

Pavel

=
=C2=A0
X-Attachment-Id: f_miwu5rh00 RnJvbSA0MWExNmVkZTcwMTAyNDdkYWQ4MjE3MTBkOWMzOWYwZDdhNDcxZWRmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBTYXQsIDYgRGVjIDIwMjUgMDc6MzU6MzAgKzAxMDAKU3ViamVjdDogW1BB VENIIDEwLzExXSB0cmFuc2FjdGlvbmFsIERETCAtIENSRUFURSBWQVJJQUJMRSwgRFJPUCBWQVJJ QUJMRQoKLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMgICAgICAgICAgICAg fCAgIDUgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwg MjE3ICsrKysrKysrKysrKysrKystLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5oICAgICAgIHwgICAyICsKIC4uLi9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwu b3V0ICAgICAgICB8ICAzOCArKysKIC4uLi9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19k ZGwuc3FsICAgICB8ICAyMSArKwogNSBmaWxlcyBjaGFuZ2VkLCAyNTggaW5zZXJ0aW9ucygrKSwg MjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0v eGFjdC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCmluZGV4IDA5MmUxOTdl YmEzLi44YTgwZTljMDBhZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0v eGFjdC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3QuYwpAQCAtMzksNiAr MzksNyBAQAogI2luY2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv dGFibGVjbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgorI2luY2x1ZGUgImNv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tb24vcGdfcHJuZy5oIgog I2luY2x1ZGUgImV4ZWN1dG9yL3NwaS5oIgogI2luY2x1ZGUgImxpYnBxL2JlLWZzc3R1YnMuaCIK QEAgLTIzMzMsNiArMjMzNCw5IEBAIENvbW1pdFRyYW5zYWN0aW9uKHZvaWQpCiAJLyogY2xvc2Ug bGFyZ2Ugb2JqZWN0cyBiZWZvcmUgbG93ZXItbGV2ZWwgY2xlYW51cCAqLwogCUF0RU9YYWN0X0xh cmdlT2JqZWN0KHRydWUpOwogCisJLyogcmVtb3ZlIHN0YWNrZWQgc2Vzc2lvbiB2YXJpYWJsZXMg Ki8KKwlBdFByZUVPWGFjdF9TZXNzaW9uVmFyaWFibGVzKHRydWUpOworCiAJLyoKIAkgKiBJbnNl cnQgbm90aWZpY2F0aW9ucyBzZW50IGJ5IE5PVElGWSBjb21tYW5kcyBpbnRvIHRoZSBxdWV1ZS4g IFRoaXMKIAkgKiBzaG91bGQgYmUgbGF0ZSBpbiB0aGUgcHJlLWNvbW1pdCBzZXF1ZW5jZSB0byBt aW5pbWl6ZSB0aW1lIHNwZW50CkBAIC0yOTM3LDYgKzI5NDEsNyBAQCBBYm9ydFRyYW5zYWN0aW9u KHZvaWQpCiAJQXRBYm9ydF9Qb3J0YWxzKCk7CiAJc21nckRvUGVuZGluZ1N5bmNzKGZhbHNlLCBp c19wYXJhbGxlbF93b3JrZXIpOwogCUF0RU9YYWN0X0xhcmdlT2JqZWN0KGZhbHNlKTsKKwlBdFBy ZUVPWGFjdF9TZXNzaW9uVmFyaWFibGVzKGZhbHNlKTsKIAlBdEFib3J0X05vdGlmeSgpOwogCUF0 RU9YYWN0X1JlbGF0aW9uTWFwKGZhbHNlLCBpc19wYXJhbGxlbF93b3JrZXIpOwogCUF0QWJvcnRf VHdvcGhhc2UoKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCAy MTM0NTIxNzg2My4uMzZlMjQzYjNlZDUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmMKQEAgLTU5LDYgKzU5LDExIEBAIHR5cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEK IAogCWludDE2CQl0eXBsZW47CiAJYm9vbAkJdHlwYnl2YWw7CisKKwlzdHJ1Y3QgU1ZhcmlhYmxl RGF0YSAqcHJldjsKKwlib29sCQlzdGFja2VkOworCUxvY2FsVHJhbnNhY3Rpb25JZCBjcmVhdGVk X2x4aWQ7CisJTG9jYWxUcmFuc2FjdGlvbklkIGRyb3BwZWRfbHhpZDsKIH0gU1ZhcmlhYmxlRGF0 YTsKIAogdHlwZWRlZiBTVmFyaWFibGVEYXRhICpTVmFyaWFibGU7CkBAIC02Nyw2ICs3MiwxNCBA QCBzdGF0aWMgSFRBQiAqc2Vzc2lvbnZhcnMgPSBOVUxMOwkvKiBoYXNoIHRhYmxlIGZvciBzZXNz aW9uIHZhcmlhYmxlcyAqLwogCiBzdGF0aWMgTWVtb3J5Q29udGV4dCBTVmFyaWFibGVNZW1vcnlD b250ZXh0ID0gTlVMTDsKIAorLyoKKyAqIFdoZW4gd2UgdG8gcmVtb3ZlIGNvbW1pdHRlZCBkcm9w cGVkIHZhcmlhYmxlcyBvciB1bmNvbW1pdHRlZAorICogY3JlYXRlZCB2YXJpYWJsZXMgZnJvbSBz ZXNzaW9udmFycyB0YWIuIGNyZWF0ZWRfb3JfZHJvcHBlZF9seGlkCisgKiBpcyB0cmFuc2FjdGlv biBpZCBvZiB0cmFuc2FjdGlvbiB3aGVuIHNvbWUgb2YgRFJPUCBvciBDUkVBVEUgdmFyaWFibGUK KyAqIHdhcyBleGVjdXRlZC4KKyAqLworc3RhdGljIExvY2FsVHJhbnNhY3Rpb25JZCBjcmVhdGVk X29yX2Ryb3BwZWRfbHhpZCA9IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQ7CisKIC8qCiAgKiBD cmVhdGUgdGhlIGhhc2ggdGFibGUgZm9yIHN0b3Jpbmcgc2Vzc2lvbiB2YXJpYWJsZXMuCiAgKi8K QEAgLTEwOCw2ICsxMjEsMTQgQEAgc2VhcmNoX3ZhcmlhYmxlKGNoYXIgKnZhcm5hbWUsIGJvb2wg bWlzc2luZ19vaykKIAlzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMs IHZhcm5hbWUsCiAJCQkJCQkJCSAgIEhBU0hfRklORCwgTlVMTCk7CiAKKwkvKiBTZXNzaW9uIHZh cmlhYmxlIGNhbiBiZSBkcm9wcGVkIGluc2lkZSBjdXJyZW50IHRyYW5zYWN0aW9uICovCisJaWYg KHN2YXIgJiYgc3Zhci0+ZHJvcHBlZF9seGlkICE9IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQp CisJeworCQlBc3NlcnQoY3JlYXRlZF9vcl9kcm9wcGVkX2x4aWQgPT0gTXlQcm9jLT52eGlkLmx4 aWQpOworCQlBc3NlcnQoc3Zhci0+ZHJvcHBlZF9seGlkID09IE15UHJvYy0+dnhpZC5seGlkKTsK KwkJc3ZhciA9IE5VTEw7CisJfQorCiAJaWYgKCFzdmFyICYmICFtaXNzaW5nX29rKQogCQllcmVw b3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCkBAIC0y NDAsNiArMjYxLDcgQEAgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVT ZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAlPaWQJCQl0eXBjb2xsYXRpb247CiAJT2lkCQkJdmFyb3du ZXIgPSBHZXRVc2VySWQoKTsKIAlTVmFyaWFibGUJc3ZhcjsKKwlTVmFyaWFibGUJcHJldl9zdmFy ID0gTlVMTDsKIAlib29sCQlmb3VuZDsKIAlIZWFwVHVwbGUJcHJvY3R1cDsKIAlGb3JtX3BnX3By b2MgcHJvYzsKQEAgLTMwMiwxOSArMzI0LDM3IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAKIAlpZiAoZm91bmQpCiAJewot CQlpZiAoc3RtdC0+aWZfbm90X2V4aXN0cykKKwkJaWYgKHN2YXItPmRyb3BwZWRfbHhpZCA9PSBJ bnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkKQogCQl7Ci0JCQllcmVwb3J0KE5PVElDRSwKLQkJCQkJ KGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKLQkJCQkJIGVycm1zZygic2Vzc2lv biB2YXJpYWJsZSBcIiVzXCIgYWxyZWFkeSBleGlzdHMsIHNraXBwaW5nIiwKLQkJCQkJCQlzdG10 LT5uYW1lKSkpOwotCQkJcmV0dXJuOworCQkJaWYgKHN0bXQtPmlmX25vdF9leGlzdHMpCisJCQl7 CisJCQkJZXJlcG9ydChOT1RJQ0UsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9P QkpFQ1QpLAorCQkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgYWxyZWFkeSBl eGlzdHMsIHNraXBwaW5nIiwKKwkJCQkJCQkJc3RtdC0+bmFtZSkpKTsKKwkJCQlyZXR1cm47CisJ CQl9CisJCQllbHNlCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVf RFVQTElDQVRFX09CSkVDVCksCisJCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNc IiBhbHJlYWR5IGV4aXN0cyIsCisJCQkJCQkJCXN0bXQtPm5hbWUpKSk7CiAJCX0KIAkJZWxzZQot CQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJKGVycmNvZGUoRVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNU KSwKLQkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgYWxyZWFkeSBleGlzdHMi LAotCQkJCQkJCXN0bXQtPm5hbWUpKSk7CisJCXsKKwkJCU1lbW9yeUNvbnRleHQgb2xkY3h0Owor CisJCQlBc3NlcnQoY3JlYXRlZF9vcl9kcm9wcGVkX2x4aWQgPT0gTXlQcm9jLT52eGlkLmx4aWQp OworCQkJQXNzZXJ0KHN2YXItPmRyb3BwZWRfbHhpZCA9PSBNeVByb2MtPnZ4aWQubHhpZCk7CisK KwkJCW9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhTVmFyaWFibGVNZW1vcnlDb250ZXh0 KTsKKwkJCXByZXZfc3ZhciA9IHBhbGxvYyhzaXplb2YoU1ZhcmlhYmxlRGF0YSkpOworCQkJbWVt Y3B5KHByZXZfc3Zhciwgc3Zhciwgc2l6ZW9mKFNWYXJpYWJsZURhdGEpKTsKKwkJCXByZXZfc3Zh ci0+c3RhY2tlZCA9IHRydWU7CisJCQltZW1zZXQoc3ZhciwgMCwgc2l6ZW9mKFNWYXJpYWJsZURh dGEpKTsKKworCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7CisJCX0KIAl9CiAKIAlu YW1lc3RyY3B5KCZzdmFyLT52YXJuYW1lLCBzdG10LT5uYW1lKTsKQEAgLTMyNyw2ICszNjcsMTIg QEAgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3Rt dCAqc3RtdCkKIAogCXN2YXItPnZhbHVlID0gKERhdHVtKSAwOwogCXN2YXItPmlzbnVsbCA9IHRy dWU7CisKKwlzdmFyLT5wcmV2ID0gcHJldl9zdmFyOworCXN2YXItPnN0YWNrZWQgPSBmYWxzZTsK KwlzdmFyLT5kcm9wcGVkX2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOworCXN2YXIt PmNyZWF0ZWRfbHhpZCA9IE15UHJvYy0+dnhpZC5seGlkOworCWNyZWF0ZWRfb3JfZHJvcHBlZF9s eGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CiB9CiAKIC8qCkBAIC0zNjEsMTQgKzQwNywxMjkgQEAg RHJvcFZhcmlhYmxlQnlOYW1lKERyb3BTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAkJCQkgZXJybXNn KCJtdXN0IGJlIG93bmVyIG9mIHNlc3Npb24gdmFyaWFibGUgJXMiLAogCQkJCQkJc3RtdC0+bmFt ZSkpKTsKIAotCWlmICghc3Zhci0+dHlwYnl2YWwgJiYgIXN2YXItPmlzbnVsbCkKKwlzdmFyLT5k cm9wcGVkX2x4aWQgPSBNeVByb2MtPnZ4aWQubHhpZDsKKwljcmVhdGVkX29yX2Ryb3BwZWRfbHhp ZCA9IE15UHJvYy0+dnhpZC5seGlkOworfQorCitzdGF0aWMgdm9pZAorZnJlZV9zdmFyX3ZhbHVl KFNWYXJpYWJsZSBzdmFyKQoreworCWlmICghc3Zhci0+aXNudWxsICYmICFzdmFyLT50eXBieXZh bCkKIAkJcGZyZWUoRGF0dW1HZXRQb2ludGVyKHN2YXItPnZhbHVlKSk7Cit9CisKK3N0YXRpYyB2 b2lkCitmcmVlX3N0YWNrZWRfc3ZhcnMoU1ZhcmlhYmxlIHN2YXIpCit7CisJd2hpbGUgKHN2YXIp CisJeworCQlTVmFyaWFibGUJY3VycmVudCA9IHN2YXI7CisKKwkJZnJlZV9zdmFyX3ZhbHVlKGN1 cnJlbnQpOworCQlzdmFyID0gY3VycmVudC0+cHJldjsKKwkJcGZyZWUoY3VycmVudCk7CisJfQor fQorCisvKgorICogcmVtb3ZlIGRyb3BwZWQgY29tbWl0dGVkIGVudHJpZXMgb3IgY3JlYXRlZCB1 bmNvbW1pdHRlZCBlbnRyaWVzCisgKiBmcm9tIGhhc2ggdGFibGUuCisgKi8KK3ZvaWQKK0F0UHJl RU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCkKK3sKKwlpZiAoY3JlYXRlZF9v cl9kcm9wcGVkX2x4aWQgIT0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZCkKKwl7CisJCUhBU0hf U0VRX1NUQVRVUyBzdGF0dXM7CisJCVNWYXJpYWJsZQlzdmFyOwogCi0JaWYgKGhhc2hfc2VhcmNo KHNlc3Npb252YXJzLAotCQkJCQkgICBzdG10LT5uYW1lLAotCQkJCQkgICBIQVNIX1JFTU9WRSwK LQkJCQkJICAgTlVMTCkgPT0gTlVMTCkKLQkJZWxvZyhFUlJPUiwgImhhc2ggdGFibGUgY29ycnVw dGVkIik7CisJCUFzc2VydChjcmVhdGVkX29yX2Ryb3BwZWRfbHhpZCA9PSBNeVByb2MtPnZ4aWQu bHhpZCk7CisJCUFzc2VydChzZXNzaW9udmFycyk7CisKKwkJaGFzaF9zZXFfaW5pdCgmc3RhdHVz LCBzZXNzaW9udmFycyk7CisKKwkJd2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFf c2VhcmNoKCZzdGF0dXMpKSAhPSBOVUxMKQorCQl7CisJCQlpZiAoKHN2YXItPmRyb3BwZWRfbHhp ZCAhPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkKSB8fAorCQkJCShzdmFyLT5jcmVhdGVkX2x4 aWQgIT0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZCkpCisJCQl7CisJCQkJQXNzZXJ0KChzdmFy LT5kcm9wcGVkX2x4aWQgPT0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZCkgfHwKKwkJCQkJCShz dmFyLT5kcm9wcGVkX2x4aWQgPT0gTXlQcm9jLT52eGlkLmx4aWQpKTsKKworCQkJCUFzc2VydCgo c3Zhci0+Y3JlYXRlZF9seGlkID09IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQpIHx8CisJCQkJ CQkoc3Zhci0+Y3JlYXRlZF9seGlkID09IE15UHJvYy0+dnhpZC5seGlkKSk7CisKKwkJCQlpZiAo aXNDb21taXQpCisJCQkJeworCQkJCQlpZiAoc3Zhci0+ZHJvcHBlZF9seGlkID09IE15UHJvYy0+ dnhpZC5seGlkKQorCQkJCQl7CisJCQkJCQlmcmVlX3N0YWNrZWRfc3ZhcnMoc3Zhci0+cHJldik7 CisJCQkJCQlmcmVlX3N2YXJfdmFsdWUoc3Zhcik7CisKKwkJCQkJCSh2b2lkKSBoYXNoX3NlYXJj aChzZXNzaW9udmFycywKKwkJCQkJCQkJCQkgICBOYW1lU3RyKHN2YXItPnZhcm5hbWUpLAorCQkJ CQkJCQkJCSAgIEhBU0hfUkVNT1ZFLAorCQkJCQkJCQkJCSAgIE5VTEwpOworCQkJCQkJc3ZhciA9 IE5VTEw7CisJCQkJCX0KKwkJCQkJZWxzZQorCQkJCQl7CisJCQkJCQlmcmVlX3N0YWNrZWRfc3Zh cnMoc3Zhci0+cHJldik7CisJCQkJCQlzdmFyLT5wcmV2ID0gTlVMTDsKKwkJCQkJCXN2YXItPmNy ZWF0ZWRfbHhpZCA9IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQ7CisJCQkJCX0KKwkJCQl9CisJ CQkJZWxzZQorCQkJCXsKKwkJCQkJU1ZhcmlhYmxlCWl0ZXI7CisKKwkJCQkJLyoKKwkJCQkJICog V2UgaGF2ZSB0byBzZWFyY2ggdmFsdWUgdGhlIG9sZGVzdCBzdmFyIGluIHRoZSBzdGFjay4gSWYg aXQgaXMganVzdCBkcm9wcGVkLAorCQkJCQkgKiB0aGVuIHdlIHJldmVydCBkcm9wcGVkIGZsYWcu IElmIGl0IGlzIGNyZWF0ZWQgaW4gY3VycmVudCB0cmFuc2FjdGlvbiwgdGhlbgorCQkJCQkgKiB3 ZSByZW1vdmUgdGhpcyBzdmFyIHRvby4KKwkJCQkJICovCisJCQkJCWl0ZXIgPSBzdmFyOworCQkJ CQl3aGlsZSAoaXRlci0+cHJldikKKwkJCQkJeworCQkJCQkJU1ZhcmlhYmxlCWN1cnJlbnQgPSBp dGVyOworCisJCQkJCQlmcmVlX3N2YXJfdmFsdWUoY3VycmVudCk7CisKKwkJCQkJCWl0ZXIgPSBj dXJyZW50LT5wcmV2OworCisJCQkJCQlpZiAoY3VycmVudC0+c3RhY2tlZCkKKwkJCQkJCQlwZnJl ZShjdXJyZW50KTsKKwkJCQkJfQorCisJCQkJCWlmIChpdGVyLT5jcmVhdGVkX2x4aWQgPT0gTXlQ cm9jLT52eGlkLmx4aWQpCisJCQkJCXsKKwkJCQkJCWZyZWVfc3Zhcl92YWx1ZShpdGVyKTsKKwkJ CQkJCWlmIChpdGVyLT5zdGFja2VkKQorCQkJCQkJCXBmcmVlKGl0ZXIpOworCisJCQkJCQkodm9p ZCkgaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsCisJCQkJCQkJCQkJICAgTmFtZVN0cihzdmFyLT52 YXJuYW1lKSwKKwkJCQkJCQkJCQkgICBIQVNIX1JFTU9WRSwKKwkJCQkJCQkJCQkgICBOVUxMKTsK KwkJCQkJfQorCQkJCQllbHNlCisJCQkJCXsKKwkJCQkJCWlmIChpdGVyLT5zdGFja2VkKQorCQkJ CQkJeworCQkJCQkJCW1lbWNweShzdmFyLCBpdGVyLCBzaXplb2YoU1ZhcmlhYmxlRGF0YSkpOwor CQkJCQkJCXN2YXItPnN0YWNrZWQgPSBmYWxzZTsKKwkJCQkJCQlwZnJlZShpdGVyKTsKKwkJCQkJ CX0KKworCQkJCQkJLyogcmV2ZXJ0IGRyb3BwZWQgZmxhZyAqLworCQkJCQkJc3Zhci0+ZHJvcHBl ZF9seGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKKwkJCQkJfQorCQkJCX0KKwkJCX0K KwkJfQorCisJCWNyZWF0ZWRfb3JfZHJvcHBlZF9seGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rp b25JZDsKKwl9CiB9CiAKIC8qCkBAIC00NTMsMjMgKzYxNCwyOSBAQCBFeGVjdXRlTGV0U3RtdChQ YXJzZVN0YXRlICpwc3RhdGUsCiB9CiAKIC8qCi0gKiBGYXN0IGRyb3Agb2YgdGhlIGNvbXBsZXRl IGNvbnRlbnQgb2YgdGhlIHNlc3Npb24gdmFyaWFibGVzIGhhc2ggdGFibGUsIGFuZAotICogY2xl YW51cCBvZiBhbnkgbGlzdCB0aGF0IHdvdWxkbid0IGJlIHJlbGV2YW50IGFueW1vcmUuCiAgKiBU aGlzIGlzIHVzZWQgYnkgdGhlIERJU0NBUkQgVEVNUC4KICAqLwogdm9pZAogUmVzZXRTZXNzaW9u VmFyaWFibGVzKHZvaWQpCiB7Ci0JLyogZGVzdHJveSBoYXNoIHRhYmxlIGFuZCByZXNldCByZWxh dGVkIG1lbW9yeSBjb250ZXh0ICovCisJLyogbWFyayBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMgYXMg ZHJvcHBlZCAqLwogCWlmIChzZXNzaW9udmFycykKIAl7Ci0JCWhhc2hfZGVzdHJveShzZXNzaW9u dmFycyk7Ci0JCXNlc3Npb252YXJzID0gTlVMTDsKLQl9CisJCUhBU0hfU0VRX1NUQVRVUyBzdGF0 dXM7CisJCVNWYXJpYWJsZQlzdmFyOworCQlib29sCQlmb3VuZCA9IGZhbHNlOwogCi0JLyogcmVs ZWFzZSBtZW1vcnkgYWxsb2NhdGVkIGJ5IHNlc3Npb24gdmFyaWFibGVzICovCi0JaWYgKFNWYXJp YWJsZU1lbW9yeUNvbnRleHQgIT0gTlVMTCkKLQkJTWVtb3J5Q29udGV4dFJlc2V0KFNWYXJpYWJs ZU1lbW9yeUNvbnRleHQpOworCQloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJzKTsK KworCQl3aGlsZSAoKHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1cykp ICE9IE5VTEwpCisJCXsKKwkJCXN2YXItPmRyb3BwZWRfbHhpZCA9IE15UHJvYy0+dnhpZC5seGlk OworCQkJZm91bmQgPSB0cnVlOworCQl9CisKKwkJaWYgKGZvdW5kKQorCQkJY3JlYXRlZF9vcl9k cm9wcGVkX2x4aWQgPSBNeVByb2MtPnZ4aWQubHhpZDsKKwl9CiB9CiAKIC8qCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggM2YwN2FlNTVhYWMuLjEyMThjNTY2NzY3 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKysr IGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0zOSw0ICszOSw2 IEBAIGV4dGVybiB2b2lkIEV4ZWN1dGVMZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3Rt dCAqc3RtdCwgUGFyYW1MaXN0SW5mbyBwYXJhCiAKIGV4dGVybiB2b2lkIFJlc2V0U2Vzc2lvblZh cmlhYmxlcyh2b2lkKTsKIAorZXh0ZXJuIHZvaWQgQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxl cyhib29sIGlzQ29tbWl0KTsKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5vdXQKaW5kZXggYjhkNmY2Mjk1OTYuLmMxMDY4 MDUxMmNlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzX2RkbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlc19kZGwub3V0CkBAIC03MCwzICs3MCw0MSBAQCBTRUxFQ1QgKiBGUk9NIHBnX2dldF90 ZW1wb3Jhcnlfc2Vzc2lvbl92YXJpYWJsZXNfbmFtZXMoKTsKIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAorQ1JFQVRFIFRFTVAgVkFSSUFCTEUg eCBBUyB2YXJjaGFyOworTEVUIHggPSAnSGknOworQkVHSU47CitEUk9QIFZBUklBQkxFIHg7CitD UkVBVEUgVEVNUCBWQVJJQUJMRSB4IEFTIHZhcmNoYXI7CitMRVQgeCA9ICdIZWxsbyc7CitTRUxF Q1QgVkFSSUFCTEUoeCk7CisgICB4ICAgCistLS0tLS0tCisgSGVsbG8KKygxIHJvdykKKworQ09N TUlUOworU0VMRUNUIFZBUklBQkxFKHgpOworICAgeCAgIAorLS0tLS0tLQorIEhlbGxvCisoMSBy b3cpCisKK0xFVCB4ID0gJ0hpJzsKK0JFR0lOOworRFJPUCBWQVJJQUJMRSB4OworQ1JFQVRFIFRF TVAgVkFSSUFCTEUgeCBBUyB2YXJjaGFyOworTEVUIHggPSAnSGVsbG8nOworU0VMRUNUIFZBUklB QkxFKHgpOworICAgeCAgIAorLS0tLS0tLQorIEhlbGxvCisoMSByb3cpCisKK1JPTExCQUNLOwor U0VMRUNUIFZBUklBQkxFKHgpOworIHggIAorLS0tLQorIEhpCisoMSByb3cpCisKK0RST1AgVkFS SUFCTEUgeDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFi bGVzX2RkbC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwu c3FsCmluZGV4IDAyYWYzNjUzMzhmLi45ZTc5ZmVlZDkyYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLnNxbAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwuc3FsCkBAIC03OCwzICs3OCwyNCBAQCBTRUxF Q1QgKiBGUk9NIHBnX2dldF90ZW1wb3Jhcnlfc2Vzc2lvbl92YXJpYWJsZXNfbmFtZXMoKTsKIERS T1AgVkFSSUFCTEUgeDsKIERST1AgVkFSSUFCTEUgeTsKIFNFTEVDVCAqIEZST00gcGdfZ2V0X3Rl bXBvcmFyeV9zZXNzaW9uX3ZhcmlhYmxlc19uYW1lcygpOworCitDUkVBVEUgVEVNUCBWQVJJQUJM RSB4IEFTIHZhcmNoYXI7CitMRVQgeCA9ICdIaSc7CitCRUdJTjsKK0RST1AgVkFSSUFCTEUgeDsK K0NSRUFURSBURU1QIFZBUklBQkxFIHggQVMgdmFyY2hhcjsKK0xFVCB4ID0gJ0hlbGxvJzsKK1NF TEVDVCBWQVJJQUJMRSh4KTsKK0NPTU1JVDsKK1NFTEVDVCBWQVJJQUJMRSh4KTsKKworTEVUIHgg PSAnSGknOworQkVHSU47CitEUk9QIFZBUklBQkxFIHg7CitDUkVBVEUgVEVNUCBWQVJJQUJMRSB4 IEFTIHZhcmNoYXI7CitMRVQgeCA9ICdIZWxsbyc7CitTRUxFQ1QgVkFSSUFCTEUoeCk7CitST0xM QkFDSzsKK1NFTEVDVCBWQVJJQUJMRSh4KTsKKworRFJPUCBWQVJJQUJMRSB4OwotLSAKMi41Mi4w Cgo= --0000000000008b48e906456c698a Content-Type: application/x-patch; name="v20251208-0007-DISCARD-TEMP.patch" Content-Disposition: attachment; filename="v20251208-0007-DISCARD-TEMP.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miwu5rjd3 RnJvbSA1ZWVmMzEzN2I4NTA1ZjFlODE2NGQzMzlhMTRhZGFkOGY3Nzk0ZTY0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBNb24sIDI0IE5vdiAyMDI1IDIwOjA0OjE2ICswMTAwClN1YmplY3Q6IFtQ QVRDSCAwNy8xMV0gRElTQ0FSRCBURU1QCgotLS0KIGRvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5z Z21sICAgICAgICAgICAgICAgICB8ICAzICsrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlzY2Fy ZC5jICAgICAgICAgICAgICAgIHwgIDMgKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9u X3ZhcmlhYmxlLmMgICAgICAgfCAyMCArKysrKysrKysrKysrKysrKysrCiBzcmMvaW5jbHVkZS9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggICAgICAgfCAgMiArKwogLi4uL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzX2RkbC5vdXQgICAgICAgIHwgIDcgKysrKysrKwogLi4uL3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5zcWwgICAgIHwgMTAgKysrKysrKysrKwogNiBmaWxl cyBjaGFuZ2VkLCA0NCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQu c2dtbAppbmRleCBiZjQ0YzUyM2NhYy4uMjcwMGY3YjdjZDAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9yZWYvZGlzY2FyZC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21s CkBAIC03MCw3ICs3MCw4IEBAIERJU0NBUkQgeyBBTEwgfCBQTEFOUyB8IFNFUVVFTkNFUyB8IFRF TVBPUkFSWSB8IFRFTVAgfQogICAgIDx0ZXJtPjxsaXRlcmFsPlRFTVBPUkFSWTwvbGl0ZXJhbD4g b3IgPGxpdGVyYWw+VEVNUDwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgogICAgICA8 cGFyYT4KLSAgICAgIERyb3BzIGFsbCB0ZW1wb3JhcnkgdGFibGVzIGNyZWF0ZWQgaW4gdGhlIGN1 cnJlbnQgc2Vzc2lvbi4KKyAgICAgIERyb3BzIGFsbCB0ZW1wb3JhcnkgdGFibGVzIGFuZCB0ZW1w b3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMgY3JlYXRlZCBpbgorICAgICAgdGhlIGN1cnJlbnQgc2Vz c2lvbi4KICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Rpc2NhcmQuYyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2Rpc2NhcmQuYwppbmRleCA4MTMzOWE3NWE1Mi4uZGUzMjJjMzVjNTEgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Rpc2NhcmQuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9kaXNjYXJkLmMKQEAgLTE5LDYgKzE5LDcgQEAKICNpbmNsdWRlICJjb21tYW5kcy9k aXNjYXJkLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJlcGFyZS5oIgogI2luY2x1ZGUgImNvbW1h bmRzL3NlcXVlbmNlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgog I2luY2x1ZGUgInV0aWxzL2d1Yy5oIgogI2luY2x1ZGUgInV0aWxzL3BvcnRhbC5oIgogCkBAIC00 Niw2ICs0Nyw3IEBAIERpc2NhcmRDb21tYW5kKERpc2NhcmRTdG10ICpzdG10LCBib29sIGlzVG9w TGV2ZWwpCiAKIAkJY2FzZSBESVNDQVJEX1RFTVA6CiAJCQlSZXNldFRlbXBUYWJsZU5hbWVzcGFj ZSgpOworCQkJUmVzZXRTZXNzaW9uVmFyaWFibGVzKCk7CiAJCQlicmVhazsKIAogCQlkZWZhdWx0 OgpAQCAtNzUsNCArNzcsNSBAQCBEaXNjYXJkQWxsKGJvb2wgaXNUb3BMZXZlbCkKIAlSZXNldFBs YW5DYWNoZSgpOwogCVJlc2V0VGVtcFRhYmxlTmFtZXNwYWNlKCk7CiAJUmVzZXRTZXF1ZW5jZUNh Y2hlcygpOworCVJlc2V0U2Vzc2lvblZhcmlhYmxlcygpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDQ3M2ExODFkMzM2Li44ZGJhMTUxNTFmNyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtNDMyLDMgKzQzMiwyMyBAQCBF eGVjdXRlTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsCiAKIAlQb3BBY3RpdmVTbmFwc2hvdCgp OwogfQorCisvKgorICogRmFzdCBkcm9wIG9mIHRoZSBjb21wbGV0ZSBjb250ZW50IG9mIHRoZSBz ZXNzaW9uIHZhcmlhYmxlcyBoYXNoIHRhYmxlLCBhbmQKKyAqIGNsZWFudXAgb2YgYW55IGxpc3Qg dGhhdCB3b3VsZG4ndCBiZSByZWxldmFudCBhbnltb3JlLgorICogVGhpcyBpcyB1c2VkIGJ5IHRo ZSBESVNDQVJEIFRFTVAuCisgKi8KK3ZvaWQKK1Jlc2V0U2Vzc2lvblZhcmlhYmxlcyh2b2lkKQor eworCS8qIGRlc3Ryb3kgaGFzaCB0YWJsZSBhbmQgcmVzZXQgcmVsYXRlZCBtZW1vcnkgY29udGV4 dCAqLworCWlmIChzZXNzaW9udmFycykKKwl7CisJCWhhc2hfZGVzdHJveShzZXNzaW9udmFycyk7 CisJCXNlc3Npb252YXJzID0gTlVMTDsKKwl9CisKKwkvKiByZWxlYXNlIG1lbW9yeSBhbGxvY2F0 ZWQgYnkgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwlpZiAoU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCAh PSBOVUxMKQorCQlNZW1vcnlDb250ZXh0UmVzZXQoU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCk7Cit9 CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9z cmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggYzRiNGQ5ZTY4MzIu LmNjMWFhN2NlMjNiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBA IC0zNyw0ICszNyw2IEBAIGV4dGVybiB2b2lkIGdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlw bW9kX2NvbGxpZChjaGFyICp2YXJuYW1lLAogZXh0ZXJuIHZvaWQgRXhlY3V0ZUxldFN0bXQoUGFy c2VTdGF0ZSAqcHN0YXRlLCBMZXRTdG10ICpzdG10LCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKIAkJ CQkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LCBRdWVyeUNvbXBsZXRpb24gKnFjKTsK IAorZXh0ZXJuIHZvaWQgUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpOworCiAjZW5kaWYKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZGRs Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLm91 dAppbmRleCBlMzRlNzAwMjJiYy4uNWRiMzMwYjg2ZjUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5vdXQKQEAgLTQxLDMgKzQxLDEw IEBAIERST1AgVkFSSUFCTEUgeDsKIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBEUk9QIFJPTEUgcmVn cmVzc19zZXNzaW9uX3ZhcmlhYmxlX3Rlc3Rfcm9sZV8wMTsKIERST1AgUk9MRSByZWdyZXNzX3Nl c3Npb25fdmFyaWFibGVfdGVzdF9yb2xlXzAyOworQ1JFQVRFIFRFTVAgVkFSSUFCTEUgeCBBUyBp bnQ7CistLSBzaG91bGQgZmFpbAorQ1JFQVRFIFRFTVAgVkFSSUFCTEUgeCBBUyBpbnQ7CitFUlJP UjogIHNlc3Npb24gdmFyaWFibGUgIngiIGFscmVhZHkgZXhpc3RzCitESVNDQVJEIFRFTVA7Cist LSBzaG91bGQgYmUgb2sKK0NSRUFURSBURU1QIFZBUklBQkxFIHggQVMgaW50OwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5zcWwKaW5kZXggNzdhZjlkZTBk N2MuLjMxY2NhNjUzMGZlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlc19kZGwuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFy aWFibGVzX2RkbC5zcWwKQEAgLTU0LDMgKzU0LDEzIEBAIERST1AgVkFSSUFCTEUgeDsKIFNFVCBS T0xFIFRPIERFRkFVTFQ7CiBEUk9QIFJPTEUgcmVncmVzc19zZXNzaW9uX3ZhcmlhYmxlX3Rlc3Rf cm9sZV8wMTsKIERST1AgUk9MRSByZWdyZXNzX3Nlc3Npb25fdmFyaWFibGVfdGVzdF9yb2xlXzAy OworCitDUkVBVEUgVEVNUCBWQVJJQUJMRSB4IEFTIGludDsKKworLS0gc2hvdWxkIGZhaWwKK0NS RUFURSBURU1QIFZBUklBQkxFIHggQVMgaW50OworCitESVNDQVJEIFRFTVA7CisKKy0tIHNob3Vs ZCBiZSBvaworQ1JFQVRFIFRFTVAgVkFSSUFCTEUgeCBBUyBpbnQ7Ci0tIAoyLjUyLjAKCg== --0000000000008b48e906456c698a Content-Type: application/x-patch; name="v20251208-0008-support-CREATE-IF-NOT-EXISTS-and-DROP-IF-EXISTS.patch" Content-Disposition: attachment; filename="v20251208-0008-support-CREATE-IF-NOT-EXISTS-and-DROP-IF-EXISTS.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miwu5rir2 RnJvbSA4YmJiNjliYjc1YmIyNDk0NTM3MzhhNmU4NzQxYzE4MzI4NzlmZmJiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUaHUsIDQgRGVjIDIwMjUgMDY6MTc6NTQgKzAxMDAKU3ViamVjdDogW1BB VENIIDA4LzExXSBzdXBwb3J0IENSRUFURSBJRiBOT1QgRVhJU1RTIGFuZCBEUk9QIElGIEVYSVNU UwoKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAx MiArKysrLQogZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwgICAgICAgICAgIHwg MTIgKysrKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8 IDQ2ICsrKysrKysrKysrKystLS0tLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAg ICAgICAgICAgICAgICB8IDMxICsrKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0 eS5jICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmggICAgICAgfCAgMiArLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oICAgICAgICAgICAgICAgIHwgIDQgKy0KIC4uLi9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl c19kZGwub3V0ICAgICAgICB8ICA2ICsrKwogLi4uL3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFi bGVzX2RkbC5zcWwgICAgIHwgIDYgKysrCiA5IGZpbGVzIGNoYW5nZWQsIDEwMCBpbnNlcnRpb25z KCspLCAyMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApp bmRleCAxMzE1YjEyNDhjNy4uZGVmMzY4ZmMyMzcgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9y ZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFy aWFibGUuc2dtbApAQCAtMjYsNyArMjYsNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAog IDxyZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4KLUNSRUFURSB7IFRFTVAgfCBURU1QT1JBUlkg fSBWQVJJQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFi bGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBs YWNlYWJsZT4KK0NSRUFURSB7IFRFTVAgfCBURU1QT1JBUlkgfSBWQVJJQUJMRSBbIElGIE5PVCBF WElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNl YWJsZT4KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KICA8cmVmc2VjdDE+CkBAIC02 OSw2ICs2OSwxNiBAQCBDUkVBVEUgeyBURU1QIHwgVEVNUE9SQVJZIH0gVkFSSUFCTEUgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhYwogCiAgIDx2YXJpYWJsZWxpc3Q+ CiAKKyAgIDx2YXJsaXN0ZW50cnkgIGlkPSJzcWwtY3JlYXRldmFyaWFibGUtaWYtbm90LWV4aXN0 cyI+CisgICAgPHRlcm0+PGxpdGVyYWw+SUYgTk9UIEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+Cisg ICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIERvIG5vdCB0aHJvdyBhbiBlcnJvciBp ZiB0aGUgbmFtZSBhbHJlYWR5IGV4aXN0cy4gQSBub3RpY2UgaXMgaXNzdWVkIGluCisgICAgICB0 aGlzIGNhc2UuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50 cnk+CisKICAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1uYW1lIj4KICAg ICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvZHJv cF92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKaW5k ZXggZGVkZTQyZTRmZmIuLjVkZTZhNzM3NDkzIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVm L2Ryb3BfdmFyaWFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUu c2dtbApAQCAtMjYsNyArMjYsNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAogIDxyZWZz eW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4KLURST1AgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgorRFJPUCBWQVJJQUJMRSBbIElGIEVYSVNU UyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KIDwv c3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KIApAQCAtNDIsNiArNDIsMTYgQEAgRFJPUCBW QVJJQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ CiAgPHJlZnNlY3QxPgogICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CiAgIDx2YXJpYWJsZWxp c3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPklGIEVYSVNUUzwvbGl0 ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIERvIG5vdCB0 aHJvdyBhbiBlcnJvciBpZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBkb2VzIG5vdCBleGlzdC4gQSBu b3RpY2UgaXMKKyAgICAgIGlzc3VlZCBpbiB0aGlzIGNhc2UuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAg PHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPjwv dGVybT4KICAgICA8bGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmMKaW5kZXggOGRiYTE1MTUxZjcuLjJiZTIzYTQ1NmFiIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCkBAIC05Nyw3ICs5Nyw3IEBAIGNyZWF0ZV9zZXNzaW9udmFyc19o YXNodGFibGVzKHZvaWQpCiAgKiBSZXR1cm5zIGVudHJ5IG9mIHNlc3Npb24gdmFyaWFibGUgc3Bl Y2lmaWVkIGJ5IG5hbWUKICAqLwogc3RhdGljIFNWYXJpYWJsZQotc2VhcmNoX3ZhcmlhYmxlKGNo YXIgKnZhcm5hbWUpCitzZWFyY2hfdmFyaWFibGUoY2hhciAqdmFybmFtZSwgYm9vbCBtaXNzaW5n X29rKQogewogCVNWYXJpYWJsZQlzdmFyOwogCkBAIC0xMDcsNyArMTA3LDcgQEAgc2VhcmNoX3Zh cmlhYmxlKGNoYXIgKnZhcm5hbWUpCiAJc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VhcmNoKHNl c3Npb252YXJzLCB2YXJuYW1lLAogCQkJCQkJCQkgICBIQVNIX0ZJTkQsIE5VTEwpOwogCi0JaWYg KCFzdmFyKQorCWlmICghc3ZhciAmJiAhbWlzc2luZ19vaykKIAkJZXJlcG9ydChFUlJPUiwKIAkJ CQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAogCQkJCSBlcnJtc2coInNlc3Np b24gdmFyaWFibGUgXCIlc1wiIGRvZXNuJ3QgZXhpc3QiLApAQCAtMTI5LDcgKzEyOSw3IEBAIGdl dF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9kX2NvbGxpZChjaGFyICp2YXJuYW1lLAogewog CVNWYXJpYWJsZQlzdmFyOwogCi0Jc3ZhciA9IHNlYXJjaF92YXJpYWJsZSh2YXJuYW1lKTsKKwlz dmFyID0gc2VhcmNoX3ZhcmlhYmxlKHZhcm5hbWUsIGZhbHNlKTsKIAogCS8qIG9ubHkgb3duZXIg Y2FuIHNldCBjb250ZW50IG9mIHZhcmlhYmxlICovCiAJKnR5cGlkID0gc3Zhci0+dmFydHlwZTsK QEAgLTE0OSw3ICsxNDksNyBAQCBHZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlwZWNoZWNrKGNoYXIg KnZhcm5hbWUsCiAJU1ZhcmlhYmxlCXN2YXI7CiAJRGF0dW0JCXJlc3VsdDsKIAotCXN2YXIgPSBz ZWFyY2hfdmFyaWFibGUodmFybmFtZSk7CisJc3ZhciA9IHNlYXJjaF92YXJpYWJsZSh2YXJuYW1l LCBmYWxzZSk7CiAKIAlpZiAoc3Zhci0+dmFydHlwZSAhPSB0eXBpZCB8fCBzdmFyLT52YXJ0eXBt b2QgIT0gdHlwbW9kKQogCQllcmVwb3J0KEVSUk9SLApAQCAtMTg2LDcgKzE4Niw3IEBAIFNldFNl c3Npb25WYXJpYWJsZVdpdGhUeXBlY2hlY2soY2hhciAqdmFybmFtZSwKIHsKIAlTVmFyaWFibGUJ c3ZhcjsKIAotCXN2YXIgPSBzZWFyY2hfdmFyaWFibGUodmFybmFtZSk7CisJc3ZhciA9IHNlYXJj aF92YXJpYWJsZSh2YXJuYW1lLCBmYWxzZSk7CiAKIAlpZiAoc3Zhci0+dmFydHlwZSAhPSB0eXBp ZCB8fCBzdmFyLT52YXJ0eXBtb2QgIT0gdHlwbW9kKQogCQllcmVwb3J0KEVSUk9SLApAQCAtMzAw LDEwICszMDAsMjEgQEAgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVT ZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAkJCQkJICAgSEFTSF9FTlRFUiwgJmZvdW5kKTsKIAogCWlm IChmb3VuZCkKLQkJZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FU RV9PQkpFQ1QpLAotCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGFscmVhZHkg ZXhpc3RzIiwKLQkJCQkJCXN0bXQtPm5hbWUpKSk7CisJeworCQlpZiAoc3RtdC0+aWZfbm90X2V4 aXN0cykKKwkJeworCQkJZXJlcG9ydChOT1RJQ0UsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRFVQ TElDQVRFX09CSkVDVCksCisJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGFs cmVhZHkgZXhpc3RzLCBza2lwcGluZyIsCisJCQkJCQkJc3RtdC0+bmFtZSkpKTsKKwkJCXJldHVy bjsKKwkJfQorCQllbHNlCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RF X0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNc IiBhbHJlYWR5IGV4aXN0cyIsCisJCQkJCQkJc3RtdC0+bmFtZSkpKTsKKwl9CiAKIAluYW1lc3Ry Y3B5KCZzdmFyLT52YXJuYW1lLCBzdG10LT5uYW1lKTsKIAlzdmFyLT52YXJ0eXBlID0gdHlwZWlk OwpAQCAtMzIxLDcgKzMzMiw3IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwg Q3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAgKiBEcm9wIHZhcmlhYmxlIGJ5IG5hbWUKICAq Lwogdm9pZAotRHJvcFZhcmlhYmxlQnlOYW1lKGNoYXIgKnZhcm5hbWUpCitEcm9wVmFyaWFibGVC eU5hbWUoRHJvcFNlc3Npb25WYXJTdG10ICpzdG10KQogewogCVNWYXJpYWJsZQlzdmFyOwogCkBA IC0zMzMsMjAgKzM0NCwyNyBAQCBEcm9wVmFyaWFibGVCeU5hbWUoY2hhciAqdmFybmFtZSkKIAlQ cmV2ZW50Q29tbWFuZElmUGFyYWxsZWxNb2RlKCJEUk9QIFZBUklBQkxFIik7CiAJUHJldmVudENv bW1hbmREdXJpbmdSZWNvdmVyeSgiRFJPUCBWQVJJQUJMRSIpOwogCi0Jc3ZhciA9IHNlYXJjaF92 YXJpYWJsZSh2YXJuYW1lKTsKKwlzdmFyID0gc2VhcmNoX3ZhcmlhYmxlKHN0bXQtPm5hbWUsIHN0 bXQtPm1pc3Npbmdfb2spOworCWlmICghc3ZhcikKKwl7CisJCWVyZXBvcnQoTk9USUNFLAorCQkJ CShlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGRvZXMgbm90IGV4aXN0cywgc2tpcHBp bmciLAorCQkJCQkJc3RtdC0+bmFtZSkpKTsKKwkJcmV0dXJuOworCX0KIAogCS8qIG9ubHkgb3du ZXIgY2FuIGdldCBjb250ZW50IG9mIHZhcmlhYmxlICovCiAJaWYgKHN2YXItPnZhcm93bmVyICE9 IEdldFVzZXJJZCgpICYmICFzdXBlcnVzZXIoKSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJy Y29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAogCQkJCSBlcnJtc2coIm11c3Qg YmUgb3duZXIgb2Ygc2Vzc2lvbiB2YXJpYWJsZSAlcyIsCi0JCQkJCQl2YXJuYW1lKSkpOworCQkJ CQkJc3RtdC0+bmFtZSkpKTsKIAogCWlmICghc3Zhci0+dHlwYnl2YWwgJiYgIXN2YXItPmlzbnVs bCkKIAkJcGZyZWUoRGF0dW1HZXRQb2ludGVyKHN2YXItPnZhbHVlKSk7CiAKIAlpZiAoaGFzaF9z ZWFyY2goc2Vzc2lvbnZhcnMsCi0JCQkJCSAgIHZhcm5hbWUsCisJCQkJCSAgIHN0bXQtPm5hbWUs CiAJCQkJCSAgIEhBU0hfUkVNT1ZFLAogCQkJCQkgICBOVUxMKSA9PSBOVUxMKQogCQllbG9nKEVS Uk9SLCAiaGFzaCB0YWJsZSBjb3JydXB0ZWQiKTsKQEAgLTM3MCw3ICszODgsNyBAQCBFeGVjdXRl TGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsCiAJY2hhcgkgICAqdmFybmFtZSA9IHF1ZXJ5LT5y ZXN1bHRWYXJpYWJsZTsKIAlTVmFyaWFibGUJc3ZhcjsKIAotCXN2YXIgPSBzZWFyY2hfdmFyaWFi bGUodmFybmFtZSk7CisJc3ZhciA9IHNlYXJjaF92YXJpYWJsZSh2YXJuYW1lLCBmYWxzZSk7CiAK IAkvKiBvbmx5IG93bmVyIGNhbiBzZXQgY29udGVudCBvZiB2YXJpYWJsZSAqLwogCWlmIChzdmFy LT52YXJvd25lciAhPSBHZXRVc2VySWQoKSAmJiAhc3VwZXJ1c2VyKCkpCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRl eCAzMjdlY2Y4ODcxMi4uOGUzNzI1ZGY0MWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNTM0Miw3ICs1MzQy LDcgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToKIC8qKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgog ICoKICAqCQlRVUVSWSA6Ci0gKgkJCQlDUkVBVEUgeyBURU1QIHwgVEVNUE9SQVJZIH0gVkFSSUFC TEUgdmFybmFtZSBbQVNdIHR5cGUKKyAqCQkJCUNSRUFURSB7IFRFTVAgfCBURU1QT1JBUlkgfSBW QVJJQUJMRSBbSUYgTk9UIEVYSVNUUyBdIHZhcm5hbWUgW0FTXSB0eXBlCiAgKgogICoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqLwogCkBAIC01MzU5LDE0ICs1MzU5LDMxIEBAIENyZWF0ZVNlc3Npb25WYXJT dG10OgogCiAJCQkJCW4tPm5hbWUgPSAkNDsKIAkJCQkJbi0+dHlwZU5hbWUgPSAkNjsKKwkJCQkJ bi0+aWZfbm90X2V4aXN0cyA9IGZhbHNlOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQor CQkgIHwgQ1JFQVRFIE9wdFRlbXAgVkFSSUFCTEUgSUZfUCBOT1QgRVhJU1RTIENvbElkIG9wdF9h cyBUeXBlbmFtZQorCQkJCXsKKwkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9k ZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7CisKKwkJCQkJaWYgKCQyICE9IFJFTFBFUlNJU1RFTkNF X1RFTVApCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVB VFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCQkgZXJybXNnKCJvbmx5IHRlbXBvcmFsIHNlc3Np b24gdmFyaWFibGVzIGFyZSBzdXBwb3J0ZWQiKSwKKwkJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9u KEAyKSkpOworCisJCQkJCW4tPm5hbWUgPSAkNzsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkOTsKKwkJ CQkJbi0+aWZfbm90X2V4aXN0cyA9IHRydWU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9 CisKIAkJOwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKgkJUVVFUlkgOgotICoJCQkJ RFJPUCBWQVJJQUJMRSB2YXJuYW1lCisgKgkJCQlEUk9QIFZBUklBQkxFIFsgSUYgRVhJU1RTIF0g dmFybmFtZQogICoKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIApAQCAtNTM3Niw4ICs1MzkzLDE4 IEBAIERyb3BTZXNzaW9uVmFyU3RtdDoKIAkJCQkJRHJvcFNlc3Npb25WYXJTdG10ICpuID0gbWFr ZU5vZGUoRHJvcFNlc3Npb25WYXJTdG10KTsKIAogCQkJCQluLT5uYW1lID0gJDM7CisJCQkJCW4t Pm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwg RFJPUCBWQVJJQUJMRSBJRl9QIEVYSVNUUyBDb2xJZAorCQkJCXsKKwkJCQkJRHJvcFNlc3Npb25W YXJTdG10ICpuID0gbWFrZU5vZGUoRHJvcFNlc3Npb25WYXJTdG10KTsKKworCQkJCQluLT5uYW1l ID0gJDU7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47 CiAJCQkJfQorCiAJCTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4 IDNmMWM4Y2I1ZTg5Li5mZDkxMWY1MjM0ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91 dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKQEAgLTEwNzMsNyArMTA3 Myw3IEBAIHN0YW5kYXJkX1Byb2Nlc3NVdGlsaXR5KFBsYW5uZWRTdG10ICpwc3RtdCwKIAogCQlj YXNlIFRfRHJvcFNlc3Npb25WYXJTdG10OgogCQkJLyogTm8gZXZlbnQgdHJpZ2dlcnMgZm9yIGNh dGFsb2cgbGVzcyBzZXNzaW9uIHZhcmlhYmxlcyAqLwotCQkJRHJvcFZhcmlhYmxlQnlOYW1lKCgo RHJvcFNlc3Npb25WYXJTdG10ICopIHBhcnNldHJlZSktPm5hbWUpOworCQkJRHJvcFZhcmlhYmxl QnlOYW1lKChEcm9wU2Vzc2lvblZhclN0bXQgKikgcGFyc2V0cmVlKTsKIAkJCWJyZWFrOwogCiAJ CWNhc2UgVF9MZXRTdG10OgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmlu ZGV4IGNjMWFhN2NlMjNiLi4zZjA3YWU1NWFhYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuaApAQCAtMjIsNyArMjIsNyBAQAogI2luY2x1ZGUgInRjb3AvY21kdGFnLmgi CiAKIGV4dGVybiB2b2lkIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRl U2Vzc2lvblZhclN0bXQgKnN0bXQpOwotZXh0ZXJuIHZvaWQgRHJvcFZhcmlhYmxlQnlOYW1lKGNo YXIgKnZhcm5hbWUpOworZXh0ZXJuIHZvaWQgRHJvcFZhcmlhYmxlQnlOYW1lKERyb3BTZXNzaW9u VmFyU3RtdCAqc3RtdCk7CiAKIGV4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlw ZWNoZWNrKGNoYXIgKnZhcm5hbWUsIE9pZCB0eXBpZCwgaW50MzIgdHlwbW9kLCBib29sICppc251 bGwpOwogZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlV2l0aFR5cGVjaGVjayhjaGFyICp2 YXJuYW1lLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDNkZWNjNjM5ZDgxLi40Nzk0MWQ5ZGM5 OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMzU5Miw2ICszNTkyLDcgQEAgdHlwZWRlZiBz dHJ1Y3QgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAlOb2RlVGFnCQl0eXBlOwogCWNoYXIJICAgKm5h bWU7CQkvKiB0aGUgdmFyaWFibGUgdG8gY3JlYXRlICovCiAJVHlwZU5hbWUgICAqdHlwZU5hbWU7 CQkvKiB0aGUgdHlwZSBvZiB2YXJpYWJsZSAqLworCWJvb2wJCWlmX25vdF9leGlzdHM7CS8qIGp1 c3QgZG8gbm90aGluZyBpZiB2YXJpYWJsZSBhbHJlYWR5IGV4aXN0cz8gKi8KIH0gQ3JlYXRlU2Vz c2lvblZhclN0bXQ7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTM2MDEsNyArMzYw Miw4IEBAIHR5cGVkZWYgc3RydWN0IENyZWF0ZVNlc3Npb25WYXJTdG10CiB0eXBlZGVmIHN0cnVj dCBEcm9wU2Vzc2lvblZhclN0bXQKIHsKIAlOb2RlVGFnCQl0eXBlOwotCWNoYXIJICAgKm5hbWU7 CisJY2hhcgkgICAqbmFtZTsJCQkvKiB0aGUgdmFyaWFibGUgbmFtZSB0byBkcm9wICovCisJYm9v bAkJbWlzc2luZ19vazsJCS8qIHNraXAgZXJyb3Igb2YgdmFyaWFibGUgaXMgbWlzc2luZyAqLwog fSBEcm9wU2Vzc2lvblZhclN0bXQ7CiAKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwub3V0CmluZGV4IDVkYjMzMGI4NmY1Li5jOTM1ZDc1 ZmEwMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlc19kZGwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXNfZGRsLm91dApAQCAtNDgsMyArNDgsOSBAQCBFUlJPUjogIHNlc3Npb24gdmFyaWFibGUg IngiIGFscmVhZHkgZXhpc3RzCiBESVNDQVJEIFRFTVA7CiAtLSBzaG91bGQgYmUgb2sKIENSRUFU RSBURU1QIFZBUklBQkxFIHggQVMgaW50OworLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUgVEVNUCBW QVJJQUJMRSBJRiBOT1QgRVhJU1RTIHggQVMgaW50OworTk9USUNFOiAgc2Vzc2lvbiB2YXJpYWJs ZSAieCIgYWxyZWFkeSBleGlzdHMsIHNraXBwaW5nCitEUk9QIFZBUklBQkxFIHg7CitEUk9QIFZB UklBQkxFIElGIEVYSVNUUyB4OworTk9USUNFOiAgc2Vzc2lvbiB2YXJpYWJsZSAieCIgZG9lcyBu b3QgZXhpc3RzLCBza2lwcGluZwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXNfZGRsLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFy aWFibGVzX2RkbC5zcWwKaW5kZXggMzFjY2E2NTMwZmUuLjAxM2Q0ZmU0NjI1IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwuc3FsCisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5zcWwKQEAgLTY0LDMgKzY0 LDkgQEAgRElTQ0FSRCBURU1QOwogCiAtLSBzaG91bGQgYmUgb2sKIENSRUFURSBURU1QIFZBUklB QkxFIHggQVMgaW50OworCistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBURU1QIFZBUklBQkxFIElG IE5PVCBFWElTVFMgeCBBUyBpbnQ7CisKK0RST1AgVkFSSUFCTEUgeDsKK0RST1AgVkFSSUFCTEUg SUYgRVhJU1RTIHg7Ci0tIAoyLjUyLjAKCg== --0000000000008b48e906456c698a Content-Type: application/x-patch; name="v20251208-0009-use-names-of-currently-used-temp-variables-for-tab-c.patch" Content-Disposition: attachment; filename="v20251208-0009-use-names-of-currently-used-temp-variables-for-tab-c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miwu5ri21 RnJvbSAwNmRjYWI1YmE0ZDIyZTY1OGFjYjBmZjYyOTEwY2FkMjQ5YWNmYmQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBUaHUsIDQgRGVjIDIwMjUgMTg6NDk6MDYgKzAxMDAKU3ViamVjdDogW1BB VENIIDA5LzExXSB1c2UgbmFtZXMgb2YgY3VycmVudGx5IHVzZWQgdGVtcCB2YXJpYWJsZXMgZm9y IHRhYgogY29tcGxldGUgb2YgRFJPUCBWQVJJQUJMRSwgTEVUIGFuZCBWQVJJQUJMRSgpCgotLS0K IHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDM2ICsrKysr KysrKysrKysrKysrKysKIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAg ICAgICB8IDE5ICsrKysrKysrKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgICAg ICAgICAgICAgICB8ICA1ICsrKwogLi4uL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5v dXQgICAgICAgIHwgMTYgKysrKysrKysrCiAuLi4vcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXNfZGRsLnNxbCAgICAgfCAgOCArKysrKwogNSBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25z KCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5j CmluZGV4IDJiZTIzYTQ1NmFiLi4yMTM0NTIxNzg2MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuYwpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgogI2luY2x1 ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCisjaW5jbHVkZSAiZnVuY2FwaS5oIgog I2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAj aW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oIgpAQCAtNDcwLDMgKzQ3MSwzOCBAQCBS ZXNldFNlc3Npb25WYXJpYWJsZXModm9pZCkKIAlpZiAoU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCAh PSBOVUxMKQogCQlNZW1vcnlDb250ZXh0UmVzZXQoU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCk7CiB9 CisKKy8qCisgKiBwZ19nZXRfdGVtcG9yYXJ5X3Nlc3Npb25fdmFyaWFibGVzX25hbWVzCisgKgor ICogUmV0dXJucyBsaXN0IG9mIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlcy4gSXQgaXMgdXNl ZCBieSBwc3FsJ3MKKyAqIHRhYiBjb21wbGV0ZSBmb3IgRFJPUCBWQVJJQUJMRSBhbmQgTEVUIGNv bW1hbmRzLgorICovCitEYXR1bQorcGdfZ2V0X3RlbXBvcmFyeV9zZXNzaW9uX3ZhcmlhYmxlc19u YW1lcyhQR19GVU5DVElPTl9BUkdTKQoreworCUluaXRNYXRlcmlhbGl6ZWRTUkYoZmNpbmZvLCBN QVRfU1JGX1VTRV9FWFBFQ1RFRF9ERVNDKTsKKworCWlmIChzZXNzaW9udmFycykKKwl7CisJCVJl dHVyblNldEluZm8gKnJzaW5mbyA9IChSZXR1cm5TZXRJbmZvICopIGZjaW5mby0+cmVzdWx0aW5m bzsKKwkJSEFTSF9TRVFfU1RBVFVTIHN0YXR1czsKKwkJU1ZhcmlhYmxlCXN2YXI7CisKKwkJaGFz aF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFycyk7CisKKwkJd2hpbGUgKChzdmFyID0gKFNW YXJpYWJsZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBOVUxMKQorCQl7CisJCQlEYXR1 bQkJdmFsdWVzWzFdOworCQkJYm9vbAkJbnVsbHNbMV07CisKKwkJCXZhbHVlc1swXSA9IENTdHJp bmdHZXRUZXh0RGF0dW0oKE5hbWVTdHIoc3Zhci0+dmFybmFtZSkpKTsKKwkJCW51bGxzWzBdID0g ZmFsc2U7CisKKwkJCXR1cGxlc3RvcmVfcHV0dmFsdWVzKHJzaW5mby0+c2V0UmVzdWx0LCByc2lu Zm8tPnNldERlc2MsCisJCQkJCQkJCSB2YWx1ZXMsIG51bGxzKTsKKwkJfQorCX0KKworCXJldHVy biAoRGF0dW0pIDA7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmlu LmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggNDQ1MTk1OWI4MWUuLmJl ZjIyYTMzMWVkIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysr IGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0xMjAwLDYgKzEyMDAsMTEgQEAg S2V5d29yZHNfZm9yX2xpc3Rfb2Zfb3duZXJfcm9sZXMsICJQVUJMSUMiCiAiICBGUk9NIHBnX2Nh dGFsb2cucGdfdGltZXpvbmVfbmFtZXMoKSAiXAogIiBXSEVSRSBwZ19jYXRhbG9nLnF1b3RlX2xp dGVyYWwocGdfY2F0YWxvZy5sb3dlcihuYW1lKSkgTElLRSBwZ19jYXRhbG9nLmxvd2VyKCclcycp IgogCisjZGVmaW5lIFF1ZXJ5X2Zvcl9saXN0X29mX3RlbXBvcmFyeV9zZXNzaW9uX3ZhcmlhYmxl cyBcCisiU0VMRUNUIHZhcm5hbWUgIlwKKyIgICBGUk9NIHBnX2NhdGFsb2cucGdfZ2V0X3RlbXBv cmFyeV9zZXNzaW9uX3ZhcmlhYmxlc19uYW1lcygpIEFTIHZhcm5hbWUgIlwKKyIgIFdIRVJFIHZh cm5hbWUgTElLRSAnJXMnIgorCiAvKiBQcml2aWxlZ2Ugb3B0aW9ucyBzaGFyZWQgYmV0d2VlbiBH UkFOVCBhbmQgUkVWT0tFICovCiAjZGVmaW5lIFByaXZpbGVnZV9vcHRpb25zX29mX2dyYW50X2Fu ZF9yZXZva2UgXAogIlNFTEVDVCIsICJJTlNFUlQiLCAiVVBEQVRFIiwgIkRFTEVURSIsICJUUlVO Q0FURSIsICJSRUZFUkVOQ0VTIiwgIlRSSUdHRVIiLCBcCkBAIC00MzYwLDYgKzQzNjUsMTAgQEAg bWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBpZiAoTWF0Y2hlcygi RFJPUCIsICJUUkFOU0ZPUk0iLCAiRk9SIiwgTWF0Y2hBbnksICJMQU5HVUFHRSIsIE1hdGNoQW55 KSkKIAkJQ09NUExFVEVfV0lUSCgiQ0FTQ0FERSIsICJSRVNUUklDVCIpOwogCisJLyogRFJPUCBW QVJJQUJMRSAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkRST1AiLCAiVkFSSUFCTEUiKSkKKwkJQ09N UExFVEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl90ZW1wb3Jhcnlfc2Vzc2lvbl92YXJp YWJsZXMpOworCiAvKiBFWEVDVVRFICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiRVhFQ1VURSIpKQog CQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3ByZXBhcmVkX3N0YXRlbWVu dHMpOwpAQCAtNDgwMCw2ICs0ODA5LDggQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRl cm5faWQsCiAKIC8qIExFVCAqLwogCS8qIENvbXBsZXRlIExFVCA8dmFyaWFibGU+IHdpdGggIj0i ICovCisJZWxzZSBpZiAoTWF0Y2hlcygiTEVUIikpCisJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVl cnlfZm9yX2xpc3Rfb2ZfdGVtcG9yYXJ5X3Nlc3Npb25fdmFyaWFibGVzKTsKIAllbHNlIGlmIChU YWlsTWF0Y2hlcygiTEVUIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCI9Iik7CiAKQEAg LTUyOTIsNyArNTMwMyw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAog CQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWV9QTFVTKFF1ZXJ5X2Zvcl9saXN0X29mX3ZhY3V1 bWFibGVzLAogCQkJCQkJCQkJCSJWRVJCT1NFIiwKIAkJCQkJCQkJCQkiQU5BTFlaRSIsCi0JCQkJ CQkJCQkJIk9OTFkiKTsKKwkJCQkJCQkJCSJPTkxZIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiVkFD VVVNIiwgTWF0Y2hBbnlOLCAiVkVSQk9TRSIpKQogCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVS WV9QTFVTKFF1ZXJ5X2Zvcl9saXN0X29mX3ZhY3V1bWFibGVzLAogCQkJCQkJCQkJCSJBTkFMWVpF IiwKQEAgLTUzNTksNiArNTM3MCwxMiBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVy bl9pZCwKIAkJICovCiAJfQogCisvKgorICogVkFSSUFCTEUgZmVuY2UKKyAqLworCWVsc2UgaWYg KFRhaWxNYXRjaGVzKCJWQVJJQUJMRSIsICIoIikpCisJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVl cnlfZm9yX2xpc3Rfb2ZfdGVtcG9yYXJ5X3Nlc3Npb25fdmFyaWFibGVzKTsKKwogLyogV0lUSCBb UkVDVVJTSVZFXSAqLwogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IGZkOTQ0OGVj N2I5Li5hYzA4YTRkZThmZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9j LmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC0xMjYxMiw0ICsx MjYxMiw5IEBACiAgIHByb2FyZ25hbWVzID0+ICd7cGlkLGlvX2lkLGlvX2dlbmVyYXRpb24sc3Rh dGUsb3BlcmF0aW9uLG9mZixsZW5ndGgsdGFyZ2V0LGhhbmRsZV9kYXRhX2xlbixyYXdfcmVzdWx0 LHJlc3VsdCx0YXJnZXRfZGVzYyxmX3N5bmMsZl9sb2NhbG1lbSxmX2J1ZmZlcmVkfScsCiAgIHBy b3NyYyA9PiAncGdfZ2V0X2Fpb3MnIH0sCiAKKyMgU2Vzc2lvbiB2YXJpYWJsZXMgc3VwcG9ydAor eyBvaWQgPT4gJzgwNjgnLCBkZXNjciA9PiAncmV0dXJucyBuYW1lcyBvZiB0ZW1wb3Jhcnkgc2Vz c2lvbiB2YXJpYWJsZXMnLAorICBwcm9uYW1lID0+ICdwZ19nZXRfdGVtcG9yYXJ5X3Nlc3Npb25f dmFyaWFibGVzX25hbWVzJywgcHJvcm93cyA9PiAnMTAwMCcsIHByb3JldHNldCA9PiAndCcsCisg IHByb3ZvbGF0aWxlID0+ICd2JywgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ICd0 ZXh0JywgcHJvYXJndHlwZXMgPT4gJycsCisgIHByb3NyYyA9PiAncGdfZ2V0X3RlbXBvcmFyeV9z ZXNzaW9uX3ZhcmlhYmxlc19uYW1lcycgfSwKIF0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLm91dAppbmRleCBjOTM1ZDc1ZmEwMS4uYjhk NmY2Mjk1OTYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXNfZGRsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzX2RkbC5vdXQKQEAgLTU0LDMgKzU0LDE5IEBAIE5PVElDRTogIHNlc3Npb24gdmFy aWFibGUgIngiIGFscmVhZHkgZXhpc3RzLCBza2lwcGluZwogRFJPUCBWQVJJQUJMRSB4OwogRFJP UCBWQVJJQUJMRSBJRiBFWElTVFMgeDsKIE5PVElDRTogIHNlc3Npb24gdmFyaWFibGUgIngiIGRv ZXMgbm90IGV4aXN0cywgc2tpcHBpbmcKK0NSRUFURSBURU1QIFZBUklBQkxFIHggQVMgaW50Owor Q1JFQVRFIFRFTVAgVkFSSUFCTEUgeSBBUyBpbnQ7CitTRUxFQ1QgKiBGUk9NIHBnX2dldF90ZW1w b3Jhcnlfc2Vzc2lvbl92YXJpYWJsZXNfbmFtZXMoKTsKKyBwZ19nZXRfdGVtcG9yYXJ5X3Nlc3Np b25fdmFyaWFibGVzX25hbWVzIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgeQorIHgKKygyIHJvd3MpCisKK0RST1AgVkFSSUFCTEUgeDsKK0RST1AgVkFSSUFC TEUgeTsKK1NFTEVDVCAqIEZST00gcGdfZ2V0X3RlbXBvcmFyeV9zZXNzaW9uX3ZhcmlhYmxlc19u YW1lcygpOworIHBnX2dldF90ZW1wb3Jhcnlfc2Vzc2lvbl92YXJpYWJsZXNfbmFtZXMgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKygwIHJvd3MpCisKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5zcWwgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwuc3FsCmluZGV4IDAxM2Q0 ZmU0NjI1Li4wMmFmMzY1MzM4ZiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXNfZGRsLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlc19kZGwuc3FsCkBAIC03MCwzICs3MCwxMSBAQCBDUkVBVEUgVEVNUCBWQVJJQUJM RSBJRiBOT1QgRVhJU1RTIHggQVMgaW50OwogCiBEUk9QIFZBUklBQkxFIHg7CiBEUk9QIFZBUklB QkxFIElGIEVYSVNUUyB4OworCitDUkVBVEUgVEVNUCBWQVJJQUJMRSB4IEFTIGludDsKK0NSRUFU RSBURU1QIFZBUklBQkxFIHkgQVMgaW50OworU0VMRUNUICogRlJPTSBwZ19nZXRfdGVtcG9yYXJ5 X3Nlc3Npb25fdmFyaWFibGVzX25hbWVzKCk7CisKK0RST1AgVkFSSUFCTEUgeDsKK0RST1AgVkFS SUFCTEUgeTsKK1NFTEVDVCAqIEZST00gcGdfZ2V0X3RlbXBvcmFyeV9zZXNzaW9uX3ZhcmlhYmxl c19uYW1lcygpOwotLSAKMi41Mi4wCgo= --0000000000008b48e906456c698a Content-Type: application/x-patch; name="v20251208-0006-LET-command-assign-a-result-of-expression-to-the-ses.patch" Content-Disposition: attachment; filename="v20251208-0006-LET-command-assign-a-result-of-expression-to-the-ses.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miwu5rjy4 RnJvbSA2Y2Q2MWZlZTVkNGQ4ZjkzYWQ5NDY1ZjJiNzQ1YTczOWFjMmM0YmY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBNb24sIDI0IE5vdiAyMDI1IDE4OjA1OjAzICswMTAwClN1YmplY3Q6IFtQ QVRDSCAwNi8xMV0gTEVUIGNvbW1hbmQgLSBhc3NpZ24gYSByZXN1bHQgb2YgZXhwcmVzc2lvbiB0 byB0aGUgCiBzZXNzaW9uIHZhcmlhYmxlCk1JTUUtVmVyc2lvbjogMS4wCkNvbnRlbnQtVHlwZTog dGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0 CgpUaGUgdmFsdWUgaXMgYXNzaWduZWQgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgdXN1YWxseSBieSBT RVQgY29tbWFuZC4gVW5mb3J0dW5hdGVseQp0aGVyZSBhcmUgdHdvIHJlYXNvbnMgd2h5IFNFVCBz aG91bGQgbm90IGJlIHVzZWQgZm9yIHRoaXMgcHVycG9zZSBpbiBQb3N0Z3Jlcy4KCjEuIFVzaW5n IGFfZXhwciBpbnNpZGUgZ2VuZXJpY19zZXQgcmFtIHJ1bGUgcHJvZHVjZXMgcmVkdWNlIGNvbmZs aWN0cywgc28gaXQgbmVlZHMKwqAgwqB0b3RhbCByZWltcGxlbWVudGF0aW9uIG9mIHJlbGF0ZWQg Z3JhbSBydWxlcy4KCjIuIFNFVCBpcyBubyBwbGFuIGNvbW1hbmQgLSBzbyBpdCBkb2Vzbid0IHN1 cHBvcnQgdXNhZ2Ugb2YgcGFyYW1ldGVycy4KCjMuIEV4Y2VwdGluZyBpbXBsZW1lbnRhdGlvbiBp c3N1ZXMsIHRoZXJlIGlzIGZhY3QsIHNvIGlmIHdlIHVzZSBTRVQgY29tbWFuZArCoCDCoGZvciBh c3NpZ25pbmcgdmFsdWVzIHRvIHNlc3Npb24gdmFyaWFibGVzLCB0aGVuIHRoZXJlIGNhbiBiZSBj b2xsaXNpb25zCsKgIMKgYmV0d2VlbiBzZXNzaW9uIHZhcmlhYmxlcyBhbmQgR1VDLCBhbmQgdGhl biB3ZSBuZWVkIHNvbWUgY29uY2VwdHMsIGhvdwrCoCDCoHRoZXNlIGNvbGxpc2lvbnMgc2hvdWxk IGJlIHNvbHZlZCwgb3IgaG93IHRvIHByb3RlY3Qgc2VsZiBhZ2FpbnN0IHRoZXNlCsKgIMKgY29s bGlzaW9ucy4gV2l0aCB0aGUgZGVkaWNhdGVkIGNvbW1hbmQsIHRoZSBjb2xsaXNpb25zIGJldHdl ZW4gR1VDIGFuZCBzZXNzaW9uCsKgIMKgdmFyaWFibGVzIGFyZSBub3QgcG9zc2libGUuCgpUaGUg Y29tbWFuZCBMRVQgaXMgZXhlY3V0ZWQgYXMgdXN1YWwgcXVlcnkgZXhlY3V0aW9uLiBUaGUgcmVz dWx0IGlzIHN0b3JlZAp0byB0aGUgdGFyZ2V0IHNlc3Npb24gdmFyaWFibGUgKHJlc3VsdFZhcmlh YmxlKSBieSB1c2luZyBWYXJpYWJsZURlc3RSZWNlaXZlci4KCkltcGxlbWVudGF0aW9ucyBvZiBF WFBMQUlOIExFVCBhbmQgUFJFUEFSRSBMRVQgc3RhdGVtZW50cyBhcmUgbm90IHN1cHBvcnRlZApu b3cuIFBvc3Rwb25lZCB0byBuZXh0IHN0ZXAgZHVlIHJlZHVjaW5nIHBhdGNoIHNpemUuCi0tLQog ZG9jL3NyYy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIyICsrKysK IGRvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8ICAgMSArCiBk b2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAgIDMgKwogZG9j L3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwgICAgICAgICAgIHwgICAxICsKIGRvYy9z cmMvc2dtbC9yZWYvbGV0LnNnbWwgICAgICAgICAgICAgICAgICAgICB8ICA5NSArKysrKysrKysr KysrKwogZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sICAgICAgICAgICAgICAgICAgIHwgICAx ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8ICA4NiAr KysrKysrKysrKysKIHNyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAg ICB8ICAgOCArKwogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jICAgICAgICAg IHwgICAxICsKIHNyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgICAgICAgICAgICAgICAgICB8 IDEwMyArKysrKysrKysrKystLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAg ICAgICAgICAgICB8ICAzOCArKysrKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyAg ICAgICAgICAgICAgICB8ICAgNyArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAg ICAgICAgICAgICAgfCAgIDkgKysKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgICAg ICAgICAgICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyAgICAgICAgICAg ICAgICAgICAgfCAgMTUgKysrCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAg ICAgICAgICAgfCAgIDkgKy0KIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUu aCAgICAgICB8ICAgNSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAg ICAgICAgfCAgMTUgKysrCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCAgICAgICAgICAg ICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICAg ICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggICAgICAgICAgICAg ICB8ICAgMSArCiBzcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCAgICAgICAgICAgICAgICAg fCAgIDEgKwogLi4uL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5vdXQgICAgICAgIHwg MTIzICsrKysrKysrKysrKysrKysrKwogLi4uL3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz X2RtbC5zcWwgICAgIHwgIDg3ICsrKysrKysrKysrKysKIHNyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgMSArCiAyNSBmaWxlcyBjaGFuZ2VkLCA2MTkgaW5z ZXJ0aW9ucygrKSwgMjAgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9z Z21sL3JlZi9sZXQuc2dtbAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCBkZDliYzY5Y2VjNy4uM2RjN2MwN2VhYjYgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwK QEAgLTU2NzksMTAgKzU2NzksMzIgQEAgRVhQTEFJTiBTRUxFQ1QgY291bnQoKikgRlJPTSBtZWFz dXJlbWVudCBXSEVSRSBsb2dkYXRlICZndDs9IERBVEUgJzIwMDgtMDEtMDEnOwogICAgIDxsaXRl cmFsPlZBUklBQkxFKHZhcm5hbWUpPC9saXRlcmFsPiBzeW50YXguIFRoaXMgYXZvaWRzIGFueSBy aXNrIG9mCiAgICAgY29sbGlzaW9uIGJldHdlZW4gdmFyaWFibGUgbmFtZXMgYW5kIGNvbHVtbiBu YW1lcy4KICAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgWW91IHNldCB0aGUgdmFsdWUgb2Yg YSBzZXNzaW9uIHZhcmlhYmxlIHdpdGggdGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4KKyAgICBz dGF0ZW1lbnQgYW5kIHJldHJpZXZlIGl0IHdpdGggPGNvbW1hbmQ+U0VMRUNUPC9jb21tYW5kPjoK Kzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgZGF0ZTsKK0xF VCB2YXIxID0gY3VycmVudF9kYXRlOworU0VMRUNUIFZBUklBQkxFKHZhcjEpOworPC9wcm9ncmFt bGlzdGluZz4KKworICAgIG9yCisKIDxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBURU1QIFZBUklB QkxFIGN1cnJlbnRfdXNlcl9pZCBBUyBpbnRlZ2VyOworTEVUIGN1cnJlbnRfdXNlcl9pZCA9IChT RUxFQ1QgaWQgRlJPTSB1c2VycyBXSEVSRSB1c2VuYW1lID0gc2Vzc2lvbl91c2VyKTsKIFNFTEVD VCBWQVJJQUJMRShjdXJyZW50X3VzZXJfaWQpOwogPC9wcm9ncmFtbGlzdGluZz4KICAgIDwvcGFy YT4KKworICAgPHBhcmE+CisgICAgQnkgZGVmYXVsdCwgcmV0cmlldmluZyBhIHNlc3Npb24gdmFy aWFibGUgcmV0dXJucworICAgIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+IHVubGVzcyBpdCBoYXMg YmVlbiBzZXQgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbgorICAgIHVzaW5nIHRoZSA8Y29tbWFuZD5M RVQ8L2NvbW1hbmQ+IGNvbW1hbmQuIFNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QKKyAgICB0cmFu c2FjdGlvbmFsOiBjaGFuZ2VzIHRvIHRoZWlyIHZhbHVlcyBwZXJzaXN0IGV2ZW4gaWYgdGhlIHRy YW5zYWN0aW9uCisgICAgaXMgcm9sbGVkIGJhY2ssIHNpbWlsYXIgdG8gdmFyaWFibGVzIGluIHBy b2NlZHVyYWwgbGFuZ3VhZ2VzCisgICA8L3BhcmE+CiAgPC9zZWN0MT4KIAogIDxzZWN0MSBpZD0i ZGRsLW90aGVycyI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKaW5kZXggYTczNDk5MTk2NTguLmNkM2Zh YTY2N2YwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCkBAIC0xNTcsNiArMTU3LDcgQEAgQ29tcGxl dGUgbGlzdCBvZiB1c2FibGUgc2dtbCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8 IUVOVElUWSBncmFudCAgICAgICAgICAgICAgU1lTVEVNICJncmFudC5zZ21sIj4KIDwhRU5USVRZ IGltcG9ydEZvcmVpZ25TY2hlbWEgU1lTVEVNICJpbXBvcnRfZm9yZWlnbl9zY2hlbWEuc2dtbCI+ CiA8IUVOVElUWSBpbnNlcnQgICAgICAgICAgICAgU1lTVEVNICJpbnNlcnQuc2dtbCI+Cis8IUVO VElUWSBsZXQgICAgICAgICAgICAgICAgU1lTVEVNICJsZXQuc2dtbCI+CiA8IUVOVElUWSBsaXN0 ZW4gICAgICAgICAgICAgU1lTVEVNICJsaXN0ZW4uc2dtbCI+CiA8IUVOVElUWSBsb2FkICAgICAg ICAgICAgICAgU1lTVEVNICJsb2FkLnNnbWwiPgogPCFFTlRJVFkgbG9jayAgICAgICAgICAgICAg IFNZU1RFTSAibG9jay5zZ21sIj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCmlu ZGV4IDRlOGMxOTQwMjUyLi4xMzE1YjEyNDhjNyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Jl Zi9jcmVhdGVfdmFyaWFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJp YWJsZS5zZ21sCkBAIC0xMDgsNiArMTA4LDggQEAgQ1JFQVRFIHsgVEVNUCB8IFRFTVBPUkFSWSB9 IFZBUklBQkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWMKICAg IENyZWF0ZSBhbiBkYXRlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD46 CiA8cHJvZ3JhbWxpc3Rpbmc+CiBDUkVBVEUgVEVNUE9SQVJZIFZBUklBQkxFIHZhcjEgQVMgZGF0 ZTsKK0xFVCB2YXIxID0gY3VycmVudF9kYXRlOworU0VMRUNUIFZBUklBQkxFKHZhcjEpOwogPC9w cm9ncmFtbGlzdGluZz4KICAgPC9wYXJhPgogCkBAIC0xMjcsNiArMTI5LDcgQEAgQ1JFQVRFIFRF TVBPUkFSWSBWQVJJQUJMRSB2YXIxIEFTIGRhdGU7CiAKICAgPHNpbXBsZWxpc3QgdHlwZT0iaW5s aW5lIj4KICAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVt YmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtbGV0Ii8+PC9tZW1iZXI+CiAgIDwv c2ltcGxlbGlzdD4KICA8L3JlZnNlY3QxPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVm L2Ryb3BfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21s CmluZGV4IGU4NTE3YTc4MjAwLi5kZWRlNDJlNGZmYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3Zhcmlh YmxlLnNnbWwKQEAgLTc4LDYgKzc4LDcgQEAgRFJPUCBWQVJJQUJMRSB2YXIxOwogCiAgIDxzaW1w bGVsaXN0IHR5cGU9ImlubGluZSI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVh dGV2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtbGV0 Ii8+PC9tZW1iZXI+CiAgIDwvc2ltcGxlbGlzdD4KICA8L3JlZnNlY3QxPgogCmRpZmYgLS1naXQg YS9kb2Mvc3JjL3NnbWwvcmVmL2xldC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9sZXQuc2dtbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMzNlZTQyZDNmMjAKLS0tIC9k ZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2xldC5zZ21sCkBAIC0wLDAgKzEsOTUgQEAK KzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlv bgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWxldCI+CisgPGluZGV4dGVybSB6b25lPSJzcWwt bGV0Ij4KKyAgPHByaW1hcnk+TEVUPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4 dGVybT4KKyAgPHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFy eT5jaGFuZ2luZzwvc2Vjb25kYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxy ZWZlbnRyeXRpdGxlPkxFVDwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xu dW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5m bz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+TEVUPC9yZWZuYW1l PgorICA8cmVmcHVycG9zZT5jaGFuZ2UgYSBzZXNzaW9uIHZhcmlhYmxlJ3MgdmFsdWU8L3JlZnB1 cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lzPgor TEVUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXNzaW9uX3ZhcmlhYmxlPC9yZXBs YWNlYWJsZT4gPSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3FsX2V4cHJlc3Npb248 L3JlcGxhY2VhYmxlPgorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNl Y3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxj b21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZCBhc3NpZ25zIGEgdmFsdWUgdG8gdGhlIHNwZWNp ZmllZCBzZXNzaW9uCisgICB2YXJpYWJsZS4KKyAgPC9wYXJhPgorCisgPC9yZWZzZWN0MT4KKwor IDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJpYWJsZWxp c3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5zZXNzaW9uX3ZhcmlhYmxlPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3Rp dGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxl LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisg ICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5zcWxfZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAg ICAgPHBhcmE+CisgICAgICBBbiBhcmJpdHJhcnkgU1FMIGV4cHJlc3Npb24uICBUaGUgcmVzdWx0 IG11c3QgYmUgb2YgYSBkYXRhIHR5cGUgdGhhdCBjYW4KKyAgICAgIGJlIGNhc3QgdG8gdGhlIHR5 cGUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgaW4gYW4gYXNzaWdubWVudC4KKyAgICAgPC9wYXJh PgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICA8L3ZhcmlhYmxlbGlz dD4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxl PgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFRFTVBPUkFSWSBWQVJJQUJMRSBteXZhciBBUyBp bnRlZ2VyOworTEVUIG15dmFyID0gMTA7CitMRVQgbXl2YXIgPSAoU0VMRUNUIHN1bSh2YWwpIEZS T00gdGFiKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4K KyAgPHRpdGxlPkNvbXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21t YW5kPkxFVDwvY29tbWFuZD4gaXMgYSA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5h bWU+CisgICBleHRlbnNpb24uCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3Qx PgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGlu ZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIvPjwvbWVt YmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcHZhcmlhYmxlIi8+PC9tZW1i ZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorPC9yZWZlbnRyeT4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uu c2dtbAppbmRleCBjMDNlNzY5MmM3YS4uNmZjZDdhODEzMjEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9yZWZlcmVuY2Uuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKQEAg LTE4NSw2ICsxODUsNyBAQAogICAgJmdyYW50OwogICAgJmltcG9ydEZvcmVpZ25TY2hlbWE7CiAg ICAmaW5zZXJ0OworICAgJmxldDsKICAgICZsaXN0ZW47CiAgICAmbG9hZDsKICAgICZsb2NrOwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDY2ZWExZWMyZWJhLi40 NzNhMTgxZDMzNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAt MTksMTQgKzE5LDE5IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5o IgorI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCisjaW5jbHVkZSAiZXhlY3V0b3Ivc3Zh cmlhYmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNsdWRlICJwYXJz ZXIvcGFyc2VfdHlwZS5oIgorI2luY2x1ZGUgInJld3JpdGUvcmV3cml0ZUhhbmRsZXIuaCIKICNp bmNsdWRlICJzdG9yYWdlL3Byb2MuaCIKKyNpbmNsdWRlICJ0Y29wL3Rjb3Bwcm90LmgiCiAjaW5j bHVkZSAidXRpbHMvYWNsLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRl ICJ1dGlscy9kYXR1bS5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUg InV0aWxzL21lbXV0aWxzLmgiCisjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgogI2luY2x1ZGUg InV0aWxzL3N5c2NhY2hlLmgiCiAKIC8qCkBAIC0zNDYsMyArMzUxLDg0IEBAIERyb3BWYXJpYWJs ZUJ5TmFtZShjaGFyICp2YXJuYW1lKQogCQkJCQkgICBOVUxMKSA9PSBOVUxMKQogCQllbG9nKEVS Uk9SLCAiaGFzaCB0YWJsZSBjb3JydXB0ZWQiKTsKIH0KKworLyoKKyAqIEFzc2lnbiB0aGUgcmVz dWx0IG9mIHRoZSBldmFsdWF0ZWQgZXhwcmVzc2lvbiB0byB0aGUgc2Vzc2lvbiB2YXJpYWJsZQor ICovCit2b2lkCitFeGVjdXRlTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkgICBMZXRT dG10ICpzdG10LAorCQkJICAgUGFyYW1MaXN0SW5mbyBwYXJhbXMsCisJCQkgICBRdWVyeUVudmly b25tZW50ICpxdWVyeUVudiwKKwkJCSAgIFF1ZXJ5Q29tcGxldGlvbiAqcWMpCit7CisJUXVlcnkJ ICAgKnF1ZXJ5ID0gY2FzdE5vZGUoUXVlcnksIHN0bXQtPnF1ZXJ5KTsKKwlMaXN0CSAgICpyZXdy aXR0ZW47CisJRGVzdFJlY2VpdmVyICpkZXN0OworCVBsYW5uZWRTdG10ICpwbGFuOworCVF1ZXJ5 RGVzYyAgKnF1ZXJ5RGVzYzsKKwljaGFyCSAgICp2YXJuYW1lID0gcXVlcnktPnJlc3VsdFZhcmlh YmxlOworCVNWYXJpYWJsZQlzdmFyOworCisJc3ZhciA9IHNlYXJjaF92YXJpYWJsZSh2YXJuYW1l KTsKKworCS8qIG9ubHkgb3duZXIgY2FuIHNldCBjb250ZW50IG9mIHZhcmlhYmxlICovCisJaWYg KHN2YXItPnZhcm93bmVyICE9IEdldFVzZXJJZCgpICYmICFzdXBlcnVzZXIoKSkKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAor CQkJCSBlcnJtc2coInBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICVzIiwK KwkJCQkJCXZhcm5hbWUpKSk7CisKKwkvKiBjcmVhdGUgYSBkZXN0IHJlY2VpdmVyIGZvciBMRVQg Ki8KKwlkZXN0ID0gQ3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIodmFybmFtZSk7CisKKwkvKiBy dW4gdGhlIHF1ZXJ5IHJld3JpdGVyICovCisJcXVlcnkgPSBjb3B5T2JqZWN0KHF1ZXJ5KTsKKwor CXJld3JpdHRlbiA9IFF1ZXJ5UmV3cml0ZShxdWVyeSk7CisKKwlBc3NlcnQobGlzdF9sZW5ndGgo cmV3cml0dGVuKSA9PSAxKTsKKworCXF1ZXJ5ID0gbGluaXRpYWxfbm9kZShRdWVyeSwgcmV3cml0 dGVuKTsKKwlBc3NlcnQocXVlcnktPmNvbW1hbmRUeXBlID09IENNRF9TRUxFQ1QpOworCisJLyog cGxhbiB0aGUgcXVlcnkgKi8KKwlwbGFuID0gcGdfcGxhbl9xdWVyeShxdWVyeSwgcHN0YXRlLT5w X3NvdXJjZXRleHQsCisJCQkJCQkgQ1VSU09SX09QVF9QQVJBTExFTF9PSywgcGFyYW1zLCBOVUxM KTsKKworCS8qCisJICogVXNlIGEgc25hcHNob3Qgd2l0aCBhbiB1cGRhdGVkIGNvbW1hbmQgSUQg dG8gZW5zdXJlIHRoaXMgcXVlcnkgc2VlcyB0aGUKKwkgKiByZXN1bHRzIG9mIGFueSBwcmV2aW91 c2x5IGV4ZWN1dGVkIHF1ZXJpZXMuICAoVGhpcyBjb3VsZCBvbmx5IG1hdHRlciBpZgorCSAqIHRo ZSBwbGFubmVyIGV4ZWN1dGVkIGFuIGFsbGVnZWRseS1zdGFibGUgZnVuY3Rpb24gdGhhdCBjaGFu Z2VkIHRoZQorCSAqIGRhdGFiYXNlIGNvbnRlbnRzLCBidXQgbGV0J3MgZG8gaXQgYW55d2F5IHRv IGJlIHBhcmFsbGVsIHRvIHRoZSBFWFBMQUlOCisJICogY29kZSBwYXRoLikKKwkgKi8KKwlQdXNo Q29waWVkU25hcHNob3QoR2V0QWN0aXZlU25hcHNob3QoKSk7CisJVXBkYXRlQWN0aXZlU25hcHNo b3RDb21tYW5kSWQoKTsKKworCS8qIGNyZWF0ZSBhIFF1ZXJ5RGVzYywgcmVkaXJlY3Rpbmcgb3V0 cHV0IHRvIG91ciB0dXBsZSByZWNlaXZlciAqLworCXF1ZXJ5RGVzYyA9IENyZWF0ZVF1ZXJ5RGVz YyhwbGFuLCBwc3RhdGUtPnBfc291cmNldGV4dCwKKwkJCQkJCQkJR2V0QWN0aXZlU25hcHNob3Qo KSwgSW52YWxpZFNuYXBzaG90LAorCQkJCQkJCQlkZXN0LCBwYXJhbXMsIHF1ZXJ5RW52LCAwKTsK KworCS8qIGNhbGwgRXhlY3V0b3JTdGFydCB0byBwcmVwYXJlIHRoZSBwbGFuIGZvciBleGVjdXRp b24gKi8KKwlFeGVjdXRvclN0YXJ0KHF1ZXJ5RGVzYywgMCk7CisKKwkvKgorCSAqIFJ1biB0aGUg cGxhbiB0byBjb21wbGV0aW9uLiAgVGhlIHJlc3VsdCBzaG91bGQgYmUgb25seSBvbmUgcm93LiAg VG8KKwkgKiBjaGVjayBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgcmVzdWx0IHJvd3MsIHdlIHRyeSB0 byBmZXRjaCB0d28uCisJICovCisJRXhlY3V0b3JSdW4ocXVlcnlEZXNjLCBGb3J3YXJkU2NhbkRp cmVjdGlvbiwgMkwpOworCisJLyogc2F2ZSB0aGUgcm93Y291bnQgaWYgd2UncmUgZ2l2ZW4gYSBR dWVyeUNvbXBsZXRpb24gdG8gZmlsbCAqLworCWlmIChxYykKKwkJU2V0UXVlcnlDb21wbGV0aW9u KHFjLCBDTURUQUdfTEVULCBxdWVyeURlc2MtPmVzdGF0ZS0+ZXNfcHJvY2Vzc2VkKTsKKworCS8q IGFuZCBjbGVhbiB1cCAqLworCUV4ZWN1dG9yRmluaXNoKHF1ZXJ5RGVzYyk7CisJRXhlY3V0b3JF bmQocXVlcnlEZXNjKTsKKworCUZyZWVRdWVyeURlc2MocXVlcnlEZXNjKTsKKworCVBvcEFjdGl2 ZVNuYXBzaG90KCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3Mu YyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IGMxZWI4MWY3OWU1Li5mZGIx M2FkYTc1ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIv c3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTQzNzQsNiArNDM3NCwxNCBAQCByYXdf ZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0cnVl OwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9MZXRTdG10OgorCQkJeworCQkJCUxldFN0bXQg ICAgKnN0bXQgPSAoTGV0U3RtdCAqKSBub2RlOworCisJCQkJaWYgKFdBTEsoc3RtdC0+cXVlcnkp KQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfUExBc3NpZ25T dG10OgogCQkJewogCQkJCVBMQXNzaWduU3RtdCAqc3RtdCA9IChQTEFzc2lnblN0bXQgKikgbm9k ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYyBiL3Ny Yy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYwppbmRleCA1MTQ3YmU5OWQxNC4uZTE2 YzgyYzIzOTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIu YworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKQEAgLTM3NSw2ICsz NzUsNyBAQCBzdGFuZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJzZSwgY29uc3QgY2hhciAqcXVlcnlf c3RyaW5nLCBpbnQgY3Vyc29yT3B0aW9ucywKIAlnbG9iLT5wYXJ0aXRpb25fZGlyZWN0b3J5ID0g TlVMTDsKIAlnbG9iLT5yZWxfbm90bnVsbGF0dHNfaGFzaCA9IE5VTEw7CiAJZ2xvYi0+c2Vzc2lv blZhcmlhYmxlcyA9IE5JTDsKKwlnbG9iLT5yZXN1bHRWYXJpYWJsZSA9IHBhcnNlLT5yZXN1bHRW YXJpYWJsZTsKIAogCS8qCiAJICogQXNzZXNzIHdoZXRoZXIgaXQncyBmZWFzaWJsZSB0byB1c2Ug cGFyYWxsZWwgbW9kZSBmb3IgdGhpcyBxdWVyeS4gV2UKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9hbmFseXplLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IDg4 NTEwNjkyMmQwLi5jZDZhZWZmMzA0MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2Fu YWx5emUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBAIC01MywxNSArNTMs MTggQEAKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgogI2luY2x1ZGUgInV0aWxzL2d1Yy5o IgogI2luY2x1ZGUgInV0aWxzL3JlbC5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgog I2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAKIAotLyogUGFzc3Rocm91Z2ggZGF0YSBmb3Ig dHJhbnNmb3JtUExBc3NpZ25TdG10VGFyZ2V0ICovCisvKiBQYXNzdGhyb3VnaCBkYXRhIGZvciB0 cmFuc2Zvcm1Bc3NpZ25UYXJnZXQgKi8KIHR5cGVkZWYgc3RydWN0IFNlbGVjdFN0bXRQYXNzdGhy b3VnaAogewotCVBMQXNzaWduU3RtdCAqc3RtdDsJCQkvKiB0aGUgYXNzaWdubWVudCBzdGF0ZW1l bnQgKi8KKwlOb2RlCSAgICpzdG10OwkJCS8qIHRoZSBhc3NpZ25tZW50IHN0YXRlbWVudCAqLwog CU5vZGUJICAgKnRhcmdldDsJCQkvKiBub2RlIHJlcHJlc2VudGluZyB0aGUgdGFyZ2V0IHZhcmlh YmxlICovCisJY2hhcgkgICAqdGFyZ2V0X25hbWU7CS8qIHRoZSBuYW1lIHVzZWQgYnkgZXJyICov CiAJTGlzdAkgICAqaW5kaXJlY3Rpb247CS8qIGluZGlyZWN0aW9uIHlldCB0byBiZSBhcHBsaWVk IHRvIHRhcmdldCAqLworCUNvZXJjaW9uQ29udGV4dCBjY29udGV4dDsgCS8qIGNvbnRleHQgaW5k aWNhdG9ycyB0byBjb250cm9sIGNvZXJjaW9ucyAqLwogfSBTZWxlY3RTdG10UGFzc3Rocm91Z2g7 CiAKIC8qIEhvb2sgZm9yIHBsdWdpbnMgdG8gZ2V0IGNvbnRyb2wgYXQgZW5kIG9mIHBhcnNlIGFu YWx5c2lzICovCkBAIC04NSw3ICs4OCw3IEBAIHN0YXRpYyBRdWVyeSAqdHJhbnNmb3JtUmV0dXJu U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFJldHVyblN0bXQgKnN0bXQpOwogc3RhdGljIFF1ZXJ5 ICp0cmFuc2Zvcm1VcGRhdGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVXBkYXRlU3RtdCAqc3Rt dCk7CiBzdGF0aWMgUXVlcnkgKnRyYW5zZm9ybVBMQXNzaWduU3RtdChQYXJzZVN0YXRlICpwc3Rh dGUsCiAJCQkJCQkJCQlQTEFzc2lnblN0bXQgKnN0bXQpOwotc3RhdGljIExpc3QgKnRyYW5zZm9y bVBMQXNzaWduU3RtdFRhcmdldChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnRsaXN0LAorc3Rh dGljIExpc3QgKnRyYW5zZm9ybUFzc2lnblRhcmdldChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3Qg KnRsaXN0LAogCQkJCQkJCQkJCSBTZWxlY3RTdG10UGFzc3Rocm91Z2ggKnBhc3N0aHJ1KTsKIHN0 YXRpYyBRdWVyeSAqdHJhbnNmb3JtRGVjbGFyZUN1cnNvclN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRl LAogCQkJCQkJCQkJCSBEZWNsYXJlQ3Vyc29yU3RtdCAqc3RtdCk7CkBAIC05NSw2ICs5OCw4IEBA IHN0YXRpYyBRdWVyeSAqdHJhbnNmb3JtQ3JlYXRlVGFibGVBc1N0bXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLAogCQkJCQkJCQkJCSBDcmVhdGVUYWJsZUFzU3RtdCAqc3RtdCk7CiBzdGF0aWMgUXVlcnkg KnRyYW5zZm9ybUNhbGxTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJQ2FsbFN0bXQg KnN0bXQpOworc3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1MZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0 ZSwKKwkJCQkJCQkgICBMZXRTdG10ICpzdG10KTsKIHN0YXRpYyB2b2lkIHRyYW5zZm9ybUxvY2tp bmdDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBRdWVyeSAqcXJ5LAogCQkJCQkJCQkgICBMb2Nr aW5nQ2xhdXNlICpsYywgYm9vbCBwdXNoZWREb3duKTsKICNpZmRlZiBERUJVR19OT0RFX1RFU1RT X0VOQUJMRUQKQEAgLTM0Miw2ICszNDcsNyBAQCB0cmFuc2Zvcm1TdG10KFBhcnNlU3RhdGUgKnBz dGF0ZSwgTm9kZSAqcGFyc2VUcmVlKQogCQkJY2FzZSBUX1VwZGF0ZVN0bXQ6CiAJCQljYXNlIFRf RGVsZXRlU3RtdDoKIAkJCWNhc2UgVF9NZXJnZVN0bXQ6CisJCQljYXNlIFRfTGV0U3RtdDoKIAkJ CQkodm9pZCkgdGVzdF9yYXdfZXhwcmVzc2lvbl9jb3ZlcmFnZShwYXJzZVRyZWUsIE5VTEwpOwog CQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKQEAgLTQyMSw2ICs0MjcsMTEgQEAgdHJhbnNmb3JtU3Rt dChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKnBhcnNlVHJlZSkKIAkJCQkJCQkJCSAgIChDYWxs U3RtdCAqKSBwYXJzZVRyZWUpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQly ZXN1bHQgPSB0cmFuc2Zvcm1MZXRTdG10KHBzdGF0ZSwKKwkJCQkJCQkJCSAgKExldFN0bXQgKikg cGFyc2VUcmVlKTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAKIAkJCS8qCkBAIC00ODIsNiAr NDkzLDcgQEAgc3RtdF9yZXF1aXJlc19wYXJzZV9hbmFseXNpcyhSYXdTdG10ICpwYXJzZVRyZWUp CiAJCWNhc2UgVF9FeHBsYWluU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVRhYmxlQXNTdG10OgogCQlj YXNlIFRfQ2FsbFN0bXQ6CisJCWNhc2UgVF9MZXRTdG10OgogCQkJcmVzdWx0ID0gdHJ1ZTsKIAkJ CWJyZWFrOwogCkBAIC01NDcsNiArNTU5LDcgQEAgcXVlcnlfcmVxdWlyZXNfcmV3cml0ZV9wbGFu KFF1ZXJ5ICpxdWVyeSkKIAkJCWNhc2UgVF9FeHBsYWluU3RtdDoKIAkJCWNhc2UgVF9DcmVhdGVU YWJsZUFzU3RtdDoKIAkJCWNhc2UgVF9DYWxsU3RtdDoKKwkJCWNhc2UgVF9MZXRTdG10OgogCQkJ CXJlc3VsdCA9IHRydWU7CiAJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgpAQCAtMTM5MCw3ICsxNDAz LDcgQEAgY291bnRfcm93ZXhwcl9jb2x1bW5zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhw cikKICAqCiAgKiBUaGlzIGZ1bmN0aW9uIGlzIGFsc28gdXNlZCB0byB0cmFuc2Zvcm0gdGhlIHNv dXJjZSBleHByZXNzaW9uIG9mIGEKICAqIFBMQXNzaWduU3RtdC4gIEluIHRoYXQgdXNhZ2UsIHBh c3N0aHJ1IGlzIG5vbi1OVUxMIGFuZCB3ZSBuZWVkIHRvCi0gKiBjYWxsIHRyYW5zZm9ybVBMQXNz aWduU3RtdFRhcmdldCBhZnRlciB0aGUgaW5pdGlhbCB0cmFuc2Zvcm1hdGlvbiBvZiB0aGUKKyAq IGNhbGwgdHJhbnNmb3JtQXNzaWduVGFyZ2V0IGFmdGVyIHRoZSBpbml0aWFsIHRyYW5zZm9ybWF0 aW9uIG9mIHRoZQogICogU0VMRUNUJ3MgdGFyZ2V0bGlzdC4gIChXZSBjb3VsZCBnZW5lcmFsaXpl IHRoaXMgaW50byBhbiBhcmJpdHJhcnkgY2FsbGJhY2sKICAqIGZ1bmN0aW9uLCBidXQgZm9yIG5v dyB0aGF0IHdvdWxkIGp1c3QgYmUgbW9yZSBub3RhdGlvbiB3aXRoIG5vIGJlbmVmaXQuKQogICog QWxsIHRoZSByZXN0IGlzIHRoZSBzYW1lIGFzIGEgcmVndWxhciBTZWxlY3RTdG10LgpAQCAtMTQ0 Myw4ICsxNDU2LDggQEAgdHJhbnNmb3JtU2VsZWN0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFNl bGVjdFN0bXQgKnN0bXQsCiAJICogT3RoZXJ3aXNlLCBtYXJrIGNvbHVtbiBvcmlnaW5zICh3aGlj aCBhcmUgdXNlbGVzcyBpbiBhIFBMQXNzaWduU3RtdCkuCiAJICovCiAJaWYgKHBhc3N0aHJ1KQot CQlxcnktPnRhcmdldExpc3QgPSB0cmFuc2Zvcm1QTEFzc2lnblN0bXRUYXJnZXQocHN0YXRlLCBx cnktPnRhcmdldExpc3QsCi0JCQkJCQkJCQkJCQkJICBwYXNzdGhydSk7CisJCXFyeS0+dGFyZ2V0 TGlzdCA9IHRyYW5zZm9ybUFzc2lnblRhcmdldChwc3RhdGUsIHFyeS0+dGFyZ2V0TGlzdCwKKwkJ CQkJCQkJCQkJCXBhc3N0aHJ1KTsKIAllbHNlCiAJCW1hcmtUYXJnZXRMaXN0T3JpZ2lucyhwc3Rh dGUsIHFyeS0+dGFyZ2V0TGlzdCk7CiAKQEAgLTI4NDIsOSArMjg1NSwxMSBAQCB0cmFuc2Zvcm1Q TEFzc2lnblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQTEFzc2lnblN0bXQgKnN0bXQpCiAJCQkJ CQkgICBFWFBSX0tJTkRfVVBEQVRFX1RBUkdFVCk7CiAKIAkvKiBTZXQgdXAgcGFzc3Rocm91Z2gg ZGF0YSBmb3IgdHJhbnNmb3JtUExBc3NpZ25TdG10VGFyZ2V0ICovCi0JcGFzc3RocnUuc3RtdCA9 IHN0bXQ7CisJcGFzc3RocnUuc3RtdCA9IChOb2RlICopIHN0bXQ7CiAJcGFzc3RocnUudGFyZ2V0 ID0gdGFyZ2V0OworCXBhc3N0aHJ1LnRhcmdldF9uYW1lID0gc3RtdC0+bmFtZTsKIAlwYXNzdGhy dS5pbmRpcmVjdGlvbiA9IGluZGlyZWN0aW9uOworCXBhc3N0aHJ1LmNjb250ZXh0ID0gQ09FUkNJ T05fUExQR1NRTDsKIAogCS8qCiAJICogVG8gYXZvaWQgZHVwbGljYXRpbmcgYSBsb3Qgb2YgY29k ZSwgd2UgdXNlIHRyYW5zZm9ybVNlbGVjdFN0bXQgdG8gZG8KQEAgLTI4NjcsMTggKzI4ODIsMjEg QEAgdHJhbnNmb3JtUExBc3NpZ25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUExBc3NpZ25TdG10 ICpzdG10KQogCiAvKgogICogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gYWRqdXN0IGEgU0VMRUNUJ3Mg dGxpc3QgdG8gbWFrZSB0aGUgb3V0cHV0IHN1aXRhYmxlCi0gKiBmb3IgYXNzaWdubWVudCB0byBh IFBMQXNzaWduU3RtdCdzIHRhcmdldCB2YXJpYWJsZS4KKyAqIGZvciBhc3NpZ25tZW50IHRvIGEg UExBc3NpZ25TdG10J3MgdGFyZ2V0IHZhcmlhYmxlIHByIExFVCdzIHRhcmdldAorICogc2Vzc2lv biB2YXJpYWJsZS4KICAqCiAgKiBOb3RlOiB3ZSBhY3R1YWxseSBtb2RpZnkgdGhlIHRsZS0+ZXhw ciBpbi1wbGFjZSwgYnV0IHRoZSBmdW5jdGlvbidzIEFQSQogICogaXMgc2V0IHVwIHRvIG5vdCBw cmVzdW1lIHRoYXQuCiAgKi8KIHN0YXRpYyBMaXN0ICoKLXRyYW5zZm9ybVBMQXNzaWduU3RtdFRh cmdldChQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnRsaXN0LAotCQkJCQkJCVNlbGVjdFN0bXRQ YXNzdGhyb3VnaCAqcGFzc3RocnUpCit0cmFuc2Zvcm1Bc3NpZ25UYXJnZXQoUGFyc2VTdGF0ZSAq cHN0YXRlLCBMaXN0ICp0bGlzdCwKKwkJCQkJICBTZWxlY3RTdG10UGFzc3Rocm91Z2ggKnBhc3N0 aHJ1KQogewotCVBMQXNzaWduU3RtdCAqc3RtdCA9IHBhc3N0aHJ1LT5zdG10OworCU5vZGUJICAg KnN0bXQgPSBwYXNzdGhydS0+c3RtdDsKIAlOb2RlCSAgICp0YXJnZXQgPSBwYXNzdGhydS0+dGFy Z2V0OworCWNoYXIJICAgKnRhcmdldF9uYW1lID0gcGFzc3RocnUtPnRhcmdldF9uYW1lOwogCUxp c3QJICAgKmluZGlyZWN0aW9uID0gcGFzc3RocnUtPmluZGlyZWN0aW9uOworCUNvZXJjaW9uQ29u dGV4dCBjY29udGV4dCA9IHBhc3N0aHJ1LT5jY29udGV4dDsKIAlPaWQJCQl0YXJnZXR0eXBlOwog CWludDMyCQl0YXJnZXR0eXBtb2Q7CiAJT2lkCQkJdGFyZ2V0Y29sbGF0aW9uOwpAQCAtMjkxMyw3 ICsyOTMxLDcgQEAgdHJhbnNmb3JtUExBc3NpZ25TdG10VGFyZ2V0KFBhcnNlU3RhdGUgKnBzdGF0 ZSwgTGlzdCAqdGxpc3QsCiAJCXRsZS0+ZXhwciA9IChFeHByICopCiAJCQl0cmFuc2Zvcm1Bc3Np Z25tZW50SW5kaXJlY3Rpb24ocHN0YXRlLAogCQkJCQkJCQkJCSAgIHRhcmdldCwKLQkJCQkJCQkJ CQkgICBzdG10LT5uYW1lLAorCQkJCQkJCQkJCSAgIHRhcmdldF9uYW1lLAogCQkJCQkJCQkJCSAg IGZhbHNlLAogCQkJCQkJCQkJCSAgIHRhcmdldHR5cGUsCiAJCQkJCQkJCQkJICAgdGFyZ2V0dHlw bW9kLApAQCAtMjkyMSwxMCArMjkzOSwxMCBAQCB0cmFuc2Zvcm1QTEFzc2lnblN0bXRUYXJnZXQo UGFyc2VTdGF0ZSAqcHN0YXRlLCBMaXN0ICp0bGlzdCwKIAkJCQkJCQkJCQkgICBpbmRpcmVjdGlv biwKIAkJCQkJCQkJCQkgICBsaXN0X2hlYWQoaW5kaXJlY3Rpb24pLAogCQkJCQkJCQkJCSAgIChO b2RlICopIHRsZS0+ZXhwciwKLQkJCQkJCQkJCQkgICBDT0VSQ0lPTl9QTFBHU1FMLAorCQkJCQkJ CQkJCSAgIGNjb250ZXh0LAogCQkJCQkJCQkJCSAgIGV4cHJMb2NhdGlvbih0YXJnZXQpKTsKIAl9 Ci0JZWxzZSBpZiAodGFyZ2V0dHlwZSAhPSB0eXBlX2lkICYmCisJZWxzZSBpZiAoSXNBKHN0bXQs IFBMQXNzaWduU3RtdCkgJiYgdGFyZ2V0dHlwZSAhPSB0eXBlX2lkICYmCiAJCQkgKHRhcmdldHR5 cGUgPT0gUkVDT1JET0lEIHx8IElTQ09NUExFWCh0YXJnZXR0eXBlKSkgJiYKIAkJCSAodHlwZV9p ZCA9PSBSRUNPUkRPSUQgfHwgSVNDT01QTEVYKHR5cGVfaWQpKSkKIAl7CkBAIC0yOTQ3LDcgKzI5 NjUsNyBAQCB0cmFuc2Zvcm1QTEFzc2lnblN0bXRUYXJnZXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBM aXN0ICp0bGlzdCwKIAkJCWNvZXJjZV90b190YXJnZXRfdHlwZShwc3RhdGUsCiAJCQkJCQkJCSAg b3JpZ19leHByLCB0eXBlX2lkLAogCQkJCQkJCQkgIHRhcmdldHR5cGUsIHRhcmdldHR5cG1vZCwK LQkJCQkJCQkJICBDT0VSQ0lPTl9QTFBHU1FMLAorCQkJCQkJCQkgIGNjb250ZXh0LAogCQkJCQkJ CQkgIENPRVJDRV9JTVBMSUNJVF9DQVNULAogCQkJCQkJCQkgIC0xKTsKIAkJLyogV2l0aCBDT0VS Q0lPTl9QTFBHU1FMLCB0aGlzIGVycm9yIGlzIHByb2JhYmx5IHVucmVhY2hhYmxlICovCkBAIC0y OTU2LDcgKzI5NzQsNyBAQCB0cmFuc2Zvcm1QTEFzc2lnblN0bXRUYXJnZXQoUGFyc2VTdGF0ZSAq cHN0YXRlLCBMaXN0ICp0bGlzdCwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNN QVRDSCksCiAJCQkJCSBlcnJtc2coInZhcmlhYmxlIFwiJXNcIiBpcyBvZiB0eXBlICVzIgogCQkJ CQkJCSIgYnV0IGV4cHJlc3Npb24gaXMgb2YgdHlwZSAlcyIsCi0JCQkJCQkJc3RtdC0+bmFtZSwK KwkJCQkJCQl0YXJnZXRfbmFtZSwKIAkJCQkJCQlmb3JtYXRfdHlwZV9iZSh0YXJnZXR0eXBlKSwK IAkJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBlX2lkKSksCiAJCQkJCSBlcnJoaW50KCJZb3Ugd2ls bCBuZWVkIHRvIHJld3JpdGUgb3IgY2FzdCB0aGUgZXhwcmVzc2lvbi4iKSwKQEAgLTMzMjQsNiAr MzM0Miw1OSBAQCB0cmFuc2Zvcm1DYWxsU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIENhbGxTdG10 ICpzdG10KQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qCisgKiB0cmFuc2Zvcm1MZXRTdG10IC0K KyAqCSAgdHJhbnNmb3JtIGFuIExldCBTdGF0ZW1lbnQKKyAqLworc3RhdGljIFF1ZXJ5ICoKK3Ry YW5zZm9ybUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMZXRTdG10ICpzdG10KQoreworCVF1 ZXJ5CSAgICpxcnk7CisJUXVlcnkJICAgKnJlc3VsdDsKKwlOb2RlCSAgICp0YXJnZXQ7CisJVmFy aWFibGVGZW5jZSAqdmY7CisJU2VsZWN0U3RtdFBhc3N0aHJvdWdoIHBhc3N0aHJ1OworCVBhcmFt CSAgICpwYXJhbXZhcjsKKworCS8qIGdyYW0gYWxsb3dzIG9ubHkgU0VMRUNUICovCisJQXNzZXJ0 KElzQShzdG10LT5xdWVyeSwgU2VsZWN0U3RtdCkpOworCisJLyogVXNlIGltcGxpY2l0IFZhcmlh YmxlRmVuY2UgZm9yIGZvcmNpbmcgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwl2ZiA9IG1ha2VOb2Rl KFZhcmlhYmxlRmVuY2UpOworCXZmLT52YXJuYW1lID0gc3RtdC0+dGFyZ2V0OworCXZmLT5sb2Nh dGlvbiA9IHN0bXQtPmxvY2F0aW9uOworCisJdGFyZ2V0ID0gdHJhbnNmb3JtRXhwcihwc3RhdGUs IChOb2RlICopIHZmLCBFWFBSX0tJTkRfTEVUX1RBUkdFVCk7CisKKwlwYXJhbXZhciA9IGNhc3RO b2RlKFBhcmFtLCB0YXJnZXQpOworCisJQXNzZXJ0KHBhcmFtdmFyLT5wYXJhbWtpbmQgPT0gUEFS QU1fVkFSSUFCTEUpOworCisJLyogU2V0IHVwIHBhc3N0aHJvdWdoIGRhdGEgZm9yIHRyYW5zZm9y bUFzc2lnblRhcmdldCAqLworCXBhc3N0aHJ1LnN0bXQgPSAoTm9kZSAqKSBzdG10OworCXBhc3N0 aHJ1LnRhcmdldCA9IChOb2RlICopIHBhcmFtdmFyOworCXBhc3N0aHJ1LnRhcmdldF9uYW1lID0g cGFyYW12YXItPnBhcmFtdmFybmFtZTsKKwlwYXNzdGhydS5pbmRpcmVjdGlvbiA9IE5JTDsKKwlw YXNzdGhydS5jY29udGV4dCA9IENPRVJDSU9OX0FTU0lHTk1FTlQ7CisKKwkvKiB3ZSBuZWVkIHRv IHBvc3Rwb25lIGNvbnZlcnNpb24gb2YgInVua25vd24iIHRvIHRleHQgKi8KKwlwc3RhdGUtPnBf cmVzb2x2ZV91bmtub3ducyA9IGZhbHNlOworCisJcXJ5ID0gdHJhbnNmb3JtU2VsZWN0U3RtdChw c3RhdGUsIChTZWxlY3RTdG10ICopIHN0bXQtPnF1ZXJ5LCAmcGFzc3RocnUpOworCisJcXJ5LT5y ZXN1bHRWYXJpYWJsZSA9IHBhcmFtdmFyLT5wYXJhbXZhcm5hbWU7CisJcXJ5LT5jYW5TZXRUYWcg PSB0cnVlOworCisJc3RtdC0+cXVlcnkgPSAoTm9kZSAqKSBxcnk7CisKKwkvKiByZXByZXNlbnQg dGhlIGNvbW1hbmQgYXMgYSB1dGlsaXR5IFF1ZXJ5ICovCisJcmVzdWx0ID0gbWFrZU5vZGUoUXVl cnkpOworCXJlc3VsdC0+Y29tbWFuZFR5cGUgPSBDTURfVVRJTElUWTsKKwlyZXN1bHQtPnV0aWxp dHlTdG10ID0gKE5vZGUgKikgc3RtdDsKKworCXJldHVybiByZXN1bHQ7Cit9CisKIC8qCiAgKiBQ cm9kdWNlIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIGEgTG9ja0NsYXVzZVN0cmVuZ3RoIHZh bHVlLgogICogVGhpcyBzaG91bGQgb25seSBiZSBhcHBsaWVkIHRvIHZhbGlkIHZhbHVlcyAobm90 IExDU19OT05FKS4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDgzNzMzMGE4MDdmLi4zMjdlY2Y4ODcxMiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CkBAIC0zMDEsNyArMzAxLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVW aWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJ RHJvcFRyYW5zZm9ybVN0bXQKIAkJRHJvcFVzZXJNYXBwaW5nU3RtdCBFeHBsYWluU3RtdCBGZXRj aFN0bXQKIAkJR3JhbnRTdG10IEdyYW50Um9sZVN0bXQgSW1wb3J0Rm9yZWlnblNjaGVtYVN0bXQg SW5kZXhTdG10IEluc2VydFN0bXQKLQkJTGlzdGVuU3RtdCBMb2FkU3RtdCBMb2NrU3RtdCBNZXJn ZVN0bXQgTm90aWZ5U3RtdCBFeHBsYWluYWJsZVN0bXQgUHJlcGFyYWJsZVN0bXQKKwkJTGV0U3Rt dCBMaXN0ZW5TdG10IExvYWRTdG10IExvY2tTdG10IE1lcmdlU3RtdCBOb3RpZnlTdG10IEV4cGxh aW5hYmxlU3RtdCBQcmVwYXJhYmxlU3RtdAogCQlDcmVhdGVGdW5jdGlvblN0bXQgQWx0ZXJGdW5j dGlvblN0bXQgUmVpbmRleFN0bXQgUmVtb3ZlQWdnclN0bXQKIAkJUmVtb3ZlRnVuY1N0bXQgUmVt b3ZlT3BlclN0bXQgUmVuYW1lU3RtdCBSZXR1cm5TdG10IFJldm9rZVN0bXQgUmV2b2tlUm9sZVN0 bXQKIAkJUnVsZUFjdGlvblN0bXQgUnVsZUFjdGlvblN0bXRPckVtcHR5IFJ1bGVTdG10CkBAIC03 NDcsNyArNzQ3LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIg KnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlLRUVQIEtFWSBLRVlTCiAK IAlMQUJFTCBMQU5HVUFHRSBMQVJHRV9QIExBU1RfUCBMQVRFUkFMX1AKLQlMRUFESU5HIExFQUtQ Uk9PRiBMRUFTVCBMRUZUIExFVkVMIExJS0UgTElNSVQgTElTVEVOIExPQUQgTE9DQUwKKwlMRUFE SU5HIExFQUtQUk9PRiBMRUFTVCBMRVQgTEVGVCBMRVZFTCBMSUtFIExJTUlUIExJU1RFTiBMT0FE IExPQ0FMCiAJTE9DQUxUSU1FIExPQ0FMVElNRVNUQU1QIExPQ0FUSU9OIExPQ0tfUCBMT0NLRUQg TE9HR0VEIExTTl9QCiAKIAlNQVBQSU5HIE1BVENIIE1BVENIRUQgTUFURVJJQUxJWkVEIE1BWFZB TFVFIE1FUkdFIE1FUkdFX0FDVElPTiBNRVRIT0QKQEAgLTEwOTUsNiArMTA5NSw3IEBAIHN0bXQ6 CiAJCQl8IEltcG9ydEZvcmVpZ25TY2hlbWFTdG10CiAJCQl8IEluZGV4U3RtdAogCQkJfCBJbnNl cnRTdG10CisJCQl8IExldFN0bXQKIAkJCXwgTGlzdGVuU3RtdAogCQkJfCBSZWZyZXNoTWF0Vmll d1N0bXQKIAkJCXwgTG9hZFN0bXQKQEAgLTEyOTMyLDYgKzEyOTMzLDM3IEBAIG9wdF9ob2xkOiAv KiBFTVBUWSAqLwkJCQkJCXsgJCQgPSAwOyB9CiAJCQl8IFdJVEhPVVQgSE9MRAkJCQkJeyAkJCA9 IDA7IH0KIAkJOwogCisvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAqCisgKgkJUVVFUlk6CisgKgkJ CQlMRVQgU1RBVEVNRU5UCisgKgorICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLworTGV0U3RtdDoJTEVU IENvbElkICc9JyBhX2V4cHIKKwkJCQl7CisJCQkJCUxldFN0bXQJICAgKm4gPSBtYWtlTm9kZShM ZXRTdG10KTsKKwkJCQkJU2VsZWN0U3RtdCAqc2VsZWN0OworCQkJCQlSZXNUYXJnZXQgICpyZXM7 CisKKwkJCQkJbi0+dGFyZ2V0ID0gJDI7CisKKwkJCQkJc2VsZWN0ID0gbWFrZU5vZGUoU2VsZWN0 U3RtdCk7CisJCQkJCXJlcyA9IG1ha2VOb2RlKFJlc1RhcmdldCk7CisKKwkJCQkJLyogY3JlYXRl IHRhcmdldCBsaXN0IGZvciBpbXBsaWNpdCBxdWVyeSAqLworCQkJCQlyZXMtPm5hbWUgPSBOVUxM OworCQkJCQlyZXMtPmluZGlyZWN0aW9uID0gTklMOworCQkJCQlyZXMtPnZhbCA9IChOb2RlICop ICQ0OworCQkJCQlyZXMtPmxvY2F0aW9uID0gQDQ7CisKKwkJCQkJc2VsZWN0LT50YXJnZXRMaXN0 ID0gbGlzdF9tYWtlMShyZXMpOworCQkJCQluLT5xdWVyeSA9IChOb2RlICopIHNlbGVjdDsKKwor CQkJCQluLT5sb2NhdGlvbiA9IEAyOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQorCQk7 CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqCQlRVUVSWToKQEAgLTE4MDM3LDYgKzE4 MDY5LDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBMQVJHRV9QCiAJCQl8IExBU1RfUAog CQkJfCBMRUFLUFJPT0YKKwkJCXwgTEVUCiAJCQl8IExFVkVMCiAJCQl8IExJU1RFTgogCQkJfCBM T0FECkBAIC0xODY1Myw2ICsxODY4Niw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgTEVB S1BST09GCiAJCQl8IExFQVNUCiAJCQl8IExFRlQKKwkJCXwgTEVUCiAJCQl8IExFVkVMCiAJCQl8 IExJS0UKIAkJCXwgTElTVEVOCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf YWdnLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKaW5kZXggYjgzNDA1NTdiMzQu LmE5YmQ0ZTY4MTU0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMK KysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCkBAIC01ODQsNiArNTg0LDEwIEBA IGNoZWNrX2FnZ2xldmVsc19hbmRfY29uc3RyYWludHMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2Rl ICpleHByKQogCQkJZXJya2luZCA9IHRydWU7CiAJCQlicmVhazsKIAorCQljYXNlIEVYUFJfS0lO RF9MRVRfVEFSR0VUOgorCQkJZXJya2luZCA9IHRydWU7CisJCQlicmVhazsKKwogCQkJLyoKIAkJ CSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0 IHRoZQogCQkJICogY29tcGlsZXIgd2lsbCB3YXJuIGlmIHdlIGFkZCBhIG5ldyBQYXJzZUV4cHJL aW5kIHdpdGhvdXQKQEAgLTEwMjMsNiArMTAyNyw5IEBAIHRyYW5zZm9ybVdpbmRvd0Z1bmNDYWxs KFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93RnVuYyAqd2Z1bmMsCiAJCWNhc2UgRVhQUl9LSU5E X0NZQ0xFX01BUks6CiAJCQllcnJraW5kID0gdHJ1ZTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJf S0lORF9MRVRfVEFSR0VUOgorCQkJZXJya2luZCA9IHRydWU7CisJCQlicmVhazsKIAogCQkJLyoK IAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0 aGF0IHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggYWEyNDgzYzk2YTYuLmJjNmFhYjc1 Y2NhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTU5MSw2ICs1OTEsOSBAQCB0cmFuc2Zv cm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJCWNhc2Ug RVhQUl9LSU5EX1BBUlRJVElPTl9CT1VORDoKIAkJCWVyciA9IF8oImNhbm5vdCB1c2UgY29sdW1u IHJlZmVyZW5jZSBpbiBwYXJ0aXRpb24gYm91bmQgZXhwcmVzc2lvbiIpOwogCQkJYnJlYWs7CisJ CWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CisJCQllcnIgPSBfKCJjYW5ub3QgdXNlIGNvbHVt biByZWZlcmVuY2UgYXMgdGFyZ2V0IG9mIExFVCBjb21tYW5kIik7CisJCQlicmVhazsKIAogCQkJ LyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBz byB0aGF0IHRoZQpAQCAtOTYxLDYgKzk2NCw3IEBAIGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92 YXJpYWJsZXMoUGFyc2VFeHByS2luZCBwX2V4cHJfa2luZCkKIAkJY2FzZSBFWFBSX0tJTkRfUkVU VVJOSU5HOgogCQljYXNlIEVYUFJfS0lORF9WQUxVRVM6CiAJCWNhc2UgRVhQUl9LSU5EX1ZBTFVF U19TSU5HTEU6CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CiAJCQlyZXN1bHQgPSB0cnVl OwogCQkJYnJlYWs7CiAKQEAgLTE5ODAsNiArMTk4NCw5IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFy c2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJsaW5rKQogCQljYXNlIEVYUFJfS0lORF9HRU5F UkFURURfQ09MVU1OOgogCQkJZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBjb2x1bW4g Z2VuZXJhdGlvbiBleHByZXNzaW9uIik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfTEVU X1RBUkdFVDoKKwkJCWVyciA9IF8oImNhbm5vdCB1c2Ugc3VicXVlcnkgYXMgYSB0YXJnZXQgb2Yg TEVUIGNvbW1hbmQiKTsKKwkJCWJyZWFrOwogCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50 aW9uYWxseSBubyBkZWZhdWx0OiBjYXNlIGhlcmUsIHNvIHRoYXQgdGhlCkBAIC0zMzM5LDYgKzMz NDYsOCBAQCBQYXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKQogCQkJcmV0 dXJuICJHRU5FUkFURUQgQVMiOwogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgogCQkJcmV0 dXJuICJDWUNMRSI7CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CisJCQlyZXR1cm4gIkxF VCI7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6IGNh c2UgaGVyZSwgc28gdGhhdCB0aGUKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9mdW5jLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCmluZGV4IDc3OGQ2OWM2 ZjNjLi4xMzYxNmM5YjNjMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1 bmMuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCkBAIC0yNzgzLDYgKzI3 ODMsOSBAQCBjaGVja19zcmZfY2FsbF9wbGFjZW1lbnQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2Rl ICpsYXN0X3NyZiwgaW50IGxvY2F0aW9uKQogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgog CQkJZXJya2luZCA9IHRydWU7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdF VDoKKwkJCWVycmtpbmQgPSB0cnVlOworCQkJYnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBUaGVyZSBp cyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jIGIvc3JjL2JhY2tlbmQvdGNvcC91dGls aXR5LmMKaW5kZXggN2RjOWMwYTZjODAuLjNmMWM4Y2I1ZTg5IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwpAQCAt MjM3LDYgKzIzNyw3IEBAIENsYXNzaWZ5VXRpbGl0eUNvbW1hbmRBc1JlYWRPbmx5KE5vZGUgKnBh cnNldHJlZSkKIAogCQljYXNlIFRfQ2FsbFN0bXQ6CiAJCWNhc2UgVF9Eb1N0bXQ6CisJCWNhc2Ug VF9MZXRTdG10OgogCQkJewogCQkJCS8qCiAJCQkJICogQ29tbWFuZHMgaW5zaWRlIHRoZSBETyBi bG9jayBvciB0aGUgY2FsbGVkIHByb2NlZHVyZSBtaWdodApAQCAtMTA3NSw2ICsxMDc2LDExIEBA IHN0YW5kYXJkX1Byb2Nlc3NVdGlsaXR5KFBsYW5uZWRTdG10ICpwc3RtdCwKIAkJCURyb3BWYXJp YWJsZUJ5TmFtZSgoKERyb3BTZXNzaW9uVmFyU3RtdCAqKSBwYXJzZXRyZWUpLT5uYW1lKTsKIAkJ CWJyZWFrOwogCisJCWNhc2UgVF9MZXRTdG10OgorCQkJRXhlY3V0ZUxldFN0bXQocHN0YXRlLCAo TGV0U3RtdCAqKSBwYXJzZXRyZWUsIHBhcmFtcywKKwkJCQkJCSAgIHF1ZXJ5RW52LCBxYyk7CisJ CQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJLyogQWxsIG90aGVyIHN0YXRlbWVudCB0eXBlcyBo YXZlIGV2ZW50IHRyaWdnZXIgc3VwcG9ydCAqLwogCQkJUHJvY2Vzc1V0aWxpdHlTbG93KHBzdGF0 ZSwgcHN0bXQsIHF1ZXJ5U3RyaW5nLApAQCAtMjIxOSw2ICsyMjI1LDEwIEBAIFV0aWxpdHlDb250 YWluc1F1ZXJ5KE5vZGUgKnBhcnNldHJlZSkKIAkJCQlyZXR1cm4gVXRpbGl0eUNvbnRhaW5zUXVl cnkocXJ5LT51dGlsaXR5U3RtdCk7CiAJCQlyZXR1cm4gcXJ5OwogCisJCWNhc2UgVF9MZXRTdG10 OgorCQkJcXJ5ID0gY2FzdE5vZGUoUXVlcnksICgoTGV0U3RtdCAqKSBwYXJzZXRyZWUpLT5xdWVy eSk7CisJCQlyZXR1cm4gcXJ5OworCiAJCWRlZmF1bHQ6CiAJCQlyZXR1cm4gTlVMTDsKIAl9CkBA IC0yNDE0LDYgKzI0MjQsMTAgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJ CQl0YWcgPSBDTURUQUdfU0VMRUNUOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJ CQl0YWcgPSBDTURUQUdfTEVUOworCQkJYnJlYWs7CisKIAkJCS8qIHV0aWxpdHkgc3RhdGVtZW50 cyAtLS0gc2FtZSB3aGV0aGVyIHJhdyBvciBjb29rZWQgKi8KIAkJY2FzZSBUX1RyYW5zYWN0aW9u U3RtdDoKIAkJCXsKQEAgLTMzMDQsNiArMzMxOCw3IEBAIEdldENvbW1hbmRMb2dMZXZlbChOb2Rl ICpwYXJzZXRyZWUpCiAJCQlicmVhazsKIAogCQljYXNlIFRfUExBc3NpZ25TdG10OgorCQljYXNl IFRfTGV0U3RtdDoKIAkJCWxldiA9IExPR1NUTVRfQUxMOwogCQkJYnJlYWs7CiAKZGlmZiAtLWdp dCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29t cGxldGUuaW4uYwppbmRleCAwMjJiOWRmNDA1YS4uNDQ1MTk1OWI4MWUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmluLmMKQEAgLTEyNjUsOCArMTI2NSw4IEBAIHN0YXRpYyBjb25zdCBjaGFyICpjb25zdCBz cWxfY29tbWFuZHNbXSA9IHsKIAkiQUJPUlQiLCAiQUxURVIiLCAiQU5BTFlaRSIsICJCRUdJTiIs ICJDQUxMIiwgIkNIRUNLUE9JTlQiLCAiQ0xPU0UiLCAiQ0xVU1RFUiIsCiAJIkNPTU1FTlQiLCAi Q09NTUlUIiwgIkNPUFkiLCAiQ1JFQVRFIiwgIkRFQUxMT0NBVEUiLCAiREVDTEFSRSIsCiAJIkRF TEVURSBGUk9NIiwgIkRJU0NBUkQiLCAiRE8iLCAiRFJPUCIsICJFTkQiLCAiRVhFQ1VURSIsICJF WFBMQUlOIiwKLQkiRkVUQ0giLCAiR1JBTlQiLCAiSU1QT1JUIEZPUkVJR04gU0NIRU1BIiwgIklO U0VSVCBJTlRPIiwgIkxJU1RFTiIsICJMT0FEIiwgIkxPQ0siLAotCSJNRVJHRSBJTlRPIiwgIk1P VkUiLCAiTk9USUZZIiwgIlBSRVBBUkUiLAorCSJGRVRDSCIsICJHUkFOVCIsICJJTVBPUlQgRk9S RUlHTiBTQ0hFTUEiLCAiSU5TRVJUIElOVE8iLCAiTEVUIiwKKwkiTElTVEVOIiwgIkxPQUQiLCAi TE9DSyIsICJNRVJHRSBJTlRPIiwgIk1PVkUiLCAiTk9USUZZIiwgIlBSRVBBUkUiLAogCSJSRUFT U0lHTiIsICJSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXIiwgIlJFSU5ERVgiLCAiUkVMRUFTRSIs CiAJIlJFU0VUIiwgIlJFVk9LRSIsICJST0xMQkFDSyIsCiAJIlNBVkVQT0lOVCIsICJTRUNVUklU WSBMQUJFTCIsICJTRUxFQ1QiLCAiU0VUIiwgIlNIT1ciLCAiU1RBUlQiLApAQCAtNDc5OCw2ICs0 Nzk4LDExIEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCWVsc2UgaWYg KFRhaWxNYXRjaGVzKCJWQUxVRVMiKSAmJiAhVGFpbE1hdGNoZXMoIkRFRkFVTFQiLCAiVkFMVUVT IikpCiAJCUNPTVBMRVRFX1dJVEgoIigiKTsKIAorLyogTEVUICovCisJLyogQ29tcGxldGUgTEVU IDx2YXJpYWJsZT4gd2l0aCAiPSIgKi8KKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiTEVUIiwgTWF0 Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCI9Iik7CisKIC8qIExPQ0sgKi8KIAkvKiBDb21wbGV0 ZSBMT0NLIFtUQUJMRV0gW09OTFldIHdpdGggYSBsaXN0IG9mIHRhYmxlcyAqLwogCWVsc2UgaWYg KE1hdGNoZXMoIkxPQ0siKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApp bmRleCA2MTBiNzU3ODk5ZS4uYzRiNGQ5ZTY4MzIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmgKQEAgLTE2LDggKzE2LDEwIEBACiAjZGVmaW5lIFNFU1NJT05WQVJJQUJM RV9ICiAKICNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFkZHJlc3MuaCIKKyNpbmNsdWRlICJub2Rl cy9wYXJhbXMuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2Vfbm9kZS5oIgogI2luY2x1ZGUgIm5v ZGVzL3BhcnNlbm9kZXMuaCIKKyNpbmNsdWRlICJ0Y29wL2NtZHRhZy5oIgogCiBleHRlcm4gdm9p ZCBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10 ICpzdG10KTsKIGV4dGVybiB2b2lkIERyb3BWYXJpYWJsZUJ5TmFtZShjaGFyICp2YXJuYW1lKTsK QEAgLTMyLDQgKzM0LDcgQEAgZXh0ZXJuIHZvaWQgZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90 eXBtb2RfY29sbGlkKGNoYXIgKnZhcm5hbWUsCiAJCQkJCQkJCQkJCQkJaW50MzIgKnR5cG1vZCwK IAkJCQkJCQkJCQkJCQlPaWQgKmNvbGxpZCk7CiAKK2V4dGVybiB2b2lkIEV4ZWN1dGVMZXRTdG10 KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCwgUGFyYW1MaXN0SW5mbyBwYXJhbXMs CisJCQkJCQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwgUXVlcnlDb21wbGV0aW9uICpx Yyk7CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o IGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDQ4NzQ2NGIxNGIxLi4zZGVj YzYzOWQ4MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBi L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMTQ3LDYgKzE0Nyw5IEBAIHR5cGVk ZWYgc3RydWN0IFF1ZXJ5CiAJICovCiAJaW50CQkJcmVzdWx0UmVsYXRpb24gcGdfbm9kZV9hdHRy KHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCisJLyogdGFyZ2V0IHZhcmlhYmxlIG9mIExFVCBzdGF0 ZW1lbnQgKi8KKwljaGFyCSAgICpyZXN1bHRWYXJpYWJsZTsKKwogCS8qIGhhcyBhZ2dyZWdhdGVz IGluIHRsaXN0IG9yIGhhdmluZ1F1YWwgKi8KIAlib29sCQloYXNBZ2dzIHBnX25vZGVfYXR0cihx dWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiBoYXMgd2luZG93IGZ1bmN0aW9ucyBpbiB0bGlzdCAq LwpAQCAtMjE3MCw2ICsyMTczLDE4IEBAIHR5cGVkZWYgc3RydWN0IE1lcmdlU3RtdAogCVdpdGhD bGF1c2UgKndpdGhDbGF1c2U7CQkvKiBXSVRIIGNsYXVzZSAqLwogfSBNZXJnZVN0bXQ7CiAKKy8q IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCQlMZXQgU3RhdGVtZW50CisgKiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IExldFN0bXQKK3sKKwlOb2RlVGFnCQl0 eXBlOworCWNoYXIJICAgKnRhcmdldDsJCQkvKiB0YXJnZXQgdmFyaWFibGUgKi8KKwlOb2RlCSAg ICpxdWVyeTsJCQkvKiBzb3VyY2UgZXhwcmVzc2lvbiAqLworCVBhcnNlTG9jCWxvY2F0aW9uOwor fSBMZXRTdG10OworCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKgkJU2VsZWN0IFN0YXRl bWVudAogICoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKaW5kZXggOTdhMDBkZjhkMWYuLjRhYTBhMDdmNDRh IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaAorKysgYi9zcmMvaW5j bHVkZS9ub2Rlcy9wYXRobm9kZXMuaApAQCAtMTkyLDYgKzE5Miw5IEBAIHR5cGVkZWYgc3RydWN0 IFBsYW5uZXJHbG9iYWwKIAogCS8qIGxpc3Qgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLwog CUxpc3QJICAgKnNlc3Npb25WYXJpYWJsZXM7CisKKwkvKiBuYW1lIG9mIHNlc3Npb24gdmFyaWFi bGUgdXNlZCBsaWtlIHRhcmdldCBvZiBMRVQgY29tbWFuZCAqLworCWNoYXIJICAgKnJlc3VsdFZh cmlhYmxlOwogfSBQbGFubmVyR2xvYmFsOwogCiAvKiBtYWNybyBmb3IgZmV0Y2hpbmcgdGhlIFBs YW4gYXNzb2NpYXRlZCB3aXRoIGEgU3ViUGxhbiBub2RlICovCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKaW5kZXgg OGIxZjJiZDNiNjguLjIxODE5Mjc2ODJjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIv a3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCkBAIC0yNTgsNiArMjU4 LDcgQEAgUEdfS0VZV09SRCgibGVhZGluZyIsIExFQURJTkcsIFJFU0VSVkVEX0tFWVdPUkQsIEJB UkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZWFrcHJvb2YiLCBMRUFLUFJPT0YsIFVOUkVTRVJWRURf S0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxlYXN0IiwgTEVBU1QsIENPTF9OQU1F X0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZWZ0IiwgTEVGVCwgVFlQRV9GVU5D X05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BHX0tFWVdPUkQoImxldCIsIExFVCwgVU5SRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGV2ZWwiLCBMRVZFTCwgVU5S RVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGlrZSIsIExJS0UsIFRZ UEVfRlVOQ19OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsaW1pdCIsIExJ TUlULCBSRVNFUlZFRF9LRVlXT1JELCBBU19MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCmlu ZGV4IDg0ZTg4Njk0MGQ4Li4wMjY3NDNiNzMzNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFy c2VyL3BhcnNlX25vZGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCkBA IC04Miw2ICs4Miw3IEBAIHR5cGVkZWYgZW51bSBQYXJzZUV4cHJLaW5kCiAJRVhQUl9LSU5EX0NP UFlfV0hFUkUsCQkvKiBXSEVSRSBjb25kaXRpb24gaW4gQ09QWSBGUk9NICovCiAJRVhQUl9LSU5E X0dFTkVSQVRFRF9DT0xVTU4sIC8qIGdlbmVyYXRpb24gZXhwcmVzc2lvbiBmb3IgYSBjb2x1bW4g Ki8KIAlFWFBSX0tJTkRfQ1lDTEVfTUFSSywJCS8qIGN5Y2xlIG1hcmsgdmFsdWUgKi8KKwlFWFBS X0tJTkRfTEVUX1RBUkdFVCwJCS8qIG9ubHkgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KIH0gUGFyc2VF eHByS2luZDsKIAogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCBi L3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCmluZGV4IDdlNTlkMGE1Mjc1Li5mZDIxMjI1 NzE2NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKKysrIGIvc3Jj L2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKQEAgLTE4NSw2ICsxODUsNyBAQCBQR19DTURUQUco Q01EVEFHX0dSQU5ULCAiR1JBTlQiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01E VEFHX0dSQU5UX1JPTEUsICJHUkFOVCBST0xFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NN RFRBRyhDTURUQUdfSU1QT1JUX0ZPUkVJR05fU0NIRU1BLCAiSU1QT1JUIEZPUkVJR04gU0NIRU1B IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19JTlNFUlQsICJJTlNFUlQi LCBmYWxzZSwgZmFsc2UsIHRydWUpCitQR19DTURUQUcoQ01EVEFHX0xFVCwgIkxFVCIsIGZhbHNl LCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0xJU1RFTiwgIkxJU1RFTiIsIGZhbHNl LCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0xPQUQsICJMT0FEIiwgZmFsc2UsIGZh bHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfTE9DS19UQUJMRSwgIkxPQ0sgVEFCTEUiLCBm YWxzZSwgZmFsc2UsIGZhbHNlKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlc19kbWwub3V0CmluZGV4IDg5ZWY2MDcxNWZlLi45YmZmMGVjYmMwOCAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlc19k bWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNf ZG1sLm91dApAQCAtMTMzLDMgKzEzMywxMjYgQEAgUkVTRVQgbWluX3BhcmFsbGVsX3RhYmxlX3Nj YW5fc2l6ZTsKIFJFU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXI7CiBEUk9QIFRB QkxFIHRlc3R2YXJfdGVzdHRhYjsKIERST1AgVkFSSUFCTEUgdGVtcF92YXIwMjsKK0NSRUFURSBU RU1QIFZBUklBQkxFIHRlbXBfdmFyMDMgQVMgbnVtZXJpYzsKKy0tIExFVCBzdG10IGlzIG5vdCBh bGxvd2VkIGluc2lkZSBDVEUKK1dJVEggeCBBUyAoTEVUICB0ZW1wX3ZhcjAzID0gMy4xNCkgU0VM RUNUICogRlJPTSB4OworRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiTEVUIgorTElO RSAxOiBXSVRIIHggQVMgKExFVCAgdGVtcF92YXIwMyA9IDMuMTQpIFNFTEVDVCAqIEZST00geDsK KyAgICAgICAgICAgICAgICAgICBeCistLSBMRVQgc3RtdCByZXF1aXJlcyByZXN1bHQgd2l0aCBl eGFjdGx5IG9uZSByb3cKK0xFVCB0ZW1wX3ZhcjAzID0gZ2VuZXJhdGVfc2VyaWVzKDEsMSk7CitT RUxFQ1QgVkFSSUFCTEUodGVtcF92YXIwMyk7CisgdGVtcF92YXIwMyAKKy0tLS0tLS0tLS0tLQor ICAgICAgICAgIDEKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB0ZW1wX3ZhcjAzID0g Z2VuZXJhdGVfc2VyaWVzKDEsMik7CitFUlJPUjogIGV4cHJlc3Npb24gcmV0dXJuZWQgbW9yZSB0 aGFuIG9uZSByb3cKK0xFVCB0ZW1wX3ZhcjAzID0gZ2VuZXJhdGVfc2VyaWVzKDEsMCk7CitFUlJP UjogIGV4cHJlc3Npb24gcmV0dXJuZWQgbm8gcm93cworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJ T04gdGVzdHZhcl9zcWwwMShudW1lcmljKQorUkVUVVJOUyB2b2lkIEFTICQkCitMRVQgdGVtcF92 YXIwMyA9ICQxOworJCQgTEFOR1VBR0Ugc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04g dGVzdHZhcl9zcWwwMigpCitSRVRVUk5TIG51bWVyaWMgQVMgJCQKK1NFTEVDVCBWQVJJQUJMRSh0 ZW1wX3ZhcjAzKTsKKyQkIExBTkdVQUdFIHNxbDsKK1NFTEVDVCB0ZXN0dmFyX3NxbDAxKDMuMTQp OworIHRlc3R2YXJfc3FsMDEgCistLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNU IHRlc3R2YXJfc3FsMDIoKSwgVkFSSUFCTEUodGVtcF92YXIwMyk7CisgdGVzdHZhcl9zcWwwMiB8 IHRlbXBfdmFyMDMgCistLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgICAgICAgICAgMy4x NCB8ICAgICAgIDMuMTQKKygxIHJvdykKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdGVz dHZhcl9wbCh2YXJjaGFyKQorUkVUVVJOUyB2YXJjaGFyIEFTICQkCitCRUdJTgorICBMRVQgdGVt cF92YXIwMyA9ICQxOjpudW1lcmljOworICBSRVRVUk4gVkFSSUFCTEUodGVtcF92YXIwMyk7CitF TkQKKyQkIExBTkdVQUdFIHBscGdzcWwgU0VDVVJJVFkgREVGSU5FUjsKK1NFTEVDVCB0ZXN0dmFy X3BsKCczLjE0Jyk7CisgdGVzdHZhcl9wbCAKKy0tLS0tLS0tLS0tLQorIDMuMTQKKygxIHJvdykK KworRFJPUCBWQVJJQUJMRSB0ZW1wX3ZhcjAzOworU0VUIHBsYW5fY2FjaGVfbW9kZSB0byBmb3Jj ZV9nZW5lcmljX3BsYW47CistLSBzaG91bGQgbm90IGNyYXNoCitTRUxFQ1QgdGVzdHZhcl9zcWww MSgzLjE0KTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAidGVtcF92YXIwMyIgZG9lc24ndCBl eGlzdAorQ09OVEVYVDogIFNRTCBmdW5jdGlvbiAidGVzdHZhcl9zcWwwMSIgZHVyaW5nIGlubGlu aW5nCitTRUxFQ1QgdGVzdHZhcl9zcWwwMigpLCBWQVJJQUJMRSh0ZW1wX3ZhcjAzKTsKK0VSUk9S OiAgc2Vzc2lvbiB2YXJpYWJsZSAidGVtcF92YXIwMyIgZG9lc24ndCBleGlzdAorU0VMRUNUIHRl c3R2YXJfcGwoJzMuMTQxNTkyJyk7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInRlbXBfdmFy MDMiIGRvZXNuJ3QgZXhpc3QKK0NPTlRFWFQ6ICBTUUwgc3RhdGVtZW50ICJMRVQgdGVtcF92YXIw MyA9ICQxOjpudW1lcmljIgorUEwvcGdTUUwgZnVuY3Rpb24gdGVzdHZhcl9wbChjaGFyYWN0ZXIg dmFyeWluZykgbGluZSAzIGF0IFNRTCBzdGF0ZW1lbnQKKy0tIGNhbiB3b3JrIGFnYWluIGlmIHdl IGNyZWF0ZSB2YXJpYWJsZQorQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdGVtcF92YXIwMyBBUyBudW1l cmljOworU0VMRUNUIHRlc3R2YXJfc3FsMDEoMy4xNCk7CisgdGVzdHZhcl9zcWwwMSAKKy0tLS0t LS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgdGVzdHZhcl9zcWwwMigpLCBWQVJJQUJM RSh0ZW1wX3ZhcjAzKTsKKyB0ZXN0dmFyX3NxbDAyIHwgdGVtcF92YXIwMyAKKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyAgICAgICAgICAzLjE0IHwgICAgICAgMy4xNAorKDEgcm93KQor CitTRUxFQ1QgdGVzdHZhcl9wbCgnMy4xNDE1OTInKTsKKyB0ZXN0dmFyX3BsIAorLS0tLS0tLS0t LS0tCisgMy4xNDE1OTIKKygxIHJvdykKKworQ1JFQVRFIFJPTEUgcmVncmVzc19zZXNzaW9uX3Zh cmlhYmxlX3Rlc3Rfcm9sZV8wNDsKK1NFVCBST0xFIHJlZ3Jlc3Nfc2Vzc2lvbl92YXJpYWJsZV90 ZXN0X3JvbGVfMDQ7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHRlc3R2YXJfc3FsMDEoMy4xNCk7 CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHRlbXBfdmFy MDMKK0NPTlRFWFQ6ICBTUUwgZnVuY3Rpb24gInRlc3R2YXJfc3FsMDEiIHN0YXRlbWVudCAxCist LSBzaG91bGQgYmUgb2sgKHNlY3VyaXR5IGRlZmluZXIpCitTRUxFQ1QgdGVzdHZhcl9wbCgnMy4x NDE1OTInKTsKKyB0ZXN0dmFyX3BsIAorLS0tLS0tLS0tLS0tCisgMy4xNDE1OTIKKygxIHJvdykK KworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgRlVOQ1RJT04gdGVzdHZhcl9zcWwwMShudW1l cmljKTsKK0RST1AgRlVOQ1RJT04gdGVzdHZhcl9zcWwwMigpOworRFJPUCBGVU5DVElPTiB0ZXN0 dmFyX3BsKHZhcmNoYXIpOworRFJPUCBST0xFIHJlZ3Jlc3Nfc2Vzc2lvbl92YXJpYWJsZV90ZXN0 X3JvbGVfMDQ7CitEUk9QIFZBUklBQkxFIHRlbXBfdmFyMDM7CitTRVQgcGxhbl9jYWNoZV9tb2Rl IFRPIERFRkFVTFQ7CistLSB0ZXN0IGV4dGVuZGVkIHF1ZXJ5IHByb3RvY29sCitDUkVBVEUgVEVN UCBWQVJJQUJMRSB0ZW1wX3ZhcjA0IEFTIGludDsKK0xFVCB0ZW1wX3ZhcjA0ID0gJDEgXGJpbmQg MTAgXGcKK1NFTEVDVCBWQVJJQUJMRSh0ZW1wX3ZhcjA0KTsKKyB0ZW1wX3ZhcjA0IAorLS0tLS0t LS0tLS0tCisgICAgICAgICAxMAorKDEgcm93KQorCitMRVQgdGVtcF92YXIwNCA9ICQxIFxwYXJz ZSBsZXRwcworXGJpbmRfbmFtZWQgbGV0cHMgMTAwIFxnCitTRUxFQ1QgVkFSSUFCTEUodGVtcF92 YXIwNCk7CisgdGVtcF92YXIwNCAKKy0tLS0tLS0tLS0tLQorICAgICAgICAxMDAKKygxIHJvdykK KworXGNsb3NlX3ByZXBhcmVkIGxldHBzCitEUk9QIFZBUklBQkxFIHRlbXBfdmFyMDQ7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLnNxbAppbmRleCBiZjU2 YjE5NDY3Yi4uYjg0MDhjOTdjYWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nl c3Npb25fdmFyaWFibGVzX2RtbC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXNfZG1sLnNxbApAQCAtMTE4LDMgKzExOCw5MCBAQCBSRVNFVCBtYXhfcGFyYWxs ZWxfd29ya2Vyc19wZXJfZ2F0aGVyOwogCiBEUk9QIFRBQkxFIHRlc3R2YXJfdGVzdHRhYjsKIERS T1AgVkFSSUFCTEUgdGVtcF92YXIwMjsKKworQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdGVtcF92YXIw MyBBUyBudW1lcmljOworCistLSBMRVQgc3RtdCBpcyBub3QgYWxsb3dlZCBpbnNpZGUgQ1RFCitX SVRIIHggQVMgKExFVCAgdGVtcF92YXIwMyA9IDMuMTQpIFNFTEVDVCAqIEZST00geDsKKworLS0g TEVUIHN0bXQgcmVxdWlyZXMgcmVzdWx0IHdpdGggZXhhY3RseSBvbmUgcm93CitMRVQgdGVtcF92 YXIwMyA9IGdlbmVyYXRlX3NlcmllcygxLDEpOworU0VMRUNUIFZBUklBQkxFKHRlbXBfdmFyMDMp OworCistLSBzaG91bGQgZmFpbAorTEVUIHRlbXBfdmFyMDMgPSBnZW5lcmF0ZV9zZXJpZXMoMSwy KTsKK0xFVCB0ZW1wX3ZhcjAzID0gZ2VuZXJhdGVfc2VyaWVzKDEsMCk7CisKK0NSRUFURSBPUiBS RVBMQUNFIEZVTkNUSU9OIHRlc3R2YXJfc3FsMDEobnVtZXJpYykKK1JFVFVSTlMgdm9pZCBBUyAk JAorTEVUIHRlbXBfdmFyMDMgPSAkMTsKKyQkIExBTkdVQUdFIHNxbDsKKworQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04gdGVzdHZhcl9zcWwwMigpCitSRVRVUk5TIG51bWVyaWMgQVMgJCQKK1NF TEVDVCBWQVJJQUJMRSh0ZW1wX3ZhcjAzKTsKKyQkIExBTkdVQUdFIHNxbDsKKworU0VMRUNUIHRl c3R2YXJfc3FsMDEoMy4xNCk7CitTRUxFQ1QgdGVzdHZhcl9zcWwwMigpLCBWQVJJQUJMRSh0ZW1w X3ZhcjAzKTsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdGVzdHZhcl9wbCh2YXJjaGFy KQorUkVUVVJOUyB2YXJjaGFyIEFTICQkCitCRUdJTgorICBMRVQgdGVtcF92YXIwMyA9ICQxOjpu dW1lcmljOworICBSRVRVUk4gVkFSSUFCTEUodGVtcF92YXIwMyk7CitFTkQKKyQkIExBTkdVQUdF IHBscGdzcWwgU0VDVVJJVFkgREVGSU5FUjsKKworU0VMRUNUIHRlc3R2YXJfcGwoJzMuMTQnKTsK KworRFJPUCBWQVJJQUJMRSB0ZW1wX3ZhcjAzOworCitTRVQgcGxhbl9jYWNoZV9tb2RlIHRvIGZv cmNlX2dlbmVyaWNfcGxhbjsKKworLS0gc2hvdWxkIG5vdCBjcmFzaAorU0VMRUNUIHRlc3R2YXJf c3FsMDEoMy4xNCk7CitTRUxFQ1QgdGVzdHZhcl9zcWwwMigpLCBWQVJJQUJMRSh0ZW1wX3ZhcjAz KTsKK1NFTEVDVCB0ZXN0dmFyX3BsKCczLjE0MTU5MicpOworCistLSBjYW4gd29yayBhZ2FpbiBp ZiB3ZSBjcmVhdGUgdmFyaWFibGUKK0NSRUFURSBURU1QIFZBUklBQkxFIHRlbXBfdmFyMDMgQVMg bnVtZXJpYzsKK1NFTEVDVCB0ZXN0dmFyX3NxbDAxKDMuMTQpOworU0VMRUNUIHRlc3R2YXJfc3Fs MDIoKSwgVkFSSUFCTEUodGVtcF92YXIwMyk7CitTRUxFQ1QgdGVzdHZhcl9wbCgnMy4xNDE1OTIn KTsKKworQ1JFQVRFIFJPTEUgcmVncmVzc19zZXNzaW9uX3ZhcmlhYmxlX3Rlc3Rfcm9sZV8wNDsK KworU0VUIFJPTEUgcmVncmVzc19zZXNzaW9uX3ZhcmlhYmxlX3Rlc3Rfcm9sZV8wNDsKKworLS0g c2hvdWxkIGZhaWwKK1NFTEVDVCB0ZXN0dmFyX3NxbDAxKDMuMTQpOworCistLSBzaG91bGQgYmUg b2sgKHNlY3VyaXR5IGRlZmluZXIpCitTRUxFQ1QgdGVzdHZhcl9wbCgnMy4xNDE1OTInKTsKKwor U0VUIFJPTEUgVE8gREVGQVVMVDsKKworRFJPUCBGVU5DVElPTiB0ZXN0dmFyX3NxbDAxKG51bWVy aWMpOworRFJPUCBGVU5DVElPTiB0ZXN0dmFyX3NxbDAyKCk7CitEUk9QIEZVTkNUSU9OIHRlc3R2 YXJfcGwodmFyY2hhcik7CisKK0RST1AgUk9MRSByZWdyZXNzX3Nlc3Npb25fdmFyaWFibGVfdGVz dF9yb2xlXzA0OworCitEUk9QIFZBUklBQkxFIHRlbXBfdmFyMDM7CisKK1NFVCBwbGFuX2NhY2hl X21vZGUgVE8gREVGQVVMVDsKKworLS0gdGVzdCBleHRlbmRlZCBxdWVyeSBwcm90b2NvbAorQ1JF QVRFIFRFTVAgVkFSSUFCTEUgdGVtcF92YXIwNCBBUyBpbnQ7CisKK0xFVCB0ZW1wX3ZhcjA0ID0g JDEgXGJpbmQgMTAgXGcKK1NFTEVDVCBWQVJJQUJMRSh0ZW1wX3ZhcjA0KTsKKworTEVUIHRlbXBf dmFyMDQgPSAkMSBccGFyc2UgbGV0cHMKK1xiaW5kX25hbWVkIGxldHBzIDEwMCBcZworU0VMRUNU IFZBUklBQkxFKHRlbXBfdmFyMDQpOworCitcY2xvc2VfcHJlcGFyZWQgbGV0cHMKKworRFJPUCBW QVJJQUJMRSB0ZW1wX3ZhcjA0OwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVk ZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCAyM2ZmNWRj MjI4MS4uMTMxYjJkYTdiZDkgMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC0xNTUxLDYg KzE1NTEsNyBAQCBMYXJnZU9iamVjdERlc2MKIExhdGNoCiBMYXVuY2hlckxhc3RTdGFydFRpbWVz RW50cnkKIExlcnBGdW5jCitMZXRTdG10CiBMZXhEZXNjcgogTGV4ZW1lRW50cnkKIExleGVtZUhh c2hLZXkKLS0gCjIuNTIuMAoK --0000000000008b48e906456c698a Content-Type: application/x-patch; name="v20251208-0005-svariableReceiver.patch" Content-Disposition: attachment; filename="v20251208-0005-svariableReceiver.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miwu5rkj5 RnJvbSA0ZTQ4NmYyMmI5MGNkYWQ4Yzk4OGIwYjgyMDRhZmY1OTc2ZDVkOTM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMSBKdW4gMjAyNSAyMToyMDoxNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDUv MTFdIHN2YXJpYWJsZVJlY2VpdmVyCgphbGxvd3MgdG8gc3RvcmUgcmVzdWx0IG9mIHRoZSBxdWVy eSB0byBzZXNzaW9uIHZhcmlhYmxlCgpDaGVjayBjb3JyZWN0IGZvcm1hdCBvZiByZXN1bHQgLSBv bmUgY29sdW1uLCBvbmUgcm93LgotLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYyAgfCAgNTAgKysrKysrKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlICAg ICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVzb24uYnVpbGQgICAgICAg ICB8ICAgMSArCiBzcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jIHwgMTQ5 ICsrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvYmFja2VuZC90Y29wL2Rlc3QuYyAgICAgICAg ICAgICAgICAgIHwgICA3ICsrCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmggIHwgICAzICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmggfCAg MjIgKysrKwogc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmggICAgICAgICAgICAgICAgICB8ICAgMSAr CiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgIHwgICAxICsKIDkgZmls ZXMgY2hhbmdlZCwgMjM1IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFj a2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj L2luY2x1ZGUvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaAoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCAyMDFiYzA0OGQ4Yi4uNjZlYTFlYzJlYmEgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTE3MSw2ICsxNzEsNTYgQEAg R2V0U2Vzc2lvblZhcmlhYmxlV2l0aFR5cGVjaGVjayhjaGFyICp2YXJuYW1lLAogCXJldHVybiBy ZXN1bHQ7CiB9CiAKKy8qCisgKiBTdG9yZSB0aGUgZ2l2ZW4gdmFsdWUgaW4gYSBzZXNzaW9uIHZh cmlhYmxlIGluIHRoZSBjYWNoZS4KKyAqLwordm9pZAorU2V0U2Vzc2lvblZhcmlhYmxlV2l0aFR5 cGVjaGVjayhjaGFyICp2YXJuYW1lLAorCQkJCQkJCQlPaWQgdHlwaWQsIGludDMyIHR5cG1vZCwK KwkJCQkJCQkJRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQoreworCVNWYXJpYWJsZQlzdmFyOwor CisJc3ZhciA9IHNlYXJjaF92YXJpYWJsZSh2YXJuYW1lKTsKKworCWlmIChzdmFyLT52YXJ0eXBl ICE9IHR5cGlkIHx8IHN2YXItPnZhcnR5cG1vZCAhPSB0eXBtb2QpCisJCWVyZXBvcnQoRVJST1Is CisJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJIGVycm1zZygi c2Vzc2lvbiB2YXJpYWJsZSAlcyBpcyBub3Qgb2YgYSB0eXBlICVzIGJ1dCB0eXBlICVzIiwKKwkJ CQkJCXZhcm5hbWUsCisJCQkJCQlmb3JtYXRfdHlwZV93aXRoX3R5cGVtb2QodHlwaWQsIHR5cG1v ZCksCisJCQkJCQlmb3JtYXRfdHlwZV93aXRoX3R5cGVtb2Qoc3Zhci0+dmFydHlwZSwgc3Zhci0+ dmFydHlwbW9kKSkpKTsKKworCS8qIG9ubHkgb3duZXIgY2FuIHNldCBjb250ZW50IG9mIHZhcmlh YmxlICovCisJaWYgKHN2YXItPnZhcm93bmVyICE9IEdldFVzZXJJZCgpICYmICFzdXBlcnVzZXIo KSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9Q UklWSUxFR0UpLAorCQkJCSBlcnJtc2coInBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZh cmlhYmxlICVzIiwKKwkJCQkJCXZhcm5hbWUpKSk7CisKKwlpZiAoIXN2YXItPnR5cGJ5dmFsKQor CXsKKwkJaWYgKCFpc251bGwpCisJCXsKKwkJCU1lbW9yeUNvbnRleHQgb2xkY3h0OworCisJCQkv KgorCQkJICogRG8gY29weSBvZiB2YWx1ZSBpbiBzZXNzaW9uIHZhcmlhYmxlcyBjb250ZXh0LiBU aGlzIG9wZXJhdGlvbgorCQkJICogY2FuIGZhaWwsIHNvIGRvIGl0IGJlZm9yZSByZWxlYXNpbmcg dGhlIG9sZCBjb250ZW50LgorCQkJICovCisJCQlvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNo VG8oU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCk7CisJCQl2YWx1ZSA9IGRhdHVtQ29weSh2YWx1ZSwg c3Zhci0+dHlwYnl2YWwsIHN2YXItPnR5cGxlbik7CisJCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8o b2xkY3h0KTsKKwkJfQorCisJCWlmICghc3Zhci0+aXNudWxsKQorCQkJcGZyZWUoRGF0dW1HZXRQ b2ludGVyKHN2YXItPnZhbHVlKSk7CisJfQorCisJc3Zhci0+dmFsdWUgPSB2YWx1ZTsKKwlzdmFy LT5pc251bGwgPSBpc251bGw7Cit9CisKIC8qCiAgKiBDcmVhdGVzIGEgbmV3IHZhcmlhYmxlIC0g ZG9lcyBuZXcgZW50cnkgaW4gc2Vzc2lvbnZhcnMKICAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlCmluZGV4 IDExMTE4ZDBjZTAyLi43MTI0OGEzNGYyNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUKQEAgLTc2LDYg Kzc2LDcgQEAgT0JKUyA9IFwKIAlub2RlV2luZG93QWdnLm8gXAogCW5vZGVXb3JrdGFibGVzY2Fu Lm8gXAogCXNwaS5vIFwKKwlzdmFyaWFibGVSZWNlaXZlci5vIFwKIAl0cXVldWUubyBcCiAJdHN0 b3JlUmVjZWl2ZXIubwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9tZXNvbi5i dWlsZCBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxkCmluZGV4IDJjZWE0MWY4Nzcx Li40OTEwOTJmY2M0YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVzb24uYnVp bGQKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVzb24uYnVpbGQKQEAgLTY0LDYgKzY0LDcg QEAgYmFja2VuZF9zb3VyY2VzICs9IGZpbGVzKAogICAnbm9kZVdpbmRvd0FnZy5jJywKICAgJ25v ZGVXb3JrdGFibGVzY2FuLmMnLAogICAnc3BpLmMnLAorICAnc3ZhcmlhYmxlUmVjZWl2ZXIuYycs CiAgICd0cXVldWUuYycsCiAgICd0c3RvcmVSZWNlaXZlci5jJywKICkKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMgYi9zcmMvYmFja2VuZC9leGVj dXRvci9zdmFyaWFibGVSZWNlaXZlci5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwLi5iMjcwOWU5MjExYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKQEAgLTAsMCArMSwxNDkgQEAKKy8qLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICoKKyAqIHN2YXJpYWJsZVJlY2VpdmVyLmMKKyAqCSAgQW4gaW1wbGVtZW50YXRpb24g b2YgRGVzdFJlY2VpdmVyIHRoYXQgc3RvcmVzIHRoZSByZXN1bHQgdmFsdWUgaW4KKyAqCSAgYSBz ZXNzaW9uIHZhcmlhYmxlLgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI0 LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJp Z2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAq CisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC9leGVjdXRvci9zdmFyaWFibGVS ZWNlaXZlci5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2luY2x1ZGUgInBvc3Rn cmVzLmgiCisjaW5jbHVkZSAibWlzY2FkbWluLmgiCisKKyNpbmNsdWRlICJhY2Nlc3MvZGV0b2Fz dC5oIgorI2luY2x1ZGUgImFjY2Vzcy9odHVwX2RldGFpbHMuaCIKKyNpbmNsdWRlICJjb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2 ZXIuaCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNj YWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKKy8qCisgKiBUaGlzIERlc3RS ZWNlaXZlciBpcyB1c2VkIGJ5IHRoZSBMRVQgY29tbWFuZCBmb3Igc3RvcmluZyB0aGUgcmVzdWx0 IHRvIGEKKyAqIHNlc3Npb24gdmFyaWFibGUuICBUaGUgcmVzdWx0IGhhcyB0byBoYXZlIG9ubHkg b25lIHR1cGxlIHdpdGggb25seSBvbmUKKyAqIG5vbi1kZWxldGVkIGF0dHJpYnV0ZS4gIFRoZSBy b3cgY291bnRlciAoZmllbGQgInJvd3MiKSBpcyBpbmNyZW1lbnRlZAorICogYWZ0ZXIgcmVjZWl2 aW5nIGEgcm93LCBhbmQgYW4gZXJyb3IgaXMgcmFpc2VkIHdoZW4gdGhlcmUgYXJlIG5vIHJvd3Mg b3IKKyAqIHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lIHJlY2VpdmVkIHJvd3MuICBBIHJlY2VpdmVk IHR1cGxlIGNhbm5vdCB0byBoYXZlCisgKiBkZWxldGVkIGF0dHJpYnV0ZXMuICBUaGUgdmFsdWUg aXMgZGV0b2FzdGVkIGJlZm9yZSBzdG9yaW5nIGl0IGluIHRoZQorICogc2Vzc2lvbiB2YXJpYWJs ZS4KKyAqLwordHlwZWRlZiBzdHJ1Y3QKK3sKKwlEZXN0UmVjZWl2ZXIgcHViOworCWNoYXIJICAg KnZhcm5hbWU7CisJT2lkCQkJdHlwaWQ7CisJaW50MzIJCXR5cG1vZDsKKwlib29sCQluZWVkX2Rl dG9hc3Q7CS8qIGRvIHdlIG5lZWQgdG8gZGV0b2FzdCB0aGUgYXR0cmlidXRlPyAqLworCWludAkJ CXJvd3M7CQkJLyogcm93IGNvdW50ZXIgKi8KK30gU1ZhcmlhYmxlU3RhdGU7CisKKy8qCisgKiBQ cmVwYXJlIHRvIHJlY2VpdmUgdHVwbGVzIGZyb20gZXhlY3V0b3IuCisgKi8KK3N0YXRpYyB2b2lk CitzdmFyaWFibGVTdGFydHVwUmVjZWl2ZXIoRGVzdFJlY2VpdmVyICpzZWxmLCBpbnQgb3BlcmF0 aW9uLCBUdXBsZURlc2MgdHlwZWluZm8pCit7CisJU1ZhcmlhYmxlU3RhdGUgKm15U3RhdGUgPSAo U1ZhcmlhYmxlU3RhdGUgKikgc2VsZjsKKwlGb3JtX3BnX2F0dHJpYnV0ZSBhdHRyOworCisJQXNz ZXJ0KG15U3RhdGUtPnB1Yi5teWRlc3QgPT0gRGVzdFZhcmlhYmxlKTsKKwlBc3NlcnQodHlwZWlu Zm8tPm5hdHRzID09IDEpOworCisJYXR0ciA9IFR1cGxlRGVzY0F0dHIodHlwZWluZm8sIDApOwor CisJQXNzZXJ0KCFhdHRyLT5hdHRpc2Ryb3BwZWQpOworCisJbXlTdGF0ZS0+dHlwaWQgPSBhdHRy LT5hdHR0eXBpZDsKKwlteVN0YXRlLT50eXBtb2QgPSBhdHRyLT5hdHR0eXBtb2Q7CisKKwlteVN0 YXRlLT5uZWVkX2RldG9hc3QgPSBhdHRyLT5hdHRsZW4gPT0gLTE7CisJbXlTdGF0ZS0+cm93cyA9 IDA7Cit9CisKKy8qCisgKiBSZWNlaXZlIGEgdHVwbGUgZnJvbSB0aGUgZXhlY3V0b3IgYW5kIHN0 b3JlIGl0IGluIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICovCitzdGF0aWMgYm9vbAorc3Zhcmlh YmxlUmVjZWl2ZVNsb3QoVHVwbGVUYWJsZVNsb3QgKnNsb3QsIERlc3RSZWNlaXZlciAqc2VsZikK K3sKKwlTVmFyaWFibGVTdGF0ZSAqbXlTdGF0ZSA9IChTVmFyaWFibGVTdGF0ZSAqKSBzZWxmOwor CURhdHVtCQl2YWx1ZTsKKwlib29sCQlpc251bGw7CisJYm9vbAkJZnJlZXZhbCA9IGZhbHNlOwor CisJLyogbWFrZSBzdXJlIHRoZSB0dXBsZSBpcyBmdWxseSBkZWNvbnN0cnVjdGVkICovCisJc2xv dF9nZXRhbGxhdHRycyhzbG90KTsKKworCXZhbHVlID0gc2xvdC0+dHRzX3ZhbHVlc1swXTsKKwlp c251bGwgPSBzbG90LT50dHNfaXNudWxsWzBdOworCisJaWYgKG15U3RhdGUtPm5lZWRfZGV0b2Fz dCAmJiAhaXNudWxsICYmIFZBUkFUVF9JU19FWFRFUk5BTChEYXR1bUdldFBvaW50ZXIodmFsdWUp KSkKKwl7CisJCXZhbHVlID0gUG9pbnRlckdldERhdHVtKGRldG9hc3RfZXh0ZXJuYWxfYXR0cigo c3RydWN0IHZhcmxlbmEgKikKKwkJCQkJCQkJCQkJCQkgIERhdHVtR2V0UG9pbnRlcih2YWx1ZSkp KTsKKwkJZnJlZXZhbCA9IHRydWU7CisJfQorCisJbXlTdGF0ZS0+cm93cyArPSAxOworCisJaWYg KG15U3RhdGUtPnJvd3MgPiAxKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNP REVfVE9PX01BTllfUk9XUyksCisJCQkJIGVycm1zZygiZXhwcmVzc2lvbiByZXR1cm5lZCBtb3Jl IHRoYW4gb25lIHJvdyIpKSk7CisKKwlTZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlwZWNoZWNrKG15 U3RhdGUtPnZhcm5hbWUsCisJCQkJCQkJCQlteVN0YXRlLT50eXBpZCwgbXlTdGF0ZS0+dHlwbW9k LAorCQkJCQkJCQkJdmFsdWUsIGlzbnVsbCk7CisKKwlpZiAoZnJlZXZhbCkKKwkJcGZyZWUoRGF0 dW1HZXRQb2ludGVyKHZhbHVlKSk7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAqIENsZWFu IHVwIGF0IGVuZCBvZiB0aGUgZXhlY3V0b3IgcnVuCisgKi8KK3N0YXRpYyB2b2lkCitzdmFyaWFi bGVTaHV0ZG93blJlY2VpdmVyKERlc3RSZWNlaXZlciAqc2VsZikKK3sKKwlpZiAoKChTVmFyaWFi bGVTdGF0ZSAqKSBzZWxmKS0+cm93cyA9PSAwKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJj b2RlKEVSUkNPREVfTk9fREFUQV9GT1VORCksCisJCQkJIGVycm1zZygiZXhwcmVzc2lvbiByZXR1 cm5lZCBubyByb3dzIikpKTsKK30KKworLyoKKyAqIERlc3Ryb3kgdGhlIHJlY2VpdmVyIHdoZW4g d2UgYXJlIGRvbmUgd2l0aCBpdAorICovCitzdGF0aWMgdm9pZAorc3ZhcmlhYmxlRGVzdHJveVJl Y2VpdmVyKERlc3RSZWNlaXZlciAqc2VsZikKK3sKKwlwZnJlZSgoKFNWYXJpYWJsZVN0YXRlICop IHNlbGYpLT52YXJuYW1lKTsKKwlwZnJlZShzZWxmKTsKK30KKworLyoKKyAqIEluaXRpYWxseSBj cmVhdGUgYSBEZXN0UmVjZWl2ZXIgb2JqZWN0LgorICovCitEZXN0UmVjZWl2ZXIgKgorQ3JlYXRl VmFyaWFibGVEZXN0UmVjZWl2ZXIoY2hhciAqdmFybmFtZSkKK3sKKwlTVmFyaWFibGVTdGF0ZSAq c2VsZiA9IChTVmFyaWFibGVTdGF0ZSAqKSBwYWxsb2MwKHNpemVvZihTVmFyaWFibGVTdGF0ZSkp OworCisJc2VsZi0+cHViLnJlY2VpdmVTbG90ID0gc3ZhcmlhYmxlUmVjZWl2ZVNsb3Q7CisJc2Vs Zi0+cHViLnJTdGFydHVwID0gc3ZhcmlhYmxlU3RhcnR1cFJlY2VpdmVyOworCXNlbGYtPnB1Yi5y U2h1dGRvd24gPSBzdmFyaWFibGVTaHV0ZG93blJlY2VpdmVyOworCXNlbGYtPnB1Yi5yRGVzdHJv eSA9IHN2YXJpYWJsZURlc3Ryb3lSZWNlaXZlcjsKKwlzZWxmLT5wdWIubXlkZXN0ID0gRGVzdFZh cmlhYmxlOworCisJc2VsZi0+dmFybmFtZSA9IHBzdHJkdXAodmFybmFtZSk7CisKKwlyZXR1cm4g KERlc3RSZWNlaXZlciAqKSBzZWxmOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9k ZXN0LmMgYi9zcmMvYmFja2VuZC90Y29wL2Rlc3QuYwppbmRleCBiNjIwNzY2YzkzOC4uMGMxZWVl YjIyYTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvZGVzdC5jCisrKyBiL3NyYy9iYWNr ZW5kL3Rjb3AvZGVzdC5jCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiZXhlY3V0b3IvZnVu Y3Rpb25zLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvdHF1ZXVlLmgiCiAjaW5jbHVkZSAiZXhlY3V0 b3IvdHN0b3JlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJleGVjdXRvci9zdmFyaWFibGVSZWNlaXZl ci5oIgogI2luY2x1ZGUgImxpYnBxL2xpYnBxLmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQu aCIKIApAQCAtMTU1LDYgKzE1Niw5IEBAIENyZWF0ZURlc3RSZWNlaXZlcihDb21tYW5kRGVzdCBk ZXN0KQogCiAJCWNhc2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6CiAJCQlyZXR1cm4gQ3JlYXRlRXhw bGFpblNlcmlhbGl6ZURlc3RSZWNlaXZlcihOVUxMKTsKKworCQljYXNlIERlc3RWYXJpYWJsZToK KwkJCXJldHVybiBDcmVhdGVWYXJpYWJsZURlc3RSZWNlaXZlcihOVUxMKTsKIAl9CiAKIAkvKiBz aG91bGQgbmV2ZXIgZ2V0IGhlcmUgKi8KQEAgLTE5MSw2ICsxOTUsNyBAQCBFbmRDb21tYW5kKGNv bnN0IFF1ZXJ5Q29tcGxldGlvbiAqcWMsIENvbW1hbmREZXN0IGRlc3QsIGJvb2wgZm9yY2VfdW5k ZWNvcmF0ZWRfbwogCQljYXNlIERlc3RUcmFuc2llbnRSZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVl dWU6CiAJCWNhc2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6CisJCWNhc2UgRGVzdFZhcmlhYmxlOgog CQkJYnJlYWs7CiAJfQogfQpAQCAtMjM3LDYgKzI0Miw3IEBAIE51bGxDb21tYW5kKENvbW1hbmRE ZXN0IGRlc3QpCiAJCWNhc2UgRGVzdFRyYW5zaWVudFJlbDoKIAkJY2FzZSBEZXN0VHVwbGVRdWV1 ZToKIAkJY2FzZSBEZXN0RXhwbGFpblNlcmlhbGl6ZToKKwkJY2FzZSBEZXN0VmFyaWFibGU6CiAJ CQlicmVhazsKIAl9CiB9CkBAIC0yODEsNiArMjg3LDcgQEAgUmVhZHlGb3JRdWVyeShDb21tYW5k RGVzdCBkZXN0KQogCQljYXNlIERlc3RUcmFuc2llbnRSZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVl dWU6CiAJCWNhc2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6CisJCWNhc2UgRGVzdFZhcmlhYmxlOgog CQkJYnJlYWs7CiAJfQogfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmlu ZGV4IDM2ODc0OTBiY2IxLi42MTBiNzU3ODk5ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuaApAQCAtMjMsNiArMjMsOSBAQCBleHRlcm4gdm9pZCBDcmVhdGVWYXJpYWJs ZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KTsKIGV4dGVy biB2b2lkIERyb3BWYXJpYWJsZUJ5TmFtZShjaGFyICp2YXJuYW1lKTsKIAogZXh0ZXJuIERhdHVt IEdldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlY2hlY2soY2hhciAqdmFybmFtZSwgT2lkIHR5cGlk LCBpbnQzMiB0eXBtb2QsIGJvb2wgKmlzbnVsbCk7CitleHRlcm4gdm9pZCBTZXRTZXNzaW9uVmFy aWFibGVXaXRoVHlwZWNoZWNrKGNoYXIgKnZhcm5hbWUsCisJCQkJCQkJCQkJCU9pZCB0eXBpZCwg aW50MzIgdHlwbW9kLAorCQkJCQkJCQkJCQlEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpOwogCiBl eHRlcm4gdm9pZCBnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQoY2hhciAq dmFybmFtZSwKIAkJCQkJCQkJCQkJCQlPaWQgKnR5cGlkLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2 YXJpYWJsZVJlY2VpdmVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LmRkMDFjOTNjOWU4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3Zh cmlhYmxlUmVjZWl2ZXIuaApAQCAtMCwwICsxLDIyIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq CisgKiBzdmFyaWFibGVSZWNlaXZlci5oCisgKgkgIHByb3RvdHlwZXMgZm9yIHN2YXJpYWJsZVJl Y2VpdmVyLmMKKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBv c3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQg KGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAq IHNyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgKKyAqCisgKi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAqLworCisjaWZuZGVmIFNWQVJJQUJMRV9SRUNFSVZFUl9ICisjZGVmaW5lIFNW QVJJQUJMRV9SRUNFSVZFUl9ICisKKyNpbmNsdWRlICJ0Y29wL2Rlc3QuaCIKKworZXh0ZXJuIERl c3RSZWNlaXZlciAqQ3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIoY2hhciAqdmFybmFtZSk7CisK KyNlbmRpZgkJCQkJCQkvKiBTVkFSSUFCTEVfUkVDRUlWRVJfSCAqLwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvdGNvcC9kZXN0LmggYi9zcmMvaW5jbHVkZS90Y29wL2Rlc3QuaAppbmRleCAwMGMw OTJlM2Q3Yy4uNmNlM2VhMGU2MTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvZGVzdC5o CisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvZGVzdC5oCkBAIC05Nyw2ICs5Nyw3IEBAIHR5cGVkZWYg ZW51bQogCURlc3RUcmFuc2llbnRSZWwsCQkJLyogcmVzdWx0cyBzZW50IHRvIHRyYW5zaWVudCBy ZWxhdGlvbiAqLwogCURlc3RUdXBsZVF1ZXVlLAkJCQkvKiByZXN1bHRzIHNlbnQgdG8gdHVwbGUg cXVldWUgKi8KIAlEZXN0RXhwbGFpblNlcmlhbGl6ZSwJCS8qIHJlc3VsdHMgYXJlIHNlcmlhbGl6 ZWQgYW5kIGRpc2NhcmRlZCAqLworCURlc3RWYXJpYWJsZSwJCQkJLyogcmVzdWx0cyBzZW50IHRv IHNlc3Npb24gdmFyaWFibGUgKi8KIH0gQ29tbWFuZERlc3Q7CiAKIC8qIC0tLS0tLS0tLS0tLS0t LS0KZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rv b2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggNDBiOTIwZDkxZTMuLjIzZmY1ZGMyMjgx IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMv dG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMjY3MSw2ICsyNjcxLDcgQEAgU1RSTEVO CiBTVgogU1ZhcmlhYmxlRGF0YQogU1ZhcmlhYmxlCitTVmFyaWFibGVTdGF0ZQogU1lOQ0hST05J WkFUSU9OX0JBUlJJRVIKIFNZU1RFTV9JTkZPCiBTYW1wbGVTY2FuCi0tIAoyLjUyLjAKCg== --0000000000008b48e906456c698a Content-Type: application/x-patch; name="v20251208-0004-fill-an-auxiliary-buffer-with-values-of-session-vari.patch" Content-Disposition: attachment; filename="v20251208-0004-fill-an-auxiliary-buffer-with-values-of-session-vari.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miwu5rl96 RnJvbSAwMTU1MGExOWFhY2MwYzBkNGQzZWM2ZDFhYWEwN2MzYWM1N2VkMWQwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBTYXQsIDIyIE5vdiAyMDI1IDA2OjQwOjQ2ICswMTAwClN1YmplY3Q6IFtQ QVRDSCAwNC8xMV0gZmlsbCBhbiBhdXhpbGlhcnkgYnVmZmVyIHdpdGggdmFsdWVzIG9mIHNlc3Np b24gCiB2YXJpYWJsZXMgdXNlZCBpbiBxdWVyeQoKYW5kIGxvY2tzIHZhcmlhYmxlcyB1c2VkIGlu IHF1ZXJ5LiBOb3cgd2UgY2FuIHJlYWQgdGhlIGNvbnRlbnQgb2YgYW55CnNlc3Npb24gdmFyaWFi bGUuIERpcmVjdCByZWFkaW5nIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvciBpcyBub3QgYWxsb3dl ZCwKc28gd2UgY2Fubm90IHRvIHVzZSBzZXNzaW9uIHZhcmlhYmxlcyBpbnNpZGUgQ0FMTCBvciBF WEVDVVRFIGNvbW1hbmRzCihjYW4gYmUgc3VwcG9ydGVkIHdpdGggZGlyZWN0IGFjY2VzcyB0byBz ZXNzaW9uIHZhcmlhYmxlcyAoZnJvbSBleHByZXNzaW9uCmV4ZWN1dG9yKSAtIHBvc3Rwb25lZCku CgpVc2luZyBzZXNzaW9uIHZhcmlhYmxlcyBibG9ja3MgcGFyYWxsZWwgcXVlcnkgZXhlY3V0aW9u LiBJdCBpcyBub3QKdGVjaG5pY2FsIHByb2JsZW0gKGl0IGp1c3QgbmVlZHMgYSBzZXJpYWxpemF0 aW9uL2Rlc2VyaWFsaXphdGlvbiBvZgplc19zZXNzaW9uX3ZhcmlibGVzIGJ1ZmZlciksIGJ1dCBp dCBpbmNyZWFzZXMgYSBzaXplIG9mIHBhdGNoIChhbmQgdGhlbgppdCBpcyBwb3N0cG9uZWQpLgot LS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8ICAyOSAr KysrCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jICAgICAgICAgICAgICAgfCAgNDkg KysrKysrKwogc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggICAgICAgICAgICAgICAgIHwg IDE0ICsrCiAuLi4vZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLm91dCAgICAgICAgfCAx MzUgKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxl ICAgICAgICAgICAgfCAgIDUgKwogLi4uL3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2Rt bC5zcWwgICAgIHwgMTIwICsrKysrKysrKysrKysrKysKIHNyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgMSArCiA3IGZpbGVzIGNoYW5nZWQsIDM1MyBpbnNl cnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlc19kbWwub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZG1sLnNxbAoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5j CmluZGV4IGIwNWZmNDc2YTYzLi45YTg2ODk2MjIxZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5j CkBAIC0xMDY5LDYgKzEwNjksMzUgQEAgRXhlY0luaXRFeHByUmVjKEV4cHIgKm5vZGUsIEV4cHJT dGF0ZSAqc3RhdGUsCiAJCQkJCQkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0Y2gpOwog CQkJCQkJfQogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgUEFSQU1fVkFSSUFCTEU6CisJCQkJCQl7 CisJCQkJCQkJaW50CQkJZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gMDsKKwkJCQkJCQlTZXNz aW9uVmFyaWFibGVWYWx1ZSAqZXNfc2Vzc2lvbl92YXJpYWJsZXMgPSBOVUxMOworCQkJCQkJCVNl c3Npb25WYXJpYWJsZVZhbHVlICp2YXI7CisKKwkJCQkJCQlpZiAoc3RhdGUtPnBhcmVudCAmJiBz dGF0ZS0+cGFyZW50LT5zdGF0ZSkKKwkJCQkJCQl7CisJCQkJCQkJCWVzX3Nlc3Npb25fdmFyaWFi bGVzID0gc3RhdGUtPnBhcmVudC0+c3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzOworCQkJCQkJ CQllc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBzdGF0ZS0+cGFyZW50LT5zdGF0ZS0+ZXNfbnVt X3Nlc3Npb25fdmFyaWFibGVzOworCQkJCQkJCX0KKworCQkJCQkJCUFzc2VydChlc19zZXNzaW9u X3ZhcmlhYmxlcyk7CisKKwkJCQkJCQkvKiBwYXJhbWV0ZXIgc2FuaXR5IGNoZWNrcyAqLworCQkJ CQkJCWlmIChwYXJhbS0+cGFyYW1pZCA+PSBlc19udW1fc2Vzc2lvbl92YXJpYWJsZXMpCisJCQkJ CQkJCWVsb2coRVJST1IsICJwYXJhbWlkIG9mIFBBUkFNX1ZBUklBQkxFIHBhcmFtIGlzIG91dCBv ZiByYW5nZSIpOworCisJCQkJCQkJdmFyID0gJmVzX3Nlc3Npb25fdmFyaWFibGVzW3BhcmFtLT5w YXJhbWlkXTsKKworCQkJCQkJCS8qCisJCQkJCQkJICogSW4gdGhpcyBjYXNlLCBwYXNzIHRoZSB2 YWx1ZSBsaWtlIGEgY29uc3RhbnQuCisJCQkJCQkJICovCisJCQkJCQkJc2NyYXRjaC5vcGNvZGUg PSBFRU9QX0NPTlNUOworCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZhbC52YWx1ZSA9IHZhci0+dmFs dWU7CisJCQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFsLmlzbnVsbCA9IHZhci0+aXNudWxsOworCQkJ CQkJCUV4cHJFdmFsUHVzaFN0ZXAoc3RhdGUsICZzY3JhdGNoKTsKKwkJCQkJCX0KKwkJCQkJCWJy ZWFrOwogCQkJCQlkZWZhdWx0OgogCQkJCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBwYXJh bWtpbmQ6ICVkIiwKIAkJCQkJCQkgKGludCkgcGFyYW0tPnBhcmFta2luZCk7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY01haW4uYwppbmRleCAyN2M5ZWVjNjk3Yi4uMTk4YmUwY2YxNDMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY01haW4uYwpAQCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNl LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wYXJ0aXRpb24uaCIKICNpbmNsdWRlICJjb21tYW5kcy9t YXR2aWV3LmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjdXRvci5oIgog I2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNQYXJ0aXRpb24uaCIKQEAgLTE5Niw2ICsxOTcsNTQgQEAg c3RhbmRhcmRfRXhlY3V0b3JTdGFydChRdWVyeURlc2MgKnF1ZXJ5RGVzYywgaW50IGVmbGFncykK IAlBc3NlcnQocXVlcnlEZXNjLT5zb3VyY2VUZXh0ICE9IE5VTEwpOwogCWVzdGF0ZS0+ZXNfc291 cmNlVGV4dCA9IHF1ZXJ5RGVzYy0+c291cmNlVGV4dDsKIAorCS8qCisJICogVGhlIGV4ZWN1dG9y IGRvZXNuJ3Qgd29yayB3aXRoIHNlc3Npb24gdmFyaWFibGVzIGRpcmVjdGx5LiBWYWx1ZXMgb2YK KwkgKiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGVzIGFyZSBjb3BpZWQgdG8gYSBkZWRpY2F0ZWQg YXJyYXksIGFuZCB0aGlzCisJICogYXJyYXkgaXMgcGFzc2VkIHRvIHRoZSBleGVjdXRvci4gVGhp cyBhcnJheSBpcyBzdGFibGUgInNuYXBzaG90IiBvZgorCSAqIHZhbHVlcyBvZiB1c2VkIHNlc3Np b24gdmFyaWFibGVzLiBUaGVyZSBhcmUgdGhyZWUgYmVuZWZpdHMgb2YgdGhpcworCSAqIHN0cmF0 ZWd5OgorCSAqCisJICogLSBjb25zaXN0ZW5jeSB3aXRoIGV4dGVybmFsIHBhcmFtZXRlcnMgYW5k IHBscGdzcWwgdmFyaWFibGVzLAorCSAqCisJICogLSBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUg cGFyYWxsZWwgc2FmZSwKKwkgKgorCSAqIC0gd2UgZG9uJ3QgbmVlZCBtYWtlIGZyZXNoIGNvcHkg Zm9yIGFueSByZWFkIG9mIHNlc3Npb24gdmFyaWFibGUgKHRoaXMKKwkgKiBpcyBuZWNlc3Nhcnkg YmVjYXVzZSB0aGUgaW50ZXJuYWxseSB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBjYW4gYmUgY2hhbmdl ZAorCSAqIGluc2lkZSBxdWVyeSBleGVjdXRpb24gdGltZSwgYW5kIHRoZW4gYSByZWZlcmVuY2Ug dG8gcHJldmlvdXNseQorCSAqIHJldHVybmVkIHZhbHVlIGNhbiBiZSBjb3JydXB0ZWQpLgorCSAq LworCWlmIChxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5zZXNzaW9uVmFyaWFibGVzKQorCXsKKwkJ aW50CQkJblNlc3Npb25WYXJpYWJsZXM7CisJCWludAkJCWkgPSAwOworCisJCS8qCisJCSAqIElu IHRoaXMgY2FzZSwgdGhlIHF1ZXJ5IHVzZXMgc2Vzc2lvbiB2YXJpYWJsZXMsIGJ1dCB3ZSBoYXZl IHRvCisJCSAqIHByZXBhcmUgdGhlIGFycmF5IHdpdGggcGFzc2VkIHZhbHVlcyAob2YgdXNlZCBz ZXNzaW9uIHZhcmlhYmxlcykKKwkJICogZmlyc3QuCisJCSAqLworCQlBc3NlcnQoIUlzUGFyYWxs ZWxXb3JrZXIoKSk7CisJCW5TZXNzaW9uVmFyaWFibGVzID0gbGlzdF9sZW5ndGgocXVlcnlEZXNj LT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcyk7CisKKwkJLyogY3JlYXRlIHRoZSBhcnJh eSB1c2VkIGZvciBwYXNzaW5nIHZhbHVlcyBvZiB1c2VkIHNlc3Npb24gdmFyaWFibGVzICovCisJ CWVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXMgPSAoU2Vzc2lvblZhcmlhYmxlVmFsdWUgKikK KwkJCXBhbGxvYyhuU2Vzc2lvblZhcmlhYmxlcyAqIHNpemVvZihTZXNzaW9uVmFyaWFibGVWYWx1 ZSkpOworCisJCS8qIGZpbGwgdGhlIGFycmF5ICovCisJCWZvcmVhY2hfbm9kZShQYXJhbSwgcGFy YW0sIHF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPnNlc3Npb25WYXJpYWJsZXMpCisJCXsKKwkJCWVz dGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0udmFsdWUgPQorCQkJCUdldFNlc3Npb25WYXJp YWJsZVdpdGhUeXBlY2hlY2socGFyYW0tPnBhcmFtdmFybmFtZSwKKwkJCQkJCQkJCQkJCXBhcmFt LT5wYXJhbXR5cGUsCisJCQkJCQkJCQkJCQlwYXJhbS0+cGFyYW10eXBtb2QsCisJCQkJCQkJCQkJ CQkmZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlc1tpXS5pc251bGwpOworCisJCQlpKys7CisJ CX0KKworCQllc3RhdGUtPmVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IG5TZXNzaW9uVmFyaWFi bGVzOworCX0KKwogCS8qCiAJICogRmlsbCBpbiB0aGUgcXVlcnkgZW52aXJvbm1lbnQsIGlmIGFu eSwgZnJvbSBxdWVyeURlc2MuCiAJICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9l eGVjbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCmluZGV4IDY0ZmY2OTk2 NDMxLi5kMDY0MmVhZTQxOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVz LmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKQEAgLTY0NSw2ICs2NDUsMTYg QEAgdHlwZWRlZiBzdHJ1Y3QgQXN5bmNSZXF1ZXN0CiAJCQkJCQkJCSAqIHR1cGxlcykgKi8KIH0g QXN5bmNSZXF1ZXN0OwogCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKiBTZXNzaW9uVmFyaWFibGVW YWx1ZQorICogLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBTZXNzaW9uVmFy aWFibGVWYWx1ZQoreworCWJvb2wJCWlzbnVsbDsKKwlEYXR1bQkJdmFsdWU7Cit9IFNlc3Npb25W YXJpYWJsZVZhbHVlOworCiAvKiAtLS0tLS0tLS0tLS0tLS0tCiAgKgkgIEVTdGF0ZSBpbmZvcm1h dGlvbgogICoKQEAgLTcwNCw2ICs3MTQsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgRVN0YXRlCiAJUGFy YW1MaXN0SW5mbyBlc19wYXJhbV9saXN0X2luZm87CS8qIHZhbHVlcyBvZiBleHRlcm5hbCBwYXJh bXMgKi8KIAlQYXJhbUV4ZWNEYXRhICplc19wYXJhbV9leGVjX3ZhbHM7CS8qIHZhbHVlcyBvZiBp bnRlcm5hbCBwYXJhbXMgKi8KIAorCS8qIFNlc3Npb24gdmFyaWFibGVzIGluZm86ICovCisJaW50 CQkJZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzOwkvKiBudW1iZXIgb2YgdXNlZCB2YXJpYWJsZXMg Ki8KKwlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqZXNfc2Vzc2lvbl92YXJpYWJsZXM7IC8qIGFycmF5 IG9mIGNvcGllcyBvZiB2YWx1ZXMgKi8KKwogCVF1ZXJ5RW52aXJvbm1lbnQgKmVzX3F1ZXJ5RW52 OwkvKiBxdWVyeSBlbnZpcm9ubWVudCAqLwogCiAJLyogT3RoZXIgd29ya2luZyBzdGF0ZTogKi8K ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNf ZG1sLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZG1s Lm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODllZjYwNzE1ZmUK LS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzX2RtbC5vdXQKQEAgLTAsMCArMSwxMzUgQEAKK0NSRUFURSBURU1QIFZBUklBQkxFIHRl bXBfdmFyMDEgQVMgaW50OworLS0gc2hvdWxkIG5vdCBiZSBhY2Nlc3NpYmxlIHdpdGhvdXQgdmFy aWFibGUncyBmZW5jZQorLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB0ZW1wX3ZhcjAxOworRVJST1I6 ICBjb2x1bW4gInRlbXBfdmFyMDEiIGRvZXMgbm90IGV4aXN0CitMSU5FIDE6IFNFTEVDVCB0ZW1w X3ZhcjAxOworICAgICAgICAgICAgICAgXgorLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgVkFSSUFC TEUodGVtcF92YXIwMSk7CisgdGVtcF92YXIwMSAKKy0tLS0tLS0tLS0tLQorICAgICAgICAgICAK KygxIHJvdykKKworLS0gc2hvdWxkIG5vdCBjcmFzaAorRE8gJCQKK0JFR0lOCisgIFJBSVNFIE5P VElDRSAnJScsIFZBUklBQkxFKHRlbXBfdmFyMDEpOworRU5EOworJCQ7CitOT1RJQ0U6ICA8TlVM TD4KKy0tIHZhcmlhYmxlcyBjYW5ub3QgYmUgdXNlZCBieSBwZXJzaXN0ZW50IG9iamVjdHMKKy0t IHRoYXQgY2hlY2tzIGRlcGVuZGVuY3kKKy0tIHNob3VsZCBmYWlsCitDUkVBVEUgVEVNUCBWSUVX IHRlbXB2IEFTIFNFTEVDVCBWQVJJQUJMRSh0ZW1wX3ZhcjAxKTsKK0VSUk9SOiAgc2Vzc2lvbiB2 YXJpYWJsZSAidGVtcF92YXIwMSIgY2Fubm90IGJlIHJlZmVyZW5jZWQgaW4gYSBjYXRhbG9nIG9i amVjdAorQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdGVzdHZhcl9zcWwoKQorUkVUVVJOUyBp bnQgQVMgJCQKK1NFTEVDVCBWQVJJQUJMRSh0ZW1wX3ZhcjAxKTsKKyQkIExBTkdVQUdFIHNxbDsK K1NFTEVDVCB0ZXN0dmFyX3NxbCgpOworIHRlc3R2YXJfc3FsIAorLS0tLS0tLS0tLS0tLQorICAg ICAgICAgICAgCisoMSByb3cpCisKKy0tIHNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQg YXMgcGFyYW1ldGVyIG9mIENBTEwgb3IgRVhFQ1VURQorQ1JFQVRFIE9SIFJFUExBQ0UgUFJPQ0VE VVJFIHRlc3R2YXJfcHJvYyhpbnQpCitBUyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNFICclJywg JDE7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworLS0gc2hvdWxkIG5vdCBjcmFzaAorQ0FM TCB0ZXN0dmFyX3Byb2MoVkFSSUFCTEUodGVtcF92YXIwMSkpOworRVJST1I6ICBzZXNzaW9uIHZh cmlhYmxlIHJlZmVyZW5jZSBpcyBub3Qgc3VwcG9ydGVkIGhlcmUKK0xJTkUgMTogQ0FMTCB0ZXN0 dmFyX3Byb2MoVkFSSUFCTEUodGVtcF92YXIwMSkpOworICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBeCitQUkVQQVJFIHByZXBzdG10KGludCkgQVMgU0VMRUNUICQxOworLS0gc2hv dWxkIG5vdCBjcmFzaAorRVhFQ1VURSBwcmVwc3RtdChWQVJJQUJMRSh0ZW1wX3ZhcjAxKSk7CitF UlJPUjogIHNlc3Npb24gdmFyaWFibGUgcmVmZXJlbmNlIGlzIG5vdCBzdXBwb3J0ZWQgaGVyZQor TElORSAxOiBFWEVDVVRFIHByZXBzdG10KFZBUklBQkxFKHRlbXBfdmFyMDEpKTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCitEUk9QIFBST0NFRFVSRSB0ZXN0dmFyX3Byb2M7 CitERUFMTE9DQVRFIHByZXBzdG10OworQ1JFQVRFIFJPTEUgcmVncmVzc19zZXNzaW9uX3Zhcmlh YmxlX3Rlc3Rfcm9sZV8wMzsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHRlc3R2YXJfc2Qo KQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJyUnLCBWQVJJQUJM RSh0ZW1wX3ZhcjAxKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CistLSBvbmx5IG93bmVy IGNhbiByZWFkIGRhdGEKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nfc2Vzc2lvbl92YXJpYWJsZV90ZXN0 X3JvbGVfMDM7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIFZBUklBQkxFKHRlbXBfdmFyMDEpOwor RVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB0ZW1wX3ZhcjAx CistLSBmeCB3aXRoIHNlY3VyaXR5IGRlZmluZXIgc2hvdWxkIGJlIG9rCitTRUxFQ1QgdGVzdHZh cl9zZCgpOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB0 ZW1wX3ZhcjAxCitDT05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAiVkFSSUFCTEUodGVtcF92 YXIwMSkiCitQTC9wZ1NRTCBmdW5jdGlvbiB0ZXN0dmFyX3NkKCkgbGluZSAzIGF0IFJBSVNFCitT RVQgUk9MRSBUTyBkZWZhdWx0OworRFJPUCBWQVJJQUJMRSB0ZW1wX3ZhcjAxOworLS0gdGhlcmUg aXMgbm90IHBsYW4gY2FjaGUgaW52YWxpZGF0aW9uCistLSBidXQgc3RpbGwgZnVuY3Rpb25zIHRo YXQgdXNlcyBkcm9wcGVkIHZhcmlhYmxlcworLS0gc2hvdWxkIG5vdCB0byBjcmFzaAorU0VMRUNU IHRlc3R2YXJfc2QoKTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAidGVtcF92YXIwMSIgZG9l c24ndCBleGlzdAorQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gIlZBUklBQkxFKHRlbXBf dmFyMDEpIgorUEwvcGdTUUwgZnVuY3Rpb24gdGVzdHZhcl9zZCgpIGxpbmUgMyBhdCBSQUlTRQor U0VMRUNUIHRlc3R2YXJfc3FsKCk7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInRlbXBfdmFy MDEiIGRvZXNuJ3QgZXhpc3QKK0NPTlRFWFQ6ICBTUUwgZnVuY3Rpb24gInRlc3R2YXJfc3FsIiBk dXJpbmcgaW5saW5pbmcKK0RST1AgRlVOQ1RJT04gdGVzdHZhcl9zcWwoKTsKK0RST1AgRlVOQ1RJ T04gdGVzdHZhcl9zZCgpOworRFJPUCBST0xFIHJlZ3Jlc3Nfc2Vzc2lvbl92YXJpYWJsZV90ZXN0 X3JvbGVfMDM7CitDUkVBVEUgVEFCTEUgdGVzdHZhcl90ZXN0dGFiKGEgaW50KTsKK0NSRUFURSBU RU1QIFZBUklBQkxFIHRlbXBfdmFyMDIgQVMgaW50OworSU5TRVJUIElOVE8gdGVzdHZhcl90ZXN0 dGFiIFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwMCk7CitDUkVBVEUgSU5ERVgg dGVzdHZhcl90ZXN0dGFiX2EgT04gdGVzdHZhcl90ZXN0dGFiKGEpOworQU5BTFlaRSB0ZXN0dmFy X3Rlc3R0YWI7CistLSBmb3JjZSBpbmRleAorU0VUIGVuYWJsZV9zZXFzY2FuIFRPIE9GRjsKKy0t IGluZGV4IHNjYW4gc2hvdWxkIGJlIHVzZWQKK0VYUExBSU4gKENPU1RTIE9GRikgU0VMRUNUICog RlJPTSB0ZXN0dmFyX3Rlc3R0YWIgV0hFUkUgYSA9IFZBUklBQkxFKHRlbXBfdmFyMDIpOworICAg ICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBJbmRleCBPbmx5IFNjYW4gdXNpbmcgdGVzdHZhcl90ZXN0dGFiX2Egb24gdGVzdHZh cl90ZXN0dGFiCisgICBJbmRleCBDb25kOiAoYSA9IFZBUklBQkxFUyh0ZW1wX3ZhcjAyKSkKKygy IHJvd3MpCisKK0RST1AgSU5ERVggdGVzdHZhcl90ZXN0dGFiX2E7CitTRVQgZW5hYmxlX3NlcXNj YW4gVE8gREVGQVVMVDsKKy0tIHBhcmFsbGVsIGV4ZWN1dGlvbiBzaG91bGQgYmUgYmxvY2tlZAor LS0gRW5jb3VyYWdlIHVzZSBvZiBwYXJhbGxlbCBwbGFucworU0VUIHBhcmFsbGVsX3NldHVwX2Nv c3QgPSAwOworU0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3QgPSAwOworU0VUIG1pbl9wYXJhbGxlbF90 YWJsZV9zY2FuX3NpemUgPSAwOworU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXIg PSAyOworLS0gcGFyYWxsZWwgcGxhbiBzaG91bGQgYmUgdXNlZAorRVhQTEFJTiAoQ09TVFMgT0ZG KSBTRUxFQ1QgKiBGUk9NIHRlc3R2YXJfdGVzdHRhYiBXSEVSRSBhID0gMTAwOworICAgICAgICAg ICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgR2F0aGVyCisgICBXb3JrZXJzIFBsYW5uZWQ6IDIK KyAgIC0+ICBQYXJhbGxlbCBTZXEgU2NhbiBvbiB0ZXN0dmFyX3Rlc3R0YWIKKyAgICAgICAgIEZp bHRlcjogKGEgPSAxMDApCisoNCByb3dzKQorCistLSBwYXJhbGxlbCBwbGFuIHNob3VsZCBub3Qg YmUgdXNlZAorRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgKiBGUk9NIHRlc3R2YXJfdGVzdHRh YiBXSEVSRSBhID0gVkFSSUFCTEUodGVtcF92YXIwMik7CisgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIFNlcSBTY2FuIG9uIHRlc3R2YXJfdGVzdHRhYgorICAgRmlsdGVyOiAoYSA9IFZBUklBQkxF Uyh0ZW1wX3ZhcjAyKSkKKygyIHJvd3MpCisKK1JFU0VUIHBhcmFsbGVsX3NldHVwX2Nvc3Q7CitS RVNFVCBwYXJhbGxlbF90dXBsZV9jb3N0OworUkVTRVQgbWluX3BhcmFsbGVsX3RhYmxlX3NjYW5f c2l6ZTsKK1JFU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXI7CitEUk9QIFRBQkxF IHRlc3R2YXJfdGVzdHRhYjsKK0RST1AgVkFSSUFCTEUgdGVtcF92YXIwMjsKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3Bh cmFsbGVsX3NjaGVkdWxlCmluZGV4IDlkYTdjNmFiOTI4Li41NTM2N2ExM2Q2OSAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC0xNDAsMyArMTQwLDggQEAgdGVzdDogZmFzdF9kZWZh dWx0CiAjIHJ1biB0YWJsZXNwYWNlIHRlc3QgYXQgdGhlIGVuZCBiZWNhdXNlIGl0IGRyb3BzIHRo ZSB0YWJsZXNwYWNlIGNyZWF0ZWQgZHVyaW5nCiAjIHNldHVwIHRoYXQgb3RoZXIgdGVzdHMgbWF5 IHVzZS4KIHRlc3Q6IHRhYmxlc3BhY2UKKworIyAtLS0tLS0tLS0tCisjIEFub3RoZXIgZ3JvdXAg b2YgcGFyYWxsZWwgdGVzdHMgKHNlc3Npb24gdmFyaWFibGVzIHJlbGF0ZWQpCisjIC0tLS0tLS0t LS0KK3Rlc3Q6IHNlc3Npb25fdmFyaWFibGVzX2RkbCBzZXNzaW9uX3ZhcmlhYmxlc19kbWwKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5zcWwg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kbWwuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iZjU2YjE5NDY3YgotLS0gL2Rldi9udWxs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RtbC5zcWwKQEAg LTAsMCArMSwxMjAgQEAKK0NSRUFURSBURU1QIFZBUklBQkxFIHRlbXBfdmFyMDEgQVMgaW50Owor CistLSBzaG91bGQgbm90IGJlIGFjY2Vzc2libGUgd2l0aG91dCB2YXJpYWJsZSdzIGZlbmNlCist LSBzaG91bGQgZmFpbAorU0VMRUNUIHRlbXBfdmFyMDE7CisKKy0tIHNob3VsZCBiZSBvaworU0VM RUNUIFZBUklBQkxFKHRlbXBfdmFyMDEpOworCistLSBzaG91bGQgbm90IGNyYXNoCitETyAkJAor QkVHSU4KKyAgUkFJU0UgTk9USUNFICclJywgVkFSSUFCTEUodGVtcF92YXIwMSk7CitFTkQ7Cisk JDsKKworLS0gdmFyaWFibGVzIGNhbm5vdCBiZSB1c2VkIGJ5IHBlcnNpc3RlbnQgb2JqZWN0cwor LS0gdGhhdCBjaGVja3MgZGVwZW5kZW5jeQorLS0gc2hvdWxkIGZhaWwKK0NSRUFURSBURU1QIFZJ RVcgdGVtcHYgQVMgU0VMRUNUIFZBUklBQkxFKHRlbXBfdmFyMDEpOworCitDUkVBVEUgT1IgUkVQ TEFDRSBGVU5DVElPTiB0ZXN0dmFyX3NxbCgpCitSRVRVUk5TIGludCBBUyAkJAorU0VMRUNUIFZB UklBQkxFKHRlbXBfdmFyMDEpOworJCQgTEFOR1VBR0Ugc3FsOworCitTRUxFQ1QgdGVzdHZhcl9z cWwoKTsKKworLS0gc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBwYXJhbWV0ZXIg b2YgQ0FMTCBvciBFWEVDVVRFCitDUkVBVEUgT1IgUkVQTEFDRSBQUk9DRURVUkUgdGVzdHZhcl9w cm9jKGludCkKK0FTICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJyUnLCAkMTsKK0VORDsKKyQk IExBTkdVQUdFIHBscGdzcWw7CisKKy0tIHNob3VsZCBub3QgY3Jhc2gKK0NBTEwgdGVzdHZhcl9w cm9jKFZBUklBQkxFKHRlbXBfdmFyMDEpKTsKKworUFJFUEFSRSBwcmVwc3RtdChpbnQpIEFTIFNF TEVDVCAkMTsKKworLS0gc2hvdWxkIG5vdCBjcmFzaAorRVhFQ1VURSBwcmVwc3RtdChWQVJJQUJM RSh0ZW1wX3ZhcjAxKSk7CisKK0RST1AgUFJPQ0VEVVJFIHRlc3R2YXJfcHJvYzsKK0RFQUxMT0NB VEUgcHJlcHN0bXQ7CisKK0NSRUFURSBST0xFIHJlZ3Jlc3Nfc2Vzc2lvbl92YXJpYWJsZV90ZXN0 X3JvbGVfMDM7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHRlc3R2YXJfc2QoKQorUkVU VVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJyUnLCBWQVJJQUJMRSh0ZW1w X3ZhcjAxKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKKy0tIG9ubHkgb3duZXIgY2Fu IHJlYWQgZGF0YQorU0VUIFJPTEUgVE8gcmVncmVzc19zZXNzaW9uX3ZhcmlhYmxlX3Rlc3Rfcm9s ZV8wMzsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCBWQVJJQUJMRSh0ZW1wX3ZhcjAxKTsKKwor LS0gZnggd2l0aCBzZWN1cml0eSBkZWZpbmVyIHNob3VsZCBiZSBvaworU0VMRUNUIHRlc3R2YXJf c2QoKTsKKworU0VUIFJPTEUgVE8gZGVmYXVsdDsKKworRFJPUCBWQVJJQUJMRSB0ZW1wX3ZhcjAx OworCistLSB0aGVyZSBpcyBub3QgcGxhbiBjYWNoZSBpbnZhbGlkYXRpb24KKy0tIGJ1dCBzdGls bCBmdW5jdGlvbnMgdGhhdCB1c2VzIGRyb3BwZWQgdmFyaWFibGVzCistLSBzaG91bGQgbm90IHRv IGNyYXNoCisKK1NFTEVDVCB0ZXN0dmFyX3NkKCk7CitTRUxFQ1QgdGVzdHZhcl9zcWwoKTsKKwor RFJPUCBGVU5DVElPTiB0ZXN0dmFyX3NxbCgpOworRFJPUCBGVU5DVElPTiB0ZXN0dmFyX3NkKCk7 CisKK0RST1AgUk9MRSByZWdyZXNzX3Nlc3Npb25fdmFyaWFibGVfdGVzdF9yb2xlXzAzOworCitD UkVBVEUgVEFCTEUgdGVzdHZhcl90ZXN0dGFiKGEgaW50KTsKK0NSRUFURSBURU1QIFZBUklBQkxF IHRlbXBfdmFyMDIgQVMgaW50OworCitJTlNFUlQgSU5UTyB0ZXN0dmFyX3Rlc3R0YWIgU0VMRUNU ICogRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKTsKKworQ1JFQVRFIElOREVYIHRlc3R2YXJf dGVzdHRhYl9hIE9OIHRlc3R2YXJfdGVzdHRhYihhKTsKKworQU5BTFlaRSB0ZXN0dmFyX3Rlc3R0 YWI7CisKKy0tIGZvcmNlIGluZGV4CitTRVQgZW5hYmxlX3NlcXNjYW4gVE8gT0ZGOworCistLSBp bmRleCBzY2FuIHNob3VsZCBiZSB1c2VkCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZS T00gdGVzdHZhcl90ZXN0dGFiIFdIRVJFIGEgPSBWQVJJQUJMRSh0ZW1wX3ZhcjAyKTsKKworRFJP UCBJTkRFWCB0ZXN0dmFyX3Rlc3R0YWJfYTsKKworU0VUIGVuYWJsZV9zZXFzY2FuIFRPIERFRkFV TFQ7CisKKy0tIHBhcmFsbGVsIGV4ZWN1dGlvbiBzaG91bGQgYmUgYmxvY2tlZAorLS0gRW5jb3Vy YWdlIHVzZSBvZiBwYXJhbGxlbCBwbGFucworU0VUIHBhcmFsbGVsX3NldHVwX2Nvc3QgPSAwOwor U0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3QgPSAwOworU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2Fu X3NpemUgPSAwOworU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXIgPSAyOworCist LSBwYXJhbGxlbCBwbGFuIHNob3VsZCBiZSB1c2VkCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVD VCAqIEZST00gdGVzdHZhcl90ZXN0dGFiIFdIRVJFIGEgPSAxMDA7CisKKy0tIHBhcmFsbGVsIHBs YW4gc2hvdWxkIG5vdCBiZSB1c2VkCitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCAqIEZST00g dGVzdHZhcl90ZXN0dGFiIFdIRVJFIGEgPSBWQVJJQUJMRSh0ZW1wX3ZhcjAyKTsKKworUkVTRVQg cGFyYWxsZWxfc2V0dXBfY29zdDsKK1JFU0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3Q7CitSRVNFVCBt aW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplOworUkVTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNf cGVyX2dhdGhlcjsKKworRFJPUCBUQUJMRSB0ZXN0dmFyX3Rlc3R0YWI7CitEUk9QIFZBUklBQkxF IHRlbXBfdmFyMDI7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IDBmMzUyOGI1YzA5Li40 MGI5MjBkOTFlMyAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QK KysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTI3MjksNiArMjcyOSw3 IEBAIFNlcmlhbGl6ZWRUcmFuc2FjdGlvblN0YXRlCiBTZXNzaW9uCiBTZXNzaW9uQmFja3VwU3Rh dGUKIFNlc3Npb25FbmRUeXBlCitTZXNzaW9uVmFyaWFibGVWYWx1ZQogU2V0Q29uc3RyYWludFN0 YXRlCiBTZXRDb25zdHJhaW50U3RhdGVEYXRhCiBTZXRDb25zdHJhaW50VHJpZ2dlckRhdGEKLS0g CjIuNTIuMAoK --0000000000008b48e906456c698a Content-Type: application/x-patch; name="v20251208-0003-collect-session-variables-used-in-plan-and-assign-pa.patch" Content-Disposition: attachment; filename="v20251208-0003-collect-session-variables-used-in-plan-and-assign-pa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miwu5rly7 RnJvbSBlMDhjZDY4YjdmOTI0YzkwYTBiZWE1YzdiNjAwZDNhYjYxOTFiZGNlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBGcmksIDIxIE5vdiAyMDI1IDIwOjQyOjU2ICswMTAwClN1YmplY3Q6IFtQ QVRDSCAwMy8xMV0gY29sbGVjdCBzZXNzaW9uIHZhcmlhYmxlcyB1c2VkIGluIHBsYW4gYW5kIGFz c2lnbgogcGFyYW1pZAoKSW4gdGhlIHBsYW4gc3RhZ2Ugd2UgbmVlZCB0byBjb2xsZWN0IHVzZWQg c2Vzc2lvbiB2YXJpYWJsZXMuIE9uIHRoZQpvcmRlciBvZiB0aGlzIGxpc3QsIHRoZSBwYXJhbSBu b2RlcyBnZXRzIHBhcmFtaWQgKGZpeF9wYXJhbV9ub2RlKS4KVGhpcyBudW1iZXIgaXMgdXNlZCAo bGF0ZXIpIGFzIGluZGV4IHRvIGJ1ZmZlciBvZiB2YWx1ZXMgb2YgdGhlCnVzZWQgc2Vzc2lvbiB2 YXJpYWJsZXMuIFRoZSBidWZmZXIgaXMgcHJlcGFyZWQgYW5kIGZpbGxlZCBieSBleGVjdXRvci4K ClNvbWUgdW5zdXBwb3J0ZWQgb3B0aW1pemF0aW9ucyBhcmUgZGlzYWJsZWQ6CgoqIHBhcmFsbGVs IGV4ZWN1dGlvbgoqIHNpbXBsZSBleHByZXNzaW9uIGV4ZWN1dGlvbiBpbiBQTC9wZ1NRTAoqIFNR TCBmdW5jdGlvbnMgaW5saW5pbmcKCkJlZm9yZSBleGVjdXRpb24gb2YgcXVlcnkgd2l0aCBzZXNz aW9uIHZhcmlhYmxlcyB3ZSBuZWVkIHRvIGNvbGxlY3QKdXNlZCBzZXNzaW9uIHZhcmlhYmxlcy4g VGhpcyBsaXN0IGlzIHVzZWQgZm9yIGxvYWRpbmcgdmFyaWFibGVzIHRvCmV4ZWN1dGVkIHF1ZXJ5 LgoKcGxhbgotLS0KIGRvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sICAgICAgICAgICAgICAgIHwg IDYgKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jICAgICAgICAgIHwgMTAgKysr CiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICB8IDM5ICsrKysrKysr KysKIHNyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYyAgICAgIHwgMTEgKysrCiBz cmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMgICAgICB8IDk0ICsrKysrKysrKysr KysrKysrKysrKystCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYyB8 ICAzICsKIHNyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyAgICAgIHwgMzUgKysr KysrKystCiBzcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYyAgICAgICAgICAgICB8IDEwICsr LQogc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oICAgfCAgMiArCiBzcmMv aW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCAgICAgICAgICAgICB8ICA1ICsrCiBzcmMvaW5jbHVk ZS9ub2Rlcy9wbGFubm9kZXMuaCAgICAgICAgICAgICB8ICAzICsKIHNyYy9pbmNsdWRlL29wdGlt aXplci9wbGFubWFpbi5oICAgICAgICAgIHwgIDIgKwogMTIgZmlsZXMgY2hhbmdlZCwgMjE0IGlu c2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Bh cmFsbGVsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbAppbmRleCBhZjQzNDg0NzAz ZS4uODQzZTJjM2Y2NjMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCkBAIC01MjQsNiArNTI0LDEyIEBAIEVYUExB SU4gU0VMRUNUICogRlJPTSBwZ2JlbmNoX2FjY291bnRzIFdIRVJFIGZpbGxlciBMSUtFICcleCUn OwogICAgICAgICBQbGFuIG5vZGVzIHRoYXQgcmVmZXJlbmNlIGEgY29ycmVsYXRlZCA8bGl0ZXJh bD5TdWJQbGFuPC9saXRlcmFsPi4KICAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgorCisg ICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgIFVzYWdlIG9mIGEgc2Vzc2lvbiB2 YXJpYWJsZS4KKyAgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgogICA8L2l0ZW1pemVkbGlz dD4KIAogIDxzZWN0MiBpZD0icGFyYWxsZWwtbGFiZWxpbmciPgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVu Y3kuYwppbmRleCA4ZTcwYTg1YTNmNy4uMjJjNTM3MmFkODAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5k ZW5jeS5jCkBAIC0xOTAyLDYgKzE5MDIsMTYgQEAgZmluZF9leHByX3JlZmVyZW5jZXNfd2Fsa2Vy KE5vZGUgKm5vZGUsCiAJewogCQlQYXJhbQkgICAqcGFyYW0gPSAoUGFyYW0gKikgbm9kZTsKIAor CQkvKgorCQkqIGNhdGFsb2cgbGVzcyBzZXNzaW9uIHZhcmlhYmxlIHZhcmlhYmxlIGNhbm5vdCBi ZSB1c2VkIGluIHBlcnNpc3RlbnQKKwkJKiBjYXRhbG9nIGJhc2VkIG9iamVjdC4KKwkJKi8KKwkJ aWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCSBl cnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGNhbm5vdCBiZSByZWZlcmVuY2VkIGluIGEg Y2F0YWxvZyBvYmplY3QiLAorCQkJCQkJCXBhcmFtLT5wYXJhbXZhcm5hbWUpKSk7CisKIAkJLyog QSBwYXJhbWV0ZXIgbXVzdCBkZXBlbmQgb24gdGhlIHBhcmFtZXRlcidzIGRhdGF0eXBlICovCiAJ CWFkZF9vYmplY3RfYWRkcmVzcyhUeXBlUmVsYXRpb25JZCwgcGFyYW0tPnBhcmFtdHlwZSwgMCwK IAkJCQkJCSAgIGNvbnRleHQtPmFkZHJzKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwppbmRleCBiY2FmMzdmNzg4Yi4uMjAxYmMwNDhkOGIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTEzMiw2ICsxMzIsNDUgQEAgZ2V0X3Nlc3Npb25f dmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKGNoYXIgKnZhcm5hbWUsCiAJKmNvbGxpZCA9IHN2 YXItPnZhcmNvbGxhdGlvbjsKIH0KIAorLyoKKyAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB2YWx1 ZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSAoaW4gdGhlIGN1cnJlbnQgbWVtb3J5CisgKiBjb250 ZXh0KS4KKyAqLworRGF0dW0KK0dldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlY2hlY2soY2hhciAq dmFybmFtZSwKKwkJCQkJCQkJT2lkIHR5cGlkLCBpbnQzMiB0eXBtb2QsCisJCQkJCQkJCWJvb2wg KmlzbnVsbCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsKKwlEYXR1bQkJcmVzdWx0OworCisJc3ZhciA9 IHNlYXJjaF92YXJpYWJsZSh2YXJuYW1lKTsKKworCWlmIChzdmFyLT52YXJ0eXBlICE9IHR5cGlk IHx8IHN2YXItPnZhcnR5cG1vZCAhPSB0eXBtb2QpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2 YXJpYWJsZSAlcyBpcyBub3Qgb2YgYSB0eXBlICVzIGJ1dCB0eXBlICVzIiwKKwkJCQkJCXZhcm5h bWUsCisJCQkJCQlmb3JtYXRfdHlwZV93aXRoX3R5cGVtb2QodHlwaWQsIHR5cG1vZCksCisJCQkJ CQlmb3JtYXRfdHlwZV93aXRoX3R5cGVtb2Qoc3Zhci0+dmFydHlwZSwgc3Zhci0+dmFydHlwbW9k KSkpKTsKKworCS8qIG9ubHkgb3duZXIgY2FuIGdldCBjb250ZW50IG9mIHZhcmlhYmxlICovCisJ aWYgKHN2YXItPnZhcm93bmVyICE9IEdldFVzZXJJZCgpICYmICFzdXBlcnVzZXIoKSkKKwkJZXJl cG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0Up LAorCQkJCSBlcnJtc2coInBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICVz IiwKKwkJCQkJCXZhcm5hbWUpKSk7CisKKwlpZiAoIXN2YXItPmlzbnVsbCkKKwkJcmVzdWx0ID0g ZGF0dW1Db3B5KHN2YXItPnZhbHVlLCBzdmFyLT50eXBieXZhbCwgc3Zhci0+dHlwbGVuKTsKKwll bHNlCisJCXJlc3VsdCA9IChEYXR1bSkgMDsKKworCSppc251bGwgPSBzdmFyLT5pc251bGw7CisK KwlyZXR1cm4gcmVzdWx0OworfQorCiAvKgogICogQ3JlYXRlcyBhIG5ldyB2YXJpYWJsZSAtIGRv ZXMgbmV3IGVudHJ5IGluIHNlc3Npb252YXJzCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3BsYW4vcGxhbm5lci5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxh bm5lci5jCmluZGV4IGZkNzczMzRlNWZkLi41MTQ3YmU5OWQxNCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci9wbGFuL3BsYW5uZXIuYwpAQCAtMzc0LDYgKzM3NCw3IEBAIHN0YW5kYXJkX3BsYW5uZXIoUXVl cnkgKnBhcnNlLCBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsIGludCBjdXJzb3JPcHRpb25zLAog CWdsb2ItPmRlcGVuZHNPblJvbGUgPSBmYWxzZTsKIAlnbG9iLT5wYXJ0aXRpb25fZGlyZWN0b3J5 ID0gTlVMTDsKIAlnbG9iLT5yZWxfbm90bnVsbGF0dHNfaGFzaCA9IE5VTEw7CisJZ2xvYi0+c2Vz c2lvblZhcmlhYmxlcyA9IE5JTDsKIAogCS8qCiAJICogQXNzZXNzIHdoZXRoZXIgaXQncyBmZWFz aWJsZSB0byB1c2UgcGFyYWxsZWwgbW9kZSBmb3IgdGhpcyBxdWVyeS4gV2UKQEAgLTYxNyw2ICs2 MTgsOSBAQCBzdGFuZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJzZSwgY29uc3QgY2hhciAqcXVlcnlf c3RyaW5nLCBpbnQgY3Vyc29yT3B0aW9ucywKIAlyZXN1bHQtPnBhcmFtRXhlY1R5cGVzID0gZ2xv Yi0+cGFyYW1FeGVjVHlwZXM7CiAJLyogdXRpbGl0eVN0bXQgc2hvdWxkIGJlIG51bGwsIGJ1dCB3 ZSBtaWdodCBhcyB3ZWxsIGNvcHkgaXQgKi8KIAlyZXN1bHQtPnV0aWxpdHlTdG10ID0gcGFyc2Ut PnV0aWxpdHlTdG10OworCisJcmVzdWx0LT5zZXNzaW9uVmFyaWFibGVzID0gZ2xvYi0+c2Vzc2lv blZhcmlhYmxlczsKKwogCXJlc3VsdC0+c3RtdF9sb2NhdGlvbiA9IHBhcnNlLT5zdG10X2xvY2F0 aW9uOwogCXJlc3VsdC0+c3RtdF9sZW4gPSBwYXJzZS0+c3RtdF9sZW47CiAKQEAgLTgwNSw2ICs4 MDksMTMgQEAgc3VicXVlcnlfcGxhbm5lcihQbGFubmVyR2xvYmFsICpnbG9iLCBRdWVyeSAqcGFy c2UsIGNoYXIgKnBsYW5fbmFtZSwKIAkgKi8KIAlwdWxsX3VwX3N1YnF1ZXJpZXMocm9vdCk7CiAK KwkvKgorCSAqIENoZWNrIGlmIHNvbWUgc3VicXVlcnkgdXNlcyBhIHNlc3Npb24gdmFyaWFibGUu ICBUaGUgZmxhZworCSAqIGhhc1Nlc3Npb25WYXJpYWJsZXMgc2hvdWxkIGJlIHRydWUgaWYgdGhl IHF1ZXJ5IG9yIHNvbWUgc3VicXVlcnkgdXNlcyBhCisJICogc2Vzc2lvbiB2YXJpYWJsZS4KKwkg Ki8KKwlwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlcyhyb290KTsKKwogCS8qCiAJICogSWYg dGhpcyBpcyBhIHNpbXBsZSBVTklPTiBBTEwgcXVlcnksIGZsYXR0ZW4gaXQgaW50byBhbiBhcHBl bmRyZWwuIFdlCiAJICogZG8gdGhpcyBub3cgYmVjYXVzZSBpdCByZXF1aXJlcyBhcHBseWluZyBw dWxsX3VwX3N1YnF1ZXJpZXMgdG8gdGhlIGxlYWYKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL3NldHJlZnMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJl ZnMuYwppbmRleCBjY2RjOWJjMjY0YS4uNDhkZThiZjRmMTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIv cGxhbi9zZXRyZWZzLmMKQEAgLTIxMCw2ICsyMTAsOCBAQCBzdGF0aWMgTGlzdCAqc2V0X3JldHVy bmluZ19jbGF1c2VfcmVmZXJlbmNlcyhQbGFubmVySW5mbyAqcm9vdCwKIHN0YXRpYyBMaXN0ICpz ZXRfd2luZG93YWdnX3J1bmNvbmRpdGlvbl9yZWZlcmVuY2VzKFBsYW5uZXJJbmZvICpyb290LAog CQkJCQkJCQkJCQkJICAgTGlzdCAqcnVuY29uZGl0aW9uLAogCQkJCQkJCQkJCQkJICAgUGxhbiAq cGxhbik7CitzdGF0aWMgYm9vbCBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIo Tm9kZSAqbm9kZSwKKwkJCQkJCQkJCQkJCSBQbGFubmVySW5mbyAqcm9vdCk7CiAKIAogLyoqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqCkBAIC0xMzQxLDYgKzEzNDMsNTAgQEAgc2V0X3BsYW5fcmVmcyhQbGFu bmVySW5mbyAqcm9vdCwgUGxhbiAqcGxhbiwgaW50IHJ0b2Zmc2V0KQogCXJldHVybiBwbGFuOwog fQogCisvKgorICogU2VhcmNoIHVzYWdlIG9mIHNlc3Npb24gdmFyaWFibGVzIGluIHN1YnF1ZXJp ZXMKKyAqLwordm9pZAorcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXMoUGxhbm5lckluZm8g KnJvb3QpCit7CisJUXVlcnkJICAgKnF1ZXJ5ID0gcm9vdC0+cGFyc2U7CisKKwlpZiAocXVlcnkt Pmhhc1Nlc3Npb25WYXJpYWJsZXMpCisJeworCQlyb290LT5oYXNTZXNzaW9uVmFyaWFibGVzID0g dHJ1ZTsKKwl9CisJZWxzZQorCXsKKwkJKHZvaWQpIHF1ZXJ5X3RyZWVfd2Fsa2VyKHF1ZXJ5LAor CQkJCQkJCQkgcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2Fsa2VyLAorCQkJCQkJCQkg KHZvaWQgKikgcm9vdCwgMCk7CisJfQorfQorCitzdGF0aWMgYm9vbAorcHVsbF91cF9oYXNfc2Vz c2lvbl92YXJpYWJsZXNfd2Fsa2VyKE5vZGUgKm5vZGUsIFBsYW5uZXJJbmZvICpyb290KQorewor CWlmIChub2RlID09IE5VTEwpCisJCXJldHVybiBmYWxzZTsKKwlpZiAoSXNBKG5vZGUsIFF1ZXJ5 KSkKKwl7CisJCVF1ZXJ5CSAgICpxdWVyeSA9IChRdWVyeSAqKSBub2RlOworCisJCWlmIChxdWVy eS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKKwkJeworCQkJcm9vdC0+aGFzU2Vzc2lvblZhcmlhYmxl cyA9IHRydWU7CisJCQlyZXR1cm4gZmFsc2U7CisJCX0KKworCQkvKiByZWN1cnNlIGludG8gc3Vi c2VsZWN0cyAqLworCQlyZXR1cm4gcXVlcnlfdHJlZV93YWxrZXIoKFF1ZXJ5ICopIG5vZGUsCisJ CQkJCQkJCSBwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIsCisJCQkJCQkJCSAo dm9pZCAqKSByb290LCAwKTsKKwl9CisJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93YWxrZXIobm9k ZSwgcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2Fsa2VyLAorCQkJCQkJCQkgICh2b2lk ICopIHJvb3QpOworfQorCiAvKgogICogc2V0X2luZGV4b25seXNjYW5fcmVmZXJlbmNlcwogICoJ CURvIHNldF9wbGFuX3JlZmVyZW5jZXMgcHJvY2Vzc2luZyBvbiBhbiBJbmRleE9ubHlTY2FuCkBA IC0yMTQxLDYgKzIxODcsMTAgQEAgZml4X2V4cHJfY29tbW9uKFBsYW5uZXJJbmZvICpyb290LCBO b2RlICpub2RlKQogICogSWYgaXQncyBhIFBBUkFNX01VTFRJRVhQUiwgcmVwbGFjZSBpdCB3aXRo IHRoZSBhcHByb3ByaWF0ZSBQYXJhbSBmcm9tCiAgKiByb290LT5tdWx0aWV4cHJfcGFyYW1zOyBv dGhlcndpc2Ugbm8gY2hhbmdlIGlzIG5lZWRlZC4KICAqIEp1c3QgZm9yIHBhcmFub2lhJ3Mgc2Fr ZSwgd2UgbWFrZSBhIGNvcHkgb2YgdGhlIG5vZGUgaW4gZWl0aGVyIGNhc2UuCisgKgorICogSWYg aXQncyBhIFBBUkFNX1ZBUklBQkxFLCB0aGVuIHdlIGNvbGxlY3QgdXNlZCBzZXNzaW9uIHZhcmlh YmxlcyBpbgorICogdGhlIGxpc3Qgcm9vdC0+Z2xvYi0+c2Vzc2lvblZhcmlhYmxlLiAgQWxzbywg YXNzaWduIHRoZSBwYXJhbWV0ZXIncworICogInBhcmFtaWQiIHRvIHRoZSBwYXJhbWV0ZXIncyBw b3NpdGlvbiBpbiB0aGF0IGxpc3QuCiAgKi8KIHN0YXRpYyBOb2RlICoKIGZpeF9wYXJhbV9ub2Rl KFBsYW5uZXJJbmZvICpyb290LCBQYXJhbSAqcCkKQEAgLTIxNTksNiArMjIwOSw0MyBAQCBmaXhf cGFyYW1fbm9kZShQbGFubmVySW5mbyAqcm9vdCwgUGFyYW0gKnApCiAJCQllbG9nKEVSUk9SLCAi dW5leHBlY3RlZCBQQVJBTV9NVUxUSUVYUFIgSUQ6ICVkIiwgcC0+cGFyYW1pZCk7CiAJCXJldHVy biBjb3B5T2JqZWN0KGxpc3RfbnRoKHBhcmFtcywgY29sbm8gLSAxKSk7CiAJfQorCisJaWYgKHAt PnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwl7CisJCWludAkJCW4gPSAwOworCisJCS8q IHdlIHdpbGwgbW9kaWZ5IG9iamVjdCAqLworCQlwID0gKFBhcmFtICopIGNvcHlPYmplY3QocCk7 CisKKwkJLyoKKwkJICogTm93LCB3ZSBjYW4gYWN0dWFsaXplIGxpc3Qgb2Ygc2Vzc2lvbiB2YXJp YWJsZXMsIGFuZCB3ZSBjYW4KKwkJICogY29tcGxldGUgcGFyYW1pZCBwYXJhbWV0ZXIuCisJCSAq LworCQlmb3JlYWNoX25vZGUoUGFyYW0sIHBhcmFtdmFyLCByb290LT5nbG9iLT5zZXNzaW9uVmFy aWFibGVzKQorCQl7CisJCQlpZiAoc3RyY21wKHBhcmFtdmFyLT5wYXJhbXZhcm5hbWUsIHAtPnBh cmFtdmFybmFtZSkgPT0gMCkKKwkJCXsKKwkJCQlwLT5wYXJhbWlkID0gcGFyYW12YXItPnBhcmFt aWQ7CisKKwkJCQlyZXR1cm4gKE5vZGUgKikgcDsKKwkJCX0KKworCQkJbiArPSAxOworCQl9CisK KwkJcC0+cGFyYW1pZCA9IG47CisKKwkJLyoKKwkJICogQmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxl cyBhcmUgY2F0YWxvZ2xlc3MsIHdlIGNhbm5vdCB0byB1c2UgcGxhbgorCQkgKiBpbnZhbGlkYXRp b24uIFRoZW4gd2UgbmVlZCB0byBjaGVjayB0eXBlLCB0eXBtb2QsIGNvbGxpZCBhbnkgdGltZSwK KwkJICogd2hlbiB3ZSBsb2FkIHZhbHVlcyBvZiBzZXNzaW9uIHZhcmlhYmxlcyB0byBwYXJhbWV0 ZXIncyBidWZmZXIuCisJCSAqIEZvciB0aGlzIHB1cnBvc2UgaXQgaXMgbW9yZSBlYXN5IHRvIHNh dmUgY29tcGxldGUgUGFyYW0gbm9kZS4KKwkJICovCisJCXJvb3QtPmdsb2ItPnNlc3Npb25WYXJp YWJsZXMgPSBsYXBwZW5kKHJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZXMsIHApOworCisJCXJl dHVybiAoTm9kZSAqKSBwOworCX0KKwogCXJldHVybiAoTm9kZSAqKSBjb3B5T2JqZWN0KHApOwog fQogCkBAIC0yMjIwLDcgKzIzMDcsOSBAQCBmaXhfYWx0ZXJuYXRpdmVfc3VicGxhbihQbGFubmVy SW5mbyAqcm9vdCwgQWx0ZXJuYXRpdmVTdWJQbGFuICphc3BsYW4sCiAgKiByZXBsYWNpbmcgQWdn cmVmIG5vZGVzIHRoYXQgc2hvdWxkIGJlIHJlcGxhY2VkIGJ5IGluaXRwbGFuIG91dHB1dCBQYXJh bXMsCiAgKiBjaG9vc2luZyB0aGUgYmVzdCBpbXBsZW1lbnRhdGlvbiBmb3IgQWx0ZXJuYXRpdmVT dWJQbGFucywKICAqIGxvb2tpbmcgdXAgb3BlcmF0b3Igb3Bjb2RlIGluZm8gZm9yIE9wRXhwciBh bmQgcmVsYXRlZCBub2RlcywKLSAqIGFuZCBhZGRpbmcgT0lEcyBmcm9tIHJlZ2NsYXNzIENvbnN0 IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVsYXRpb25PaWRzLgorICogYWRkaW5nIE9JRHMgZnJv bSByZWdjbGFzcyBDb25zdCBub2RlcyBpbnRvIHJvb3QtPmdsb2ItPnJlbGF0aW9uT2lkcywKKyAq IGFzc2lnbmluZyBwYXJhbXZhcmlkIHRvIFBBUkFNX1ZBUklBQkxFIHBhcmFtcywgYW5kIGNvbGxl Y3RpbmcgdGhlCisgKiBvZiBzZXNzaW9uIHZhcmlhYmxlcyBpbiB0aGUgcm9vdC0+Z2xvYi0+c2Vz c2lvblZhcmlhYmxlcyBsaXN0LgogICoKICAqICdub2RlJzogdGhlIGV4cHJlc3Npb24gdG8gYmUg bW9kaWZpZWQKICAqICdydG9mZnNldCc6IGhvdyBtdWNoIHRvIGluY3JlbWVudCB2YXJub3MgYnkK QEAgLTIyNDIsNyArMjMzMSw4IEBAIGZpeF9zY2FuX2V4cHIoUGxhbm5lckluZm8gKnJvb3QsIE5v ZGUgKm5vZGUsIGludCBydG9mZnNldCwgZG91YmxlIG51bV9leGVjKQogCQlyb290LT5tdWx0aWV4 cHJfcGFyYW1zICE9IE5JTCB8fAogCQlyb290LT5nbG9iLT5sYXN0UEhJZCAhPSAwIHx8CiAJCXJv b3QtPm1pbm1heF9hZ2dzICE9IE5JTCB8fAotCQlyb290LT5oYXNBbHRlcm5hdGl2ZVN1YlBsYW5z KQorCQlyb290LT5oYXNBbHRlcm5hdGl2ZVN1YlBsYW5zIHx8CisJCXJvb3QtPmhhc1Nlc3Npb25W YXJpYWJsZXMpCiAJewogCQlyZXR1cm4gZml4X3NjYW5fZXhwcl9tdXRhdG9yKG5vZGUsICZjb250 ZXh0KTsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9p bnRyZWUuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jCmluZGV4 IDc1ODE2OTU2NDdkLi4yODJiYjdkNWUyNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1p emVyL3ByZXAvcHJlcGpvaW50cmVlLmMKKysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3ByZXAv cHJlcGpvaW50cmVlLmMKQEAgLTE2NDksNiArMTY0OSw5IEBAIHB1bGxfdXBfc2ltcGxlX3N1YnF1 ZXJ5KFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpqdG5vZGUsIFJhbmdlVGJsRW50cnkgKnJ0ZSwK IAkvKiBJZiBzdWJxdWVyeSBoYWQgYW55IFJMUyBjb25kaXRpb25zLCBub3cgbWFpbiBxdWVyeSBk b2VzIHRvbyAqLwogCXBhcnNlLT5oYXNSb3dTZWN1cml0eSB8PSBzdWJxdWVyeS0+aGFzUm93U2Vj dXJpdHk7CiAKKwkvKiBpZiB0aGUgc3VicXVlcnkgaGFkIHNlc3Npb24gdmFyaWFibGVzLCB0aGUg bWFpbiBxdWVyeSBkb2VzIHRvbyAqLworCXBhcnNlLT5oYXNTZXNzaW9uVmFyaWFibGVzIHw9IHN1 YnF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzOworCiAJLyoKIAkgKiBzdWJxdWVyeSB3b24ndCBi ZSBwdWxsZWQgdXAgaWYgaXQgaGFzQWdncywgaGFzV2luZG93RnVuY3MsIG9yCiAJICogaGFzVGFy Z2V0U1JGcywgc28gbm8gd29yayBuZWVkZWQgb24gdGhvc2UgZmxhZ3MKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL2NsYXVzZXMuYwppbmRleCBiZGE0YzRlYjI5Mi4uYzZhYTA5YThkMzkgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJj YXRhbG9nL3BnX29wZXJhdG9yLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAjaW5jbHVkZSAiZXhlY3V0 b3IvZnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5oIgpAQCAtOTQ3LDYgKzk0OCwxMyBA QCBtYXhfcGFyYWxsZWxfaGF6YXJkX3dhbGtlcihOb2RlICpub2RlLCBtYXhfcGFyYWxsZWxfaGF6 YXJkX2NvbnRleHQgKmNvbnRleHQpCiAJCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX0VY VEVSTikKIAkJCXJldHVybiBmYWxzZTsKIAorCQkvKiB3ZSBkb24ndCBzdXBwb3J0IHBhc3Npbmcg c2Vzc2lvbiB2YXJpYWJsZXMgdG8gd29ya2VycyAqLworCQlpZiAocGFyYW0tPnBhcmFta2luZCA9 PSBQQVJBTV9WQVJJQUJMRSkKKwkJeworCQkJaWYgKG1heF9wYXJhbGxlbF9oYXphcmRfdGVzdChQ Uk9QQVJBTExFTF9SRVNUUklDVEVELCBjb250ZXh0KSkKKwkJCQlyZXR1cm4gdHJ1ZTsKKwkJfQor CiAJCWlmIChwYXJhbS0+cGFyYW1raW5kICE9IFBBUkFNX0VYRUMgfHwKIAkJCSFsaXN0X21lbWJl cl9pbnQoY29udGV4dC0+c2FmZV9wYXJhbV9pZHMsIHBhcmFtLT5wYXJhbWlkKSkKIAkJewpAQCAt MjQwNSw2ICsyNDEzLDcgQEAgY29udmVydF9zYW9wX3RvX2hhc2hlZF9zYW9wX3dhbGtlcihOb2Rl ICpub2RlLCB2b2lkICpjb250ZXh0KQogICoJICB2YWx1ZSBvZiB0aGUgUGFyYW0uCiAgKiAyLiBG b2xkIHN0YWJsZSwgYXMgd2VsbCBhcyBpbW11dGFibGUsIGZ1bmN0aW9ucyB0byBjb25zdGFudHMu CiAgKiAzLiBSZWR1Y2UgUGxhY2VIb2xkZXJWYXIgbm9kZXMgdG8gdGhlaXIgY29udGFpbmVkIGV4 cHJlc3Npb25zLgorICogNC4gQ3VycmVudCB2YWx1ZSBvZiBzZXNzaW9uIHZhcmlhYmxlIGNhbiBi ZSB1c2VkIGZvciBlc3RpbWF0aW9uIHRvby4KICAqLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAqLwog Tm9kZSAqCkBAIC0yNTMxLDYgKzI1NDAsMjkgQEAgZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRh dG9yKE5vZGUgKm5vZGUsCiAJCQkJCQl9CiAJCQkJCX0KIAkJCQl9CisJCQkJZWxzZSBpZiAocGFy YW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSAmJgorCQkJCQkJIGNvbnRleHQtPmVzdGlt YXRlKQorCQkJCXsKKwkJCQkJaW50MTYJCXR5cExlbjsKKwkJCQkJYm9vbAkJdHlwQnlWYWw7CisJ CQkJCURhdHVtCQlwdmFsOworCQkJCQlib29sCQlpc251bGw7CisKKwkJCQkJZ2V0X3R5cGxlbmJ5 dmFsKHBhcmFtLT5wYXJhbXR5cGUsICZ0eXBMZW4sICZ0eXBCeVZhbCk7CisKKwkJCQkJcHZhbCA9 IEdldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlY2hlY2socGFyYW0tPnBhcmFtdmFybmFtZSwKKwkJ CQkJCQkJCQkJCQkJICAgcGFyYW0tPnBhcmFtdHlwZSwKKwkJCQkJCQkJCQkJCQkJICAgcGFyYW0t PnBhcmFtdHlwbW9kLAorCQkJCQkJCQkJCQkJCQkgICAmaXNudWxsKTsKKworCQkJCQlyZXR1cm4g KE5vZGUgKikgbWFrZUNvbnN0KHBhcmFtLT5wYXJhbXR5cGUsCisJCQkJCQkJCQkJCSAgcGFyYW0t PnBhcmFtdHlwbW9kLAorCQkJCQkJCQkJCQkgIHBhcmFtLT5wYXJhbWNvbGxpZCwKKwkJCQkJCQkJ CQkJICAoaW50KSB0eXBMZW4sCisJCQkJCQkJCQkJCSAgcHZhbCwKKwkJCQkJCQkJCQkJICBpc251 bGwsCisJCQkJCQkJCQkJCSAgdHlwQnlWYWwpOworCQkJCX0KIAogCQkJCS8qCiAJCQkJICogTm90 IHJlcGxhY2VhYmxlLCBzbyBqdXN0IGNvcHkgdGhlIFBhcmFtIChubyBuZWVkIHRvCkBAIC00OTAz LDcgKzQ5MzUsOCBAQCBpbmxpbmVfZnVuY3Rpb24oT2lkIGZ1bmNpZCwgT2lkIHJlc3VsdF90eXBl LCBPaWQgcmVzdWx0X2NvbGxpZCwKIAkJcXVlcnl0cmVlLT5saW1pdE9mZnNldCB8fAogCQlxdWVy eXRyZWUtPmxpbWl0Q291bnQgfHwKIAkJcXVlcnl0cmVlLT5zZXRPcGVyYXRpb25zIHx8Ci0JCWxp c3RfbGVuZ3RoKHF1ZXJ5dHJlZS0+dGFyZ2V0TGlzdCkgIT0gMSkKKwkJKGxpc3RfbGVuZ3RoKHF1 ZXJ5dHJlZS0+dGFyZ2V0TGlzdCkgIT0gMSkgfHwKKwkJcXVlcnl0cmVlLT5oYXNTZXNzaW9uVmFy aWFibGVzKQogCQlnb3RvIGZhaWw7CiAKIAkvKiBJZiB0aGUgZnVuY3Rpb24gcmVzdWx0IGlzIGNv bXBvc2l0ZSwgcmVzb2x2ZSBpdCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvZm1n ci9mbWdyLmMgYi9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYwppbmRleCAwZmU2M2M2YmI4 My4uZDI2ZTc0NGUyOTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCkBAIC0xOTkxLDkgKzE5OTEsMTMg QEAgZ2V0X2NhbGxfZXhwcl9hcmdfc3RhYmxlKE5vZGUgKmV4cHIsIGludCBhcmdudW0pCiAJICov CiAJaWYgKElzQShhcmcsIENvbnN0KSkKIAkJcmV0dXJuIHRydWU7Ci0JaWYgKElzQShhcmcsIFBh cmFtKSAmJgotCQkoKFBhcmFtICopIGFyZyktPnBhcmFta2luZCA9PSBQQVJBTV9FWFRFUk4pCi0J CXJldHVybiB0cnVlOworCWlmIChJc0EoYXJnLCBQYXJhbSkpCisJeworCQlQYXJhbQkgICAqcCA9 IChQYXJhbSAqKSBhcmc7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9FWFRFUk4gfHwg cC0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQkJcmV0dXJuIHRydWU7CisJfQogCiAJ cmV0dXJuIGZhbHNlOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmlu ZGV4IDk2YmU5NjhjM2Q0Li4zNjg3NDkwYmNiMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuaApAQCAtMjIsNiArMjIsOCBAQAogZXh0ZXJuIHZvaWQgQ3JlYXRlVmFyaWFi bGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCk7CiBleHRl cm4gdm9pZCBEcm9wVmFyaWFibGVCeU5hbWUoY2hhciAqdmFybmFtZSk7CiAKK2V4dGVybiBEYXR1 bSBHZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlwZWNoZWNrKGNoYXIgKnZhcm5hbWUsIE9pZCB0eXBp ZCwgaW50MzIgdHlwbW9kLCBib29sICppc251bGwpOworCiBleHRlcm4gdm9pZCBnZXRfc2Vzc2lv bl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQoY2hhciAqdmFybmFtZSwKIAkJCQkJCQkJCQkJ CQlPaWQgKnR5cGlkLAogCQkJCQkJCQkJCQkJCWludDMyICp0eXBtb2QsCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rl cy5oCmluZGV4IDQ2YTg2NTU2MjFkLi45N2EwMGRmOGQxZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvbm9kZXMvcGF0aG5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgK QEAgLTE4OSw2ICsxODksOSBAQCB0eXBlZGVmIHN0cnVjdCBQbGFubmVyR2xvYmFsCiAJLyogZXh0 ZW5zaW9uIHN0YXRlICovCiAJdm9pZAkgICoqZXh0ZW5zaW9uX3N0YXRlIHBnX25vZGVfYXR0cihy ZWFkX3dyaXRlX2lnbm9yZSk7CiAJaW50CQkJZXh0ZW5zaW9uX3N0YXRlX2FsbG9jYXRlZDsKKwor CS8qIGxpc3Qgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLworCUxpc3QJICAgKnNlc3Npb25W YXJpYWJsZXM7CiB9IFBsYW5uZXJHbG9iYWw7CiAKIC8qIG1hY3JvIGZvciBmZXRjaGluZyB0aGUg UGxhbiBhc3NvY2lhdGVkIHdpdGggYSBTdWJQbGFuIG5vZGUgKi8KQEAgLTU0Nyw2ICs1NTAsOCBA QCBzdHJ1Y3QgUGxhbm5lckluZm8KIAlib29sCQloYXNSZWN1cnNpb247CiAJLyogdHJ1ZSBpZiBh IHBsYW5uZXIgZXh0ZW5zaW9uIG1heSByZXBsYW4gdGhpcyBzdWJxdWVyeSAqLwogCWJvb2wJCWFz c3VtZVJlcGxhbm5pbmc7CisJLyogdHJ1ZSBpZiBzZXNzaW9uIHZhcmlhYmxlcyB3ZXJlIHVzZWQg Ki8KKwlib29sCQloYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJLyoKIAkgKiBUaGUgcmFuZ2V0YWJs ZSBpbmRleCBmb3IgdGhlIFJURV9HUk9VUCBSVEUsIG9yIDAgaWYgdGhlcmUgaXMgbm8KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BsYW5ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMv cGxhbm5vZGVzLmgKaW5kZXggYzQzOTNhOTQzMjEuLjYxNzU0YWU0ZWZjIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFu bm9kZXMuaApAQCAtMTU4LDYgKzE1OCw5IEBAIHR5cGVkZWYgc3RydWN0IFBsYW5uZWRTdG10CiAJ ICovCiAJTGlzdAkgICAqZXh0ZW5zaW9uX3N0YXRlOwogCisJLyogUEFSQU1fVkFSSUFCTEUgUGFy YW1zICovCisJTGlzdAkgICAqc2Vzc2lvblZhcmlhYmxlczsKKwogCS8qIHN0YXRlbWVudCBsb2Nh dGlvbiBpbiBzb3VyY2Ugc3RyaW5nIChjb3BpZWQgZnJvbSBRdWVyeSkgKi8KIAkvKiBzdGFydCBs b2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLwogCVBhcnNlTG9jCXN0bXRfbG9jYXRpb247CmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1haW4uaCBiL3NyYy9pbmNsdWRl L29wdGltaXplci9wbGFubWFpbi5oCmluZGV4IDAwYWRkZjE1OTkyLi5mYjgxY2ViMzc1ZiAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmgKKysrIGIvc3JjL2luY2x1 ZGUvb3B0aW1pemVyL3BsYW5tYWluLmgKQEAgLTEzMiw0ICsxMzIsNiBAQCBleHRlcm4gdm9pZCBy ZWNvcmRfcGxhbl9mdW5jdGlvbl9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgZnVu Y2lkKTsKIGV4dGVybiB2b2lkIHJlY29yZF9wbGFuX3R5cGVfZGVwZW5kZW5jeShQbGFubmVySW5m byAqcm9vdCwgT2lkIHR5cGlkKTsKIGV4dGVybiBib29sIGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5j aWVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVySW5mbyAqY29udGV4dCk7CiAKK2V4dGVybiB2 b2lkIHB1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzKFBsYW5uZXJJbmZvICpyb290KTsKKwog I2VuZGlmCQkJCQkJCS8qIFBMQU5NQUlOX0ggKi8KLS0gCjIuNTIuMAoK --0000000000008b48e906456c698a Content-Type: application/x-patch; name="v20251208-0001-CREATE-VARIABLE-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20251208-0001-CREATE-VARIABLE-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miwu5rn89 RnJvbSBiMjA1YjM0NGI0ZDJlNTZkYWJkMzY2MDhhZjllMjAwNzg4NzRiN2Y4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE5IE5vdiAyMDI1IDE5OjM2OjA3ICswMTAwClN1YmplY3Q6IFtQ QVRDSCAwMS8xMV0gQ1JFQVRFIFZBUklBQkxFLCBEUk9QIFZBUklBQkxFCgotLS0KIGRvYy9zcmMv c2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyMCArKwogZG9jL3NyYy9z Z21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDE1ICsrCiBkb2Mvc3JjL3Nn bWwvcmVmL2FsbGZpbGVzLnNnbWwgICAgICAgICAgICAgICAgfCAgIDIgKwogZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgMTMzICsrKysrKysrKysKIGRvYy9z cmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sICAgICAgICAgICB8ICA4NCArKysrKysrCiBk b2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3Jj L2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9i YWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvYmFj a2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgMjM4ICsrKysrKysrKysrKysr KysrKwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDU1 ICsrKy0KIHNyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jICAgICAgICAgICAgICAgICAgICB8ICAy NiArKwogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDEw ICstCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggICAgICAgfCAgMjUg KysKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAyMyAr Kwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAxICsK IHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oICAgICAgICAgICAgICAgICB8ICAgMiArCiAu Li4vZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLm91dCAgICAgICAgfCAgNDMgKysrKwog c3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAyICstCiAu Li4vcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLnNxbCAgICAgfCAgNTYgKysrKysK IHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgNCArCiAy MSBmaWxlcyBjaGFuZ2VkLCA3MzcgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCiBjcmVh dGUgbW9kZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzX2RkbC5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC9z ZXNzaW9uX3ZhcmlhYmxlc19kZGwuc3FsCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5z Z21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IDA5YWQ4NDAwZmQwLi4zODdhNmY1MmRj MCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9k ZGwuc2dtbApAQCAtNTY1NSw2ICs1NjU1LDI2IEBAIEVYUExBSU4gU0VMRUNUIGNvdW50KCopIEZS T00gbWVhc3VyZW1lbnQgV0hFUkUgbG9nZGF0ZSAmZ3Q7PSBEQVRFICcyMDA4LTAxLTAxJzsKICAg IDwvcGFyYT4KICA8L3NlY3QxPgogCisgPHNlY3QxIGlkPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMi PgorICAgPHRpdGxlPlNlc3Npb24gVmFyaWFibGVzPC90aXRsZT4KKworICAgPGluZGV4dGVybSB6 b25lPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiPgorICAgIDxwcmltYXJ5PlNlc3Npb24gdmFyaWFi bGVzPC9wcmltYXJ5PgorICAgPC9pbmRleHRlcm0+CisKKyAgIDxpbmRleHRlcm0+CisgICAgPHBy aW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgIDwvaW5kZXh0ZXJtPgorCisgICA8 cGFyYT4KKyAgICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgdGVtcG9yYXJ5IGRhdGFiYXNlIG9iamVj dHMgdGhhdCBjYW4gaG9sZCBhIHZhbHVlLgorICAgIEEgc2Vzc2lvbiB2YXJpYWJsZSBjYW4gYmUg Y3JlYXRlZCBieSB0aGUgPGNvbW1hbmQ+Q1JFQVRFIFZBUklBQkxFPC9jb21tYW5kPgorICAgIGNv bW1hbmQgYW5kIGNhbiBvbmx5IGJlIGFjY2Vzc2VkIGJ5IGl0cyBvd25lci4gVGhlIHZhbHVlIG9m IGEgc2Vzc2lvbgorICAgIHZhcmlhYmxlIGlzIHN0b3JlZCBpbiBzZXNzaW9uIG1lbW9yeSBhbmQg aXMgcHJpdmF0ZSB0byBlYWNoIHNlc3Npb24uIEl0IGlzCisgICAgYXV0b21hdGljYWxseSByZWxl YXNlZCB3aGVuIHRoZSBzZXNzaW9uIGVuZHMuCisgICA8L3BhcmE+CisgPC9zZWN0MT4KKwogIDxz ZWN0MSBpZD0iZGRsLW90aGVycyI+CiAgIDx0aXRsZT5PdGhlciBEYXRhYmFzZSBPYmplY3RzPC90 aXRsZT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgYi9kb2Mvc3Jj L3NnbWwvZ2xvc3Nhcnkuc2dtbAppbmRleCBhNzZjZjVjMzgzZi4uNjRkNWZkNDAyMTkgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9nbG9z c2FyeS5zZ21sCkBAIC0xNzI2LDYgKzE3MjYsMjEgQEAKICAgIDwvZ2xvc3NkZWY+CiAgIDwvZ2xv c3NlbnRyeT4KIAorICA8Z2xvc3NlbnRyeSBpZD0iZ2xvc3Nhcnktc2Vzc2lvbi12YXJpYWJsZSI+ CisgICA8Z2xvc3N0ZXJtPlNlc3Npb24gdmFyaWFibGU8L2dsb3NzdGVybT4KKyAgIDxnbG9zc2Rl Zj4KKyAgICA8cGFyYT4KKyAgICAgQSB0ZW1wb3JhbCBkYXRhYmFzZSBvYmplY3QgdGhhdCBob2xk cyBhIHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAgVGhpcworICAgICB2YWx1ZSBpcyBwcml2YXRl IHRvIGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVsZWFzZWQgd2hlbiB0aGUgc2Vzc2lvbiBlbmRzLgor ICAgICBUaGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBpcyBudWxsLiAg UmVhZCBvciB3cml0ZSBhY2Nlc3MKKyAgICAgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgaXMgYWxsb3dl ZCBvbmx5IHRvIG93bmVyIChjcmVhdG9yKS4KKyAgICA8L3BhcmE+CisgICAgPHBhcmE+CisgICAg IEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgPHhyZWYgbGlua2VuZD0iZGRsLXNlc3Npb24tdmFy aWFibGVzIi8+LgorICAgIDwvcGFyYT4KKyAgIDwvZ2xvc3NkZWY+CisgIDwvZ2xvc3NlbnRyeT4K KwogICA8Z2xvc3NlbnRyeSBpZD0iZ2xvc3Nhcnktc2hhcmVkLW1lbW9yeSI+CiAgICA8Z2xvc3N0 ZXJtPlNoYXJlZCBtZW1vcnk8L2dsb3NzdGVybT4KICAgIDxnbG9zc2RlZj4KZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmls ZXMuc2dtbAppbmRleCBlMTY3NDA2Yzc0NC4uYTczNDk5MTk2NTggMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVz LnNnbWwKQEAgLTk5LDYgKzk5LDcgQEAgQ29tcGxldGUgbGlzdCBvZiB1c2FibGUgc2dtbCBzb3Vy Y2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8IUVOVElUWSBjcmVhdGVUeXBlICAgICAgICAg U1lTVEVNICJjcmVhdGVfdHlwZS5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZVVzZXIgICAgICAgICBT WVNURU0gImNyZWF0ZV91c2VyLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlVXNlck1hcHBpbmcgIFNZ U1RFTSAiY3JlYXRlX3VzZXJfbWFwcGluZy5zZ21sIj4KKzwhRU5USVRZIGNyZWF0ZVZhcmlhYmxl ICAgICBTWVNURU0gImNyZWF0ZV92YXJpYWJsZS5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZVZpZXcg ICAgICAgICBTWVNURU0gImNyZWF0ZV92aWV3LnNnbWwiPgogPCFFTlRJVFkgZGVhbGxvY2F0ZSAg ICAgICAgIFNZU1RFTSAiZGVhbGxvY2F0ZS5zZ21sIj4KIDwhRU5USVRZIGRlY2xhcmUgICAgICAg ICAgICBTWVNURU0gImRlY2xhcmUuc2dtbCI+CkBAIC0xNDcsNiArMTQ4LDcgQEAgQ29tcGxldGUg bGlzdCBvZiB1c2FibGUgc2dtbCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8IUVO VElUWSBkcm9wVHlwZSAgICAgICAgICAgU1lTVEVNICJkcm9wX3R5cGUuc2dtbCI+CiA8IUVOVElU WSBkcm9wVXNlciAgICAgICAgICAgU1lTVEVNICJkcm9wX3VzZXIuc2dtbCI+CiA8IUVOVElUWSBk cm9wVXNlck1hcHBpbmcgICAgU1lTVEVNICJkcm9wX3VzZXJfbWFwcGluZy5zZ21sIj4KKzwhRU5U SVRZIGRyb3BWYXJpYWJsZSAgICAgICBTWVNURU0gImRyb3BfdmFyaWFibGUuc2dtbCI+CiA8IUVO VElUWSBkcm9wVmlldyAgICAgICAgICAgU1lTVEVNICJkcm9wX3ZpZXcuc2dtbCI+CiA8IUVOVElU WSBlbmQgICAgICAgICAgICAgICAgU1lTVEVNICJlbmQuc2dtbCI+CiA8IUVOVElUWSBleGVjdXRl ICAgICAgICAgICAgU1lTVEVNICJleGVjdXRlLnNnbWwiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zh cmlhYmxlLnNnbWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRlOGMx OTQwMjUyCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFi bGUuc2dtbApAQCAtMCwwICsxLDEzMyBAQAorPCEtLQorZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf dmFyaWFibGUuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5 IGlkPSJzcWwtY3JlYXRldmFyaWFibGUiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWNyZWF0ZXZh cmlhYmxlIj4KKyAgPHByaW1hcnk+Q1JFQVRFIFZBUklBQkxFPC9wcmltYXJ5PgorIDwvaW5kZXh0 ZXJtPgorCisgPGluZGV4dGVybT4KKyAgPHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFy eT4KKyAgPHNlY29uZGFyeT5kZWZpbmluZzwvc2Vjb25kYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisg PHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkNSRUFURSBWQVJJQUJMRTwvcmVmZW50cnl0aXRs ZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5n dWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRp dj4KKyAgPHJlZm5hbWU+Q1JFQVRFIFZBUklBQkxFPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5k ZWZpbmUgYSBzZXNzaW9uIHZhcmlhYmxlPC9yZWZwdXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKwor IDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4KK0NSRUFURSB7IFRFTVAgfCBURU1QT1JBUlkg fSBWQVJJQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFi bGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBs YWNlYWJsZT4KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKyA8cmVmc2VjdDE+Cisg IDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+ Q1JFQVRFIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGNyZWF0ZXMgYSBzZXNzaW9uCisgICB2 YXJpYWJsZS4gQ3VycmVudGx5IG9ubHkgdGVtcG9yYXJ5IHNlc3Npb24gdmFyaWFibGVzIGFyZSBz dXBwb3J0ZWQsCisgICBhbmQgdGhlbiB0aGUga2V5d29yZCA8bGl0ZXJhbD5URU1QT1JBUlk8L2xp dGVyYWw+IGlzIHJlcXVpcmVkLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGUgdmFsdWUg b2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlzIGxvY2FsIHRvIHRoZSBjdXJyZW50IHNlc3Npb24uICBS ZXRyaWV2aW5nCisgICBhIHNlc3Npb24gdmFyaWFibGUncyB2YWx1ZSByZXR1cm5zIE5VTEwsIHVu bGVzcyBpdHMgdmFsdWUgaXMgc2V0IHRvCisgICBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVu dCBzZXNzaW9uIHdpdGggYSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuCisgICBUaGUg Y29udGVudCBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbm90IHRyYW5zYWN0aW9uYWwuIFRoaXMg aXMgdGhlIHNhbWUgYXMKKyAgIHJlZ3VsYXIgdmFyaWFibGVzIGluIHByb2NlZHVyYWwgbGFuZ3Vh Z2VzLgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgcmV0 cmlldmVkIGJ5IHRoZSA8Y29tbWFuZD5TRUxFQ1Q8L2NvbW1hbmQ+CisgICBjb21tYW5kLiAgVGhl aXIgdmFsdWUgaXMgc2V0IHdpdGggdGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4K KyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgU2Vzc2lvbiB2YXJpYWJsZXMgY2Fubm90IGJlIHVz ZWQgaW4gdmlld3Mgb3IgaW4gU1FMIGZ1bmN0aW9ucyB1c2luZworICAgU1FMLWNvbmZvcm1pbmcg c3R5bGUgc3ludGF4LgorICA8L3BhcmE+CisKKyAgPG5vdGU+CisgICA8cGFyYT4KKyAgICBTZXNz aW9uIHZhcmlhYmxlcyBjYW4gYmUgPHF1b3RlPnNoYWRvd2VkPC9xdW90ZT4gYnkgb3RoZXIgaWRl bnRpZmllcnMuCisgICAgRm9yIGRldGFpbHMsIHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtc2Vzc2lv bi12YXJpYWJsZXMiLz4uCisgICA8L3BhcmE+CisgIDwvbm90ZT4KKyA8L3JlZnNlY3QxPgorCisg PHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxlbGlz dD4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLW5hbWUiPgorICAg IDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT48 L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIG9mIHRo ZSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwv dmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUt ZGF0YV90eXBlIj4KKyAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0 YV90eXBlPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4K KyAgICAgIFRoZSBuYW1lLCBvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQsIG9mIHRoZSBkYXRh IHR5cGUgb2YgdGhlIHNlc3Npb24KKyAgICAgIHZhcmlhYmxlLiBPbmx5IGJ1aWxkaW4gc2NhbGFy IGRhdGEgdHlwZXMgYXJlIGFsbG93ZWQuIEFycmF5cyBvciBjb21wb3NpdGUKKyAgICAgIHR5cGVz IGFyZSBub3QgYWxsb3dlZC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zh cmxpc3RlbnRyeT4KKworICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNl Y3QxPgorICA8dGl0bGU+Tm90ZXM8L3RpdGxlPgorCisgIDxwYXJhPgorICAgVXNlIHRoZSA8Y29t bWFuZD5EUk9QIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIHRvIHJlbW92ZSBhIHNlc3Npb24K KyAgIHZhcmlhYmxlLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAg PHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIENyZWF0ZSBhbiBkYXRlIHNl c3Npb24gdmFyaWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+ CitDUkVBVEUgVEVNUE9SQVJZIFZBUklBQkxFIHZhcjEgQVMgZGF0ZTsKKzwvcHJvZ3JhbWxpc3Rp bmc+CisgIDwvcGFyYT4KKworIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5D b21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5DUkVBVEUg VkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQgaXMgYQorICAgPHByb2R1Y3RuYW1lPlBvc3RncmVT UUw8L3Byb2R1Y3RuYW1lPiBleHRlbnNpb24uCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisg PHJlZnNlY3QxPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5 cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUi Lz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKzwvcmVmZW50cnk+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwLi5lODUxN2E3ODIwMAotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCkBAIC0wLDAgKzEsODQgQEAKKzwhLS0KK2RvYy9zcmMv c2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0t PgorCis8cmVmZW50cnkgaWQ9InNxbC1kcm9wdmFyaWFibGUiPgorIDxpbmRleHRlcm0gem9uZT0i c3FsLWRyb3B2YXJpYWJsZSI+CisgIDxwcmltYXJ5PkRST1AgVkFSSUFCTEU8L3ByaW1hcnk+Cisg PC9pbmRleHRlcm0+CisKKyA8aW5kZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNzaW9uIHZhcmlhYmxl PC9wcmltYXJ5PgorICA8c2Vjb25kYXJ5PnJlbW92aW5nPC9zZWNvbmRhcnk+CisgPC9pbmRleHRl cm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+RFJPUCBWQVJJQUJMRTwvcmVmZW50 cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwg LSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVm bmFtZWRpdj4KKyAgPHJlZm5hbWU+RFJPUCBWQVJJQUJMRTwvcmVmbmFtZT4KKyAgPHJlZnB1cnBv c2U+cmVtb3ZlIGEgc2Vzc2lvbiB2YXJpYWJsZTwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+ CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitEUk9QIFZBUklBQkxFIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KKzwvc3lub3BzaXM+Cisg PC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90 aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkRST1AgVkFSSUFCTEU8L2NvbW1hbmQ+IHJl bW92ZXMgYSBzZXNzaW9uIHZhcmlhYmxlLgorICAgQSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBvbmx5 IGJlIHJlbW92ZWQgYnkgaXRzIG93bmVyIG9yIGEgc3VwZXJ1c2VyLgorICA8L3BhcmE+CisgPC9y ZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorICA8 dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRl bT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgbmFtZSBvZiBhIHNlc3Npb24gdmFyaWFibGUuCisg ICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisgIDwvdmFy aWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxl czwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUbyByZW1vdmUgdGhlIHNlc3Npb24gdmFyaWFibGUg PGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD46CisKKzxwcm9ncmFtbGlzdGluZz4KK0RST1AgVkFSSUFC TEUgdmFyMTsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVm c2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRo ZSA8Y29tbWFuZD5EUk9QIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGlzIGEKKyAgIDxwcm9k dWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgorICA8L3BhcmE+Cisg PC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKwor ICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJz cWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2Vj dDE+CisKKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNn bWwgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKaW5kZXggMmNmMDJjMzdiMTcuLmMwM2U3 NjkyYzdhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCkBAIC0xMjcsNiArMTI3LDcgQEAKICAgICZjcmVhdGVU eXBlOwogICAgJmNyZWF0ZVVzZXI7CiAgICAmY3JlYXRlVXNlck1hcHBpbmc7CisgICAmY3JlYXRl VmFyaWFibGU7CiAgICAmY3JlYXRlVmlldzsKICAgICZkZWFsbG9jYXRlOwogICAgJmRlY2xhcmU7 CkBAIC0xNzUsNiArMTc2LDcgQEAKICAgICZkcm9wVHlwZTsKICAgICZkcm9wVXNlcjsKICAgICZk cm9wVXNlck1hcHBpbmc7CisgICAmZHJvcFZhcmlhYmxlOwogICAgJmRyb3BWaWV3OwogICAgJmVu ZDsKICAgICZleGVjdXRlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZp bGUgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQppbmRleCA2NGNiNjI3ODQwOS4uZDQy ZWQ4OTUyYTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCisrKyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL01ha2VmaWxlCkBAIC01NCw2ICs1NCw3IEBAIE9CSlMgPSBc CiAJc2VjbGFiZWwubyBcCiAJc2VxdWVuY2UubyBcCiAJc2VxdWVuY2VfeGxvZy5vIFwKKwlzZXNz aW9uX3ZhcmlhYmxlLm8gXAogCXN0YXRzY21kcy5vIFwKIAlzdWJzY3JpcHRpb25jbWRzLm8gXAog CXRhYmxlY21kcy5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRz LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCmluZGV4IGNlYjlhMjI5YjYzLi45 NTI0Zjg2Nzg1NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21kcy5jCkBAIC0yMiw2ICsyMiw3IEBACiAj aW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3By b2MuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKKyNpbmNsdWRlICJjb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicGFy c2VyL3BhcnNlX3R5cGUuaCIKICNpbmNsdWRlICJ1dGlscy9hY2wuaCIKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVz b24uYnVpbGQKaW5kZXggNWZjMzU4MjZiMWMuLjFlZWIxOGZkOTYwIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9t ZXNvbi5idWlsZApAQCAtNDIsNiArNDIsNyBAQCBiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAg ICdzZWNsYWJlbC5jJywKICAgJ3NlcXVlbmNlLmMnLAogICAnc2VxdWVuY2VfeGxvZy5jJywKKyAg J3Nlc3Npb25fdmFyaWFibGUuYycsCiAgICdzdGF0c2NtZHMuYycsCiAgICdzdWJzY3JpcHRpb25j bWRzLmMnLAogICAndGFibGVjbWRzLmMnLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42NTA1ZDU1NmE3 OAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFi bGUuYwpAQCAtMCwwICsxLDIzOCBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogc2Vzc2lv bl92YXJpYWJsZS5jCisgKgkgIHNlc3Npb24gdmFyaWFibGUgY3JlYXRpb24vbWFuaXB1bGF0aW9u IGNvbW1hbmRzCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjUsIFBvc3Rn cmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp IDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqCisg KiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2luY2x1ZGUgInBvc3RncmVzLmgi CisKKyNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9w Z19sYW5ndWFnZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgorI2luY2x1ZGUgImNh dGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIK KyNpbmNsdWRlICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2VfdHlwZS5oIgor I2luY2x1ZGUgInN0b3JhZ2UvcHJvYy5oIgorI2luY2x1ZGUgInV0aWxzL2FjbC5oIgorI2luY2x1 ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvZGF0dW0uaCIKKyNpbmNsdWRl ICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgorI2luY2x1 ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKKy8qCisgKiBUaGUgc2Vzc2lvbiB2YXJpYWJsZXMgYXJl IHN0b3JlZCBpbiB0aGUgYmFja2VuZCdzIHByaXZhdGUgbWVtb3J5IChkYXRhLAorICogbWV0YWRh dGEpIGluIHRoZSBkZWRpY2F0ZWQgbWVtb3J5IGNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4 dCBpbiBiaW5hcnkKKyAqIGZvcm1hdC4gVGhleSBhcmUgc3RvcmVkIGluIHRoZSAic2Vzc2lvbnZh cnMiIGhhc2ggdGFibGUsIHdob3NlIGtleSBpcyB0aGUKKyAqIG5hbWUgb2YgdGhlIHZhcmlhYmxl LgorICoKKyAqIE9ubHkgb3duZXIgKGNyZWF0b3IpIGNhbiBhY2Nlc3MgdGhlIHNlc3Npb24gdmFy aWFibGVzLiBCZWNhdXNlIHRoZXJlIGlzCisgKiBub3QgY2F0YWxvZyBzdXBwb3J0LCB0aGVyZSBp cyBub3QgcG9zc2liaWxpdHkgdG8gdHJhY2sgZGVwZW5kZWNpZXMsIGFuZAorICogdGhlbiBvbmx5 IGJ1aWxkaW4gdHlwZXMuCisgKi8KK3R5cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKK3sKKwlO YW1lRGF0YQl2YXJuYW1lOworCisJT2lkCQkJdmFyb3duZXI7CisJT2lkCQkJdmFydHlwZTsKKwlp bnQzMgkJdmFydHlwbW9kOworCU9pZAkJCXZhcmNvbGxhdGlvbjsKKworCWJvb2wJCWlzbnVsbDsK KwlEYXR1bQkJdmFsdWU7CisKKwlpbnQxNgkJdHlwbGVuOworCWJvb2wJCXR5cGJ5dmFsOworfSBT VmFyaWFibGVEYXRhOworCit0eXBlZGVmIFNWYXJpYWJsZURhdGEgKlNWYXJpYWJsZTsKKworc3Rh dGljIEhUQUIgKnNlc3Npb252YXJzID0gTlVMTDsJLyogaGFzaCB0YWJsZSBmb3Igc2Vzc2lvbiB2 YXJpYWJsZXMgKi8KKworc3RhdGljIE1lbW9yeUNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4 dCA9IE5VTEw7CisKKy8qCisgKiBDcmVhdGUgdGhlIGhhc2ggdGFibGUgZm9yIHN0b3Jpbmcgc2Vz c2lvbiB2YXJpYWJsZXMuCisgKi8KK3N0YXRpYyB2b2lkCitjcmVhdGVfc2Vzc2lvbnZhcnNfaGFz aHRhYmxlcyh2b2lkKQoreworCUhBU0hDVEwJCXZhcnNfY3RsOworCisJQXNzZXJ0KCFzZXNzaW9u dmFycyk7CisKKwlpZiAoIVNWYXJpYWJsZU1lbW9yeUNvbnRleHQpCisJeworCQkvKiB3ZSBuZWVk IG91ciBvd24gbG9uZy1saXZlZCBtZW1vcnkgY29udGV4dCAqLworCQlTVmFyaWFibGVNZW1vcnlD b250ZXh0ID0KKwkJCUFsbG9jU2V0Q29udGV4dENyZWF0ZShUb3BNZW1vcnlDb250ZXh0LAorCQkJ CQkJCQkgICJzZXNzaW9uIHZhcmlhYmxlcyIsCisJCQkJCQkJCSAgQUxMT0NTRVRfU1RBUlRfU01B TExfU0laRVMpOworCX0KKworCXZhcnNfY3RsLmtleXNpemUgPSBOQU1FREFUQUxFTjsKKwl2YXJz X2N0bC5lbnRyeXNpemUgPSBzaXplb2YoU1ZhcmlhYmxlRGF0YSk7CisJdmFyc19jdGwuaGN4dCA9 IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQ7CisKKwlzZXNzaW9udmFycyA9IGhhc2hfY3JlYXRlKCJT ZXNzaW9uIHZhcmlhYmxlcyIsIDY0LCAmdmFyc19jdGwsCisJCQkJCQkJICBIQVNIX0VMRU0gfCBI QVNIX1NUUklOR1MgfCBIQVNIX0NPTlRFWFQpOworfQorCisvKgorICogUmV0dXJucyBlbnRyeSBv ZiBzZXNzaW9uIHZhcmlhYmxlIHNwZWNpZmllZCBieSBuYW1lCisgKi8KK3N0YXRpYyBTVmFyaWFi bGUKK3NlYXJjaF92YXJpYWJsZShjaGFyICp2YXJuYW1lKQoreworCVNWYXJpYWJsZQlzdmFyOwor CisJaWYgKCFzZXNzaW9udmFycykKKwkJY3JlYXRlX3Nlc3Npb252YXJzX2hhc2h0YWJsZXMoKTsK KworCXN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywgdmFybmFtZSwK KwkJCQkJCQkJICAgSEFTSF9GSU5ELCBOVUxMKTsKKworCWlmICghc3ZhcikKKwkJZXJlcG9ydChF UlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJt c2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGRvZXNuJ3QgZXhpc3QiLAorCQkJCQkJdmFybmFt ZSkpKTsKKworCXJldHVybiBzdmFyOworfQorCisvKgorICogQ3JlYXRlcyBhIG5ldyB2YXJpYWJs ZSAtIGRvZXMgbmV3IGVudHJ5IGluIHNlc3Npb252YXJzCisgKgorICogVXNlZCBieSBDUkVBVEUg VkFSSUFCTEUgY29tbWFuZAorICovCit2b2lkCitDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpw c3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQoreworCU9pZAkJCXR5cGVpZDsKKwlp bnQzMgkJdHlwbW9kOworCU9pZAkJCXR5cGNvbGxhdGlvbjsKKwlPaWQJCQl2YXJvd25lciA9IEdl dFVzZXJJZCgpOworCVNWYXJpYWJsZQlzdmFyOworCWJvb2wJCWZvdW5kOworCUhlYXBUdXBsZQlw cm9jdHVwOworCUZvcm1fcGdfcHJvYyBwcm9jOworCWludDE2CQl0eXBsZW47CisJYm9vbAkJdHlw Ynl2YWw7CisJT2lkCQkJdHlwaW5wdXQ7CisJT2lkCQkJdHlwaW9wYXJhbTsKKwlBY2xSZXN1bHQJ YWNscmVzdWx0OworCisJLyoKKwkgKiBDdXJyZW50IGltcGxlbWVudGF0aW9uIGlzIG5vdCBjYXRh bG9nIGJhc2VkLCBidXQgd2UgZXhwZWN0IGNhdGFsb2cKKwkgKiBiYXNlZCBpbXBsZW1lbnRhdGlv biBmb3IgZnV0dXJlLCBzbyB3ZSBmb3JjZSBzYW1lIGxpbWl0cy4KKwkgKi8KKwlQcmV2ZW50Q29t bWFuZElmUmVhZE9ubHkoIkNSRUFURSBWQVJJQUJMRSIpOworCVByZXZlbnRDb21tYW5kSWZQYXJh bGxlbE1vZGUoIkNSRUFURSBWQVJJQUJMRSIpOworCVByZXZlbnRDb21tYW5kRHVyaW5nUmVjb3Zl cnkoIkNSRUFURSBWQVJJQUJMRSIpOworCisJdHlwZW5hbWVUeXBlSWRBbmRNb2QocHN0YXRlLCBz dG10LT50eXBlTmFtZSwgJnR5cGVpZCwgJnR5cG1vZCk7CisKKwlpZiAoZ2V0X3R5cHR5cGUodHlw ZWlkKSAhPSBUWVBUWVBFX0JBU0UpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJS Q09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCisJCQkJIGVycm1zZygiJXMgaXMgbm90IGEgYmFzZSB0 eXBlIiwKKwkJCQkJCWZvcm1hdF90eXBlX2JlKHR5cGVpZCkpKSk7CisKKwlpZiAoT2lkSXNWYWxp ZChnZXRfZWxlbWVudF90eXBlKHR5cGVpZCkpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJj b2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCSBlcnJtc2coIiVzIHR5cGUgaXMg YW4gYXJyYXkiLAorCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwZWlkKSkpKTsKKworCWFjbHJlc3Vs dCA9IG9iamVjdF9hY2xjaGVjayhUeXBlUmVsYXRpb25JZCwgdHlwZWlkLCBHZXRVc2VySWQoKSwg QUNMX1VTQUdFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQlhY2xjaGVja19l cnJvcl90eXBlKGFjbHJlc3VsdCwgdHlwZWlkKTsKKworCS8qIGFsbG93IG9ubHkgYnVpbGRpbiB0 eXBlcyAqLworCWdldFR5cGVJbnB1dEluZm8odHlwZWlkLCAmdHlwaW5wdXQsICZ0eXBpb3BhcmFt KTsKKworCXByb2N0dXAgPSBTZWFyY2hTeXNDYWNoZTEoUFJPQ09JRCwgT2JqZWN0SWRHZXREYXR1 bSh0eXBpbnB1dCkpOworCWlmICghSGVhcFR1cGxlSXNWYWxpZChwcm9jdHVwKSkKKwkJZWxvZyhF UlJPUiwgImNhbm5vdCB0byBmaW5kIGZ1bmN0aW9uIG9pZCAlZCIsIHR5cGlucHV0KTsKKworCXBy b2MgPSAoRm9ybV9wZ19wcm9jKSBHRVRTVFJVQ1QocHJvY3R1cCk7CisJaWYgKHByb2MtPnByb2xh bmcgIT0gSU5URVJOQUxsYW5ndWFnZUlkKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCSBlcnJtc2coIiVzIGlzIG5vdCBhIGlu dGVybmFsIHR5cGUiLAorCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwZWlkKSkpKTsKKworCVJlbGVh c2VTeXNDYWNoZShwcm9jdHVwKTsKKworCWdldF90eXBsZW5ieXZhbCh0eXBlaWQsICZ0eXBsZW4s ICZ0eXBieXZhbCk7CisJdHlwY29sbGF0aW9uID0gZ2V0X3R5cGNvbGxhdGlvbih0eXBlaWQpOwor CisJaWYgKCFzZXNzaW9udmFycykKKwkJY3JlYXRlX3Nlc3Npb252YXJzX2hhc2h0YWJsZXMoKTsK KworCXN2YXIgPSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywgc3RtdC0+bmFtZSwKKwkJCQkJICAg SEFTSF9FTlRFUiwgJmZvdW5kKTsKKworCWlmIChmb3VuZCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJ CQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJCSBlcnJtc2coInNlc3Np b24gdmFyaWFibGUgXCIlc1wiIGFscmVhZHkgZXhpc3RzIiwKKwkJCQkJCXN0bXQtPm5hbWUpKSk7 CisKKwluYW1lc3RyY3B5KCZzdmFyLT52YXJuYW1lLCBzdG10LT5uYW1lKTsKKwlzdmFyLT52YXJ0 eXBlID0gdHlwZWlkOworCXN2YXItPnZhcnR5cG1vZCA9IHR5cG1vZDsKKwlzdmFyLT52YXJjb2xs YXRpb24gPSB0eXBjb2xsYXRpb247CisJc3Zhci0+dmFyb3duZXIgPSB2YXJvd25lcjsKKwlzdmFy LT50eXBsZW4gPSB0eXBsZW47CisJc3Zhci0+dHlwYnl2YWwgPSB0eXBieXZhbDsKKworCXN2YXIt PnZhbHVlID0gKERhdHVtKSAwOworCXN2YXItPmlzbnVsbCA9IHRydWU7Cit9CisKKy8qCisgKiBE cm9wIHZhcmlhYmxlIGJ5IG5hbWUKKyAqLwordm9pZAorRHJvcFZhcmlhYmxlQnlOYW1lKGNoYXIg KnZhcm5hbWUpCit7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwkvKgorCSAqIEN1cnJlbnQgaW1wbGVt ZW50YXRpb24gaXMgbm90IGNhdGFsb2cgYmFzZWQsIGJ1dCB3ZSBleHBlY3QgY2F0YWxvZworCSAq IGJhc2VkIGltcGxlbWVudGF0aW9uIGZvciBmdXR1cmUsIHNvIHdlIGZvcmNlIHNhbWUgbGltaXRz LgorCSAqLworCVByZXZlbnRDb21tYW5kSWZSZWFkT25seSgiRFJPUCBWQVJJQUJMRSIpOworCVBy ZXZlbnRDb21tYW5kSWZQYXJhbGxlbE1vZGUoIkRST1AgVkFSSUFCTEUiKTsKKwlQcmV2ZW50Q29t bWFuZER1cmluZ1JlY292ZXJ5KCJEUk9QIFZBUklBQkxFIik7CisKKwlzdmFyID0gc2VhcmNoX3Zh cmlhYmxlKHZhcm5hbWUpOworCisJLyogb25seSBvd25lciBjYW4gZ2V0IGNvbnRlbnQgb2YgdmFy aWFibGUgKi8KKwlpZiAoc3Zhci0+dmFyb3duZXIgIT0gR2V0VXNlcklkKCkgJiYgIXN1cGVydXNl cigpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5U X1BSSVZJTEVHRSksCisJCQkJIGVycm1zZygibXVzdCBiZSBvd25lciBvZiBzZXNzaW9uIHZhcmlh YmxlICVzIiwKKwkJCQkJCXZhcm5hbWUpKSk7CisKKwlpZiAoIXN2YXItPnR5cGJ5dmFsICYmICFz dmFyLT5pc251bGwpCisJCXBmcmVlKERhdHVtR2V0UG9pbnRlcihzdmFyLT52YWx1ZSkpOworCisJ aWYgKGhhc2hfc2VhcmNoKHNlc3Npb252YXJzLAorCQkJCQkgICB2YXJuYW1lLAorCQkJCQkgICBI QVNIX1JFTU9WRSwKKwkJCQkJICAgTlVMTCkgPT0gTlVMTCkKKwkJZWxvZyhFUlJPUiwgImhhc2gg dGFibGUgY29ycnVwdGVkIik7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBjM2EwYTM1NGE5Yy4uMGE1ZWZk NzMzZGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjkwLDEzICsyOTAsMTMgQEAgc3RhdGljIE5vZGUgKm1h a2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUg KnF1ZXJ5KTsKIAkJQ29uc3RyYWludHNTZXRTdG10IENvcHlTdG10IENyZWF0ZUFzU3RtdCBDcmVh dGVDYXN0U3RtdAogCQlDcmVhdGVEb21haW5TdG10IENyZWF0ZUV4dGVuc2lvblN0bXQgQ3JlYXRl R3JvdXBTdG10IENyZWF0ZU9wQ2xhc3NTdG10CiAJCUNyZWF0ZU9wRmFtaWx5U3RtdCBBbHRlck9w RmFtaWx5U3RtdCBDcmVhdGVQTGFuZ1N0bXQKLQkJQ3JlYXRlU2NoZW1hU3RtdCBDcmVhdGVTZXFT dG10IENyZWF0ZVN0bXQgQ3JlYXRlU3RhdHNTdG10IENyZWF0ZVRhYmxlU3BhY2VTdG10Ci0JCUNy ZWF0ZUZkd1N0bXQgQ3JlYXRlRm9yZWlnblNlcnZlclN0bXQgQ3JlYXRlRm9yZWlnblRhYmxlU3Rt dAorCQlDcmVhdGVTY2hlbWFTdG10IENyZWF0ZVNlcVN0bXQgQ3JlYXRlU2Vzc2lvblZhclN0bXQg Q3JlYXRlU3RtdCBDcmVhdGVTdGF0c1N0bXQKKwkJQ3JlYXRlVGFibGVTcGFjZVN0bXQgQ3JlYXRl RmR3U3RtdCBDcmVhdGVGb3JlaWduU2VydmVyU3RtdCBDcmVhdGVGb3JlaWduVGFibGVTdG10CiAJ CUNyZWF0ZUFzc2VydGlvblN0bXQgQ3JlYXRlVHJhbnNmb3JtU3RtdCBDcmVhdGVUcmlnU3RtdCBD cmVhdGVFdmVudFRyaWdTdG10CiAJCUNyZWF0ZVVzZXJTdG10IENyZWF0ZVVzZXJNYXBwaW5nU3Rt dCBDcmVhdGVSb2xlU3RtdCBDcmVhdGVQb2xpY3lTdG10CiAJCUNyZWF0ZWRiU3RtdCBEZWNsYXJl Q3Vyc29yU3RtdCBEZWZpbmVTdG10IERlbGV0ZVN0bXQgRGlzY2FyZFN0bXQgRG9TdG10CiAJCURy b3BPcENsYXNzU3RtdCBEcm9wT3BGYW1pbHlTdG10IERyb3BTdG10Ci0JCURyb3BDYXN0U3RtdCBE cm9wUm9sZVN0bXQKKwkJRHJvcENhc3RTdG10IERyb3BSb2xlU3RtdCBEcm9wU2Vzc2lvblZhclN0 bXQKIAkJRHJvcGRiU3RtdCBEcm9wVGFibGVTcGFjZVN0bXQKIAkJRHJvcFRyYW5zZm9ybVN0bXQK IAkJRHJvcFVzZXJNYXBwaW5nU3RtdCBFeHBsYWluU3RtdCBGZXRjaFN0bXQKQEAgLTc4OSw4ICs3 ODksOCBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFt ZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCVVFU0NBUEUgVU5CT1VOREVEIFVOQ09O RElUSU9OQUwgVU5DT01NSVRURUQgVU5FTkNSWVBURUQgVU5JT04gVU5JUVVFIFVOS05PV04KIAlV TkxJU1RFTiBVTkxPR0dFRCBVTlRJTCBVUERBVEUgVVNFUiBVU0lORwogCi0JVkFDVVVNIFZBTElE IFZBTElEQVRFIFZBTElEQVRPUiBWQUxVRV9QIFZBTFVFUyBWQVJDSEFSIFZBUklBRElDIFZBUllJ TkcKLQlWRVJCT1NFIFZFUlNJT05fUCBWSUVXIFZJRVdTIFZJUlRVQUwgVk9MQVRJTEUKKwlWQUNV VU0gVkFMSUQgVkFMSURBVEUgVkFMSURBVE9SIFZBTFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFE SUMgVkFSSUFCTEUKKwlWQVJZSU5HIFZFUkJPU0UgVkVSU0lPTl9QIFZJRVcgVklFV1MgVklSVFVB TCBWT0xBVElMRQogCiAJV0FJVCBXSEVOIFdIRVJFIFdISVRFU1BBQ0VfUCBXSU5ET1cgV0lUSCBX SVRISU4gV0lUSE9VVCBXT1JLIFdSQVBQRVIgV1JJVEUKIApAQCAtMTA1Niw2ICsxMDU2LDcgQEAg c3RtdDoKIAkJCXwgQ3JlYXRlUG9saWN5U3RtdAogCQkJfCBDcmVhdGVQTGFuZ1N0bXQKIAkJCXwg Q3JlYXRlU2NoZW1hU3RtdAorCQkJfCBDcmVhdGVTZXNzaW9uVmFyU3RtdAogCQkJfCBDcmVhdGVT ZXFTdG10CiAJCQl8IENyZWF0ZVN0bXQKIAkJCXwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdApAQCAt MTA4Myw2ICsxMDg0LDcgQEAgc3RtdDoKIAkJCXwgRHJvcFRhYmxlU3BhY2VTdG10CiAJCQl8IERy b3BUcmFuc2Zvcm1TdG10CiAJCQl8IERyb3BSb2xlU3RtdAorCQkJfCBEcm9wU2Vzc2lvblZhclN0 bXQKIAkJCXwgRHJvcFVzZXJNYXBwaW5nU3RtdAogCQkJfCBEcm9wZGJTdG10CiAJCQl8IEV4ZWN1 dGVTdG10CkBAIC01MzM2LDYgKzUzMzgsNDcgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToK IAkJCQl9CiAJCTsKIAorLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICoJCVFVRVJZIDoKKyAq CQkJCUNSRUFURSB7IFRFTVAgfCBURU1QT1JBUlkgfSBWQVJJQUJMRSB2YXJuYW1lIFtBU10gdHlw ZQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKworQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJ CQlDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBDb2xJZCBvcHRfYXMgVHlwZW5hbWUKKwkJCQl7CisJ CQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0 bXQpOworCisJCQkJCWlmICgkMiAhPSBSRUxQRVJTSVNURU5DRV9URU1QKQorCQkJCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCks CisJCQkJCQkJIGVycm1zZygib25seSB0ZW1wb3JhbCBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgc3Vw cG9ydGVkIiksCisJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihAMikpKTsKKworCQkJCQluLT5u YW1lID0gJDQ7CisJCQkJCW4tPnR5cGVOYW1lID0gJDY7CisJCQkJCSQkID0gKE5vZGUgKikgbjsK KwkJCQl9CisJCTsKKworLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisgKgorICoJCVFVRVJZIDoKKyAq CQkJCURST1AgVkFSSUFCTEUgdmFybmFtZQorICoKKyAqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KKwor RHJvcFNlc3Npb25WYXJTdG10OgorCQkJRFJPUCBWQVJJQUJMRSBDb2xJZAorCQkJCXsKKwkJCQkJ RHJvcFNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoRHJvcFNlc3Npb25WYXJTdG10KTsKKwor CQkJCQluLT5uYW1lID0gJDM7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9CisJCTsKKwog LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgRVhURU5TSU9OIG5hbWUgVVBEQVRF IFsgVE8gdmVyc2lvbiBdCkBAIC0xODE1NCw2ICsxODE5Nyw3IEBAIHVucmVzZXJ2ZWRfa2V5d29y ZDoKIAkJCXwgVkFMSURBVEUKIAkJCXwgVkFMSURBVE9SCiAJCQl8IFZBTFVFX1AKKwkJCXwgVkFS SUFCTEUKIAkJCXwgVkFSWUlORwogCQkJfCBWRVJTSU9OX1AKIAkJCXwgVklFVwpAQCAtMTg4MTIs NiArMTg4NTYsNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IFZBTFVFX1AKIAkJCXwgVkFM VUVTCiAJCQl8IFZBUkNIQVIKKwkJCXwgVkFSSUFCTEUKIAkJCXwgVkFSSUFESUMKIAkJCXwgVkVS Qk9TRQogCQkJfCBWRVJTSU9OX1AKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0 eS5jIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKaW5kZXggZDE4YTNhNjBhNDYuLjdkYzlj MGE2YzgwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMv YmFja2VuZC90Y29wL3V0aWxpdHkuYwpAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgImNvbW1h bmRzL3NjaGVtYWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZWNsYWJlbC5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL3NlcXVlbmNlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuaCIKICNpbmNsdWRl ICJjb21tYW5kcy90YWJsZWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNlLmgi CkBAIC0xODMsNiArMTg0LDcgQEAgQ2xhc3NpZnlVdGlsaXR5Q29tbWFuZEFzUmVhZE9ubHkoTm9k ZSAqcGFyc2V0cmVlKQogCQljYXNlIFRfQ3JlYXRlUmFuZ2VTdG10OgogCQljYXNlIFRfQ3JlYXRl Um9sZVN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTY2hlbWFTdG10OgorCQljYXNlIFRfQ3JlYXRlU2Vz c2lvblZhclN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTZXFTdG10OgogCQljYXNlIFRfQ3JlYXRlU3Rh dHNTdG10OgogCQljYXNlIFRfQ3JlYXRlU3RtdDoKQEAgLTIwMSw2ICsyMDMsNyBAQCBDbGFzc2lm eVV0aWxpdHlDb21tYW5kQXNSZWFkT25seShOb2RlICpwYXJzZXRyZWUpCiAJCWNhc2UgVF9Ecm9w VGFibGVTcGFjZVN0bXQ6CiAJCWNhc2UgVF9Ecm9wVXNlck1hcHBpbmdTdG10OgogCQljYXNlIFRf RHJvcGRiU3RtdDoKKwkJY2FzZSBUX0Ryb3BTZXNzaW9uVmFyU3RtdDoKIAkJY2FzZSBUX0dyYW50 Um9sZVN0bXQ6CiAJCWNhc2UgVF9HcmFudFN0bXQ6CiAJCWNhc2UgVF9JbXBvcnRGb3JlaWduU2No ZW1hU3RtdDoKQEAgLTEwNjMsNiArMTA2NiwxNSBAQCBzdGFuZGFyZF9Qcm9jZXNzVXRpbGl0eShQ bGFubmVkU3RtdCAqcHN0bXQsCiAJCQl9CiAJCQlicmVhazsKIAorCQljYXNlIFRfQ3JlYXRlU2Vz c2lvblZhclN0bXQ6CisJCQlDcmVhdGVWYXJpYWJsZShwc3RhdGUsIChDcmVhdGVTZXNzaW9uVmFy U3RtdCAqKSBwYXJzZXRyZWUpOworCQkJYnJlYWs7CisKKwkJY2FzZSBUX0Ryb3BTZXNzaW9uVmFy U3RtdDoKKwkJCS8qIE5vIGV2ZW50IHRyaWdnZXJzIGZvciBjYXRhbG9nIGxlc3Mgc2Vzc2lvbiB2 YXJpYWJsZXMgKi8KKwkJCURyb3BWYXJpYWJsZUJ5TmFtZSgoKERyb3BTZXNzaW9uVmFyU3RtdCAq KSBwYXJzZXRyZWUpLT5uYW1lKTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQkvKiBBbGwg b3RoZXIgc3RhdGVtZW50IHR5cGVzIGhhdmUgZXZlbnQgdHJpZ2dlciBzdXBwb3J0ICovCiAJCQlQ cm9jZXNzVXRpbGl0eVNsb3cocHN0YXRlLCBwc3RtdCwgcXVlcnlTdHJpbmcsCkBAIC0xMzg4LDYg KzE0MDAsNyBAQCBQcm9jZXNzVXRpbGl0eVNsb3coUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCX0K IAkJCQlicmVhazsKIAorCiAJCQkJLyoKIAkJCQkgKiAqKioqKioqKioqKioqIG9iamVjdCBjcmVh dGlvbiAvIGRlc3RydWN0aW9uICoqKioqKioqKioqKioqCiAJCQkJICovCkBAIC0zMjM1LDYgKzMy NDgsMTQgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQl9CiAJCQlicmVh azsKIAorCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQl0YWcgPSBDTURUQUdfQ1JF QVRFX1ZBUklBQkxFOworCQkJYnJlYWs7CisKKwkJY2FzZSBUX0Ryb3BTZXNzaW9uVmFyU3RtdDoK KwkJCXRhZyA9IENNRFRBR19EUk9QX1ZBUklBQkxFOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoK IAkJCWVsb2coV0FSTklORywgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKIAkJCQkgKGlu dCkgbm9kZVRhZyhwYXJzZXRyZWUpKTsKQEAgLTM3NzMsNiArMzc5NCwxMSBAQCBHZXRDb21tYW5k TG9nTGV2ZWwoTm9kZSAqcGFyc2V0cmVlKQogCQkJfQogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX0Ny ZWF0ZVNlc3Npb25WYXJTdG10OgorCQljYXNlIFRfRHJvcFNlc3Npb25WYXJTdG10OgorCQkJbGV2 ID0gTE9HU1RNVF9EREw7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJZWxvZyhXQVJOSU5H LCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLAogCQkJCSAoaW50KSBub2RlVGFnKHBhcnNl dHJlZSkpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDIwZDdhNjVjNjE0Li4wMjJiOWRmNDA1 YSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9i aW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMTM2NCw2ICsxMzY0LDcgQEAgc3RhdGljIGNv bnN0IHBnc3FsX3RoaW5nX3Qgd29yZHNfYWZ0ZXJfY3JlYXRlW10gPSB7CiAJeyJVU0VSIiwgUXVl cnlfZm9yX2xpc3Rfb2Zfcm9sZXMsIE5VTEwsIE5VTEwsIEtleXdvcmRzX2Zvcl91c2VyX3RoaW5n fSwKIAl7IlVTRVIgTUFQUElORyBGT1IiLCBOVUxMLCBOVUxMLCBOVUxMfSwKIAl7IlZJRVciLCBO VUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2Zfdmlld3N9LAorCXsiVkFSSUFCTEUiLCBOVUxM LCBOVUxMLCBOVUxMLCBOVUxMLCBUSElOR19OT19DUkVBVEV9LAogCXtOVUxMfQkJCQkJCS8qIGVu ZCBvZiBsaXN0ICovCiB9OwogCkBAIC0zNzIzLDcgKzM3MjQsNyBAQCBtYXRjaF9wcmV2aW91c193 b3JkcyhpbnQgcGF0dGVybl9pZCwKIC8qIENSRUFURSBUQUJMRSAtLS0gaXMgYWxsb3dlZCBpbnNp ZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNlIFRhaWxNYXRjaGVzICovCiAJLyogQ29tcGxldGUgIkNS RUFURSBURU1QL1RFTVBPUkFSWSIgd2l0aCB0aGUgcG9zc2libGUgdGVtcCBvYmplY3RzICovCiAJ ZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJURU1QfFRFTVBPUkFSWSIpKQotCQlDT01Q TEVURV9XSVRIKCJTRVFVRU5DRSIsICJUQUJMRSIsICJWSUVXIik7CisJCUNPTVBMRVRFX1dJVEgo IlNFUVVFTkNFIiwgIlRBQkxFIiwgIlZBUklBQkxFIiwgIlZJRVciKTsKIAkvKiBDb21wbGV0ZSAi Q1JFQVRFIFVOTE9HR0VEIiB3aXRoIFRBQkxFIG9yIFNFUVVFTkNFICovCiAJZWxzZSBpZiAoVGFp bE1hdGNoZXMoIkNSRUFURSIsICJVTkxPR0dFRCIpKQogCQlDT01QTEVURV9XSVRIKCJUQUJMRSIs ICJTRVFVRU5DRSIpOwpAQCAtNDA3Niw2ICs0MDc3LDEzIEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRz KGludCBwYXR0ZXJuX2lkLAogCQkJQ09NUExFVEVfV0lUSCgiLCIsICIpIik7CiAJfQogCisvKiBD UkVBVEUgVkFSSUFCTEUgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiVEVNUHxURU1Q T1JBUlkiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkpCisJCUNPTVBMRVRFX1dJVEgoIkFTIik7CisJ ZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlZBUklBQkxFIiwgTWF0Y2hBbnksICJBUyIpKQorCQkvKiBD b21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+IHdpdGggQVMgdHlwZXMgKi8KKwkJQ09NUExF VEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfZGF0YXR5cGVzKTsKKwogLyog Q1JFQVRFIFZJRVcgLS0tIGlzIGFsbG93ZWQgaW5zaWRlIENSRUFURSBTQ0hFTUEsIHNvIHVzZSBU YWlsTWF0Y2hlcyAqLwogCS8qIENvbXBsZXRlIENSRUFURSBbIE9SIFJFUExBQ0UgXSBWSUVXIDxu YW1lPiB3aXRoIEFTIG9yIFdJVEggKi8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwg IlZJRVciLCBNYXRjaEFueSkgfHwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUu aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMWVkNDBkODdhMzgKLS0t IC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgK QEAgLTAsMCArMSwyNSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogc2Vzc2lvbnZhcmlh YmxlLmgKKyAqCSAgcHJvdG90eXBlcyBmb3Igc2Vzc2lvbnZhcmlhYmxlLmMuCisgKgorICoKKyAq IFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZl bG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9m IHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBzcmMvaW5jbHVkZS9jb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmgKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaWZu ZGVmIFNFU1NJT05WQVJJQUJMRV9ICisjZGVmaW5lIFNFU1NJT05WQVJJQUJMRV9ICisKKyNpbmNs dWRlICJjYXRhbG9nL29iamVjdGFkZHJlc3MuaCIKKyNpbmNsdWRlICJwYXJzZXIvcGFyc2Vfbm9k ZS5oIgorI2luY2x1ZGUgIm5vZGVzL3BhcnNlbm9kZXMuaCIKKworZXh0ZXJuIHZvaWQgQ3JlYXRl VmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCk7 CitleHRlcm4gdm9pZCBEcm9wVmFyaWFibGVCeU5hbWUoY2hhciAqdmFybmFtZSk7CisKKyNlbmRp ZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGQxNDI5NGE0ZWNlLi41NjdlNTk3MGU1MCAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMzU1NSw2ICszNTU1LDI5IEBAIHR5cGVkZWYgc3RydWN0 IEFsdGVyU3RhdHNTdG10CiAJYm9vbAkJbWlzc2luZ19vazsJCS8qIHNraXAgZXJyb3IgaWYgc3Rh dGlzdGljcyBvYmplY3QgaXMgbWlzc2luZyAqLwogfSBBbHRlclN0YXRzU3RtdDsKIAorCisvKiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgkJQ3JlYXRlIFZhcmlhYmxlIFN0YXRlbWVudAorICog LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBDcmVhdGVTZXNzaW9u VmFyU3RtdAoreworCU5vZGVUYWcJCXR5cGU7CisJY2hhcgkgICAqbmFtZTsJCS8qIHRoZSB2YXJp YWJsZSB0byBjcmVhdGUgKi8KKwlUeXBlTmFtZSAgICp0eXBlTmFtZTsJCS8qIHRoZSB0eXBlIG9m IHZhcmlhYmxlICovCit9IENyZWF0ZVNlc3Npb25WYXJTdG10OworCisvKiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgKgkJRFJPUCBWYXJpYWJsZSBTdGF0ZW1lbnQKKyAqIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgRHJvcFNlc3Npb25WYXJTdG10Cit7CisJTm9k ZVRhZwkJdHlwZTsKKwljaGFyCSAgICpuYW1lOworfSBEcm9wU2Vzc2lvblZhclN0bXQ7CisKKwog LyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJCUNyZWF0ZSBGdW5jdGlvbiBTdGF0ZW1lbnQK ICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNl ci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAppbmRleCA1ZDRmZTI3ZWY5 Ni4uOGIxZjJiZDNiNjggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAor KysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAgLTQ4OSw2ICs0ODksNyBAQCBQR19L RVlXT1JEKCJ2YWxpZGF0b3IiLCBWQUxJREFUT1IsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9M QUJFTCkKIFBHX0tFWVdPUkQoInZhbHVlIiwgVkFMVUVfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBC QVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFsdWVzIiwgVkFMVUVTLCBDT0xfTkFNRV9LRVlXT1JE LCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFyY2hhciIsIFZBUkNIQVIsIENPTF9OQU1FX0tF WVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJ2YXJpYWJsZSIsIFZBUklBQkxFLCBVTlJF U0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJpYWRpYyIsIFZBUklB RElDLCBSRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFyeWluZyIs IFZBUllJTkcsIFVOUkVTRVJWRURfS0VZV09SRCwgQVNfTEFCRUwpCiBQR19LRVlXT1JEKCJ2ZXJi b3NlIiwgVkVSQk9TRSwgVFlQRV9GVU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9j bWR0YWdsaXN0LmgKaW5kZXggYzQ2MDZkNjUwNDMuLjdlNTlkMGE1Mjc1IDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRh Z2xpc3QuaApAQCAtMTIzLDYgKzEyMyw3IEBAIFBHX0NNRFRBRyhDTURUQUdfQ1JFQVRFX1RSQU5T Rk9STSwgIkNSRUFURSBUUkFOU0ZPUk0iLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUco Q01EVEFHX0NSRUFURV9UUklHR0VSLCAiQ1JFQVRFIFRSSUdHRVIiLCB0cnVlLCBmYWxzZSwgZmFs c2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9UWVBFLCAiQ1JFQVRFIFRZUEUiLCB0cnVlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9VU0VSX01BUFBJTkcsICJDUkVB VEUgVVNFUiBNQVBQSU5HIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQorUEdfQ01EVEFHKENNRFRBR19D UkVBVEVfVkFSSUFCTEUsICJDUkVBVEUgVkFSSUFCTEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQ R19DTURUQUcoQ01EVEFHX0NSRUFURV9WSUVXLCAiQ1JFQVRFIFZJRVciLCB0cnVlLCBmYWxzZSwg ZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RFQUxMT0NBVEUsICJERUFMTE9DQVRFIiwgZmFsc2Us IGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfREVBTExPQ0FURV9BTEwsICJERUFMTE9D QVRFIEFMTCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCkBAIC0xNzUsNiArMTc2LDcgQEAgUEdfQ01E VEFHKENNRFRBR19EUk9QX1RSQU5TRk9STSwgIkRST1AgVFJBTlNGT1JNIiwgdHJ1ZSwgZmFsc2Us IGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX1RSSUdHRVIsICJEUk9QIFRSSUdHRVIiLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfVFlQRSwgIkRST1AgVFlQ RSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9VU0VSX01BUFBJ TkcsICJEUk9QIFVTRVIgTUFQUElORyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BHX0NNRFRBRyhD TURUQUdfRFJPUF9WQVJJQUJMRSwgIkRST1AgVkFSSUFCTEUiLCB0cnVlLCBmYWxzZSwgZmFsc2Up CiBQR19DTURUQUcoQ01EVEFHX0RST1BfVklFVywgIkRST1AgVklFVyIsIHRydWUsIGZhbHNlLCBm YWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRVhFQ1VURSwgIkVYRUNVVEUiLCBmYWxzZSwgZmFsc2Us IGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19FWFBMQUlOLCAiRVhQTEFJTiIsIGZhbHNlLCBmYWxz ZSwgZmFsc2UpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzX2RkbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzX2RkbC5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUz NGU3MDAyMmJjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlc19kZGwub3V0CkBAIC0wLDAgKzEsNDMgQEAKK1NFVCBsb2dfc3RhdGVt ZW50IFRPIGRkbDsKKy0tIHNob3VsZCB0byBmYWlsCitDUkVBVEUgVkFSSUFCTEUgeCBBUyBpbnQ7 CitFUlJPUjogIG9ubHkgdGVtcG9yYWwgc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHN1cHBvcnRlZAor LS0gc2hvdWxkIGJlIG9rCitDUkVBVEUgVEVNUE9SQVJZIFZBUklBQkxFIHggQVMgaW50OworLS0g c2hvdWxkIGZhaWwKK0NSRUFURSBURU1QT1JBUlkgVkFSSUFCTEUgeCBBUyBpbnQ7CitFUlJPUjog IHNlc3Npb24gdmFyaWFibGUgIngiIGFscmVhZHkgZXhpc3RzCistLSBzaG91bGQgZmFpbAorRFJP UCBWQVJJQUJMRSB5OworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJ5IiBkb2Vzbid0IGV4aXN0 CistLSBzaG91bGQgYmUgb2sKK0RST1AgVkFSSUFCTEUgeDsKK0NSRUFURSBUWVBFIHRlc3RfdHlw ZSBBUyAoeCBpbnQsIHkgaW50KTsKKy0tIHNob3VsZCBmYWlsCitDUkVBVEUgVkFSSUFCTEUgeCBB UyB0ZXN0X3R5cGU7CitFUlJPUjogIG9ubHkgdGVtcG9yYWwgc2Vzc2lvbiB2YXJpYWJsZXMgYXJl IHN1cHBvcnRlZAorRFJPUCBUWVBFIHRlc3RfdHlwZTsKKy0tIHNob3VsZCBmYWlsCitDUkVBVEUg VkFSSUFCTEUgeCBBUyBpbnRbXTsKK0VSUk9SOiAgb25seSB0ZW1wb3JhbCBzZXNzaW9uIHZhcmlh YmxlcyBhcmUgc3VwcG9ydGVkCitDUkVBVEUgRE9NQUlOIHRlc3RfZG9tYWluIEFTIGludDsKKy0t IHNob3VsZCBmYWlsCitDUkVBVEUgVkFSSUFCTEUgeCBBUyB0ZXN0X2RvbWFpbjsKK0VSUk9SOiAg b25seSB0ZW1wb3JhbCBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgc3VwcG9ydGVkCitEUk9QIERPTUFJ TiB0ZXN0X2RvbWFpbjsKK0NSRUFURSBST0xFIHJlZ3Jlc3Nfc2Vzc2lvbl92YXJpYWJsZV90ZXN0 X3JvbGVfMDE7CitDUkVBVEUgUk9MRSByZWdyZXNzX3Nlc3Npb25fdmFyaWFibGVfdGVzdF9yb2xl XzAyOworU0VUIFJPTEUgVE8gcmVncmVzc19zZXNzaW9uX3ZhcmlhYmxlX3Rlc3Rfcm9sZV8wMTsK K0NSRUFURSBURU1QIFZBUklBQkxFIHggQVMgaW50OworU0VUIFJPTEUgVE8gZGVmYXVsdDsKK1NF VCBST0xFIFRPIHJlZ3Jlc3Nfc2Vzc2lvbl92YXJpYWJsZV90ZXN0X3JvbGVfMDI7CistLSBzaG91 bGQgZmFpbAorRFJPUCBWQVJJQUJMRSB4OworRVJST1I6ICBtdXN0IGJlIG93bmVyIG9mIHNlc3Np b24gdmFyaWFibGUgeAorU0VUIFJPTEUgVE8gZGVmYXVsdDsKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nf c2Vzc2lvbl92YXJpYWJsZV90ZXN0X3JvbGVfMDE7CistLSBzaG91bGQgYmUgb2sKK0RST1AgVkFS SUFCTEUgeDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFJPTEUgcmVncmVzc19zZXNzaW9u X3ZhcmlhYmxlX3Rlc3Rfcm9sZV8wMTsKK0RST1AgUk9MRSByZWdyZXNzX3Nlc3Npb25fdmFyaWFi bGVfdGVzdF9yb2xlXzAyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9z Y2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggY2M2ZDc5 OWJjZWEuLjlkYTdjNmFiOTI4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVs X3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKQEAgLTEx NSw3ICsxMTUsNyBAQCB0ZXN0OiBqc29uIGpzb25iIGpzb25fZW5jb2RpbmcganNvbnBhdGgganNv bnBhdGhfZW5jb2RpbmcganNvbmJfanNvbnBhdGggc3FsanNvbgogIyBOQjogdGVtcC5zcWwgZG9l cyByZWNvbm5lY3RzIHdoaWNoIHRyYW5zaWVudGx5IHVzZXMgMiBjb25uZWN0aW9ucywKICMgc28g a2VlcCB0aGlzIHBhcmFsbGVsIGdyb3VwIHRvIGF0IG1vc3QgMTkgdGVzdHMKICMgLS0tLS0tLS0t LQotdGVzdDogcGxhbmNhY2hlIGxpbWl0IHBscGdzcWwgY29weTIgdGVtcCBkb21haW4gcmFuZ2Vm dW5jcyBwcmVwYXJlIGNvbnZlcnNpb24gdHJ1bmNhdGUgYWx0ZXJfdGFibGUgc2VxdWVuY2UgcG9s eW1vcnBoaXNtIHJvd3R5cGVzIHJldHVybmluZyBsYXJnZW9iamVjdCB3aXRoIHhtbAordGVzdDog cGxhbmNhY2hlIGxpbWl0IHBscGdzcWwgY29weTIgdGVtcCBkb21haW4gcmFuZ2VmdW5jcyBwcmVw YXJlIGNvbnZlcnNpb24gdHJ1bmNhdGUgYWx0ZXJfdGFibGUgc2VxdWVuY2UgcG9seW1vcnBoaXNt IHJvd3R5cGVzIHJldHVybmluZyBsYXJnZW9iamVjdCB3aXRoIHhtbCBzZXNzaW9uX3ZhcmlhYmxl c19kZGwKIAogIyAtLS0tLS0tLS0tCiAjIEFub3RoZXIgZ3JvdXAgb2YgcGFyYWxsZWwgdGVzdHMK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43N2FmOWRlMGQ3YwotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5zcWwK QEAgLTAsMCArMSw1NiBAQAorU0VUIGxvZ19zdGF0ZW1lbnQgVE8gZGRsOworCistLSBzaG91bGQg dG8gZmFpbAorQ1JFQVRFIFZBUklBQkxFIHggQVMgaW50OworCistLSBzaG91bGQgYmUgb2sKK0NS RUFURSBURU1QT1JBUlkgVkFSSUFCTEUgeCBBUyBpbnQ7CisKKy0tIHNob3VsZCBmYWlsCitDUkVB VEUgVEVNUE9SQVJZIFZBUklBQkxFIHggQVMgaW50OworCistLSBzaG91bGQgZmFpbAorRFJPUCBW QVJJQUJMRSB5OworCistLSBzaG91bGQgYmUgb2sKK0RST1AgVkFSSUFCTEUgeDsKKworQ1JFQVRF IFRZUEUgdGVzdF90eXBlIEFTICh4IGludCwgeSBpbnQpOworCistLSBzaG91bGQgZmFpbAorQ1JF QVRFIFZBUklBQkxFIHggQVMgdGVzdF90eXBlOworCitEUk9QIFRZUEUgdGVzdF90eXBlOworCist LSBzaG91bGQgZmFpbAorQ1JFQVRFIFZBUklBQkxFIHggQVMgaW50W107CisKK0NSRUFURSBET01B SU4gdGVzdF9kb21haW4gQVMgaW50OworCistLSBzaG91bGQgZmFpbAorQ1JFQVRFIFZBUklBQkxF IHggQVMgdGVzdF9kb21haW47CisKK0RST1AgRE9NQUlOIHRlc3RfZG9tYWluOworCitDUkVBVEUg Uk9MRSByZWdyZXNzX3Nlc3Npb25fdmFyaWFibGVfdGVzdF9yb2xlXzAxOworQ1JFQVRFIFJPTEUg cmVncmVzc19zZXNzaW9uX3ZhcmlhYmxlX3Rlc3Rfcm9sZV8wMjsKKworU0VUIFJPTEUgVE8gcmVn cmVzc19zZXNzaW9uX3ZhcmlhYmxlX3Rlc3Rfcm9sZV8wMTsKKworQ1JFQVRFIFRFTVAgVkFSSUFC TEUgeCBBUyBpbnQ7CisKK1NFVCBST0xFIFRPIGRlZmF1bHQ7CitTRVQgUk9MRSBUTyByZWdyZXNz X3Nlc3Npb25fdmFyaWFibGVfdGVzdF9yb2xlXzAyOworCistLSBzaG91bGQgZmFpbAorRFJPUCBW QVJJQUJMRSB4OworCitTRVQgUk9MRSBUTyBkZWZhdWx0OworU0VUIFJPTEUgVE8gcmVncmVzc19z ZXNzaW9uX3ZhcmlhYmxlX3Rlc3Rfcm9sZV8wMTsKKworLS0gc2hvdWxkIGJlIG9rCitEUk9QIFZB UklBQkxFIHg7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFJPTEUgcmVncmVzc19zZXNz aW9uX3ZhcmlhYmxlX3Rlc3Rfcm9sZV8wMTsKK0RST1AgUk9MRSByZWdyZXNzX3Nlc3Npb25fdmFy aWFibGVfdGVzdF9yb2xlXzAyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVk ZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAppbmRleCAyMDViMjgy ZjZiNC4uMDBlYWRjYmQzNDggMTAwNjQ0Ci0tLSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CkBAIC01NjMsNiAr NTYzLDcgQEAgQ3JlYXRlUm9sZVN0bXQKIENyZWF0ZVNjaGVtYVN0bXQKIENyZWF0ZVNjaGVtYVN0 bXRDb250ZXh0CiBDcmVhdGVTZXFTdG10CitDcmVhdGVTZXNzaW9uVmFyU3RtdAogQ3JlYXRlU3Rh dHNTdG10CiBDcmVhdGVTdG10CiBDcmVhdGVTdG10Q29udGV4dApAQCAtNjY3LDYgKzY2OCw3IEBA IERyb3BCZWhhdmlvcgogRHJvcE93bmVkU3RtdAogRHJvcFJlcGxpY2F0aW9uU2xvdENtZAogRHJv cFJvbGVTdG10CitEcm9wU2Vzc2lvblZhclN0bXQKIERyb3BTdG10CiBEcm9wU3Vic2NyaXB0aW9u U3RtdAogRHJvcFRhYmxlU3BhY2VTdG10CkBAIC0yNjY3LDYgKzI2NjksOCBAQCBTU0xfQ1RYCiBT VEFSVFVQSU5GTwogU1RSTEVOCiBTVgorU1ZhcmlhYmxlRGF0YQorU1ZhcmlhYmxlCiBTWU5DSFJP TklaQVRJT05fQkFSUklFUgogU1lTVEVNX0lORk8KIFNhbXBsZVNjYW4KLS0gCjIuNTIuMAoK --0000000000008b48e906456c698a Content-Type: application/x-patch; name="v20251208-0002-parsing-session-variable-fences.patch" Content-Disposition: attachment; filename="v20251208-0002-parsing-session-variable-fences.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miwu5rmn8 RnJvbSA2MzRmNjcyYTBkMjk1Yzk0MzM5ODYxNThiYWI1ZDVjZTRhMGQ1MDBlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBGcmksIDIxIE5vdiAyMDI1IDE1OjI4OjU5ICswMTAwClN1YmplY3Q6IFtQ QVRDSCAwMi8xMV0gcGFyc2luZyBzZXNzaW9uIHZhcmlhYmxlIGZlbmNlcwoKVGhlIHNlc3Npb24g dmFyaWFibGVzIGNhbiBiZSB1c2VkIGluIHF1ZXJ5IG9ubHkgaW5zaWRlIHRoZSB2YXJpYWJsZSBm ZW5jZS4KVGhpcyBpcyBzcGVjaWFsIHN5bnRheCBWQVJJQUJMRSh2YXJuYW1lKSwgdGhhdCBlbGlt aW5hdGVzIGEgcmlzayBvZgpjb2xsaXNpb24gYmV0d2VlbiB2YXJpYWJsZSBhbmQgY29sdW1uIGlk ZW50aWZpZXIuCgpUaGUgc2Vzc2lvbiB2YXJpYWJsZXMgY2Fubm90IGJlIHVzZWQgYXMgcGFyYW1l dGVycyBvZiBDQUxMIG9yIEVYRUNVVEUKY29tbWFuZHMuIFRoZXNlIGNvbW1hbmRzIGV2YWx1YXRl cyBhcmd1bWVudHMgYnkgZGlyZWN0IGNhbGwgb2YgZXhwcmVzc2lvbgpleGVjdXRvciwgYW5kIGRp cmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9y CndpbGwgYmUgaW1wbGVtZW50ZWQgbGF0ZXIgKGluIG5leHQgc3RlcCkKLS0tCiBkb2Mvc3JjL3Nn bWwvZGRsLnNnbWwgICAgICAgICAgICAgICAgICAgfCAgMTAgKysKIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3ByZXBhcmUuYyAgICAgICAgICB8ICAgOCArKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5jIHwgIDIxICsrKysrCiBzcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3Mu YyAgICAgICAgICAgfCAgIDYgKysKIHNyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgICAgICAg ICAgICB8ICAgNyArKwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgIHwg IDE3ICsrKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICB8IDExOSAr KysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5j ICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgICAgICAg fCAgIDcgKysKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyAgICAgICB8ICAgOCAr Kwogc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIHwgICA1ICsKIHNyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICB8ICAxMiArKysKIHNyYy9pbmNsdWRl L25vZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgICB8ICAgNSArCiBzcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2Vfbm9kZS5oICAgICAgICAgfCAgIDEgKwogc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMu YyAgICAgICAgICAgIHwgICAzICstCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAg ICAgICAgfCAgIDEgKwogMTYgZmlsZXMgY2hhbmdlZCwgMjI4IGluc2VydGlvbnMoKyksIDMgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9z Z21sL2RkbC5zZ21sCmluZGV4IDM4N2E2ZjUyZGMwLi5kZDliYzY5Y2VjNyAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTY3 Myw2ICs1NjczLDE2IEBAIEVYUExBSU4gU0VMRUNUIGNvdW50KCopIEZST00gbWVhc3VyZW1lbnQg V0hFUkUgbG9nZGF0ZSAmZ3Q7PSBEQVRFICcyMDA4LTAxLTAxJzsKICAgICB2YXJpYWJsZSBpcyBz dG9yZWQgaW4gc2Vzc2lvbiBtZW1vcnkgYW5kIGlzIHByaXZhdGUgdG8gZWFjaCBzZXNzaW9uLiBJ dCBpcwogICAgIGF1dG9tYXRpY2FsbHkgcmVsZWFzZWQgd2hlbiB0aGUgc2Vzc2lvbiBlbmRzLgog ICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBJbiBhIHF1ZXJ5LCBhIHNlc3Npb24gdmFyaWFi bGUgY2FuIG9ubHkgYmUgcmVmZXJlbmNlZCB1c2luZyB0aGUgc3BlY2lhbAorICAgIDxsaXRlcmFs PlZBUklBQkxFKHZhcm5hbWUpPC9saXRlcmFsPiBzeW50YXguIFRoaXMgYXZvaWRzIGFueSByaXNr IG9mCisgICAgY29sbGlzaW9uIGJldHdlZW4gdmFyaWFibGUgbmFtZXMgYW5kIGNvbHVtbiBuYW1l cy4KKyAgIDwvcGFyYT4KKzxwcm9ncmFtbGlzdGluZz4KK1NFTEVDVCBWQVJJQUJMRShjdXJyZW50 X3VzZXJfaWQpOworPC9wcm9ncmFtbGlzdGluZz4KKyAgIDwvcGFyYT4KICA8L3NlY3QxPgogCiAg PHNlY3QxIGlkPSJkZGwtb3RoZXJzIj4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3ByZXBhcmUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwppbmRleCAzNGI2NDEw ZDZhMi4uZmNhZGNkOWJjM2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBh cmUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKQEAgLTM0MSw2ICszNDEs MTQgQEAgRXZhbHVhdGVQYXJhbXMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQcmVwYXJlZFN0YXRlbWVu dCAqcHN0bXQsIExpc3QgKnBhcmFtcywKIAkJaSsrOwogCX0KIAorCS8qCisJICogVGhlIGFyZ3Vt ZW50cyBvZiBFWEVDVVRFIGFyZSBldmFsdWF0ZWQgYnkgYSBkaXJlY3QgZXhwcmVzc2lvbiBleGVj dXRvcgorCSAqIGNhbGwuICBUaGlzIG1vZGUgZG9lc24ndCBzdXBwb3J0IHNlc3Npb24gdmFyaWFi bGVzIHlldC4gSXQgd2lsbCBiZQorCSAqIGVuYWJsZWQgbGF0ZXIuIFRoaXMgY2FzZSBzaG91bGQg YmUgYmxvY2tlZCBwYXJzZXIgYnkKKwkgKiBleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25fdmFyaWFi bGVzLCBzbyBvbmx5IGFzc2VydGlvbnMgaXMgdXNlZCBoZXJlLgorCSAqLworCUFzc2VydCghcHN0 YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMpOworCiAJLyogUHJlcGFyZSB0aGUgZXhwcmVzc2lv bnMgZm9yIGV4ZWN1dGlvbiAqLwogCWV4cHJzdGF0ZXMgPSBFeGVjUHJlcGFyZUV4cHJMaXN0KHBh cmFtcywgZXN0YXRlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmlu ZGV4IDY1MDVkNTU2YTc4Li5iY2FmMzdmNzg4YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuYwpAQCAtMTExLDYgKzExMSwyNyBAQCBzZWFyY2hfdmFyaWFibGUoY2hhciAq dmFybmFtZSkKIAlyZXR1cm4gc3ZhcjsKIH0KIAorLyoKKyAqIFJldHVybnMgdGhlIHR5cGUsIHR5 cG1vZCBhbmQgY29sbGlkIG9mIHRoZSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlLgorICoKKyAqIFJh aXNlcyBhbiBlcnJvciB3aGVuIHRoZSB2YXJpYWJsZSBkb2Vzbid0IGV4aXN0cyBhbmQgKmVycm9y IGlzIG51bGwuCisgKi8KK3ZvaWQKK2dldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9kX2Nv bGxpZChjaGFyICp2YXJuYW1lLAorCQkJCQkJCQkJCU9pZCAqdHlwaWQsCisJCQkJCQkJCQkJaW50 MzIgKnR5cG1vZCwKKwkJCQkJCQkJCQlPaWQgKmNvbGxpZCkKK3sKKwlTVmFyaWFibGUJc3ZhcjsK KworCXN2YXIgPSBzZWFyY2hfdmFyaWFibGUodmFybmFtZSk7CisKKwkvKiBvbmx5IG93bmVyIGNh biBzZXQgY29udGVudCBvZiB2YXJpYWJsZSAqLworCSp0eXBpZCA9IHN2YXItPnZhcnR5cGU7CisJ KnR5cG1vZCA9IHN2YXItPnZhcnR5cG1vZDsKKwkqY29sbGlkID0gc3Zhci0+dmFyY29sbGF0aW9u OworfQorCiAvKgogICogQ3JlYXRlcyBhIG5ldyB2YXJpYWJsZSAtIGRvZXMgbmV3IGVudHJ5IGlu IHNlc3Npb252YXJzCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNz LmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRleCBkMjI4MzE4ZGM3Mi4uYzFl YjgxZjc5ZTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBi L3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC0xNjY5LDYgKzE2NjksOSBAQCBleHBy TG9jYXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJY2FzZSBUX1BhcmFtUmVmOgogCQkJbG9jID0g KChjb25zdCBQYXJhbVJlZiAqKSBleHByKS0+bG9jYXRpb247CiAJCQlicmVhazsKKwkJY2FzZSBU X1ZhcmlhYmxlRmVuY2U6CisJCQlsb2MgPSAoKGNvbnN0IFZhcmlhYmxlRmVuY2UgKikgZXhwcikt PmxvY2F0aW9uOworCQkJYnJlYWs7CiAJCWNhc2UgVF9BX0NvbnN0OgogCQkJbG9jID0gKChjb25z dCBBX0NvbnN0ICopIGV4cHIpLT5sb2NhdGlvbjsKIAkJCWJyZWFrOwpAQCAtNDcwMSw2ICs0NzA0 LDkgQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAogCQkJCQly ZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfVmFyaWFibGVGZW5jZToKKwkJ CS8qIHdlIGFzc3VtZSB0aGUgZmllbGRzIGNvbnRhaW4gbm90aGluZyBpbnRlcmVzdGluZyAqLwor CQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG5vZGUg dHlwZTogJWQiLAogCQkJCSAoaW50KSBub2RlVGFnKG5vZGUpKTsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9hbmFseXplLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCmlu ZGV4IDA1MzE0ZTdlNzZiLi44ODUxMDY5MjJkMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCkBAIC02MTks NiArNjE5LDcgQEAgdHJhbnNmb3JtRGVsZXRlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIERlbGV0 ZVN0bXQgKnN0bXQpCiAJcXJ5LT5oYXNXaW5kb3dGdW5jcyA9IHBzdGF0ZS0+cF9oYXNXaW5kb3dG dW5jczsKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlx cnktPmhhc0FnZ3MgPSBwc3RhdGUtPnBfaGFzQWdnczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJs ZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWFzc2lnbl9xdWVyeV9jb2xs YXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMTA0NCw2ICsxMDQ1LDcgQEAgdHJhbnNmb3JtSW5z ZXJ0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIEluc2VydFN0bXQgKnN0bXQpCiAKIAlxcnktPmhh c1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlxcnktPmhhc1N1Ykxpbmtz ID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBz dGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMo cHN0YXRlLCBxcnkpOwogCkBAIC0xNTI3LDYgKzE1MjksNyBAQCB0cmFuc2Zvcm1TZWxlY3RTdG10 KFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCwKIAlxcnktPmhhc1dpbmRvd0Z1 bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBz dGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dz OworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFi bGVzOwogCiAJZm9yZWFjaChsLCBzdG10LT5sb2NraW5nQ2xhdXNlKQogCXsKQEAgLTE3NTMsNiAr MTc1Niw3IEBAIHRyYW5zZm9ybVZhbHVlc0NsYXVzZShQYXJzZVN0YXRlICpwc3RhdGUsIFNlbGVj dFN0bXQgKnN0bXQpCiAJcXJ5LT5qb2ludHJlZSA9IG1ha2VGcm9tRXhwcihwc3RhdGUtPnBfam9p bmxpc3QsIE5VTEwpOwogCiAJcXJ5LT5oYXNTdWJMaW5rcyA9IHBzdGF0ZS0+cF9oYXNTdWJMaW5r czsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlh YmxlczsKIAogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMjAw NCw2ICsyMDA4LDcgQEAgdHJhbnNmb3JtU2V0T3BlcmF0aW9uU3RtdChQYXJzZVN0YXRlICpwc3Rh dGUsIFNlbGVjdFN0bXQgKnN0bXQpCiAJcXJ5LT5oYXNXaW5kb3dGdW5jcyA9IHBzdGF0ZS0+cF9o YXNXaW5kb3dGdW5jczsKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0 U1JGczsKIAlxcnktPmhhc0FnZ3MgPSBwc3RhdGUtPnBfaGFzQWdnczsKKwlxcnktPmhhc1Nlc3Np b25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWZvcmVhY2go bCwgbG9ja2luZ0NsYXVzZSkKIAl7CkBAIC0yNDc2LDYgKzI0ODEsNyBAQCB0cmFuc2Zvcm1SZXR1 cm5TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmV0dXJuU3RtdCAqc3RtdCkKIAlxcnktPmhhc1dp bmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JG cyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9o YXNBZ2dzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9u VmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBA IC0yNTQzLDYgKzI1NDksNyBAQCB0cmFuc2Zvcm1VcGRhdGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0 ZSwgVXBkYXRlU3RtdCAqc3RtdCkKIAogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9o YXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7 CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJs ZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 CmluZGV4IDBhNWVmZDczM2RjLi44MzczMzBhODA3ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC01MzEsNyAr NTMxLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5h bWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxub2RlPglkZWZfYXJnIGNv bHVtbkVsZW0gd2hlcmVfY2xhdXNlIHdoZXJlX29yX2N1cnJlbnRfY2xhdXNlCiAJCQkJYV9leHBy IGJfZXhwciBjX2V4cHIgQWV4cHJDb25zdCBpbmRpcmVjdGlvbl9lbCBvcHRfc2xpY2VfYm91bmQK IAkJCQljb2x1bW5yZWYgaGF2aW5nX2NsYXVzZSBmdW5jX3RhYmxlIHhtbHRhYmxlIGFycmF5X2V4 cHIKLQkJCQlPcHRXaGVyZUNsYXVzZSBvcGVyYXRvcl9kZWZfYXJnCisJCQkJT3B0V2hlcmVDbGF1 c2Ugb3BlcmF0b3JfZGVmX2FyZyB2YXJpYWJsZV9mZW5jZQogJXR5cGUgPGxpc3Q+CW9wdF9jb2x1 bW5fYW5kX3BlcmlvZF9saXN0CiAldHlwZSA8bGlzdD4Jcm93c2Zyb21faXRlbSByb3dzZnJvbV9s aXN0IG9wdF9jb2xfZGVmX2xpc3QKICV0eXBlIDxib29sZWFuPiBvcHRfb3JkaW5hbGl0eSBvcHRf d2l0aG91dF9vdmVybGFwcwpAQCAtODg3LDcgKzg4Nyw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVj dXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVy eSk7CiAgKi8KICVub25hc3NvYwlVTkJPVU5ERUQgTkVTVEVEIC8qIGlkZWFsbHkgd291bGQgaGF2 ZSBzYW1lIHByZWNlZGVuY2UgYXMgSURFTlQgKi8KICVub25hc3NvYwlJREVOVCBQQVJUSVRJT04g UkFOR0UgUk9XUyBHUk9VUFMgUFJFQ0VESU5HIEZPTExPV0lORyBDVUJFIFJPTExVUAotCQkJU0VU IEtFWVMgT0JKRUNUX1AgU0NBTEFSIFZBTFVFX1AgV0lUSCBXSVRIT1VUIFBBVEgKKwkJCVNFVCBL RVlTIE9CSkVDVF9QIFNDQUxBUiBWQUxVRV9QIFdJVEggV0lUSE9VVCBQQVRIIFZBUklBQkxFCiAl bGVmdAkJT3AgT1BFUkFUT1IJCS8qIG11bHRpLWNoYXJhY3RlciBvcHMgYW5kIHVzZXItZGVmaW5l ZCBvcGVyYXRvcnMgKi8KICVsZWZ0CQknKycgJy0nCiAlbGVmdAkJJyonICcvJyAnJScKQEAgLTE1 NzE5LDYgKzE1NzE5LDggQEAgY19leHByOgkJY29sdW1ucmVmCQkJCQkJCQl7ICQkID0gJDE7IH0K IAkJCQkJZWxzZQogCQkJCQkJJCQgPSAkMjsKIAkJCQl9CisJCQl8IHZhcmlhYmxlX2ZlbmNlCisJ CQkJeyAkJCA9ICQxOyB9CiAJCQl8IGNhc2VfZXhwcgogCQkJCXsgJCQgPSAkMTsgfQogCQkJfCBm dW5jX2V4cHIKQEAgLTE3MTIxLDYgKzE3MTIzLDE3IEBAIGNhc2VfYXJnOglhX2V4cHIJCQkJCQkJ CQl7ICQkID0gJDE7IH0KIAkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gTlVMTDsgfQogCQk7 CiAKK3ZhcmlhYmxlX2ZlbmNlOgorCQkJVkFSSUFCTEUgJygnIENvbElkICcpJworCQkJCXsKKwkJ CQkJVmFyaWFibGVGZW5jZSAqdmYgPSBtYWtlTm9kZShWYXJpYWJsZUZlbmNlKTsKKworCQkJCQl2 Zi0+dmFybmFtZSA9ICQzOworCQkJCQl2Zi0+bG9jYXRpb24gPSBAMzsKKwkJCQkJJCQgPSAoTm9k ZSAqKSB2ZjsKKwkJCQl9CisJCTsKKwogY29sdW1ucmVmOglDb2xJZAogCQkJCXsKIAkJCQkJJCQg PSBtYWtlQ29sdW1uUmVmKCQxLCBOSUwsIEAxLCB5eXNjYW5uZXIpOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9l eHByLmMKaW5kZXggNDUyNGU0OWMzMjYuLmFhMjQ4M2M5NmE2IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9l eHByLmMKQEAgLTE4LDYgKzE4LDcgQEAKICNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hZ2dyZWdhdGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3R5cGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVk ZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAi bm9kZXMvbm9kZUZ1bmNzLmgiCkBAIC03Nyw2ICs3OCw3IEBAIHN0YXRpYyBOb2RlICp0cmFuc2Zv cm1XaG9sZVJvd1JlZihQYXJzZVN0YXRlICpwc3RhdGUsCiBzdGF0aWMgTm9kZSAqdHJhbnNmb3Jt SW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpOwogc3Rh dGljIE5vZGUgKnRyYW5zZm9ybVR5cGVDYXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVHlwZUNhc3Qg KnRjKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Db2xsYXRlQ2xhdXNlKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQ29sbGF0ZUNsYXVzZSAqYyk7CitzdGF0aWMgTm9kZSAqdHJhbnNmb3JtVmFyaWFibGVG ZW5jZShQYXJzZVN0YXRlICpwc3RhdGUsIFZhcmlhYmxlRmVuY2UgKnZmKTsKIHN0YXRpYyBOb2Rl ICp0cmFuc2Zvcm1Kc29uT2JqZWN0Q29uc3RydWN0b3IoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJ CQkJCQkJCQlKc29uT2JqZWN0Q29uc3RydWN0b3IgKmN0b3IpOwogc3RhdGljIE5vZGUgKnRyYW5z Zm9ybUpzb25BcnJheUNvbnN0cnVjdG9yKFBhcnNlU3RhdGUgKnBzdGF0ZSwKQEAgLTM3MSw2ICsz NzMsMTAgQEAgdHJhbnNmb3JtRXhwclJlY3Vyc2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpl eHByKQogCQkJcmVzdWx0ID0gdHJhbnNmb3JtSnNvbkZ1bmNFeHByKHBzdGF0ZSwgKEpzb25GdW5j RXhwciAqKSBleHByKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVF9WYXJpYWJsZUZlbmNlOgorCQkJ cmVzdWx0ID0gdHJhbnNmb3JtVmFyaWFibGVGZW5jZShwc3RhdGUsIChWYXJpYWJsZUZlbmNlICop IGV4cHIpOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCS8qIHNob3VsZCBub3QgcmVhY2gg aGVyZSAqLwogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwgKGlu dCkgbm9kZVRhZyhleHByKSk7CkBAIC05MDQsNiArOTEwLDExOSBAQCB0cmFuc2Zvcm1QYXJhbVJl ZihQYXJzZVN0YXRlICpwc3RhdGUsIFBhcmFtUmVmICpwcmVmKQogCXJldHVybiByZXN1bHQ7CiB9 CiAKKy8qCisgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIGV4cHJlc3Npb24ga2luZCBpcyB2 YWxpZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZXMuCisgKiBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUg dXNlZCBldmVyeXdoZXJlIHdoZXJlIGV4dGVybmFsIHBhcmFtZXRlcnMgY2FuIGJlCisgKiB1c2Vk LiAgU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdCBhbGxvd2VkIGluIERETCBjb21tYW5kcyBvciBp biBjb25zdHJhaW50cy4KKyAqCisgKiBBbiBpZGVudGlmaWVyIGNhbiBiZSBwYXJzZWQgYXMgYSBz ZXNzaW9uIHZhcmlhYmxlIG9ubHkgZm9yIGV4cHJlc3Npb24ga2luZHMKKyAqIHdoZXJlIHNlc3Np b24gdmFyaWFibGVzIGFyZSBhbGxvd2VkLiAgVGhpcyBpcyB0aGUgcHJpbWFyeSB1c2FnZSBvZiB0 aGlzCisgKiBmdW5jdGlvbi4KKyAqCisgKiBUaGUgc2Vjb25kIHVzYWdlIG9mIHRoaXMgZnVuY3Rp b24gaXMgdG8gZGVjaWRlIHdoZXRoZXIgYSAiY29sdW1uIGRvZXMgbm90CisgKiBleGlzdCIgb3Ig YSAiY29sdW1uIG9yIHZhcmlhYmxlIGRvZXMgbm90IGV4aXN0IiBlcnJvciBtZXNzYWdlIHNob3Vs ZCBiZQorICogcHJpbnRlZC4gIFdoZW4gd2UgYXJlIGluIGFuIGV4cHJlc3Npb24gd2hlcmUgc2Vz c2lvbiB2YXJpYWJsZXMgY2Fubm90IGJlCisgKiB1c2VkLCB3ZSByYWlzZSB0aGUgZmlyc3QgZm9y bSBvZiBlcnJvciBtZXNzYWdlLgorICovCitzdGF0aWMgYm9vbAorZXhwcl9raW5kX2FsbG93c19z ZXNzaW9uX3ZhcmlhYmxlcyhQYXJzZUV4cHJLaW5kIHBfZXhwcl9raW5kKQoreworCWJvb2wJCXJl c3VsdCA9IGZhbHNlOworCisJc3dpdGNoIChwX2V4cHJfa2luZCkKKwl7CisJCWNhc2UgRVhQUl9L SU5EX05PTkU6CisJCQlBc3NlcnQoZmFsc2UpOwkJLyogY2FuJ3QgaGFwcGVuICovCisJCQlyZXR1 cm4gZmFsc2U7CisKKwkJCS8qIHNlc3Npb24gdmFyaWFibGVzIGFsbG93ZWQgKi8KKwkJY2FzZSBF WFBSX0tJTkRfT1RIRVI6CisJCWNhc2UgRVhQUl9LSU5EX0pPSU5fT046CisJCWNhc2UgRVhQUl9L SU5EX0ZST01fU1VCU0VMRUNUOgorCQljYXNlIEVYUFJfS0lORF9GUk9NX0ZVTkNUSU9OOgorCQlj YXNlIEVYUFJfS0lORF9XSEVSRToKKwkJY2FzZSBFWFBSX0tJTkRfSEFWSU5HOgorCQljYXNlIEVY UFJfS0lORF9GSUxURVI6CisJCWNhc2UgRVhQUl9LSU5EX1dJTkRPV19QQVJUSVRJT046CisJCWNh c2UgRVhQUl9LSU5EX1dJTkRPV19PUkRFUjoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX0ZSQU1F X1JBTkdFOgorCQljYXNlIEVYUFJfS0lORF9XSU5ET1dfRlJBTUVfUk9XUzoKKwkJY2FzZSBFWFBS X0tJTkRfV0lORE9XX0ZSQU1FX0dST1VQUzoKKwkJY2FzZSBFWFBSX0tJTkRfU0VMRUNUX1RBUkdF VDoKKwkJY2FzZSBFWFBSX0tJTkRfVVBEQVRFX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfVVBE QVRFX1NPVVJDRToKKwkJY2FzZSBFWFBSX0tJTkRfTUVSR0VfV0hFTjoKKwkJY2FzZSBFWFBSX0tJ TkRfTUVSR0VfUkVUVVJOSU5HOgorCQljYXNlIEVYUFJfS0lORF9HUk9VUF9CWToKKwkJY2FzZSBF WFBSX0tJTkRfT1JERVJfQlk6CisJCWNhc2UgRVhQUl9LSU5EX0RJU1RJTkNUX09OOgorCQljYXNl IEVYUFJfS0lORF9MSU1JVDoKKwkJY2FzZSBFWFBSX0tJTkRfT0ZGU0VUOgorCQljYXNlIEVYUFJf S0lORF9SRVRVUk5JTkc6CisJCWNhc2UgRVhQUl9LSU5EX1ZBTFVFUzoKKwkJY2FzZSBFWFBSX0tJ TkRfVkFMVUVTX1NJTkdMRToKKwkJCXJlc3VsdCA9IHRydWU7CisJCQlicmVhazsKKworCQkJLyog c2Vzc2lvbiB2YXJpYWJsZXMgbm90IGFsbG93ZWQgKi8KKwkJY2FzZSBFWFBSX0tJTkRfSU5TRVJU X1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfRVhFQ1VURV9QQVJBTUVURVI6CisJCWNhc2UgRVhQ Ul9LSU5EX0NBTExfQVJHVU1FTlQ6CisJCWNhc2UgRVhQUl9LSU5EX0NIRUNLX0NPTlNUUkFJTlQ6 CisJCWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKKwkJY2FzZSBFWFBSX0tJTkRfQ09MVU1O X0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CisJCWNhc2UgRVhQ Ul9LSU5EX0lOREVYX0VYUFJFU1NJT046CisJCWNhc2UgRVhQUl9LSU5EX0lOREVYX1BSRURJQ0FU RToKKwkJY2FzZSBFWFBSX0tJTkRfU1RBVFNfRVhQUkVTU0lPTjoKKwkJY2FzZSBFWFBSX0tJTkRf VFJJR0dFUl9XSEVOOgorCQljYXNlIEVYUFJfS0lORF9QQVJUSVRJT05fQk9VTkQ6CisJCWNhc2Ug RVhQUl9LSU5EX1BBUlRJVElPTl9FWFBSRVNTSU9OOgorCQljYXNlIEVYUFJfS0lORF9HRU5FUkFU RURfQ09MVU1OOgorCQljYXNlIEVYUFJfS0lORF9KT0lOX1VTSU5HOgorCQljYXNlIEVYUFJfS0lO RF9DWUNMRV9NQVJLOgorCQljYXNlIEVYUFJfS0lORF9BTFRFUl9DT0xfVFJBTlNGT1JNOgorCQlj YXNlIEVYUFJfS0lORF9QT0xJQ1k6CisJCWNhc2UgRVhQUl9LSU5EX0NPUFlfV0hFUkU6CisJCQly ZXN1bHQgPSBmYWxzZTsKKwkJCWJyZWFrOworCX0KKworCXJldHVybiByZXN1bHQ7Cit9CisKK3N0 YXRpYyBOb2RlICoKK3RyYW5zZm9ybVZhcmlhYmxlRmVuY2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBW YXJpYWJsZUZlbmNlICp2ZikKK3sKKwlQYXJhbQkgICAqcGFyYW07CisJT2lkCQkJdHlwaWQ7CisJ aW50MzIJCXR5cG1vZDsKKwlPaWQJCQljb2xsaWQ7CisKKwkvKiBWYXJpYWJsZUZlbmNlIGNhbiBi ZSB1c2VkIG9ubHkgaW4gY29udGV4dCB3aGVuIHZhcmlhYmxlcyBhcmUgc3VwcG9ydGVkICovCisJ aWYgKCFleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25fdmFyaWFibGVzKHBzdGF0ZS0+cF9leHByX2tp bmQpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1Rf U1VQUE9SVEVEKSwKKwkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSBpcyBu b3Qgc3VwcG9ydGVkIGhlcmUiKSwKKwkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgdmYt PmxvY2F0aW9uKSkpOworCisJZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlk KHZmLT52YXJuYW1lLAorCQkJCQkJCQkJCQkmdHlwaWQsICZ0eXBtb2QsICZjb2xsaWQpOworCisK KwlwYXJhbSA9IG1ha2VOb2RlKFBhcmFtKTsKKworCXBhcmFtLT5wYXJhbWtpbmQgPSBQQVJBTV9W QVJJQUJMRTsKKwlwYXJhbS0+cGFyYW12YXJuYW1lID0gcHN0cmR1cCh2Zi0+dmFybmFtZSk7CisJ cGFyYW0tPnBhcmFtdHlwZSA9IHR5cGlkOworCXBhcmFtLT5wYXJhbXR5cG1vZCA9IHR5cG1vZDsK KwlwYXJhbS0+cGFyYW1jb2xsaWQgPSBjb2xsaWQ7CisKKwlwc3RhdGUtPnBfaGFzU2Vzc2lvblZh cmlhYmxlcyA9IHRydWU7CisKKwlyZXR1cm4gKE5vZGUgKikgcGFyYW07Cit9CisKIC8qIFRlc3Qg d2hldGhlciBhbiBhX2V4cHIgaXMgYSBwbGFpbiBOVUxMIGNvbnN0YW50IG9yIG5vdCAqLwogc3Rh dGljIGJvb2wKIGV4cHJJc051bGxDb25zdGFudChOb2RlICphcmcpCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9t ZXJnZS5jCmluZGV4IDUxZDc3MDNlZmY3Li4yNDRlZmNkZGYzMiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX21lcmdlLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X21lcmdlLmMKQEAgLTQwNSw2ICs0MDUsNyBAQCB0cmFuc2Zvcm1NZXJnZVN0bXQoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBNZXJnZVN0bXQgKnN0bXQpCiAKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBmYWxz ZTsKIAlxcnktPmhhc1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXFyeS0+aGFz U2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNz aWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFy Z2V0LmMKaW5kZXggOTA1Yzk3NWQ4M2IuLjJmNDI2MjdmMDA5IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X3RhcmdldC5jCkBAIC0yMDMzLDYgKzIwMzMsMTMgQEAgRmlndXJlQ29sbmFtZUludGVybmFsKE5v ZGUgKm5vZGUsIGNoYXIgKipuYW1lKQogCQkJCQkJIChpbnQpICgoSnNvbkZ1bmNFeHByICopIG5v ZGUpLT5vcCk7CiAJCQl9CiAJCQlicmVhazsKKwkJY2FzZSBUX1ZhcmlhYmxlRmVuY2U6CisJCQl7 CisJCQkJLyogcmV0dXJuIGxhc3QgZmllbGQgbmFtZSAqLworCQkJCSpuYW1lID0gKChWYXJpYWJs ZUZlbmNlICopIG5vZGUpLT52YXJuYW1lOworCQkJCXJldHVybiAyOworCQkJfQorCQkJYnJlYWs7 CiAJCWRlZmF1bHQ6CiAJCQlicmVhazsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9hZHQvcnVsZXV0aWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKaW5k ZXggNmNmOTBiZTQwYmIuLmNiOWM0NTZlMzMxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQvcnVsZXV0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5j CkBAIC04ODE2LDYgKzg4MTYsMTQgQEAgZ2V0X3BhcmFtZXRlcihQYXJhbSAqcGFyYW0sIGRlcGFy c2VfY29udGV4dCAqY29udGV4dCkKIAkJfQogCX0KIAorCS8qIE5vdGU6IGNhbiBiZSBiZSB1c2Vk IGJ5IEVYUExBSU4gKi8KKwlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkK Kwl7CisJCWFwcGVuZFN0cmluZ0luZm8oY29udGV4dC0+YnVmLCAiVkFSSUFCTEVTKCVzKSIsCisJ CQkJCQkgcXVvdGVfaWRlbnRpZmllcihwYXJhbS0+cGFyYW12YXJuYW1lKSk7CisJCXJldHVybjsK Kwl9CisKIAkvKgogCSAqIE5vdCBQQVJBTV9FWEVDLCBvciBjb3VsZG4ndCBmaW5kIHJlZmVyZW50 OiBqdXN0IHByaW50ICROLgogCSAqCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmgKaW5kZXggMWVkNDBkODdhMzguLjk2YmU5NjhjM2Q0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0yMiw0ICsyMiw5IEBACiBleHRlcm4gdm9pZCBDcmVhdGVW YXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KTsK IGV4dGVybiB2b2lkIERyb3BWYXJpYWJsZUJ5TmFtZShjaGFyICp2YXJuYW1lKTsKIAorZXh0ZXJu IHZvaWQgZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKGNoYXIgKnZhcm5h bWUsCisJCQkJCQkJCQkJCQkJT2lkICp0eXBpZCwKKwkJCQkJCQkJCQkJCQlpbnQzMiAqdHlwbW9k LAorCQkJCQkJCQkJCQkJCU9pZCAqY29sbGlkKTsKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmgKaW5kZXggNTY3ZTU5NzBlNTAuLjQ4NzQ2NGIxNGIxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o CkBAIC0xNjcsNiArMTY3LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUXVlcnkKIAlib29sCQloYXNSb3dT ZWN1cml0eSBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogcGFyc2VyIGhh cyBhZGRlZCBhbiBSVEVfR1JPVVAgUlRFICovCiAJYm9vbAkJaGFzR3JvdXBSVEUgcGdfbm9kZV9h dHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOworCS8qIHVzZXMgc2Vzc2lvbiB2YXJpYWJsZXMgKi8K Kwlib29sCQloYXNTZXNzaW9uVmFyaWFibGVzIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdu b3JlKTsKIAkvKiBpcyBhIFJFVFVSTiBzdGF0ZW1lbnQgKi8KIAlib29sCQlpc1JldHVybiBwZ19u b2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAKQEAgLTMyMiw2ICszMjQsMTYgQEAgdHlw ZWRlZiBzdHJ1Y3QgUGFyYW1SZWYKIAlQYXJzZUxvYwlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0 aW9uLCBvciAtMSBpZiB1bmtub3duICovCiB9IFBhcmFtUmVmOwogCisvKgorICogVmFyaWFibGVG ZW5jZSAtIGVuc3VyZSBzbyBmaWVsZHMgd2lsbCBiZSBpbnRlcnByZXR0ZWQgYXMgYSB2YXJpYWJs ZQorICovCit0eXBlZGVmIHN0cnVjdCBWYXJpYWJsZUZlbmNlCit7CisJTm9kZVRhZwkJdHlwZTsK KwljaGFyCSAgICp2YXJuYW1lOwkJLyogdmFyaWFibGUgbmFtZSAqLworCVBhcnNlTG9jCWxvY2F0 aW9uOwkJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KK30gVmFyaWFibGVG ZW5jZTsKKwogLyoKICAqIEFfRXhwciAtIGluZml4LCBwcmVmaXgsIGFuZCBwb3N0Zml4IGV4cHJl c3Npb25zCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIv c3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggMWI0NDM2ZjJmZjYuLjc2MGNhMDNm N2UxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMv aW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAtMzc4LDYgKzM3OCw4IEBAIHR5cGVkZWYgc3Ry dWN0IENvbnN0CiAgKgkJCQlvZiB0aGUgYHBhcmFtaWQnIGZpZWxkIGNvbnRhaW4gdGhlIFN1Ykxp bmsncyBzdWJMaW5rSWQsIGFuZAogICoJCQkJdGhlIGxvdy1vcmRlciAxNiBiaXRzIGNvbnRhaW4g dGhlIGNvbHVtbiBudW1iZXIuICAoVGhpcyB0eXBlCiAgKgkJCQlvZiBQYXJhbSBpcyBhbHNvIGNv bnZlcnRlZCB0byBQQVJBTV9FWEVDIGR1cmluZyBwbGFubmluZy4pCisgKgkJUEFSQU1fVkFSSUFC TEU6ICBUaGUgcGFyYW1ldGVyIGlzIGEgcmVmZXJlbmNlIHRvIGEgc2Vzc2lvbiB2YXJpYWJsZQor ICoJCQkJKHBhcmFtdmFybmFtZSBob2xkcyB0aGUgdmFyaWFibGUncyBuYW1lKS4KICAqLwogdHlw ZWRlZiBlbnVtIFBhcmFtS2luZAogewpAQCAtMzg1LDYgKzM4Nyw3IEBAIHR5cGVkZWYgZW51bSBQ YXJhbUtpbmQKIAlQQVJBTV9FWEVDLAogCVBBUkFNX1NVQkxJTkssCiAJUEFSQU1fTVVMVElFWFBS LAorCVBBUkFNX1ZBUklBQkxFLAogfSBQYXJhbUtpbmQ7CiAKIHR5cGVkZWYgc3RydWN0IFBhcmFt CkBAIC0zOTksNiArNDAyLDggQEAgdHlwZWRlZiBzdHJ1Y3QgUGFyYW0KIAlpbnQzMgkJcGFyYW10 eXBtb2Q7CiAJLyogT0lEIG9mIGNvbGxhdGlvbiwgb3IgSW52YWxpZE9pZCBpZiBub25lICovCiAJ T2lkCQkJcGFyYW1jb2xsaWQ7CisJLyogT0lEIG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZSBvciBJ bnZhbGlkT2lkIGlmIG5vbmUgKi8KKwljaGFyCSAgICpwYXJhbXZhcm5hbWUgcGdfbm9kZV9hdHRy KHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtu b3duICovCiAJUGFyc2VMb2MJbG9jYXRpb247CiB9IFBhcmFtOwpkaWZmIC0tZ2l0IGEvc3JjL2lu Y2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2Rl LmgKaW5kZXggZjdkMDdjODQ1NDIuLjg0ZTg4Njk0MGQ4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2Rl LmgKQEAgLTIyOCw2ICsyMjgsNyBAQCBzdHJ1Y3QgUGFyc2VTdGF0ZQogCWJvb2wJCXBfaGFzVGFy Z2V0U1JGczsKIAlib29sCQlwX2hhc1N1YkxpbmtzOwogCWJvb2wJCXBfaGFzTW9kaWZ5aW5nQ1RF OworCWJvb2wJCXBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCU5vZGUJICAgKnBfbGFzdF9zcmY7 CQkvKiBtb3N0IHJlY2VudCBzZXQtcmV0dXJuaW5nIGZ1bmMvb3AgZm91bmQgKi8KIApkaWZmIC0t Z2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9w bF9leGVjLmMKaW5kZXggZDE5NDI1YjdhNzEuLjk2ODU3ODc0ZmZlIDEwMDY0NAotLS0gYS9zcmMv cGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVj LmMKQEAgLTgyNjgsNyArODI2OCw4IEBAIGV4ZWNfaXNfc2ltcGxlX3F1ZXJ5KFBMcGdTUUxfZXhw ciAqZXhwcikKIAkJcXVlcnktPnNvcnRDbGF1c2UgfHwKIAkJcXVlcnktPmxpbWl0T2Zmc2V0IHx8 CiAJCXF1ZXJ5LT5saW1pdENvdW50IHx8Ci0JCXF1ZXJ5LT5zZXRPcGVyYXRpb25zKQorCQlxdWVy eS0+c2V0T3BlcmF0aW9ucyB8fAorCQlxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKIAkJcmV0 dXJuIGZhbHNlOwogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggMDBlYWRjYmQz NDguLjBmMzUyOGI1YzA5IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMu bGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMzIyMiw2ICsz MjIyLDcgQEAgVmFsaWRhdG9yVmFsaWRhdGVDQgogVmFsdWVzU2NhbgogVmFsdWVzU2NhblN0YXRl CiBWYXIKK1ZhcmlhYmxlRmVuY2UKIFZhckJpdAogVmFyQ2hhcgogVmFyUGFyYW1TdGF0ZQotLSAK Mi41Mi4wCgo= --0000000000008b48e906456c698a Content-Type: application/x-patch; name="v20251208-0011-subtransaction-support-for-session-variables-DDL-CRE.patch" Content-Disposition: attachment; filename="v20251208-0011-subtransaction-support-for-session-variables-DDL-CRE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_miwu5rnw10 RnJvbSBlMjNhZWQyNjkxNmEwMTA3OTYzOWQzN2M2YmRjNGUwZTE2ZDlmNDE3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IE1vbiwgOCBEZWMgMjAyNSAwNTowMDoxMiArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMTEv MTFdIHN1YnRyYW5zYWN0aW9uIHN1cHBvcnQgZm9yIHNlc3Npb24gdmFyaWFibGVzIERETAogKENS RUFURSwgRFJPUCkKCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jICAgICAg ICAgICAgIHwgICA0ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAg ICAgICB8IDEwOSArKysrKysrKysrKysrKysrKysKIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuaCAgICAgICB8ICAgMyArCiAuLi4vZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJs ZXNfZGRsLm91dCAgICAgICAgfCAgMjEgKysrKwogLi4uL3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFy aWFibGVzX2RkbC5zcWwgICAgIHwgIDEyICsrCiA1IGZpbGVzIGNoYW5nZWQsIDE0OSBpbnNlcnRp b25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jIGIv c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCmluZGV4IDhhODBlOWMwMGFmLi41N2Vl OGRhNmQxZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3QuYwpAQCAtNTIwOCw2ICs1MjA4LDgg QEAgQ29tbWl0U3ViVHJhbnNhY3Rpb24odm9pZCkKIAlBdEVPU3ViWGFjdF9TUEkodHJ1ZSwgcy0+ c3ViVHJhbnNhY3Rpb25JZCk7CiAJQXRFT1N1YlhhY3Rfb25fY29tbWl0X2FjdGlvbnModHJ1ZSwg cy0+c3ViVHJhbnNhY3Rpb25JZCwKIAkJCQkJCQkJICBzLT5wYXJlbnQtPnN1YlRyYW5zYWN0aW9u SWQpOworCUF0RU9TdWJYYWN0X1Nlc3Npb25WYXJpYWJsZXModHJ1ZSwgcy0+c3ViVHJhbnNhY3Rp b25JZCwKKwkJCQkJCQkJIHMtPnBhcmVudC0+c3ViVHJhbnNhY3Rpb25JZCk7CiAJQXRFT1N1Ylhh Y3RfTmFtZXNwYWNlKHRydWUsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCiAJCQkJCQkgIHMtPnBhcmVu dC0+c3ViVHJhbnNhY3Rpb25JZCk7CiAJQXRFT1N1YlhhY3RfRmlsZXModHJ1ZSwgcy0+c3ViVHJh bnNhY3Rpb25JZCwKQEAgLTUzNzcsNiArNTM3OSw4IEBAIEFib3J0U3ViVHJhbnNhY3Rpb24odm9p ZCkKIAkJQXRFT1N1YlhhY3RfU1BJKGZhbHNlLCBzLT5zdWJUcmFuc2FjdGlvbklkKTsKIAkJQXRF T1N1YlhhY3Rfb25fY29tbWl0X2FjdGlvbnMoZmFsc2UsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCiAJ CQkJCQkJCQkgIHMtPnBhcmVudC0+c3ViVHJhbnNhY3Rpb25JZCk7CisJCUF0RU9TdWJYYWN0X1Nl c3Npb25WYXJpYWJsZXMoZmFsc2UsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCisJCQkJCQkJCQkgcy0+ cGFyZW50LT5zdWJUcmFuc2FjdGlvbklkKTsKIAkJQXRFT1N1YlhhY3RfTmFtZXNwYWNlKGZhbHNl LCBzLT5zdWJUcmFuc2FjdGlvbklkLAogCQkJCQkJCSAgcy0+cGFyZW50LT5zdWJUcmFuc2FjdGlv bklkKTsKIAkJQXRFT1N1YlhhY3RfRmlsZXMoZmFsc2UsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXggMzZlMjQzYjNlZDUuLjA5 ZjNmZmE3YjIwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0x NSw2ICsxNSw3IEBACiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAogI2luY2x1ZGUgImFjY2Vzcy9o dHVwX2RldGFpbHMuaCIKKyNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfbGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRl ICJjYXRhbG9nL3BnX3R5cGUuaCIKQEAgLTY0LDYgKzY1LDggQEAgdHlwZWRlZiBzdHJ1Y3QgU1Zh cmlhYmxlRGF0YQogCWJvb2wJCXN0YWNrZWQ7CiAJTG9jYWxUcmFuc2FjdGlvbklkIGNyZWF0ZWRf bHhpZDsKIAlMb2NhbFRyYW5zYWN0aW9uSWQgZHJvcHBlZF9seGlkOworCVN1YlRyYW5zYWN0aW9u SWQgY3JlYXRlZF9zdWJpZDsKKwlTdWJUcmFuc2FjdGlvbklkIGRyb3BwZWRfc3ViaWQ7CiB9IFNW YXJpYWJsZURhdGE7CiAKIHR5cGVkZWYgU1ZhcmlhYmxlRGF0YSAqU1ZhcmlhYmxlOwpAQCAtMzcy LDYgKzM3NSw4IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vz c2lvblZhclN0bXQgKnN0bXQpCiAJc3Zhci0+c3RhY2tlZCA9IGZhbHNlOwogCXN2YXItPmRyb3Bw ZWRfbHhpZCA9IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQ7CiAJc3Zhci0+Y3JlYXRlZF9seGlk ID0gTXlQcm9jLT52eGlkLmx4aWQ7CisJc3Zhci0+ZHJvcHBlZF9zdWJpZCA9IEludmFsaWRTdWJU cmFuc2FjdGlvbklkOworCXN2YXItPmNyZWF0ZWRfc3ViaWQgPSBHZXRDdXJyZW50U3ViVHJhbnNh Y3Rpb25JZCgpOwogCWNyZWF0ZWRfb3JfZHJvcHBlZF9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7 CiB9CiAKQEAgLTQwOCw2ICs0MTMsNyBAQCBEcm9wVmFyaWFibGVCeU5hbWUoRHJvcFNlc3Npb25W YXJTdG10ICpzdG10KQogCQkJCQkJc3RtdC0+bmFtZSkpKTsKIAogCXN2YXItPmRyb3BwZWRfbHhp ZCA9IE15UHJvYy0+dnhpZC5seGlkOworCXN2YXItPmRyb3BwZWRfc3ViaWQgPSBHZXRDdXJyZW50 U3ViVHJhbnNhY3Rpb25JZCgpOwogCWNyZWF0ZWRfb3JfZHJvcHBlZF9seGlkID0gTXlQcm9jLT52 eGlkLmx4aWQ7CiB9CiAKQEAgLTQ3Nyw2ICs0ODMsNyBAQCBBdFByZUVPWGFjdF9TZXNzaW9uVmFy aWFibGVzKGJvb2wgaXNDb21taXQpCiAJCQkJCQlmcmVlX3N0YWNrZWRfc3ZhcnMoc3Zhci0+cHJl dik7CiAJCQkJCQlzdmFyLT5wcmV2ID0gTlVMTDsKIAkJCQkJCXN2YXItPmNyZWF0ZWRfbHhpZCA9 IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQ7CisJCQkJCQlzdmFyLT5jcmVhdGVkX3N1YmlkID0g SW52YWxpZFN1YlRyYW5zYWN0aW9uSWQ7CiAJCQkJCX0KIAkJCQl9CiAJCQkJZWxzZQpAQCAtNTIz LDYgKzUzMCw3IEBAIEF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCkK IAogCQkJCQkJLyogcmV2ZXJ0IGRyb3BwZWQgZmxhZyAqLwogCQkJCQkJc3Zhci0+ZHJvcHBlZF9s eGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKKwkJCQkJCXN2YXItPmRyb3BwZWRfc3Vi aWQgPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKIAkJCQkJfQogCQkJCX0KIAkJCX0KQEAgLTUz Miw2ICs1NDAsMTA3IEBAIEF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1p dCkKIAl9CiB9CiAKKy8qCisgKiBQb3N0LXN1YmNvbW1pdCBvciBwb3N0LXN1YmFib3J0IGNsZWFu dXAKKyAqCisgKiBEdXJpbmcgc3ViYWJvcnQsIHdlIGNhbiBpbW1lZGlhdGVseSByZW1vdmUgZW50 cmllcyBjcmVhdGVkIGR1cmluZyB0aGlzCisgKiBzdWJ0cmFuc2FjdGlvbi4gRHVyaW5nIHN1YmNv bW1pdCwganVzdCB0cmFuc2ZlciBlbnRyaWVzIG1hcmtlZCBkdXJpbmcKKyAqIHRoaXMgc3VidHJh bnNhY3Rpb24gYXMgYmVpbmcgdGhlIHBhcmVudCdzIHJlc3BvbnNpYmlsaXR5LgorICovCit2b2lk CitBdEVPU3ViWGFjdF9TZXNzaW9uVmFyaWFibGVzKGJvb2wgaXNDb21taXQsCisJCQkJCQkJIFN1 YlRyYW5zYWN0aW9uSWQgbXlTdWJpZCwKKwkJCQkJCQkgU3ViVHJhbnNhY3Rpb25JZCBwYXJlbnRT dWJpZCkKK3sKKwlpZiAoY3JlYXRlZF9vcl9kcm9wcGVkX2x4aWQgIT0gSW52YWxpZExvY2FsVHJh bnNhY3Rpb25JZCkKKwl7CisJCUhBU0hfU0VRX1NUQVRVUyBzdGF0dXM7CisJCVNWYXJpYWJsZQlz dmFyOworCisJCUFzc2VydChjcmVhdGVkX29yX2Ryb3BwZWRfbHhpZCA9PSBNeVByb2MtPnZ4aWQu bHhpZCk7CisJCUFzc2VydChzZXNzaW9udmFycyk7CisKKwkJaGFzaF9zZXFfaW5pdCgmc3RhdHVz LCBzZXNzaW9udmFycyk7CisKKwkJd2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFf c2VhcmNoKCZzdGF0dXMpKSAhPSBOVUxMKQorCQl7CisJCQlpZiAoKHN2YXItPmRyb3BwZWRfbHhp ZCAhPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkKSB8fAorCQkJCShzdmFyLT5jcmVhdGVkX2x4 aWQgIT0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZCkpCisJCQl7CisJCQkJaWYgKCFpc0NvbW1p dCkKKwkJCQl7CisJCQkJCVNWYXJpYWJsZSBpdGVyYXRvciA9IHN2YXI7CisJCQkJCVNWYXJpYWJs ZSBsYXN0ID0gTlVMTDsKKwkJCQkJU1ZhcmlhYmxlIGZpcnN0ID0gTlVMTDsKKworCQkJCQkvKiBy ZW1vdmUgZW50cmllcyBvciBmbGFncyBieSBjdXJyZW50IHN1YnRyYW5zYWN0aW9ucyAqLworCQkJ CQl3aGlsZSAoaXRlcmF0b3IpCisJCQkJCXsKKwkJCQkJCVNWYXJpYWJsZSBjdXJyZW50ID0gaXRl cmF0b3I7CisKKwkJCQkJCWl0ZXJhdG9yID0gY3VycmVudC0+cHJldjsKKworCQkJCQkJaWYgKGN1 cnJlbnQtPmRyb3BwZWRfc3ViaWQgPT0gbXlTdWJpZCkKKwkJCQkJCXsKKwkJCQkJCQljdXJyZW50 LT5kcm9wcGVkX2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOworCQkJCQkJCWN1cnJl bnQtPmRyb3BwZWRfc3ViaWQgPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKKwkJCQkJCX0KKwor CQkJCQkJaWYgKGN1cnJlbnQtPmNyZWF0ZWRfc3ViaWQgPT0gbXlTdWJpZCkKKwkJCQkJCXsKKwkJ CQkJCQlmcmVlX3N2YXJfdmFsdWUoY3VycmVudCk7CisJCQkJCQkJaWYgKGN1cnJlbnQtPnN0YWNr ZWQpCisJCQkJCQkJCXBmcmVlKGN1cnJlbnQpOworCQkJCQkJfQorCQkJCQkJZWxzZQorCQkJCQkJ eworCQkJCQkJCS8qIHJlbWVtYmVyIGZpcnN0IG5vdCBkZWxldGVkIHN2YXIgKi8KKwkJCQkJCQlp ZiAoZmlyc3QgPT0gTlVMTCkKKwkJCQkJCQkJZmlyc3QgPSBjdXJyZW50OworCisJCQkJCQkJaWYg KGxhc3QpCisJCQkJCQkJCWxhc3QtPnByZXYgPSBjdXJyZW50OworCisJCQkJCQkJbGFzdCA9IGN1 cnJlbnQ7CisJCQkJCQl9CisJCQkJCX0KKworCQkJCQkvKiBTb21lIHN2YXJzIHdhcyByZW1vdmVk IC0gc2V0IGhhc2h0YWIgZW50cnkgb3IgcmVtb3ZlIGl0ICovCisJCQkJCWlmICghZmlyc3QpCisJ CQkJCXsKKwkJCQkJCS8qIHdlIGhhdmUgdG8gcmVtb3ZlIGVudHJ5IGZyb20gaGFzaCB0YWJsZSAq LworCQkJCQkJKHZvaWQpIGhhc2hfc2VhcmNoKHNlc3Npb252YXJzLAorCQkJCQkJCQkJCSAgIE5h bWVTdHIoc3Zhci0+dmFybmFtZSksCisJCQkJCQkJCQkJICAgSEFTSF9SRU1PVkUsCisJCQkJCQkJ CQkJICAgTlVMTCk7CisJCQkJCX0KKwkJCQkJZWxzZSBpZiAoZmlyc3QtPnN0YWNrZWQpCisJCQkJ CXsKKwkJCQkJCW1lbWNweShzdmFyLCBmaXJzdCwgc2l6ZW9mKFNWYXJpYWJsZURhdGEpKTsKKwkJ CQkJCXN2YXItPnN0YWNrZWQgPSBmYWxzZTsKKwkJCQkJCXBmcmVlKGZpcnN0KTsKKwkJCQkJfQor CQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQlTVmFyaWFibGUgaXRlcmF0b3IgPSBzdmFyOwor CisJCQkJCS8qIHRyYW5zZmVyIHJlc3BvbnNpYmlsaXR5IHRvIHBhcmVudCAqLworCQkJCQl3aGls ZSAoaXRlcmF0b3IpCisJCQkJCXsKKwkJCQkJCWlmIChpdGVyYXRvci0+ZHJvcHBlZF9zdWJpZCA9 PSBteVN1YmlkKQorCQkJCQkJCWl0ZXJhdG9yLT5kcm9wcGVkX3N1YmlkID0gcGFyZW50U3ViaWQ7 CisJCQkJCQlpZiAoaXRlcmF0b3ItPmNyZWF0ZWRfc3ViaWQgPT0gbXlTdWJpZCkKKwkJCQkJCQlp dGVyYXRvci0+Y3JlYXRlZF9zdWJpZCA9IHBhcmVudFN1YmlkOworCisJCQkJCQlpdGVyYXRvciA9 IGl0ZXJhdG9yLT5wcmV2OworCQkJCQl9CisJCQkJfQorCQkJfQorCQl9CisJfQorfQorCiAvKgog ICogQXNzaWduIHRoZSByZXN1bHQgb2YgdGhlIGV2YWx1YXRlZCBleHByZXNzaW9uIHRvIHRoZSBz ZXNzaW9uIHZhcmlhYmxlCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUu aAppbmRleCAxMjE4YzU2Njc2Ny4uNDVjY2JlMmYwNDYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmgKQEAgLTQwLDUgKzQwLDggQEAgZXh0ZXJuIHZvaWQgRXhlY3V0ZUxl dFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMZXRTdG10ICpzdG10LCBQYXJhbUxpc3RJbmZvIHBh cmEKIGV4dGVybiB2b2lkIFJlc2V0U2Vzc2lvblZhcmlhYmxlcyh2b2lkKTsKIAogZXh0ZXJuIHZv aWQgQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0KTsKK2V4dGVybiB2 b2lkIEF0RU9TdWJYYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCwKKwkJCQkJCQkJ CQkgU3ViVHJhbnNhY3Rpb25JZCBteVN1YmlkLAorCQkJCQkJCQkJCSBTdWJUcmFuc2FjdGlvbklk IHBhcmVudFN1YmlkKTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5vdXQKaW5kZXggYzEwNjgwNTEyY2UuLmFmOGUwYjUx NDQ0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFi bGVzX2RkbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlc19kZGwub3V0CkBAIC0xMDcsNCArMTA3LDI1IEBAIFNFTEVDVCBWQVJJQUJMRSh4KTsKICBI aQogKDEgcm93KQogCitCRUdJTjsKK1NBVkVQT0lOVCBzMTsKK0RST1AgVkFSSUFCTEUgeDsKK0NS RUFURSBURU1QIFZBUklBQkxFIHggQVMgdmFyY2hhcjsKK0RST1AgVkFSSUFCTEUgeDsKK0NSRUFU RSBURU1QIFZBUklBQkxFIHggQVMgdmFyY2hhcjsKK0xFVCB4ID0gJ0hlbGxvJzsKK1NFTEVDVCBW QVJJQUJMRSh4KTsKKyAgIHggICAKKy0tLS0tLS0KKyBIZWxsbworKDEgcm93KQorCitST0xMQkFD SyBUTyBzMTsKK1NFTEVDVCBWQVJJQUJMRSh4KTsKKyB4ICAKKy0tLS0KKyBIaQorKDEgcm93KQor CitDT01NSVQ7CiBEUk9QIFZBUklBQkxFIHg7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zZXNzaW9uX3ZhcmlhYmxlc19kZGwuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXNfZGRsLnNxbAppbmRleCA5ZTc5ZmVlZDkyYi4uYTUyMmViOTViNTQgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzX2RkbC5zcWwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXNfZGRsLnNxbApAQCAt OTgsNCArOTgsMTYgQEAgU0VMRUNUIFZBUklBQkxFKHgpOwogUk9MTEJBQ0s7CiBTRUxFQ1QgVkFS SUFCTEUoeCk7CiAKK0JFR0lOOworU0FWRVBPSU5UIHMxOworRFJPUCBWQVJJQUJMRSB4OworQ1JF QVRFIFRFTVAgVkFSSUFCTEUgeCBBUyB2YXJjaGFyOworRFJPUCBWQVJJQUJMRSB4OworQ1JFQVRF IFRFTVAgVkFSSUFCTEUgeCBBUyB2YXJjaGFyOworTEVUIHggPSAnSGVsbG8nOworU0VMRUNUIFZB UklBQkxFKHgpOworUk9MTEJBQ0sgVE8gczE7CitTRUxFQ1QgVkFSSUFCTEUoeCk7CitDT01NSVQ7 CisKIERST1AgVkFSSUFCTEUgeDsKLS0gCjIuNTIuMAoK --0000000000008b48e906456c698a--