Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tVH22-006vvA-52 for pgsql-hackers@arkaria.postgresql.org; Tue, 07 Jan 2025 21:22:35 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tVH21-008UrW-JG for pgsql-hackers@arkaria.postgresql.org; Tue, 07 Jan 2025 21:22:33 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tVH20-008UrO-KD for pgsql-hackers@lists.postgresql.org; Tue, 07 Jan 2025 21:22:32 +0000 Received: from mail-yb1-xb33.google.com ([2607:f8b0:4864:20::b33]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tVH1n-000PeD-08 for pgsql-hackers@lists.postgresql.org; Tue, 07 Jan 2025 21:22:31 +0000 Received: by mail-yb1-xb33.google.com with SMTP id 3f1490d57ef6-e549be93d5eso7164369276.1 for ; Tue, 07 Jan 2025 13:22:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1736284938; x=1736889738; 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=A+vqmmYzhUF4EiP4Awy/HaQMtWoOR8VYA7lePMc34VU=; b=e1+rzaEfZaewBt2QJm3+UiFmmSf5ubCU5ZtGuZLgq06a0XfM/124Yv3oy1MWF/grJt WLlWv9vJWSSO4QWTWRCqvrmjc74NYqmqGWOVd5qfLymhX4mDEKoKy99Sg4+yN+iAMGnE RnsFk5uteRM4k43acZmB35GIGBKzbg56tP8msL4DwPB+DbkBupEI0rpQKJytWXfMUTmE HTwJdLKSyP19hjA8mJ7T4QAPS4aqJcPkZRWJVOIDqFThxAlEe7eAQEu6HTAc9kA+CNtX KIqtfB3MTsAmk0wBPGGwwV+dD83TT0rZenB9koD/fW6MohPRVhyU+94L+FBjY5soH1ic 1Ubw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736284938; x=1736889738; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=A+vqmmYzhUF4EiP4Awy/HaQMtWoOR8VYA7lePMc34VU=; b=D3OArW+l2QxLuxBenfb6os3rGeHPv58vjhX6NIJv0BgiTBOKZpRxZJbNI3yQCdyJBH NmhaO5rOwdsBwL4OC17IfARrxNJTO4TtToSi30XSsIoa9SUcOrHJigoi3wrF62G6f4qK AR8+CDK57Yx29q/fiw2QXLzjqrFdNTybm/mum0BcGJykDVW0jl8GdLvqEru/vbwoSik1 h0s0zOe3L2VJMfSjll8FtgLtF9rX/NCdlghYTTT/tvIWKPkc4G+Apu6D6QXrQ4fE8v56 mD5Q5rk6k2nZMT/6Vny4XV+44Mmhv4UoIyBCuSTCpHiRQSmh1JTY+gTi/4+JEhuKNDTP Vffw== X-Forwarded-Encrypted: i=1; AJvYcCVevgiE1Mp/4gty/xXLG1J33myww2VAI0OCMTxfzm6fAacrQ6lkEa0I6F6qXyLLfL0M00BqhycWW8WiGRD0@lists.postgresql.org X-Gm-Message-State: AOJu0YymTFzE0WMvoxH8hgJhHdojMcPP2ou77TfI+m0D9Cn2FznhWxvs uGHHGqujHAKhUBb7M2n2+c/VlojQZ6oFFs5bV+NBu69yCdOnV7vdjB8TlqqVR1A7hwTbv5rRQmp GiHK62009K/CBO8+nz2HCALuya7U= X-Gm-Gg: ASbGncuTTA9MphZnlEoChfFS3iiENdjc6wDkRCqYXQtwn39sCdbkelvErjvH9986u8A 3ifzUa5vwLwZGPSCXfSKf7FTvWfv9fYsLX8dneomFpUIqs9/Z5vqY1tExOLEvU7u58VOIuY0= X-Google-Smtp-Source: AGHT+IEwivCw5wxvGogPq3pyAceN0vXSDMpP352LLG2h7XgNEo3omTeQqG/5fd47JKOTeQaA47jqHjlLa2xKlY6yckQ= X-Received: by 2002:a05:690c:e09:b0:6ef:6536:bb6f with SMTP id 00721157ae682-6f53125ed3dmr4712697b3.22.1736284937743; Tue, 07 Jan 2025 13:22:17 -0800 (PST) MIME-Version: 1.0 References: <3chredgnjcmccym2kczawfih226b4ac6co7p6z4jeofevrcosi@mrsxkx2x2c65> <20241120201313.t4wbhld4ktgielaf@erthalion.local> In-Reply-To: From: Pavel Stehule Date: Tue, 7 Jan 2025 22:21:38 +0100 X-Gm-Features: AbW1kvb9kaZScOl9zW_pmzEuU_s2UmbYO5NAtcGx88SXcbGSrFT6mY0jhllSpwI Message-ID: Subject: Re: Re: proposal: schema variables To: jian he Cc: Dmitry Dolgov <9erthalion6@gmail.com>, Laurenz Albe , Erik Rijkers , Michael Paquier , Amit Kapila , DUVAL REMI , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000f297a7062b2456dc" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000f297a7062b2456dc Content-Type: multipart/alternative; boundary="000000000000f297a6062b2456da" --000000000000f297a6062b2456da Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi =C3=BAt 7. 1. 2025 v 10:07 odes=C3=ADlatel jian he napsal: > hi. > > some minor issues. > 'transformMergeStmt also needs > "qry->hasSessionVariables =3D pstate->p_hasSessionVariables;" > ? > > yes, done > > acldefault in doc/src/sgml/func.sgml > Need an update for SESSION VARIABLE? > > Table 9.70. Access Privilege Inquiry Functions > sorting order: has_session_variable_privilege should after > has_server_privilege? > > swapped > > Similar to src/test/regress/sql/event_trigger.sql, > we can use the following query to test four functions in > Table 9.79. Object Information and Addressing Functions > (9.27.5. Object Information and Addressing Functions) > for session variables. > > SELECT > e.varname, > pg_describe_object('pg_variable'::regclass, e.oid, 0) as descr, > b.type, b.object_names, b.object_args, > pg_identify_object(a.classid, a.objid, a.objsubid) as ident > FROM pg_variable as e, > LATERAL pg_identify_object_as_address('pg_variable'::regclass, e.oid, 0) > as b, > LATERAL pg_get_object_address(b.type, b.object_names, b.object_args) as a= ; > > done > > in function transformColumnRef > if (expr_kind_allows_session_variables(pstate->p_expr_kind)) > { > } > can change to > if (!node && > !(relname && crerr =3D=3D CRERR_NO_COLUMN) && > expr_kind_allows_session_variables(pstate->p_expr_kind)) > { > } > can reduce the function call of expr_kind_allows_session_variables, > also not lose readability. > In this case, I prefer current code. It is more accented so the code is related to places where variables are allowed. + following patches like GUC-session_variables_ambiguity_warning or variable-fence-syntax~upport-and-variable-fence-usa are less invasive and much more readable. My opinion about it is not extra strong, and surely it can be subjective. I think the current form is quite well readable and the proposed change is not significantly better. > > > typedef struct SVariableData says: > /* > * Stored value and type description can be outdated when we receive = a > * sinval message. We then have to check if the stored data are stil= l > * trustworthy. > */ > bool is_valid; > > CREATE VARIABLE var3 AS int; > LET var3 =3D 10; > GRANT SELECT ON VARIABLE var3 TO regress_noowner; > I don't understand why the last statement GRANT SELECT needs to call > pg_variable_cache_callback? > and it will invalidate the original var3. > Reason is simple - you did the change of pg_variable. Unfortunately, the system of system cache invalidation is sometimes too simple and too aggressive. Inside pg_variable_cache_callback I cannot identify if a related row in pg_variable was removed (by another session) or just updated. Theoretically I can miss the information of what row was touched too. Important note - invalidation in this case doesn't means so variable or the value of variable should be thrown. It just means, so before any usage of the current variable's value, we should recheck our cached data against fresh syscache. Cache invalidation is relative common in Postgres, but validation is very quick - just the check of varcreate_lsn > +/* > + * Returns a copy of the value of the session variable (in the current > memory > + * context). The caller is responsible for permission checks. > + */ > +Datum > +GetSessionVariable(Oid varid, bool *isNull, Oid *typid) > +{ > + SVariable svar; > + > + svar =3D get_session_variable(varid); > + > + /* > + * Although "svar" is freshly validated in this point, svar->is_valid ca= n > + * be false, if an invalidation message ws processed during the domain > check. > + * But the variable and all its dependencies are locked now, so we don't > need > + * to repeat the validation. > + */ > + Assert(svar); > + > + *typid =3D svar->typid; > + > + return copy_session_variable_value(svar, isNull); > +} > typo, "ws processed" should be "was processed". > fixed > also the Assert is not helpful? since svar is NULL, > get_session_variable would have segfault. > also SVariable svar; is not initialized to NULL, so generally it will > not be NULL by default. > assert removed > also the comments seem to imply that before > copy_session_variable_value, svar->is_valid can be false. > if svar->is_valid is false, then why do copy_session_variable_value. > When the flag is_valid is true, then we are sure, so the stored value is valid. When this flag is false, then we are not sure, so this value is valid. But inside one statement, and if the variable was locked, then we don't need to repeat validation (if we did it immediately before), because we are sure, so the related system catalog should be valid, because it is locked, and then we can safely return the value. The flag is_valid can be changed any time when we are using catalog cache - in this case when we do domain check. So although it can look weird after execution get_session_variable we can return the correct value, but the flag is_valid can be false. It doesn't mean, so the current value is wrong. It means, so the next command should repeat validation. In the attached version I rewrote the check if we can or cannot to ACL SELECT check for variable used as base node of assignment indirection. I significantly simplified the code - it is based on fact so we know varid of the base node variable. It should be the same session variable like resultVariable. Then I don't need to use bitmapset of used session variables. Just I can check if this variable is used by param that is not basenode param. Regards Pavel --000000000000f297a6062b2456da Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi

=C3=BAt 7. 1. 2025 v=C2= =A010:07 odes=C3=ADlatel jian he <jian.universality@gmail.com> napsal:
hi.

some minor issues.
'transformMergeStmt also needs
"qry->hasSessionVariables =3D pstate->p_hasSessionVariables;&quo= t;
?


yes, done

=C2= =A0

<function>acldefault</function> in doc/src/sgml/func.sgml
Need an update for SESSION VARIABLE?

Table 9.70. Access Privilege Inquiry Functions
sorting order: has_session_variable_privilege should after has_server_privi= lege?


swapped
=C2=A0

Similar to src/test/regress/sql/event_trigger.sql,
we can use the following query to test four functions in
Table 9.79. Object Information and Addressing Functions
(9.27.5. Object Information and Addressing Functions)
for session variables.

SELECT
=C2=A0 e.varname,
=C2=A0 pg_describe_object('pg_variable'::regclass, e.oid, 0) as des= cr,
=C2=A0 b.type, b.object_names, b.object_args,
=C2=A0 pg_identify_object(a.classid, a.objid, a.objsubid) as ident
FROM pg_variable as e,
LATERAL pg_identify_object_as_address('pg_variable'::regclass, e.oi= d, 0) as b,
LATERAL pg_get_object_address(b.type, b.object_names, b.object_args) as a;<= br>

done

=C2=A0

in function transformColumnRef
if (expr_kind_allows_session_variables(pstate->p_expr_kind))
{
}
can change to
if (!node &&
=C2=A0 =C2=A0 !(relname && crerr =3D=3D CRERR_NO_COLUMN) &&=
=C2=A0 =C2=A0 expr_kind_allows_session_variables(pstate->p_expr_kind)) {
}
can reduce the function call of expr_kind_allows_session_variables,
also not lose readability.

In this case= , I prefer current code. It is more accented so the code is related to plac= es where variables are allowed.
+ following patches like GUC-sess= ion_variables_ambiguity_warning or variable-fence-syntax~upport-and-variabl= e-fence-usa
are less invasive and much more readable.
<= br>
My opinion about it is not extra strong, and surely it can be= subjective. I think the current form is quite well readable
and = the proposed change is not significantly better.

<= div>=C2=A0


typedef struct SVariableData says:
=C2=A0 =C2=A0 /*
=C2=A0 =C2=A0 =C2=A0* Stored value and type description can be outdated whe= n we receive a
=C2=A0 =C2=A0 =C2=A0* sinval message.=C2=A0 We then have to check if the st= ored data are still
=C2=A0 =C2=A0 =C2=A0* trustworthy.
=C2=A0 =C2=A0 =C2=A0*/
=C2=A0 =C2=A0 bool=C2=A0 =C2=A0 =C2=A0 =C2=A0 is_valid;

CREATE VARIABLE var3 AS int;
LET var3 =3D 10;
GRANT SELECT ON VARIABLE var3 TO regress_noowner;
I don't understand why the last statement GRANT SELECT needs to call pg_variable_cache_callback?
and it will invalidate the original var3.

Reason is simple - you did the change of pg_variable. Unfortunately, the= system of system cache invalidation is sometimes too simple and too aggres= sive.
Inside pg_variable_cache_callback I cannot identify if = a related row in pg_variable was removed (by another session) or just updat= ed.
Theoretically I can miss the information of what row was touc= hed too. Important note - invalidation in this case doesn't means so va= riable or the
value of variable should be thrown. It just means, = so before any usage of the current variable's value, we should recheck = our cached data against
fresh syscache. Cache invalidation is rel= ative common in Postgres, but validation is very quick - just the check of = varcreate_lsn
=C2=A0
+/*
+ * Returns a copy of the value of the session variable (in the current mem= ory
+ * context).=C2=A0 The caller is responsible for permission checks.
+ */
+Datum
+GetSessionVariable(Oid varid, bool *isNull, Oid *typid)
+{
+ SVariable svar;
+
+ svar =3D get_session_variable(varid);
+
+ /*
+ * Although "svar" is freshly validated in this point, svar->= is_valid can
+ * be false, if an invalidation message ws processed during the domain che= ck.
+ * But the variable and all its dependencies are locked now, so we don'= ;t need
+ * to repeat the validation.
+ */
+ Assert(svar);
+
+ *typid =3D svar->typid;
+
+ return copy_session_variable_value(svar, isNull);
+}
typo, "ws processed" should be "was processed".

fixed
=C2=A0
also the Assert is not helpful? since svar is NULL,
get_session_variable would have segfault.
also SVariable svar; is not initialized to NULL, so generally it will
not be NULL by default.

assert removed<= /div>
=C2=A0
also the comments seem to imply that before
copy_session_variable_value, svar->is_valid can be false.
if svar->is_valid is false, then why do copy_session_variable_value.
=

When the flag is_valid is true, then we ar= e sure, so the stored value is valid. When this flag is false, then we are = not sure, so this value is valid. But inside one statement,
and i= f the variable was locked, then we don't need to repeat validation (if = we did it immediately before), because we are sure, so the related system c= atalog should be valid, because it is locked, and then we can safely return= the value. The flag is_valid can be changed any time when we are using cat= alog cache - in this case when we do domain check. So although it can look<= /div>
weird after execution get_session_variable we can return the corr= ect value, but the flag is_valid can be false. It doesn't mean, so the = current value is wrong. It means, so the next command
should repe= at validation.

In the attached version I rewr= ote the check if we can or cannot to ACL SELECT check for variable used as = base node of assignment indirection. I significantly simplified the code - = it is based on fact so we know varid of the base node variable. It should b= e the same session variable like resultVariable. Then I don't need to u= se bitmapset of used session variables. Just I can check if this variable i= s used by param that is not basenode param.

R= egards

Pavel
--000000000000f297a6062b2456da-- --000000000000f297a7062b2456dc Content-Type: text/x-patch; charset="US-ASCII"; name="v20250107-0021-transactional-variables.patch" Content-Disposition: attachment; filename="v20250107-0021-transactional-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5mz6bfp1 RnJvbSA0ZDJjY2NkMzM1ZDkxYWUzNTcwYmQ3MzAwM2IzZDc2NmE5MTE4YmNkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNToxMTozMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MjEvMjJdIHRyYW5zYWN0aW9uYWwgdmFyaWFibGVzCgpUaGlzIGNvbW1pdCBpbXBsZW1lbnRzIHRy YW5zYWN0aW9uYWwgdmFyaWFibGVzLiBUaGUgY29udGVudCBvZiB0cmFuc2FjdGlvbmFsCnNlc3Np b24gdmFyaWFibGVzIGlzIHNlbnNpdGl2ZSB0byB0cmFuc2FjdGlvbnMgYW5kIHN1YnRyYW5zYWN0 aW9ucy4gQW55CnRyYW5zYWN0aW9uYWwgdmFyaWFibGUgaG9sZHMgYSBoaXN0b3J5IG9mIHZhbHVl cyBuZWNlc3NhcnkgZm9yIHJldmVydC4gVGhpcyBoaXN0b3J5CmlzIGNsZWFuZWQgKHB1cmdlZCkg d2hlbiBhKSB3ZSByZWFkIHRoZSB2YXJpYWJsZSwgYikgd2hlbiB0aGUgdHJhbnNhY3Rpb24gaXMg ZmluaXNoZWQuCgpXZSBkb24ndCB0cnkgdG8gcHVyZ2UsIHdoZW4gdGhlIGxhc3QgbW9kaWZpY2F0 aW9uIG9mIGEgdmFyaWFibGUgaXMgZnJvbQpjdXJyZW50IHN1YnRyYW5zYWN0aW9uLCBvciB3aGVu IHB1cmdlIHdhcyBwcm9jZXNzZWQgaW4gY3VycmVudCBzdWJ0cmFuc2FjdGlvbi4KClRoaXMgcGF0 Y2ggaXMgYmFzZWQgb24gbXkgd29yayBmcm9tIEZlYiAyMDIwIGFuZCBpdCBpcyByZWxhdGVkIHRv IGRpc2N1c3Npb24KYWJvdXQgZmVhdHVyZXMgcmVsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxlcy4g Tm93LCB3aGVuIHRoZSBhbGwgZmVhdHVyZXMgYXJlCnNlcGFyYXRlZCB0byBpc29sYXRlZCBwYXRj aGVzIEkgY2FuIHJldml0YWxpemUgdGhpcyBwYXRjaCwgYmVjYXVzZSBpdCBkb2Vzbid0CmluY3Jl YXNlIGNvbXBsZXhpdHkgb2YgYmFzaWMgcGF0Y2hlcy4KClVubGlrZSBvdGhlciBwYXRjaGVzLCB0 aGlzIHBhdGNoIGlzIHdpdGhvdXQgYW55IHJldmlldyBhdCB0aGlzIG1vbWVudCAoRmViIDIwMjQp LApidXQgdGhlIGZlYXR1cmUgc2hvdWxkIGJlIGZ1bGx5IGZ1bmN0aW9uYWwgZm9yIHBlb3BsZSB3 aG8gYXJlIGludGVyZXN0ZWQgYWJvdXQKdGhpcyBmZWF0dXJlIChmb3IgdGVzdGluZykuCi0tLQog ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDEyICsKIGRv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAxMCArLQogc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDMwMSArKysrKysrKysr KysrKysrKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8 ICA1MCArLS0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8 ICAxMCArLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwg ICAxICsKIHNyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8ICAz NiArKysKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAg NCArLQogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgICA1 ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAgMyAr CiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDEgKwog c3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgICAgICAgICAgICB8ICAzNiArLS0KIC4u Li9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDEwMCArKysrKysK IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA1OCArKysr CiAxNiBmaWxlcyBjaGFuZ2VkLCA1ODcgaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbAppbmRleCA5YWIyNGRmNTI4Mi4uNDU4MmVhMTY0MGYgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s CkBAIC05ODU4LDYgKzk4NTgsMTggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0 ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwv cGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5Pjxz dHJ1Y3RmaWVsZD52YXJpc3RyYW5zYWN0PC9zdHJ1Y3RmaWVsZD48L2VudHJ5PgorICAgICAgPGVu dHJ5Pjx0eXBlPmJvb2xlYW48L3R5cGU+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48L2VudHJ5Pgor ICAgICAgPGVudHJ5PgorICAgICAgIFRydWUsIHdoZW4gdGhlIHZhcmlhYmxlIGlzIDxxdW90ZT50 cmFuc2FjdGlvbmFsPC9xdW90ZT4uIEluIHRoZSBjYXNlCisgICAgICAgb2YgYSB0cmFuc2FjdGlv biByb2xsYmFjaywgdHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMgYXJlIHJlc2V0IHRvIHRoZQorICAg ICAgIHZhbHVlIHRoZXkgaGFkIHdoZW4gdGhlIHRyYW5zYWN0aW9uIHN0YXJ0ZWQuIFRoZSBkZWZh dWx0IHZhbHVlIGlzCisgICAgICAgPGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+LgorICAgICAgPC9l bnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CiAgICAgICAg PHN0cnVjdGZpZWxkPnZhcmVveGFjdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXI8L3R5cGU+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCAxZmVkOTdkMTVhMy4uNDQ0 Y2RhYTg3OTIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMjYsNyAr MjYsNyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAogIDxyZWZzeW5vcHNpc2Rpdj4KIDxz eW5vcHNpcz4KLUNSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gWyBJTU1VVEFCTEUgXSBW QVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCitDUkVBVEUgWyB7IFRFTVBPUkFSWSB8 IFRFTVAgfSBdIFsgeyBUUkFOU0FDVElPTkFMIHwgVFJBTlNBQ1RJT04gfSBdIFsgSU1NVVRBQkxF IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQogICAgIFsgTk9UIE5VTEwgXSBb IERFRkFVTFQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRlZmF1bHRfZXhwcjwvcmVw bGFjZWFibGU+IF0gWyB7IE9OIENPTU1JVCBEUk9QIHwgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VU IH0gXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2PgpAQCAtNDcsNiArNDcsMTQgQEAg Q1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBbIElNTVVUQUJMRSBdIFZBUklBQkxFIFsg SUYgTk9UIEVYSVNUUyBdIDxyZXBsYWMKICAgIHNhbWUgYXMgcmVndWxhciB2YXJpYWJsZXMgaW4g cHJvY2VkdXJhbCBsYW5ndWFnZXMuCiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIFdoZW4gYSBz Y2hlbWEgdmFyaWFibGUgaXMgY3JlYXRlZCB3aXRoIGEKKyAgIDxjb21tYW5kPkNSRUFURSBUUkFO U0FDVElPTkFMIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kLCB0aGUgdmFyaWFibGVzCisgICBj b250ZW50IGNoYW5nZXMgYXJlIHRyYW5zYWN0aW9uYWw6IGluIGNhc2Ugb2Ygcm9sbGJhY2ssIHRo ZXkgYXJlIHJlc2V0IHRvCisgICB0aGVpciB2YWx1ZSBhdCB0aGUgYmVnaW5uaW5nIG9mIHRoZSB0 cmFuc2FjdGlvbiBvciB0aGUgbGF0ZXN0IHN1YnRyYW5zYWN0aW9uLgorICAgVGhlIHZhcmlhYmxl IGNvbnRlbnQgaXMgb25seSBob2xkIGluIG1lbW9yeSwgYW5kIHRodXMgaXMgbm90IHBlcnNpc3Rl bnQuCisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIFNlc3Npb24gdmFyaWFibGVzIGFyZSByZXRy aWV2ZWQgYnkgdGhlIDxjb21tYW5kPlNFTEVDVDwvY29tbWFuZD4KICAgIGNvbW1hbmQuICBUaGVp ciB2YWx1ZSBpcyBzZXQgd2l0aCB0aGUgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCmluZGV4IDBiNjA5M2EwMGJhLi5mYTQ5ZTcyMzNkNSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtNDIsNiArNDIsNyBAQCBzdGF0aWMgT2Jq ZWN0QWRkcmVzcyBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQkJCQkJ CSBib29sIGlmX25vdF9leGlzdHMsCiAJCQkJCQkJCQkgYm9vbCBub3RfbnVsbCwKIAkJCQkJCQkJ CSBib29sIGlzX2ltbXV0YWJsZSwKKwkJCQkJCQkJCSBib29sIGlzX3RyYW5zYWN0LAogCQkJCQkJ CQkJIE5vZGUgKnZhckRlZmV4cHIsCiAJCQkJCQkJCQkgVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZh clhhY3RFbmRBY3Rpb24pOwogCkBAIC01OSw2ICs2MCw3IEBAIGNyZWF0ZV92YXJpYWJsZShjb25z dCBjaGFyICp2YXJOYW1lLAogCQkJCWJvb2wgaWZfbm90X2V4aXN0cywKIAkJCQlib29sIG5vdF9u dWxsLAogCQkJCWJvb2wgaXNfaW1tdXRhYmxlLAorCQkJCWJvb2wgaXNfdHJhbnNhY3QsCiAJCQkJ Tm9kZSAqdmFyRGVmZXhwciwKIAkJCQlWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFyWGFjdEVuZEFj dGlvbikKIHsKQEAgLTEyMyw2ICsxMjUsNyBAQCBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAq dmFyTmFtZSwKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjb2xsYXRpb24gLSAxXSA9IE9i amVjdElkR2V0RGF0dW0odmFyQ29sbGF0aW9uKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92 YXJub3RudWxsIC0gMV0gPSBCb29sR2V0RGF0dW0obm90X251bGwpOwogCXZhbHVlc1tBbnVtX3Bn X3ZhcmlhYmxlX3ZhcmlzaW1tdXRhYmxlIC0gMV0gPSBCb29sR2V0RGF0dW0oaXNfaW1tdXRhYmxl KTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJpc3RyYW5zYWN0IC0gMV0gPSBCb29sR2V0 RGF0dW0oaXNfdHJhbnNhY3QpOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnhhY3RlbmRh Y3Rpb24gLSAxXSA9IENoYXJHZXREYXR1bSh2YXJYYWN0RW5kQWN0aW9uKTsKIAogCWlmICh2YXJE ZWZleHByKQpAQCAtMjY3LDYgKzI3MCw3IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQkJICAgc3RtdC0+aWZfbm90 X2V4aXN0cywKIAkJCQkJCQkgICBzdG10LT5ub3RfbnVsbCwKIAkJCQkJCQkgICBzdG10LT5pc19p bW11dGFibGUsCisJCQkJCQkJICAgc3RtdC0+aXNfdHJhbnNhY3QsCiAJCQkJCQkJICAgY29va2Vk X2RlZmF1bHQsCiAJCQkJCQkJICAgc3RtdC0+WGFjdEVuZEFjdGlvbik7CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCAwY2YyM2ViNDgxMC4uMDBjNzdlYTQ3Y2Eg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTU1LDYgKzU1LDE5 IEBAIHR5cGVkZWYgc3RydWN0IFNWYXJpYWJsZVhBY3REcm9wSXRlbQogaW50CQlzZXNzaW9uX3Zh cmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZCA9CiAJCQkJCQkJCVNFU1NJT05WQVJJQUJM RV9VU0VfRkVOQ0VfQ09OVEVYVF9HVUFSRF9OT05FOwogCisvKgorICogVXNlZCBmb3IgdHJhbnNh Y3Rpb25hbCB2YXJpYWJsZXMuIEhvbGRzIHByZXYgdmVyc2lvbi4KKyAqLwordHlwZWRlZiBzdHJ1 Y3QgUHJldlZhbHVlCit7CisJRGF0dW0JCXZhbHVlOworCWJvb2wJCWlzbnVsbDsKKworCVN1YlRy YW5zYWN0aW9uSWQgbW9kaWZ5X3N1YmlkOworCisJc3RydWN0IFByZXZWYWx1ZSAqcHJldl92YWx1 ZTsKK30gUHJldlZhbHVlOworCiAvKgogICogVGhlIHZhbHVlcyBvZiBzZXNzaW9uIHZhcmlhYmxl cyBhcmUgc3RvcmVkIGluIHRoZSBiYWNrZW5kJ3MgcHJpdmF0ZSBtZW1vcnkKICAqIGluIHRoZSBk ZWRpY2F0ZWQgbWVtb3J5IGNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCBpbiBiaW5hcnkg Zm9ybWF0LgpAQCAtNzYsNiArODksMjUgQEAgdHlwZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlRGF0YQog CWJvb2wJCWlzbnVsbDsKIAlEYXR1bQkJdmFsdWU7CiAKKwkvKgorCSAqIFdlIGRvbid0IG5lZWQg c3RhY2sgdmVyc2lvbnMgbW9kaWZpZWQgaW4gc2FtZSBzdWJ0cmFuc2FjdGlvbi4KKwkgKiBVc2Vk IGJ5IHRyYW5zYWN0aW9uYWwgdmFyaWFibGVzIG9ubHkuIFRoZSB2YWx1ZSBvZiB0cmFuc2FjdGlv bmFsCisJICogdmFyaWFibGUgY2FuIGJlIHJldHVybmVkIGltbWVkaWF0ZWx5IHdoZW4gbW9kaWZ5 X3N1YmlkIGlzIHNhbWUKKwkgKiBsaWtlIGN1cnJlbnQgc3ViaWQuCisJICovCisJU3ViVHJhbnNh Y3Rpb25JZCBtb2RpZnlfc3ViaWQ7CisKKwkvKgorCSAqIFdoZW4gdGhlIG1vZGlmeV9zdWJpZCBp cyBkaWZmZXJlbnQgdGhhbiBjdXJyZW50IHN1YmlkLCB0aGVuCisJICogd2UgbmVlZCB0byByZWNo ZWNrIHZlcnNpb25zIGFuZCB0aHJvdyB2ZXJzaW9ucyByZWxhdGVkIHRvCisJICogcmV2ZXJ0ZWQg dHJhbnNhY3Rpb25zLiBXaGVuIHB1cmdlX3N1YmlkIGlzIHNhbWUgbGlrZSBjdXJyZW50IHN1Ymlk CisJICogd2UgY2FuIHJldHVybiB0aGUgdmFsdWUgb2YgdHJhbnNhY3Rpb24gdmFyaWFibGUgd2l0 aG91dCB0aGlzCisJICogcmVjaGVjay4KKwkgKi8KKwlTdWJUcmFuc2FjdGlvbklkIHB1cmdlX3N1 YmlkOworCisJUHJldlZhbHVlICAqcHJldl92YWx1ZTsKKwogCU9pZAkJCXR5cGlkOwogCWludDE2 CQl0eXBsZW47CiAJYm9vbAkJdHlwYnl2YWw7CkBAIC05NCw2ICsxMjYsNyBAQCB0eXBlZGVmIHN0 cnVjdCBTVmFyaWFibGVEYXRhCiAKIAlib29sCQlub3RfbnVsbDsKIAlib29sCQlpc19pbW11dGFi bGU7CisJYm9vbAkJaXNfdHJhbnNhY3Q7CiAKIAlib29sCQlyZXNldF9hdF9lb3g7CiAKQEAgLTEz Myw2ICsxNjYsOSBAQCBzdGF0aWMgYm9vbCBuZWVkc192YWxpZGF0aW9uID0gZmFsc2U7CiAgKi8K IHN0YXRpYyBib29sIGhhc19zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCA9IGZh bHNlOwogCisvKiB0cnVlLCB3aGVuIHRyYW5zYWN0aW9uYWwgdmFyaWFibGVzIHdhcyBtb2RpZmll ZCAqLworc3RhdGljIGJvb2wgaGFzX21vZGlmaWVkX3RyYW5zYWN0aW9uYWxfdmFyaWFibGVzID0g ZmFsc2U7CisKIC8qCiAgKiBUaGUgY29udGVudCBvZiBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVz IGlzIG5vdCByZW1vdmVkIGltbWVkaWF0ZWx5LiAgSWYKICAqIHBvc3NpYmxlLCB3ZSBkbyB0aGF0 IGF0IHRoZSBlbmQgb2YgdGhlIHRyYW5zYWN0aW9uLiAgQnV0IHdlIGNhbm5vdCBkbyB0aGF0CkBA IC0xNDgsNiArMTg0LDcgQEAgc3RhdGljIExpc3QgKnhhY3RfZHJvcF9pdGVtcyA9IE5JTDsKIAog c3RhdGljIHZvaWQgcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlk KTsKIHN0YXRpYyB2b2lkIHVucmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AoT2lk IHZhcmlkKTsKK3N0YXRpYyBib29sIHB1cmdlX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2 YXIpOwogCiAvKgogICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHNlc3Npb24gdmFyaWFibGUgaW52 YWxpZGF0aW9uLgpAQCAtMzAwLDggKzMzNywyNSBAQCB1bnJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFi bGVfeGFjdF9kcm9wKE9pZCB2YXJpZCkKICAqIFJlbGVhc2Ugc3RvcmVkIHZhbHVlLCBmcmVlIG1l bW9yeQogICovCiBzdGF0aWMgdm9pZAotZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKFNWYXJp YWJsZSBzdmFyKQorZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKFNWYXJpYWJsZSBzdmFyLCBi b29sIGRlZXBfZnJlZSkKIHsKKwlpZiAoZGVlcF9mcmVlKQorCXsKKwkJUHJldlZhbHVlICpwcmV2 X3ZhbHVlID0gc3Zhci0+cHJldl92YWx1ZTsKKwkJUHJldlZhbHVlICpuZXh0X3ZhbHVlOworCisJ CXdoaWxlIChwcmV2X3ZhbHVlKQorCQl7CisJCQlpZiAoIXN2YXItPnR5cGJ5dmFsKQorCQkJCXBm cmVlKERhdHVtR2V0UG9pbnRlcihwcmV2X3ZhbHVlLT52YWx1ZSkpOworCisJCQluZXh0X3ZhbHVl ID0gcHJldl92YWx1ZS0+cHJldl92YWx1ZTsKKwkJCXBmcmVlKHByZXZfdmFsdWUpOworCisJCQlw cmV2X3ZhbHVlID0gbmV4dF92YWx1ZTsKKwkJfQorCX0KKwogCS8qIGNsZWFuIHRoZSBjdXJyZW50 IHZhbHVlICovCiAJaWYgKCFzdmFyLT5pc251bGwpCiAJewpAQCAtMzk4LDcgKzQ1Miw3IEBAIHJl bW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKGJvb2wgYXRFT1gpCiAJCQl7CiAJCQkJT2lk CQkJdmFyaWQgPSBzdmFyLT52YXJpZDsKIAotCQkJCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1 ZShzdmFyKTsKKwkJCQlmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3ZhciwgdHJ1ZSk7CiAJ CQkJaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwgSEFTSF9SRU1PVkUsIE5VTEwpOwog CQkJCXN2YXIgPSBOVUxMOwogCQkJfQpAQCAtNDM0LDYgKzQ4OCw5NCBAQCByZW1vdmVfc2Vzc2lv bl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3godm9pZCkKIAloYXNfc2Vzc2lvbl92YXJpYWJs ZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKIH0KIAorLyoKKyAqIHJlbW92ZSBwcmV2IHZh bHVlcyBhdCBlb3gKKyAqLworc3RhdGljIHZvaWQKK3JlbW92ZV9wcmV2X3ZhbHVlc19hdF9lb3go Ym9vbCBpc0NvbW1pdCkKK3sKKwlIQVNIX1NFUV9TVEFUVVMgc3RhdHVzOworCVNWYXJpYWJsZQlz dmFyOworCisJaWYgKCFzZXNzaW9udmFycykKKwkJcmV0dXJuOworCisJLyogbGVhdmUgcXVja2x5 LCB3aGVuIHRoZXJlIGFyZSBub3QgdGhhdCB2YXJpYWJsZXMgKi8KKwlpZiAoIWhhc19tb2RpZmll ZF90cmFuc2FjdGlvbmFsX3ZhcmlhYmxlcykKKwkJcmV0dXJuOworCisJaGFzaF9zZXFfaW5pdCgm c3RhdHVzLCBzZXNzaW9udmFycyk7CisJd2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9z ZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBOVUxMKQorCXsKKwkJaWYgKHN2YXItPmlzX3RyYW5zYWN0 ICYmIHN2YXItPm1vZGlmeV9zdWJpZCAhPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZCkKKwkJewor CQkJaWYgKGlzQ29tbWl0KQorCQkJeworCQkJCWlmIChwdXJnZV9zZXNzaW9uX3ZhcmlhYmxlKHN2 YXIpKQorCQkJCXsKKwkJCQkJUHJldlZhbHVlICpwcmV2X3ZhbHVlID0gc3Zhci0+cHJldl92YWx1 ZTsKKworCQkJCQl3aGlsZSAocHJldl92YWx1ZSkKKwkJCQkJeworCQkJCQkJUHJldlZhbHVlICpj dXJyZW50X3B2ID0gcHJldl92YWx1ZTsKKworCQkJCQkJaWYgKCFzdmFyLT50eXBieXZhbCAmJiAh Y3VycmVudF9wdi0+aXNudWxsKQorCQkJCQkJCXBmcmVlKERhdHVtR2V0UG9pbnRlcihjdXJyZW50 X3B2LT52YWx1ZSkpOworCisJCQkJCQlwcmV2X3ZhbHVlID0gY3VycmVudF9wdi0+cHJldl92YWx1 ZTsKKwkJCQkJCXBmcmVlKGN1cnJlbnRfcHYpOworCQkJCQl9CisJCQkJfQorCQkJCWVsc2UKKwkJ CQl7CisJCQkJCWhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmc3Zhci0+dmFyaWQsIEhBU0hfUkVN T1ZFLCBOVUxMKTsKKwkJCQkJc3ZhciA9IE5VTEw7CisJCQkJfQorCQkJfQorCQkJZWxzZQorCQkJ eworCQkJCVByZXZWYWx1ZSAqcHJldl92YWx1ZSA9IHN2YXItPnByZXZfdmFsdWU7CisKKwkJCQl3 aGlsZSAocHJldl92YWx1ZSkKKwkJCQl7CisJCQkJCVByZXZWYWx1ZSAqY3VycmVudF9wdiA9IHBy ZXZfdmFsdWU7CisKKwkJCQkJaWYgKGN1cnJlbnRfcHYtPm1vZGlmeV9zdWJpZCA9PSBJbnZhbGlk U3ViVHJhbnNhY3Rpb25JZCkKKwkJCQkJCWJyZWFrOworCisJCQkJCWlmICghc3Zhci0+dHlwYnl2 YWwgJiYgIWN1cnJlbnRfcHYtPmlzbnVsbCkKKwkJCQkJCXBmcmVlKERhdHVtR2V0UG9pbnRlcihj dXJyZW50X3B2LT52YWx1ZSkpOworCisJCQkJCXByZXZfdmFsdWUgPSBjdXJyZW50X3B2LT5wcmV2 X3ZhbHVlOworCQkJCQlwZnJlZShjdXJyZW50X3B2KTsKKwkJCQl9CisKKwkJCQlpZiAocHJldl92 YWx1ZSkKKwkJCQl7CisJCQkJCXN2YXItPnZhbHVlID0gcHJldl92YWx1ZS0+dmFsdWU7CisJCQkJ CXN2YXItPmlzbnVsbCA9IHByZXZfdmFsdWUtPmlzbnVsbDsKKworCQkJCQlwZnJlZShwcmV2X3Zh bHVlKTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJaGFzaF9zZWFyY2goc2Vzc2lvbnZh cnMsICZzdmFyLT52YXJpZCwgSEFTSF9SRU1PVkUsIE5VTEwpOworCQkJCQlzdmFyID0gTlVMTDsK KwkJCQl9CisJCQl9CisKKwkJCS8qIHdoZW4gc3ZhciBpcyBzdGlsbCB2YWxpZCAobm90IHJlbW92 ZWQgZnJvbSBzZXNzaW9udmFycyAqLworCQkJaWYgKHN2YXIpCisJCQl7CisJCQkJc3Zhci0+bW9k aWZ5X3N1YmlkID0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQ7CisJCQkJc3Zhci0+cHJldl92YWx1 ZSA9IE5VTEw7CisJCQl9CisJCX0KKwl9CisKKwloYXNfbW9kaWZpZWRfdHJhbnNhY3Rpb25hbF92 YXJpYWJsZXMgPSBmYWxzZTsKK30KKwogLyoKICAgKiBQZXJmb3JtIE9OIENPTU1JVCBEUk9QIGZv ciB0ZW1wb3Jhcnkgc2Vzc2lvbiB2YXJpYWJsZXMsCiAgICogYW5kIHJlbW92ZSBhbGwgZHJvcHBl ZCB2YXJpYWJsZXMgZnJvbSBtZW1vcnkuCkBAIC00ODEsNiArNjIzLDggQEAgQXRQcmVFT1hhY3Rf U2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0KQogCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9u X3ZhcmlhYmxlcyh0cnVlKTsKIAl9CiAKKwlyZW1vdmVfcHJldl92YWx1ZXNfYXRfZW94KGlzQ29t bWl0KTsKKwogCS8qCiAJICogV2UgaGF2ZSB0byBjbGVhbiB4YWN0X2Ryb3BfaXRlbXMuIEFsbCBy ZWxhdGVkIHZhcmlhYmxlcyBhcmUgZHJvcHBlZAogCSAqIG5vdywgb3IgbG9zdCBpbnNpZGUgYWJv cnRlZCB0cmFuc2FjdGlvbi4KQEAgLTYyNiw2ICs3NzAsNyBAQCBzZXR1cF9zZXNzaW9uX3Zhcmlh YmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3JpdGUpCiAKIAlzdmFyLT5u b3RfbnVsbCA9IHZhcmZvcm0tPnZhcm5vdG51bGw7CiAJc3Zhci0+aXNfaW1tdXRhYmxlID0gdmFy Zm9ybS0+dmFyaXNpbW11dGFibGU7CisJc3Zhci0+aXNfdHJhbnNhY3QgPSB2YXJmb3JtLT52YXJp c3RyYW5zYWN0OwogCiAJc3Zhci0+aXNfZG9tYWluID0gKGdldF90eXB0eXBlKHZhcmZvcm0tPnZh cnR5cGUpID09IFRZUFRZUEVfRE9NQUlOKTsKIAlzdmFyLT5kb21haW5fY2hlY2tfZXh0cmEgPSBO VUxMOwpAQCAtNjUxLDYgKzc5NiwxNyBAQCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJs ZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3JpdGUpCiAJc3Zhci0+aXNudWxsID0gdHJ1ZTsK IAlzdmFyLT52YWx1ZSA9IChEYXR1bSkgMDsKIAorCWlmIChzdmFyLT5pc190cmFuc2FjdCkKKwl7 CisJCXN2YXItPm1vZGlmeV9zdWJpZCA9IEdldEN1cnJlbnRTdWJUcmFuc2FjdGlvbklkKCk7CisJ CWhhc19tb2RpZmllZF90cmFuc2FjdGlvbmFsX3ZhcmlhYmxlcyA9IHRydWU7CisJfQorCWVsc2UK KwkJc3Zhci0+bW9kaWZ5X3N1YmlkID0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQ7CisKKwlzdmFy LT5wdXJnZV9zdWJpZCA9IEludmFsaWRTdWJUcmFuc2FjdGlvbklkOworCXN2YXItPnByZXZfdmFs dWUgPSBOVUxMOworCiAJc3Zhci0+aXNfdmFsaWQgPSB0cnVlOwogCiAJc3Zhci0+aGFzaHZhbHVl ID0gR2V0U3lzQ2FjaGVIYXNoVmFsdWUxKFZBUklBQkxFT0lELApAQCAtNjg0LDYgKzg0MCw2OSBA QCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wg aXNfd3JpdGUpCiAJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CiB9CiAKKy8qCisgKiBUcnkgdG8gcmVt b3ZlIGFsbCBwcmV2aW91cyB2ZXJzaW9ucyByZWxhdGVkIHRvIHJldmVydGVkIHRyYW5zYWN0aW9u cy4KKyAqIFJldHVybnMgdHJ1ZSwgd2hlbiB2YWxpZCB2ZXJzaW9uIHdhcyBmb3VuZC4KKyAqLwor c3RhdGljIGJvb2wKK3B1cmdlX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIpCit7CisJ U3ViVHJhbnNhY3Rpb25JZCBjdXJyZW50X3N1YmlkOworCVByZXZWYWx1ZQkgICAqcHJldl92YWx1 ZTsKKwlib29sCQkJZm91bmQgPSB0cnVlOworCisJQXNzZXJ0KHN2YXItPmlzX3RyYW5zYWN0KTsK KworCWlmIChzdmFyLT5tb2RpZnlfc3ViaWQgPT0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQpCisJ CXJldHVybiB0cnVlOworCisJY3VycmVudF9zdWJpZCA9IEdldEN1cnJlbnRTdWJUcmFuc2FjdGlv bklkKCk7CisKKwlpZiAoc3Zhci0+bW9kaWZ5X3N1YmlkID09IGN1cnJlbnRfc3ViaWQpCisJCXJl dHVybiB0cnVlOworCisJaWYgKHN2YXItPnB1cmdlX3N1YmlkID09IGN1cnJlbnRfc3ViaWQpCisJ CXJldHVybiB0cnVlOworCisJaWYgKFN1YlRyYW5zYWN0aW9uSXNBY3RpdmUoc3Zhci0+bW9kaWZ5 X3N1YmlkKSkKKwl7CisJCXN2YXItPnB1cmdlX3N1YmlkID0gY3VycmVudF9zdWJpZDsKKwkJcmV0 dXJuIHRydWU7CisJfQorCisJcHJldl92YWx1ZSA9IHN2YXItPnByZXZfdmFsdWU7CisKKwl3aGls ZSAocHJldl92YWx1ZSkKKwl7CisJCVByZXZWYWx1ZSAqY3VycmVudF9wdiA9IHByZXZfdmFsdWU7 CisKKwkJaWYgKGN1cnJlbnRfcHYtPm1vZGlmeV9zdWJpZCA9PSBJbnZhbGlkU3ViVHJhbnNhY3Rp b25JZCB8fAorCQkJU3ViVHJhbnNhY3Rpb25Jc0FjdGl2ZShjdXJyZW50X3B2LT5tb2RpZnlfc3Vi aWQpKQorCQl7CisJCQlzdmFyLT52YWx1ZSA9IGN1cnJlbnRfcHYtPnZhbHVlOworCQkJc3Zhci0+ aXNudWxsID0gY3VycmVudF9wdi0+aXNudWxsOworCQkJc3Zhci0+bW9kaWZ5X3N1YmlkID0gY3Vy cmVudF9wdi0+bW9kaWZ5X3N1YmlkOworCisJCQlwcmV2X3ZhbHVlID0gY3VycmVudF9wdi0+cHJl dl92YWx1ZTsKKwkJCXBmcmVlKGN1cnJlbnRfcHYpOworCisJCQlmb3VuZCA9IHRydWU7CisJCQli cmVhazsKKwkJfQorCisJCWlmICghc3Zhci0+dHlwYnl2YWwgJiYgIWN1cnJlbnRfcHYtPmlzbnVs bCkKKwkJCXBmcmVlKERhdHVtR2V0UG9pbnRlcihjdXJyZW50X3B2LT52YWx1ZSkpOworCisJCXBy ZXZfdmFsdWUgPSBjdXJyZW50X3B2LT5wcmV2X3ZhbHVlOworCQlwZnJlZShjdXJyZW50X3B2KTsK Kwl9CisKKwlzdmFyLT5wcmV2X3ZhbHVlID0gcHJldl92YWx1ZTsKKwlzdmFyLT5wdXJnZV9zdWJp ZCA9IGN1cnJlbnRfc3ViaWQ7CisKKwlyZXR1cm4gZm91bmQ7Cit9CisKIC8qCiAgKiBBc3NpZ24g YSBuZXcgdmFsdWUgdG8gdGhlIHNlc3Npb24gdmFyaWFibGUuICBJdCBpcyBjb3BpZWQgdG8KICAq IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgaWYgbmVjZXNzYXJ5LgpAQCAtNjk2LDYgKzkxNSwxMCBA QCBzZXRfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wg aXNudWxsKQogCURhdHVtCQluZXd2YWw7CiAJU1ZhcmlhYmxlRGF0YSBsb2NzdmFyLAogCQkJICAg Kl9zdmFyOworCVN1YlRyYW5zYWN0aW9uSWQgY3VycmVudF9zdWJpZCA9IEdldEN1cnJlbnRTdWJU cmFuc2FjdGlvbklkKCk7CisJU3ViVHJhbnNhY3Rpb25JZCBwcmV2X3B1cmdlX3N1YmlkID0gSW52 YWxpZFN1YlRyYW5zYWN0aW9uSWQ7CisJYm9vbAkJc2F2ZV9wcmV2X3ZhbHVlOworCVByZXZWYWx1 ZSAgKnByZXZfdmFsdWU7CiAKIAlBc3NlcnQoc3Zhcik7CiAJQXNzZXJ0KCFpc251bGwgfHwgdmFs dWUgPT0gKERhdHVtKSAwKTsKQEAgLTczMSw2ICs5NTQsMjEgQEAgc2V0X3Nlc3Npb25fdmFyaWFi bGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAllbHNlCiAJCV9z dmFyID0gc3ZhcjsKIAorCWlmIChfc3Zhci0+aXNfdHJhbnNhY3QgJiYgX3N2YXItPmNyZWF0ZV9s c24gPT0gc3Zhci0+Y3JlYXRlX2xzbikKKwl7CisJCUFzc2VydChzdmFyLT50eXBpZCA9PSBfc3Zh ci0+dHlwaWQpOworCQlBc3NlcnQoc3Zhci0+dHlwYnl2YWwgPT0gX3N2YXItPnR5cGJ5dmFsKTsK KwkJQXNzZXJ0KHN2YXItPnR5cGxlbiA9PSBfc3Zhci0+dHlwbGVuKTsKKworCQlzYXZlX3ByZXZf dmFsdWUgPSBzdmFyLT5tb2RpZnlfc3ViaWQgIT0gY3VycmVudF9zdWJpZDsKKwkJcHJldl92YWx1 ZSA9IHN2YXItPnByZXZfdmFsdWU7CisJfQorCWVsc2UKKwl7CisJCXNhdmVfcHJldl92YWx1ZSA9 IGZhbHNlOworCQlwcmV2X3ZhbHVlID0gTlVMTDsKKwl9CisKIAlpZiAoIWlzbnVsbCkKIAl7CiAJ CU1lbW9yeUNvbnRleHQgb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKFNWYXJpYWJsZU1l bW9yeUNvbnRleHQpOwpAQCAtNzQyLDcgKzk4MCwzNyBAQCBzZXRfc2Vzc2lvbl92YXJpYWJsZShT VmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQogCWVsc2UKIAkJbmV3dmFs ID0gdmFsdWU7CiAKLQlmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3Zhcik7CisJaWYgKHNh dmVfcHJldl92YWx1ZSkKKwl7CisJCXZvbGF0aWxlIFByZXZWYWx1ZSAqbmV3X3ByZXZfdmFsdWU7 CisKKwkJUEdfVFJZKCk7CisJCXsKKwkJCW5ld19wcmV2X3ZhbHVlID0gTWVtb3J5Q29udGV4dEFs bG9jKFNWYXJpYWJsZU1lbW9yeUNvbnRleHQsCisJCQkJCQkJCQkJCQlzaXplb2YoUHJldlZhbHVl KSk7CisJCX0KKwkJUEdfQ0FUQ0goKTsKKwkJeworCQkJLyogcmVsZWFzZSBtZW0gZnJvbSBwZXJz aXN0ZW50IGNvbnRlbnQgKi8KKwkJCWlmIChuZXd2YWwgIT0gdmFsdWUpCisJCQkJcGZyZWUoRGF0 dW1HZXRQb2ludGVyKG5ld3ZhbCkpOworCQkJUEdfUkVfVEhST1coKTsKKwkJfQorCQlQR19FTkRf VFJZKCk7CisKKwkJbmV3X3ByZXZfdmFsdWUtPnZhbHVlID0gc3Zhci0+dmFsdWU7CisJCW5ld19w cmV2X3ZhbHVlLT5pc251bGwgPSBzdmFyLT5pc251bGw7CisJCW5ld19wcmV2X3ZhbHVlLT5tb2Rp Znlfc3ViaWQgPSBzdmFyLT5tb2RpZnlfc3ViaWQ7CisJCW5ld19wcmV2X3ZhbHVlLT5wcmV2X3Zh bHVlID0gcHJldl92YWx1ZTsKKworCQlwcmV2X3ZhbHVlID0gKFByZXZWYWx1ZSAqKSBuZXdfcHJl dl92YWx1ZTsKKwkJcHJldl9wdXJnZV9zdWJpZCA9IHN2YXItPnB1cmdlX3N1YmlkOworCisJCWhh c19tb2RpZmllZF90cmFuc2FjdGlvbmFsX3ZhcmlhYmxlcyA9IHRydWU7CisKKwl9CisJZWxzZQor CQlmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3ZhciwgcHJldl92YWx1ZSA9PSBOVUxMKTsK IAogCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFz IG5ldyB2YWx1ZSIsCiAJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCkBAIC03NTUsNiArMTAyMyw5IEBAIHNldF9zZXNzaW9u X3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAKIAlz dmFyLT52YWx1ZSA9IG5ld3ZhbDsKIAlzdmFyLT5pc251bGwgPSBpc251bGw7CisJc3Zhci0+bW9k aWZ5X3N1YmlkID0gY3VycmVudF9zdWJpZDsKKwlzdmFyLT5wdXJnZV9zdWJpZCA9IHByZXZfcHVy Z2Vfc3ViaWQ7CisJc3Zhci0+cHJldl92YWx1ZSA9IHByZXZfdmFsdWU7CiAKIAkvKiBkb24ndCBh bGxvdyBtb3JlIGNoYW5nZXMgb2YgdmFsdWUgd2hlbiB2YXJpYWJsZSBpcyBJTU1VVEFCTEUgKi8K IAlpZiAoc3Zhci0+aXNfaW1tdXRhYmxlKQpAQCAtODU2LDYgKzExMjcsOCBAQCBnZXRfc2Vzc2lv bl92YXJpYWJsZShPaWQgdmFyaWQpCiAJZWxzZQogCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOwog CityZWluaXQ6CisKIAkvKgogCSAqIEZvcmNlIHNldHVwIGZvciBub3QgeWV0IGluaXRpYWxpemVk IHZhcmlhYmxlcyBvciB2YXJpYWJsZXMgdGhhdCBjYW5ub3QKIAkgKiBiZSB2YWxpZGF0ZWQuCkBA IC04ODgsNiArMTE2MSwyOCBAQCBnZXRfc2Vzc2lvbl92YXJpYWJsZShPaWQgdmFyaWQpCiAJCQkg dmFyaWQpOwogCX0KIAorCS8qCisJICogVHJhbnNhY3Rpb25hbCB2YXJpYWJsZXMgc2hvdWxkIGJl IHB1cmdlZCBiZWZvcmUgKHJlbW92ZQorCSAqIHZlcnNpb25zIGNyZWF0ZWQgYnkgcG9zc2libHkg cmV2ZXJ0ZWQgc3VidHJhbnNhY3Rpb25zKS4KKwkgKi8KKwlpZiAoc3Zhci0+aXNfdHJhbnNhY3Qg JiYKKwkJc3Zhci0+bW9kaWZ5X3N1YmlkICE9IEdldEN1cnJlbnRTdWJUcmFuc2FjdGlvbklkKCkg JiYKKwkJc3Zhci0+bW9kaWZ5X3N1YmlkICE9IEludmFsaWRTdWJUcmFuc2FjdGlvbklkKQorCXsK KwkJaWYgKCFwdXJnZV9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIpKQorCQl7CisJCQkvKiBmb3JjZSBy ZWluaXQgKi8KKwkJCXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CisKKwkJCS8qCisJCQkgKiBJbiBu ZXh0IGl0ZXJhdGlvbiBtb2RpZnlfc3ViaWQgc2hvdWxkIGJlCisJCQkgKiBJbnZhbGlkU3ViVHJh bnNhY3Rpb25JZCBvciBjdXJyZW50IHN1YmlkLAorCQkJICogc28gdGhlcmUgaXMgbm90IHJpc2sg b2YgaW5maW5pdHkgY3ljbGUuCisJCQkgKi8KKwkJCWdvdG8gcmVpbml0OworCQl9CisJfQorCiAJ LyogZW5zdXJlIHRoZSByZXR1cm5lZCBkYXRhIGlzIHN0aWxsIG9mIHRoZSBjb3JyZWN0IGRvbWFp biAqLwogCWlmIChzdmFyLT5pc19kb21haW4pCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYmY3Y2EzZjUx YzYuLmFmYjE1MWIzYWZlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55Cisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTY2Nyw3ICs2NjcsNyBAQCBzdGF0aWMg Tm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNl cywgTm9kZSAqcXVlcnkpOwogCQkJCWpzb25fb2JqZWN0X2NvbnN0cnVjdG9yX251bGxfY2xhdXNl X29wdAogCQkJCWpzb25fYXJyYXlfY29uc3RydWN0b3JfbnVsbF9jbGF1c2Vfb3B0CiAKLSV0eXBl IDxib29sZWFuPgkJT3B0Tm90TnVsbCBPcHRJbW11dGFibGUKKyV0eXBlIDxib29sZWFuPgkJT3B0 Tm90TnVsbCBPcHRJbW11dGFibGUgT3B0VHJhbnNhY3Rpb25hbAogCiAvKgogICogTm9uLWtleXdv cmQgdG9rZW4gdHlwZXMuICBUaGVzZSBhcmUgaGFyZC13aXJlZCBpbnRvIHRoZSAiZmxleCIgbGV4 ZXIuCkBAIC03NzIsNyArNzcyLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2Vs ZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlTVUJTQ1JJ UFRJT04gU1VCU1RSSU5HIFNVUFBPUlQgU1lNTUVUUklDIFNZU0lEIFNZU1RFTV9QIFNZU1RFTV9V U0VSCiAKIAlUQUJMRSBUQUJMRVMgVEFCTEVTQU1QTEUgVEFCTEVTUEFDRSBUQVJHRVQgVEVNUCBU RU1QTEFURSBURU1QT1JBUlkgVEVYVF9QIFRIRU4KLQlUSUVTIFRJTUUgVElNRVNUQU1QIFRPIFRS QUlMSU5HIFRSQU5TQUNUSU9OIFRSQU5TRk9STQorCVRJRVMgVElNRSBUSU1FU1RBTVAgVE8gVFJB SUxJTkcgVFJBTlNBQ1RJT04gVFJBTlNBQ1RJT05BTCBUUkFOU0ZPUk0KIAlUUkVBVCBUUklHR0VS IFRSSU0gVFJVRV9QCiAJVFJVTkNBVEUgVFJVU1RFRCBUWVBFX1AgVFlQRVNfUAogCkBAIC01MjM5 LDMxICs1MjM5LDMzIEBAIGNyZWF0ZV9leHRlbnNpb25fb3B0X2l0ZW06CiAgKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCiAKIENyZWF0ZVNlc3Npb25WYXJTdG10OgotCQkJQ1JFQVRFIE9wdFRlbXAgT3B0 SW1tdXRhYmxlIFZBUklBQkxFIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29s bGF0ZV9jbGF1c2UgT3B0Tm90TnVsbCBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9u T3B0aW9uCisJCQlDUkVBVEUgT3B0VGVtcCBPcHRUcmFuc2FjdGlvbmFsIE9wdEltbXV0YWJsZSBW QVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNl IE9wdE5vdE51bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJ CXsKIAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9u VmFyU3RtdCk7Ci0JCQkJCSQ1LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOwotCQkJCQluLT5pc19pbW11 dGFibGUgPSAkMzsKLQkJCQkJbi0+dmFyaWFibGUgPSAkNTsKLQkJCQkJbi0+dHlwZU5hbWUgPSAk NzsKLQkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ4OwotCQkJCQluLT5u b3RfbnVsbCA9ICQ5OwotCQkJCQluLT5kZWZleHByID0gJDEwOwotCQkJCQluLT5YYWN0RW5kQWN0 aW9uID0gJDExOworCQkJCQkkNi0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+aXNfaW1t dXRhYmxlID0gJDQ7CisJCQkJCW4tPmlzX3RyYW5zYWN0ID0gJDM7CisJCQkJCW4tPnZhcmlhYmxl ID0gJDY7CisJCQkJCW4tPnR5cGVOYW1lID0gJDg7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29s bGF0ZUNsYXVzZSAqKSAkOTsKKwkJCQkJbi0+bm90X251bGwgPSAkMTA7CisJCQkJCW4tPmRlZmV4 cHIgPSAkMTE7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTI7CiAJCQkJCW4tPmlmX25vdF9l eGlzdHMgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KLQkJCXwgQ1JFQVRF IE9wdFRlbXAgT3B0SW1tdXRhYmxlIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRf bmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdE5vdE51bGwgT3B0U2Vz c2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgorCQkJfCBDUkVBVEUgT3B0VGVtcCBP cHRUcmFuc2FjdGlvbmFsIE9wdEltbXV0YWJsZSBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVh bGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHROb3ROdWxs IE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KIAkJCQl7CiAJCQkJCUNy ZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOwot CQkJCQkkOC0+cmVscGVyc2lzdGVuY2UgPSAkMjsKLQkJCQkJbi0+aXNfaW1tdXRhYmxlID0gJDM7 Ci0JCQkJCW4tPnZhcmlhYmxlID0gJDg7Ci0JCQkJCW4tPnR5cGVOYW1lID0gJDEwOwotCQkJCQlu LT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDExOwotCQkJCQluLT5ub3RfbnVsbCA9 ICQxMjsKLQkJCQkJbi0+ZGVmZXhwciA9ICQxMzsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQx NDsKKwkJCQkJJDktPnJlbHBlcnNpc3RlbmNlID0gJDI7CisJCQkJCW4tPmlzX2ltbXV0YWJsZSA9 ICQ0OworCQkJCQluLT5pc190cmFuc2FjdCA9ICQzOworCQkJCQluLT52YXJpYWJsZSA9ICQ5Owor CQkJCQluLT50eXBlTmFtZSA9ICQxMTsKKwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xh dXNlICopICQxMjsKKwkJCQkJbi0+bm90X251bGwgPSAkMTM7CisJCQkJCW4tPmRlZmV4cHIgPSAk MTQ7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTU7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMg PSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQpAQCAtNTI5MSw2ICs1MjkzLDEy IEBAIE9wdEltbXV0YWJsZTogSU1NVVRBQkxFCQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQogCQkJfCAv KiBFTVBUWSAqLwkJCQkJCQl7ICQkID0gZmFsc2U7IH0KIAkJOwogCitPcHRUcmFuc2FjdGlvbmFs OgorCQkJVFJBTlNBQ1RJT04JCQkJCQkJCXsgJCQgPSB0cnVlOyB9CisJCQl8IFRSQU5TQUNUSU9O QUwJCQkJCQkJeyAkJCA9IHRydWU7IH0KKwkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAkJCA9IGZh bHNlOyB9CisJCTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgRVhURU5T SU9OIG5hbWUgVVBEQVRFIFsgVE8gdmVyc2lvbiBdCkBAIC0xODA5OCw2ICsxODEwNiw3IEBAIHVu cmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgVEVYVF9QCiAJCQl8IFRJRVMKIAkJCXwgVFJBTlNBQ1RJ T04KKwkJCXwgVFJBTlNBQ1RJT05BTAogCQkJfCBUUkFOU0ZPUk0KIAkJCXwgVFJJR0dFUgogCQkJ fCBUUlVOQ0FURQpAQCAtMTg3NDYsNiArMTg3NTUsNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJ CQl8IFRJTUVTVEFNUAogCQkJfCBUUkFJTElORwogCQkJfCBUUkFOU0FDVElPTgorCQkJfCBUUkFO U0FDVElPTkFMCiAJCQl8IFRSQU5TRk9STQogCQkJfCBUUkVBVAogCQkJfCBUUklHR0VSCmRpZmYg LS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYwppbmRleCBiNGM2MWRhMTg4NS4uNDZmYjI4YzFjOGYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNTQ0 Miw2ICs1NDQyLDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaW50CQkJaV92YXJj b2xsYXRpb247CiAJaW50CQkJaV92YXJub3RudWxsOwogCWludAkJCWlfdmFyaXNpbW11dGFibGU7 CisJaW50CQkJaV92YXJpc3RyYW5zYWN0OwogCWludAkJCWlfdmFyYWNsOwogCWludAkJCWlfYWNs ZGVmYXVsdDsKIAlpbnQJCQlpLApAQCAtNTQ2Niw2ICs1NDY3LDcgQEAgZ2V0VmFyaWFibGVzKEFy Y2hpdmUgKmZvdXQpCiAJCQkJCSAgIiAgICAgICBFTkQgQVMgdmFyY29sbGF0aW9uLFxuIgogCQkJ CQkgICIgICAgICAgdi52YXJub3RudWxsLFxuIgogCQkJCQkgICIgICAgICAgdi52YXJpc2ltbXV0 YWJsZSxcbiIKKwkJCQkJICAiICAgICAgIHYudmFyaXN0cmFuc2FjdCxcbiIKIAkJCQkJICAiICAg ICAgIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIodi52YXJkZWZleHByLDApIGFzIHZhcmRlZmV4cHIs XG4iCiAJCQkJCSAgIiAgICAgICB2LnZhcm93bmVyLCB2LnZhcmFjbCxcbiIKIAkJCQkJICAiICAg ICAgIGFjbGRlZmF1bHQoJ1YnLCB2LnZhcm93bmVyKSBBUyBhY2xkZWZhdWx0XG4iCkBAIC01NDg4 LDYgKzU0OTAsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAlpX3ZhcmNvbGxhdGlv biA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRpb24iKTsKIAlpX3Zhcm5vdG51bGwgPSBQUWZu dW1iZXIocmVzLCAidmFybm90bnVsbCIpOwogCWlfdmFyaXNpbW11dGFibGUgPSBQUWZudW1iZXIo cmVzLCAidmFyaXNpbW11dGFibGUiKTsKKwlpX3ZhcmlzdHJhbnNhY3QgPSBQUWZudW1iZXIocmVz LCAidmFyaXN0cmFuc2FjdCIpOwogCiAJaV92YXJvd25lciA9IFBRZm51bWJlcihyZXMsICJ2YXJv d25lciIpOwogCWlfdmFyYWNsID0gUFFmbnVtYmVyKHJlcywgInZhcmFjbCIpOwpAQCAtNTUxNiw2 ICs1NTE5LDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJCXZhcmluZm9baV0udmFy Y29sbGF0aW9uID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmNvbGxhdGlvbikpOwog CQl2YXJpbmZvW2ldLnZhcm5vdG51bGwgPSAqKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zhcm5vdG51 bGwpKSA9PSAndCc7CiAJCXZhcmluZm9baV0udmFyaXNpbW11dGFibGUgPSAqKFBRZ2V0dmFsdWUo cmVzLCBpLCBpX3ZhcmlzaW1tdXRhYmxlKSkgPT0gJ3QnOworCQl2YXJpbmZvW2ldLnZhcmlzdHJh bnNhY3QgPSAqKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmlzdHJhbnNhY3QpKSA9PSAndCc7CiAK IAkJdmFyaW5mb1tpXS5kYWNsLmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92 YXJhY2wpKTsKIAkJdmFyaW5mb1tpXS5kYWNsLmFjbGRlZmF1bHQgPSBwZ19zdHJkdXAoUFFnZXR2 YWx1ZShyZXMsIGksIGlfYWNsZGVmYXVsdCkpOwpAQCAtNTU2Myw2ICs1NTY3LDcgQEAgZHVtcFZh cmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAljb25z dCBjaGFyICp2YXJkZWZleHByOwogCWNvbnN0IGNoYXIgKnZhcnhhY3RlbmRhY3Rpb247CiAJY29u c3QgY2hhciAqdmFyaXNpbW11dGFibGU7CisJY29uc3QgY2hhciAqdmFyaXN0cmFuc2FjdDsKIAlP aWQJCQl2YXJjb2xsYXRpb247CiAJYm9vbAkJdmFybm90bnVsbDsKIApAQCAtNTU4MCwxMiArNTU4 NSwxMyBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2 YXJpbmZvKQogCXZhcmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKIAl2YXJub3Ru dWxsID0gdmFyaW5mby0+dmFybm90bnVsbDsKIAl2YXJpc2ltbXV0YWJsZSA9IHZhcmluZm8tPnZh cmlzaW1tdXRhYmxlID8gIklNTVVUQUJMRSAiIDogIiI7CisJdmFyaXN0cmFuc2FjdCA9IHZhcmlu Zm8tPnZhcmlzdHJhbnNhY3QgPyAiVFJBTlNBQ1RJT05BTCAiIDogIiI7CiAKIAlhcHBlbmRQUUV4 cEJ1ZmZlcihkZWxxLCAiRFJPUCBWQVJJQUJMRSAlcztcbiIsCiAJCQkJCSAgcXVhbHZhcm5hbWUp OwogCi0JYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgJXNWQVJJQUJMRSAlcyBBUyAl cyIsCi0JCQkJCSAgdmFyaXNpbW11dGFibGUsIHF1YWx2YXJuYW1lLCB2YXJ0eXBuYW1lKTsKKwlh cHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSAlcyVzVkFSSUFCTEUgJXMgQVMgJXMiLAor CQkJCQkgIHZhcmlzdHJhbnNhY3QsIHZhcmlzaW1tdXRhYmxlLCBxdWFsdmFybmFtZSwgdmFydHlw bmFtZSk7CiAKIAlpZiAoT2lkSXNWYWxpZCh2YXJjb2xsYXRpb24pKQogCXsKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmlu ZGV4IDA1NjI0OTdmMzRlLi5mM2U5ODIzYzhjYSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC03MjcsNiArNzI3 LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1ZhcmlhYmxlSW5mbwogCWNvbnN0IGNoYXIgKnJvbG5hbWU7 CQkvKiBuYW1lIG9mIG93bmVyLCBvciBlbXB0eSBzdHJpbmcgKi8KIAlib29sCQl2YXJub3RudWxs OwogCWJvb2wJCXZhcmlzaW1tdXRhYmxlOworCWJvb2wJCXZhcmlzdHJhbnNhY3Q7CiB9IFZhcmlh YmxlSW5mbzsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1w LnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggMWJiYTY4ZTZhZWUu LjAzNDQwYTQyMzBkIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5w bAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbApAQCAtNDA3Nyw2ICs0MDc3 LDQyIEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAogCisJJ0NSRUFURSBUUkFOU0FDVElPTkFM IFZBUklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+IDEsCisJCWNh dGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9vcmRlciA9PiA2 MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgVFJBTlNBQ1RJT05BTCBWQVJJQUJMRSBkdW1w X3Rlc3QudmFyaWFibGU4IEFTIGludGVnZXInLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVB VEUgVFJBTlNBQ1RJT05BTCBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU4IEFTIGludGVnZXI7 XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1h X3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJ CQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVu dCAgICA9PiAxLAorCQl9LAorCX0sCisKKwknQ1JFQVRFIFRSQU5TQUNUSU9OQUwgSU1NVVRBQkxF IFZBUklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+IDEsCisJCWNh dGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9vcmRlciA9PiA2 MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgVFJBTlNBQ1RJT05BTCBJTU1VVEFCTEUgVkFS SUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlOSBBUyBpbnRlZ2VyJywKKwkJcmVnZXhwID0+IHFyL14K KwkJCVxRQ1JFQVRFIFRSQU5TQUNUSU9OQUwgSU1NVVRBQkxFIFZBUklBQkxFIGR1bXBfdGVzdC52 YXJpYWJsZTkgQVMgaW50ZWdlcjtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAor CQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJ fSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJ b25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDUkVBVEUgVklF VyB0ZXN0X3ZpZXcnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDYxLAogCQljcmVhdGVfc3FsID0+ ICdDUkVBVEUgVklFVyBkdW1wX3Rlc3QudGVzdF92aWV3CmRpZmYgLS1naXQgYS9zcmMvYmluL3Bz cWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IDc0ZTFiYzU1Nzhl Li5iNjgxYjUwY2VjMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTUyNTAsNyArNTI1MCw3IEBAIGxpc3RWYXJpYWJs ZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCVBRRXhwQnVmZmVyRGF0YSBi dWY7CiAJUEdyZXN1bHQgICAqcmVzOwogCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7 Ci0Jc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZX07CiAKIAlpZiAocHNldC5zdmVyc2lvbiA8IDE4MDAwMCkKIAl7 CkBAIC01MjczLDYgKzUyNzMsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4s IGJvb2wgdmVyYm9zZSkKIAkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZCh2LnZh cm93bmVyKSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgTk9UIHYudmFybm90bnVsbCBhcyBcIiVz XCIsXG4iCiAJCQkJCSAgIiAgTk9UIHYudmFyaXNpbW11dGFibGUgYXMgXCIlc1wiLFxuIgorCQkJ CQkgICIgIHYudmFyaXN0cmFuc2FjdCBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxv Zy5wZ19nZXRfZXhwcih2LnZhcmRlZmV4cHIsIDApIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBD QVNFIHYudmFyeGFjdGVuZGFjdGlvblxuIgogCQkJCQkgICIgICAgV0hFTiAnZCcgVEhFTiAnT04g Q09NTUlUIERST1AnXG4iCkBAIC01Mjg1LDYgKzUyODYsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0 IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVy IiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJOdWxsYWJsZSIpLAogCQkJCQkgIGdldHRleHRfbm9v cCgiTXV0YWJsZSIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiVHJhbnNhY3Rpb25hbCIpLAogCQkJ CQkgIGdldHRleHRfbm9vcCgiRGVmYXVsdCIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHJhbnNh Y3Rpb25hbCBlbmQgYWN0aW9uIikpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggZDY4Mzhh ZTNjMTkuLmQzNDdiMmQyN2U5IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRl LmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0xMzA1LDYgKzEz MDUsOCBAQCBzdGF0aWMgY29uc3QgcGdzcWxfdGhpbmdfdCB3b3Jkc19hZnRlcl9jcmVhdGVbXSA9 IHsKIAkJCQkJCQkJCQkJCQkJCQkJCQkgKiBUQUJMRSAuLi4gKi8KIAl7IlRFWFQgU0VBUkNIIiwg TlVMTCwgTlVMTCwgTlVMTH0sCiAJeyJUUkFOU0ZPUk0iLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxM LCBUSElOR19OT19BTFRFUn0sCisJeyJUUkFOU0FDVElPTkFMIiwgTlVMTCwgTlVMTCwgTlVMTCwg TlVMTCwgVEhJTkdfTk9fRFJPUCB8IFRISU5HX05PX0FMVEVSfSwgLyogZm9yIENSRUFURSBUUkFO U0FDVElPTkFMCisJCQkJCQkJCQkJCQkJCQkJCQkJCSogVkFSSUFCTEUgLi4uICovCiAJeyJUUklH R0VSIiwgIlNFTEVDVCB0Z25hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX3RyaWdnZXIgV0hFUkUgdGdu YW1lIExJS0UgJyVzJyBBTkQgTk9UIHRnaXNpbnRlcm5hbCJ9LAogCXsiVFlQRSIsIE5VTEwsIE5V TEwsICZRdWVyeV9mb3JfbGlzdF9vZl9kYXRhdHlwZXN9LAogCXsiVU5JUVVFIiwgTlVMTCwgTlVM TCwgTlVMTCwgTlVMTCwgVEhJTkdfTk9fRFJPUCB8IFRISU5HX05PX0FMVEVSfSwgLyogZm9yIENS RUFURSBVTklRVUUKQEAgLTM5NjIsOCArMzk2NCwxMSBAQCBtYXRjaF9wcmV2aW91c193b3Jkcyhp bnQgcGF0dGVybl9pZCwKIAl9CiAvKiBDUkVBVEUgVkFSSUFCTEUgLS0tIGlzIGFsbG93ZWQgaW5z aWRlIENSRUFURSBTQ0hFTUEsIHNvIHVzZSBUYWlsTWF0Y2hlcyAqLwogCS8qIENvbXBsZXRlIENS RUFURSBWQVJJQUJMRSA8bmFtZT4gd2l0aCBBUyAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFU RSIsICJUUkFOU0FDVElPTnxUUkFOU0FDVElPTkFMIikpCisJCUNPTVBMRVRFX1dJVEgoIklNTVVU QUJMRSIsICJWQVJJQUJMRSIpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAiVkFS SUFCTEUiLCBNYXRjaEFueSkgfHwKIAkJCSBUYWlsTWF0Y2hlcygiVEVNUHxURU1QT1JBUlkiLCAi VkFSSUFCTEUiLCBNYXRjaEFueSkgfHwKKwkJCSBUYWlsTWF0Y2hlcygiVFJBTlNBQ1RJT058VFJB TlNBQ1RJT05BTCIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSB8fAogCQkJIFRhaWxNYXRjaGVzKCJJ TU1VVEFCTEUiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIkFTIik7 CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlZBUklBQkxFIiwgTWF0Y2hBbnksICJBUyIpKQpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ192YXJpYWJsZS5oCmluZGV4IGNmMjFlMDQyNmE3Li40NTRiYjI5NzA5NyAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaApAQCAtNjIsNiArNjIsOSBAQCBDQVRBTE9HKHBnX3Zh cmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQogCS8qIGRvbid0IGFsbG93IGNoYW5nZXMg Ki8KIAlib29sCQl2YXJpc2ltbXV0YWJsZSBCS0lfREVGQVVMVChmKTsKIAorCS8qIHN1cHBvcnRz IHRyYW5zYWN0aW9ucyAqLworCWJvb2wJCXZhcmlzdHJhbnNhY3QgQktJX0RFRkFVTFQoZik7CisK IAkvKiBhY3Rpb24gb24gdHJhbnNhY3Rpb24gZW5kICovCiAJY2hhcgkJdmFyeGFjdGVuZGFjdGlv biBCS0lfREVGQVVMVChuKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDk5MGNlYmJmMDhi Li5iNzQ0MGEwNjFiOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o CisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMzQ5MSw2ICszNDkxLDcg QEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAlib29sCQlpZl9ub3RfZXhp c3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0IGFscmVhZHkgZXhpc3RzICovCiAJYm9vbAkJbm90X251 bGw7CQkvKiBkaXNhbGxvdyBudWxscyAqLwogCWJvb2wJCWlzX2ltbXV0YWJsZTsJLyogZG9uJ3Qg YWxsb3cgY2hhbmdlcyAqLworCWJvb2wJCWlzX3RyYW5zYWN0OwkvKiBzdXBwb3J0cyB0cmFuc2Fj dGlvbnMgKi8KIAlOb2RlCSAgICpkZWZleHByOwkJLyogZGVmYXVsdCBleHByZXNzaW9uICovCiAJ Y2hhcgkJWGFjdEVuZEFjdGlvbjsJLyogb24gdHJhbnNhY3Rpb24gZW5kIGFjdGlvbiAqLwogfSBD cmVhdGVTZXNzaW9uVmFyU3RtdDsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xp c3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAppbmRleCA2Zjg0ZmVmZDUyNS4uNGYx YzBlYjUzNmIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9z cmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAgLTQ1NSw2ICs0NTUsNyBAQCBQR19LRVlXT1JE KCJ0aW1lc3RhbXAiLCBUSU1FU1RBTVAsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJ0byIsIFRPLCBSRVNFUlZFRF9LRVlXT1JELCBBU19MQUJFTCkKIFBHX0tFWVdP UkQoInRyYWlsaW5nIiwgVFJBSUxJTkcsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJ0cmFuc2FjdGlvbiIsIFRSQU5TQUNUSU9OLCBVTlJFU0VSVkVEX0tFWVdPUkQs IEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJ0cmFuc2FjdGlvbmFsIiwgVFJBTlNBQ1RJT05BTCwg VU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidHJhbnNmb3JtIiwg VFJBTlNGT1JNLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ0 cmVhdCIsIFRSRUFULCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi dHJpZ2dlciIsIFRSSUdHRVIsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3BzcWwub3V0CmluZGV4IGUxNjM1ZjY4NmMyLi5kYTlmNGE3MDMwYSAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CkBAIC01OTM1LDIwICs1OTM1LDIwIEBAIENSRUFU RSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcmlh YmxlX293bmVyOwogQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhciBDT0xMQVRFICJDIjsK IFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwg TmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAg ICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBh Y3Rpb24gfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0rLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2YXIxIHwgY2hh cmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAg ICAgICAgfCB0ICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg ICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlh YmxlcworIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAg ICAgICAgT3duZXIgICAgICAgICAgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBUcmFuc2FjdGlvbmFs IHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8IEFjY2VzcyBwcml2aWxlZ2Vz IHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZh cnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0 ICAgICAgIHwgZiAgICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBHUkFOVCBTRUxFQ1QgT04gVkFS SUFCTEUgdmFyMSBUTyBQVUJMSUM7CiBDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUg ZGVzY3JpcHRpb24nOwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAg fCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxl IHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFj Y2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAgRGVzY3JpcHRpb24gICAgCi0tLS0t LS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFy eWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQg ICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJp YWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgot ICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9vd25lciAgICAgICAgICAgICAg ICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENv bGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBU cmFuc2FjdGlvbmFsIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAg ICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAgRGVzY3JpcHRp b24gICAgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBw dWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3Zh cmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICAgICAgICB8ICAgICAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3 L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCisgICAgICAgIHwgICAg ICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9vd25lciAgICAgICAgICAg ICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIERST1AgVkFSSUFCTEUgdmFyMTsKQEAgLTY0MTYs OSArNjQxNiw5IEBAIExpc3Qgb2Ygc2NoZW1hcwogKDAgcm93cykKIAogXGRWICJuby5zdWNoLnZh cmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBO dWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAot LS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisg U2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0 YWJsZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9u IAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxp ZmljYXRpb25zLgpAQCAtNjU5MSw5ICs2NTkxLDkgQEAgaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUg KHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guaW5zdGEK IFxkeSAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBpbXByb3BlciBx dWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4i bm8uc3VjaC5ldmVudC50cmlnZ2VyIgogXGRWICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFy aWFibGUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg dmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51 bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0t LS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBT Y2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgTnVsbGFibGUgfCBNdXRh YmxlIHwgVHJhbnNhY3Rpb25hbCB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24g CistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGN1cnJlbnQgZGF0YWJhc2UgYW5k IGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02NzMwLDkgKzY3MzAsOSBAQCBMaXN0 IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRlcwogKDAgcm93cykKIAogXGRWIHJlZ3Jlc3Npb24uIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlw ZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRy YW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9u IHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBUcmFuc2FjdGlvbmFsIHwgRGVmYXVsdCB8 IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0 IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRl eCA0OGU2OWFiYjNjZS4uY2MzNDk4NWVmODAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0yNTgzLDMgKzI1ODMsMTAzIEBAIFNFTEVD VCB2YXIxOwogTEVUIHZhcjEgPSAzMDsKIEVSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGlj LnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQogRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gdGVz dCB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcworQ1JFQVRFIFRSQU5TQUNUSU9OIFZBUklBQkxFIHR2 IEFTIGludCBERUZBVUxUIDA7CitCRUdJTjsKKyAgTEVUIHR2ID0gMTAwOworICBTRUxFQ1QgdHY7 CisgdHYgIAorLS0tLS0KKyAxMDAKKygxIHJvdykKKworUk9MTEJBQ0s7CitTRUxFQ1QgdHY7Cisg dHYgCistLS0tCisgIDAKKygxIHJvdykKKworTEVUIHR2ID0gMTAwOworQkVHSU47CisgIExFVCB0 diA9IDEwMDA7CitDT01NSVQ7CitTRUxFQ1QgdHY7CisgIHR2ICAKKy0tLS0tLQorIDEwMDAKKygx IHJvdykKKworQkVHSU47CisgIExFVCB0diA9IDA7CisgIFNFTEVDVCB0djsKKyB0diAKKy0tLS0K KyAgMAorKDEgcm93KQorCitST0xMQkFDSzsKK1NFTEVDVCB0djsKKyAgdHYgIAorLS0tLS0tCisg MTAwMAorKDEgcm93KQorCistLSB0ZXN0IHN1YnRyYW5zYWN0aW9ucworQkVHSU47CisgIExFVCB0 diA9IDE7CitTQVZFUE9JTlQgeDE7CisgIExFVCB0diA9IDI7CitTQVZFUE9JTlQgeDI7CisgIExF VCB0diA9IDM7CitST0xMQkFDSyBUTyB4MjsKKyAgU0VMRUNUIHR2OworIHR2IAorLS0tLQorICAy CisoMSByb3cpCisKKyAgTEVUIHR2ID0gMTA7CitST0xMQkFDSyBUTyB4MTsKKyAgU0VMRUNUIHR2 OworIHR2IAorLS0tLQorICAxCisoMSByb3cpCisKK1JPTExCQUNLOworU0VMRUNUIHR2OworICB0 diAgCistLS0tLS0KKyAxMDAwCisoMSByb3cpCisKK0JFR0lOOworICBMRVQgdHYgPSAxOworU0FW RVBPSU5UIHgxOworICBMRVQgdHYgPSAyOworU0FWRVBPSU5UIHgyOworICBMRVQgdHYgPSAzOwor Uk9MTEJBQ0sgVE8geDI7CisgIFNFTEVDVCB0djsKKyB0diAKKy0tLS0KKyAgMgorKDEgcm93KQor CisgIExFVCB0diA9IDEwOworUk9MTEJBQ0sgVE8geDE7CisgIFNFTEVDVCB0djsKKyB0diAKKy0t LS0KKyAgMQorKDEgcm93KQorCitDT01NSVQ7CitTRUxFQ1QgdHY7CisgdHYgCistLS0tCisgIDEK KygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB0djsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Np b25fdmFyaWFibGVzLnNxbAppbmRleCBhZDAwZWEzNThkZi4uYzM3NjBmN2Y4ODYgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTE4MDIsMyArMTgwMiw2 MSBAQCBTRUxFQ1QgdmFyMTsKIExFVCB2YXIxID0gMzA7CiAKIERST1AgVkFSSUFCTEUgdmFyMTsK KworLS0gdGVzdCB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcworQ1JFQVRFIFRSQU5TQUNUSU9OIFZB UklBQkxFIHR2IEFTIGludCBERUZBVUxUIDA7CisKK0JFR0lOOworICBMRVQgdHYgPSAxMDA7Cisg IFNFTEVDVCB0djsKK1JPTExCQUNLOworCitTRUxFQ1QgdHY7CisKK0xFVCB0diA9IDEwMDsKK0JF R0lOOworICBMRVQgdHYgPSAxMDAwOworQ09NTUlUOworCitTRUxFQ1QgdHY7CisKK0JFR0lOOwor ICBMRVQgdHYgPSAwOworICBTRUxFQ1QgdHY7CitST0xMQkFDSzsKKworU0VMRUNUIHR2OworCist LSB0ZXN0IHN1YnRyYW5zYWN0aW9ucworCitCRUdJTjsKKyAgTEVUIHR2ID0gMTsKK1NBVkVQT0lO VCB4MTsKKyAgTEVUIHR2ID0gMjsKK1NBVkVQT0lOVCB4MjsKKyAgTEVUIHR2ID0gMzsKK1JPTExC QUNLIFRPIHgyOworICBTRUxFQ1QgdHY7CisgIExFVCB0diA9IDEwOworUk9MTEJBQ0sgVE8geDE7 CisgIFNFTEVDVCB0djsKK1JPTExCQUNLOworCitTRUxFQ1QgdHY7CisKK0JFR0lOOworICBMRVQg dHYgPSAxOworU0FWRVBPSU5UIHgxOworICBMRVQgdHYgPSAyOworU0FWRVBPSU5UIHgyOworICBM RVQgdHYgPSAzOworUk9MTEJBQ0sgVE8geDI7CisgIFNFTEVDVCB0djsKKyAgTEVUIHR2ID0gMTA7 CitST0xMQkFDSyBUTyB4MTsKKyAgU0VMRUNUIHR2OworQ09NTUlUOworCitTRUxFQ1QgdHY7CisK K0RST1AgVkFSSUFCTEUgdHY7Ci0tIAoyLjQ3LjEKCg== --000000000000f297a7062b2456dc Content-Type: text/x-patch; charset="US-ASCII"; name="v20250107-0018-plpgsql-implementation-for-LET-statement.patch" Content-Disposition: attachment; filename="v20250107-0018-plpgsql-implementation-for-LET-statement.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5mz6bgw4 RnJvbSBhNzA3MjBhN2RmODJhM2FmYjNmNDZmNGE3NTQ4YzAzMDExNWI5YTZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDg6NTY6MTcgKzAxMDAKU3ViamVjdDogW1BBVENIIDE4 LzIyXSBwbHBnc3FsIGltcGxlbWVudGF0aW9uIGZvciBMRVQgc3RhdGVtZW50CgpQTHBnU1FMIGFs bG93cyB0byBjYWxsIGV4cHJlc3Npb24gZXhlY3V0b3IgZGlyZWN0bHkgKGZvciBzaW1wbGUgZXhw cmVzc2lvbikuClRoaXMgcG9zc2liaWxpdHkgc3Ryb25nbHkgcmVkdWNlcyBvdmVyaGVhZCByZWxh dGVkIHRvIGV4ZWN1dGlvbi4gUmVpbXBsZW1lbnRhdGlvbgpvZiBMRVQgc3RhdGVtZW50IChpbnNp ZGUgUExwZ1NRTCkgYWxsb3dzIHRvIHVzZSB0aGlzIHBvc3NpYmlsaXR5LCBhbmQgc3Ryb25nbHkK aW5jcmVhc2UgcGVyZm9ybWFuY2U6CgpDUkVBVEUgVkFSSUFCTEUgc3ZhciBpbnQ7CgpETyAkJApC RUdJTgogIEZPUiBpIElOIDEuLjEwMDAwCiAgTE9PUAogICAgTEVUIHN2YXIgPSBpOwogIEVORCBM T09QOwpFTkQ7CiQkOwoKRnJvbSAxMjBtcyB0byA4bXMgKHdpdGggYXNzZXJ0aW9ucykgKHRoaXMg aXMgYmVzdCBjYXNlLCBidXQgd2l0aG91dCBpdCwgdGhlIExFVCBzdGF0ZW1lbnQKY2FuIGJlIGJv dHRsZSBuZWNrKS4KCkFuIGFsdGVybmF0aXZlIGNhbiBiZSByZWltcGxlbWVudGF0aW9uIG9mIExF VCBzdGF0ZW1lbnQgaW5zaWRlIGV4cHJlc3Npb24KZXhlY3V0b3IsIGFuZCB0aGVuIFNRTCBMRVQg Y29tbWFuZCBjYW4gYmUgZXhlY3V0ZWQgaW4gc2ltcGxlIGV4cHJlc3Npb24KZXhlY3V0aW9uLCBi dXQgdGhpcyBpbmNyZWFzZSBhbiBjb21wbGV4aXR5IG9mIGV4ZWN1dG9yLCBidXQgc3RpbGwgdGhl CmJlbmVmaXRzIGlzIG9ubHkgaW5zaWRlIHBscGdzcWwsIHNvIGl0IGlzIGJldHRlciB0byB0aGlz IG9wdGltaXphdGlvbgppbnNpZGUgcGxwZ3NxbC4KLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAxNiArKysrKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L3NwaS5jICAgICAgICAgICAgICAgICAgICB8ICAzICsKIHNyYy9iYWNrZW5kL3BhcnNlci9hbmFs eXplLmMgICAgICAgICAgICAgICAgICB8IDEyICsrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl ci5jICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o ICAgICAgICAgICAgICAgIHwgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oICAgICAg ICAgICAgICAgICAgIHwgIDQgKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgICAgICAg ICAgICAgICAgICB8IDU2ICsrKysrKysrKysrKysrKysrKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9w bF9mdW5jcy5jICAgICAgICAgICAgICAgICB8IDI0ICsrKysrKysrCiBzcmMvcGwvcGxwZ3NxbC9z cmMvcGxfZ3JhbS55ICAgICAgICAgICAgICAgICAgfCAyOCArKysrKysrKystCiBzcmMvcGwvcGxw Z3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3dsaXN0LmggICAgICAgfCAgMSArCiBzcmMvcGwvcGxwZ3Nx bC9zcmMvcGxfdW5yZXNlcnZlZF9rd2xpc3QuaCAgICAgfCAgMSArCiBzcmMvcGwvcGxwZ3NxbC9z cmMvcGxwZ3NxbC5oICAgICAgICAgICAgICAgICAgfCAxMiArKysrCiAuLi4vcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAgNiArLQogc3JjL3Rvb2xzL3BnaW5kZW50 L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgIDEgKwogMTYgZmlsZXMgY2hhbmdlZCwgMTcx IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5jCmluZGV4IGY2MTkwMGE5ZDRkLi4wY2YyM2ViNDgxMCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtOTU2LDYgKzk1NiwyMiBAQCBTZXRTZXNz aW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpCiAJc2V0X3Nl c3Npb25fdmFyaWFibGUoc3ZhciwgdmFsdWUsIGlzTnVsbCk7CiB9CiAKKy8qCisgKiBXcmFwcGVy IGFyb3VuZCBTZXRTZXNzaW9uVmFyaWFibGUgd2l0aCBwZXJtaXNzaW9uIGNoZWNrcy4KKyAqLwor dm9pZAorU2V0U2Vzc2lvblZhcmlhYmxlV2l0aFNlY3VyaXR5Q2hlY2soT2lkIHZhcmlkLCBEYXR1 bSB2YWx1ZSwgYm9vbCBpc051bGwpCit7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKworCS8qIGlz IHRoZSBjYWxsZXIgYWxsb3dlZCB0byB1cGRhdGUgdGhlIHNlc3Npb24gdmFyaWFibGU/ICovCisJ YWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIEdl dFVzZXJJZCgpLCBBQ0xfVVBEQVRFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQor CQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsIE9CSkVDVF9WQVJJQUJMRSwgZ2V0X3Nlc3Npb25f dmFyaWFibGVfbmFtZSh2YXJpZCkpOworCisJU2V0U2Vzc2lvblZhcmlhYmxlKHZhcmlkLCB2YWx1 ZSwgaXNOdWxsKTsKK30KKwogLyoKICAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB2YWx1ZSBzdG9y ZWQgaW4gYSB2YXJpYWJsZS4KICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv c3BpLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYwppbmRleCA0Y2U2YmM1ZjI5OC4uZTUy ZDhjYzEzYmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jCkBAIC0yOTk5LDYgKzI5OTksOSBAQCBfU1BJX2Vycm9y X2NhbGxiYWNrKHZvaWQgKmFyZykKIAkJCWNhc2UgUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOMzoK IAkJCQllcnJjb250ZXh0KCJQTC9wZ1NRTCBhc3NpZ25tZW50IFwiJXNcIiIsIHF1ZXJ5KTsKIAkJ CQlicmVhazsKKwkJCWNhc2UgUkFXX1BBUlNFX1BMUEdTUUxfTEVUOgorCQkJCWVycmNvbnRleHQo IkxFVCBzdGF0ZW1lbnQgXCIlc1wiIiwgcXVlcnkpOworCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoK IAkJCQllcnJjb250ZXh0KCJTUUwgc3RhdGVtZW50IFwiJXNcIiIsIHF1ZXJ5KTsKIAkJCQlicmVh azsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvYW5hbHl6ZS5jCmluZGV4IGI4ZGYxNmU0ZjA5Li4wZjkxZWM4OWM3NCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFja2VuZC9wYXJz ZXIvYW5hbHl6ZS5jCkBAIC0yMDEzLDYgKzIwMTMsMTggQEAgdHJhbnNmb3JtTGV0U3RtdChQYXJz ZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQpCiAKIAlzdG10LT5xdWVyeSA9IChOb2RlICop IHF1ZXJ5OwogCisJLyoKKwkgKiBJbnNpZGUgUEwvcGdTUUwgd2UgZG9uJ3Qgd2FudCB0byBleGVj dXRlIExFVCBzdGF0ZW1lbnQgYXMgdXRpbGl0eQorCSAqIGNvbW1hbmQsIGJlY2F1c2UgaXQgZGlz YWxsb3cgdG8gZXhlY3V0ZSBleHByZXNzaW9uIGFzIHNpbXBsZQorCSAqIGV4cHJlc3Npb24uIFNv IGZvciBQTC9wZ1NRTCB3ZSBoYXZlIGV4dHJhIHBhdGgsIGFuZCB3ZSByZXR1cm4gU0VMRUNULgor CSAqIFRoZW4gaXQgY2FuIGJlIGV4ZWN1dGVkIGJ5IGV4ZWNfZXZhbF9leHByLiBSZXN1bHQgaXMg ZGlycmVjdGx5IGFzc2lnbmVkCisJICogdG8gdGFyZ2V0IHNlc3Npb24gdmFyaWFibGUgaW5zaWRl IFBML3BnU1FMIExFVCBzdGF0ZW1lbnQgaGFuZGxlci4gVGhpcworCSAqIGlzIGV4dHJhIGNvZGUs IGV4dHJhIHBhdGgsIGJ1dCBwb3NzaWJpbGl0eSB0byBnZXQgZmFzdGVyIGV4ZWN1dGlvbiBpcwor CSAqIHRvbyBhdHRyYWN0aXZlLgorCSAqLworCWlmIChzdG10LT5wbHBnc3FsX21vZGUpCisJCXJl dHVybiBxdWVyeTsKKwogCS8qIHJlcHJlc2VudCB0aGUgY29tbWFuZCBhcyBhIHV0aWxpdHkgUXVl cnkgKi8KIAlyZXN1bHQgPSBtYWtlTm9kZShRdWVyeSk7CiAJcmVzdWx0LT5jb21tYW5kVHlwZSA9 IENNRF9VVElMSVRZOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYTU5ZjY4NTBiNzUuLmJmN2NhM2Y1MWM2IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKQEAgLTgxNiw2ICs4MTYsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2 ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwog JXRva2VuCQlNT0RFX1BMUEdTUUxfQVNTSUdOMQogJXRva2VuCQlNT0RFX1BMUEdTUUxfQVNTSUdO MgogJXRva2VuCQlNT0RFX1BMUEdTUUxfQVNTSUdOMworJXRva2VuCQlNT0RFX1BMUEdTUUxfTEVU CiAKIAogLyogUHJlY2VkZW5jZTogbG93ZXN0IHRvIGhpZ2hlc3QgKi8KQEAgLTk0Nyw2ICs5NDgs MTMgQEAgcGFyc2VfdG9wbGV2ZWw6CiAJCQkJcGdfeXlnZXRfZXh0cmEoeXlzY2FubmVyKS0+cGFy c2V0cmVlID0KIAkJCQkJbGlzdF9tYWtlMShtYWtlUmF3U3RtdCgoTm9kZSAqKSBuLCBAMikpOwog CQkJfQorCQkJfCBNT0RFX1BMUEdTUUxfTEVUIExldFN0bXQKKwkJCXsKKwkJCQlMZXRTdG10ICpu ID0gKExldFN0bXQgKikgJDI7CisJCQkJbi0+cGxwZ3NxbF9tb2RlID0gdHJ1ZTsKKwkJCQlwZ195 eWdldF9leHRyYSh5eXNjYW5uZXIpLT5wYXJzZXRyZWUgPQorCQkJCQlsaXN0X21ha2UxKG1ha2VS YXdTdG10KChOb2RlICopIG4sIDApKTsKKwkJCX0KIAkJOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlci5jCmlu ZGV4IDMzYTA0MDUwNmI0Li44ODcyMTJhZWZkZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZXIuYwpAQCAtNjIsNiAr NjIsNyBAQCByYXdfcGFyc2VyKGNvbnN0IGNoYXIgKnN0ciwgUmF3UGFyc2VNb2RlIG1vZGUpCiAJ CQlbUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOMV0gPSBNT0RFX1BMUEdTUUxfQVNTSUdOMSwKIAkJ CVtSQVdfUEFSU0VfUExQR1NRTF9BU1NJR04yXSA9IE1PREVfUExQR1NRTF9BU1NJR04yLAogCQkJ W1JBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjNdID0gTU9ERV9QTFBHU1FMX0FTU0lHTjMsCisJCQlb UkFXX1BBUlNFX1BMUEdTUUxfTEVUXSA9IE1PREVfUExQR1NRTF9MRVQsCiAJCX07CiAKIAkJeXll eHRyYS5oYXZlX2xvb2thaGVhZCA9IHRydWU7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmgKaW5kZXggMjM4NDFhYjM3M2IuLjg2MTEyYjQzYjQ2IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0yOCw2ICsyOCw3IEBAIGV4dGVybiB2b2lkIEF0 RU9TdWJYYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCwgU3ViVHJhbnNhY3Rpb25J ZCBteVN1YmlkCiAJCQkJCQkJCQkJIFN1YlRyYW5zYWN0aW9uSWQgcGFyZW50U3ViaWQpOwogCiBl eHRlcm4gdm9pZCBTZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9v bCBpc051bGwpOworZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlV2l0aFNlY3VyaXR5Q2hl Y2soT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpOwogZXh0ZXJuIERhdHVtIEdl dFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCwgT2lkICp0eXBpZCk7CiBl eHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlV2l0aFR5cGVDaGVjayhPaWQgdmFyaWQsIGJv b2wgKmlzTnVsbCwgT2lkIGV4cGVjdGVkX3R5cGlkKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmlu ZGV4IDFhN2Y0NDNjZTc1Li45OTBjZWJiZjA4YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAt MjEyNCw2ICsyMTI0LDggQEAgdHlwZWRlZiBzdHJ1Y3QgTGV0U3RtdAogCU5vZGVUYWcJCXR5cGU7 CiAJTGlzdAkgICAqdGFyZ2V0OwkJCS8qIHRhcmdldCB2YXJpYWJsZSAqLwogCU5vZGUJICAgKnF1 ZXJ5OwkJCS8qIHNvdXJjZSBleHByZXNzaW9uICovCisJYm9vbAkJcGxwZ3NxbF9tb2RlOwkvKiB0 cnVlLCB3aGVuIGNvbW1hbmQgd2lsbCBiZSBleGVjdXRlZAorCQkJCQkJCQkgKiAocGFyc2VkKSBi eSBwbHBnc3FsIHJ1bnRpbWUgKi8KIAlQYXJzZUxvYwlsb2NhdGlvbjsKIH0gTGV0U3RtdDsKIApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oIGIvc3JjL2luY2x1ZGUvcGFy c2VyL3BhcnNlci5oCmluZGV4IDM1MDE5NmNkNjQxLi5jOGQ1ZThkYmY5MiAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZXIuaApAQCAtMzMsNiArMzMsOSBAQAogICogUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdObjogcGFy c2UgYSBQTC9wZ1NRTCBhc3NpZ25tZW50IHN0YXRlbWVudCwKICAqIGFuZCByZXR1cm4gYSBvbmUt ZWxlbWVudCBMaXN0IGNvbnRhaW5pbmcgYSBSYXdTdG10IG5vZGUuICAibiIKICAqIGdpdmVzIHRo ZSBudW1iZXIgb2YgZG90dGVkIG5hbWVzIGNvbXByaXNpbmcgdGhlIHRhcmdldCBDb2x1bW5SZWYu CisgKgorICogUkFXX1BBUlNFX1BMUEdTUUxfTEVUOiBwYXJzZSBhIExFVCBzdGF0ZW1lbnQsIGFu ZCByZXR1cm4gYQorICogb25lLWVsZW1lbnQgTGlzdCBjb250YWluaW5nIGEgUmF3U3RtdCBub2Rl LgogICovCiB0eXBlZGVmIGVudW0KIHsKQEAgLTQyLDYgKzQ1LDcgQEAgdHlwZWRlZiBlbnVtCiAJ UkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOMSwKIAlSQVdfUEFSU0VfUExQR1NRTF9BU1NJR04yLAog CVJBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjMsCisJUkFXX1BBUlNFX1BMUEdTUUxfTEVULAogfSBS YXdQYXJzZU1vZGU7CiAKIC8qIFZhbHVlcyBmb3IgdGhlIGJhY2tzbGFzaF9xdW90ZSBHVUMgKi8K ZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgYi9zcmMvcGwvcGxwZ3Nx bC9zcmMvcGxfZXhlYy5jCmluZGV4IGU1YjBkYTA0ZTNjLi4yYjkyZmI1ZWVhNCAxMDA2NDQKLS0t IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYworKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMv cGxfZXhlYy5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiYWNjZXNzL3R1cGNvbnZlcnQu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5 cGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAi ZXhlY3V0b3IvZXhlY0V4cHIuaCIKICNpbmNsdWRlICJleGVjdXRvci9zcGkuaCIKICNpbmNsdWRl ICJleGVjdXRvci90c3RvcmVSZWNlaXZlci5oIgpAQCAtMzIzLDYgKzMyNCw4IEBAIHN0YXRpYyBp bnQJZXhlY19zdG10X2NvbW1pdChQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAogCQkJCQkJCSBQ THBnU1FMX3N0bXRfY29tbWl0ICpzdG10KTsKIHN0YXRpYyBpbnQJZXhlY19zdG10X3JvbGxiYWNr KFBMcGdTUUxfZXhlY3N0YXRlICplc3RhdGUsCiAJCQkJCQkJICAgUExwZ1NRTF9zdG10X3JvbGxi YWNrICpzdG10KTsKK3N0YXRpYyBpbnQJZXhlY19zdG10X2xldChQTHBnU1FMX2V4ZWNzdGF0ZSAq ZXN0YXRlLAorCQkJCQkJICBQTHBnU1FMX3N0bXRfbGV0ICpsZXQpOwogCiBzdGF0aWMgdm9pZCBw bHBnc3FsX2VzdGF0ZV9zZXR1cChQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAogCQkJCQkJCQkg UExwZ1NRTF9mdW5jdGlvbiAqZnVuYywKQEAgLTIxMTYsNiArMjExOSwxMCBAQCBleGVjX3N0bXRz KFBMcGdTUUxfZXhlY3N0YXRlICplc3RhdGUsIExpc3QgKnN0bXRzKQogCQkJCXJjID0gZXhlY19z dG10X3JvbGxiYWNrKGVzdGF0ZSwgKFBMcGdTUUxfc3RtdF9yb2xsYmFjayAqKSBzdG10KTsKIAkJ CQlicmVhazsKIAorCQkJY2FzZSBQTFBHU1FMX1NUTVRfTEVUOgorCQkJCXJjID0gZXhlY19zdG10 X2xldChlc3RhdGUsIChQTHBnU1FMX3N0bXRfbGV0ICopIHN0bXQpOworCQkJCWJyZWFrOworCiAJ CQlkZWZhdWx0OgogCQkJCS8qIHBvaW50IGVycl9zdG10IHRvIHBhcmVudCwgc2luY2UgdGhpcyBv bmUgc2VlbXMgY29ycnVwdCAqLwogCQkJCWVzdGF0ZS0+ZXJyX3N0bXQgPSBzYXZlX2VzdG10OwpA QCAtNDk5OSw2ICs1MDA2LDU1IEBAIGV4ZWNfc3RtdF9yb2xsYmFjayhQTHBnU1FMX2V4ZWNzdGF0 ZSAqZXN0YXRlLCBQTHBnU1FMX3N0bXRfcm9sbGJhY2sgKnN0bXQpCiAJcmV0dXJuIFBMUEdTUUxf UkNfT0s7CiB9CiAKKy8qIC0tLS0tLS0tLS0KKyAqIGV4ZWNfc3RtdF9sZXQJCQlFdmFsdWF0ZSBh biBleHByZXNzaW9uIGFuZAorICoJCQkJCXB1dCB0aGUgcmVzdWx0IGludG8gYSBzZXNzaW9uIHZh cmlhYmxlLgorICogLS0tLS0tLS0tLQorICovCitzdGF0aWMgaW50CitleGVjX3N0bXRfbGV0KFBM cGdTUUxfZXhlY3N0YXRlICplc3RhdGUsIFBMcGdTUUxfc3RtdF9sZXQgKnN0bXQpCit7CisJYm9v bAkJaXNOdWxsOworCU9pZAkJCXZhbHR5cGU7CisJaW50MzIJCXZhbHR5cG1vZDsKKwlEYXR1bQkJ dmFsdWU7CisJT2lkCQkJdmFyaWQ7CisKKwlMaXN0CSAgICpwbGFuc291cmNlczsKKwlDYWNoZWRQ bGFuU291cmNlICpwbGFuc291cmNlOworCisJdmFsdWUgPSBleGVjX2V2YWxfZXhwcihlc3RhdGUs CisJCQkJCQkgICBzdG10LT5leHByLAorCQkJCQkJICAgJmlzTnVsbCwKKwkJCQkJCSAgICZ2YWx0 eXBlLAorCQkJCQkJICAgJnZhbHR5cG1vZCk7CisKKwkvKgorCSAqIE9pZCBvZiB0YXJnZXQgc2Vz c2lvbiB2YXJpYWJsZSBpcyBzdG9yZWQgaW4gUXVlcnkgc3RydWN0dXJlLiBJdCBpcworCSAqIHNh ZmVyIHRvIHJlYWQgdGhpcyB2YWx1ZSBkaXJlY3RseSBmcm9tIHRoZSBwbGFuIHRoYW4gdG8gaG9s ZCB0aGlzIHZhbHVlCisJICogaW4gdGhlIHBscGdzcWwgY29udGV4dCwgYmVjYXVzZSBpdCdzIG5v dCBuZWNlc3NhcnkgdG8gaGFuZGxlCisJICogaW52YWxpZGF0aW9uIG9mIHRoZSBjYWNoZWQgdmFs dWUuIE5leHQgb3BlcmF0aW9ucyBhcmUgcmVhZCBvbmx5IHdpdGhvdXQKKwkgKiBhbnkgYWxsb2Nh dGlvbnMsIHNvIHdlIGNhbiBleHBlY3QgdGhhdCByZXRyaWV2aW5nIHZhcmlkIGZyb20gUXVlcnkK KwkgKiBzaG91bGQgYmUgZmFzdC4KKwkgKi8KKwlwbGFuc291cmNlcyA9IFNQSV9wbGFuX2dldF9w bGFuX3NvdXJjZXMoc3RtdC0+ZXhwci0+cGxhbik7CisJaWYgKGxpc3RfbGVuZ3RoKHBsYW5zb3Vy Y2VzKSAhPSAxKQorCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBsZW5ndGggb2YgcGxhbnNvdXJj ZXMgb2YgcXVlcnkgZm9yIExFVCBzdGF0ZW1lbnQiKTsKKworCXBsYW5zb3VyY2UgPSAoQ2FjaGVk UGxhblNvdXJjZSAqKSBsaW5pdGlhbChwbGFuc291cmNlcyk7CisJaWYgKGxpc3RfbGVuZ3RoKHBs YW5zb3VyY2UtPnF1ZXJ5X2xpc3QpICE9IDEpCisJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIGxl bmd0aCBvZiBwbGFuc291cmNlIG9mIHF1ZXJ5IGZvciBMRVQgc3RhdGVtZW50Iik7CisKKwl2YXJp ZCA9IGxpbml0aWFsX25vZGUoUXVlcnksIHBsYW5zb3VyY2UtPnF1ZXJ5X2xpc3QpLT5yZXN1bHRW YXJpYWJsZTsKKwlpZiAoIU9pZElzVmFsaWQodmFyaWQpKQorCQllbG9nKEVSUk9SLCAib2lkIG9m IHRhcmdldCBzZXNzaW9uIHZhcmlhYmxlIGlzIG5vdCB2YWxpZCIpOworCisJU2V0U2Vzc2lvblZh cmlhYmxlV2l0aFNlY3VyaXR5Q2hlY2sodmFyaWQsIHZhbHVlLCBpc051bGwpOworCWV4ZWNfZXZh bF9jbGVhbnVwKGVzdGF0ZSk7CisKKwlyZXR1cm4gUExQR1NRTF9SQ19PSzsKK30KKwogLyogLS0t LS0tLS0tLQogICogZXhlY19hc3NpZ25fZXhwcgkJCVB1dCBhbiBleHByZXNzaW9uJ3MgcmVzdWx0 IGludG8gYSB2YXJpYWJsZS4KICAqIC0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBn c3FsL3NyYy9wbF9mdW5jcy5jIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2Z1bmNzLmMKaW5kZXgg OGM4MjdmZTVjYzUuLmY3NDhkZjA0OGM0IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMv cGxfZnVuY3MuYworKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZnVuY3MuYwpAQCAtMjg4LDYg KzI4OCw4IEBAIHBscGdzcWxfc3RtdF90eXBlbmFtZShQTHBnU1FMX3N0bXQgKnN0bXQpCiAJCQly ZXR1cm4gIkNPTU1JVCI7CiAJCWNhc2UgUExQR1NRTF9TVE1UX1JPTExCQUNLOgogCQkJcmV0dXJu ICJST0xMQkFDSyI7CisJCWNhc2UgUExQR1NRTF9TVE1UX0xFVDoKKwkJCXJldHVybiAiTEVUIjsK IAl9CiAKIAlyZXR1cm4gInVua25vd24iOwpAQCAtMzcwLDYgKzM3Miw3IEBAIHN0YXRpYyB2b2lk IGZyZWVfcGVyZm9ybShQTHBnU1FMX3N0bXRfcGVyZm9ybSAqc3RtdCk7CiBzdGF0aWMgdm9pZCBm cmVlX2NhbGwoUExwZ1NRTF9zdG10X2NhbGwgKnN0bXQpOwogc3RhdGljIHZvaWQgZnJlZV9jb21t aXQoUExwZ1NRTF9zdG10X2NvbW1pdCAqc3RtdCk7CiBzdGF0aWMgdm9pZCBmcmVlX3JvbGxiYWNr KFBMcGdTUUxfc3RtdF9yb2xsYmFjayAqc3RtdCk7CitzdGF0aWMgdm9pZCBmcmVlX2xldChQTHBn U1FMX3N0bXRfbGV0ICpzdG10KTsKIHN0YXRpYyB2b2lkIGZyZWVfZXhwcihQTHBnU1FMX2V4cHIg KmV4cHIpOwogCiAKQEAgLTQ1OSw2ICs0NjIsOSBAQCBmcmVlX3N0bXQoUExwZ1NRTF9zdG10ICpz dG10KQogCQljYXNlIFBMUEdTUUxfU1RNVF9ST0xMQkFDSzoKIAkJCWZyZWVfcm9sbGJhY2soKFBM cGdTUUxfc3RtdF9yb2xsYmFjayAqKSBzdG10KTsKIAkJCWJyZWFrOworCQljYXNlIFBMUEdTUUxf U1RNVF9MRVQ6CisJCQlmcmVlX2xldCgoUExwZ1NRTF9zdG10X2xldCAqKSBzdG10KTsKKwkJCWJy ZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBjbWRfdHlwZTog JWQiLCBzdG10LT5jbWRfdHlwZSk7CiAJCQlicmVhazsKQEAgLTcxMyw2ICs3MTksMTIgQEAgZnJl ZV9nZXRkaWFnKFBMcGdTUUxfc3RtdF9nZXRkaWFnICpzdG10KQogewogfQogCitzdGF0aWMgdm9p ZAorZnJlZV9sZXQoUExwZ1NRTF9zdG10X2xldCAqc3RtdCkKK3sKKwlmcmVlX2V4cHIoc3RtdC0+ ZXhwcik7Cit9CisKIHN0YXRpYyB2b2lkCiBmcmVlX2V4cHIoUExwZ1NRTF9leHByICpleHByKQog ewpAQCAtODE1LDYgKzgyNyw3IEBAIHN0YXRpYyB2b2lkIGR1bXBfcGVyZm9ybShQTHBnU1FMX3N0 bXRfcGVyZm9ybSAqc3RtdCk7CiBzdGF0aWMgdm9pZCBkdW1wX2NhbGwoUExwZ1NRTF9zdG10X2Nh bGwgKnN0bXQpOwogc3RhdGljIHZvaWQgZHVtcF9jb21taXQoUExwZ1NRTF9zdG10X2NvbW1pdCAq c3RtdCk7CiBzdGF0aWMgdm9pZCBkdW1wX3JvbGxiYWNrKFBMcGdTUUxfc3RtdF9yb2xsYmFjayAq c3RtdCk7CitzdGF0aWMgdm9pZCBkdW1wX2xldChQTHBnU1FMX3N0bXRfbGV0ICpzdG10KTsKIHN0 YXRpYyB2b2lkIGR1bXBfZXhwcihQTHBnU1FMX2V4cHIgKmV4cHIpOwogCiAKQEAgLTkxNCw2ICs5 MjcsOSBAQCBkdW1wX3N0bXQoUExwZ1NRTF9zdG10ICpzdG10KQogCQljYXNlIFBMUEdTUUxfU1RN VF9ST0xMQkFDSzoKIAkJCWR1bXBfcm9sbGJhY2soKFBMcGdTUUxfc3RtdF9yb2xsYmFjayAqKSBz dG10KTsKIAkJCWJyZWFrOworCQljYXNlIFBMUEdTUUxfU1RNVF9MRVQ6CisJCQlkdW1wX2xldCgo UExwZ1NRTF9zdG10X2xldCAqKSBzdG10KTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxv ZyhFUlJPUiwgInVucmVjb2duaXplZCBjbWRfdHlwZTogJWQiLCBzdG10LT5jbWRfdHlwZSk7CiAJ CQlicmVhazsKQEAgLTE1OTAsNiArMTYwNiwxNCBAQCBkdW1wX2dldGRpYWcoUExwZ1NRTF9zdG10 X2dldGRpYWcgKnN0bXQpCiAJcHJpbnRmKCJcbiIpOwogfQogCitzdGF0aWMgdm9pZAorZHVtcF9s ZXQoUExwZ1NRTF9zdG10X2xldCAqc3RtdCkKK3sKKwlkdW1wX2luZCgpOworCWR1bXBfZXhwcihz dG10LT5leHByKTsKKwlwcmludGYoIlxuIik7Cit9CisKIHN0YXRpYyB2b2lkCiBkdW1wX2V4cHIo UExwZ1NRTF9leHByICpleHByKQogewpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3Bs X2dyYW0ueSBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkKaW5kZXggOTc4MzA2MzI1OGYu LmYwOWNjNTk3ZGVmIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZ3JhbS55Cisr KyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkKQEAgLTIwMCw3ICsyMDAsNyBAQCBzdGF0 aWMJdm9pZAkJCWNoZWNrX3JhaXNlX3BhcmFtZXRlcnMoUExwZ1NRTF9zdG10X3JhaXNlICpzdG10 KTsKICV0eXBlIDxzdG10PglzdG10X3JldHVybiBzdG10X3JhaXNlIHN0bXRfYXNzZXJ0IHN0bXRf ZXhlY3NxbAogJXR5cGUgPHN0bXQ+CXN0bXRfZHluZXhlY3V0ZSBzdG10X2ZvciBzdG10X3BlcmZv cm0gc3RtdF9jYWxsIHN0bXRfZ2V0ZGlhZwogJXR5cGUgPHN0bXQ+CXN0bXRfb3BlbiBzdG10X2Zl dGNoIHN0bXRfbW92ZSBzdG10X2Nsb3NlIHN0bXRfbnVsbAotJXR5cGUgPHN0bXQ+CXN0bXRfY29t bWl0IHN0bXRfcm9sbGJhY2sKKyV0eXBlIDxzdG10PglzdG10X2NvbW1pdCBzdG10X3JvbGxiYWNr IHN0bXRfbGV0CiAldHlwZSA8c3RtdD4Jc3RtdF9jYXNlIHN0bXRfZm9yZWFjaF9hCiAKICV0eXBl IDxsaXN0Pglwcm9jX2V4Y2VwdGlvbnMKQEAgLTMwNyw2ICszMDcsNyBAQCBzdGF0aWMJdm9pZAkJ CWNoZWNrX3JhaXNlX3BhcmFtZXRlcnMoUExwZ1NRTF9zdG10X3JhaXNlICpzdG10KTsKICV0b2tl biA8a2V5d29yZD4JS19JTlRPCiAldG9rZW4gPGtleXdvcmQ+CUtfSVMKICV0b2tlbiA8a2V5d29y ZD4JS19MQVNUCisldG9rZW4gPGtleXdvcmQ+CUtfTEVUCiAldG9rZW4gPGtleXdvcmQ+CUtfTE9H CiAldG9rZW4gPGtleXdvcmQ+CUtfTE9PUAogJXRva2VuIDxrZXl3b3JkPglLX01FUkdFCkBAIC04 NzYsNiArODc3LDggQEAgcHJvY19zdG10CQk6IHBsX2Jsb2NrICc7JwogCQkJCQkJeyAkJCA9ICQx OyB9CiAJCQkJfCBzdG10X3JvbGxiYWNrCiAJCQkJCQl7ICQkID0gJDE7IH0KKwkJCQl8IHN0bXRf bGV0CisJCQkJCQl7ICQkID0gJDE7IH0KIAkJCQk7CiAKIHN0bXRfcGVyZm9ybQk6IEtfUEVSRk9S TQpAQCAtOTkyLDYgKzk5NSwyOSBAQCBzdG10X2Fzc2lnbgkJOiBUX0RBVFVNCiAJCQkJCX0KIAkJ CQk7CiAKK3N0bXRfbGV0CQk6IEtfTEVUCisJCQkJCXsKKwkJCQkJCVBMcGdTUUxfc3RtdF9sZXQg Km5ldzsKKwkJCQkJCVJhd1BhcnNlTW9kZSBwbW9kZTsKKworCQkJCQkJcG1vZGUgPSBSQVdfUEFS U0VfUExQR1NRTF9MRVQ7CisKKwkJCQkJCW5ldyA9IHBhbGxvYzAoc2l6ZW9mKFBMcGdTUUxfc3Rt dF9sZXQpKTsKKwkJCQkJCW5ldy0+Y21kX3R5cGUgPSBQTFBHU1FMX1NUTVRfTEVUOworCQkJCQkJ bmV3LT5saW5lbm8gICA9IHBscGdzcWxfbG9jYXRpb25fdG9fbGluZW5vKEAxKTsKKwkJCQkJCW5l dy0+c3RtdGlkID0gKytwbHBnc3FsX2N1cnJfY29tcGlsZS0+bnN0YXRlbWVudHM7CisKKwkJCQkJ CS8qIHB1c2ggYmFjayB0aGUgaGVhZCBuYW1lIHRvIGluY2x1ZGUgaXQgaW4gdGhlIHN0bXQgKi8K KwkJCQkJCXBscGdzcWxfcHVzaF9iYWNrX3Rva2VuKEtfTEVUKTsKKwkJCQkJCW5ldy0+ZXhwciA9 IHJlYWRfc3FsX2NvbnN0cnVjdCgnOycsIDAsIDAsICI7IiwKKwkJCQkJCQkJCQkJCQkgICBwbW9k ZSwKKwkJCQkJCQkJCQkJCQkgICBmYWxzZSwgdHJ1ZSwKKwkJCQkJCQkJCQkJCQkgICBOVUxMLCBO VUxMKTsKKworCQkJCQkJJCQgPSAoUExwZ1NRTF9zdG10ICopbmV3OworCQkJCQl9CisJCQkJOwor CiBzdG10X2dldGRpYWcJOiBLX0dFVCBnZXRkaWFnX2FyZWFfb3B0IEtfRElBR05PU1RJQ1MgZ2V0 ZGlhZ19saXN0ICc7JwogCQkJCQl7CiAJCQkJCQlQTHBnU1FMX3N0bXRfZ2V0ZGlhZyAqbmV3Owpk aWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX3Jlc2VydmVkX2t3bGlzdC5oIGIvc3Jj L3BsL3BscGdzcWwvc3JjL3BsX3Jlc2VydmVkX2t3bGlzdC5oCmluZGV4IGNlN2IwYzlkMzMxLi5l MjY2YmQxY2M0NiAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX3Jlc2VydmVkX2t3 bGlzdC5oCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9yZXNlcnZlZF9rd2xpc3QuaApAQCAt NDAsNiArNDAsNyBAQCBQR19LRVlXT1JEKCJmcm9tIiwgS19GUk9NKQogUEdfS0VZV09SRCgiaWYi LCBLX0lGKQogUEdfS0VZV09SRCgiaW4iLCBLX0lOKQogUEdfS0VZV09SRCgiaW50byIsIEtfSU5U TykKK1BHX0tFWVdPUkQoImxldCIsIEtfTEVUKQogUEdfS0VZV09SRCgibG9vcCIsIEtfTE9PUCkK IFBHX0tFWVdPUkQoIm5vdCIsIEtfTk9UKQogUEdfS0VZV09SRCgibnVsbCIsIEtfTlVMTCkKZGlm ZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF91bnJlc2VydmVkX2t3bGlzdC5oIGIvc3Jj L3BsL3BscGdzcWwvc3JjL3BsX3VucmVzZXJ2ZWRfa3dsaXN0LmgKaW5kZXggOThmOTllYzQ3MGMu LmVkMTRmZDg2YzMxIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfdW5yZXNlcnZl ZF9rd2xpc3QuaAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfdW5yZXNlcnZlZF9rd2xpc3Qu aApAQCAtNjksNiArNjksNyBAQCBQR19LRVlXT1JEKCJpbmZvIiwgS19JTkZPKQogUEdfS0VZV09S RCgiaW5zZXJ0IiwgS19JTlNFUlQpCiBQR19LRVlXT1JEKCJpcyIsIEtfSVMpCiBQR19LRVlXT1JE KCJsYXN0IiwgS19MQVNUKQorUEdfS0VZV09SRCgibGV0IiwgS19MRVQpCiBQR19LRVlXT1JEKCJs b2ciLCBLX0xPRykKIFBHX0tFWVdPUkQoIm1lcmdlIiwgS19NRVJHRSkKIFBHX0tFWVdPUkQoIm1l c3NhZ2UiLCBLX01FU1NBR0UpCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxwZ3Nx bC5oIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BscGdzcWwuaAppbmRleCBkMDBiOWNlMGRhMi4uNjAx YzVlNTkyMjkgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbHBnc3FsLmgKKysrIGIv c3JjL3BsL3BscGdzcWwvc3JjL3BscGdzcWwuaApAQCAtMTI4LDYgKzEyOCw3IEBAIHR5cGVkZWYg ZW51bSBQTHBnU1FMX3N0bXRfdHlwZQogCVBMUEdTUUxfU1RNVF9DQUxMLAogCVBMUEdTUUxfU1RN VF9DT01NSVQsCiAJUExQR1NRTF9TVE1UX1JPTExCQUNLLAorCVBMUEdTUUxfU1RNVF9MRVQsCiB9 IFBMcGdTUUxfc3RtdF90eXBlOwogCiAvKgpAQCAtNTIwLDYgKzUyMSwxNyBAQCB0eXBlZGVmIHN0 cnVjdCBQTHBnU1FMX3N0bXRfYXNzaWduCiAJUExwZ1NRTF9leHByICpleHByOwogfSBQTHBnU1FM X3N0bXRfYXNzaWduOwogCisvKgorICogTGV0IHN0YXRlbWVudAorICovCit0eXBlZGVmIHN0cnVj dCBQTHBnU1FMX3N0bXRfbGV0Cit7CisJUExwZ1NRTF9zdG10X3R5cGUgY21kX3R5cGU7CisJaW50 CQkJbGluZW5vOworCXVuc2lnbmVkIGludCBzdG10aWQ7CisJUExwZ1NRTF9leHByICpleHByOwor fSBQTHBnU1FMX3N0bXRfbGV0OworCiAvKgogICogUEVSRk9STSBzdGF0ZW1lbnQKICAqLwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCBh NjUzMTFlOTM1Mi4uOWRlZTIxOTg2ZmEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0xMTI1LDggKzExMjUsNyBAQCBFUlJPUjogIHBl cm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKIENPTlRFWFQ6ICBQTC9w Z1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgUkFJU0UKIERPICQkIEJF R0lOIExFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsgRU5EICQkOwogRVJST1I6ICBwZXJtaXNzaW9u IGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCi1DT05URVhUOiAgU1FMIHN0YXRlbWVu dCAiTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwIgotUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2Nv ZGVfYmxvY2sgbGluZSAxIGF0IFNRTCBzdGF0ZW1lbnQKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5j dGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgTEVUCiBTRVQgUk9MRSBUTyBERUZBVUxU OwogR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc192YXJfdGVzdF9yb2xl OwogU0VUIFJPTEUgVE8gcmVncmVzc192YXJfdGVzdF9yb2xlOwpAQCAtMTE2Nyw4ICsxMTY2LDcg QEAgRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBD T05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFJB SVNFCiBETyAkJCBCRUdJTiBMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7IEVORCAkJDsKIEVSUk9S OiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQotQ09OVEVYVDog IFNRTCBzdGF0ZW1lbnQgIkxFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMCIKLVBML3BnU1FMIGZ1bmN0 aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBTUUwgc3RhdGVtZW50CitDT05URVhUOiAg UEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IExFVAogU0VUIFJP TEUgVE8gREVGQVVMVDsKIERST1AgVkFSSUFCTEUgdmFyMTsKIERST1AgUk9MRSByZWdyZXNzX3Zh cl90ZXN0X3JvbGU7CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IDVjODc1YWU2ODQ2Li43 YWU1Yjg4ZmViMSAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QK KysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTE4OTMsNiArMTg5Myw3 IEBAIFBMcGdTUUxfc3RtdF9mb3JxCiBQTHBnU1FMX3N0bXRfZm9ycwogUExwZ1NRTF9zdG10X2dl dGRpYWcKIFBMcGdTUUxfc3RtdF9pZgorUExwZ1NRTF9zdG10X2xldAogUExwZ1NRTF9zdG10X2xv b3AKIFBMcGdTUUxfc3RtdF9vcGVuCiBQTHBnU1FMX3N0bXRfcGVyZm9ybQotLSAKMi40Ny4xCgo= --000000000000f297a7062b2456dc Content-Type: text/x-patch; charset="US-ASCII"; name="v20250107-0022-pg_restore-A-variable.patch" Content-Disposition: attachment; filename="v20250107-0022-pg_restore-A-variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5mz6bex0 RnJvbSA2Y2VmNjkxMzA3ZDNjY2IwODhjOGJkZmRmNjJkMzg4NDVmNjBlZjE1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjEgSnVsIDIwMjQgMTc6MDQ6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIIDIy LzIyXSBwZ19yZXN0b3JlIC1BLCAtLXZhcmlhYmxlCgpwb3NzaWJpbGl0eSB0byByZXN0b3JlIHNl c3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IG5hbWUKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3Bn X3Jlc3RvcmUuc2dtbCB8IDExICsrKysrKysrKysrCiBzcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9y ZS5jICAgICB8ICA5ICsrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19yZXN0b3Jl LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dtbAppbmRleCBiOGIyN2UxNzE5 ZS4uN2EzYTRlYWJlMjUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcGdfcmVzdG9yZS5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcGdfcmVzdG9yZS5zZ21sCkBAIC0xMDYsNiArMTA2 LDE3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogICAgICAgPC9saXN0aXRlbT4KICAgICAg PC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxvcHRp b24+LUEgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNlc3Npb25fdmFyaWFibGU8L3Jl cGxhY2VhYmxlPjwvb3B0aW9uPjwvdGVybT4KKyAgICAgIDx0ZXJtPjxvcHRpb24+LS12YXJpYWJs ZT08cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c2Vzc2lvbl92YXJpYWJsZTwvcmVwbGFj ZWFibGU+PC9vcHRpb24+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgor ICAgICAgICBSZXN0b3JlIGEgbmFtZWQgc2Vzc2lvbiB2YXJpYWJsZSBvbmx5LiAgTXVsdGlwbGUg c2Vzc2lvbiB2YXJpYWJsZXMgbWF5CisgICAgICAgIGJlIHNwZWNpZmllZCB3aXRoIG11bHRpcGxl IDxvcHRpb24+LUE8L29wdGlvbj4gc3dpdGNoZXMuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9s aXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxpc3RlbnRyeT4KICAg ICAgIDx0ZXJtPjxvcHRpb24+LWM8L29wdGlvbj48L3Rlcm0+CiAgICAgICA8dGVybT48b3B0aW9u Pi0tY2xlYW48L29wdGlvbj48L3Rlcm0+CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdf cmVzdG9yZS5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jlc3RvcmUuYwppbmRleCA4OGFlMzlkOTM4 YS4uNTIxODBjOTdkOTMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMK KysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jlc3RvcmUuYwpAQCAtMTA2LDYgKzEwNiw3IEBAIG1h aW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQl7InRyaWdnZXIiLCAxLCBOVUxMLCAnVCd9LAog CQl7InVzZS1saXN0IiwgMSwgTlVMTCwgJ0wnfSwKIAkJeyJ1c2VybmFtZSIsIDEsIE5VTEwsICdV J30sCisJCXsidmFyaWFibGUiLCAxLCBOVUxMLCAnQSd9LAogCQl7InZlcmJvc2UiLCAwLCBOVUxM LCAndid9LAogCQl7InNpbmdsZS10cmFuc2FjdGlvbiIsIDAsIE5VTEwsICcxJ30sCiAKQEAgLTE1 Niw3ICsxNTcsNyBAQCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKIAkJfQogCX0KIAotCXdo aWxlICgoYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3YsICJhY0NkOmVmOkY6aDpJOmo6bEw6bjpO Ok9wOlA6UnNTOnQ6VDpVOnZ3V3gxIiwKKwl3aGlsZSAoKGMgPSBnZXRvcHRfbG9uZyhhcmdjLCBh cmd2LCAiQTphY0NkOmVmOkY6aDpJOmo6bEw6bjpOOk9wOlA6UnNTOnQ6VDpVOnZ3V3gxIiwKIAkJ CQkJCQljbWRvcHRzLCBOVUxMKSkgIT0gLTEpCiAJewogCQlzd2l0Y2ggKGMpCkBAIC0xNjQsNiAr MTY1LDExIEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQkJY2FzZSAnYSc6CQkJLyog RHVtcCBkYXRhIG9ubHkgKi8KIAkJCQlkYXRhX29ubHkgPSB0cnVlOwogCQkJCWJyZWFrOworCQkJ Y2FzZSAnQSc6CQkJLyogdkFyaWFibGUgKi8KKwkJCQlvcHRzLT5zZWxUeXBlcyA9IDE7CisJCQkJ b3B0cy0+c2VsVmFyaWFibGUgPSAxOworCQkJCXNpbXBsZV9zdHJpbmdfbGlzdF9hcHBlbmQoJm9w dHMtPnZhcmlhYmxlTmFtZXMsIG9wdGFyZyk7CisJCQkJYnJlYWs7CiAJCQljYXNlICdjJzoJCQkv KiBjbGVhbiAoaS5lLiwgZHJvcCkgc2NoZW1hIHByaW9yIHRvIGNyZWF0ZSAqLwogCQkJCW9wdHMt PmRyb3BTY2hlbWEgPSAxOwogCQkJCWJyZWFrOwpAQCAtNDY4LDYgKzQ3NCw3IEBAIHVzYWdlKGNv bnN0IGNoYXIgKnByb2duYW1lKQogCiAJcHJpbnRmKF8oIlxuT3B0aW9ucyBjb250cm9sbGluZyB0 aGUgcmVzdG9yZTpcbiIpKTsKIAlwcmludGYoXygiICAtYSwgLS1kYXRhLW9ubHkgICAgICAgICAg ICAgIHJlc3RvcmUgb25seSB0aGUgZGF0YSwgbm8gc2NoZW1hXG4iKSk7CisJcHJpbnRmKF8oIiAg LUEsIC0tdmFyaWFibGU9TkFNRSAgICAgICAgICByZXN0b3JlIG5hbWVkIHNlc3Npb24gdmFyaWFi bGVcbiIpKTsKIAlwcmludGYoXygiICAtYywgLS1jbGVhbiAgICAgICAgICAgICAgICAgIGNsZWFu IChkcm9wKSBkYXRhYmFzZSBvYmplY3RzIGJlZm9yZSByZWNyZWF0aW5nXG4iKSk7CiAJcHJpbnRm KF8oIiAgLUMsIC0tY3JlYXRlICAgICAgICAgICAgICAgICBjcmVhdGUgdGhlIHRhcmdldCBkYXRh YmFzZVxuIikpOwogCXByaW50ZihfKCIgIC1lLCAtLWV4aXQtb24tZXJyb3IgICAgICAgICAgZXhp dCBvbiBlcnJvciwgZGVmYXVsdCBpcyB0byBjb250aW51ZVxuIikpOwotLSAKMi40Ny4xCgo= --000000000000f297a7062b2456dc Content-Type: text/x-patch; charset="US-ASCII"; name="v20250107-0019-expression-with-session-variables-can-be-inlined.patch" Content-Disposition: attachment; filename="v20250107-0019-expression-with-session-variables-can-be-inlined.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5mz6bgl3 RnJvbSBiMTEyOWRjMDlmM2QwMTgxNTMzN2VkN2M1ZjcxZGUxNmMxYTFjYmQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMjA6MzU6MzggKzAxMDAKU3ViamVjdDogW1BBVENIIDE5 LzIyXSBleHByZXNzaW9uIHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGlubGluZWQKClRo ZXJlIGlzIG5vdCBhbiByZWFzb24gd2h5IHNlc3Npb24gdmFyaWFibGVzIHNob3VsZCB0byBibG9j ayBpbmxpbmluZy4KKG9mIFNRTCBmdW5jdGlvbnMpLiBJIGNhbiBpbWFnaW5lIHNvbWUgdXNlIGNh c2VzIGxpa2Ugd3JhcHBpbmcsIGFuZAppbmxpbmluZyBzaWduaWZpY2FudGx5IHJlZHVjZXMgYW4g b3ZlcmhlYWQgb2YgU1FMIGZ1bmN0aW9ucy4KLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRp bC9jbGF1c2VzLmMgICAgICAgICAgfCAzNyArKysrKysrKysrKysrKy0tLS0tCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAgNyArKy0tCiAyIGZpbGVzIGNo YW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL2NsYXVzZXMuYwppbmRleCA1YzMxYWU1NjMwMi4uZDNjZjAxYzc4NzAgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2Vu ZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTQ3NDMsOCArNDc0Myw3IEBAIGlubGluZV9m dW5jdGlvbihPaWQgZnVuY2lkLCBPaWQgcmVzdWx0X3R5cGUsIE9pZCByZXN1bHRfY29sbGlkLAog CQlxdWVyeXRyZWUtPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5dHJlZS0+bGltaXRDb3VudCB8fAog CQlxdWVyeXRyZWUtPnNldE9wZXJhdGlvbnMgfHwKLQkJKGxpc3RfbGVuZ3RoKHF1ZXJ5dHJlZS0+ dGFyZ2V0TGlzdCkgIT0gMSkgfHwKLQkJcXVlcnl0cmVlLT5oYXNTZXNzaW9uVmFyaWFibGVzKQor CQkobGlzdF9sZW5ndGgocXVlcnl0cmVlLT50YXJnZXRMaXN0KSAhPSAxKSkKIAkJZ290byBmYWls OwogCiAJLyogSWYgdGhlIGZ1bmN0aW9uIHJlc3VsdCBpcyBjb21wb3NpdGUsIHJlc29sdmUgaXQg Ki8KQEAgLTQ5NDgsMjEgKzQ5NDcsMzkgQEAgc3Vic3RpdHV0ZV9hY3R1YWxfcGFyYW1ldGVyc19t dXRhdG9yKE5vZGUgKm5vZGUsCiB7CiAJaWYgKG5vZGUgPT0gTlVMTCkKIAkJcmV0dXJuIE5VTEw7 CisKKworCS8qCisJICogU1FMIGZ1bmN0aW9ucyBjYW4gY29udGFpbiB0d28gZGlmZmVyZW50IGtp bmQgb2YgcGFyYW1zLiBUaGUgbm9kZXMgd2l0aAorCSAqIHBhcmFta2luZCBQQVJBTV9FWFRFUk4g YXJlIHJlbGF0ZWQgdG8gZnVuY3Rpb24ncyBhcmd1bWVudHMgKGFuZCBzaG91bGQKKwkgKiBiZSBy ZXBsYWNlZCBpbiB0aGlzIHN0ZXApLCBiZWNhdXNlIHRoaXMgaXMgaG93IHdlIGFwcGx5IHRoZSBm dW5jdGlvbidzCisJICogYXJndW1lbnRzIGZvciBhbiBleHByZXNzaW9uLgorCSAqCisJICogVGhl IG5vZGVzIHdpdGggcGFyYW1raW5kIFBBUkFNX1ZBUklBQkxFIGFyZSByZWxhdGVkIHRvIHVzYWdl IG9mIHNlc3Npb24KKwkgKiB2YXJpYWJsZXMuIFRoZSB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJs ZXMgYXJlIG5vdCBwYXNzZWQgdG8gZXhwcmVzc2lvbgorCSAqIGJ5IGV4cHJlc3Npb24gYXJndW1l bnRzLCBzbyBpdCBzaG91bGQgbm90IGJlIHJlcGxhY2VkIGhlcmUgYnkKKwkgKiBmdW5jdGlvbidz IGFyZ3VtZW50cy4KKwkgKi8KIAlpZiAoSXNBKG5vZGUsIFBhcmFtKSkKIAl7CiAJCVBhcmFtCSAg ICpwYXJhbSA9IChQYXJhbSAqKSBub2RlOwogCi0JCWlmIChwYXJhbS0+cGFyYW1raW5kICE9IFBB UkFNX0VYVEVSTikKKwkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhURVJOICYmCisJ CQlwYXJhbS0+cGFyYW1raW5kICE9IFBBUkFNX1ZBUklBQkxFKQogCQkJZWxvZyhFUlJPUiwgInVu ZXhwZWN0ZWQgcGFyYW1raW5kOiAlZCIsIChpbnQpIHBhcmFtLT5wYXJhbWtpbmQpOwotCQlpZiAo cGFyYW0tPnBhcmFtaWQgPD0gMCB8fCBwYXJhbS0+cGFyYW1pZCA+IGNvbnRleHQtPm5hcmdzKQot CQkJZWxvZyhFUlJPUiwgImludmFsaWQgcGFyYW1pZDogJWQiLCBwYXJhbS0+cGFyYW1pZCk7CiAK LQkJLyogQ291bnQgdXNhZ2Ugb2YgcGFyYW1ldGVyICovCi0JCWNvbnRleHQtPnVzZWNvdW50c1tw YXJhbS0+cGFyYW1pZCAtIDFdKys7CisJCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX0VY VEVSTikKKwkJeworCQkJaWYgKHBhcmFtLT5wYXJhbWlkIDw9IDAgfHwgcGFyYW0tPnBhcmFtaWQg PiBjb250ZXh0LT5uYXJncykKKwkJCQllbG9nKEVSUk9SLCAiaW52YWxpZCBwYXJhbWlkOiAlZCIs IHBhcmFtLT5wYXJhbWlkKTsKIAotCQkvKiBTZWxlY3QgdGhlIGFwcHJvcHJpYXRlIGFjdHVhbCBh cmcgYW5kIHJlcGxhY2UgdGhlIFBhcmFtIHdpdGggaXQgKi8KLQkJLyogV2UgZG9uJ3QgbmVlZCB0 byBjb3B5IGF0IHRoaXMgdGltZSAoaXQnbGwgZ2V0IGRvbmUgbGF0ZXIpICovCi0JCXJldHVybiBs aXN0X250aChjb250ZXh0LT5hcmdzLCBwYXJhbS0+cGFyYW1pZCAtIDEpOworCQkJLyogQ291bnQg dXNhZ2Ugb2YgcGFyYW1ldGVyICovCisJCQljb250ZXh0LT51c2Vjb3VudHNbcGFyYW0tPnBhcmFt aWQgLSAxXSsrOworCisJCQkvKiBTZWxlY3QgdGhlIGFwcHJvcHJpYXRlIGFjdHVhbCBhcmcgYW5k IHJlcGxhY2UgdGhlIFBhcmFtIHdpdGggaXQgKi8KKwkJCS8qIFdlIGRvbid0IG5lZWQgdG8gY29w eSBhdCB0aGlzIHRpbWUgKGl0J2xsIGdldCBkb25lIGxhdGVyKSAqLworCQkJcmV0dXJuIGxpc3Rf bnRoKGNvbnRleHQtPmFyZ3MsIHBhcmFtLT5wYXJhbWlkIC0gMSk7CisJCX0KIAl9CiAJcmV0dXJu IGV4cHJlc3Npb25fdHJlZV9tdXRhdG9yKG5vZGUsIHN1YnN0aXR1dGVfYWN0dWFsX3BhcmFtZXRl cnNfbXV0YXRvciwgY29udGV4dCk7CiB9CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDlkZWUyMTk4NmZhLi45YWVlOGUwMzFkNCAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAg LTQ4MCw3ICs0ODAsNiBAQCBTRUxFQ1QgdmFyMTsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQg Zm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQogU0VMRUNUIHNxbGZ4KDIwKTsKIEVSUk9SOiAgcGVy bWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQotQ09OVEVYVDogIFNRTCBm dW5jdGlvbiAic3FsZngiIHN0YXRlbWVudCAxCiBTRUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKIEVSUk9S OiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQogQ09OVEVYVDog IFBML3BnU1FMIGZ1bmN0aW9uIHBscGdzcWxmeChpbnRlZ2VyKSBsaW5lIDEgYXQgUkVUVVJOCkBA IC01ODcsMTAgKzU4NiwxMCBAQCBTRUxFQ1Qgc3FsZngxKHNxbGZ4MignSGVsbG8nKSk7CiAKIC0t IGlubGluaW5nIGlzIGJsb2NrZWQKIEVYUExBSU4gKENPU1RTIE9GRiwgVkVSQk9TRSkgU0VMRUNU IHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOwotICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBM QU4gICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQogIFJlc3VsdAotICAgT3V0cHV0OiBzcWxmeDEoc3FsZngyKCdIZWxsbyc6OmNo YXJhY3RlciB2YXJ5aW5nKSkKKyAgIE91dHB1dDogKCh2YXIxIHx8ICcsICc6OnRleHQpIHx8ICgo dmFyMiB8fCAnLCAnOjp0ZXh0KSB8fCAnSGVsbG8nOjp0ZXh0KSkKICgyIHJvd3MpCiAKIERST1Ag RlVOQ1RJT04gc3FsZngxKHZhcmNoYXIpOwotLSAKMi40Ny4xCgo= --000000000000f297a7062b2456dc Content-Type: text/x-patch; charset="US-ASCII"; name="v20250107-0020-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Disposition: attachment; filename="v20250107-0020-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5mz6bgb2 RnJvbSAwYzIxYTY0ZjY2NWM5OTMzYjc4ZDFiNjZjNWE2MjQ4MWVmYmJkNTkzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNToxMDozOSArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MjAvMjJdIHRoaXMgcGF0Y2ggY2hhbmdlcyBlcnJvciBtZXNzYWdlICJjb2x1bW4gZG9lc24ndCBl eGlzdCIKIHRvIG1lc3NhZ2UgImNvbHVtbiBvciB2YXJpYWJsZSBkb2Vzbid0IGV4aXN0IgoKVGhl IGVycm9yIG1lc3NhZ2Ugd2lsbCBiZSBtb3JlIGNvcnJlY3QuIFRvZGF5LCBtaXNzaW5nIFBML3Bn U1FMIHZhcmlhYmxlIGNhbiBiZSByZXBvcnRlZC4gVGhlIGNoYW5nZSBoYXMKaW1wYWN0IG9uIGxv dCBvZiByZWdyZXNzIHRlc3RzIG5vdCBkaXJlY3RseSByZWxhdGVkIHRvIHNlc3Npb24gdmFyaWFi bGVzLCBhbmQgdGhlbiBpdCBpcyBkaXN0cmlidXRlZCBhcyBzZXBhcmF0ZSBwYXRjaAotLS0KIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICAyICstCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYyAgICAgICAgICAgfCAyNCArKysrKysrKysr Ky0tLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jICAgICAgICAgICAgIHwgIDgg KysrLS0KIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmggICAgICAgICAgICAgICB8ICAy ICsrCiBzcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9hcnJheS5vdXQgfCAgMiAr LQogLi4uL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfcmVjb3JkLm91dCAgIHwgIDQgKy0t CiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQgfCAgMiArLQog c3JjL3BsL3RjbC9leHBlY3RlZC9wbHRjbF9xdWVyaWVzLm91dCAgICAgICAgIHwgMTIgKysrLS0t LQogLi4uL2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgIDQgKy0t CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dCAgICAgfCAzMiArKysr KysrKystLS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dCAgICAg ICAgICAgfCAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcnJvcnMub3V0ICAgICAg ICAgIHwgIDggKystLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQgICAgICAg ICAgICB8IDEyICsrKy0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91 dCAgICAgICB8ICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251bWVyb2xvZ3kub3V0 ICAgICAgfCAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wbHBnc3FsLm91dCAgICAg ICAgIHwgMTIgKysrLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAg ICAgICAgIHwgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAg ICAgICB8ICAyICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQg ICAgfCAgNiArKy0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RyYW5zYWN0aW9ucy5vdXQg ICAgfCAgNCArLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0ICAgICAgICAg ICB8ICAyICstCiAyMSBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCA2MyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCBjYTk2OGI1YzZjZC4uZTUxMjAyNTU3 YmUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtNTI2LDcgKzUyNiw3IEBAIHRyYW5zZm9y bUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKQogICog cHJpbnRlZC4gIFdoZW4gd2UgYXJlIGluIGFuIGV4cHJlc3Npb24gd2hlcmUgc2Vzc2lvbiB2YXJp YWJsZXMgY2Fubm90IGJlCiAgKiB1c2VkLCB3ZSByYWlzZSB0aGUgZmlyc3QgZm9ybSBvZiBlcnJv ciBtZXNzYWdlLgogICovCi1zdGF0aWMgYm9vbAorYm9vbAogZXhwcl9raW5kX2FsbG93c19zZXNz aW9uX3ZhcmlhYmxlcyhQYXJzZUV4cHJLaW5kIHBfZXhwcl9raW5kKQogewogCWJvb2wJCXJlc3Vs dCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9u LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwppbmRleCA4NjVhMTJkOGI3 MS4uYzg3YjQyYmFkMjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxh dGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jCkBAIC0yNyw2 ICsyNyw3IEBACiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCiAjaW5jbHVkZSAibm9kZXMv bm9kZUZ1bmNzLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2Vuci5oIgorI2luY2x1ZGUgInBh cnNlci9wYXJzZV9leHByLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAj aW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2V0cmVl LmgiCkBAIC0zNzMwLDYgKzM3MzEsMTkgQEAgZXJyb3JNaXNzaW5nUlRFKFBhcnNlU3RhdGUgKnBz dGF0ZSwgUmFuZ2VWYXIgKnJlbGF0aW9uKQogCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRl LCByZWxhdGlvbi0+bG9jYXRpb24pKSk7CiB9CiAKKy8qCisgKiBzZXQgbWVzc2FnZSAiY29sdW1u IGRvZXMgbm90IGV4aXN0IiBvciAiY29sdW1uIG9yIHZhcmlhYmxlIGRvZXMgbm90IGV4aXN0Igor ICogaW4gZGVwZW5kZW5jeSBpZiBleHByZXNzaW9uIGNvbnRleHQgYWxsb3dzIHNlc3Npb24gdmFy aWFibGVzLgorICovCitzdGF0aWMgaW50Citjb2x1bW5fb3JfdmFyaWFibGVfZG9lc19ub3RfZXhp c3RzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgY29uc3QgY2hhciAqY29sbmFtZSkKK3sKKwlpZiAoZXhw cl9raW5kX2FsbG93c19zZXNzaW9uX3ZhcmlhYmxlcyhwc3RhdGUtPnBfZXhwcl9raW5kKSkKKwkJ cmV0dXJuIGVycm1zZygiY29sdW1uIG9yIHZhcmlhYmxlIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIs IGNvbG5hbWUpOworCWVsc2UKKwkJcmV0dXJuIGVycm1zZygiY29sdW1uIFwiJXNcIiBkb2VzIG5v dCBleGlzdCIsIGNvbG5hbWUpOworfQorCiAvKgogICogR2VuZXJhdGUgYSBzdWl0YWJsZSBlcnJv ciBhYm91dCBhIG1pc3NpbmcgY29sdW1uLgogICoKQEAgLTM3NjQsNyArMzc3OCw3IEBAIGVycm9y TWlzc2luZ0NvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVf VU5ERUZJTkVEX0NPTFVNTiksCiAJCQkJCSByZWxuYW1lID8KIAkJCQkJIGVycm1zZygiY29sdW1u ICVzLiVzIGRvZXMgbm90IGV4aXN0IiwgcmVsbmFtZSwgY29sbmFtZSkgOgotCQkJCQkgZXJybXNn KCJjb2x1bW4gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY29sbmFtZSksCisJCQkJCSBjb2x1bW5f b3JfdmFyaWFibGVfZG9lc19ub3RfZXhpc3RzKHBzdGF0ZSwgY29sbmFtZSksCiAJCQkJCSBlcnJk ZXRhaWwoIlRoZXJlIGFyZSBjb2x1bW5zIG5hbWVkIFwiJXNcIiwgYnV0IHRoZXkgYXJlIGluIHRh YmxlcyB0aGF0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVy eS4iLAogCQkJCQkJCSAgIGNvbG5hbWUpLAogCQkJCQkgIXJlbG5hbWUgPyBlcnJoaW50KCJUcnkg dXNpbmcgYSB0YWJsZS1xdWFsaWZpZWQgbmFtZS4iKSA6IDAsCkBAIC0zNzc0LDcgKzM3ODgsNyBA QCBlcnJvck1pc3NpbmdDb2x1bW4oUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCShlcnJjb2RlKEVS UkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCiAJCQkJIHJlbG5hbWUgPwogCQkJCSBlcnJtc2coImNv bHVtbiAlcy4lcyBkb2VzIG5vdCBleGlzdCIsIHJlbG5hbWUsIGNvbG5hbWUpIDoKLQkJCQkgZXJy bXNnKCJjb2x1bW4gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY29sbmFtZSksCisJCQkJIGNvbHVt bl9vcl92YXJpYWJsZV9kb2VzX25vdF9leGlzdHMocHN0YXRlLCBjb2xuYW1lKSwKIAkJCQkgZXJy ZGV0YWlsKCJUaGVyZSBpcyBhIGNvbHVtbiBuYW1lZCBcIiVzXCIgaW4gdGFibGUgXCIlc1wiLCBi dXQgaXQgY2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LiIs CiAJCQkJCQkgICBjb2xuYW1lLCBzdGF0ZS0+cmV4YWN0MS0+ZXJlZi0+YWxpYXNuYW1lKSwKIAkJ CQkgcnRlX3Zpc2libGVfaWZfbGF0ZXJhbChwc3RhdGUsIHN0YXRlLT5yZXhhY3QxKSA/CkBAIC0z NzkyLDE0ICszODA2LDE0IEBAIGVycm9yTWlzc2luZ0NvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUs CiAJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCiAJCQkJCSByZWxuYW1l ID8KIAkJCQkJIGVycm1zZygiY29sdW1uICVzLiVzIGRvZXMgbm90IGV4aXN0IiwgcmVsbmFtZSwg Y29sbmFtZSkgOgotCQkJCQkgZXJybXNnKCJjb2x1bW4gXCIlc1wiIGRvZXMgbm90IGV4aXN0Iiwg Y29sbmFtZSksCisJCQkJCSBjb2x1bW5fb3JfdmFyaWFibGVfZG9lc19ub3RfZXhpc3RzKHBzdGF0 ZSwgY29sbmFtZSksCiAJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikp KTsKIAkJLyogSGFuZGxlIGNhc2Ugd2hlcmUgd2UgaGF2ZSBhIHNpbmdsZSBhbHRlcm5hdGl2ZSBz cGVsbGluZyB0byBvZmZlciAqLwogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNP REVfVU5ERUZJTkVEX0NPTFVNTiksCiAJCQkJIHJlbG5hbWUgPwogCQkJCSBlcnJtc2coImNvbHVt biAlcy4lcyBkb2VzIG5vdCBleGlzdCIsIHJlbG5hbWUsIGNvbG5hbWUpIDoKLQkJCQkgZXJybXNn KCJjb2x1bW4gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY29sbmFtZSksCisJCQkJIGNvbHVtbl9v cl92YXJpYWJsZV9kb2VzX25vdF9leGlzdHMocHN0YXRlLCBjb2xuYW1lKSwKIAkJCQkgZXJyaGlu dCgiUGVyaGFwcyB5b3UgbWVhbnQgdG8gcmVmZXJlbmNlIHRoZSBjb2x1bW4gXCIlcy4lc1wiLiIs CiAJCQkJCQkgc3RhdGUtPnJmaXJzdC0+ZXJlZi0+YWxpYXNuYW1lLAogCQkJCQkJIHN0clZhbChs aXN0X250aChzdGF0ZS0+cmZpcnN0LT5lcmVmLT5jb2xuYW1lcywKQEAgLTM4MTMsNyArMzgyNyw3 IEBAIGVycm9yTWlzc2luZ0NvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJKGVycmNvZGUo RVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwKIAkJCQkgcmVsbmFtZSA/CiAJCQkJIGVycm1zZygi Y29sdW1uICVzLiVzIGRvZXMgbm90IGV4aXN0IiwgcmVsbmFtZSwgY29sbmFtZSkgOgotCQkJCSBl cnJtc2coImNvbHVtbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjb2xuYW1lKSwKKwkJCQkgY29s dW1uX29yX3ZhcmlhYmxlX2RvZXNfbm90X2V4aXN0cyhwc3RhdGUsIGNvbG5hbWUpLAogCQkJCSBl cnJoaW50KCJQZXJoYXBzIHlvdSBtZWFudCB0byByZWZlcmVuY2UgdGhlIGNvbHVtbiBcIiVzLiVz XCIgb3IgdGhlIGNvbHVtbiBcIiVzLiVzXCIuIiwKIAkJCQkJCSBzdGF0ZS0+cmZpcnN0LT5lcmVm LT5hbGlhc25hbWUsCiAJCQkJCQkgc3RyVmFsKGxpc3RfbnRoKHN0YXRlLT5yZmlyc3QtPmVyZWYt PmNvbG5hbWVzLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5j IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCmluZGV4IDMwMGVhMzQ4Nzg4Li4z NDAyZWU4NmRlNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5j CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwpAQCAtNzc5LDcgKzc3OSw5 IEBAIHRyYW5zZm9ybUFzc2lnbm1lbnRJbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJ CQlpZiAoIXR5cHJlbGlkKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJyY29kZShFUlJD T0RFX0RBVEFUWVBFX01JU01BVENIKSwKLQkJCQkJCSBlcnJtc2coImNhbm5vdCBhc3NpZ24gdG8g ZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVzZSBpdHMgdHlwZSAlcyBpcyBub3Qg YSBjb21wb3NpdGUgdHlwZSIsCisJCQkJCQkgZXJybXNnKGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lv bl92YXJpYWJsZXMocHN0YXRlLT5wX2V4cHJfa2luZCkgPworCQkJCQkJCQkgImNhbm5vdCBhc3Np Z24gdG8gZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBvciB2YXJpYWJsZSBcIiVzXCIgYmVjYXVzZSBp dHMgdHlwZSAlcyBpcyBub3QgYSBjb21wb3NpdGUgdHlwZSIgOgorCQkJCQkJCQkgImNhbm5vdCBh c3NpZ24gdG8gZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVzZSBpdHMgdHlwZSAl cyBpcyBub3QgYSBjb21wb3NpdGUgdHlwZSIsCiAJCQkJCQkJCXN0clZhbChuKSwgdGFyZ2V0TmFt ZSwKIAkJCQkJCQkJZm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZUlkKSksCiAJCQkJCQkgcGFyc2Vy X2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CkBAIC03ODgsNyArNzkwLDkgQEAgdHJh bnNmb3JtQXNzaWdubWVudEluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCWlmIChh dHRudW0gPT0gSW52YWxpZEF0dHJOdW1iZXIpCiAJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCShl cnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCi0JCQkJCQkgZXJybXNnKCJjYW5ub3Qg YXNzaWduIHRvIGZpZWxkIFwiJXNcIiBvZiBjb2x1bW4gXCIlc1wiIGJlY2F1c2UgdGhlcmUgaXMg bm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlICVzIiwKKwkJCQkJCSBlcnJtc2coZXhwcl9raW5k X2FsbG93c19zZXNzaW9uX3ZhcmlhYmxlcyhwc3RhdGUtPnBfZXhwcl9raW5kKSA/CisJCQkJCQkJ CSAiY2Fubm90IGFzc2lnbiB0byBmaWVsZCBcIiVzXCIgb2YgY29sdW1uIG9yIHZhcmlhYmxlIFwi JXNcIiBiZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSAlcyIgOgor CQkJCQkJCQkgImNhbm5vdCBhc3NpZ24gdG8gZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBcIiVzXCIg YmVjYXVzZSB0aGVyZSBpcyBubyBzdWNoIGNvbHVtbiBpbiBkYXRhIHR5cGUgJXMiLAogCQkJCQkJ CQlzdHJWYWwobiksIHRhcmdldE5hbWUsCiAJCQkJCQkJCWZvcm1hdF90eXBlX2JlKHRhcmdldFR5 cGVJZCkpLAogCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCBiL3NyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV9leHByLmgKaW5kZXggNWJkZTQzNzU4ZDEuLjcxZWMyMTNmODg0IDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCisrKyBiL3NyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV9leHByLmgKQEAgLTI0LDQgKzI0LDYgQEAgZXh0ZXJuIE5vZGUgKnRyYW5z Zm9ybUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBQYXJzZUV4cHJLaW5kIGV4 cHJLaW4KIAogZXh0ZXJuIGNvbnN0IGNoYXIgKlBhcnNlRXhwcktpbmROYW1lKFBhcnNlRXhwcktp bmQgZXhwcktpbmQpOwogCitleHRlcm4gYm9vbCBleHByX2tpbmRfYWxsb3dzX3Nlc3Npb25fdmFy aWFibGVzKFBhcnNlRXhwcktpbmQgcF9leHByX2tpbmQpOworCiAjZW5kaWYJCQkJCQkJLyogUEFS U0VfRVhQUl9IICovCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxw Z3NxbF9hcnJheS5vdXQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9hcnJh eS5vdXQKaW5kZXggYWQ2MGUwZThiZTMuLmMxYWI5ZmQ3ZWQ5IDEwMDY0NAotLS0gYS9zcmMvcGwv cGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9hcnJheS5vdXQKKysrIGIvc3JjL3BsL3BscGdz cWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfYXJyYXkub3V0CkBAIC00MSw3ICs0MSw3IEBAIE5PVElD RTogIGEgPSB7IigsMTEpIn0sIGFbMV0uaSA9IDExCiAtLSBwZXJoYXBzIHRoaXMgb3VnaHQgdG8g d29yaywgYnV0IGZvciBub3cgaXQgZG9lc24ndDoKIGRvICQkIGRlY2xhcmUgYSBjb21wbGV4W107 CiBiZWdpbiBhWzE6Ml0uaSA6PSBhcnJheVsxMSwxMl07IHJhaXNlIG5vdGljZSAnYSA9ICUnLCBh OyBlbmQkJDsKLUVSUk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVsZCAiaSIgb2YgY29sdW1uICJh IiBiZWNhdXNlIGl0cyB0eXBlIGNvbXBsZXhbXSBpcyBub3QgYSBjb21wb3NpdGUgdHlwZQorRVJS T1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJpIiBvZiBjb2x1bW4gb3IgdmFyaWFibGUgImEi IGJlY2F1c2UgaXRzIHR5cGUgY29tcGxleFtdIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlCiBMSU5F IDE6IGFbMToyXS5pIDo9IGFycmF5WzExLDEyXQogICAgICAgICBeCiBRVUVSWTogIGFbMToyXS5p IDo9IGFycmF5WzExLDEyXQpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVk L3BscGdzcWxfcmVjb3JkLm91dCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3Fs X3JlY29yZC5vdXQKaW5kZXggNjk3NGM4ZjRhNDQuLjM5NzBhYzcyMWM5IDEwMDY0NAotLS0gYS9z cmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9yZWNvcmQub3V0CisrKyBiL3NyYy9w bC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3JlY29yZC5vdXQKQEAgLTEzNSw3ICsxMzUs NyBAQCBFUlJPUjogIHJlY29yZCAiYyIgaGFzIG5vIGZpZWxkICJ4IgogQ09OVEVYVDogIFBML3Bn U1FMIGFzc2lnbm1lbnQgImMueC5xMSA9IDEiCiBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29k ZV9ibG9jayBsaW5lIDEgYXQgYXNzaWdubWVudAogZG8gJCQgZGVjbGFyZSBjIG5lc3RlZF9pbnQ4 czsgYmVnaW4gYy5jMi54ID0gMTsgZW5kICQkOwotRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZp ZWxkICJ4IiBvZiBjb2x1bW4gImMiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4g ZGF0YSB0eXBlIHR3b19pbnQ4cworRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBv ZiBjb2x1bW4gb3IgdmFyaWFibGUgImMiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4g aW4gZGF0YSB0eXBlIHR3b19pbnQ4cwogTElORSAxOiBjLmMyLnggPSAxCiAgICAgICAgIF4KIFFV RVJZOiAgYy5jMi54ID0gMQpAQCAtMTU3LDcgKzE1Nyw3IEBAIEVSUk9SOiAgcmVjb3JkICJjIiBo YXMgbm8gZmllbGQgIngiCiBDT05URVhUOiAgUEwvcGdTUUwgYXNzaWdubWVudCAiYi5jLngucTEg PSAxIgogUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IGFzc2ln bm1lbnQKIGRvICQkIDw8Yj4+IGRlY2xhcmUgYyBuZXN0ZWRfaW50OHM7IGJlZ2luIGIuYy5jMi54 ID0gMTsgZW5kICQkOwotRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1 bW4gImIiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3b19p bnQ4cworRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gb3IgdmFy aWFibGUgImIiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3 b19pbnQ4cwogTElORSAxOiBiLmMuYzIueCA9IDEKICAgICAgICAgXgogUVVFUlk6ICBiLmMuYzIu eCA9IDEKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nl c3Npb25fdmFyaWFibGUub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxf c2Vzc2lvbl92YXJpYWJsZS5vdXQKaW5kZXggZWNhYzY0ZmNmYjQuLjhiZDJiMzk4YmRkIDEwMDY0 NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3Zhcmlh YmxlLm91dAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9u X3ZhcmlhYmxlLm91dApAQCAtMjMyLDcgKzIzMiw3IEBAIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBT RVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CiAtLSBzaG91bGQgZmFpbCwgYnV0IG5v dCBjcmFzaAogU0VMRUNUIHZhcl9yZWFkX2Z1bmMoKTsKLUVSUk9SOiAgY29sdW1uICJwbHBnc3Fs X3N2X3ZhcjEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAicGxw Z3NxbF9zdl92YXIxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBwbHBnc3FsX3N2X3ZhcjEKICAg ICAgICAgXgogUVVFUlk6ICBwbHBnc3FsX3N2X3ZhcjEKZGlmZiAtLWdpdCBhL3NyYy9wbC90Y2wv ZXhwZWN0ZWQvcGx0Y2xfcXVlcmllcy5vdXQgYi9zcmMvcGwvdGNsL2V4cGVjdGVkL3BsdGNsX3F1 ZXJpZXMub3V0CmluZGV4IDM1Y2M2ZTYyYWFkLi40OTdjZDM4MTg5YiAxMDA2NDQKLS0tIGEvc3Jj L3BsL3RjbC9leHBlY3RlZC9wbHRjbF9xdWVyaWVzLm91dAorKysgYi9zcmMvcGwvdGNsL2V4cGVj dGVkL3BsdGNsX3F1ZXJpZXMub3V0CkBAIC00NTAsMTIgKzQ1MCwxMiBAQCBDT05URVhUOiAgd2hp bGUgZXhlY3V0aW5nCiAiX19QTFRjbF9wcm9jX3RjbF9ldmFsX3RleHQgc3BpX3ByZXBhcmVcIGFc IFwiYlwgXHtcIiIKIGluIFBML1RjbCBmdW5jdGlvbiB0Y2xfZXZhbCh0ZXh0KQogc2VsZWN0IHRj bF9lcnJvcl9oYW5kbGluZ190ZXN0KCR0Y2wkc3BpX3ByZXBhcmUgInNlbGVjdCBtb28iIFtdJHRj bCQpOwotICAgICAgIHRjbF9lcnJvcl9oYW5kbGluZ190ZXN0ICAgICAgICAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0gU1FMU1RBVEU6IDQyNzAzICAgICAgICAgICAg ICAgICAgICAgKwotIGNvbmRpdGlvbjogdW5kZWZpbmVkX2NvbHVtbiAgICAgICAgICsKLSBjdXJz b3JfcG9zaXRpb246IDggICAgICAgICAgICAgICAgICArCi0gbWVzc2FnZTogY29sdW1uICJtb28i IGRvZXMgbm90IGV4aXN0KworICAgICAgICAgICAgIHRjbF9lcnJvcl9oYW5kbGluZ190ZXN0ICAg ICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgU1FMU1RBVEU6IDQyNzAzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KworIGNvbmRpdGlvbjogdW5kZWZpbmVkX2NvbHVtbiAgICAgICAgICAgICAgICAgICAgICsKKyBj dXJzb3JfcG9zaXRpb246IDggICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgbWVzc2Fn ZTogY29sdW1uIG9yIHZhcmlhYmxlICJtb28iIGRvZXMgbm90IGV4aXN0KwogIHN0YXRlbWVudDog c2VsZWN0IG1vbwogKDEgcm93KQogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vZXhw ZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQv c2Vzc2lvbi12YXJpYWJsZS5vdXQKaW5kZXggZTlhMjU0YmNkMTIuLmQ4ODQ4ZDU1NWNkIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQK KysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CkBA IC0xMCw3ICsxMCw3IEBAIHRlc3QKIAogc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOwog c3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKLUVSUk9SOiAgY29sdW1uICJteXZhciIgZG9lcyBub3Qg ZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJteXZhciIgZG9lcyBub3QgZXhpc3QK IAogc3RhcnRpbmcgcGVybXV0YXRpb246IGxldCB2YWwgczEgZHJvcCB2YWwgc3IxCiBzdGVwIGxl dDogTEVUIG15dmFyID0gJ3Rlc3QnOwpAQCAtMjMsNyArMjMsNyBAQCB0ZXN0CiBzdGVwIHMxOiBC RUdJTjsKIHN0ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBteXZhcjsKIHN0ZXAgdmFsOiBTRUxFQ1Qg bXl2YXI7Ci1FUlJPUjogIGNvbHVtbiAibXl2YXIiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNv bHVtbiBvciB2YXJpYWJsZSAibXl2YXIiIGRvZXMgbm90IGV4aXN0CiBzdGVwIHNyMTogUk9MTEJB Q0s7CiAKIHN0YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIGRiZyBkcm9wIGNyZWF0ZSBkYmcg dmFsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91 dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJfdGFibGUub3V0CmluZGV4IDEyODUy YWE2MTJhLi5kNmViNTFlMmNmYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9hbHRlcl90YWJsZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90 YWJsZS5vdXQKQEAgLTEyOTUsMTkgKzEyOTUsMTkgQEAgc2VsZWN0ICogZnJvbSBhdGFjYzE7CiAo MSByb3cpCiAKIHNlbGVjdCAqIGZyb20gYXRhY2MxIG9yZGVyIGJ5IGE7Ci1FUlJPUjogIGNvbHVt biAiYSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2Vz IG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBvcmRlciBieSBhOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBzZWxlY3QgKiBmcm9tIGF0YWNj MSBvcmRlciBieSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiI7Ci1FUlJPUjogIGNvbHVt biAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAg Y29sdW1uIG9yIHZhcmlhYmxlICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5v dCBleGlzdAogTElORSAxOiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBvcmRlciBieSAiLi4uLi4uLi5w Zy5kcm9wcGVkLjEuLi4uLi4uLiIuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXgogc2VsZWN0ICogZnJvbSBhdGFjYzEgZ3JvdXAgYnkgYTsKLUVSUk9SOiAgY29sdW1u ICJhIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImEiIGRvZXMg bm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCAqIGZyb20gYXRhY2MxIGdyb3VwIGJ5IGE7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIHNlbGVjdCAqIGZyb20gYXRhY2Mx IGdyb3VwIGJ5ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIjsKLUVSUk9SOiAgY29sdW1u ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBj b2x1bW4gb3IgdmFyaWFibGUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90 IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCAqIGZyb20gYXRhY2MxIGdyb3VwIGJ5ICIuLi4uLi4uLnBn LmRyb3BwZWQuMS4uLi4uLi4uIi4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCiBzZWxlY3QgYXRhY2MxLiogZnJvbSBhdGFjYzE7CkBAIC0xMzE3LDcgKzEzMTcsNyBA QCBzZWxlY3QgYXRhY2MxLiogZnJvbSBhdGFjYzE7CiAoMSByb3cpCiAKIHNlbGVjdCBhIGZyb20g YXRhY2MxOwotRVJST1I6ICBjb2x1bW4gImEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVt biBvciB2YXJpYWJsZSAiYSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGEgZnJvbSBh dGFjYzE7CiAgICAgICAgICAgICAgICBeCiBzZWxlY3QgYXRhY2MxLmEgZnJvbSBhdGFjYzE7CkBA IC0xMzMxLDE1ICsxMzMxLDE1IEBAIHNlbGVjdCBiLGMsZCBmcm9tIGF0YWNjMTsKICgxIHJvdykK IAogc2VsZWN0IGEsYixjLGQgZnJvbSBhdGFjYzE7Ci1FUlJPUjogIGNvbHVtbiAiYSIgZG9lcyBu b3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2VzIG5vdCBleGlzdAog TElORSAxOiBzZWxlY3QgYSxiLGMsZCBmcm9tIGF0YWNjMTsKICAgICAgICAgICAgICAgIF4KIHNl bGVjdCAqIGZyb20gYXRhY2MxIHdoZXJlIGEgPSAxOwotRVJST1I6ICBjb2x1bW4gImEiIGRvZXMg bm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgZG9lcyBub3QgZXhpc3QK IExJTkUgMTogc2VsZWN0ICogZnJvbSBhdGFjYzEgd2hlcmUgYSA9IDE7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KIHNlbGVjdCAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4u Li4uLiIgZnJvbSBhdGFjYzE7Ci1FUlJPUjogIGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEu Li4uLi4uLiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICIuLi4u Li4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3Qg Ii4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGZyb20gYXRhY2MxOwogICAgICAgICAgICAg ICAgXgogc2VsZWN0IGF0YWNjMS4iLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZnJvbSBh dGFjYzE7CkBAIC0xMzQ3LDExICsxMzQ3LDExIEBAIEVSUk9SOiAgY29sdW1uIGF0YWNjMS4uLi4u Li4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBh dGFjYzEuIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGZyb20gYXRhY2MxOwogICAgICAg ICAgICAgICAgXgogc2VsZWN0ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIixiLGMsZCBm cm9tIGF0YWNjMTsKLUVSUk9SOiAgY29sdW1uICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4u IiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIi4uLi4uLi4ucGcu ZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCAiLi4uLi4u Li5wZy5kcm9wcGVkLjEuLi4uLi4uLiIsYixjLGQgZnJvbSBhdGFjYzE7CiAgICAgICAgICAgICAg ICBeCiBzZWxlY3QgKiBmcm9tIGF0YWNjMSB3aGVyZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4u Li4uLiIgPSAxOwotRVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4i IGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiLi4uLi4uLi5wZy5k cm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0ICogZnJvbSBh dGFjYzEgd2hlcmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iID0gLi4uCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIFVQREFURXMKQEAgLTEzNjAsNyArMTM2 MCw3IEBAIEVSUk9SOiAgY29sdW1uICJhIiBvZiByZWxhdGlvbiAiYXRhY2MxIiBkb2VzIG5vdCBl eGlzdAogTElORSAxOiB1cGRhdGUgYXRhY2MxIHNldCBhID0gMzsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgogdXBkYXRlIGF0YWNjMSBzZXQgYiA9IDIgd2hlcmUgYSA9IDM7Ci1FUlJPUjog IGNvbHVtbiAiYSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJh IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiB1cGRhdGUgYXRhY2MxIHNldCBiID0gMiB3aGVyZSBh ID0gMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogdXBkYXRlIGF0 YWNjMSBzZXQgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iID0gMzsKQEAgLTEzNjgsNyAr MTM2OCw3IEBAIEVSUk9SOiAgY29sdW1uICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBv ZiByZWxhdGlvbiAiYXRhY2MxIiBkb2VzIG5vdCBleGlzCiBMSU5FIDE6IHVwZGF0ZSBhdGFjYzEg c2V0ICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiA9IDM7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KIHVwZGF0ZSBhdGFjYzEgc2V0IGIgPSAyIHdoZXJlICIuLi4uLi4uLnBnLmRy b3BwZWQuMS4uLi4uLi4uIiA9IDM7Ci1FUlJPUjogIGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVk LjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICIu Li4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiB1cGRh dGUgYXRhY2MxIHNldCBiID0gMiB3aGVyZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIu Li4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogLS0gSU5TRVJUcwpA QCAtMTQxNiwxMSArMTQxNiwxMSBAQCBMSU5FIDE6IGluc2VydCBpbnRvIGF0YWNjMSAoIi4uLi4u Li4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iLGIsYyxkKSB2YS4uLgogICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4KIC0tIERFTEVURXMKIGRlbGV0ZSBmcm9tIGF0YWNjMSB3aGVyZSBhID0gMzsK LUVSUk9SOiAgY29sdW1uICJhIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFy aWFibGUgImEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IGRlbGV0ZSBmcm9tIGF0YWNjMSB3aGVy ZSBhID0gMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIGRlbGV0ZSBmcm9t IGF0YWNjMSB3aGVyZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgPSAzOwotRVJST1I6 ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CitF UlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIg ZG9lcyBub3QgZXhpc3QKIExJTkUgMTogZGVsZXRlIGZyb20gYXRhY2MxIHdoZXJlICIuLi4uLi4u LnBnLmRyb3BwZWQuMS4uLi4uLi4uIiA9IDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCiBkZWxldGUgZnJvbSBhdGFjYzE7CkBAIC0xNzA2LDcgKzE3MDYsNyBAQCBzZWxlY3Qg ZjEgZnJvbSBjMTsKIAogYWx0ZXIgdGFibGUgYzEgZHJvcCBjb2x1bW4gZjE7CiBzZWxlY3QgZjEg ZnJvbSBjMTsKLUVSUk9SOiAgY29sdW1uICJmMSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29s dW1uIG9yIHZhcmlhYmxlICJmMSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGYxIGZy b20gYzE7CiAgICAgICAgICAgICAgICBeCiBISU5UOiAgUGVyaGFwcyB5b3UgbWVhbnQgdG8gcmVm ZXJlbmNlIHRoZSBjb2x1bW4gImMxLmYyIi4KQEAgLTE3MjAsNyArMTcyMCw3IEBAIEVSUk9SOiAg Y2Fubm90IGRyb3AgaW5oZXJpdGVkIGNvbHVtbiAiZjEiCiBhbHRlciB0YWJsZSBwMSBkcm9wIGNv bHVtbiBmMTsKIC0tIGMxLmYxIGlzIGRyb3BwZWQgbm93LCBzaW5jZSB0aGVyZSBpcyBubyBsb2Nh bCBkZWZpbml0aW9uIGZvciBpdAogc2VsZWN0IGYxIGZyb20gYzE7Ci1FUlJPUjogIGNvbHVtbiAi ZjEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEiIGRvZXMg bm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBmMSBmcm9tIGMxOwogICAgICAgICAgICAgICAgXgog SElOVDogIFBlcmhhcHMgeW91IG1lYW50IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uICJjMS5mMiIu CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY29weTIub3V0CmluZGV4IDY0ZWEzM2FlYWU4Li42ODc0ZjVh ZTBkMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQKQEAgLTE2MCw3ICsxNjAsNyBA QCBMSU5FIDE6IENPUFkgeCBUTyBzdGRvdXQgV0hFUkUgYSA9IDE7CiBDT1BZIHggZnJvbSBzdGRp biBXSEVSRSBhID0gNTAwMDQ7CiBDT1BZIHggZnJvbSBzdGRpbiBXSEVSRSBhID4gNjAwMDM7CiBD T1BZIHggZnJvbSBzdGRpbiBXSEVSRSBmID4gNjAwMDM7Ci1FUlJPUjogIGNvbHVtbiAiZiIgZG9l cyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJmIiBkb2VzIG5vdCBleGlz dAogTElORSAxOiBDT1BZIHggZnJvbSBzdGRpbiBXSEVSRSBmID4gNjAwMDM7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KIENPUFkgeCBmcm9tIHN0ZGluIFdIRVJFIGEgPSBtYXgo eC5iKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3JzLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3JzLm91dAppbmRleCA4YzUyNzQ3NGRhZi4u ZTUzYWU0NTFkZmMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3Jz Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Vycm9ycy5vdXQKQEAgLTI3LDcg KzI3LDcgQEAgTElORSAxOiBzZWxlY3QgKiBmcm9tIG5vbmVzdWNoOwogICAgICAgICAgICAgICAg ICAgICAgIF4KIC0tIGJhZCBuYW1lIGluIHRhcmdldCBsaXN0CiBzZWxlY3Qgbm9uZXN1Y2ggZnJv bSBwZ19kYXRhYmFzZTsKLUVSUk9SOiAgY29sdW1uICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QK K0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKIExJ TkUgMTogc2VsZWN0IG5vbmVzdWNoIGZyb20gcGdfZGF0YWJhc2U7CiAgICAgICAgICAgICAgICBe CiAtLSBlbXB0eSBkaXN0aW5jdCBsaXN0IGlzbid0IE9LCkBAIC0zNywxNyArMzcsMTcgQEAgTElO RSAxOiBzZWxlY3QgZGlzdGluY3QgZnJvbSBwZ19kYXRhYmFzZTsKICAgICAgICAgICAgICAgICAg ICAgICAgIF4KIC0tIGJhZCBhdHRyaWJ1dGUgbmFtZSBvbiBsaHMgb2Ygb3BlcmF0b3IKIHNlbGVj dCAqIGZyb20gcGdfZGF0YWJhc2Ugd2hlcmUgbm9uZXN1Y2ggPSBwZ19kYXRhYmFzZS5kYXRuYW1l OwotRVJST1I6ICBjb2x1bW4gIm5vbmVzdWNoIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1 bW4gb3IgdmFyaWFibGUgIm5vbmVzdWNoIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3Qg KiBmcm9tIHBnX2RhdGFiYXNlIHdoZXJlIG5vbmVzdWNoID0gcGdfZGF0YWJhc2UuZGF0bmEuLi4K ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBiYWQgYXR0cmli dXRlIG5hbWUgb24gcmhzIG9mIG9wZXJhdG9yCiBzZWxlY3QgKiBmcm9tIHBnX2RhdGFiYXNlIHdo ZXJlIHBnX2RhdGFiYXNlLmRhdG5hbWUgPSBub25lc3VjaDsKLUVSUk9SOiAgY29sdW1uICJub25l c3VjaCIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJub25lc3Vj aCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogLi4uZWN0ICogZnJvbSBwZ19kYXRhYmFzZSB3aGVy ZSBwZ19kYXRhYmFzZS5kYXRuYW1lID0gbm9uZXN1Y2g7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIGJhZCBhdHRyaWJ1 dGUgbmFtZSBpbiBzZWxlY3QgZGlzdGluY3Qgb24KIHNlbGVjdCBkaXN0aW5jdCBvbiAoZm9vYmFy KSAqIGZyb20gcGdfZGF0YWJhc2U7Ci1FUlJPUjogIGNvbHVtbiAiZm9vYmFyIiBkb2VzIG5vdCBl eGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImZvb2JhciIgZG9lcyBub3QgZXhpc3QK IExJTkUgMTogc2VsZWN0IGRpc3RpbmN0IG9uIChmb29iYXIpICogZnJvbSBwZ19kYXRhYmFzZTsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBncm91cGluZyB3aXRoIEZPUiBVUERB VEUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0CmluZGV4IDA3OWZjZjQ2ZjBkLi5hNmU3MTA1 YWNjZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9qb2luLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pvaW4ub3V0CkBAIC02Mzk3LDEzICs2Mzk3LDEz IEBAIExJTkUgMTogc2VsZWN0IHQyLnV1bmlxdWUxIGZyb20KIEhJTlQ6ICBQZXJoYXBzIHlvdSBt ZWFudCB0byByZWZlcmVuY2UgdGhlIGNvbHVtbiAidDIudW5pcXVlMSIuCiBzZWxlY3QgdXVuaXF1 ZTEgZnJvbQogICB0ZW5rMSB0MSBqb2luIHRlbmsyIHQyIG9uIHQxLnR3byA9IHQyLnR3bzsgLS0g ZXJyb3IsIHN1Z2dlc3QgYm90aCBhdCBvbmNlCi1FUlJPUjogIGNvbHVtbiAidXVuaXF1ZTEiIGRv ZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAidXVuaXF1ZTEiIGRvZXMg bm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCB1dW5pcXVlMSBmcm9tCiAgICAgICAgICAgICAgICBe CiBISU5UOiAgUGVyaGFwcyB5b3UgbWVhbnQgdG8gcmVmZXJlbmNlIHRoZSBjb2x1bW4gInQxLnVu aXF1ZTEiIG9yIHRoZSBjb2x1bW4gInQyLnVuaXF1ZTEiLgogc2VsZWN0IGN0aWQgZnJvbQogICB0 ZW5rMSB0MSBqb2luIHRlbmsyIHQyIG9uIHQxLnR3byA9IHQyLnR3bzsgLS0gZXJyb3IsIG5lZWQg cXVhbGlmaWNhdGlvbgotRVJST1I6ICBjb2x1bW4gImN0aWQiIGRvZXMgbm90IGV4aXN0CitFUlJP UjogIGNvbHVtbiBvciB2YXJpYWJsZSAiY3RpZCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2Vs ZWN0IGN0aWQgZnJvbQogICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUgYXJlIGNvbHVt bnMgbmFtZWQgImN0aWQiLCBidXQgdGhleSBhcmUgaW4gdGFibGVzIHRoYXQgY2Fubm90IGJlIHJl ZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpAQCAtNzUwMCw3ICs3NTAwLDcg QEAgbGF0ZXJhbCAoc2VsZWN0ICogZnJvbSBpbnQ4X3RibCB0MSwKIAogLS0gdGVzdCBzb21lIGVy cm9yIGNhc2VzIHdoZXJlIExBVEVSQUwgc2hvdWxkIGhhdmUgYmVlbiB1c2VkIGJ1dCB3YXNuJ3QK IHNlbGVjdCBmMSxnIGZyb20gaW50NF90YmwgYSwgKHNlbGVjdCBmMSBhcyBnKSBzczsKLUVSUk9S OiAgY29sdW1uICJmMSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxl ICJmMSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGYxLGcgZnJvbSBpbnQ0X3RibCBh LCAoc2VsZWN0IGYxIGFzIGcpIHNzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUgaXMgYSBjb2x1bW4gbmFtZWQgImYxIiBpbiB0 YWJsZSAiYSIsIGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0 aGUgcXVlcnkuCkBAIC03NTEyLDcgKzc1MTIsNyBAQCBMSU5FIDE6IHNlbGVjdCBmMSxnIGZyb20g aW50NF90YmwgYSwgKHNlbGVjdCBhLmYxIGFzIGcpIHNzOwogREVUQUlMOiAgVGhlcmUgaXMgYW4g ZW50cnkgZm9yIHRhYmxlICJhIiwgYnV0IGl0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhp cyBwYXJ0IG9mIHRoZSBxdWVyeS4KIEhJTlQ6ICBUbyByZWZlcmVuY2UgdGhhdCB0YWJsZSwgeW91 IG11c3QgbWFyayB0aGlzIHN1YnF1ZXJ5IHdpdGggTEFURVJBTC4KIHNlbGVjdCBmMSxnIGZyb20g aW50NF90YmwgYSBjcm9zcyBqb2luIChzZWxlY3QgZjEgYXMgZykgc3M7Ci1FUlJPUjogIGNvbHVt biAiZjEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEiIGRv ZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBmMSxnIGZyb20gaW50NF90YmwgYSBjcm9zcyBq b2luIChzZWxlY3QgZjEgYXMgZykgc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUgaXMgYSBjb2x1bW4gbmFt ZWQgImYxIiBpbiB0YWJsZSAiYSIsIGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRo aXMgcGFydCBvZiB0aGUgcXVlcnkuCkBAIC03NTQ5LDcgKzc1NDksNyBAQCBMSU5FIDE6IHNlbGVj dCAxIGZyb20gdGVuazEgYSwgbGF0ZXJhbCAoc2VsZWN0IG1heChhLnVuaXF1ZTEpIGZyb20gaS4u LgogY3JlYXRlIHRlbXAgdGFibGUgeHgxIGFzIHNlbGVjdCBmMSBhcyB4MSwgLWYxIGFzIHgyIGZy b20gaW50NF90Ymw7CiAtLSBlcnJvciwgY2FuJ3QgZG8gdGhpczoKIHVwZGF0ZSB4eDEgc2V0IHgy ID0gZjEgZnJvbSAoc2VsZWN0ICogZnJvbSBpbnQ0X3RibCB3aGVyZSBmMSA9IHgxKSBzczsKLUVS Uk9SOiAgY29sdW1uICJ4MSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlh YmxlICJ4MSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogLi4uIHNldCB4MiA9IGYxIGZyb20gKHNl bGVjdCAqIGZyb20gaW50NF90Ymwgd2hlcmUgZjEgPSB4MSkgc3M7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlM OiAgVGhlcmUgaXMgYSBjb2x1bW4gbmFtZWQgIngxIiBpbiB0YWJsZSAieHgxIiwgYnV0IGl0IGNh bm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KQEAgLTc1Njks NyArNzU2OSw3IEBAIHVwZGF0ZSB4eDEgc2V0IHgyID0gZjEgZnJvbSB4eDEsIGxhdGVyYWwgKHNl bGVjdCAqIGZyb20gaW50NF90Ymwgd2hlcmUgZjEgPSB4MSkKIEVSUk9SOiAgdGFibGUgbmFtZSAi eHgxIiBzcGVjaWZpZWQgbW9yZSB0aGFuIG9uY2UKIC0tIGFsc28gZXJyb3JzOgogZGVsZXRlIGZy b20geHgxIHVzaW5nIChzZWxlY3QgKiBmcm9tIGludDRfdGJsIHdoZXJlIGYxID0geDEpIHNzOwot RVJST1I6ICBjb2x1bW4gIngxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFy aWFibGUgIngxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiAuLi50ZSBmcm9tIHh4MSB1c2luZyAo c2VsZWN0ICogZnJvbSBpbnQ0X3RibCB3aGVyZSBmMSA9IHgxKSBzczsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBERVRB SUw6ICBUaGVyZSBpcyBhIGNvbHVtbiBuYW1lZCAieDEiIGluIHRhYmxlICJ4eDEiLCBidXQgaXQg Y2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9uYW1lc3BhY2Uub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9uYW1lc3BhY2Uub3V0CmluZGV4IGRiYmRhNzJkMzk1Li5kOTg3OTNm OTJhNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9uYW1lc3BhY2Uub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91dApAQCAtMjMsNyAr MjMsNyBAQCBCRUdJTjsKIFNFVCBzZWFyY2hfcGF0aCB0byBwdWJsaWMsIHRlc3RfbnNfc2NoZW1h XzE7CiBDUkVBVEUgU0NIRU1BIHRlc3RfbnNfc2NoZW1hXzIKICAgICAgICBDUkVBVEUgVklFVyBh YmNfdmlldyBBUyBTRUxFQ1QgYyBGUk9NIGFiYzsKLUVSUk9SOiAgY29sdW1uICJjIiBkb2VzIG5v dCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImMiIGRvZXMgbm90IGV4aXN0CiBM SU5FIDI6ICAgICAgICBDUkVBVEUgVklFVyBhYmNfdmlldyBBUyBTRUxFQ1QgYyBGUk9NIGFiYzsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBDT01NSVQ7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251bWVyb2xvZ3kub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dAppbmRleCA5ZTIzMTY2ZmVk MS4uNjcyMDEyZTE0NjEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbnVt ZXJvbG9neS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91 dApAQCAtMzE0LDcgKzMxNCw3IEBAIE5PVElDRTogIGkgPSAxMDAyCiBOT1RJQ0U6ICBpID0gMTAw MwogLS0gZXJyb3IgY2FzZXMKIFNFTEVDVCBfMTAwOwotRVJST1I6ICBjb2x1bW4gIl8xMDAiIGRv ZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiXzEwMCIgZG9lcyBub3Qg ZXhpc3QKIExJTkUgMTogU0VMRUNUIF8xMDA7CiAgICAgICAgICAgICAgICBeCiBTRUxFQ1QgMTAw XzsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcGxwZ3NxbC5vdXQgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BscGdzcWwub3V0CmluZGV4IDBhNjk0NTU4MWJkLi41 YzU5OWJhMzEyZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wbHBnc3Fs Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BscGdzcWwub3V0CkBAIC0yNTk4 LDcgKzI1OTgsNyBAQCBlbmQ7ICQkIGxhbmd1YWdlIHBscGdzcWw7CiAtLSBzaG91bGQgZmFpbDog U1FMU1RBVEUgYW5kIFNRTEVSUk0gYXJlIG9ubHkgaW4gZGVmaW5lZCBFWENFUFRJT04KIC0tIGJs b2Nrcwogc2VsZWN0IGV4Y3B0X3Rlc3QxKCk7Ci1FUlJPUjogIGNvbHVtbiAic3Fsc3RhdGUiIGRv ZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAic3Fsc3RhdGUiIGRvZXMg bm90IGV4aXN0CiBMSU5FIDE6IHNxbHN0YXRlCiAgICAgICAgIF4KIFFVRVJZOiAgc3Fsc3RhdGUK QEAgLTI2MTMsNyArMjYxMyw3IEBAIGJlZ2luCiBlbmQ7ICQkIGxhbmd1YWdlIHBscGdzcWw7CiAt LSBzaG91bGQgZmFpbAogc2VsZWN0IGV4Y3B0X3Rlc3QyKCk7Ci1FUlJPUjogIGNvbHVtbiAic3Fs c3RhdGUiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAic3Fsc3Rh dGUiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNxbHN0YXRlCiAgICAgICAgIF4KIFFVRVJZOiAg c3Fsc3RhdGUKQEAgLTQ2NzUsNyArNDY3NSw3IEBAIEJFR0lOCiAgICAgICAgIFJBSVNFIE5PVElD RSAnJSwgJScsIHIucm9vbW5vLCByLmNvbW1lbnQ7CiAgICAgRU5EIExPT1A7CiBFTkQkJDsKLUVS Uk9SOiAgY29sdW1uICJmb28iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJp YWJsZSAiZm9vIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1QgcnRyaW0ocm9vbW5vKSBB UyByb29tbm8sIGZvbyBGUk9NIFJvb20gT1JERVIgQlkgcm9vbW4uLi4KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBRVUVSWTogIFNFTEVDVCBydHJpbShyb29tbm8p IEFTIHJvb21ubywgZm9vIEZST00gUm9vbSBPUkRFUiBCWSByb29tbm8KQEAgLTQ3MTcsNyArNDcx Nyw3IEBAIGJlZ2luCiAgIHJhaXNlIG5vdGljZSAneCA9ICUnLCB4OwogZW5kOwogJCQ7Ci1FUlJP UjogIGNvbHVtbiAieCIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxl ICJ4IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiB4ICsgMQogICAgICAgICBeCiBRVUVSWTogIHgg KyAxCkBAIC00NzI5LDcgKzQ3MjksNyBAQCBiZWdpbgogICByYWlzZSBub3RpY2UgJ3ggPSAlLCB5 ID0gJScsIHgsIHk7CiBlbmQ7CiAkJDsKLUVSUk9SOiAgY29sdW1uICJ4IiBkb2VzIG5vdCBleGlz dAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIngiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6 IHggKyAxCiAgICAgICAgIF4KIFFVRVJZOiAgeCArIDEKQEAgLTU3NjksNyArNTc2OSw3IEBAIEFM VEVSIFRBQkxFIGFsdGVyX3RhYmxlX3VuZGVyX3RyYW5zaXRpb25fdGFibGVzCiAgIERST1AgY29s dW1uIG5hbWU7CiBVUERBVEUgYWx0ZXJfdGFibGVfdW5kZXJfdHJhbnNpdGlvbl90YWJsZXMKICAg U0VUIGlkID0gaWQ7Ci1FUlJPUjogIGNvbHVtbiAibmFtZSIgZG9lcyBub3QgZXhpc3QKK0VSUk9S OiAgY29sdW1uIG9yIHZhcmlhYmxlICJuYW1lIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiAoU0VM RUNUIHN0cmluZ19hZ2coaWQgfHwgJz0nIHx8IG5hbWUsICcsJykgRlJPTSBkKQogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIFFVRVJZOiAgKFNFTEVDVCBzdHJpbmdf YWdnKGlkIHx8ICc9JyB8fCBuYW1lLCAnLCcpIEZST00gZCkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Bz cWwub3V0CmluZGV4IDc3YTdiZjQ1YzhhLi5lMTYzNWY2ODZjMiAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3BzcWwub3V0CkBAIC0yMTQsNyArMjE0LDcgQEAgc2VsZWN0ICQxOjppbnQgYXMgY29sIFxi aW5kIDEgXGcgXGJpbmQgMiBcZwogLS0gZXJyb3JzCiAtLSBwYXJzZSBlcnJvcgogU0VMRUNUIGZv byBcYmluZCBcZwotRVJST1I6ICBjb2x1bW4gImZvbyIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAg Y29sdW1uIG9yIHZhcmlhYmxlICJmb28iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IFNFTEVDVCBm b28gCiAgICAgICAgICAgICAgICBeCiAtLSB0Y29wIGVycm9yCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cnVsZXMub3V0CmluZGV4IDMwMTRkMDQ3ZmVmLi43Mzc4Zjk1YjE3ZCAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9ydWxlcy5vdXQKQEAgLTExOTEsNyArMTE5MSw3IEBAIGRyb3AgcnVsZSBydWxlc19m b29ydWxlIG9uIHJ1bGVzX2ZvbzsKIC0tIHRoaXMgc2hvdWxkIGZhaWwgYmVjYXVzZSBmMSBpcyBu b3QgZXhwb3NlZCBmb3IgdW5xdWFsaWZpZWQgcmVmZXJlbmNlOgogY3JlYXRlIHJ1bGUgcnVsZXNf Zm9vcnVsZSBhcyBvbiBpbnNlcnQgdG8gcnVsZXNfZm9vIHdoZXJlIGYxIDwgMTAwCiBkbyBpbnN0 ZWFkIGluc2VydCBpbnRvIHJ1bGVzX2ZvbzIgdmFsdWVzIChmMSk7Ci1FUlJPUjogIGNvbHVtbiAi ZjEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEiIGRvZXMg bm90IGV4aXN0CiBMSU5FIDI6IGRvIGluc3RlYWQgaW5zZXJ0IGludG8gcnVsZXNfZm9vMiB2YWx1 ZXMgKGYxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgogREVUQUlMOiAgVGhlcmUgYXJlIGNvbHVtbnMgbmFtZWQgImYxIiwgYnV0IHRoZXkgYXJl IGluIHRhYmxlcyB0aGF0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRo ZSBxdWVyeS4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQKaW5kZXggOWFlZThlMDMxZDQuLjQ4ZTY5YWJiM2NlIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtODExLDcgKzgxMSw3IEBA IEVSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAidmFyMSIgZG9lc24ndCBleGlzdAogTElORSAxOiBM RVQgdmFyMSA9IHBpKCk7CiAgICAgICAgICAgICBeCiBTRUxFQ1QgdmFyMTsKLUVSUk9SOiAgY29s dW1uICJ2YXIxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInZh cjEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IFNFTEVDVCB2YXIxOwogICAgICAgICAgICAgICAg XgogLS0gc2hvdWxkIGJlIG9rCkBAIC0xMDMwLDcgKzEwMzAsNyBAQCBTRUxFQ1QgdjE7CiAKIC0t IHNob3VsZCBmYWlsLCBhdHRyaWJ1dGUgZG9lc24ndCBleGlzdAogTEVUIHYxLnggPSAxMDsKLUVS Uk9SOiAgY2Fubm90IGFzc2lnbiB0byBmaWVsZCAieCIgb2YgY29sdW1uICJ2MSIgYmVjYXVzZSB0 aGVyZSBpcyBubyBzdWNoIGNvbHVtbiBpbiBkYXRhIHR5cGUgdDEKK0VSUk9SOiAgY2Fubm90IGFz c2lnbiB0byBmaWVsZCAieCIgb2YgY29sdW1uIG9yIHZhcmlhYmxlICJ2MSIgYmVjYXVzZSB0aGVy ZSBpcyBubyBzdWNoIGNvbHVtbiBpbiBkYXRhIHR5cGUgdDEKIExJTkUgMTogTEVUIHYxLnggPSAx MDsKICAgICAgICAgICAgIF4KIC0tIHNob3VsZCBmYWlsLCBkb24ndCBhbGxvdyBtdWx0aSBjb2x1 bW4gcXVlcnkKQEAgLTE3NDIsNyArMTc0Miw3IEBAIEJFR0lOOwogRFJPUCBWQVJJQUJMRSB2YXIx OwogLS0gc2hvdWxkIGZhaWwKIFNFTEVDVCB2YXIxOwotRVJST1I6ICBjb2x1bW4gInZhcjEiIGRv ZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAidmFyMSIgZG9lcyBub3Qg ZXhpc3QKIExJTkUgMTogU0VMRUNUIHZhcjE7CiAgICAgICAgICAgICAgICBeCiBST0xMQkFDSzsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHJhbnNhY3Rpb25zLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdHJhbnNhY3Rpb25zLm91dAppbmRleCA3ZjU3NTdl ODljNC4uYjA1YjE2ZDk0YmYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv dHJhbnNhY3Rpb25zLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RyYW5zYWN0 aW9ucy5vdXQKQEAgLTI1Niw3ICsyNTYsNyBAQCBTRUxFQ1QgKiBGUk9NIHRyYW5zX2JhcmJhejsJ LS0gc2hvdWxkIGhhdmUgMQogQkVHSU47CiAJU0FWRVBPSU5UIG9uZTsKIAkJU0VMRUNUIHRyYW5z X2ZvbzsKLUVSUk9SOiAgY29sdW1uICJ0cmFuc19mb28iIGRvZXMgbm90IGV4aXN0CitFUlJPUjog IGNvbHVtbiBvciB2YXJpYWJsZSAidHJhbnNfZm9vIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBT RUxFQ1QgdHJhbnNfZm9vOwogICAgICAgICAgICAgICAgXgogCVJPTExCQUNLIFRPIFNBVkVQT0lO VCBvbmU7CkBAIC0zMDUsNyArMzA1LDcgQEAgQkVHSU47CiAJU0FWRVBPSU5UIG9uZTsKIAkJSU5T RVJUIElOVE8gc2F2ZXBvaW50cyBWQUxVRVMgKDUpOwogCQlTRUxFQ1QgdHJhbnNfZm9vOwotRVJS T1I6ICBjb2x1bW4gInRyYW5zX2ZvbyIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9y IHZhcmlhYmxlICJ0cmFuc19mb28iIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IFNFTEVDVCB0cmFu c19mb287CiAgICAgICAgICAgICAgICBeCiBDT01NSVQ7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3VuaW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5p b24ub3V0CmluZGV4IGNhYThmZTcwYTA1Li4xZDM0NDdlODRkZCAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC91bmlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC91bmlvbi5vdXQKQEAgLTkzOSw3ICs5MzksNyBAQCBPUkRFUiBCWSBxMixxMTsKIAogLS0g VGhpcyBzaG91bGQgZmFpbCwgYmVjYXVzZSBxMiBpc24ndCBhIG5hbWUgb2YgYW4gRVhDRVBUIG91 dHB1dCBjb2x1bW4KIFNFTEVDVCBxMSBGUk9NIGludDhfdGJsIEVYQ0VQVCBTRUxFQ1QgcTIgRlJP TSBpbnQ4X3RibCBPUkRFUiBCWSBxMiBMSU1JVCAxOwotRVJST1I6ICBjb2x1bW4gInEyIiBkb2Vz IG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInEyIiBkb2VzIG5vdCBleGlz dAogTElORSAxOiAuLi4gaW50OF90YmwgRVhDRVBUIFNFTEVDVCBxMiBGUk9NIGludDhfdGJsIE9S REVSIEJZIHEyIExJTUlUIDEuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBERVRBSUw6ICBUaGVyZSBpcyBhIGNvbHVtbiBu YW1lZCAicTIiIGluIHRhYmxlICIqU0VMRUNUKiAyIiwgYnV0IGl0IGNhbm5vdCBiZSByZWZlcmVu Y2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KLS0gCjIuNDcuMQoK --000000000000f297a7062b2456dc Content-Type: text/x-patch; charset="US-ASCII"; name="v20250107-0017-allow-parallel-execution-queries-with-session-variab.patch" Content-Disposition: attachment; filename="v20250107-0017-allow-parallel-execution-queries-with-session-variab.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5mz6bhe5 RnJvbSBkNGQ1MzViYTAzNTIyYWM2Y2FiNGIyMWNiOGRjMGNiOWQyMzEzODdlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowODoxNyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTcvMjJdIGFsbG93IHBhcmFsbGVsIGV4ZWN1dGlvbiBxdWVyaWVzIHdpdGggc2Vzc2lvbiB2YXJp YWJsZXMKCi0tLQogZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgICA2IC0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICAgICAgICB8 ICAxNCArLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMgICAgICAgICAgIHwg MTQ3ICsrKysrKysrKysrKysrKysrLQogc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNl cy5jICAgICAgICAgIHwgIDE4ICstLQogc3JjL2JhY2tlbmQvdGNvcC9wcXVlcnkuYyAgICAgICAg ICAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNkZXNjLmggICAg ICAgICAgICAgICB8ICAgNCArCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQgICAgfCAgMTIgKy0KIDcgZmlsZXMgY2hhbmdlZCwgMTc4IGluc2VydGlvbnMoKyksIDI2 IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sIGIv ZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwKaW5kZXggNjgzZGVkZTZhZGMuLjFjZTlhYmY4NmY1 IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcGFyYWxsZWwuc2dtbApAQCAtNTE1LDEyICs1MTUsNiBAQCBFWFBMQUlOIFNFTEVDVCAqIEZS T00gcGdiZW5jaF9hY2NvdW50cyBXSEVSRSBmaWxsZXIgTElLRSAnJXglJzsKICAgICAgICAgUGxh biBub2RlcyB0aGF0IHJlZmVyZW5jZSBhIGNvcnJlbGF0ZWQgPGxpdGVyYWw+U3ViUGxhbjwvbGl0 ZXJhbD4uCiAgICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KLQotICAgIDxsaXN0aXRlbT4K LSAgICAgIDxwYXJhPgotICAgICAgICBQbGFuIG5vZGVzIHRoYXQgdXNlIGEgc2Vzc2lvbiB2YXJp YWJsZS4KLSAgICAgIDwvcGFyYT4KLSAgICA8L2xpc3RpdGVtPgogICA8L2l0ZW1pemVkbGlzdD4K IAogIDxzZWN0MiBpZD0icGFyYWxsZWwtbGFiZWxpbmciPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMK aW5kZXggYTQ5ZmU1NjAzNjUuLjkzNjFjZGE0ZjUxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjTWFpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMK QEAgLTIxMCw3ICsyMTAsMTkgQEAgc3RhbmRhcmRfRXhlY3V0b3JTdGFydChRdWVyeURlc2MgKnF1 ZXJ5RGVzYywgaW50IGVmbGFncykKIAkgKiAgICBiZSBjaGFuZ2VkIGluc2lkZSBxdWVyeSBleGVj dXRpb24gdGltZSwgYW5kIHRoZW4gYSByZWZlcmVuY2UgdG8KIAkgKiAgICBwcmV2aW91c2x5IHJl dHVybmVkIHZhbHVlIGNhbiBiZSBjb3JydXB0ZWQpLgogCSAqLwotCWlmIChxdWVyeURlc2MtPnBs YW5uZWRzdG10LT5zZXNzaW9uVmFyaWFibGVzKQorCWlmIChxdWVyeURlc2MtPm51bV9zZXNzaW9u X3ZhcmlhYmxlcyA+IDApCisJeworCQkvKgorCQkgKiBXaGVuIGEgcGFyYWxsZWwgcXVlcnkgbmVl ZHMgdG8gYWNjZXNzIHF1ZXJ5IHBhcmFtZXRlcnMgKGluY2x1ZGluZworCQkgKiByZWxhdGVkIHNl c3Npb24gdmFyaWFibGVzKSwgdGhlbiByZWxhdGVkIHNlc3Npb24gdmFyaWFibGVzIGFyZQorCQkg KiByZXN0b3JlZCAoZGVzZXJpYWxpemVkKSBpbiBxdWVyeURlc2MgYWxyZWFkeS4gU28ganVzdCBw dXNoIHBvaW50ZXIKKwkJICogb2YgdGhpcyBhcnJheSB0byBleGVjdXRvcidzIGVzdGF0ZS4KKwkJ ICovCisJCUFzc2VydChJc1BhcmFsbGVsV29ya2VyKCkpOworCQllc3RhdGUtPmVzX3Nlc3Npb25f dmFyaWFibGVzID0gcXVlcnlEZXNjLT5zZXNzaW9uX3ZhcmlhYmxlczsKKwkJZXN0YXRlLT5lc19u dW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBxdWVyeURlc2MtPm51bV9zZXNzaW9uX3ZhcmlhYmxlczsK Kwl9CisJZWxzZSBpZiAocXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykK IAl7CiAJCWludAkJCW5TZXNzaW9uVmFyaWFibGVzOwogCQlpbnQJCQlpID0gMDsKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY1BhcmFsbGVsLmMKaW5kZXggZmY0ZDlkZDFiYjMuLjgzZTAzOTFhNDRkIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYwpAQCAtMTIsOCArMTIsOSBAQAogICogd29ya2Vy cyBhbmQgZW5zdXJpbmcgdGhhdCB0aGVpciBzdGF0ZSBnZW5lcmFsbHkgbWF0Y2hlcyB0aGF0IG9m IHRoZQogICogbGVhZGVyOyBzZWUgc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vUkVBRE1FLnBh cmFsbGVsIGZvciBkZXRhaWxzLgogICogSG93ZXZlciwgd2UgbXVzdCBzYXZlIGFuZCByZXN0b3Jl IHJlbGV2YW50IGV4ZWN1dG9yIHN0YXRlLCBzdWNoIGFzCi0gKiBhbnkgUGFyYW1MaXN0SW5mbyBh c3NvY2lhdGVkIHdpdGggdGhlIHF1ZXJ5LCBidWZmZXIvV0FMIHVzYWdlIGluZm8sIGFuZAotICog dGhlIGFjdHVhbCBwbGFuIHRvIGJlIHBhc3NlZCBkb3duIHRvIHRoZSB3b3JrZXIuCisgKiBhbnkg UGFyYW1MaXN0SW5mbyBhc3NvY2lhdGVkIHdpdGggdGhlIHF1ZXJ5LCBidWZmZXIvV0FMIHVzYWdl IGluZm8sCisgKiBzZXNzaW9uIHZhcmlhYmxlcyBidWZmZXIsIGFuZCB0aGUgYWN0dWFsIHBsYW4g dG8gYmUgcGFzc2VkIGRvd24gdG8KKyAqIHRoZSB3b3JrZXIuCiAgKgogICogSURFTlRJRklDQVRJ T04KICAqCSAgc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1BhcmFsbGVsLmMKQEAgLTY0LDYgKzY1 LDcgQEAKICNkZWZpbmUgUEFSQUxMRUxfS0VZX1FVRVJZX1RFWFQJCVVJTlQ2NENPTlNUKDB4RTAw MDAwMDAwMDAwMDAwOCkKICNkZWZpbmUgUEFSQUxMRUxfS0VZX0pJVF9JTlNUUlVNRU5UQVRJT04g VUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAwMDAwMDA5KQogI2RlZmluZSBQQVJBTExFTF9LRVlfV0FM X1VTQUdFCQkJVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAwMDAwMDBBKQorI2RlZmluZSBQQVJBTExF TF9LRVlfU0VTU0lPTl9WQVJJQUJMRVMJVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAwMDAwMDBCKQog CiAjZGVmaW5lIFBBUkFMTEVMX1RVUExFX1FVRVVFX1NJWkUJCTY1NTM2CiAKQEAgLTEzOCw2ICsx NDAsMTIgQEAgc3RhdGljIGJvb2wgRXhlY1BhcmFsbGVsUmV0cmlldmVJbnN0cnVtZW50YXRpb24o UGxhblN0YXRlICpwbGFuc3RhdGUsCiAvKiBIZWxwZXIgZnVuY3Rpb24gdGhhdCBydW5zIGluIHRo ZSBwYXJhbGxlbCB3b3JrZXIuICovCiBzdGF0aWMgRGVzdFJlY2VpdmVyICpFeGVjUGFyYWxsZWxH ZXRSZWNlaXZlcihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpOwogCisvKiBIZWxwZXIg ZnVuY3Rpb25zIHRoYXQgY2FuIHBhc3MgdmFsdWVzIG9mIHNlc3Npb24gdmFyaWFibGVzICovCitz dGF0aWMgU2l6ZSBFc3RpbWF0ZVNlc3Npb25WYXJpYWJsZXMoRVN0YXRlICplc3RhdGUpOworc3Rh dGljIHZvaWQgU2VyaWFsaXplU2Vzc2lvblZhcmlhYmxlcyhFU3RhdGUgKmVzdGF0ZSwgY2hhciAq KnN0YXJ0X2FkZHJlc3MpOworc3RhdGljIFNlc3Npb25WYXJpYWJsZVZhbHVlICpSZXN0b3JlU2Vz c2lvblZhcmlhYmxlcyhjaGFyICoqc3RhcnRfYWRkcmVzcywKKwkJCQkJCQkJCQkJCQkgaW50ICpu dW1fc2Vzc2lvbl92YXJpYWJsZXMpOworCiAvKgogICogQ3JlYXRlIGEgc2VyaWFsaXplZCByZXBy ZXNlbnRhdGlvbiBvZiB0aGUgcGxhbiB0byBiZSBzZW50IHRvIGVhY2ggd29ya2VyLgogICovCkBA IC01OTYsNiArNjA0LDcgQEAgRXhlY0luaXRQYXJhbGxlbFBsYW4oUGxhblN0YXRlICpwbGFuc3Rh dGUsIEVTdGF0ZSAqZXN0YXRlLAogCWNoYXIJICAgKnBzdG10X2RhdGE7CiAJY2hhcgkgICAqcHN0 bXRfc3BhY2U7CiAJY2hhcgkgICAqcGFyYW1saXN0aW5mb19zcGFjZTsKKwljaGFyCSAgICpzZXNz aW9uX3ZhcmlhYmxlc19zcGFjZTsKIAlCdWZmZXJVc2FnZSAqYnVmdXNhZ2Vfc3BhY2U7CiAJV2Fs VXNhZ2UgICAqd2FsdXNhZ2Vfc3BhY2U7CiAJU2hhcmVkRXhlY3V0b3JJbnN0cnVtZW50YXRpb24g Kmluc3RydW1lbnRhdGlvbiA9IE5VTEw7CkBAIC02MDUsNiArNjE0LDcgQEAgRXhlY0luaXRQYXJh bGxlbFBsYW4oUGxhblN0YXRlICpwbGFuc3RhdGUsIEVTdGF0ZSAqZXN0YXRlLAogCWludAkJCWlu c3RydW1lbnRhdGlvbl9sZW4gPSAwOwogCWludAkJCWppdF9pbnN0cnVtZW50YXRpb25fbGVuID0g MDsKIAlpbnQJCQlpbnN0cnVtZW50X29mZnNldCA9IDA7CisJaW50CQkJc2Vzc2lvbl92YXJpYWJs ZXNfbGVuID0gMDsKIAlTaXplCQlkc2FfbWluc2l6ZSA9IGRzYV9taW5pbXVtX3NpemUoKTsKIAlj aGFyCSAgICpxdWVyeV9zdHJpbmc7CiAJaW50CQkJcXVlcnlfbGVuOwpAQCAtNjYwLDYgKzY3MCwx MSBAQCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgRVN0YXRlICpl c3RhdGUsCiAJc2htX3RvY19lc3RpbWF0ZV9jaHVuaygmcGN4dC0+ZXN0aW1hdG9yLCBwYXJhbWxp c3RpbmZvX2xlbik7CiAJc2htX3RvY19lc3RpbWF0ZV9rZXlzKCZwY3h0LT5lc3RpbWF0b3IsIDEp OwogCisJLyogRXN0aW1hdGUgc3BhY2UgZm9yIHNlcmlhbGl6ZWQgc2Vzc2lvbiB2YXJpYWJsZXMu ICovCisJc2Vzc2lvbl92YXJpYWJsZXNfbGVuID0gRXN0aW1hdGVTZXNzaW9uVmFyaWFibGVzKGVz dGF0ZSk7CisJc2htX3RvY19lc3RpbWF0ZV9jaHVuaygmcGN4dC0+ZXN0aW1hdG9yLCBzZXNzaW9u X3ZhcmlhYmxlc19sZW4pOworCXNobV90b2NfZXN0aW1hdGVfa2V5cygmcGN4dC0+ZXN0aW1hdG9y LCAxKTsKKwogCS8qCiAJICogRXN0aW1hdGUgc3BhY2UgZm9yIEJ1ZmZlclVzYWdlLgogCSAqCkBA IC03NjEsNiArNzc2LDExIEBAIEV4ZWNJbml0UGFyYWxsZWxQbGFuKFBsYW5TdGF0ZSAqcGxhbnN0 YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAlzaG1fdG9jX2luc2VydChwY3h0LT50b2MsIFBBUkFMTEVM X0tFWV9QQVJBTUxJU1RJTkZPLCBwYXJhbWxpc3RpbmZvX3NwYWNlKTsKIAlTZXJpYWxpemVQYXJh bUxpc3QoZXN0YXRlLT5lc19wYXJhbV9saXN0X2luZm8sICZwYXJhbWxpc3RpbmZvX3NwYWNlKTsK IAorCS8qIFN0b3JlIHNlcmlhbGl6ZWQgc2Vzc2lvbiB2YXJpYWJsZXMuICovCisJc2Vzc2lvbl92 YXJpYWJsZXNfc3BhY2UgPSBzaG1fdG9jX2FsbG9jYXRlKHBjeHQtPnRvYywgc2Vzc2lvbl92YXJp YWJsZXNfbGVuKTsKKwlzaG1fdG9jX2luc2VydChwY3h0LT50b2MsIFBBUkFMTEVMX0tFWV9TRVNT SU9OX1ZBUklBQkxFUywgc2Vzc2lvbl92YXJpYWJsZXNfc3BhY2UpOworCVNlcmlhbGl6ZVNlc3Np b25WYXJpYWJsZXMoZXN0YXRlLCAmc2Vzc2lvbl92YXJpYWJsZXNfc3BhY2UpOworCiAJLyogQWxs b2NhdGUgc3BhY2UgZm9yIGVhY2ggd29ya2VyJ3MgQnVmZmVyVXNhZ2U7IG5vIG5lZWQgdG8gaW5p dGlhbGl6ZS4gKi8KIAlidWZ1c2FnZV9zcGFjZSA9IHNobV90b2NfYWxsb2NhdGUocGN4dC0+dG9j LAogCQkJCQkJCQkJICBtdWxfc2l6ZShzaXplb2YoQnVmZmVyVXNhZ2UpLCBwY3h0LT5ud29ya2Vy cykpOwpAQCAtMTQxMSw2ICsxNDMxLDcgQEAgUGFyYWxsZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQg KnNlZywgc2htX3RvYyAqdG9jKQogCVNoYXJlZEppdEluc3RydW1lbnRhdGlvbiAqaml0X2luc3Ry dW1lbnRhdGlvbjsKIAlpbnQJCQlpbnN0cnVtZW50X29wdGlvbnMgPSAwOwogCXZvaWQJICAgKmFy ZWFfc3BhY2U7CisJY2hhcgkgICAqc2Vzc2lvbnZhcmlhYmxlX3NwYWNlOwogCWRzYV9hcmVhICAg KmFyZWE7CiAJUGFyYWxsZWxXb3JrZXJDb250ZXh0IHB3Y3h0OwogCkBAIC0xNDM2LDYgKzE0NTcs MTQgQEAgUGFyYWxsZWxRdWVyeU1haW4oZHNtX3NlZ21lbnQgKnNlZywgc2htX3RvYyAqdG9jKQog CWFyZWFfc3BhY2UgPSBzaG1fdG9jX2xvb2t1cCh0b2MsIFBBUkFMTEVMX0tFWV9EU0EsIGZhbHNl KTsKIAlhcmVhID0gZHNhX2F0dGFjaF9pbl9wbGFjZShhcmVhX3NwYWNlLCBzZWcpOwogCisJLyog UmVjb25zdHJ1Y3Qgc2Vzc2lvbiB2YXJpYWJsZXMuICovCisJc2Vzc2lvbnZhcmlhYmxlX3NwYWNl ID0gc2htX3RvY19sb29rdXAodG9jLAorCQkJCQkJCQkJCSAgIFBBUkFMTEVMX0tFWV9TRVNTSU9O X1ZBUklBQkxFUywKKwkJCQkJCQkJCQkgICBmYWxzZSk7CisJcXVlcnlEZXNjLT5zZXNzaW9uX3Zh cmlhYmxlcyA9CisJCVJlc3RvcmVTZXNzaW9uVmFyaWFibGVzKCZzZXNzaW9udmFyaWFibGVfc3Bh Y2UsCisJCQkJCQkJCSZxdWVyeURlc2MtPm51bV9zZXNzaW9uX3ZhcmlhYmxlcyk7CisKIAkvKiBT dGFydCB1cCB0aGUgZXhlY3V0b3IgKi8KIAlxdWVyeURlc2MtPnBsYW5uZWRzdG10LT5qaXRGbGFn cyA9IGZwZXMtPmppdF9mbGFnczsKIAlFeGVjdXRvclN0YXJ0KHF1ZXJ5RGVzYywgZnBlcy0+ZWZs YWdzKTsKQEAgLTE1MDMsMyArMTUzMiwxMTcgQEAgUGFyYWxsZWxRdWVyeU1haW4oZHNtX3NlZ21l bnQgKnNlZywgc2htX3RvYyAqdG9jKQogCUZyZWVRdWVyeURlc2MocXVlcnlEZXNjKTsKIAlyZWNl aXZlci0+ckRlc3Ryb3kocmVjZWl2ZXIpOwogfQorCisvKgorICogRXN0aW1hdGUgdGhlIGFtb3Vu dCBvZiBzcGFjZSByZXF1aXJlZCB0byBzZXJpYWxpemUgYSBzZXNzaW9uIHZhcmlhYmxlLgorICov CitzdGF0aWMgU2l6ZQorRXN0aW1hdGVTZXNzaW9uVmFyaWFibGVzKEVTdGF0ZSAqZXN0YXRlKQor eworCWludAkJCWk7CisJU2l6ZQkJc3ogPSBzaXplb2YoaW50KTsKKworCWlmIChlc3RhdGUtPmVz X3Nlc3Npb25fdmFyaWFibGVzID09IE5VTEwpCisJCXJldHVybiBzejsKKworCWZvciAoaSA9IDA7 IGkgPCBlc3RhdGUtPmVzX251bV9zZXNzaW9uX3ZhcmlhYmxlczsgaSsrKQorCXsKKwkJU2Vzc2lv blZhcmlhYmxlVmFsdWUgKnN2YXJ2YWw7CisJCU9pZAkJCXR5cGVPaWQ7CisJCWludDE2CQl0eXBM ZW47CisJCWJvb2wJCXR5cEJ5VmFsOworCisJCXN2YXJ2YWwgPSAmZXN0YXRlLT5lc19zZXNzaW9u X3ZhcmlhYmxlc1tpXTsKKworCQl0eXBlT2lkID0gc3ZhcnZhbC0+dHlwaWQ7CisKKwkJc3ogPSBh ZGRfc2l6ZShzeiwgc2l6ZW9mKE9pZCkpOyAvKiBzcGFjZSBmb3IgdHlwZSBPSUQgKi8KKworCQkv KiBzcGFjZSBmb3IgZGF0dW0vaXNudWxsICovCisJCUFzc2VydChPaWRJc1ZhbGlkKHR5cGVPaWQp KTsKKwkJZ2V0X3R5cGxlbmJ5dmFsKHR5cGVPaWQsICZ0eXBMZW4sICZ0eXBCeVZhbCk7CisKKwkJ c3ogPSBhZGRfc2l6ZShzeiwKKwkJCQkJICBkYXR1bUVzdGltYXRlU3BhY2Uoc3ZhcnZhbC0+dmFs dWUsIHN2YXJ2YWwtPmlzbnVsbCwgdHlwQnlWYWwsIHR5cExlbikpOworCX0KKworCXJldHVybiBz ejsKK30KKworLyoKKyAqIFNlcmlhbGl6ZSBhIHNlc3Npb24gdmFyaWFibGVzIGJ1ZmZlciBpbnRv IGNhbGxlci1wcm92aWRlZCBzdG9yYWdlLgorICoKKyAqIFdlIHdyaXRlIHRoZSBudW1iZXIgb2Yg cGFyYW1ldGVycyBmaXJzdCwgYXMgYSA0LWJ5dGUgaW50ZWdlciwgYW5kIHRoZW4KKyAqIHdyaXRl IGRldGFpbHMgZm9yIGVhY2ggcGFyYW1ldGVyIGluIHR1cm4uICBUaGUgZGV0YWlscyBmb3IgZWFj aCBwYXJhbWV0ZXIKKyAqIGNvbnNpc3Qgb2YgYSA0LWJ5dGUgdHlwZSBPSUQsIGFuZCB0aGVuIHRo ZSBkYXR1bSBhcyBzZXJpYWxpemVkIGJ5CisgKiBkYXR1bVNlcmlhbGl6ZSgpLiAgVGhlIGNhbGxl ciBpcyByZXNwb25zaWJsZSBmb3IgZW5zdXJpbmcgdGhhdCB0aGVyZSBpcworICogZW5vdWdoIHN0 b3JhZ2UgdG8gc3RvcmUgdGhlIG51bWJlciBvZiBieXRlcyB0aGF0IHdpbGwgYmUgd3JpdHRlbjsg dXNlCisgKiBFc3RpbWF0ZVNlc3Npb25WYXJpYWJsZXMgdG8gZmluZCBvdXQgaG93IG1hbnkgd2ls bCBiZSBuZWVkZWQuCisgKiAqc3RhcnRfYWRkcmVzcyBpcyB1cGRhdGVkIHRvIHBvaW50IHRvIHRo ZSBieXRlIGltbWVkaWF0ZWx5IGZvbGxvd2luZyB0aG9zZQorICogd3JpdHRlbi4KKyAqCisgKiBS ZXN0b3JlU2Vzc2lvblZhcmlhYmxlcyBjYW4gYmUgdXNlZCB0byByZWNyZWF0ZSBhIHNlc3Npb24g dmFyaWFibGUgYnVmZmVyCisgKiBiYXNlZCBvbiB0aGUgc2VyaWFsaXplZCByZXByZXNlbnRhdGlv bjsKKyAqLworc3RhdGljIHZvaWQKK1NlcmlhbGl6ZVNlc3Npb25WYXJpYWJsZXMoRVN0YXRlICpl c3RhdGUsIGNoYXIgKipzdGFydF9hZGRyZXNzKQoreworCWludAkJCW5wYXJhbXM7CisJaW50CQkJ aTsKKworCS8qIFdyaXRlIG51bWJlciBvZiBwYXJhbWV0ZXJzLiAqLworCW5wYXJhbXMgPSBlc3Rh dGUtPmVzX251bV9zZXNzaW9uX3ZhcmlhYmxlczsKKwltZW1jcHkoKnN0YXJ0X2FkZHJlc3MsICZu cGFyYW1zLCBzaXplb2YoaW50KSk7CisJKnN0YXJ0X2FkZHJlc3MgKz0gc2l6ZW9mKGludCk7CisK KwkvKiBXcml0ZSBlYWNoIHBhcmFtZXRlciBpbiB0dXJuLiAqLworCWZvciAoaSA9IDA7IGkgPCBu cGFyYW1zOyBpKyspCisJeworCQlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqc3ZhcnZhbDsKKwkJT2lk CQkJdHlwZU9pZDsKKwkJaW50MTYJCXR5cExlbjsKKwkJYm9vbAkJdHlwQnlWYWw7CisKKwkJc3Zh cnZhbCA9ICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ldOworCQl0eXBlT2lkID0gc3Zh cnZhbC0+dHlwaWQ7CisKKwkJLyogV3JpdGUgdHlwZSBPSUQuICovCisJCW1lbWNweSgqc3RhcnRf YWRkcmVzcywgJnR5cGVPaWQsIHNpemVvZihPaWQpKTsKKwkJKnN0YXJ0X2FkZHJlc3MgKz0gc2l6 ZW9mKE9pZCk7CisKKwkJQXNzZXJ0KE9pZElzVmFsaWQodHlwZU9pZCkpOworCQlnZXRfdHlwbGVu Ynl2YWwodHlwZU9pZCwgJnR5cExlbiwgJnR5cEJ5VmFsKTsKKworCQlkYXR1bVNlcmlhbGl6ZShz dmFydmFsLT52YWx1ZSwgc3ZhcnZhbC0+aXNudWxsLCB0eXBCeVZhbCwgdHlwTGVuLAorCQkJCQkg ICBzdGFydF9hZGRyZXNzKTsKKwl9Cit9CisKK3N0YXRpYyBTZXNzaW9uVmFyaWFibGVWYWx1ZSAq CitSZXN0b3JlU2Vzc2lvblZhcmlhYmxlcyhjaGFyICoqc3RhcnRfYWRkcmVzcywgaW50ICpudW1f c2Vzc2lvbl92YXJpYWJsZXMpCit7CisJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKnNlc3Npb25fdmFy aWFibGVzOworCWludAkJCWk7CisJaW50CQkJbnBhcmFtczsKKworCW1lbWNweSgmbnBhcmFtcywg KnN0YXJ0X2FkZHJlc3MsIHNpemVvZihpbnQpKTsKKwkqc3RhcnRfYWRkcmVzcyArPSBzaXplb2Yo aW50KTsKKworCSpudW1fc2Vzc2lvbl92YXJpYWJsZXMgPSBucGFyYW1zOworCXNlc3Npb25fdmFy aWFibGVzID0gKFNlc3Npb25WYXJpYWJsZVZhbHVlICopCisJCXBhbGxvYyhucGFyYW1zICogc2l6 ZW9mKFNlc3Npb25WYXJpYWJsZVZhbHVlKSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnBhcmFtczsg aSsrKQorCXsKKwkJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKnN2YXJ2YWwgPSAmc2Vzc2lvbl92YXJp YWJsZXNbaV07CisKKwkJLyogUmVhZCB0eXBlIE9JRC4gKi8KKwkJbWVtY3B5KCZzdmFydmFsLT50 eXBpZCwgKnN0YXJ0X2FkZHJlc3MsIHNpemVvZihPaWQpKTsKKwkJKnN0YXJ0X2FkZHJlc3MgKz0g c2l6ZW9mKE9pZCk7CisKKwkJLyogUmVhZCBkYXR1bS9pc251bGwuICovCisJCXN2YXJ2YWwtPnZh bHVlID0gZGF0dW1SZXN0b3JlKHN0YXJ0X2FkZHJlc3MsICZzdmFydmFsLT5pc251bGwpOworCX0K KworCXJldHVybiBzZXNzaW9uX3ZhcmlhYmxlczsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2Ns YXVzZXMuYwppbmRleCA5OGU1ZDk3YzQxOS4uNWMzMWFlNTYzMDIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTkyMywyNSArOTIzLDE5IEBAIG1heF9wYXJhbGxlbF9oYXph cmRfd2Fsa2VyKE5vZGUgKm5vZGUsIG1heF9wYXJhbGxlbF9oYXphcmRfY29udGV4dCAqY29udGV4 dCkKIAogCS8qCiAJICogV2UgY2FuJ3QgcGFzcyBQYXJhbXMgdG8gd29ya2VycyBhdCB0aGUgbW9t ZW50IGVpdGhlciwgc28gdGhleSBhcmUgYWxzbwotCSAqIHBhcmFsbGVsLXJlc3RyaWN0ZWQsIHVu bGVzcyB0aGV5IGFyZSBQQVJBTV9FWFRFUk4gUGFyYW1zIG9yIGFyZQotCSAqIFBBUkFNX0VYRUMg UGFyYW1zIGxpc3RlZCBpbiBzYWZlX3BhcmFtX2lkcywgbWVhbmluZyB0aGV5IGNvdWxkIGJlCi0J ICogZWl0aGVyIGdlbmVyYXRlZCB3aXRoaW4gd29ya2VycyBvciBjYW4gYmUgY29tcHV0ZWQgYnkg dGhlIGxlYWRlciBhbmQKLQkgKiB0aGVuIHRoZWlyIHZhbHVlIGNhbiBiZSBwYXNzZWQgdG8gd29y a2Vycy4KKwkgKiBwYXJhbGxlbC1yZXN0cmljdGVkLCB1bmxlc3MgdGhleSBhcmUgUEFSQU1fRVhU RVJOIG9yIFBBUkFNX1ZBUklBQkxFCisJICogUGFyYW1zIG9yIGFyZSBQQVJBTV9FWEVDIFBhcmFt cyBsaXN0ZWQgaW4gc2FmZV9wYXJhbV9pZHMsIG1lYW5pbmcgdGhleQorCSAqIGNvdWxkIGJlIGVp dGhlciBnZW5lcmF0ZWQgd2l0aGluIHdvcmtlcnMgb3IgY2FuIGJlIGNvbXB1dGVkIGJ5IHRoZQor CSAqIGxlYWRlciBhbmQgdGhlbiB0aGVpciB2YWx1ZSBjYW4gYmUgcGFzc2VkIHRvIHdvcmtlcnMu CiAJICovCiAJZWxzZSBpZiAoSXNBKG5vZGUsIFBhcmFtKSkKIAl7CiAJCVBhcmFtCSAgICpwYXJh bSA9IChQYXJhbSAqKSBub2RlOwogCi0JCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX0VY VEVSTikKKwkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fRVhURVJOIHx8CisJCQlwYXJh bS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQogCQkJcmV0dXJuIGZhbHNlOwogCi0JCS8q IHdlIGRvbid0IHN1cHBvcnQgcGFzc2luZyBzZXNzaW9uIHZhcmlhYmxlcyB0byB3b3JrZXJzICov Ci0JCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQotCQl7Ci0JCQlpZiAo bWF4X3BhcmFsbGVsX2hhemFyZF90ZXN0KFBST1BBUkFMTEVMX1JFU1RSSUNURUQsIGNvbnRleHQp KQotCQkJCXJldHVybiB0cnVlOwotCQl9Ci0KIAkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFS QU1fRVhFQyB8fAogCQkJIWxpc3RfbWVtYmVyX2ludChjb250ZXh0LT5zYWZlX3BhcmFtX2lkcywg cGFyYW0tPnBhcmFtaWQpKQogCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3BxdWVy eS5jIGIvc3JjL2JhY2tlbmQvdGNvcC9wcXVlcnkuYwppbmRleCA2ZjIyNDk2MzA1YS4uNmY5YmQ3 YzhiMDUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMKKysrIGIvc3JjL2Jh Y2tlbmQvdGNvcC9wcXVlcnkuYwpAQCAtODYsNiArODYsOSBAQCBDcmVhdGVRdWVyeURlc2MoUGxh bm5lZFN0bXQgKnBsYW5uZWRzdG10LAogCXFkLT5xdWVyeUVudiA9IHF1ZXJ5RW52OwogCXFkLT5p bnN0cnVtZW50X29wdGlvbnMgPSBpbnN0cnVtZW50X29wdGlvbnM7CS8qIGluc3RydW1lbnRhdGlv biB3YW50ZWQ/ICovCiAKKwlxZC0+bnVtX3Nlc3Npb25fdmFyaWFibGVzID0gMDsKKwlxZC0+c2Vz c2lvbl92YXJpYWJsZXMgPSBOVUxMOworCiAJLyogbnVsbCB0aGVzZSBmaWVsZHMgdW50aWwgc2V0 IGJ5IEV4ZWN1dG9yU3RhcnQgKi8KIAlxZC0+dHVwRGVzYyA9IE5VTEw7CiAJcWQtPmVzdGF0ZSA9 IE5VTEw7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjZGVzYy5oIGIvc3Jj L2luY2x1ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaAppbmRleCA4NmRiM2RjOGQwZC4uNGUwZmEzZWE0 MGYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNkZXNjLmgKKysrIGIvc3Jj L2luY2x1ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaApAQCAtNTEsNiArNTEsMTAgQEAgdHlwZWRlZiBz dHJ1Y3QgUXVlcnlEZXNjCiAJLyogVGhpcyBmaWVsZCBpcyBzZXQgYnkgRXhlY3V0ZVBsYW4gKi8K IAlib29sCQlhbHJlYWR5X2V4ZWN1dGVkOwkvKiB0cnVlIGlmIHByZXZpb3VzbHkgZXhlY3V0ZWQg Ki8KIAorCS8qIHJlZmVyZW5jZSB0byBzZXNzaW9uIHZhcmlhYmxlcyBidWZmZXIgKi8KKwlpbnQJ CQludW1fc2Vzc2lvbl92YXJpYWJsZXM7CisJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKnNlc3Npb25f dmFyaWFibGVzOworCiAJLyogVGhpcyBpcyBhbHdheXMgc2V0IE5VTEwgYnkgdGhlIGNvcmUgc3lz dGVtLCBidXQgcGx1Z2lucyBjYW4gY2hhbmdlIGl0ICovCiAJc3RydWN0IEluc3RydW1lbnRhdGlv biAqdG90YWx0aW1lOwkvKiB0b3RhbCB0aW1lIHNwZW50IGluIEV4ZWN1dG9yUnVuICovCiB9IFF1 ZXJ5RGVzYzsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQKaW5kZXggMDk0ZDJmMGM0YjguLmE2NTMxMWU5MzUyIDEwMDY0NAotLS0gYS9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTI3NiwxMiArMTI3Niwx NCBAQCBTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87CiAK IC0tIHBhcmFsbGVsIGV4ZWN1dGlvbiBpcyBub3Qgc3VwcG9ydGVkIHlldAogRVhQTEFJTiAoQ09T VFMgT0ZGKSBTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87 Ci0gICAgICAgICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEFn Z3JlZ2F0ZQotICAgLT4gIFNlcSBTY2FuIG9uIHN2YXJfdGVzdAotICAgICAgICAgRmlsdGVyOiAo KGEgJSAxMCkgPSB6ZXJvKQotKDMgcm93cykKKyAgIC0+ICBHYXRoZXIKKyAgICAgICAgIFdvcmtl cnMgUGxhbm5lZDogMgorICAgICAgICAgLT4gIFBhcmFsbGVsIFNlcSBTY2FuIG9uIHN2YXJfdGVz dAorICAgICAgICAgICAgICAgRmlsdGVyOiAoKGEgJSAxMCkgPSB6ZXJvKQorKDUgcm93cykKIAog TEVUIHplcm8gPSAoU0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0KTsKIC0tIHJlc3VsdCBz aG91bGQgYmUgMTAwMAotLSAKMi40Ny4xCgo= --000000000000f297a7062b2456dc Content-Type: text/x-patch; charset="US-ASCII"; name="v20250107-0016-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Disposition: attachment; filename="v20250107-0016-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5mz6bhs6 RnJvbSBkZWEzMTZiOTQ0MzVhNTA4ZGNlNWQxNmQzYTMwN2RiMWEyZjdkMGU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowNzowMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTYvMjJdIGFsbG93IHJlYWQgYW4gdmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBkaXJlY3RseSBm cm9tCiBleHByZXNzaW9uIGV4ZWN1dG9yCgpUaGUgZXhwcmVzc2lvbiBleGVjdXRvciBjYW4gYmUg Y2FsbGVkIGRpcmVjdGx5IChub3QgaW5zaWRlIHF1ZXJ5IGV4ZWN1dG9yKQp3aGVuIGV4cHJlc3Np b24gaXMgZXZhbHVhdGVkIGFzIHNpbXBsZSBleHByZXNzaW9uIGluIHBscGdzcWwgb3Igd2hlbiBl eHByZXNzaW9uCmlzIGFuIGFyZ3VtZW50IG9mIENBTEwgb3IgRVhFQ1VURSBzdGF0ZW1lbnRzLiBG b3IgdGhlc2UgY2FzZXMgd2UgbmVlZCB0byBhbGxvdyBkaXJlY3QKYWNjZXNzIHRvIGNvbnRlbnQg b2Ygc2Vzc2lvbiB2YXJpYWJsZXMgZnJvbSBleGVjdXRvci4gV2UgY2FuIGRvIGl0LCBiZWNhdXNl CndlIGtub3cgc28gdGhlIGV4cHJlc3Npb24gaXMgbm90IGV2YWx1YXRlZCB1bmRlciBxdWVyeSBh bmQgY2Fubm90IGJlCmV2YWx1YXRlZCBpbnNpZGUgcGFyYWxsZWwgd29ya2VyLgoKVGhpcyBwYXRj aCBlbmFibGVzIHNlc3Npb24gdmFyaWFibGVzIGZvciBzaW1wbGUgZXhwcmVzc2lvbiBldmFsdWF0 aW9uLgoKVGhpcyBwYXRjaCBlbmFibGVzIHVzYWdlIHNlc3Npb24gdmFyaWFibGVzIGluIGFyZ3Vt ZW50cyBvZiBDQUxMIHN0bXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jICAg ICAgICAgICAgICAgIHwgMTAgLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAg ICAgICAgICAgICB8IDkzICsrKysrKysrKysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHBySW50ZXJwLmMgICAgICAgICB8IDE2ICsrKysKIHNyYy9iYWNrZW5kL2ppdC9sbHZt L2xsdm1qaXRfZXhwci5jICAgICAgICAgICB8ICA2ICsrCiBzcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jICAgICAgICAgICAgICAgICAgfCAxMCAtLQogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhl Y0V4cHIuaCAgICAgICAgICAgICAgIHwgMTIgKystCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxf c2Vzc2lvbl92YXJpYWJsZS5vdXQgfCAgMyArLQogc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMu YyAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzLm91dCAgICB8IDQxICsrKystLS0tCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNz aW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAxMiArLS0KIDEwIGZpbGVzIGNoYW5nZWQsIDEzMyBpbnNl cnRpb25zKCspLCA3MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9wcmVwYXJlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKaW5kZXggNGVh MmJmZWE0ZWEuLjcwZjAzMDk5OTk2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9w cmVwYXJlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCkBAIC0zMzgsMTYg KzMzOCw2IEBAIEV2YWx1YXRlUGFyYW1zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUHJlcGFyZWRTdGF0 ZW1lbnQgKnBzdG10LCBMaXN0ICpwYXJhbXMsCiAJCWkrKzsKIAl9CiAKLQkvKgotCSAqIFRoZSBh cmd1bWVudHMgb2YgRVhFQ1VURSBhcmUgZXZhbHVhdGVkIGJ5IGEgZGlyZWN0IGV4cHJlc3Npb24K LQkgKiBleGVjdXRvciBjYWxsLiAgVGhpcyBtb2RlIGRvZXNuJ3Qgc3VwcG9ydCBzZXNzaW9uIHZh cmlhYmxlcyB5ZXQuCi0JICogSXQgd2lsbCBiZSBlbmFibGVkIGxhdGVyLgotCSAqLwotCWlmIChw c3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcykKLQkJZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJy Y29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJIGVycm1zZygic2Vzc2lv biB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudCIpKSk7Ci0KIAkvKiBQcmVw YXJlIHRoZSBleHByZXNzaW9ucyBmb3IgZXhlY3V0aW9uICovCiAJZXhwcnN0YXRlcyA9IEV4ZWNQ cmVwYXJlRXhwckxpc3QocGFyYW1zLCBlc3RhdGUpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpp bmRleCAyZmZiNTZhZTQ1MS4uYmI1MGZlMjZkMzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpA QCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0YWNjZXNzLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisj aW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVjRXhwci5oIgogI2luY2x1ZGUg ImV4ZWN1dG9yL25vZGVTdWJwbGFuLmgiCkBAIC0xMDA4LDI1ICsxMDA5LDc5IEBAIEV4ZWNJbml0 RXhwclJlYyhFeHByICpub2RlLCBFeHByU3RhdGUgKnN0YXRlLAogCQkJCQkJCQllc19udW1fc2Vz c2lvbl92YXJpYWJsZXMgPSBzdGF0ZS0+cGFyZW50LT5zdGF0ZS0+ZXNfbnVtX3Nlc3Npb25fdmFy aWFibGVzOwogCQkJCQkJCX0KIAotCQkJCQkJCUFzc2VydChlc19zZXNzaW9uX3ZhcmlhYmxlcyk7 Ci0KLQkJCQkJCQkvKiBwYXJhbWV0ZXIgc2FuaXR5IGNoZWNrcyAqLwotCQkJCQkJCWlmIChwYXJh bS0+cGFyYW1pZCA+PSBlc19udW1fc2Vzc2lvbl92YXJpYWJsZXMpCi0JCQkJCQkJCWVsb2coRVJS T1IsICJwYXJhbWlkIG9mIFBBUkFNX1ZBUklBQkxFIHBhcmFtIGlzIG91dCBvZiByYW5nZSIpOwot Ci0JCQkJCQkJdmFyID0gJmVzX3Nlc3Npb25fdmFyaWFibGVzW3BhcmFtLT5wYXJhbWlkXTsKLQot CQkJCQkJCWlmICh2YXItPnR5cGlkICE9IHBhcmFtLT5wYXJhbXR5cGUpCi0JCQkJCQkJCWVsb2co RVJST1IsICJ0eXBlIG9mIGJ1ZmZlcmVkIHZhbHVlIGlzIGRpZmZlcmVudCB0aGFuIFBBUkFNX1ZB UklBQkxFIHR5cGUiKTsKLQotCQkJCQkJCS8qCi0JCQkJCQkJICogSW4gdGhpcyBjYXNlLCBwYXNz IHRoZSB2YWx1ZSBsaWtlIGEKLQkJCQkJCQkgKiBjb25zdGFudC4KLQkJCQkJCQkgKi8KLQkJCQkJ CQlzY3JhdGNoLm9wY29kZSA9IEVFT1BfQ09OU1Q7Ci0JCQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFs LnZhbHVlID0gdmFyLT52YWx1ZTsKLQkJCQkJCQlzY3JhdGNoLmQuY29uc3R2YWwuaXNudWxsID0g dmFyLT5pc251bGw7Ci0JCQkJCQkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0Y2gpOwor CQkJCQkJCWlmIChlc19zZXNzaW9uX3ZhcmlhYmxlcykKKwkJCQkJCQl7CisJCQkJCQkJCS8qCisJ CQkJCQkJCSAqIFRoaXMgcGF0aCBpcyB1c2VkIHdoZW4gZXhwcmVzc2lvbiBpcworCQkJCQkJCQkg KiBldmFsdWF0ZWQgaW5zaWRlIHF1ZXJ5IGV2YWx1YXRpb24uIEZvcgorCQkJCQkJCQkgKiBlbnN1 cmluZyBvZiBpbW11dGFiaWxpdHkgb2Ygc2Vzc2lvbiB2YXJpYWJsZQorCQkJCQkJCQkgKiBpbnNp ZGUgcXVlcnkgd2UgdXNlIHNwZWNpYWwgYnVmZmVyIHdpdGggY29weQorCQkJCQkJCQkgKiBvZiB1 c2VkIHNlc3Npb24gdmFyaWFibGVzLiBUaGlzIG1ldGhvZCBoZWxwcworCQkJCQkJCQkgKiB3aXRo IHBhcmFsbGVsIGV4ZWN1dGlvbiB0b28uCisJCQkJCQkJCSAqLworCisJCQkJCQkJCS8qIHBhcmFt ZXRlciBzYW5pdHkgY2hlY2tzICovCisJCQkJCQkJCWlmIChwYXJhbS0+cGFyYW1pZCA+PSBlc19u dW1fc2Vzc2lvbl92YXJpYWJsZXMpCisJCQkJCQkJCQllbG9nKEVSUk9SLCAicGFyYW1pZCBvZiBQ QVJBTV9WQVJJQUJMRSBwYXJhbSBpcyBvdXQgb2YgcmFuZ2UiKTsKKworCQkJCQkJCQl2YXIgPSAm ZXNfc2Vzc2lvbl92YXJpYWJsZXNbcGFyYW0tPnBhcmFtaWRdOworCisJCQkJCQkJCWlmICh2YXIt PnR5cGlkICE9IHBhcmFtLT5wYXJhbXR5cGUpCisJCQkJCQkJCQllbG9nKEVSUk9SLCAidHlwZSBv ZiBidWZmZXJlZCB2YWx1ZSBpcyBkaWZmZXJlbnQgdGhhbiBQQVJBTV9WQVJJQUJMRSB0eXBlIik7 CisKKwkJCQkJCQkJLyoKKwkJCQkJCQkJICogSW4gdGhpcyBjYXNlLCBwYXNzIHRoZSB2YWx1ZSBs aWtlIGEKKwkJCQkJCQkJICogY29uc3RhbnQuCisJCQkJCQkJCSAqLworCQkJCQkJCQlzY3JhdGNo Lm9wY29kZSA9IEVFT1BfQ09OU1Q7CisJCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZhbC52YWx1ZSA9 IHZhci0+dmFsdWU7CisJCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZhbC5pc251bGwgPSB2YXItPmlz bnVsbDsKKwkJCQkJCQkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgJnNjcmF0Y2gpOworCQkJCQkJ CX0KKwkJCQkJCQllbHNlCisJCQkJCQkJeworCQkJCQkJCQlPaWQJCQl2YXJpZCA9IHBhcmFtLT5w YXJhbXZhcmlkOworCQkJCQkJCQlPaWQJCQl2YXJ0eXBlID0gcGFyYW0tPnBhcmFtdHlwZTsKKwor CQkJCQkJCQlBc3NlcnQoIUlzUGFyYWxsZWxXb3JrZXIoKSk7CisKKwkJCQkJCQkJLyoKKwkJCQkJ CQkJICogSW4gc29tZSBjYXNlcyAocGxwZ3NxbCdzIHNpbXBsZSBleHByZXNzaW9uCisJCQkJCQkJ CSAqIGV2YWx1YXRpb24gb3IgZXZhbHVhdGlvbiBvZiBDQUxMIGFyZ3VtZW50cyksCisJCQkJCQkJ CSAqIHRoZSBleHByZXNzaW9uIGV4ZWN1dG9yIGlzIGNhbGxlZCBkaXJlY3RseS4KKwkJCQkJCQkJ ICogV2UgY2FuIGFsbG93IGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbgorCQkJCQkJCQkgKiB2YXJp YWJsZXMgKGNvcHkgb25seSksIGJlY2F1c2Ugd2Uga25vdywgc28KKwkJCQkJCQkJICogb3V0c2lk ZSBpcyBub3QgYW55IHF1ZXJ5IChhbmQgZXhwcmVzc2lvbgorCQkJCQkJCQkgKiBjYW5ub3QgYmUg ZXhlY3V0ZWQgcGFyYWxsZWwpLgorCQkJCQkJCQkgKgorCQkJCQkJCQkgKiBJbiB0aGlzIGNhc2Ug d2Ugc2hvdWxkIHRvIGRvIGFjbGNoZWNrLAorCQkJCQkJCQkgKiBiZWNhdXNlIHVzdWFsIGFjbGNo ZWNrIGZyb20KKwkJCQkJCQkJICogc3RhbmRhcmRfRXhlY3V0b3JTdGFydCBpcyBub3QgZXhlY3V0 ZWQgaW4KKwkJCQkJCQkJICogdGhpcyBjYXNlLiBGb3J0dW5hdGVseSBpdCBpcyBqdXN0IG9uY2Ug cGVyCisJCQkJCQkJCSAqIHRyYW5zYWN0aW9uLgorCQkJCQkJCQkgKgorCQkJCQkJCQkgKiBEb24n dCBkbyBwZXJtaXNzaW9uIGNoZWNrLCB3aGVuIHZhcmlhYmxlIGlzCisJCQkJCQkJCSAqIHVzZWQg bGlrZSBiYXNlIG5vZGUgZm9yIGFzc2lnbm1lbnQgaW5kaXJlY3Rpb24uCisJCQkJCQkJCSAqLwor CQkJCQkJCQlpZiAoIXBhcmFtLT5wYXJhbWJhc2Vub2RlKQorCQkJCQkJCQl7CisJCQkJCQkJCQlB Y2xSZXN1bHQJYWNscmVzdWx0OworCisJCQkJCQkJCQlhY2xyZXN1bHQgPSBvYmplY3RfYWNsY2hl Y2soCisJCQkJCQkJCQkJCQkJICBWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJ CQkJCSAgR2V0VXNlcklkKCksIEFDTF9TRUxFQ1QpOworCisJCQkJCQkJCQlpZiAoYWNscmVzdWx0 ICE9IEFDTENIRUNLX09LKQorCQkJCQkJCQkJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwKKwkJ CQkJCQkJCQkJCQkgICBPQkpFQ1RfVkFSSUFCTEUsCisJCQkJCQkJCQkJCQkJICAgZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOworCQkJCQkJCQl9CisKKwkJCQkJCQkJc2NyYXRjaC5v cGNvZGUgPSBFRU9QX1BBUkFNX1ZBUklBQkxFOworCQkJCQkJCQlzY3JhdGNoLmQudnBhcmFtLnZh cmlkID0gdmFyaWQ7CisJCQkJCQkJCXNjcmF0Y2guZC52cGFyYW0udmFydHlwZSA9IHZhcnR5cGU7 CisJCQkJCQkJCUV4cHJFdmFsUHVzaFN0ZXAoc3RhdGUsICZzY3JhdGNoKTsKKwkJCQkJCQl9CiAJ CQkJCQl9CiAJCQkJCQlicmVhazsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0V4cHJJbnRlcnAuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMK aW5kZXggYjJjMDBhMGExYjEuLmMxMjg3ZWZiNGIxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwckludGVycC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNF eHBySW50ZXJwLmMKQEAgLTU5LDYgKzU5LDcgQEAKICNpbmNsdWRlICJhY2Nlc3MvaGVhcHRvYXN0 LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2Vx dWVuY2UuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVk ZSAiZXhlY3V0b3IvZXhlY0V4cHIuaCIKICNpbmNsdWRlICJleGVjdXRvci9ub2RlU3VicGxhbi5o IgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKQEAgLTUxMiw2ICs1MTMsNyBAQCBFeGVjSW50ZXJwRXhw cihFeHByU3RhdGUgKnN0YXRlLCBFeHByQ29udGV4dCAqZWNvbnRleHQsIGJvb2wgKmlzbnVsbCkK IAkJJiZDQVNFX0VFT1BfUEFSQU1fRVhFQywKIAkJJiZDQVNFX0VFT1BfUEFSQU1fRVhURVJOLAog CQkmJkNBU0VfRUVPUF9QQVJBTV9DQUxMQkFDSywKKwkJJiZDQVNFX0VFT1BfUEFSQU1fVkFSSUFC TEUsCiAJCSYmQ0FTRV9FRU9QX1BBUkFNX1NFVCwKIAkJJiZDQVNFX0VFT1BfQ0FTRV9URVNUVkFM LAogCQkmJkNBU0VfRUVPUF9NQUtFX1JFQURPTkxZLApAQCAtMTE2MSw2ICsxMTYzLDIwIEBAIEV4 ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwgYm9v bCAqaXNudWxsKQogCQkJRUVPX05FWFQoKTsKIAkJfQogCisJCUVFT19DQVNFKEVFT1BfUEFSQU1f VkFSSUFCTEUpCisJCXsKKwkJCS8qCisJCQkgKiBEaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24gdmFy aWFibGUgKHdpdGhvdXQgYnVmZmVyaW5nKS4gQmVjYXVzZQorCQkJICogcmV0dXJuZWQgdmFsdWUg Y2FuIGJlIHVzZWQgKHdpdGhvdXQgYW4gYXNzaWduZW1lbnQpIGFmdGVyIHRoZQorCQkJICogcmVm ZXJlbmNlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyB1cGRhdGVkLCB3ZSBoYXZlIHRvIHVzZSBhbiBj b3B5CisJCQkgKiBvZiBzdG9yZWQgdmFsdWUgZXZlcnkgdGltZS4KKwkJCSAqLworCQkJKm9wLT5y ZXN2YWx1ZSA9IEdldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlQ2hlY2sob3AtPmQudnBhcmFtLnZh cmlkLAorCQkJCQkJCQkJCQkJCQkJb3AtPnJlc251bGwsCisJCQkJCQkJCQkJCQkJCQlvcC0+ZC52 cGFyYW0udmFydHlwZSk7CisJCQlFRU9fTkVYVCgpOworCQl9CisKIAkJRUVPX0NBU0UoRUVPUF9Q QVJBTV9TRVQpCiAJCXsKIAkJCS8qIG91dCBvZiBsaW5lLCB1bmxpa2VseSB0byBtYXR0ZXIgcGVy Zm9ybWFuY2Utd2lzZSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWpp dF9leHByLmMgYi9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYwppbmRleCA2YzQ5 MTVlMzczMS4uMGI3M2M1ZjM1NDUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xs dm1qaXRfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jCkBA IC0xMTM2LDYgKzExMzYsMTIgQEAgbGx2bV9jb21waWxlX2V4cHIoRXhwclN0YXRlICpzdGF0ZSkK IAkJCQkJYnJlYWs7CiAJCQkJfQogCisJCQljYXNlIEVFT1BfUEFSQU1fVkFSSUFCTEU6CisJCQkJ YnVpbGRfRXZhbFhGdW5jKGIsIG1vZCwgIkV4ZWNFdmFsUGFyYW1WYXJpYWJsZSIsCisJCQkJCQkJ CXZfc3RhdGUsIG9wLCB2X2Vjb250ZXh0KTsKKwkJCQlMTFZNQnVpbGRCcihiLCBvcGJsb2Nrc1tv cG5vICsgMV0pOworCQkJCWJyZWFrOworCiAJCQljYXNlIEVFT1BfUEFSQU1fU0VUOgogCQkJCWJ1 aWxkX0V2YWxYRnVuYyhiLCBtb2QsICJFeGVjRXZhbFBhcmFtU2V0IiwKIAkJCQkJCQkJdl9zdGF0 ZSwgb3AsIHZfZWNvbnRleHQpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5 emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggYTAzODYwZDRiODguLmI4 ZGYxNmU0ZjA5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKQEAgLTM0NjksMTYgKzM0NjksNiBAQCB0cmFu c2Zvcm1DYWxsU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIENhbGxTdG10ICpzdG10KQogCQkJCQkJ CSB0cnVlLAogCQkJCQkJCSBzdG10LT5mdW5jY2FsbC0+bG9jYXRpb24pOwogCi0JLyoKLQkgKiBU aGUgYXJndW1lbnRzIG9mIENBTEwgc3RhdGVtZW50IGFyZSBldmFsdWF0ZWQgYnkgYSBkaXJlY3Qg ZXhwcmVzc2lvbgotCSAqIGV4ZWN1dG9yIGNhbGwuICBUaGlzIHBhdGggaXMgdW5zdXBwb3J0ZWQg eWV0LCBzbyBibG9jayBpdC4gIEl0IHdpbGwgYmUKLQkgKiBlbmFibGVkIGxhdGVyLgotCSAqLwot CWlmIChwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcykKLQkJZXJlcG9ydChFUlJPUiwKLQkJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJIGVycm1zZygi c2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudCIpKSk7Ci0KIAlh c3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgbm9kZSk7CiAKIAlmZXhwciA9IGNhc3ROb2Rl KEZ1bmNFeHByLCBub2RlKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNF eHByLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oCmluZGV4IDgwMTllNTQ5MGU5 Li40MzE0NTdlZTdiYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIu aAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oCkBAIC0xNTYsMTAgKzE1Niwx MSBAQCB0eXBlZGVmIGVudW0gRXhwckV2YWxPcAogCUVFT1BfQk9PTFRFU1RfSVNfRkFMU0UsCiAJ RUVPUF9CT09MVEVTVF9JU19OT1RfRkFMU0UsCiAKLQkvKiBldmFsdWF0ZSBQQVJBTV9FWEVDL0VY VEVSTiBwYXJhbWV0ZXJzICovCisJLyogZXZhbHVhdGUgUEFSQU1fRVhFQy9FWFRFUk4vVkFSSUFC TEUgcGFyYW1ldGVycyAqLwogCUVFT1BfUEFSQU1fRVhFQywKIAlFRU9QX1BBUkFNX0VYVEVSTiwK IAlFRU9QX1BBUkFNX0NBTExCQUNLLAorCUVFT1BfUEFSQU1fVkFSSUFCTEUsCiAJLyogc2V0IFBB UkFNX0VYRUMgdmFsdWUgKi8KIAlFRU9QX1BBUkFNX1NFVCwKIApAQCAtNDEwLDYgKzQxMSwxMyBA QCB0eXBlZGVmIHN0cnVjdCBFeHByRXZhbFN0ZXAKIAkJCU9pZAkJCXBhcmFtdHlwZTsJLyogT0lE IG9mIHBhcmFtZXRlcidzIGRhdGF0eXBlICovCiAJCX0JCQljcGFyYW07CiAKKwkJLyogZm9yIEVF T1BfUEFSQU1fVkFSSUFCTEUgKi8KKwkJc3RydWN0CisJCXsKKwkJCU9pZAkJCXZhcmlkOwkJLyog T0lEIG9mIGFzc2lnbmVkIHZhcmlhYmxlICovCisJCQlPaWQJCQl2YXJ0eXBlOwkvKiBPSUQgb2Yg cGFyYW1ldGVyJ3MgZGF0YXR5cGUgKi8KKwkJfQkJCXZwYXJhbTsKKwogCQkvKiBmb3IgRUVPUF9D QVNFX1RFU1RWQUwvRE9NQUlOX1RFU1RWQUwgKi8KIAkJc3RydWN0CiAJCXsKQEAgLTgzMiw2ICs4 NDAsOCBAQCBleHRlcm4gdm9pZCBFeGVjRXZhbFBhcmFtU2V0KEV4cHJTdGF0ZSAqc3RhdGUsIEV4 cHJFdmFsU3RlcCAqb3AsCiAJCQkJCQkJIEV4cHJDb250ZXh0ICplY29udGV4dCk7CiBleHRlcm4g dm9pZCBFeGVjRXZhbFBhcmFtRXh0ZXJuKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAq b3AsCiAJCQkJCQkJCUV4cHJDb250ZXh0ICplY29udGV4dCk7CitleHRlcm4gdm9pZCBFeGVjRXZh bFBhcmFtVmFyaWFibGUoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKKwkJCQkJ CQkJICBFeHByQ29udGV4dCAqZWNvbnRleHQpOwogZXh0ZXJuIHZvaWQgRXhlY0V2YWxDb2VyY2VW aWFJT1NhZmUoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCk7CiBleHRlcm4gdm9p ZCBFeGVjRXZhbFNRTFZhbHVlRnVuY3Rpb24oRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVw ICpvcCk7CiBleHRlcm4gdm9pZCBFeGVjRXZhbEN1cnJlbnRPZkV4cHIoRXhwclN0YXRlICpzdGF0 ZSwgRXhwckV2YWxTdGVwICpvcCk7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhw ZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9l eHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0CmluZGV4IGE2NTIzZjdhZmUyLi5l Y2FjNjRmY2ZiNCAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdz cWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVk L3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKQEAgLTIxMSw4ICsyMTEsNyBAQCBTRVQgUk9M RSBUTyByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CiAtLSBzaG91bGQgZmFpbAogU0VMRUNUIHZhcl9y ZWFkX2Z1bmMoKTsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFi bGUgcGxwZ3NxbF9zdl92YXIxCi1DT05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAicGxwZ3Nx bF9zdl92YXIxIgotUEwvcGdTUUwgZnVuY3Rpb24gdmFyX3JlYWRfZnVuYygpIGxpbmUgMyBhdCBS QUlTRQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHZhcl9yZWFkX2Z1bmMoKSBsaW5lIDMg YXQgUkFJU0UKIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9v d25lcl9yb2xlOwogR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBUTyBy ZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9w bF9leGVjLmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IDNmOTAxY2Q4ZmNk Li5lNWIwZGEwNGUzYyAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwor KysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCkBAIC04MDk5LDggKzgwOTksNyBAQCBl eGVjX2lzX3NpbXBsZV9xdWVyeShQTHBnU1FMX2V4cHIgKmV4cHIpCiAJCXF1ZXJ5LT5zb3J0Q2xh dXNlIHx8CiAJCXF1ZXJ5LT5saW1pdE9mZnNldCB8fAogCQlxdWVyeS0+bGltaXRDb3VudCB8fAot CQlxdWVyeS0+c2V0T3BlcmF0aW9ucyB8fAotCQlxdWVyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcykK KwkJcXVlcnktPnNldE9wZXJhdGlvbnMpCiAJCXJldHVybiBmYWxzZTsKIAogCS8qCmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDhmNDFh MTMwYmI4Li4wOTRkMmYwYzRiOCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTQ4Myw4ICs0ODMsNyBAQCBFUlJPUjogIHBlcm1pc3Np b24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKIENPTlRFWFQ6ICBTUUwgZnVuY3Rp b24gInNxbGZ4IiBzdGF0ZW1lbnQgMQogU0VMRUNUIHBscGdzcWxmeCgyMCk7CiBFUlJPUjogIHBl cm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKLUNPTlRFWFQ6ICBQTC9w Z1NRTCBleHByZXNzaW9uICIkMSArIHZhcjEiCi1QTC9wZ1NRTCBmdW5jdGlvbiBwbHBnc3FsZngo aW50ZWdlcikgbGluZSAxIGF0IFJFVFVSTgorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHBs cGdzcWxmeChpbnRlZ2VyKSBsaW5lIDEgYXQgUkVUVVJOCiAtLSBzaG91bGQgYmUgb2sKIFNFTEVD VCBzcWxmeF9zZCgyMCk7CiAgc3FsZnhfc2QgCkBAIC03ODAsMjcgKzc3OSwyOCBAQCAkJDsKIE5P VElDRTogIHJlc3VsdCBhcnJheTogezEsMiwzLDQsNSw2LDcsOCw5LDEwfQogRFJPUCBWQVJJQUJM RSB2YXIxOwogRFJPUCBWQVJJQUJMRSB2YXIyOwotLS0gQ0FMTCBzdGF0ZW1lbnQgaXMgbm90IHN1 cHBvcnRlZCB5ZXQKLS0tIHJlcXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJs ZSBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IKKy0tIENBTEwgc3RhdGVtZW50IGlzIHN1cHBvcnRl ZAogQ1JFQVRFIFZBUklBQkxFIHYgaW50OworTEVUIHYgPSAxOwogQ1JFQVRFIFBST0NFRFVSRSBw KGFyZyBpbnQpIEFTICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIGFyZzsgRU5EICQkIExBTkdV QUdFIHBscGdzcWw7Ci0tLSBzaG91bGQgbm90IGNyYXNoIChidXQgaXMgbm90IHN1cHBvcnRlZCB5 ZXQpCistLSBzaG91bGQgdG8gd29yawogQ0FMTCBwKHYpOwotRVJST1I6ICBzZXNzaW9uIHZhcmlh YmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50CitOT1RJQ0U6ICAxCiBETyAkJCBCRUdJ TiBDQUxMIHAodik7IEVORCAkJDsKLUVSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUg dXNlZCBhcyBhbiBhcmd1bWVudAotQ09OVEVYVDogIFNRTCBzdGF0ZW1lbnQgIkNBTEwgcCh2KSIK LVBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBDQUxMCitOT1RJ Q0U6ICAxCiBEUk9QIFBST0NFRFVSRSBwKGludCk7CiBEUk9QIFZBUklBQkxFIHY7Ci0tLSBFWEVD VVRFIHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVkIHlldAotLS0gcmVxdWlyZXMgZGlyZWN0IGFj Y2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorLS0gRVhF Q1VURSBzdGF0ZW1lbnQKIENSRUFURSBWQVJJQUJMRSB2IGludDsKIExFVCB2ID0gMjA7CiBQUkVQ QVJFIHB0ZXN0KGludCkgQVMgU0VMRUNUICQxOwotLS0gc2hvdWxkIGZhaWwKKy0tIHNob3VsZCBi ZSBvawogRVhFQ1VURSBwdGVzdCh2KTsKLUVSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3Qg YmUgdXNlZCBhcyBhbiBhcmd1bWVudAorID9jb2x1bW4/IAorLS0tLS0tLS0tLQorICAgICAgIDIw CisoMSByb3cpCisKIERFQUxMT0NBVEUgcHRlc3Q7CiBEUk9QIFZBUklBQkxFIHY7CiAtLSB0ZXN0 IHNlYXJjaCBwYXRoCkBAIC0xMTE5LDEyICsxMTE5LDEwIEBAIExFVCB2YXIxLmEgPSB2YXIxLmEg KyAxMDsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFy MQogRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMTsgRU5EICQkOwogRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCi1DT05URVhUOiAgUEwv cGdTUUwgZXhwcmVzc2lvbiAidmFyMSIKLVBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Js b2NrIGxpbmUgMSBhdCBSQUlTRQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9j b2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQogRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywg dmFyMS5hOyBFTkQgJCQ7CiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZh cmlhYmxlIHZhcjEKLUNPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9uICJ2YXIxLmEiCi1QTC9w Z1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgUkFJU0UKK0NPTlRFWFQ6 ICBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgUkFJU0UKIERP ICQkIEJFR0lOIExFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsgRU5EICQkOwogRVJST1I6ICBwZXJt aXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBDT05URVhUOiAgU1FMIHN0 YXRlbWVudCAiTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwIgpAQCAtMTE2MywxMiArMTE2MSwxMCBA QCBMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7CiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZv ciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKIERPICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIHZh cjE7IEVORCAkJDsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFi bGUgdmFyMQotQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gInZhcjEiCi1QTC9wZ1NRTCBm dW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgUkFJU0UKK0NPTlRFWFQ6ICBQTC9w Z1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgUkFJU0UKIERPICQkIEJF R0lOIFJBSVNFIE5PVElDRSAnJScsIHZhcjEuYTsgRU5EICQkOwogRVJST1I6ICBwZXJtaXNzaW9u IGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCi1DT05URVhUOiAgUEwvcGdTUUwgZXhw cmVzc2lvbiAidmFyMS5hIgotUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGlu ZSAxIGF0IFJBSVNFCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxv Y2sgbGluZSAxIGF0IFJBSVNFCiBETyAkJCBCRUdJTiBMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7 IEVORCAkJDsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUg dmFyMQogQ09OVEVYVDogIFNRTCBzdGF0ZW1lbnQgIkxFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMCIK QEAgLTIwNzIsOCArMjA2OCw3IEBAICQkOwogRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJs aWMudmFyMSIgaXMgbm90IHVzZWQgaW5zaWRlIHZhcmlhYmxlIGZlbmNlCiBERVRBSUw6ICBUaGVy ZSBpcyBhIHJpc2sgb2YgdW53YW50ZWQgdXNhZ2Ugb2Ygc2Vzc2lvbiB2YXJpYWJsZS4KIEhJTlQ6 ICBVc2UgdmFyaWFibGUgZmVuY2UgIlZBUklBQkxFKHZhcm5hbWUpIGZvciBhY2Nlc3MgdG8gdmFy aWFibGUiLgotQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gInZhcjEiCi1QTC9wZ1NRTCBm dW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDQgYXQgUkFJU0UKK0NPTlRFWFQ6ICBQTC9w Z1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDQgYXQgUkFJU0UKIC0tIHNob3Vs ZCBiZSBvawogU0VMRUNUIFZBUklBQkxFKHZhcjEpLCBWQVJJQUJMRSh2YXIxKTsKICB2YXIxIHwg dmFyMSAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCBh OTZlZGVjOTQyNS4uYWQwMGVhMzU4ZGYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwKQEAgLTU0OCwxMyArNTQ4LDE0IEBAICQkOwogRFJPUCBWQVJJQUJMRSB2 YXIxOwogRFJPUCBWQVJJQUJMRSB2YXIyOwogCi0tLSBDQUxMIHN0YXRlbWVudCBpcyBub3Qgc3Vw cG9ydGVkIHlldAotLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxl IGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorLS0gQ0FMTCBzdGF0ZW1lbnQgaXMgc3VwcG9ydGVk CiBDUkVBVEUgVkFSSUFCTEUgdiBpbnQ7CiAKK0xFVCB2ID0gMTsKKwogQ1JFQVRFIFBST0NFRFVS RSBwKGFyZyBpbnQpIEFTICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIGFyZzsgRU5EICQkIExB TkdVQUdFIHBscGdzcWw7CiAKLS0tIHNob3VsZCBub3QgY3Jhc2ggKGJ1dCBpcyBub3Qgc3VwcG9y dGVkIHlldCkKKy0tIHNob3VsZCB0byB3b3JrCiBDQUxMIHAodik7CiAKIERPICQkIEJFR0lOIENB TEwgcCh2KTsgRU5EICQkOwpAQCAtNTYyLDEzICs1NjMsMTIgQEAgRE8gJCQgQkVHSU4gQ0FMTCBw KHYpOyBFTkQgJCQ7CiBEUk9QIFBST0NFRFVSRSBwKGludCk7CiBEUk9QIFZBUklBQkxFIHY7CiAK LS0tIEVYRUNVVEUgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0Ci0tLSByZXF1aXJlcyBk aXJlY3QgYWNjZXNzIHRvIHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9y CistLSBFWEVDVVRFIHN0YXRlbWVudAogQ1JFQVRFIFZBUklBQkxFIHYgaW50OwogTEVUIHYgPSAy MDsKIFBSRVBBUkUgcHRlc3QoaW50KSBBUyBTRUxFQ1QgJDE7CiAKLS0tIHNob3VsZCBmYWlsCist LSBzaG91bGQgYmUgb2sKIEVYRUNVVEUgcHRlc3Qodik7CiAKIERFQUxMT0NBVEUgcHRlc3Q7Ci0t IAoyLjQ3LjEKCg== --000000000000f297a7062b2456dc Content-Type: text/x-patch; charset="US-ASCII"; name="v20250107-0015-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Disposition: attachment; filename="v20250107-0015-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5mz6bi47 RnJvbSA0NjY1ZjVmZGM3MDZmOGNiNzEyNjYzNDVkMDU5NTdiMWIxZjZjNWIxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowNTowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTUvMjJdIEltcGxlbWVudGF0aW9uIG9mIE5PVCBOVUxMIGFuZCBJTU1VVEFCTEUgY2xhdXNlcwoK QWxtb3N0IHRyaXZpYWwgcGF0Y2ggLSBwc3FsLCBwZ19kdW1wIHN1cHBvcnQKLS0tCiBkb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMjAgKysrCiBkb2Mvc3Jj L3NnbWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIGRvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAzMiArKystCiBzcmMvYmFj a2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDggKwogc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgIDY5ICsrKysrKysrLQogc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDQxICsrKy0tCiBz cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgICAgfCAgMTkgKystCiBz cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3Jj L2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgIDM2ICsrKysrCiBz cmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIHNy Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAxMiArLQogc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAgMzYgKystLS0KIC4uLi9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDE0NSArKysrKysrKysr KysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8 IDEyMiArKysrKysrKysrKysrKysKIDE2IGZpbGVzIGNoYW5nZWQsIDUxOCBpbnNlcnRpb25zKCsp LCA0MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGU4NjNjYjkxMGVmLi45YWIyNGRm NTI4MiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTk4NDEsNiArOTg0MSwyNiBAQCBTQ1JBTS1TSEEtMjU2 JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBs YWNlYWJsZT4mbAogCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD52YXJub3RudWxsPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAg IDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRydWUgaWYgdGhlIHNlc3Npb24gdmFyaWFi bGUgZG9lc24ndCBhbGxvdyBudWxsIHZhbHVlcy4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2Uu CisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAg IDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmlzaW1tdXRhYmxlPC9zdHJ1Y3RmaWVs ZD4gPHR5cGU+Ym9vbGVhbjwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAg ICAgIFRydWUgaWYgdGhlIHZhcmlhYmxlIGlzIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJp YWJsZS1pbW11dGFibGUiPmltbXV0YWJsZTwvbGluaz4gKGNhbm5vdCBiZSBtb2RpZmllZCkuCisg ICAgICAgVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UuCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3Rh YmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVj dGZpZWxkPnZhcmVveGFjdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXI8L3R5cGU+CiAgICAg ICAgPHN0cnVjdGZpZWxkPnZhcnhhY3RlbmRhY3Rpb248L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFy PC90eXBlPgogICAgICAgPC9wYXJhPgogICAgICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcGxwZ3NxbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAppbmRleCBiZmJm ZjlhYjc0ZS4uZTcwNGUwNWE5OTEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbApAQCAtNjA0NCw3ICs2MDQ0LDggQEAg JCQgTEFOR1VBR0UgcGxwZ3NxbCBTVFJJQ1QgSU1NVVRBQkxFOwogICAgICBZb3UgY2FuIGNvbnNp ZGVyIHRyYW5zbGF0aW5nIGFuIE9yYWNsZSBwYWNrYWdlIGludG8gYSBzY2hlbWEgaW4KICAgICAg PHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPi4gIFBhY2thZ2UgZnVuY3Rpb25z IGFuZCBwcm9jZWR1cmVzCiAgICAgIHdvdWxkIHRoZW4gYmVjb21lIGZ1bmN0aW9ucyBhbmQgcHJv Y2VkdXJlcyBpbiB0aGF0IHNjaGVtYSwgYW5kIHBhY2thZ2UKLSAgICAgdmFyaWFibGVzIGNvdWxk IGJlIHRyYW5zbGF0ZWQgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgaW4gdGhhdCBzY2hlbWEuCisgICAg IHZhcmlhYmxlcyBjb3VsZCBiZSB0cmFuc2xhdGVkIHRvIHNlc3Npb24gdmFyaWFibGVzIG9yIGlt bXV0YWJsZSBzZXNzaW9uCisgICAgIHZhcmlhYmxlcyBpbiB0aGF0IHNjaGVtYS4KICAgICAgKHNl ZSA8eHJlZiBsaW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiLz4pLgogICAgIDwvcGFyYT4K ICAgIDwvc2VjdDM+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJs ZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCA1NzM5 MTUyODExOS4uMWZlZDk3ZDE1YTMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dt bApAQCAtMjYsOCArMjYsOCBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAogIDxyZWZzeW5v cHNpc2Rpdj4KIDxzeW5vcHNpcz4KLUNSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gVkFS SUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5h bWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRh dGFfdHlwZTwvcmVwbGFjZWFibGU+IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQotICAgIFsgREVGQVVMVCA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT4gXSBbIHsgT04g Q09NTUlUIERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBdCitDUkVBVEUgWyB7IFRF TVBPUkFSWSB8IFRFTVAgfSBdIFsgSU1NVVRBQkxFIF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RT IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFT IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+ IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBs YWNlYWJsZT4gXQorICAgIFsgTk9UIE5VTEwgXSBbIERFRkFVTFQgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+IF0gWyB7IE9OIENPTU1JVCBE Uk9QIHwgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIH0gXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5 bm9wc2lzZGl2PgogIDxyZWZzZWN0MT4KQEAgLTY1LDYgKzY1LDIyIEBAIENSRUFURSBbIHsgVEVN UE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwCiAKICAgPHZhcmlhYmxlbGlzdD4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3Fs LWNyZWF0ZXZhcmlhYmxlLWltbXV0YWJsZSI+CisgICAgPHRlcm0+PGxpdGVyYWw+SU1NVVRBQkxF PC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhl IGFzc2lnbmVkIHZhbHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBub3QgYmUgY2hhbmdl ZC4KKyAgICAgIE9ubHkgaWYgdGhlIHNlc3Npb24gdmFyaWFibGUgZG9lc24ndCBoYXZlIGEgZGVm YXVsdCB2YWx1ZSwgYSBzaW5nbGUKKyAgICAgIGluaXRpYWxpemF0aW9uIGlzIGFsbG93ZWQgdXNp bmcgdGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4gT25jZQorICAgICAgZG9uZSwg bm8gZnVydGhlciBjaGFuZ2UgaXMgYWxsb3dlZCB1bnRpbCBlbmQgb2YgdHJhbnNhY3Rpb24KKyAg ICAgIGlmIHRoZSBzZXNzaW9uIHZhcmlhYmxlIHdhcyBjcmVhdGVkIHdpdGggY2xhdXNlIDxsaXRl cmFsPk9OIFRSQU5TQUNUSU9OCisgICAgICBFTkQgUkVTRVQ8L2xpdGVyYWw+LCBvciB1bnRpbCBy ZXNldCBvZiBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMgYnkKKyAgICAgIDxjb21tYW5kPkRJU0NBUkQg VkFSSUFCTEVTPC9jb21tYW5kPiwgb3IgdW50aWwgcmVzZXQgb2YgYWxsIHNlc3Npb24KKyAgICAg IG9iamVjdHMgYnkgY29tbWFuZCA8Y29tbWFuZD5ESVNDQVJEIEFMTDwvY29tbWFuZD4uCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJs aXN0ZW50cnkgIGlkPSJzcWwtY3JlYXRldmFyaWFibGUtaWYtbm90LWV4aXN0cyI+CiAgICAgPHRl cm0+PGxpdGVyYWw+SUYgTk9UIEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVt PgpAQCAtMTA1LDYgKzEyMSwxOCBAQCBDUkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZB UklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icAogICAgIDwvbGlz dGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNy ZWF0ZXZhcmlhYmxlLW5vdC1udWxsIj4KKyAgICA8dGVybT48bGl0ZXJhbD5OT1QgTlVMTDwvbGl0 ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSA8bGl0 ZXJhbD5OT1QgTlVMTDwvbGl0ZXJhbD4gY2xhdXNlIGZvcmJpZHMgc2V0dGluZyB0aGUgc2Vzc2lv bgorICAgICAgdmFyaWFibGUgdG8gYSBudWxsIHZhbHVlLiBBIHNlc3Npb24gdmFyaWFibGUgY3Jl YXRlZCBhcyBOT1QgTlVMTAorICAgICAgc2hvdWxkIG5vdCB0byBoYXZlIGEgZGVjbGFyZWQgZGVm YXVsdCB2YWx1ZSwgYW5kIGlmIHRoZSB2YXJpYWJsZQorICAgICAgaGFzIG5vdCBhc3NpZ25lZCB2 YWx1ZSwgdGhlbiB0aGUgcmVhZGluZyBvZiB0aGlzIHZhcmlhYmxlIGZhaWxzLgorICAgICA8L3Bh cmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVu dHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtZGVmYXVsdCI+CiAgICAgPHRlcm0+PGxpdGVyYWw+ REVGQVVMVCA8cmVwbGFjZWFibGU+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+ PC90ZXJtPgogICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCA4 ZmJhNGNjNDkzYi4uMGI2MDkzYTAwYmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAg LTQwLDYgKzQwLDggQEAgc3RhdGljIE9iamVjdEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0 IGNoYXIgKnZhck5hbWUsCiAJCQkJCQkJCQkgT2lkIHZhck93bmVyLAogCQkJCQkJCQkJIE9pZCB2 YXJDb2xsYXRpb24sCiAJCQkJCQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzLAorCQkJCQkJCQkJIGJv b2wgbm90X251bGwsCisJCQkJCQkJCQkgYm9vbCBpc19pbW11dGFibGUsCiAJCQkJCQkJCQkgTm9k ZSAqdmFyRGVmZXhwciwKIAkJCQkJCQkJCSBWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFyWGFjdEVu ZEFjdGlvbik7CiAKQEAgLTU1LDYgKzU3LDggQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIg KnZhck5hbWUsCiAJCQkJT2lkIHZhck93bmVyLAogCQkJCU9pZCB2YXJDb2xsYXRpb24sCiAJCQkJ Ym9vbCBpZl9ub3RfZXhpc3RzLAorCQkJCWJvb2wgbm90X251bGwsCisJCQkJYm9vbCBpc19pbW11 dGFibGUsCiAJCQkJTm9kZSAqdmFyRGVmZXhwciwKIAkJCQlWYXJpYWJsZVhhY3RFbmRBY3Rpb24g dmFyWGFjdEVuZEFjdGlvbikKIHsKQEAgLTExNyw2ICsxMjEsOCBAQCBjcmVhdGVfdmFyaWFibGUo Y29uc3QgY2hhciAqdmFyTmFtZSwKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBtb2Qg LSAxXSA9IEludDMyR2V0RGF0dW0odmFyVHlwbW9kKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJs ZV92YXJvd25lciAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJPd25lcik7CiAJdmFsdWVzW0Fu dW1fcGdfdmFyaWFibGVfdmFyY29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNv bGxhdGlvbik7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFybm90bnVsbCAtIDFdID0gQm9v bEdldERhdHVtKG5vdF9udWxsKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJpc2ltbXV0 YWJsZSAtIDFdID0gQm9vbEdldERhdHVtKGlzX2ltbXV0YWJsZSk7CiAJdmFsdWVzW0FudW1fcGdf dmFyaWFibGVfdmFyeGFjdGVuZGFjdGlvbiAtIDFdID0gQ2hhckdldERhdHVtKHZhclhhY3RFbmRB Y3Rpb24pOwogCiAJaWYgKHZhckRlZmV4cHIpCkBAIC0yNTksNiArMjY1LDggQEAgQ3JlYXRlVmFy aWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAkJ CQkJCQkgICB2YXJvd25lciwKIAkJCQkJCQkgICBjb2xsYXRpb24sCiAJCQkJCQkJICAgc3RtdC0+ aWZfbm90X2V4aXN0cywKKwkJCQkJCQkgICBzdG10LT5ub3RfbnVsbCwKKwkJCQkJCQkgICBzdG10 LT5pc19pbW11dGFibGUsCiAJCQkJCQkJICAgY29va2VkX2RlZmF1bHQsCiAJCQkJCQkJICAgc3Rt dC0+WGFjdEVuZEFjdGlvbik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUu YwppbmRleCBmNjQ4ZTMwZGQ4Yi4uZjYxOTAwYTlkNGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTkyLDYgKzkyLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgU1Zhcmlh YmxlRGF0YQogCXZvaWQJICAgKmRvbWFpbl9jaGVja19leHRyYTsKIAlMb2NhbFRyYW5zYWN0aW9u SWQgZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQ7CiAKKwlib29sCQlub3RfbnVsbDsKKwlib29sCQlp c19pbW11dGFibGU7CisKIAlib29sCQlyZXNldF9hdF9lb3g7CiAKIAkvKgpAQCAtMTEwLDYgKzEx Myw5IEBAIHR5cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKIAlib29sCQlpc192YWxpZDsKIAog CXVpbnQzMgkJaGFzaHZhbHVlOwkJLyogdXNlZCBmb3IgcGFpcmluZyBzaW52YWwgbWVzc2FnZSAq LworCisJLyogdHJ1ZSwgd2hlbiB0aGUgdmFsdWUgaXMgYWxyZWFkeSBzZXQsIGFuZCBjYW5ub3Qg YmUgY2hhbmdlZCBtb3JlICovCisJYm9vbAkJcHJvdGVjdF92YWx1ZTsKIH0gU1ZhcmlhYmxlRGF0 YTsKIAogdHlwZWRlZiBTVmFyaWFibGVEYXRhICpTVmFyaWFibGU7CkBAIC01NzEsNiArNTc3LDIz IEBAIGV2YWxfYXNzaWduX2RlZmV4cHIoU1ZhcmlhYmxlIHN2YXIsIEhlYXBUdXBsZSB0dXApCiAK IAkJCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjeHQpOwogCQl9CisJCWVsc2UKKwkJeworCQkJ LyoKKwkJCSAqIFJhaXNlIGFuIGVycm9yIGlmIHRoaXMgaXMgYSBOT1QgTlVMTCB2YXJpYWJsZSBi dXQgdGhlIHJlc3VsdCBvZgorCQkJICogREVGQVVMVCBleHByZXNzaW9uIGlzIE5VTEwuCisJCQkg Ki8KKwkJCWlmIChzdmFyLT5ub3RfbnVsbCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVy cmNvZGUoRVJSQ09ERV9OVUxMX1ZBTFVFX05PVF9BTExPV0VEKSwKKwkJCQkJCSBlcnJtc2coIm51 bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5PVCBOVUxMIHNlc3Npb24gdmFyaWFibGUgXCIl cy4lc1wiIiwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxl X25hbWVzcGFjZShzdmFyLT52YXJpZCkpLAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lKHN2YXItPnZhcmlkKSksCisJCQkJCQkgZXJyZGV0YWlsKCJUaGUgcmVzdWx0IG9mIERFRkFV TFQgZXhwcmVzc2lvbiBpcyBOVUxMLiIpKSk7CisJCX0KKworCQlpZiAoc3Zhci0+aXNfaW1tdXRh YmxlKQorCQkJc3Zhci0+cHJvdGVjdF92YWx1ZSA9IHRydWU7CiAKIAkJRnJlZUV4ZWN1dG9yU3Rh dGUoZXN0YXRlKTsKIAl9CkBAIC02MDEsNiArNjI0LDkgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJs ZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlzX3dyaXRlKQogCiAJZ2V0X3R5cGxl bmJ5dmFsKHN2YXItPnR5cGlkLCAmc3Zhci0+dHlwbGVuLCAmc3Zhci0+dHlwYnl2YWwpOwogCisJ c3Zhci0+bm90X251bGwgPSB2YXJmb3JtLT52YXJub3RudWxsOworCXN2YXItPmlzX2ltbXV0YWJs ZSA9IHZhcmZvcm0tPnZhcmlzaW1tdXRhYmxlOworCiAJc3Zhci0+aXNfZG9tYWluID0gKGdldF90 eXB0eXBlKHZhcmZvcm0tPnZhcnR5cGUpID09IFRZUFRZUEVfRE9NQUlOKTsKIAlzdmFyLT5kb21h aW5fY2hlY2tfZXh0cmEgPSBOVUxMOwogCXN2YXItPmRvbWFpbl9jaGVja19leHRyYV9seGlkID0g SW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKQEAgLTYzMCw5ICs2NTYsMzEgQEAgc2V0dXBfc2Vz c2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlzX3dyaXRlKQog CXN2YXItPmhhc2h2YWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZhbHVlMShWQVJJQUJMRU9JRCwKIAkJ CQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOwogCi0JaWYgKCFpc193cml0ZSkKKwlz dmFyLT5wcm90ZWN0X3ZhbHVlID0gZmFsc2U7CisKKwkvKgorCSAqIFdoZW4gdGhlIHZhcmlhYmxl IGlzIG1hcmtlZCBhcyBJTU1VVEFCTEUsIHdlIHByZWZlciB0byBldmFsdWF0ZQorCSAqIHBvc3Np YmxlIERFRkFVTFQgYmVmb3JlIHdyaXRlIG9wLiBJbiB0aGlzIGNhc2Ugd2Ugd2FudCB0byBwcm90 ZWN0CisJICogZGVmYXVsdCB2YWx1ZSBhZ2FpbnN0IGFueSBvdmVyd3JpdGUuCisJICovCisJaWYg KCFpc193cml0ZSB8fAorCQlzdmFyLT5pc19pbW11dGFibGUpCisJewogCQlldmFsX2Fzc2lnbl9k ZWZleHByKHN2YXIsIHR1cCk7CiAKKwkJLyoKKwkJICogUmFpc2UgYW4gZXJyb3IgaWYgdGhpcyBp cyBhIE5PVCBOVUxMIHZhcmlhYmxlIHdpdGhvdXQgZGVmYXVsdAorCQkgKiBleHByZXNzaW9uLgor CQkgKi8KKwkJaWYgKHN2YXItPmlzbnVsbCAmJiBzdmFyLT5ub3RfbnVsbCkKKwkJCWVyZXBvcnQo RVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfTlVMTF9WQUxVRV9OT1RfQUxMT1dFRCksCisJ CQkJCSBlcnJtc2coIm51bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5PVCBOVUxMIHNlc3Np b24gdmFyaWFibGUgXCIlcy4lc1wiIiwKKwkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nl c3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJZ2V0X3Nlc3Npb25fdmFy aWFibGVfbmFtZSh2YXJpZCkpLAorCQkJCQkgZXJyZGV0YWlsKCJUaGUgc2Vzc2lvbiB2YXJpYWJs ZSB3YXMgbm90IGluaXRpYWxpemVkIHlldC4iKSkpOworCX0KKwogCVJlbGVhc2VTeXNDYWNoZSh0 dXApOwogfQogCkBAIC02NTIsNiArNzAwLDIxIEBAIHNldF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJp YWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAJQXNzZXJ0KHN2YXIpOwogCUFz c2VydCghaXNudWxsIHx8IHZhbHVlID09IChEYXR1bSkgMCk7CiAKKwlpZiAoc3Zhci0+cHJvdGVj dF92YWx1ZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0VSUk9SX0lO X0FTU0lHTk1FTlQpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIGlz IGRlY2xhcmVkIElNTVVUQUJMRSIsCisJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCisJCQkJCQlnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lKHN2YXItPnZhcmlkKSkpKTsKKworCS8qIGRvbid0IGFsbG93IGFzc2lnbm1l bnQgb2YgbnVsbCB0byBOT1QgTlVMTCB2YXJpYWJsZSAqLworCWlmIChpc251bGwgJiYgc3Zhci0+ bm90X251bGwpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9OVUxMX1ZB TFVFX05PVF9BTExPV0VEKSwKKwkJCQkgZXJybXNnKCJudWxsIHZhbHVlIGlzIG5vdCBhbGxvd2Vk IGZvciBOT1QgTlVMTCBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiIsCisJCQkJCQlnZXRfbmFt ZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSks CisJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHN2YXItPnZhcmlkKSkpKTsKKwogCS8q CiAJICogVXNlIHR5cGJ5dmFsLCB0eXBieWxlbiBmcm9tIHNlc3Npb24gdmFyaWFibGUgb25seSB3 aGVuIHRoZXkgYXJlCiAJICogdHJ1c3R3b3J0aHkgKHRoZSBpbnZhbGlkYXRpb24gbWVzc2FnZSB3 YXMgbm90IGFjY2VwdGVkIGZvciB0aGlzCkBAIC02OTIsNiArNzU1LDEwIEBAIHNldF9zZXNzaW9u X3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAKIAlz dmFyLT52YWx1ZSA9IG5ld3ZhbDsKIAlzdmFyLT5pc251bGwgPSBpc251bGw7CisKKwkvKiBkb24n dCBhbGxvdyBtb3JlIGNoYW5nZXMgb2YgdmFsdWUgd2hlbiB2YXJpYWJsZSBpcyBJTU1VVEFCTEUg Ki8KKwlpZiAoc3Zhci0+aXNfaW1tdXRhYmxlKQorCQlzdmFyLT5wcm90ZWN0X3ZhbHVlID0gdHJ1 ZTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDg0MWQ5ZjhkZmRmLi5hNTlmNjg1MGI3NSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CkBAIC02NjcsNiArNjY3LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVW aWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJ CQlqc29uX29iamVjdF9jb25zdHJ1Y3Rvcl9udWxsX2NsYXVzZV9vcHQKIAkJCQlqc29uX2FycmF5 X2NvbnN0cnVjdG9yX251bGxfY2xhdXNlX29wdAogCisldHlwZSA8Ym9vbGVhbj4JCU9wdE5vdE51 bGwgT3B0SW1tdXRhYmxlCiAKIC8qCiAgKiBOb24ta2V5d29yZCB0b2tlbiB0eXBlcy4gIFRoZXNl IGFyZSBoYXJkLXdpcmVkIGludG8gdGhlICJmbGV4IiBsZXhlci4KQEAgLTUyMzAsMjcgKzUyMzEs MzEgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToKICAqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K IAogQ3JlYXRlU2Vzc2lvblZhclN0bXQ6Ci0JCQlDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBxdWFs aWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdFNlc3Npb25W YXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KKwkJCUNSRUFURSBPcHRUZW1wIE9wdEltbXV0 YWJsZSBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVf Y2xhdXNlIE9wdE5vdE51bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlv bgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVT ZXNzaW9uVmFyU3RtdCk7Ci0JCQkJCSQ0LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOwotCQkJCQluLT52 YXJpYWJsZSA9ICQ0OwotCQkJCQluLT50eXBlTmFtZSA9ICQ2OwotCQkJCQluLT5jb2xsQ2xhdXNl ID0gKENvbGxhdGVDbGF1c2UgKikgJDc7Ci0JCQkJCW4tPmRlZmV4cHIgPSAkODsKLQkJCQkJbi0+ WGFjdEVuZEFjdGlvbiA9ICQ5OworCQkJCQkkNS0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJ bi0+aXNfaW1tdXRhYmxlID0gJDM7CisJCQkJCW4tPnZhcmlhYmxlID0gJDU7CisJCQkJCW4tPnR5 cGVOYW1lID0gJDc7CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkODsK KwkJCQkJbi0+bm90X251bGwgPSAkOTsKKwkJCQkJbi0+ZGVmZXhwciA9ICQxMDsKKwkJCQkJbi0+ WGFjdEVuZEFjdGlvbiA9ICQxMTsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZhbHNlOwogCQkJ CQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBJ Rl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRl X2NsYXVzZSBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQl8IENS RUFURSBPcHRUZW1wIE9wdEltbXV0YWJsZSBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlm aWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHROb3ROdWxsIE9w dFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KIAkJCQl7CiAJCQkJCUNyZWF0 ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOwotCQkJ CQkkNy0+cmVscGVyc2lzdGVuY2UgPSAkMjsKLQkJCQkJbi0+dmFyaWFibGUgPSAkNzsKLQkJCQkJ bi0+dHlwZU5hbWUgPSAkOTsKLQkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICop ICQxMDsKLQkJCQkJbi0+ZGVmZXhwciA9ICQxMTsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQx MjsKKwkJCQkJJDgtPnJlbHBlcnNpc3RlbmNlID0gJDI7CisJCQkJCW4tPmlzX2ltbXV0YWJsZSA9 ICQzOworCQkJCQluLT52YXJpYWJsZSA9ICQ4OworCQkJCQluLT50eXBlTmFtZSA9ICQxMDsKKwkJ CQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQxMTsKKwkJCQkJbi0+bm90X251 bGwgPSAkMTI7CisJCQkJCW4tPmRlZmV4cHIgPSAkMTM7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24g PSAkMTQ7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICop IG47CiAJCQkJfQpAQCAtNTI3MCw2ICs1Mjc1LDE0IEBAIFhhY3RFbmRBY3Rpb25PcHRpb246ICBP TiBDT01NSVQgRFJPUAkJCQl7ICQkID0gVkFSSUFCTEVfWEFDVEVORF9EUk9QOyB9CiAJCTsKIAog CitPcHROb3ROdWxsOiBOT1QgTlVMTF9QCQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCAvKiBF TVBUWSAqLwkJCQkJCQl7ICQkID0gZmFsc2U7IH0KKwkJOworCitPcHRJbW11dGFibGU6IElNTVVU QUJMRQkJCQkJCQkJeyAkJCA9IHRydWU7IH0KKwkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAkJCA9 IGZhbHNlOyB9CisJCTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgRVhU RU5TSU9OIG5hbWUgVVBEQVRFIFsgVE8gdmVyc2lvbiBdCmRpZmYgLS1naXQgYS9zcmMvYmluL3Bn X2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBhNmMzM2Qy ZWRlZi4uYjRjNjFkYTE4ODUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMK KysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNTQ0MCw2ICs1NDQwLDggQEAgZ2V0 VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaW50CQkJaV92YXJ4YWN0ZW5kYWN0aW9uOwogCWlu dAkJCWlfdmFyb3duZXI7CiAJaW50CQkJaV92YXJjb2xsYXRpb247CisJaW50CQkJaV92YXJub3Ru dWxsOworCWludAkJCWlfdmFyaXNpbW11dGFibGU7CiAJaW50CQkJaV92YXJhY2w7CiAJaW50CQkJ aV9hY2xkZWZhdWx0OwogCWludAkJCWksCkBAIC01NDYyLDYgKzU0NjQsOCBAQCBnZXRWYXJpYWJs ZXMoQXJjaGl2ZSAqZm91dCkKIAkJCQkJICAiICAgICAgICAgICAgVEhFTiB2LnZhcmNvbGxhdGlv blxuIgogCQkJCQkgICIgICAgICAgICAgICBFTFNFIDBcbiIKIAkJCQkJICAiICAgICAgIEVORCBB UyB2YXJjb2xsYXRpb24sXG4iCisJCQkJCSAgIiAgICAgICB2LnZhcm5vdG51bGwsXG4iCisJCQkJ CSAgIiAgICAgICB2LnZhcmlzaW1tdXRhYmxlLFxuIgogCQkJCQkgICIgICAgICAgcGdfY2F0YWxv Zy5wZ19nZXRfZXhwcih2LnZhcmRlZmV4cHIsMCkgYXMgdmFyZGVmZXhwcixcbiIKIAkJCQkJICAi ICAgICAgIHYudmFyb3duZXIsIHYudmFyYWNsLFxuIgogCQkJCQkgICIgICAgICAgYWNsZGVmYXVs dCgnVicsIHYudmFyb3duZXIpIEFTIGFjbGRlZmF1bHRcbiIKQEAgLTU0ODIsNiArNTQ4Niw4IEBA IGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCWlfdmFyZGVmZXhwciA9IFBRZm51bWJlcihy ZXMsICJ2YXJkZWZleHByIik7CiAJaV92YXJ4YWN0ZW5kYWN0aW9uID0gUFFmbnVtYmVyKHJlcywg InZhcnhhY3RlbmRhY3Rpb24iKTsKIAlpX3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2 YXJjb2xsYXRpb24iKTsKKwlpX3Zhcm5vdG51bGwgPSBQUWZudW1iZXIocmVzLCAidmFybm90bnVs bCIpOworCWlfdmFyaXNpbW11dGFibGUgPSBQUWZudW1iZXIocmVzLCAidmFyaXNpbW11dGFibGUi KTsKIAogCWlfdmFyb3duZXIgPSBQUWZudW1iZXIocmVzLCAidmFyb3duZXIiKTsKIAlpX3ZhcmFj bCA9IFBRZm51bWJlcihyZXMsICJ2YXJhY2wiKTsKQEAgLTU1MDgsNiArNTUxNCw4IEBAIGdldFZh cmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCQkJcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBp X3ZhcnhhY3RlbmRhY3Rpb24pKTsKIAogCQl2YXJpbmZvW2ldLnZhcmNvbGxhdGlvbiA9IGF0b29p ZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJjb2xsYXRpb24pKTsKKwkJdmFyaW5mb1tpXS52YXJu b3RudWxsID0gKihQUWdldHZhbHVlKHJlcywgaSwgaV92YXJub3RudWxsKSkgPT0gJ3QnOworCQl2 YXJpbmZvW2ldLnZhcmlzaW1tdXRhYmxlID0gKihQUWdldHZhbHVlKHJlcywgaSwgaV92YXJpc2lt bXV0YWJsZSkpID09ICd0JzsKIAogCQl2YXJpbmZvW2ldLmRhY2wuYWNsID0gcGdfc3RyZHVwKFBR Z2V0dmFsdWUocmVzLCBpLCBpX3ZhcmFjbCkpOwogCQl2YXJpbmZvW2ldLmRhY2wuYWNsZGVmYXVs dCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9hY2xkZWZhdWx0KSk7CkBAIC01NTU0 LDcgKzU1NjIsOSBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJ bmZvICp2YXJpbmZvKQogCWNvbnN0IGNoYXIgKnZhcnR5cG5hbWU7CiAJY29uc3QgY2hhciAqdmFy ZGVmZXhwcjsKIAljb25zdCBjaGFyICp2YXJ4YWN0ZW5kYWN0aW9uOworCWNvbnN0IGNoYXIgKnZh cmlzaW1tdXRhYmxlOwogCU9pZAkJCXZhcmNvbGxhdGlvbjsKKwlib29sCQl2YXJub3RudWxsOwog CiAJLyogc2tpcCBpZiBub3QgdG8gYmUgZHVtcGVkICovCiAJaWYgKCF2YXJpbmZvLT5kb2JqLmR1 bXAgfHwgIWRvcHQtPmR1bXBTY2hlbWEpCkBAIC01NTY4LDEyICs1NTc4LDE0IEBAIGR1bXBWYXJp YWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJdmFyZGVm ZXhwciA9IHZhcmluZm8tPnZhcmRlZmV4cHI7CiAJdmFyeGFjdGVuZGFjdGlvbiA9IHZhcmluZm8t PnZhcnhhY3RlbmRhY3Rpb247CiAJdmFyY29sbGF0aW9uID0gdmFyaW5mby0+dmFyY29sbGF0aW9u OworCXZhcm5vdG51bGwgPSB2YXJpbmZvLT52YXJub3RudWxsOworCXZhcmlzaW1tdXRhYmxlID0g dmFyaW5mby0+dmFyaXNpbW11dGFibGUgPyAiSU1NVVRBQkxFICIgOiAiIjsKIAogCWFwcGVuZFBR RXhwQnVmZmVyKGRlbHEsICJEUk9QIFZBUklBQkxFICVzO1xuIiwKIAkJCQkJICBxdWFsdmFybmFt ZSk7CiAKLQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBWQVJJQUJMRSAlcyBBUyAl cyIsCi0JCQkJCSAgcXVhbHZhcm5hbWUsIHZhcnR5cG5hbWUpOworCWFwcGVuZFBRRXhwQnVmZmVy KHF1ZXJ5LCAiQ1JFQVRFICVzVkFSSUFCTEUgJXMgQVMgJXMiLAorCQkJCQkgIHZhcmlzaW1tdXRh YmxlLCBxdWFsdmFybmFtZSwgdmFydHlwbmFtZSk7CiAKIAlpZiAoT2lkSXNWYWxpZCh2YXJjb2xs YXRpb24pKQogCXsKQEAgLTU1ODUsNiArNTU5Nyw5IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpm b3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJCQkJCQkJICBmbXRRdWFsaWZpZWRE dW1wYWJsZShjb2xsKSk7CiAJfQogCisJaWYgKHZhcm5vdG51bGwpCisJCWFwcGVuZFBRRXhwQnVm ZmVyKHF1ZXJ5LCAiIE5PVCBOVUxMIik7CisKIAlpZiAodmFyZGVmZXhwcikKIAkJYXBwZW5kUFFF eHBCdWZmZXIocXVlcnksICIgREVGQVVMVCAlcyIsCiAJCQkJCQkgIHZhcmRlZmV4cHIpOwpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmgKaW5kZXggMjYxMzcwMGUxOWQuLjA1NjI0OTdmMzRlIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTcy NSw2ICs3MjUsOCBAQCB0eXBlZGVmIHN0cnVjdCBfVmFyaWFibGVJbmZvCiAJY2hhcgkgICAqaW5p dHJ2YXJhY2w7CiAJT2lkCQkJdmFyY29sbGF0aW9uOwogCWNvbnN0IGNoYXIgKnJvbG5hbWU7CQkv KiBuYW1lIG9mIG93bmVyLCBvciBlbXB0eSBzdHJpbmcgKi8KKwlib29sCQl2YXJub3RudWxsOwor CWJvb2wJCXZhcmlzaW1tdXRhYmxlOwogfSBWYXJpYWJsZUluZm87CiAKIC8qCmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAw Ml9wZ19kdW1wLnBsCmluZGV4IGZjZjY4OTY2YjBlLi4xYmJhNjhlNmFlZSAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3Qv MDAyX3BnX2R1bXAucGwKQEAgLTQwNDEsNiArNDA0MSw0MiBAQCBteSAldGVzdHMgPSAoCiAJCX0s CiAJfSwKIAorCSdDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsK KwkJYWxsX3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21t YW5kcycsCisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUg SU1NVVRBQkxFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTUgQVMgaW50ZWdlcicsCisJCXJl Z2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZh cmlhYmxlNSBBUyBpbnRlZ2VyO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJ CQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9 LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlv bmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCisJJ0NSRUFURSBJTU1V VEFCTEUgVkFSSUFCTEUgdGVzdF92YXJpYWJsZSBOT1QgTlVMTCBERUZBVUxUJyA9PiB7CisJCWFs bF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMn LAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIElNTVVU QUJMRSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU3IEFTIGludGVnZXIgTk9UIE5VTEwgREVG QVVMVCAxMCcsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBJTU1VVEFCTEUgVkFSSUFC TEUgZHVtcF90ZXN0LnZhcmlhYmxlNyBBUyBpbnRlZ2VyIE5PVCBOVUxMIERFRkFVTFQgMTA7XEUv eG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1 bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQll eGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAg ICA9PiAxLAorCQl9LAorCX0sCisKIAknQ1JFQVRFIFZJRVcgdGVzdF92aWV3JyA9PiB7CiAJCWNy ZWF0ZV9vcmRlciA9PiA2MSwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFZJRVcgZHVtcF90ZXN0 LnRlc3RfdmlldwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmlu L3BzcWwvZGVzY3JpYmUuYwppbmRleCAyOTBkYzYyNGZlNS4uNzRlMWJjNTU3OGUgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5j CkBAIC01MjUwLDcgKzUyNTAsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4s IGJvb2wgdmVyYm9zZSkKIAlQUUV4cEJ1ZmZlckRhdGEgYnVmOwogCVBHcmVzdWx0ICAgKnJlczsK IAlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OwotCXN0YXRpYyBjb25zdCBib29sIHRy YW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07CisJc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRl X2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OwogCiAJaWYgKHBzZXQuc3ZlcnNpb24g PCAxODAwMDApCiAJewpAQCAtNTI3MSw2ICs1MjcxLDggQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBj aGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAgIiAgKFNFTEVDVCBjLmNvbGxuYW1l IEZST00gcGdfY2F0YWxvZy5wZ19jb2xsYXRpb24gYywgcGdfY2F0YWxvZy5wZ190eXBlIGJ0XG4i CiAJCQkJCSAgIiAgIFdIRVJFIGMub2lkID0gdi52YXJjb2xsYXRpb24gQU5EIGJ0Lm9pZCA9IHYu dmFydHlwZSBBTkQgdi52YXJjb2xsYXRpb24gPD4gYnQudHlwY29sbGF0aW9uKSBhcyBcIiVzXCIs XG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJvd25lcikgYXMg XCIlc1wiLFxuIgorCQkJCQkgICIgIE5PVCB2LnZhcm5vdG51bGwgYXMgXCIlc1wiLFxuIgorCQkJ CQkgICIgIE5PVCB2LnZhcmlzaW1tdXRhYmxlIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBwZ19j YXRhbG9nLnBnX2dldF9leHByKHYudmFyZGVmZXhwciwgMCkgYXMgXCIlc1wiLFxuIgogCQkJCQkg ICIgIENBU0Ugdi52YXJ4YWN0ZW5kYWN0aW9uXG4iCiAJCQkJCSAgIiAgICBXSEVOICdkJyBUSEVO ICdPTiBDT01NSVQgRFJPUCdcbiIKQEAgLTUyODEsNiArNTI4Myw4IEBAIGxpc3RWYXJpYWJsZXMo Y29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCQkJCQkgIGdldHRleHRfbm9vcCgi VHlwZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiQ29sbGF0aW9uIiksCiAJCQkJCSAgZ2V0dGV4 dF9ub29wKCJPd25lciIpLAorCQkJCQkgIGdldHRleHRfbm9vcCgiTnVsbGFibGUiKSwKKwkJCQkJ ICBnZXR0ZXh0X25vb3AoIk11dGFibGUiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIkRlZmF1bHQi KSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiIpKTsKIApk aWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDI0OWY2MTg3OGQxLi5kNjgzOGFlM2MxOSAxMDA2NDQK LS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuaW4uYwpAQCAtMTI3Myw2ICsxMjczLDggQEAgc3RhdGljIGNvbnN0IHBnc3Fs X3RoaW5nX3Qgd29yZHNfYWZ0ZXJfY3JlYXRlW10gPSB7CiAJeyJGT1JFSUdOIFRBQkxFIiwgTlVM TCwgTlVMTCwgTlVMTH0sCiAJeyJGVU5DVElPTiIsIE5VTEwsIE5VTEwsIFF1ZXJ5X2Zvcl9saXN0 X29mX2Z1bmN0aW9uc30sCiAJeyJHUk9VUCIsIFF1ZXJ5X2Zvcl9saXN0X29mX3JvbGVzfSwKKwl7 IklNTVVUQUJMRSBWQVJJQUJMRSIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIFRISU5HX05PX0RS T1AgfCBUSElOR19OT19BTFRFUn0sIC8qIGZvciBDUkVBVEUgSU1NVVRBQkxFCisJCQkJCQkJCQkJ CQkJCQkJCQkJCQkgKiBWQVJJQUJMRSAuLi4gKi8KIAl7IklOREVYIiwgTlVMTCwgTlVMTCwgJlF1 ZXJ5X2Zvcl9saXN0X29mX2luZGV4ZXN9LAogCXsiTEFOR1VBR0UiLCBRdWVyeV9mb3JfbGlzdF9v Zl9sYW5ndWFnZXN9LAogCXsiTEFSR0UgT0JKRUNUIiwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwg VEhJTkdfTk9fQ1JFQVRFIHwgVEhJTkdfTk9fRFJPUH0sCkBAIC0zNjA4LDcgKzM2MTAsOCBAQCBt YXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIC8qIENSRUFURSBUQUJMRSAtLS0g aXMgYWxsb3dlZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNlIFRhaWxNYXRjaGVzICovCiAJ LyogQ29tcGxldGUgIkNSRUFURSBURU1QL1RFTVBPUkFSWSIgd2l0aCB0aGUgcG9zc2libGUgdGVt cCBvYmplY3RzICovCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJURU1QfFRFTVBP UkFSWSIpKQotCQlDT01QTEVURV9XSVRIKCJTRVFVRU5DRSIsICJUQUJMRSIsICJWQVJJQUJMRSIs ICJWSUVXIik7CisJCUNPTVBMRVRFX1dJVEgoIklNTVVUQUJMRSBWQVJJQUJMRSIsICJTRVFVRU5D RSIsICJUQUJMRSIsICJWQVJJQUJMRSIsCisJCQkJCSAgIlZJRVciKTsKIAkvKiBDb21wbGV0ZSAi Q1JFQVRFIFVOTE9HR0VEIiB3aXRoIFRBQkxFIG9yIFNFUVVFTkNFICovCiAJZWxzZSBpZiAoVGFp bE1hdGNoZXMoIkNSRUFURSIsICJVTkxPR0dFRCIpKQogCQlDT01QTEVURV9XSVRIKCJUQUJMRSIs ICJTRVFVRU5DRSIpOwpAQCAtMzk2MCw3ICszOTYzLDggQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMo aW50IHBhdHRlcm5faWQsCiAvKiBDUkVBVEUgVkFSSUFCTEUgLS0tIGlzIGFsbG93ZWQgaW5zaWRl IENSRUFURSBTQ0hFTUEsIHNvIHVzZSBUYWlsTWF0Y2hlcyAqLwogCS8qIENvbXBsZXRlIENSRUFU RSBWQVJJQUJMRSA8bmFtZT4gd2l0aCBBUyAqLwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVB VEUiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkgfHwKLQkJCSBUYWlsTWF0Y2hlcygiVEVNUHxURU1Q T1JBUlkiLCAiVkFSSUFCTEUiLCBNYXRjaEFueSkpCisJCQkgVGFpbE1hdGNoZXMoIlRFTVB8VEVN UE9SQVJZIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpIHx8CisJCQkgVGFpbE1hdGNoZXMoIklNTVVU QUJMRSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiQVMiKTsKIAll bHNlIGlmIChUYWlsTWF0Y2hlcygiVkFSSUFCTEUiLCBNYXRjaEFueSwgIkFTIikpCiAJCS8qIENv bXBsZXRlIENSRUFURSBWQVJJQUJMRSA8bmFtZT4gd2l0aCBBUyB0eXBlcyAqLwpAQCAtNDYyMCw2 ICs0NjI0LDEwIEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCWVsc2Ug aWYgKFRhaWxNYXRjaGVzKCJGUk9NIiwgIlNFUlZFUiIsIE1hdGNoQW55LCAiSU5UTyIsIE1hdGNo QW55KSkKIAkJQ09NUExFVEVfV0lUSCgiT1BUSU9OUyAoIik7CiAKKy8qIElNTVVUQUJMRSAtLSBj YW4gYmUgZXhwZW5kIHRvIElNTVVUQUJMRSBWQVJJQUJMRSAqLworCWVsc2UgaWYgKFRhaWxNYXRj aGVzKCJDUkVBVEUiLCAiSU1NVVRBQkxFIikpCisJCUNPTVBMRVRFX1dJVEgoIlZBUklBQkxFIik7 CisKIC8qIElOU0VSVCAtLS0gY2FuIGJlIGluc2lkZSBFWFBMQUlOLCBSVUxFLCBldGMgKi8KIAkv KiBDb21wbGV0ZSBOT1QgTUFUQ0hFRCBUSEVOIElOU0VSVCAqLwogCWVsc2UgaWYgKFRhaWxNYXRj aGVzKCJOT1QiLCAiTUFUQ0hFRCIsICJUSEVOIiwgIklOU0VSVCIpKQpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192 YXJpYWJsZS5oCmluZGV4IDA5ZGQ0NGE0NGUxLi5jZjIxZTA0MjZhNyAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfdmFyaWFibGUuaApAQCAtNTYsNiArNTYsMTIgQEAgQ0FUQUxPRyhwZ192YXJpYWJsZSw5MjIy LFZhcmlhYmxlUmVsYXRpb25JZCkKIAkvKiB0eXBtb2QgZm9yIHZhcmlhYmxlJ3MgdHlwZSAqLwog CWludDMyCQl2YXJ0eXBtb2QgQktJX0RFRkFVTFQoLTEpOwogCisJLyogZG9uJ3QgYWxsb3cgTlVM TCAqLworCWJvb2wJCXZhcm5vdG51bGwgQktJX0RFRkFVTFQoZik7CisKKwkvKiBkb24ndCBhbGxv dyBjaGFuZ2VzICovCisJYm9vbAkJdmFyaXNpbW11dGFibGUgQktJX0RFRkFVTFQoZik7CisKIAkv KiBhY3Rpb24gb24gdHJhbnNhY3Rpb24gZW5kICovCiAJY2hhcgkJdmFyeGFjdGVuZGFjdGlvbiBC S0lfREVGQVVMVChuKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rl cy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGFjYzdkNzNmYjhkLi4x YTdmNDQzY2U3NSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisr KyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMzQ4Nyw2ICszNDg3LDggQEAg dHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU2Vzc2lvblZhclN0bXQKIAlUeXBlTmFtZSAgICp0eXBlTmFt ZTsJCS8qIHRoZSB0eXBlIG9mIHZhcmlhYmxlICovCiAJQ29sbGF0ZUNsYXVzZSAqY29sbENsYXVz ZTsKIAlib29sCQlpZl9ub3RfZXhpc3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0IGFscmVhZHkgZXhp c3RzICovCisJYm9vbAkJbm90X251bGw7CQkvKiBkaXNhbGxvdyBudWxscyAqLworCWJvb2wJCWlz X2ltbXV0YWJsZTsJLyogZG9uJ3QgYWxsb3cgY2hhbmdlcyAqLwogCU5vZGUJICAgKmRlZmV4cHI7 CQkvKiBkZWZhdWx0IGV4cHJlc3Npb24gKi8KIAljaGFyCQlYYWN0RW5kQWN0aW9uOwkvKiBvbiB0 cmFuc2FjdGlvbiBlbmQgYWN0aW9uICovCiB9IENyZWF0ZVNlc3Npb25WYXJTdG10OwpkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcHNxbC5vdXQKaW5kZXggYmM3YjYwYTk3ZWEuLjc3YTdiZjQ1YzhhIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKQEAgLTU5MzUsMjAgKzU5MzUsMjAgQEAgQ1JFQVRF IFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFi bGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOwog XGRWKyB2YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAg ICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBEZWZh dWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNj cmlwdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCi0gcHVibGljIHwgdmFyMSB8 IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8 ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8 IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAg ICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IE51 bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCBB Y2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZh cnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0 ICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgCiAoMSByb3cpCiAKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBV QkxJQzsKIENPTU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CiBc ZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2No ZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25l ciAgICAgICAgICB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAg ICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9u ICAgIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAg ICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICB8ICAgICAgICAgICAgICAg ICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9v d25lcit8IHNvbWUgZGVzY3JpcHRpb24KLSAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAg ICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAg ICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAgICAg ICAgICAgICAgICAgICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0 aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1 bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJp dmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0rLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0KKyBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBD ICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgdCAgICAgICAgfCB0ICAgICAgIHwg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KKyAgICAgICAg fCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAg ICB8IAogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHZhcjE7CkBAIC02NDE2LDkgKzY0MTYsOSBA QCBMaXN0IG9mIHNjaGVtYXMKICgwIHJvd3MpCiAKIFxkViAibm8uc3VjaC52YXJpYWJsZSIKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8 IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25h bCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUg fCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0 IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBz Y2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02NTkxLDkgKzY1OTEsOSBAQCBpbXByb3BlciBxdWFs aWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC5pbnN0YQogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIK IGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3Vj aC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBcZFYgIm5vLnN1Y2guc2NoZW1hIi4i bm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9m IHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBE ZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlh YmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxsYWJs ZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0t LS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdh aW4sIGJ1dCB3aXRoIGN1cnJlbnQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNh dGlvbnMuCkBAIC02NzMwLDkgKzY3MzAsOSBAQCBMaXN0IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRl cwogKDAgcm93cykKIAogXGRWIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52 YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxl cwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBEZWZhdWx0IHwg VHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNj aGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFi bGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0t Ky0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3 aXRoIGRvdHRlZCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXgg ZmM2ZDQ1Y2JkYzQuLjhmNDFhMTMwYmI4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMjQ0NCwzICsyNDQ0LDE0OCBAQCBTRUxFQ1Qg dmFyMTsKIAogRFJPUCBWQVJJQUJMRSB2YXIxOwogRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7 CistLSB0ZXN0IE5PVCBOVUxMCistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIGludCBOT1QgTlVMTDsKKy0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgdmFyMTsKK0VSUk9S OiAgbnVsbCB2YWx1ZSBpcyBub3QgYWxsb3dlZCBmb3IgTk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJs ZSAicHVibGljLnZhcjEiCitERVRBSUw6ICBUaGUgc2Vzc2lvbiB2YXJpYWJsZSB3YXMgbm90IGlu aXRpYWxpemVkIHlldC4KKy0tc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOworU0VMRUNUIHZh cjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIx OworLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgTk9UIE5VTEwg REVGQVVMVCAwOworLS1zaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0K KyAgICAwCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsKK1NFTEVD VCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK0RJU0NBUkQgVkFSSUFC TEVTOworLS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gTlVMTDsKK0VSUk9SOiAgbnVsbCB2 YWx1ZSBpcyBub3QgYWxsb3dlZCBmb3IgTk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGlj LnZhcjEiCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSB0ZXN0IE5PVCBOVUxMCitDUkVBVEUgT1Ig UkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgor ICBSRVRVUk4gTlVMTDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyBpbnQgTk9UIE5VTEwgREVGQVVMVCB2YXJ0ZXN0X2Z4KCk7CistLSBzaG91bGQg dG8gZmFpbAorU0VMRUNUIHZhcjE7CitFUlJPUjogIG51bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQg Zm9yIE5PVCBOVUxMIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIgorREVUQUlMOiAgVGhl IHJlc3VsdCBvZiBERUZBVUxUIGV4cHJlc3Npb24gaXMgTlVMTC4KK0RJU0NBUkQgVkFSSUFCTEVT OworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOworU0VMRUNUIHZhcjE7CisgdmFyMSAK Ky0tLS0tLQorICAgMTAKKygxIHJvdykKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFy dGVzdF9meCgpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIDA7CitFTkQ7Cisk JCBMQU5HVUFHRSBwbHBnc3FsOworRElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sK K1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKK0RST1AgVkFS SUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gdmFydGVzdF9meCgpOworLS0gdGVzdCBJTU1VVEJM RQorQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKy0tIHNob3VsZCBiZSBv aworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgICAKKygxIHJvdykKKworLS0gZmly c3Qgd3JpdGUgc2hvdWxkIG9rCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CistLSBz aG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVi bGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQorRElTQ0FSRCBWQVJJQUJMRVM7CistLSBz aG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAy MDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElN TVVUQUJMRQorRElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIx OworIHZhcjEgCistLS0tLS0KKyAgICAgCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSBvaworTEVU IHZhcjEgPSBOVUxMOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMjA7CitFUlJPUjogIHNl c3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBkZWNsYXJlZCBJTU1VVEFCTEUKK0RST1Ag VkFSSUFCTEUgdmFyMTsKK0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgREVG QVVMVCAxMDsKKy0tIGRvbid0IGFsbG93IGNoYW5nZSB3aGVuIHZhcmlhYmxlIGhhcyBERUZBVUxU IHZhbHVlCistLSBzaG91bGQgdG8gZmFpbAorTEVUIHZhcjEgPSAyMDsKK0VSUk9SOiAgc2Vzc2lv biB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQorRElTQ0FSRCBW QVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0K KyAgIDEwCisoMSByb3cpCisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDIwOworRVJST1I6 ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitE Uk9QIFZBUklBQkxFIHZhcjE7CistLSBzaG91bGQgYmUgb2sKK0NSRUFURSBJTU1VVEFCTEUgVkFS SUFCTEUgdmFyMSBBUyBJTlQgTk9UIE5VTEwgREVGQVVMVCAxMDsKKy0tIHNob3VsZCB0byBmYWls CitMRVQgdmFyMSA9IDEwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIg aXMgZGVjbGFyZWQgSU1NVVRBQkxFCitMRVQgdmFyMSA9IDIwOworRVJST1I6ICBzZXNzaW9uIHZh cmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCistLSBzaG91bGQgYmUg b2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKKy0tIHNo b3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDMwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJw dWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitEUk9QIFZBUklBQkxFIHZhcjE7CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggOTg4ZDhkMzI3 ZmUuLmE5NmVkZWM5NDI1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsCkBAIC0xNjgwLDMgKzE2ODAsMTI1IEBAIFNFTEVDVCB2YXIxOwogCiBEUk9QIFZBUklB QkxFIHZhcjE7CiBEUk9QIEZVTkNUSU9OIHZhcnRlc3RfZngoKTsKKworLS0gdGVzdCBOT1QgTlVM TAorLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgTk9UIE5VTEw7 CistLSBzaG91bGQgdG8gZmFpbAorU0VMRUNUIHZhcjE7CisKKy0tc2hvdWxkIGJlIG9rCitMRVQg dmFyMSA9IDEwOworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hv dWxkIGJlIG9rCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgTk9UIE5VTEwgREVGQVVMVCAw OworCistLXNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworTEVU IHZhcjEgPSAxMDsKK1NFTEVDVCB2YXIxOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hv dWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gTlVMTDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCist LSB0ZXN0IE5PVCBOVUxMCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkK K1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSRVRVUk4gTlVMTDsKK0VORDsKKyQkIExBTkdV QUdFIHBscGdzcWw7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBOT1QgTlVMTCBERUZB VUxUIHZhcnRlc3RfZngoKTsKKworLS0gc2hvdWxkIHRvIGZhaWwKK1NFTEVDVCB2YXIxOworCitE SVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IDEwOworU0VM RUNUIHZhcjE7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVU VVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIFJFVFVSTiAwOworRU5EOworJCQgTEFOR1VBR0UgcGxw Z3NxbDsKKworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZh cjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gdmFydGVzdF9meCgpOwor CistLSB0ZXN0IElNTVVUQkxFCitDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIHZhcjEgQVMgaW50 OworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworLS0gZmlyc3Qgd3JpdGUgc2hvdWxk IG9rCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgZmFpbAorTEVU IHZhcjEgPSAyMDsKKworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCBiZSBvaworTEVU IHZhcjEgPSAxMDsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDIwOworCitESVNDQVJEIFZB UklBQkxFUzsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKy0tIHNob3VsZCBiZSBv aworTEVUIHZhcjEgPSBOVUxMOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMjA7CisKK0RS T1AgVkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSB2YXIxIEFTIGlu dCBERUZBVUxUIDEwOworCistLSBkb24ndCBhbGxvdyBjaGFuZ2Ugd2hlbiB2YXJpYWJsZSBoYXMg REVGQVVMVCB2YWx1ZQorLS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2YXIxID0gMjA7CisKK0RJU0NB UkQgVkFSSUFCTEVTOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworLS0gc2hvdWxk IGZhaWwKK0xFVCB2YXIxID0gMjA7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxk IGJlIG9rCitDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxFIHZhcjEgQVMgSU5UIE5PVCBOVUxMIERF RkFVTFQgMTA7CisKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDEwOworTEVUIHZhcjEg PSAyMDsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxkIHRvIGZh aWwKK0xFVCB2YXIxID0gMzA7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKLS0gCjIuNDcuMQoK --000000000000f297a7062b2456dc Content-Type: text/x-patch; charset="US-ASCII"; name="v20250107-0013-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Disposition: attachment; filename="v20250107-0013-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5mz6bj29 RnJvbSA3MGFhYmYzYzQ4YmQzZDliNTUzOTY2M2UxMTI2ZGZiZDc4MGM3NDQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMjoxMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTMvMjJdIEltcGxlbWVudGF0aW9uIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCBjbGF1c2UKClRo aXMgaXMgc2ltcGxlIHBhdGNoIC0ganVzdCBhZGQgc3BlY2lhbCBmbGFnIHRvIHNlc3Npb24gdmFy aWFibGUgbWVtb3J5IGVudHJ5LgpUaGUgZW50cmllcyB3aXRoIGFjdGl2ZSB0aGlzIGZsYWcgYXJl IHJlbW92ZWQgZnJvbSBzZXNzaW9udmFycyBoYXNoIHRhYmxlCmF0IHRyYW5zYWN0aW9uIGVuZC4g VGhlICJUUkFOU0FDVElPTiBFTkQiIGlzIHN5bm9ueW1zIGZvciAiQ09NTUlUIFJPTExCQUNLIgpi dXQgdGhlICJUUkFOU0FDVElPTiBFTkQiIGlzIG1vcmUgaWxsdXN0cmF0aXZlIGFuZCBsZXNzIGNv bmZ1c2luZyB0aGVuICJDT01NSVQgUk9MTEJBQ0siLgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAzICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAxMyArKysrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgNTEgKysrKysrKysrKysrKysrKysrKwogc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgMTEgKysrKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgMTggKysrKysrKwogc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgIDEgKwogLi4uL2lzb2xhdGlvbi9l eHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgIDQgKy0KIC4uLi9pc29sYXRpb24vc3Bl Y3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICA0ICstCiAuLi4vcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAzNCArKysrKysrKysrKysrCiBzcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyMCArKysrKysrKwogMTMgZmls ZXMgY2hhbmdlZCwgMTU4IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bAppbmRleCBmNjUxYWQ5MGIxMC4uMjBmYzVkNjBjZjUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC05ODQ1 LDcgKzk4NDUsOCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNv dW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAgPC9wYXJhPgogICAg ICAgPHBhcmE+CiAgICAgICAgQWN0aW9uIHBlcmZvcm1lZCBhdCBlbmQgb2YgdHJhbnNhY3Rpb246 Ci0gICAgICAgPGxpdGVyYWw+bjwvbGl0ZXJhbD4gPSBubyBhY3Rpb24sIDxsaXRlcmFsPmQ8L2xp dGVyYWw+ID0gZHJvcCB0aGUgdmFyaWFibGUuCisgICAgICAgPGxpdGVyYWw+bjwvbGl0ZXJhbD4g PSBubyBhY3Rpb24sIDxsaXRlcmFsPmQ8L2xpdGVyYWw+ID0gZHJvcCB0aGUgdmFyaWFibGUsCisg ICAgICAgPGxpdGVyYWw+cjwvbGl0ZXJhbD4gPSByZXNldCB0aGUgdmFyaWFibGUgdG8gaXRzIGRl ZmF1bHQgdmFsdWUuCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKZGlmZiAt LWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCmluZGV4IDgxZmZiY2MzYzYyLi5kODEzNjY4YTc3 NiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCkBAIC0yNyw3ICsyNyw3IEBA IFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogIDxyZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4K IENSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RT IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFT IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+ IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBs YWNlYWJsZT4gXQotICAgIFsgT04gQ09NTUlUIERST1AgXQorICAgIFsgeyBPTiBDT01NSVQgRFJP UCB8IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCB9IF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5v cHNpc2Rpdj4KICA8cmVmc2VjdDE+CkBAIC0xMTcsNiArMTE3LDE3IEBAIENSRUFURSBbIHsgVEVN UE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwCiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFy bGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtb24tdHJhbnNhY3Rpb24tZW5kLXJlc2V0 Ij4KKyAgICA8dGVybT48bGl0ZXJhbD5PTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQ8L2xpdGVyYWw+ PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgPGxpdGVyYWw+ T04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUPC9saXRlcmFsPiBjbGF1c2UgY2F1c2VzIHRoZSBzZXNz aW9uCisgICAgICB2YXJpYWJsZSB0byBiZSByZXNldCB0byBpdHMgZGVmYXVsdCB2YWx1ZSB3aGVu IHRoZSB0cmFuc2FjdGlvbiBpcyBjb21taXR0ZWQKKyAgICAgIG9yIHJvbGxlZCBiYWNrLgorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgIDwvdmFy aWFibGVsaXN0PgogIDwvcmVmc2VjdDE+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwppbmRleCBmMjQ5YjliZWIyZi4uMzFkYjQyMGY0NzAgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTkxLDYgKzkxLDggQEAgdHlwZWRlZiBzdHJ1Y3Qg U1ZhcmlhYmxlRGF0YQogCXZvaWQJICAgKmRvbWFpbl9jaGVja19leHRyYTsKIAlMb2NhbFRyYW5z YWN0aW9uSWQgZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQ7CiAKKwlib29sCQlyZXNldF9hdF9lb3g7 CisKIAkvKgogCSAqIFRvcCBsZXZlbCBsb2NhbCB0cmFuc2FjdGlvbiBpZCBvZiB0aGUgbGFzdCB0 cmFuc2FjdGlvbiB0aGF0IGRyb3BwZWQgdGhlCiAJICogdmFyaWFibGUsIGlmIGFueS4gIFdlIG5l ZWQgdGhpcyBpbmZvcm1hdGlvbiB0byBhdm9pZCBmcmVlaW5nIG1lbW9yeSBmb3IKQEAgLTExOCw2 ICsxMjAsMTIgQEAgc3RhdGljIE1lbW9yeUNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9 IE5VTEw7CiAvKiBiZWNvbWVzIHRydWUgd2hlbiB3ZSByZWNlaXZlIGEgc2ludmFsIG1lc3NhZ2Ug Ki8KIHN0YXRpYyBib29sIG5lZWRzX3ZhbGlkYXRpb24gPSBmYWxzZTsKIAorLyoKKyAqIHRydWUs IHdoZW4gc29tZSB1c2VkIHNlc3Npb24gdmFyaWFibGUgaGFzIE9OIENPTU1JVCBEUk9QCisgKiBv ciBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgY2xhdXNlcworICovCitzdGF0aWMgYm9vbCBoYXNf c2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKKwogLyoKICAqIFRo ZSBjb250ZW50IG9mIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaXMgbm90IHJlbW92ZWQgaW1t ZWRpYXRlbHkuICBJZgogICogcG9zc2libGUsIHdlIGRvIHRoYXQgYXQgdGhlIGVuZCBvZiB0aGUg dHJhbnNhY3Rpb24uICBCdXQgd2UgY2Fubm90IGRvIHRoYXQKQEAgLTM5Myw2ICs0MDEsMzIgQEAg cmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoYm9vbCBhdEVPWCkKIAl9CiB9CiAKKy8q CisgKiByZW1vdmUgZW50cmllcyBtYXJrZWQgYXMgInJlc2V0X2F0X2VveCIKKyAqLworc3RhdGlj IHZvaWQKK3JlbW92ZV9zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCh2b2lkKQor eworCUhBU0hfU0VRX1NUQVRVUyBzdGF0dXM7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwlpZiAoIXNl c3Npb252YXJzKQorCQlyZXR1cm47CisKKwkvKiBsZWF2ZSBxdWNrbHksIHdoZW4gdGhlcmUgYXJl IG5vdCB0aGF0IHZhcmlhYmxlcyAqLworCWlmICghaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dpdGhf cmVzZXRfYXRfZW94KQorCQlyZXR1cm47CisKKwloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Np b252YXJzKTsKKwl3aGlsZSAoKHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0 YXR1cykpICE9IE5VTEwpCisJeworCQlpZiAoc3Zhci0+cmVzZXRfYXRfZW94KQorCQkJaGFzaF9z ZWFyY2goc2Vzc2lvbnZhcnMsICZzdmFyLT52YXJpZCwgSEFTSF9SRU1PVkUsIE5VTEwpOworCX0K KworCWhhc19zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCA9IGZhbHNlOworfQor CiAvKgogICAqIFBlcmZvcm0gT04gQ09NTUlUIERST1AgZm9yIHRlbXBvcmFyeSBzZXNzaW9uIHZh cmlhYmxlcywKICAgKiBhbmQgcmVtb3ZlIGFsbCBkcm9wcGVkIHZhcmlhYmxlcyBmcm9tIG1lbW9y eS4KQEAgLTQwMCw2ICs0MzQsOCBAQCByZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhi b29sIGF0RU9YKQogdm9pZAogQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29t bWl0KQogeworCXJlbW92ZV9zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCgpOwor CiAJaWYgKGlzQ29tbWl0KQogCXsKIAkJaWYgKHhhY3RfZHJvcF9pdGVtcykKQEAgLTUxMSw2ICs1 NDcsMjEgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlk KQogCXN2YXItPmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7CiAJc3Zhci0+ZG9tYWluX2NoZWNr X2V4dHJhX2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOwogCisJLyoKKwkgKiBXZSBk b24ndCBuZWVkIHRvIGV4cGxpY2l0bHkgcmVzZXQgdmFyaWFibGVzIG1hcmtlZCBPTiBDT01NSVQg RFJPUC4gSXQKKwkgKiBjYW4gYmUgZG9uZSBieSBzaW52YWwgbWVzc2FnZSBwcm9jZXNzaW5nLiBC dXQgdGhpcyBwcm9jZXNzaW5nIGNhbiBiZQorCSAqIHBvc3Rwb25lZCBkdWUgYWJvcnRlZCB0cmFu c2FjdGlvbi4gT24gc2Vjb25kIGhhbmQgdGhlcmUgaXMgbm90IGEKKwkgKiByZWFzb24sIHdoeSBk b24ndCBkbyBpdCBhdCB0cmFuc2FjdGlvbiBlbmQgaW1tZWRpYXRlbHkuCisJICovCisJaWYgKHZh cmZvcm0tPnZhcnhhY3RlbmRhY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9SRVNFVCB8fAorCQl2 YXJmb3JtLT52YXJ4YWN0ZW5kYWN0aW9uID09IFZBUklBQkxFX1hBQ1RFTkRfRFJPUCkKKwl7CisJ CXN2YXItPnJlc2V0X2F0X2VveCA9IHRydWU7CisJCWhhc19zZXNzaW9uX3ZhcmlhYmxlc193aXRo X3Jlc2V0X2F0X2VveCA9IHRydWU7CisJfQorCWVsc2UKKwkJc3Zhci0+cmVzZXRfYXRfZW94ID0g ZmFsc2U7CisKIAlzdmFyLT5kcm9wX2x4aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKIAogCXN2 YXItPmlzbnVsbCA9IHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA3YzA4OTU0OWI0Yi4uODNjZjkxZDNl ZmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQpAQCAtNTI1OCw2ICs1MjU4LDcgQEAgQ3JlYXRlU2Vzc2lvblZhclN0 bXQ6CiAgKiB0cmFuc2FjdGlvbiBlbmQgbGlrZSB0YWJsZXMuCiAgKi8KIFhhY3RFbmRBY3Rpb25P cHRpb246ICBPTiBDT01NSVQgRFJPUAkJCQl7ICQkID0gVkFSSUFCTEVfWEFDVEVORF9EUk9QOyB9 CisJCQl8IE9OIFRSQU5TQUNUSU9OIEVORF9QIFJFU0VUCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RF TkRfUkVTRVQ7IH0KIAkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gVkFSSUFCTEVfWEFDVEVO RF9OT09QOyB9CiAJCTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggOWUzMmM0Nzg0MTIuLmYyZjM3NzljNjcy IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMKQEAgLTU0MzYsNiArNTQzNiw3IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZl ICpmb3V0KQogCWludAkJCWlfdmFybmFtZXNwYWNlOwogCWludAkJCWlfdmFydHlwZTsKIAlpbnQJ CQlpX3ZhcnR5cG5hbWU7CisJaW50CQkJaV92YXJ4YWN0ZW5kYWN0aW9uOwogCWludAkJCWlfdmFy b3duZXI7CiAJaW50CQkJaV92YXJjb2xsYXRpb247CiAJaW50CQkJaV92YXJhY2w7CkBAIC01NDUz LDYgKzU0NTQsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAkvKiBnZXQgdGhlIHZh cmlhYmxlcyBpbiBjdXJyZW50IGRhdGFiYXNlICovCiAJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnks CiAJCQkJCSAgIlNFTEVDVCB2LnRhYmxlb2lkLCB2Lm9pZCwgdi52YXJuYW1lLFxuIgorCQkJCQkg ICIgICAgICAgdi52YXJ4YWN0ZW5kYWN0aW9uLFxuIgogCQkJCQkgICIgICAgICAgdi52YXJuYW1l c3BhY2UsIHYudmFydHlwZSxcbiIKIAkJCQkJICAiICAgICAgIHBnX2NhdGFsb2cuZm9ybWF0X3R5 cGUodi52YXJ0eXBlLCB2LnZhcnR5cG1vZCkgYXMgdmFydHlwbmFtZSxcbiIKIAkJCQkJICAiICAg ICAgIENBU0UgV0hFTiB2LnZhcmNvbGxhdGlvbiA8PiB0LnR5cGNvbGxhdGlvbiAiCkBAIC01NDc1 LDYgKzU0NzcsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAlpX3Zhcm5hbWVzcGFj ZSA9IFBRZm51bWJlcihyZXMsICJ2YXJuYW1lc3BhY2UiKTsKIAlpX3ZhcnR5cGUgPSBQUWZudW1i ZXIocmVzLCAidmFydHlwZSIpOwogCWlfdmFydHlwbmFtZSA9IFBRZm51bWJlcihyZXMsICJ2YXJ0 eXBuYW1lIik7CisJaV92YXJ4YWN0ZW5kYWN0aW9uID0gUFFmbnVtYmVyKHJlcywgInZhcnhhY3Rl bmRhY3Rpb24iKTsKIAlpX3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRp b24iKTsKIAogCWlfdmFyb3duZXIgPSBQUWZudW1iZXIocmVzLCAidmFyb3duZXIiKTsKQEAgLTU0 OTgsNiArNTUwMSw5IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCiAJCXZhcmluZm9b aV0udmFydHlwZSA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJ0eXBlKSk7CiAJCXZh cmluZm9baV0udmFydHlwbmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJ0 eXBuYW1lKSk7CisJCXZhcmluZm9baV0udmFyeGFjdGVuZGFjdGlvbiA9CisJCQlwZ19zdHJkdXAo UFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyeGFjdGVuZGFjdGlvbikpOworCiAJCXZhcmluZm9baV0u dmFyY29sbGF0aW9uID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmNvbGxhdGlvbikp OwogCiAJCXZhcmluZm9baV0uZGFjbC5hY2wgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGks IGlfdmFyYWNsKSk7CkBAIC01NTM4LDYgKzU1NDQsNyBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAq Zm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCVBRRXhwQnVmZmVyIHF1ZXJ5Owog CWNoYXIJICAgKnF1YWx2YXJuYW1lOwogCWNvbnN0IGNoYXIgKnZhcnR5cG5hbWU7CisJY29uc3Qg Y2hhciAqdmFyeGFjdGVuZGFjdGlvbjsKIAlPaWQJCQl2YXJjb2xsYXRpb247CiAKIAkvKiBza2lw IGlmIG5vdCB0byBiZSBkdW1wZWQgKi8KQEAgLTU1NDksNiArNTU1Niw3IEBAIGR1bXBWYXJpYWJs ZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAKIAlxdWFsdmFy bmFtZSA9IHBnX3N0cmR1cChmbXRRdWFsaWZpZWREdW1wYWJsZSh2YXJpbmZvKSk7CiAJdmFydHlw bmFtZSA9IHZhcmluZm8tPnZhcnR5cG5hbWU7CisJdmFyeGFjdGVuZGFjdGlvbiA9IHZhcmluZm8t PnZhcnhhY3RlbmRhY3Rpb247CiAJdmFyY29sbGF0aW9uID0gdmFyaW5mby0+dmFyY29sbGF0aW9u OwogCiAJYXBwZW5kUFFFeHBCdWZmZXIoZGVscSwgIkRST1AgVkFSSUFCTEUgJXM7XG4iLApAQCAt NTU2Nyw2ICs1NTc1LDkgQEAgZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlh YmxlSW5mbyAqdmFyaW5mbykKIAkJCQkJCQkgIGZtdFF1YWxpZmllZER1bXBhYmxlKGNvbGwpKTsK IAl9CiAKKwlpZiAoc3RyY21wKHZhcnhhY3RlbmRhY3Rpb24sICJyIikgPT0gMCkKKwkJYXBwZW5k UFFFeHBCdWZmZXIocXVlcnksICIgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIik7CisKIAlhcHBl bmRQUUV4cEJ1ZmZlcihxdWVyeSwgIjtcbiIpOwogCiAJaWYgKHZhcmluZm8tPmRvYmouZHVtcCAm IERVTVBfQ09NUE9ORU5UX0RFRklOSVRJT04pCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCA4YTYyYjViNDEyOC4u YTlhYzcwZDc2MTYgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNzE3LDYgKzcxNyw3IEBAIHR5cGVkZWYgc3Ry dWN0IF9WYXJpYWJsZUluZm8KIAlEdW1wYWJsZUFjbCBkYWNsOwogCU9pZAkJCXZhcnR5cGU7CiAJ Y2hhcgkgICAqdmFydHlwbmFtZTsKKwljaGFyCSAgICp2YXJ4YWN0ZW5kYWN0aW9uOwogCWNoYXIJ ICAgKnZhcmFjbDsKIAljaGFyCSAgICpydmFyYWNsOwogCWNoYXIJICAgKmluaXR2YXJhY2w7CmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdf ZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IDY0MjNlN2I5ZDI3Li43YjBjYzJjNWQ5NCAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9w Z19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTM5ODcsNiArMzk4NywyNCBAQCBteSAldGVzdHMg PSAoCiAJCX0sCiAJfSwKIAorCSdDUkVBVEUgVkFSSUFCTEUgdGVzdF92YXJpYWJsZSBPTiBUUkFO U0FDVElPTiBFTkQgUkVTRVQnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2Fs bCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJ Y3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMiBBUyBp bnRlZ2VyIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJ XFFDUkVBVEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMiBBUyBpbnRlZ2VyIE9OIFRSQU5T QUNUSU9OIEVORCBSRVNFVDtcRS94bSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJ JWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwK KwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25s eV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdDUkVBVEUgVklFVyB0 ZXN0X3ZpZXcnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDYxLAogCQljcmVhdGVfc3FsID0+ICdD UkVBVEUgVklFVyBkdW1wX3Rlc3QudGVzdF92aWV3CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwv ZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IGQ2ZDMwZTczZWU4Li4z Zjc0MzY3NmNhNyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3Jj L2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTUyNzMsNiArNTI3Myw3IEBAIGxpc3RWYXJpYWJsZXMo Y29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3NlKQogCQkJCQkgICIgIHBnX2NhdGFsb2cu cGdfZ2V0X3VzZXJieWlkKHYudmFyb3duZXIpIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBDQVNF IHYudmFyeGFjdGVuZGFjdGlvblxuIgogCQkJCQkgICIgICAgV0hFTiAnZCcgVEhFTiAnT04gQ09N TUlUIERST1AnXG4iCisJCQkJCSAgIiAgICBXSEVOICdyJyBUSEVOICdPTiBUUkFOU0FDVElPTiBF TkQgUkVTRVQnXG4iCiAJCQkJCSAgIiAgRU5EIGFzIFwiJXNcIlxuIiwKIAkJCQkJICBnZXR0ZXh0 X25vb3AoIlNjaGVtYSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiTmFtZSIpLApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ192YXJpYWJsZS5oCmluZGV4IDBmYzY3MmJjMmJhLi4wMDhmMmVlN2MxNyAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfdmFyaWFibGUuaApAQCAtNzUsNiArNzUsNyBAQCB0eXBlZGVmIGVudW0gVmFyaWFi bGVYYWN0RW5kQWN0aW9uCiB7CiAJVkFSSUFCTEVfWEFDVEVORF9OT09QID0gJ24nLAkvKiBOT09Q ICovCiAJVkFSSUFCTEVfWEFDVEVORF9EUk9QID0gJ2QnLAkvKiBPTiBDT01NSVQgRFJPUCAqLwor CVZBUklBQkxFX1hBQ1RFTkRfUkVTRVQgPSAncicsCS8qIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNF VCAqLwogfQkJCVZhcmlhYmxlWGFjdEVuZEFjdGlvbjsKIAogLyogLS0tLS0tLS0tLS0tLS0tLQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUu b3V0IGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0Cmlu ZGV4IGE2MDk3OTdkYzVkLi5lOWEyNTRiY2QxMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CisrKyBiL3NyYy90ZXN0L2lzb2xhdGlv bi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApAQCAtODYsMTEgKzg2LDEyIEBAIG15dmFy CiAKIHN0ZXAgc3IxOiBST0xMQkFDSzsKIAotc3RhcnRpbmcgcGVybXV0YXRpb246IGNyZWF0ZTMg bGV0MyBzMyBvX2NfZCBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2Mz IHN0YXRlCitzdGFydGluZyBwZXJtdXRhdGlvbjogY3JlYXRlMyBsZXQzIHMzIG9fY19kIG9fZW94 X3IgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBjbGVhbiBzdGF0 ZQogc3RlcCBjcmVhdGUzOiBDUkVBVEUgVkFSSUFCTEUgbXl2YXIzIEFTIHRleHQ7CiBzdGVwIGxl dDM6IExFVCBteXZhcjMgPSAndGVzdCc7CiBzdGVwIHMzOiBCRUdJTjsKIHN0ZXAgb19jX2Q6IENS RUFURSBURU1QIFZBUklBQkxFIG15dmFyX29fY19kIEFTIHRleHQgT04gQ09NTUlUIERST1A7Citz dGVwIG9fZW94X3I6IENSRUFURSBWQVJJQUJMRSBteXZhcl9vX2VveF9yIEFTIHRleHQgT04gVFJB TlNBQ1RJT04gRU5EIFJFU0VUOyBMRVQgbXl2YXJfb19lb3hfciA9ICd0ZXN0JzsKIHN0ZXAgY3Jl YXRlNDogQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0Owogc3RlcCBsZXQ0OiBMRVQgbXl2 YXI0ID0gJ3Rlc3QnOwogc3RlcCBkcm9wNDogRFJPUCBWQVJJQUJMRSBteXZhcjQ7CkBAIC0xMDMs NiArMTA0LDcgQEAgdAogCiBzdGVwIGRpc2NhcmQ6IERJU0NBUkQgVkFSSUFCTEVTOwogc3RlcCBz YzM6IENPTU1JVDsKK3N0ZXAgY2xlYW46IERST1AgVkFSSUFCTEUgbXl2YXJfb19lb3hfcjsKIHN0 ZXAgc3RhdGU6IFNFTEVDVCB2YXJuYW1lIEZST00gcGdfdmFyaWFibGU7CiB2YXJuYW1lCiAtLS0t LS0tCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJs ZS5zcGVjIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYwpp bmRleCA0NWU2NWQ0MDg1ZC4uNWQwODljOGE0ZWQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xh dGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9u L3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYwpAQCAtMjUsMTIgKzI1LDE0IEBAIHNlc3Npb24g czMKIHN0ZXAgczMJCQl7IEJFR0lOOyB9CiBzdGVwIGxldDMJCXsgTEVUIG15dmFyMyA9ICd0ZXN0 JzsgfQogc3RlcCBvX2NfZAkJeyBDUkVBVEUgVEVNUCBWQVJJQUJMRSBteXZhcl9vX2NfZCBBUyB0 ZXh0IE9OIENPTU1JVCBEUk9QOyB9CitzdGVwIG9fZW94X3IJeyBDUkVBVEUgVkFSSUFCTEUgbXl2 YXJfb19lb3hfciBBUyB0ZXh0IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDsgTEVUIG15dmFyX29f ZW94X3IgPSAndGVzdCc7IH0KIHN0ZXAgY3JlYXRlNAl7IENSRUFURSBWQVJJQUJMRSBteXZhcjQg QVMgdGV4dDsgfQogc3RlcCBsZXQ0CQl7IExFVCBteXZhcjQgPSAndGVzdCc7IH0KIHN0ZXAgZHJv cDQJCXsgRFJPUCBWQVJJQUJMRSBteXZhcjQ7IH0KIHN0ZXAgaW52YWwzCQl7IFNFTEVDVCBDT1VO VCgqKSA+PSAwIEZST00gcGdfZm9yZWlnbl90YWJsZTsgfQogc3RlcCBkaXNjYXJkCXsgRElTQ0FS RCBWQVJJQUJMRVM7IH0KIHN0ZXAgc2MzCQl7IENPTU1JVDsgfQorc3RlcCBjbGVhbgkJeyBEUk9Q IFZBUklBQkxFIG15dmFyX29fZW94X3I7IH0KIHN0ZXAgc3RhdGUJCXsgU0VMRUNUIHZhcm5hbWUg RlJPTSBwZ192YXJpYWJsZTsgfQogCiBzZXNzaW9uIHM0CkBAIC00OCw0ICs1MCw0IEBAIHBlcm11 dGF0aW9uIGxldCB2YWwgZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwKICMgY2FsbGluZyB0aGUgZGJn IHN0ZXAgYWZ0ZXIgdGhlIGNvbmN1cnJlbnQgZHJvcAogcGVybXV0YXRpb24gbGV0IHZhbCBzMSBk YmcgZHJvcCBjcmVhdGUgZGJnIHZhbCBzcjEKICMgdGVzdCBmb3IgRElTQ0FSRCBBTEwgd2hlbiBh bGwgaW50ZXJuYWwgcXVldWVzIGhhdmUgYWN0aW9ucyByZWdpc3RlcmVkCi1wZXJtdXRhdGlvbiBj cmVhdGUzIGxldDMgczMgb19jX2QgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNj YXJkIHNjMyBzdGF0ZQorcGVybXV0YXRpb24gY3JlYXRlMyBsZXQzIHMzIG9fY19kIG9fZW94X3Ig Y3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBjbGVhbiBzdGF0ZQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRl eCBmYWVkMzBlN2M4ZS4uYWQ5ZDFhMTg3ZTUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0yMzQ3LDMgKzIzNDcsMzcgQEAgU0VMRUNU IGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKICAgICAgMAogKDEgcm93KQog CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUOwor QkVHSU47CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0t CisgIDEwMAorKDEgcm93KQorCitDT01NSVQ7CistLSBzaG91bGQgYmUgTlVMTDsKK1NFTEVDVCB2 YXIxIElTIE5VTEw7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitCRUdJ TjsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAg MTAwCisoMSByb3cpCisKK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIx IElTIE5VTEw7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitEUk9QIFZB UklBQkxFIHZhcjE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwK aW5kZXggZTY3ZTVkYjk2YmQuLjkzMjkwNzhiZGQ5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv c2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xNjEyLDMgKzE2MTIsMjMgQEAgQ09NTUlUOwogU0VM RUNUIGNvdW50KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKIC0t IHNob3VsZCBiZSB6ZXJvCiBTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxl cygpOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gVFJBTlNBQ1RJT04gRU5EIFJF U0VUOworCitCRUdJTjsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworQ09NTUlU OworCistLSBzaG91bGQgYmUgTlVMTDsKK1NFTEVDVCB2YXIxIElTIE5VTEw7CisKK0JFR0lOOwor ICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CitST0xMQkFDSzsKKworLS0gc2hvdWxk IGJlIE5VTEwKK1NFTEVDVCB2YXIxIElTIE5VTEw7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKLS0g CjIuNDcuMQoK --000000000000f297a7062b2456dc Content-Type: text/x-patch; charset="US-ASCII"; name="v20250107-0014-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Disposition: attachment; filename="v20250107-0014-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5mz6bio8 RnJvbSA0MGIxZTgzNmI5YTE3Yzg3MDIwMTYwMDQ2N2FjNDMxM2FhZTdmMTFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMzo1MyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTQvMjJdIEltcGxlbWVudGF0aW9uIG9mIERFRkFVTFQgY2xhdXNlIC0gZGVmYXVsdCBleHByZXNz aW9ucwogZm9yIHNlc3Npb24gdmFyaWFibGVzCgpXaGVuIHRoZSBldmFsdWF0aW9uIG9mIGRlZmF1 bHQgZXhwcmVzc2lvbiBmYWlscywgd2UgcmVtb3ZlIHJlbGF0ZWQgZW50cnkgZnJvbSBzZXNzaW9u dmFycwpoYXNoIHRhYmxlLiBUaGVuIHNlc3Npb252YXJzIGNhbiBjb250YWluIG9ubHkgc3VjZXNz ZnVsbHkgaW5pdGlhbGl6ZWQgdmFsdWVzLiBUaGVuIHdlIGRvbid0Cm5lZWQgc3BlY2lhbCBmbGFn IGZvciBiYWRseSBpbml0aWFsaXplZCBzZXNzaW9uIHZhcmlhYmxlcy4KLS0tCiBkb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgOCArKwogZG9jL3NyYy9zZ21s L2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYgKystLQogZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgMjEgKysrLS0KIGRvYy9zcmMvc2dt bC9yZWYvZGlzY2FyZC5zZ21sICAgICAgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAyNyArKysrKysKIHNyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDg3ICsrKysrKysrKysrKysrKysr Ky0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8IDE1ICsr Ky0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyAgICAgICAgICAgICAgICB8ICAyICsK IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICA0ICsKIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDE0ICsrKwogc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9w Z19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgMzYgKysrKysrKysKIHNyYy9i aW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgMyArCiBzcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2Vfbm9kZS5oICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAzNiArKysrLS0tLQogLi4uL3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgNjMgKysrKysrKysrKysrKysKIHNy Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDQ4ICsrKysrKysr KysKIDIwIGZpbGVzIGNoYW5nZWQsIDM1MCBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sCmluZGV4IDIwZmM1ZDYwY2Y1Li5lODYzY2I5MTBlZiAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNn bWwKQEAgLTk4NzMsNiArOTg3MywxNCBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNlYWJsZT4mbHQ7 aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4mbAogICAgICAg PC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkg cm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24i PgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJkZWZleHByPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+cGdf bm9kZV90cmVlPC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhl IGludGVybmFsIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB2YXJpYWJsZSBkZWZhdWx0IHZhbHVlCisg ICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CiAgICAgPC90Ym9keT4KICAgIDwvdGdy b3VwPgogICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9j L3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IGNmOTZlYzQ5OGQxLi4zNGQwNThhYjE1NSAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApA QCAtNTM4MCwxNCArNTM4MCwxNCBAQCBTRUxFQ1QgY3VycmVudF91c2VyX2lkOwogCiAgICA8cGFy YT4KICAgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlzIGxvY2FsIHRvIHRoZSBj dXJyZW50IHNlc3Npb24uIFJldHJpZXZpbmcKLSAgICBhIHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJu cyBhIDxsaXRlcmFsPk5VTEw8L2xpdGVyYWw+LCB1bmxlc3MgaXRzIHZhbHVlIGhhcwotICAgIGJl ZW4gc2V0IHRvIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50IHNlc3Npb24gdXNpbmcgdGhl Ci0gICAgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLiAgU2Vzc2lvbiB2YXJpYWJsZXMg YXJlIG5vdCB0cmFuc2FjdGlvbmFsOgotICAgIGFueSBjaGFuZ2VzIG1hZGUgdG8gdGhlIHZhbHVl IG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpbiBhIHRyYW5zYWN0aW9uIHdvbid0Ci0gICAgYmUgdW5k b25lIGlmIHRoZSB0cmFuc2FjdGlvbiBpcyByb2xsZWQgYmFjayAoanVzdCBsaWtlIHZhcmlhYmxl cyBpbgotICAgIHByb2NlZHVyYWwgbGFuZ3VhZ2VzKS4gIFNlc3Npb24gdmFyaWFibGVzIHRoZW1z ZWx2ZXMgY2FuIGJlIHBlcnNpc3RlbnQKLSAgICBvciB0ZW1wb3JhcnksIGJ1dCB0aGVpciB2YWx1 ZXMgYXJlIG5laXRoZXIgcGVyc2lzdGVudCBub3Igc2hhcmVkIChsaWtlIHRoZQotICAgIGNvbnRl bnQgb2YgdGVtcG9yYXJ5IHRhYmxlcykuCisgICAgYSB2YXJpYWJsZSdzIHZhbHVlIHJldHVybnMg YSA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiBvciBhIGRlZmF1bHQgdmFsdWUsCisgICAgdW5sZXNz IGl0cyB2YWx1ZSBoYXMgIGJlZW4gc2V0IHRvIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50 IHNlc3Npb24KKyAgICB1c2luZyB0aGUgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLiAg U2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdAorICAgIHRyYW5zYWN0aW9uYWw6IGFueSBjaGFuZ2Vz IG1hZGUgdG8gdGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpbgorICAgIGEgdHJhbnNh Y3Rpb24gd29uJ3QgYmUgdW5kb25lIGlmIHRoZSB0cmFuc2FjdGlvbiBpcyByb2xsZWQgYmFjayAo anVzdCBsaWtlCisgICAgdmFyaWFibGVzIGluIHByb2NlZHVyYWwgbGFuZ3VhZ2VzKS4gIFNlc3Np b24gdmFyaWFibGVzIHRoZW1zZWx2ZXMgY2FuIGJlCisgICAgcGVyc2lzdGVudCBvciB0ZW1wb3Jh cnksIGJ1dCB0aGVpciB2YWx1ZXMgYXJlIG5laXRoZXIgcGVyc2lzdGVudCBub3Igc2hhcmVkCisg ICAgKGxpa2UgdGhlIGNvbnRlbnQgb2YgdGVtcG9yYXJ5IHRhYmxlcykuCiAgICA8L3BhcmE+CiAK ICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUu c2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKaW5kZXggZDgxMzY2 OGE3NzYuLjU3MzkxNTI4MTE5IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92 YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwK QEAgLTI3LDcgKzI3LDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lz ZGl2PgogPHN5bm9wc2lzPgogQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJM RSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwv cmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90 eXBlPC9yZXBsYWNlYWJsZT4gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCi0gICAgWyB7IE9OIENPTU1JVCBEUk9QIHwgT04g VFJBTlNBQ1RJT04gRU5EIFJFU0VUIH0gXQorICAgIFsgREVGQVVMVCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT4gXSBbIHsgT04gQ09NTUlU IERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBdCiA8L3N5bm9wc2lzPgogIDwvcmVm c3lub3BzaXNkaXY+CiAgPHJlZnNlY3QxPgpAQCAtNDEsMTAgKzQxLDEwIEBAIENSRUFURSBbIHsg VEVNUE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwCiAKICAgPHBhcmE+CiAgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlh YmxlIGlzIGxvY2FsIHRvIHRoZSBjdXJyZW50IHNlc3Npb24uICBSZXRyaWV2aW5nCi0gICBhIHNl c3Npb24gdmFyaWFibGUncyB2YWx1ZSByZXR1cm5zIE5VTEwsIHVubGVzcyBpdHMgdmFsdWUgaXMg c2V0IHRvCi0gICBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBzZXNzaW9uIHdpdGggYSA8 Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuCi0gICBUaGUgY29udGVudCBvZiBhIHNlc3Np b24gdmFyaWFibGUgaXMgbm90IHRyYW5zYWN0aW9uYWwuIFRoaXMgaXMgdGhlIHNhbWUgYXMKLSAg IHJlZ3VsYXIgdmFyaWFibGVzIGluIHByb2NlZHVyYWwgbGFuZ3VhZ2VzLgorICAgYSBzZXNzaW9u IHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBOVUxMIG9yIGEgZGVmYXVsdCB2YWx1ZSwgdW5sZXNz IGl0cyB2YWx1ZQorICAgaXMgc2V0IHRvIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50IHNl c3Npb24gd2l0aCBhIDxjb21tYW5kPkxFVDwvY29tbWFuZD4KKyAgIGNvbW1hbmQuICBUaGUgY29u dGVudCBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbm90IHRyYW5zYWN0aW9uYWwuICBUaGlzIGlz IHRoZQorICAgc2FtZSBhcyByZWd1bGFyIHZhcmlhYmxlcyBpbiBwcm9jZWR1cmFsIGxhbmd1YWdl cy4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgpAQCAtMTA1LDYgKzEwNSwxNyBAQCBDUkVBVEUgWyB7 IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNl YWJsZSBjbGFzcz0icAogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAg PHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLWRlZmF1bHQiPgorICAgIDx0ZXJt PjxsaXRlcmFsPkRFRkFVTFQgPHJlcGxhY2VhYmxlPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+ PC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhl IDxsaXRlcmFsPkRFRkFVTFQ8L2xpdGVyYWw+IGNsYXVzZSBjYW4gYmUgdXNlZCB0byBhc3NpZ24g YSBkZWZhdWx0CisgICAgICB2YWx1ZSB0byBhIHNlc3Npb24gdmFyaWFibGUuIFRoaXMgZXhwcmVz c2lvbiBpcyBldmFsdWF0ZWQgd2hlbiB0aGUgc2Vzc2lvbgorICAgICAgdmFyaWFibGUgaXMgZmly c3QgYWNjZXNzZWQgZm9yIHJlYWRpbmcgYW5kIGhhZCBub3QgeWV0IGJlZW4gYXNzaWduZWQgYSB2 YWx1ZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4K KwogICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLW9uLWNvbW1pdC1kcm9w Ij4KICAgICA8dGVybT48bGl0ZXJhbD5PTiBDT01NSVQgRFJPUDwvbGl0ZXJhbD48L3Rlcm0+CiAg ICAgPGxpc3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbAppbmRleCA2MWI5NjdmOWM5Yi4uNmIwY2I5 NTAzNGYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sCkBAIC03MSw3ICs3MSw4IEBAIERJU0NBUkQgeyBB TEwgfCBQTEFOUyB8IFNFUVVFTkNFUyB8IFRFTVBPUkFSWSB8IFRFTVAgfCBWQVJJQUJMRVMgfQog ICAgIDxsaXN0aXRlbT4KICAgICAgPHBhcmE+CiAgICAgICBSZXNldHMgdGhlIHZhbHVlIG9mIGFs bCBzZXNzaW9uIHZhcmlhYmxlcy4gSWYgYSB2YXJpYWJsZQotICAgICAgaXMgbGF0ZXIgcmV1c2Vk LCBpdCBpcyByZS1pbml0aWFsaXplZCB0byA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPi4KKyAgICAg IGlzIGxhdGVyIHJldXNlZCwgaXQgaXMgcmUtaW5pdGlhbGl6ZWQgdG8gZWl0aGVyCisgICAgICA8 bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiBvciBpdHMgZGVmYXVsdCB2YWx1ZS4KICAgICAgPC9wYXJh PgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFy aWFibGUuYwppbmRleCAwMGM5MGVhNmZkOC4uOGZiYTRjYzQ5M2IgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmMKQEAgLTI0LDYgKzI0LDkgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Zhcmlh YmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUg Im1pc2NhZG1pbi5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9jb2VyY2UuaCIKKyNpbmNsdWRl ICJwYXJzZXIvcGFyc2VfY29sbGF0ZS5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV9leHByLmgi CiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlu cy5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgpAQCAtMzcsNiArNDAsNyBAQCBzdGF0 aWMgT2JqZWN0QWRkcmVzcyBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJ CQkJCQkJCSBPaWQgdmFyT3duZXIsCiAJCQkJCQkJCQkgT2lkIHZhckNvbGxhdGlvbiwKIAkJCQkJ CQkJCSBib29sIGlmX25vdF9leGlzdHMsCisJCQkJCQkJCQkgTm9kZSAqdmFyRGVmZXhwciwKIAkJ CQkJCQkJCSBWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFyWGFjdEVuZEFjdGlvbik7CiAKIApAQCAt NTEsNiArNTUsNyBAQCBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQlP aWQgdmFyT3duZXIsCiAJCQkJT2lkIHZhckNvbGxhdGlvbiwKIAkJCQlib29sIGlmX25vdF9leGlz dHMsCisJCQkJTm9kZSAqdmFyRGVmZXhwciwKIAkJCQlWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFy WGFjdEVuZEFjdGlvbikKIHsKIAlBY2wJCSAgICp2YXJhY2w7CkBAIC0xMTQsNiArMTE5LDExIEBA IGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCXZhbHVlc1tBbnVtX3BnX3Zh cmlhYmxlX3ZhcmNvbGxhdGlvbiAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJDb2xsYXRpb24p OwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnhhY3RlbmRhY3Rpb24gLSAxXSA9IENoYXJH ZXREYXR1bSh2YXJYYWN0RW5kQWN0aW9uKTsKIAorCWlmICh2YXJEZWZleHByKQorCQl2YWx1ZXNb QW51bV9wZ192YXJpYWJsZV92YXJkZWZleHByIC0gMV0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKG5v ZGVUb1N0cmluZyh2YXJEZWZleHByKSk7CisJZWxzZQorCQludWxsc1tBbnVtX3BnX3ZhcmlhYmxl X3ZhcmRlZmV4cHIgLSAxXSA9IHRydWU7CisKIAl2YXJhY2wgPSBnZXRfdXNlcl9kZWZhdWx0X2Fj bChPQkpFQ1RfVkFSSUFCTEUsIHZhck93bmVyLAogCQkJCQkJCQkgIHZhck5hbWVzcGFjZSk7CiAJ aWYgKHZhcmFjbCAhPSBOVUxMKQpAQCAtMTUwLDYgKzE2MCwxMSBAQCBjcmVhdGVfdmFyaWFibGUo Y29uc3QgY2hhciAqdmFyTmFtZSwKIAlyZWNvcmRfb2JqZWN0X2FkZHJlc3NfZGVwZW5kZW5jaWVz KCZteXNlbGYsIGFkZHJzLCBERVBFTkRFTkNZX05PUk1BTCk7CiAJZnJlZV9vYmplY3RfYWRkcmVz c2VzKGFkZHJzKTsKIAorCS8qIGRlcGVuZGVuY3kgb24gZGVmYXVsdCBleHByICovCisJaWYgKHZh ckRlZmV4cHIpCisJCXJlY29yZERlcGVuZGVuY3lPbkV4cHIoJm15c2VsZiwgKE5vZGUgKikgdmFy RGVmZXhwciwKKwkJCQkJCQkgICBOSUwsIERFUEVOREVOQ1lfTk9STUFMKTsKKwogCS8qIGRlcGVu ZGVuY3kgb24gb3duZXIgKi8KIAlyZWNvcmREZXBlbmRlbmN5T25Pd25lcihWYXJpYWJsZVJlbGF0 aW9uSWQsIHZhcmlkLCB2YXJPd25lcik7CiAKQEAgLTE4NSw2ICsyMDAsNyBAQCBDcmVhdGVWYXJp YWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCU9p ZAkJCWNvbGxhdGlvbjsKIAlPaWQJCQl0eXBjb2xsYXRpb247CiAJT2JqZWN0QWRkcmVzcyB2YXJp YWJsZTsKKwlOb2RlCSAgICpjb29rZWRfZGVmYXVsdCA9IE5VTEw7CiAKIAkvKiBjaGVjayBjb25z aXN0ZW5jeSBvZiBhcmd1bWVudHMgKi8KIAlpZiAoc3RtdC0+WGFjdEVuZEFjdGlvbiA9PSBWQVJJ QUJMRV9YQUNURU5EX0RST1AKQEAgLTIyNiw2ICsyNDIsMTYgQEAgQ3JlYXRlVmFyaWFibGUoUGFy c2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVTZXNzaW9uVmFyU3RtdCAqc3RtdCkKIAkJCQkJCWZvcm1h dF90eXBlX2JlKHR5cGlkKSksCiAJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHN0bXQt PmNvbGxDbGF1c2UtPmxvY2F0aW9uKSkpOwogCisJaWYgKHN0bXQtPmRlZmV4cHIpCisJeworCQlj b29rZWRfZGVmYXVsdCA9IHRyYW5zZm9ybUV4cHIocHN0YXRlLCBzdG10LT5kZWZleHByLAorCQkJ CQkJCQkJICAgRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQpOworCisJCWNvb2tlZF9kZWZhdWx0 ID0gY29lcmNlX3RvX3NwZWNpZmljX3R5cGUocHN0YXRlLAorCQkJCQkJCQkJCQkJIGNvb2tlZF9k ZWZhdWx0LCB0eXBpZCwgIkRFRkFVTFQiKTsKKwkJYXNzaWduX2V4cHJfY29sbGF0aW9ucyhwc3Rh dGUsIGNvb2tlZF9kZWZhdWx0KTsKKwl9CisKIAl2YXJpYWJsZSA9IGNyZWF0ZV92YXJpYWJsZShz dG10LT52YXJpYWJsZS0+cmVsbmFtZSwKIAkJCQkJCQkgICBuYW1lc3BhY2VpZCwKIAkJCQkJCQkg ICB0eXBpZCwKQEAgLTIzMyw2ICsyNTksNyBAQCBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpw c3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCQkJCQkJCSAgIHZhcm93bmVyLAog CQkJCQkJCSAgIGNvbGxhdGlvbiwKIAkJCQkJCQkgICBzdG10LT5pZl9ub3RfZXhpc3RzLAorCQkJ CQkJCSAgIGNvb2tlZF9kZWZhdWx0LAogCQkJCQkJCSAgIHN0bXQtPlhhY3RFbmRBY3Rpb24pOwog CiAJZWxvZyhERUJVRzEsICJyZWNvcmQgZm9yIHNlc3Npb24gdmFyaWFibGUgXCIlc1wiIChvaWQ6 JWQpIHdhcyBjcmVhdGVkIGluIHBnX3ZhcmlhYmxlIiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuYwppbmRleCAzMWRiNDIwZjQ3MC4uZjY0OGUzMGRkOGIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRl ICJleGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNp bmNsdWRlICJtaXNjYWRtaW4uaCIKKyNpbmNsdWRlICJvcHRpbWl6ZXIvb3B0aW1pemVyLmgiCiAj aW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1n ci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvcHJvYy5oIgpAQCAtNTE4LDExICs1MTksNjggQEAgQXRF T1N1YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0LAogCX0KIH0KIAorLyoKKyAq IGV2YWx1YXRlIGFuIGV4cHJlc3Npb24KKyAqLworc3RhdGljIHZvaWQKK2V2YWxfYXNzaWduX2Rl ZmV4cHIoU1ZhcmlhYmxlIHN2YXIsIEhlYXBUdXBsZSB0dXApCit7CisJRGF0dW0JCWRlZmV4cHJf dmFsdWU7CisJYm9vbAkJaXNudWxsOworCisJQXNzZXJ0KHN2YXIpOworCUFzc2VydChzdmFyLT5p c192YWxpZCk7CisJQXNzZXJ0KEhlYXBUdXBsZUlzVmFsaWQodHVwKSk7CisKKwlkZWZleHByX3Zh bHVlID0gU3lzQ2FjaGVHZXRBdHRyKFZBUklBQkxFT0lELAorCQkJCQkJCQkJdHVwLAorCQkJCQkJ CQkJQW51bV9wZ192YXJpYWJsZV92YXJkZWZleHByLAorCQkJCQkJCQkJJmlzbnVsbCk7CisKKwlp ZiAoIWlzbnVsbCkKKwl7CisJCUVTdGF0ZQkgICAqZXN0YXRlOworCQlFeHByU3RhdGUgICpkZWZl eHByczsKKwkJRXhwcgkgICAqZGVmZXhwcjsKKwkJY2hhcgkgICAqZGVmZXhwcl9zdHI7CisJCURh dHVtCQl2YWx1ZTsKKwkJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CisKKwkJZXN0YXRlID0gQ3JlYXRl RXhlY3V0b3JTdGF0ZSgpOworCisJCWRlZmV4cHJfc3RyID0gVGV4dERhdHVtR2V0Q1N0cmluZyhk ZWZleHByX3ZhbHVlKTsKKwkJZGVmZXhwciA9IChFeHByICopIHN0cmluZ1RvTm9kZShkZWZleHBy X3N0cik7CisKKwkJb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGVzdGF0ZS0+ZXNfcXVl cnlfY3h0KTsKKworCQlkZWZleHByID0gZXhwcmVzc2lvbl9wbGFubmVyKChFeHByICopIGRlZmV4 cHIpOworCQlkZWZleHBycyA9IEV4ZWNJbml0RXhwcihkZWZleHByLCBOVUxMKTsKKworCQl2YWx1 ZSA9IEV4ZWNFdmFsRXhwclN3aXRjaENvbnRleHQoZGVmZXhwcnMsCisJCQkJCQkJCQkJICBHZXRQ ZXJUdXBsZUV4cHJDb250ZXh0KGVzdGF0ZSksCisJCQkJCQkJCQkJICAmaXNudWxsKTsKKworCQlN ZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKKworCQlpZiAoIWlzbnVsbCkKKwkJeworCQkJ b2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKFNWYXJpYWJsZU1lbW9yeUNvbnRleHQpOwor CisJCQlzdmFyLT52YWx1ZSA9IGRhdHVtQ29weSh2YWx1ZSwgc3Zhci0+dHlwYnl2YWwsIHN2YXIt PnR5cGxlbik7CisJCQlzdmFyLT5pc251bGwgPSBmYWxzZTsKKworCQkJTWVtb3J5Q29udGV4dFN3 aXRjaFRvKG9sZGN4dCk7CisJCX0KKworCQlGcmVlRXhlY3V0b3JTdGF0ZShlc3RhdGUpOworCX0K K30KKwogLyoKICAqIEluaXRpYWxpemUgYXR0cmlidXRlcyBjYWNoZWQgaW4gInN2YXIiCiAgKi8K IHN0YXRpYyB2b2lkCi1zZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQg dmFyaWQpCitzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQs IGJvb2wgaXNfd3JpdGUpCiB7CiAJSGVhcFR1cGxlCXR1cDsKIAlGb3JtX3BnX3ZhcmlhYmxlIHZh cmZvcm07CkBAIC01NzIsNiArNjMwLDkgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFi bGUgc3ZhciwgT2lkIHZhcmlkKQogCXN2YXItPmhhc2h2YWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZh bHVlMShWQVJJQUJMRU9JRCwKIAkJCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOwog CisJaWYgKCFpc193cml0ZSkKKwkJZXZhbF9hc3NpZ25fZGVmZXhwcihzdmFyLCB0dXApOworCiAJ UmVsZWFzZVN5c0NhY2hlKHR1cCk7CiB9CiAKQEAgLTYwMSw3ICs2NjIsNyBAQCBzZXRfc2Vzc2lv bl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQogCSAq LwogCWlmICghc3Zhci0+aXNfdmFsaWQpCiAJewotCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKCZs b2NzdmFyLCBzdmFyLT52YXJpZCk7CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoJmxvY3N2YXIs IHN2YXItPnZhcmlkLCBmYWxzZSk7CiAJCV9zdmFyID0gJmxvY3N2YXI7CiAJfQogCWVsc2UKQEAg LTczNCw3ICs3OTUsMjUgQEAgZ2V0X3Nlc3Npb25fdmFyaWFibGUoT2lkIHZhcmlkKQogCSAqLwog CWlmICghc3Zhci0+aXNfdmFsaWQpCiAJewotCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIs IHZhcmlkKTsKKwkJLyogaW4gdGhpcyBjYXNlIHdlIHdhbnQgdG8gdXNlIGRlZmV4cCBpZiBpdCBp cyBkZWZpbmVkICovCisJCVBHX1RSWSgpOworCQl7CisJCQkvKgorCQkJICogSW4gdGhpcyBjYXNl LCB0aGUgc2V0dXAgY2FuIGV4ZWN1dGUgZGVmYXVsdCBleHByZXNzaW9uLiBXaGVuCisJCQkgKiB0 aGUgZXhlY3V0aW9uIG9mIGRlZmF1bHQgZXhwcmVzc2lvbiBmYWlscywgdGhlbiB3ZSBuZWVkIHRv CisJCQkgKiByZW1vdmUgZW50cnkgZnJvbSBzZXNzaW9uIHZhcnMuCisJCQkgKi8KKwkJCXNldHVw X3Nlc3Npb25fdmFyaWFibGUoc3ZhciwgdmFyaWQsIGZhbHNlKTsKKwkJfQorCQlQR19DQVRDSCgp OworCQl7CisJCQkvKiB0aGlzIGVudHJ5IGNhbm5vdCBiZSB2YWxpZCwgcmVtb3ZlIGZyb20gc2Vz c2lvbnZhcnMgKi8KKwkJCWhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsIEhBU0hfUkVN T1ZFLCBOVUxMKTsKKworCQkJLyogcHJvcGFnYXRlIHRoZSBlcnJvciAqLworCQkJUEdfUkVfVEhS T1coKTsKKwkJfQorCQlQR19FTkRfVFJZKCk7CiAKIAkJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZh cmlhYmxlIFwiJXMuJXNcIiAob2lkOiV1KSBoYXMgYXNzaWduZWQgZW50cnkgaW4gbWVtb3J5IChl bWl0dGVkIGJ5IFJFQUQpIiwKIAkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFy aWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCkBAIC03OTgsNyArODc3LDcgQEAgU2V0U2Vzc2lvblZh cmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQogCiAJaWYgKCFmb3Vu ZCkKIAl7Ci0JCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoc3ZhciwgdmFyaWQpOworCQlzZXR1cF9z ZXNzaW9uX3ZhcmlhYmxlKHN2YXIsIHZhcmlkLCB0cnVlKTsKIAogCQllbG9nKERFQlVHMSwgInNl c3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBhc3NpZ25lZCBlbnRyeSBpbiBt ZW1vcnkgKGVtaXR0ZWQgYnkgV1JJVEUpIiwKIAkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nl c3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA4 M2NmOTFkM2VmYi4uODQxZDlmOGRmZGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNjM3LDYgKzYzNyw3IEBA IHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0 ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8cGFydGJvdW5kc3BlYz4gUGFydGl0aW9u Qm91bmRTcGVjCiAldHlwZSA8bGlzdD4JCWhhc2hfcGFydGJvdW5kCiAldHlwZSA8ZGVmZWx0PgkJ aGFzaF9wYXJ0Ym91bmRfZWxlbQorJXR5cGUgPG5vZGU+CQlPcHRTZXNzaW9uVmFyRGVmRXhwcgog CiAldHlwZSA8bm9kZT4JanNvbl9mb3JtYXRfY2xhdXNlCiAJCQkJanNvbl9mb3JtYXRfY2xhdXNl X29wdApAQCAtNTIyOSwzMCArNTIzMCwzNiBAQCBjcmVhdGVfZXh0ZW5zaW9uX29wdF9pdGVtOgog ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLwogCiBDcmVhdGVTZXNzaW9uVmFyU3RtdDoKLQkJCUNSRUFU RSBPcHRUZW1wIFZBUklBQkxFIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29s bGF0ZV9jbGF1c2UgWGFjdEVuZEFjdGlvbk9wdGlvbgorCQkJQ1JFQVRFIE9wdFRlbXAgVkFSSUFC TEUgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHRT ZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCiAJCQkJewogCQkJCQlDcmVhdGVT ZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsKIAkJCQkJ JDQtPnJlbHBlcnNpc3RlbmNlID0gJDI7CiAJCQkJCW4tPnZhcmlhYmxlID0gJDQ7CiAJCQkJCW4t PnR5cGVOYW1lID0gJDY7CiAJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAk NzsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQ4OworCQkJCQluLT5kZWZleHByID0gJDg7CisJ CQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkOTsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZhbHNl OwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgT3B0VGVtcCBWQVJJ QUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9j b2xsYXRlX2NsYXVzZSBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQl8IENSRUFURSBPcHRUZW1wIFZB UklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0 X2NvbGxhdGVfY2xhdXNlIE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24K IAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vz c2lvblZhclN0bXQpOwogCQkJCQkkNy0+cmVscGVyc2lzdGVuY2UgPSAkMjsKIAkJCQkJbi0+dmFy aWFibGUgPSAkNzsKIAkJCQkJbi0+dHlwZU5hbWUgPSAkOTsKIAkJCQkJbi0+Y29sbENsYXVzZSA9 IChDb2xsYXRlQ2xhdXNlICopICQxMDsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMTsKKwkJ CQkJbi0+ZGVmZXhwciA9ICQxMTsKKwkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMjsKIAkJCQkJ bi0+aWZfbm90X2V4aXN0cyA9IHRydWU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CiAJ CTsKIAorT3B0U2Vzc2lvblZhckRlZkV4cHI6IERFRkFVTFQgYl9leHByCQkJCQl7ICQkID0gJDI7 IH0KKwkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAkJCA9IE5VTEw7IH0KKwkJOworCiAvKgogICog VGVtcG9yYXJ5IHNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBkcm9wcGVkIG9uIHN1Y2Nlc3NmdWwK ICAqIHRyYW5zYWN0aW9uIGVuZCBsaWtlIHRhYmxlcy4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9hZ2cuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwppbmRl eCA0NzM3YjA0ZDE3MS4uNTRiNzY1YzhlYjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9hZ2cuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKQEAgLTQ4 OCw2ICs0ODgsNyBAQCBjaGVja19hZ2dsZXZlbHNfYW5kX2NvbnN0cmFpbnRzKFBhcnNlU3RhdGUg KnBzdGF0ZSwgTm9kZSAqZXhwcikKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DT0xVTU5f REVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKKwkJY2FzZSBFWFBS X0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAogCQkJaWYgKGlzQWdnKQogCQkJCWVyciA9IF8oImFn Z3JlZ2F0ZSBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRkFVTFQgZXhwcmVzc2lvbnMi KTsKQEAgLTkzNyw2ICs5MzgsNyBAQCB0cmFuc2Zvcm1XaW5kb3dGdW5jQ2FsbChQYXJzZVN0YXRl ICpwc3RhdGUsIFdpbmRvd0Z1bmMgKndmdW5jLAogCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5E X0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgorCQlj YXNlIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUOgogCQkJZXJyID0gXygid2luZG93IGZ1bmN0 aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gREVGQVVMVCBleHByZXNzaW9ucyIpOwogCQkJYnJlYWs7 CiAJCWNhc2UgRVhQUl9LSU5EX0lOREVYX0VYUFJFU1NJT046CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIu YwppbmRleCBiODVhOTdjYTc4ZS4uY2E5NjhiNWM2Y2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIu YwpAQCAtNTg4LDYgKzU4OCw3IEBAIGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMo UGFyc2VFeHByS2luZCBwX2V4cHJfa2luZCkKIAkJY2FzZSBFWFBSX0tJTkRfSk9JTl9VU0lORzoK IAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKIAkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RB UkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCXJlc3VsdCA9IGZh bHNlOwogCQkJYnJlYWs7CiAJfQpAQCAtNjczLDYgKzY3NCw3IEBAIHRyYW5zZm9ybUNvbHVtblJl ZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJY2FzZSBFWFBSX0tJTkRf Q1lDTEVfTUFSSzoKIAkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKIAkJY2FzZSBFWFBS X0tJTkRfTEVUX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJ CS8qIG9rYXkgKi8KIAkJCWJyZWFrOwogCkBAIC0yMTQ2LDYgKzIxNDgsNyBAQCB0cmFuc2Zvcm1T dWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKIAkJCWJyZWFrOwog CQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJ T05fREVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCWVyciA9 IF8oImNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gREVGQVVMVCBleHByZXNzaW9uIik7CiAJCQlicmVh azsKIAkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lPTjoKQEAgLTM0OTgsNiArMzUwMSw3 IEBAIFBhcnNlRXhwcktpbmROYW1lKFBhcnNlRXhwcktpbmQgZXhwcktpbmQpCiAJCQlyZXR1cm4g IkNIRUNLIjsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9L SU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQ6 CiAJCQlyZXR1cm4gIkRFRkFVTFQiOwogCQljYXNlIEVYUFJfS0lORF9JTkRFWF9FWFBSRVNTSU9O OgogCQkJcmV0dXJuICJpbmRleCBleHByZXNzaW9uIjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9mdW5jLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCmlu ZGV4IGRjMjVmNmRjZDBlLi5kOWYxNWMyNjE4ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX2Z1bmMuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCkBA IC0yNjIwLDYgKzI2MjAsNyBAQCBjaGVja19zcmZfY2FsbF9wbGFjZW1lbnQoUGFyc2VTdGF0ZSAq cHN0YXRlLCBOb2RlICpsYXN0X3NyZiwgaW50IGxvY2F0aW9uKQogCQkJYnJlYWs7CiAJCWNhc2Ug RVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZB VUxUOgorCQljYXNlIEVYUFJfS0lORF9WQVJJQUJMRV9ERUZBVUxUOgogCQkJZXJyID0gXygic2V0 LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRkFVTFQgZXhwcmVzc2lv bnMiKTsKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9JTkRFWF9FWFBSRVNTSU9OOgpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmMKaW5kZXggZjJmMzc3OWM2NzIuLmE2YzMzZDJlZGVmIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKQEAgLTU0 MzYsNiArNTQzNiw3IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCWludAkJCWlfdmFy bmFtZXNwYWNlOwogCWludAkJCWlfdmFydHlwZTsKIAlpbnQJCQlpX3ZhcnR5cG5hbWU7CisJaW50 CQkJaV92YXJkZWZleHByOwogCWludAkJCWlfdmFyeGFjdGVuZGFjdGlvbjsKIAlpbnQJCQlpX3Zh cm93bmVyOwogCWludAkJCWlfdmFyY29sbGF0aW9uOwpAQCAtNTQ2MSw2ICs1NDYyLDcgQEAgZ2V0 VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJCQkJCSAgIiAgICAgICAgICAgIFRIRU4gdi52YXJj b2xsYXRpb25cbiIKIAkJCQkJICAiICAgICAgICAgICAgRUxTRSAwXG4iCiAJCQkJCSAgIiAgICAg ICBFTkQgQVMgdmFyY29sbGF0aW9uLFxuIgorCQkJCQkgICIgICAgICAgcGdfY2F0YWxvZy5wZ19n ZXRfZXhwcih2LnZhcmRlZmV4cHIsMCkgYXMgdmFyZGVmZXhwcixcbiIKIAkJCQkJICAiICAgICAg IHYudmFyb3duZXIsIHYudmFyYWNsLFxuIgogCQkJCQkgICIgICAgICAgYWNsZGVmYXVsdCgnVics IHYudmFyb3duZXIpIEFTIGFjbGRlZmF1bHRcbiIKIAkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBn X3ZhcmlhYmxlIHZcbiIKQEAgLTU0NzcsNiArNTQ3OSw3IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZl ICpmb3V0KQogCWlfdmFybmFtZXNwYWNlID0gUFFmbnVtYmVyKHJlcywgInZhcm5hbWVzcGFjZSIp OwogCWlfdmFydHlwZSA9IFBRZm51bWJlcihyZXMsICJ2YXJ0eXBlIik7CiAJaV92YXJ0eXBuYW1l ID0gUFFmbnVtYmVyKHJlcywgInZhcnR5cG5hbWUiKTsKKwlpX3ZhcmRlZmV4cHIgPSBQUWZudW1i ZXIocmVzLCAidmFyZGVmZXhwciIpOwogCWlfdmFyeGFjdGVuZGFjdGlvbiA9IFBRZm51bWJlcihy ZXMsICJ2YXJ4YWN0ZW5kYWN0aW9uIik7CiAJaV92YXJjb2xsYXRpb24gPSBQUWZudW1iZXIocmVz LCAidmFyY29sbGF0aW9uIik7CiAKQEAgLTU1MTIsNiArNTUxNSwxMSBAQCBnZXRWYXJpYWJsZXMo QXJjaGl2ZSAqZm91dCkKIAkJdmFyaW5mb1tpXS5kYWNsLmluaXRwcml2cyA9IE5VTEw7CiAJCXZh cmluZm9baV0ucm9sbmFtZSA9IGdldFJvbGVOYW1lKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zhcm93 bmVyKSk7CiAKKwkJaWYgKFBRZ2V0aXNudWxsKHJlcywgaSwgaV92YXJkZWZleHByKSkKKwkJCXZh cmluZm9baV0udmFyZGVmZXhwciA9IE5VTEw7CisJCWVsc2UKKwkJCXZhcmluZm9baV0udmFyZGVm ZXhwciA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJkZWZleHByKSk7CisKIAkJ LyogZG8gbm90IHRyeSB0byBkdW1wIEFDTCBpZiBubyBBQ0wgZXhpc3RzICovCiAJCWlmICghUFFn ZXRpc251bGwocmVzLCBpLCBpX3ZhcmFjbCkpCiAJCQl2YXJpbmZvW2ldLmRvYmouY29tcG9uZW50 cyB8PSBEVU1QX0NPTVBPTkVOVF9BQ0w7CkBAIC01NTQ0LDYgKzU1NTIsNyBAQCBkdW1wVmFyaWFi bGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCVBRRXhwQnVm ZmVyIHF1ZXJ5OwogCWNoYXIJICAgKnF1YWx2YXJuYW1lOwogCWNvbnN0IGNoYXIgKnZhcnR5cG5h bWU7CisJY29uc3QgY2hhciAqdmFyZGVmZXhwcjsKIAljb25zdCBjaGFyICp2YXJ4YWN0ZW5kYWN0 aW9uOwogCU9pZAkJCXZhcmNvbGxhdGlvbjsKIApAQCAtNTU1Niw2ICs1NTY1LDcgQEAgZHVtcFZh cmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAogCXF1 YWx2YXJuYW1lID0gcGdfc3RyZHVwKGZtdFF1YWxpZmllZER1bXBhYmxlKHZhcmluZm8pKTsKIAl2 YXJ0eXBuYW1lID0gdmFyaW5mby0+dmFydHlwbmFtZTsKKwl2YXJkZWZleHByID0gdmFyaW5mby0+ dmFyZGVmZXhwcjsKIAl2YXJ4YWN0ZW5kYWN0aW9uID0gdmFyaW5mby0+dmFyeGFjdGVuZGFjdGlv bjsKIAl2YXJjb2xsYXRpb24gPSB2YXJpbmZvLT52YXJjb2xsYXRpb247CiAKQEAgLTU1NzUsNiAr NTU4NSwxMCBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZv ICp2YXJpbmZvKQogCQkJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY29sbCkpOwogCX0KIAor CWlmICh2YXJkZWZleHByKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiBERUZBVUxUICVz IiwKKwkJCQkJCSAgdmFyZGVmZXhwcik7CisKIAlpZiAoc3RyY21wKHZhcnhhY3RlbmRhY3Rpb24s ICJyIikgPT0gMCkKIAkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksICIgT04gVFJBTlNBQ1RJT04g RU5EIFJFU0VUIik7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmggYi9z cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IGE5YWM3MGQ3NjE2Li4yNjEzNzAwZTE5ZCAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5oCkBAIC03MTcsNiArNzE3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1ZhcmlhYmxl SW5mbwogCUR1bXBhYmxlQWNsIGRhY2w7CiAJT2lkCQkJdmFydHlwZTsKIAljaGFyCSAgICp2YXJ0 eXBuYW1lOworCWNoYXIJICAgKnZhcmRlZmV4cHI7CiAJY2hhcgkgICAqdmFyeGFjdGVuZGFjdGlv bjsKIAljaGFyCSAgICp2YXJhY2w7CiAJY2hhcgkgICAqcnZhcmFjbDsKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3Bn X2R1bXAucGwKaW5kZXggN2IwY2MyYzVkOTQuLmZjZjY4OTY2YjBlIDEwMDY0NAotLS0gYS9zcmMv YmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAorKysgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJf cGdfZHVtcC5wbApAQCAtNDAwNSw2ICs0MDA1LDQyIEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9 LAogCisJJ0NSRUFURSBWQVJJQUJMRSB0ZXN0X3ZhcmlhYmxlIERFRkFVTFQnID0+IHsKKwkJYWxs X3J1bnMgICAgID0+IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5kcycs CisJCWNyZWF0ZV9vcmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgVkFSSUFC TEUgZHVtcF90ZXN0LnZhcmlhYmxlMyBBUyBpbnRlZ2VyIERFRkFVTFQgMTA7JywKKwkJcmVnZXhw ID0+IHFyL14KKwkJCVxRQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTMgQVMgaW50 ZWdlciBERUZBVUxUIDEwO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQkl ZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAor CQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5 X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCisJJ0NSRUFURSBWQVJJQUJM RSB0ZXN0X3ZhcmlhYmxlIERFRkFVTFQgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUJyA9PiB7CisJ CWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFu ZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFZB UklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTQgQVMgaW50ZWdlciBERUZBVUxUIDEwIE9OIFRSQU5T QUNUSU9OIEVORCBSRVNFVCcsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBWQVJJQUJM RSBkdW1wX3Rlc3QudmFyaWFibGU0IEFTIGludGVnZXIgREVGQVVMVCAxMCBPTiBUUkFOU0FDVElP TiBFTkQgUkVTRVQ7XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1w X3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVu bGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVt cF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKIAknQ1JFQVRFIFZJRVcgdGVzdF92 aWV3JyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA2MSwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRF IFZJRVcgZHVtcF90ZXN0LnRlc3RfdmlldwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCAzZjc0MzY3NmNhNy4uMjkwZGM2 MjRmZTUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4v cHNxbC9kZXNjcmliZS5jCkBAIC01MjUwLDcgKzUyNTAsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0 IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlQUUV4cEJ1ZmZlckRhdGEgYnVmOwogCVBH cmVzdWx0ICAgKnJlczsKIAlwcmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OwotCXN0YXRp YyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKwlzdGF0aWMgY29uc3QgYm9vbCB0 cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OwogCiAJaWYgKHBzZXQuc3ZlcnNpb24gPCAxODAw MDApCiAJewpAQCAtNTI3MSw2ICs1MjcxLDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpw YXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAgIiAgKFNFTEVDVCBjLmNvbGxuYW1lIEZST00g cGdfY2F0YWxvZy5wZ19jb2xsYXRpb24gYywgcGdfY2F0YWxvZy5wZ190eXBlIGJ0XG4iCiAJCQkJ CSAgIiAgIFdIRVJFIGMub2lkID0gdi52YXJjb2xsYXRpb24gQU5EIGJ0Lm9pZCA9IHYudmFydHlw ZSBBTkQgdi52YXJjb2xsYXRpb24gPD4gYnQudHlwY29sbGF0aW9uKSBhcyBcIiVzXCIsXG4iCiAJ CQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wi LFxuIgorCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIodi52YXJkZWZleHByLCAwKSBh cyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgQ0FTRSB2LnZhcnhhY3RlbmRhY3Rpb25cbiIKIAkJCQkJ ICAiICAgIFdIRU4gJ2QnIFRIRU4gJ09OIENPTU1JVCBEUk9QJ1xuIgogCQkJCQkgICIgICAgV0hF TiAncicgVEhFTiAnT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUJ1xuIgpAQCAtNTI4MCw2ICs1Mjgx LDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJ CQkJCSAgZ2V0dGV4dF9ub29wKCJUeXBlIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJDb2xsYXRp b24iKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIiksCisJCQkJCSAgZ2V0dGV4dF9ub29w KCJEZWZhdWx0IiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJUcmFuc2FjdGlvbmFsIGVuZCBhY3Rp b24iKSk7CiAKIAlpZiAodmVyYm9zZSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAppbmRleCAw MDhmMmVlN2MxNy4uMDlkZDQ0YTQ0ZTEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKQEAg LTY4LDYgKzY4LDkgQEAgQ0FUQUxPRyhwZ192YXJpYWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25J ZCkKIAkvKiBhY2Nlc3MgcGVybWlzc2lvbnMgKi8KIAlhY2xpdGVtCQl2YXJhY2xbMV0gQktJX0RF RkFVTFQoX251bGxfKTsKIAorCS8qIGxpc3Qgb2YgZXhwcmVzc2lvbiB0cmVlcyBmb3IgdmFyaWFi bGUgZGVmYXVsdCAoTlVMTCBpZiBub25lKSAqLworCXBnX25vZGVfdHJlZSB2YXJkZWZleHByIEJL SV9ERUZBVUxUKF9udWxsXyk7CisKICNlbmRpZgogfSBGb3JtRGF0YV9wZ192YXJpYWJsZTsKIApk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGVjNGExNmFlYTI0Li5hY2M3ZDczZmI4ZCAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaApAQCAtMzQ4Nyw2ICszNDg3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ3Jl YXRlU2Vzc2lvblZhclN0bXQKIAlUeXBlTmFtZSAgICp0eXBlTmFtZTsJCS8qIHRoZSB0eXBlIG9m IHZhcmlhYmxlICovCiAJQ29sbGF0ZUNsYXVzZSAqY29sbENsYXVzZTsKIAlib29sCQlpZl9ub3Rf ZXhpc3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0IGFscmVhZHkgZXhpc3RzICovCisJTm9kZQkgICAq ZGVmZXhwcjsJCS8qIGRlZmF1bHQgZXhwcmVzc2lvbiAqLwogCWNoYXIJCVhhY3RFbmRBY3Rpb247 CS8qIG9uIHRyYW5zYWN0aW9uIGVuZCBhY3Rpb24gKi8KIH0gQ3JlYXRlU2Vzc2lvblZhclN0bXQ7 CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCmluZGV4IDhiNTVmODQwZDEwLi4zNmY5OWM4OGVlMyAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAorKysgYi9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCkBAIC04NCw2ICs4NCw3IEBAIHR5cGVkZWYgZW51bSBQ YXJzZUV4cHJLaW5kCiAJRVhQUl9LSU5EX0NZQ0xFX01BUkssCQkvKiBjeWNsZSBtYXJrIHZhbHVl ICovCiAJRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQsCS8qIFBML3BnU1FMIGFzc2lnbm1lbnQgdGFy Z2V0ICovCiAJRVhQUl9LSU5EX0xFVF9UQVJHRVQsCQkvKiBMRVQgdGFyZ2V0ICovCisJRVhQUl9L SU5EX1ZBUklBQkxFX0RFRkFVTFQsIC8qIGRlZmF1bHQgdmFsdWUgZm9yIHNlc3Npb24gdmFyaWFi bGUgKi8KIH0gUGFyc2VFeHByS2luZDsKIAogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3BzcWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dApp bmRleCA2MTA3N2E1MmIxNi4uYmM3YjYwYTk3ZWEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3Fs Lm91dApAQCAtNTkzNSwyMCArNTkzNSwyMCBAQCBDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxl X293bmVyOwogU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJ QUJMRSB2YXIxIEFTIHZhcmNoYXIgQ09MTEFURSAiQyI7CiBcZFYrIHZhcjEKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZh cmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8 ICAgICAgICAgT3duZXIgICAgICAgICAgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCBBY2Nl c3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQotIHB1Ymxp YyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFi bGVfb3duZXIgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICB8 IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAg ICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgRGVmYXVsdCB8IFRy YW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24g CistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0 ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKICgxIHJv dykKIAogR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOwogQ09NTUVOVCBP TiBWQVJJQUJMRSB2YXIxIElTICdzb21lIGRlc2NyaXB0aW9uJzsKIFxkVisgdmFyMQotICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5 cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IFRyYW5zYWN0 aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAg ICAgICAgICAgICB8ICAgRGVzY3JpcHRpb24gICAgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCi0gcHVibGljIHwgdmFyMSB8IGNoYXJhY3Rl ciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAg ICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJp YWJsZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KLSAgICAgICAgfCAgICAgIHwgICAgICAgICAg ICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJsZV9vd25lciAgICAgICAgICAgICAg ICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwor IFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAg T3duZXIgICAgICAgICAgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAg ICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgICBEZXNjcmlw dGlvbiAgICAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tCisgcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwg QyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFi bGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCisgICAgICAgIHwgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyICAgICAg ICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogRFJPUCBWQVJJQUJMRSB2YXIxOwpAQCAt NjQxNiw5ICs2NDE2LDkgQEAgTGlzdCBvZiBzY2hlbWFzCiAoMCByb3dzKQogCiBcZFYgIm5vLnN1 Y2gudmFyaWFibGUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVz Ci0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IFRyYW5zYWN0aW9u YWwgZW5kIGFjdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24g fCBPd25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSst LS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIHNjaGVt YSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY1OTEsOSArNjU5MSw5IEBAIGltcHJvcGVyIHF1YWxpZmll ZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNo Lmluc3RhCiBcZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgogaW1w cm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNj aGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIFxkViAibm8uc3VjaC5zY2hlbWEiLiJuby5z dWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxl cwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBUcmFuc2FjdGlv bmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9u IHwgT3duZXIgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0r LS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGN1cnJlbnQgZGF0 YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02NzMwLDkgKzY3MzAs OSBAQCBMaXN0IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRlcwogKDAgcm93cykKIAogXGRWIHJlZ3Jl c3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENv bGxhdGlvbiB8IE93bmVyIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0tLS0tLS0rLS0t LS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hl bWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgRGVmYXVsdCB8IFRyYW5zYWN0 aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0t IGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlm aWNhdGlvbnMuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJs ZXMub3V0CmluZGV4IGFkOWQxYTE4N2U1Li5mYzZkNDVjYmRjNCAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTIzODEsMyArMjM4MSw2 NiBAQCBTRUxFQ1QgdmFyMSBJUyBOVUxMOwogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHZhcjE7 CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFT ICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJ3ZhcnRlc3RfZnggZXhlY3V0ZWQnOworICBSRVRV Uk4gMDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQgREVGQVVMVCB2YXJ0ZXN0X2Z4KCk7CistLSB2YXJ0ZXN0X2Z4IHNob3VsZCBiZSBwcm90 ZWN0ZWQgYnkgZGVwLCBzaG91bGQgZmFpbAorRFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7CitF UlJPUjogIGNhbm5vdCBkcm9wIGZ1bmN0aW9uIHZhcnRlc3RfZngoKSBiZWNhdXNlIG90aGVyIG9i amVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgZGVwZW5k cyBvbiBmdW5jdGlvbiB2YXJ0ZXN0X2Z4KCkKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0 byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCistLSBzaG91bGQgYmUgb2sKK1NFTEVD VCB2YXIxOworTk9USUNFOiAgdmFydGVzdF9meCBleGVjdXRlZAorIHZhcjEgCistLS0tLS0KKyAg ICAwCisoMSByb3cpCisKKy0tIHRoZSBkZWZleHByIHNob3VsZCBiZSBldmFsdWF0ZWQgb25seSBv bmNlCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCitESVND QVJEIFZBUklBQkxFUzsKKy0tIGluIHRoaXMgY2FzZSwgdGhlIGRlZmV4cHIgc2hvdWxkIG5vdCBi ZSBldmFsdWF0ZWQKK0xFVCB2YXIxID0gMTAwOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0t LQorICAxMDAKKygxIHJvdykKKworRElTQ0FSRCBWQVJJQUJMRVM7CitDUkVBVEUgT1IgUkVQTEFD RSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSQUlT RSBFWENFUFRJT04gJ3ZhcnRlc3RfZnggaXMgZXhlY3V0aW5nJzsKKyAgUkVUVVJOIDA7CitFTkQ7 CiskJCBMQU5HVUFHRSBwbHBnc3FsOworLS0gc2hvdWxkIHRvIGZhaWwsIGJ1dCBub3QgdG8gY3Jh c2gKK1NFTEVDVCB2YXIxOworRVJST1I6ICB2YXJ0ZXN0X2Z4IGlzIGV4ZWN1dGluZworQ09OVEVY VDogIFBML3BnU1FMIGZ1bmN0aW9uIHZhcnRlc3RfZngoKSBsaW5lIDMgYXQgUkFJU0UKKy0tIGFn YWluCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgdmFydGVzdF9meCBpcyBleGVjdXRpbmcKK0NPTlRF WFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiB2YXJ0ZXN0X2Z4KCkgbGluZSAzIGF0IFJBSVNFCistLSBi dXQgd2UgY2FuIHdyaXRlCitMRVQgdmFyMSA9IDEwMDsKK1NFTEVDVCB2YXIxOworIHZhcjEgCist LS0tLS0KKyAgMTAwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJ T04gdmFydGVzdF9meCgpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lv bl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCmluZGV4IDkzMjkwNzhiZGQ5Li45ODhkOGQzMjdmZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtMTYzMiwzICsxNjMyLDUxIEBAIFJPTExCQUNL OwogU0VMRUNUIHZhcjEgSVMgTlVMTDsKIAogRFJPUCBWQVJJQUJMRSB2YXIxOworCitDUkVBVEUg T1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJ TgorICBSQUlTRSBOT1RJQ0UgJ3ZhcnRlc3RfZnggZXhlY3V0ZWQnOworICBSRVRVUk4gMDsKK0VO RDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBE RUZBVUxUIHZhcnRlc3RfZngoKTsKKworLS0gdmFydGVzdF9meCBzaG91bGQgYmUgcHJvdGVjdGVk IGJ5IGRlcCwgc2hvdWxkIGZhaWwKK0RST1AgRlVOQ1RJT04gdmFydGVzdF9meCgpOworCistLSBz aG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworCistLSB0aGUgZGVmZXhwciBzaG91bGQgYmUgZXZh bHVhdGVkIG9ubHkgb25jZQorU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworCist LSBpbiB0aGlzIGNhc2UsIHRoZSBkZWZleHByIHNob3VsZCBub3QgYmUgZXZhbHVhdGVkCitMRVQg dmFyMSA9IDEwMDsKK1NFTEVDVCB2YXIxOworCitESVNDQVJEIFZBUklBQkxFUzsKKworQ1JFQVRF IE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFydGVzdF9meCgpCitSRVRVUk5TIGludCBBUyAkJAorQkVH SU4KKyAgUkFJU0UgRVhDRVBUSU9OICd2YXJ0ZXN0X2Z4IGlzIGV4ZWN1dGluZyc7CisgIFJFVFVS TiAwOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworLS0gc2hvdWxkIHRvIGZhaWwsIGJ1 dCBub3QgdG8gY3Jhc2gKK1NFTEVDVCB2YXIxOworCistLSBhZ2FpbgorU0VMRUNUIHZhcjE7CisK Ky0tIGJ1dCB3ZSBjYW4gd3JpdGUKK0xFVCB2YXIxID0gMTAwOworU0VMRUNUIHZhcjE7CisKK0RS T1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gdmFydGVzdF9meCgpOwotLSAKMi40Ny4x Cgo= --000000000000f297a7062b2456dc Content-Type: text/x-patch; charset="US-ASCII"; name="v20250107-0012-implementation-of-temporary-session-variables.patch" Content-Disposition: attachment; filename="v20250107-0012-implementation-of-temporary-session-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5mz6bk010 RnJvbSBmNzZhYTliMGY0NTU4YzkzZTdiOGU0ZjEwYWE1ZDUzMzEyMTE3ZDM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMDoyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTIvMjJdIGltcGxlbWVudGF0aW9uIG9mIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlcwoKVGhl IHRlbXBvcmFyeSB2YXJpYWJsZXMgYXJlIGNyZWF0ZWQgaW5zaWRlIHRlbXAgc2NoZW1hIGFuZCB0 aGV5IGFyZSBkcm9wcGVkIGJ5IGRyb3BwaW5nCnRoaXMgc2NoZW1hLiBGb3IgY29uc2lzdGVuY3kg d2l0aCB0ZW1wIHRhYmxlcywgdGhlIENSRUFURSBURU1QIFZBUklBQkxFIGNvbW1hbmQgc3VwcG9y dHMKT04gQ09NTUlUIERST1AgY2xhdXNlLiBUaGUgdGVtcG9yYXJ5IHZhcmlhYmxlcyB3aXRoIHRo aXMgY2xhdXNlIGFyZSBjb2xsZWN0ZWQgaW4geGFjdF9kcm9wX2l0ZW1zCmxpc3QuIFRoaXMgbGlz dCBzaG91bGQgYmUgY2FyZWZ1bGx5IG1haW50YWluZWQgYW5kIGNhbiBjb250YWluIG9ubHkgdmFs aWQgZW50cmllcyAobm90CnlldCBkcm9wcGVkKS4gRnJvbSB0aGlzIHJlYXNvbnMgbm93IHRoZSBz dWJjb21taXQgYW5kIHN1YmFib3J0aW5nIGhhdmUgdG8gYmUgaGFuZGxlZC4KLS0tCiBkb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTAgKwogZG9jL3NyYy9z Z21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBkb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAgMTUgKy0KIHNyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hhY3QuYyAgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgMjcgKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAyMTggKysrKysrKysrKysrKysrKyst CiBzcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IHNyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgICAgICAgICAgICAgICAgICB8ICAgNCArLQog c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDMwICsrLQog c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgICAgICAgICAgIHwgIDIyICstCiBz cmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKy0KIHNy Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAgNSArLQogc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgICA5ICsKIHNyYy9p bmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgNiArLQogc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNs dWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2luY2x1 ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmggICAgICAgICAgIHwgICAyICstCiAuLi4vaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0ICAgfCAgIDMgKy0KIC4uLi9pc29sYXRp b24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICAgMyArLQogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAgICAgICAgIHwgIDM2ICstLQogLi4uL3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMTIwICsrKysrKysrKysKIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA2NiArKysrKysKIHNy Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgMSArCiAyMyBm aWxlcyBjaGFuZ2VkLCA1NDQgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbAppbmRleCA2N2U2NDU5MjUwNi4uZjY1MWFkOTBiMTAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC05 ODM5LDYgKzk4MzksMTYgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlv biBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT48 L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+dmFyeGFjdGVuZGFjdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBlPmNoYXI8 L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBBY3Rpb24gcGVyZm9y bWVkIGF0IGVuZCBvZiB0cmFuc2FjdGlvbjoKKyAgICAgICA8bGl0ZXJhbD5uPC9saXRlcmFsPiA9 IG5vIGFjdGlvbiwgPGxpdGVyYWw+ZDwvbGl0ZXJhbD4gPSBkcm9wIHRoZSB2YXJpYWJsZS4KKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93PgogICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KICAgICAgICA8c3RydWN0ZmllbGQ+dmFyY29sbGF0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+b2lkPC90eXBlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3Ny Yy9zZ21sL2RkbC5zZ21sCmluZGV4IDEyMjU0NTUxMWU0Li5jZjk2ZWM0OThkMSAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAt NTM4NSw5ICs1Mzg1LDkgQEAgU0VMRUNUIGN1cnJlbnRfdXNlcl9pZDsKICAgICA8Y29tbWFuZD5M RVQ8L2NvbW1hbmQ+IGNvbW1hbmQuICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgbm90IHRyYW5zYWN0 aW9uYWw6CiAgICAgYW55IGNoYW5nZXMgbWFkZSB0byB0aGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZh cmlhYmxlIGluIGEgdHJhbnNhY3Rpb24gd29uJ3QKICAgICBiZSB1bmRvbmUgaWYgdGhlIHRyYW5z YWN0aW9uIGlzIHJvbGxlZCBiYWNrIChqdXN0IGxpa2UgdmFyaWFibGVzIGluCi0gICAgcHJvY2Vk dXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lvbiB2YXJpYWJsZXMgdGhlbXNlbHZlcyBhcmUgcGVyc2lz dGVudCwgYnV0Ci0gICAgdGhlaXIgdmFsdWVzIGFyZSBuZWl0aGVyIHBlcnNpc3RlbnQgbm9yIHNo YXJlZCAobGlrZSB0aGUgY29udGVudCBvZgotICAgIHRlbXBvcmFyeSB0YWJsZXMpLgorICAgIHBy b2NlZHVyYWwgbGFuZ3VhZ2VzKS4gIFNlc3Npb24gdmFyaWFibGVzIHRoZW1zZWx2ZXMgY2FuIGJl IHBlcnNpc3RlbnQKKyAgICBvciB0ZW1wb3JhcnksIGJ1dCB0aGVpciB2YWx1ZXMgYXJlIG5laXRo ZXIgcGVyc2lzdGVudCBub3Igc2hhcmVkIChsaWtlIHRoZQorICAgIGNvbnRlbnQgb2YgdGVtcG9y YXJ5IHRhYmxlcykuCiAgICA8L3BhcmE+CiAKICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X3ZhcmlhYmxlLnNnbWwKaW5kZXggZDY4MTQwNDA1NWQuLjgxZmZiY2MzYzYyIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTI2LDcgKzI2LDggQEAgUG9zdGdyZVNRTCBk b2N1bWVudGF0aW9uCiAKICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+Ci1DUkVBVEUgVkFS SUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5h bWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRh dGFfdHlwZTwvcmVwbGFjZWFibGU+IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQorQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBU RU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCisgICAgWyBPTiBDT01N SVQgRFJPUCBdCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CiAgPHJlZnNlY3QxPgpA QCAtMTA0LDYgKzEwNSwxOCBAQCBDUkVBVEUgVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYgogICAgIDwvbGlzdGl0 ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0 ZXZhcmlhYmxlLW9uLWNvbW1pdC1kcm9wIj4KKyAgICA8dGVybT48bGl0ZXJhbD5PTiBDT01NSVQg RFJPUDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFRoZSA8bGl0ZXJhbD5PTiBDT01NSVQgRFJPUDwvbGl0ZXJhbD4gY2xhdXNlIHNwZWNpZmllcyB0 aGUgYmVoYXZpb3VyIG9mIGEKKyAgICAgIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlIGF0IHRy YW5zYWN0aW9uIGNvbW1pdC4gV2l0aCB0aGlzIGNsYXVzZSwgdGhlCisgICAgICBzZXNzaW9uIHZh cmlhYmxlIGlzIGRyb3BwZWQgYXQgY29tbWl0IHRpbWUuIFRoZSBjbGF1c2UgaXMgb25seSBhbGxv d2VkCisgICAgICBmb3IgdGVtcG9yYXJ5IHZhcmlhYmxlcy4KKyAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICA8L3ZhcmlhYmxlbGlzdD4KICA8L3Jl ZnNlY3QxPgogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMKaW5kZXggZDMzMWFiOTBkNzguLjYx Njg0MTVmOGMzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCkBAIC0zNiw2ICszNiw3IEBA CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19lbnVtLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9zdG9yYWdl LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdGFibGVjbWRzLmgiCiAjaW5jbHVk ZSAiY29tbWFuZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUgImNvbW1vbi9wZ19wcm5nLmgiCkBAIC0y MzE2LDYgKzIzMTcsOSBAQCBDb21taXRUcmFuc2FjdGlvbih2b2lkKQogCSAqLwogCXNtZ3JEb1Bl bmRpbmdTeW5jcyh0cnVlLCBpc19wYXJhbGxlbF93b3JrZXIpOwogCisJLyogcmVtb3ZlIHZhbHVl cyBvZiBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzIGZyb20gbWVtb3J5ICovCisJQXRQcmVFT1hh Y3RfU2Vzc2lvblZhcmlhYmxlcyh0cnVlKTsKKwogCS8qIGNsb3NlIGxhcmdlIG9iamVjdHMgYmVm b3JlIGxvd2VyLWxldmVsIGNsZWFudXAgKi8KIAlBdEVPWGFjdF9MYXJnZU9iamVjdCh0cnVlKTsK IApAQCAtMjkxMiw2ICsyOTE2LDcgQEAgQWJvcnRUcmFuc2FjdGlvbih2b2lkKQogCUF0QWJvcnRf UG9ydGFscygpOwogCXNtZ3JEb1BlbmRpbmdTeW5jcyhmYWxzZSwgaXNfcGFyYWxsZWxfd29ya2Vy KTsKIAlBdEVPWGFjdF9MYXJnZU9iamVjdChmYWxzZSk7CisJQXRQcmVFT1hhY3RfU2Vzc2lvblZh cmlhYmxlcyhmYWxzZSk7CiAJQXRBYm9ydF9Ob3RpZnkoKTsKIAlBdEVPWGFjdF9SZWxhdGlvbk1h cChmYWxzZSwgaXNfcGFyYWxsZWxfd29ya2VyKTsKIAlBdEFib3J0X1R3b3BoYXNlKCk7CkBAIC01 MTc3LDYgKzUxODIsOCBAQCBDb21taXRTdWJUcmFuc2FjdGlvbih2b2lkKQogCUF0RU9TdWJYYWN0 X1NQSSh0cnVlLCBzLT5zdWJUcmFuc2FjdGlvbklkKTsKIAlBdEVPU3ViWGFjdF9vbl9jb21taXRf YWN0aW9ucyh0cnVlLCBzLT5zdWJUcmFuc2FjdGlvbklkLAogCQkJCQkJCQkgIHMtPnBhcmVudC0+ c3ViVHJhbnNhY3Rpb25JZCk7CisJQXRFT1N1YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyh0cnVlLCBz LT5zdWJUcmFuc2FjdGlvbklkLAorCQkJCQkJCQkgcy0+cGFyZW50LT5zdWJUcmFuc2FjdGlvbklk KTsKIAlBdEVPU3ViWGFjdF9OYW1lc3BhY2UodHJ1ZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCwKIAkJ CQkJCSAgcy0+cGFyZW50LT5zdWJUcmFuc2FjdGlvbklkKTsKIAlBdEVPU3ViWGFjdF9GaWxlcyh0 cnVlLCBzLT5zdWJUcmFuc2FjdGlvbklkLApAQCAtNTM0Miw2ICs1MzQ5LDggQEAgQWJvcnRTdWJU cmFuc2FjdGlvbih2b2lkKQogCQlBdEVPU3ViWGFjdF9TUEkoZmFsc2UsIHMtPnN1YlRyYW5zYWN0 aW9uSWQpOwogCQlBdEVPU3ViWGFjdF9vbl9jb21taXRfYWN0aW9ucyhmYWxzZSwgcy0+c3ViVHJh bnNhY3Rpb25JZCwKIAkJCQkJCQkJCSAgcy0+cGFyZW50LT5zdWJUcmFuc2FjdGlvbklkKTsKKwkJ QXRFT1N1YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyhmYWxzZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCwK KwkJCQkJCQkJCSBzLT5wYXJlbnQtPnN1YlRyYW5zYWN0aW9uSWQpOwogCQlBdEVPU3ViWGFjdF9O YW1lc3BhY2UoZmFsc2UsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCiAJCQkJCQkJICBzLT5wYXJlbnQt PnN1YlRyYW5zYWN0aW9uSWQpOwogCQlBdEVPU3ViWGFjdF9GaWxlcyhmYWxzZSwgcy0+c3ViVHJh bnNhY3Rpb25JZCwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUu YyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCBkNjcyZDJhOWNiMy4u MDBjOTBlYTZmZDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUu YworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAgLTM2LDcgKzM2LDgg QEAgc3RhdGljIE9iamVjdEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNoYXIgKnZhck5h bWUsCiAJCQkJCQkJCQkgaW50MzIgdmFyVHlwbW9kLAogCQkJCQkJCQkJIE9pZCB2YXJPd25lciwK IAkJCQkJCQkJCSBPaWQgdmFyQ29sbGF0aW9uLAotCQkJCQkJCQkJIGJvb2wgaWZfbm90X2V4aXN0 cyk7CisJCQkJCQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzLAorCQkJCQkJCQkJIFZhcmlhYmxlWGFj dEVuZEFjdGlvbiB2YXJYYWN0RW5kQWN0aW9uKTsKIAogCiAvKgpAQCAtNDksNyArNTAsOCBAQCBj cmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQlpbnQzMiB2YXJUeXBtb2Qs CiAJCQkJT2lkIHZhck93bmVyLAogCQkJCU9pZCB2YXJDb2xsYXRpb24sCi0JCQkJYm9vbCBpZl9u b3RfZXhpc3RzKQorCQkJCWJvb2wgaWZfbm90X2V4aXN0cywKKwkJCQlWYXJpYWJsZVhhY3RFbmRB Y3Rpb24gdmFyWGFjdEVuZEFjdGlvbikKIHsKIAlBY2wJCSAgICp2YXJhY2w7CiAJTmFtZURhdGEJ dmFybmFtZTsKQEAgLTExMCw2ICsxMTIsNyBAQCBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAq dmFyTmFtZSwKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBtb2QgLSAxXSA9IEludDMy R2V0RGF0dW0odmFyVHlwbW9kKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJvd25lciAt IDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJPd25lcik7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFi bGVfdmFyY29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxhdGlvbik7CisJ dmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyeGFjdGVuZGFjdGlvbiAtIDFdID0gQ2hhckdldERh dHVtKHZhclhhY3RFbmRBY3Rpb24pOwogCiAJdmFyYWNsID0gZ2V0X3VzZXJfZGVmYXVsdF9hY2wo T0JKRUNUX1ZBUklBQkxFLCB2YXJPd25lciwKIAkJCQkJCQkJICB2YXJOYW1lc3BhY2UpOwpAQCAt MTgzLDYgKzE4NiwxMyBAQCBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0 ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCU9pZAkJCXR5cGNvbGxhdGlvbjsKIAlPYmplY3RBZGRy ZXNzIHZhcmlhYmxlOwogCisJLyogY2hlY2sgY29uc2lzdGVuY3kgb2YgYXJndW1lbnRzICovCisJ aWYgKHN0bXQtPlhhY3RFbmRBY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9EUk9QCisJCSYmIHN0 bXQtPnZhcmlhYmxlLT5yZWxwZXJzaXN0ZW5jZSAhPSBSRUxQRVJTSVNURU5DRV9URU1QKQorCQll cmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5J VElPTiksCisJCQkJIGVycm1zZygiT04gQ09NTUlUIERST1AgY2FuIG9ubHkgYmUgdXNlZCBvbiB0 ZW1wb3JhcnkgdmFyaWFibGVzIikpKTsKKwogCW5hbWVzcGFjZWlkID0KIAkJUmFuZ2VWYXJHZXRB bmRDaGVja0NyZWF0aW9uTmFtZXNwYWNlKHN0bXQtPnZhcmlhYmxlLCBOb0xvY2ssIE5VTEwpOwog CkBAIC0yMjIsMTEgKzIzMiwxNyBAQCBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUs IENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCQkJCQkJCSAgIHR5cG1vZCwKIAkJCQkJCQkg ICB2YXJvd25lciwKIAkJCQkJCQkgICBjb2xsYXRpb24sCi0JCQkJCQkJICAgc3RtdC0+aWZfbm90 X2V4aXN0cyk7CisJCQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0cywKKwkJCQkJCQkgICBzdG10 LT5YYWN0RW5kQWN0aW9uKTsKIAogCWVsb2coREVCVUcxLCAicmVjb3JkIGZvciBzZXNzaW9uIHZh cmlhYmxlIFwiJXNcIiAob2lkOiVkKSB3YXMgY3JlYXRlZCBpbiBwZ192YXJpYWJsZSIsCiAJCSBz dG10LT52YXJpYWJsZS0+cmVsbmFtZSwgdmFyaWFibGUub2JqZWN0SWQpOwogCisJLyogd2Ugd2Fu dCBTZXNzaW9uVmFyaWFibGVDcmVhdGVQb3N0cHJvY2VzcyB0byBzZWUgdGhlIGNhdGFsb2cgY2hh bmdlcy4gKi8KKwlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOworCisJU2Vzc2lvblZhcmlhYmxl Q3JlYXRlUG9zdHByb2Nlc3ModmFyaWFibGUub2JqZWN0SWQsIHN0bXQtPlhhY3RFbmRBY3Rpb24p OworCiAJcmV0dXJuIHZhcmlhYmxlOwogfQogCkBAIC0yMzksNiArMjU1LDcgQEAgRHJvcFZhcmlh YmxlQnlJZChPaWQgdmFyaWQpCiB7CiAJUmVsYXRpb24JcmVsOwogCUhlYXBUdXBsZQl0dXA7CisJ Y2hhcgkJWGFjdEVuZEFjdGlvbjsKIAogCXJlbCA9IHRhYmxlX29wZW4oVmFyaWFibGVSZWxhdGlv bklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKIApAQCAtMjQ3LDYgKzI2NCw4IEBAIERyb3BWYXJpYWJs ZUJ5SWQoT2lkIHZhcmlkKQogCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQogCQllbG9nKEVS Uk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgdmFyaWFibGUgJXUiLCB2YXJpZCk7CiAKKwlY YWN0RW5kQWN0aW9uID0gKChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKSktPnZhcnhh Y3RlbmRhY3Rpb247CisKIAlDYXRhbG9nVHVwbGVEZWxldGUocmVsLCAmdHVwLT50X3NlbGYpOwog CiAJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CkBAIC0yNTQsNSArMjczLDUgQEAgRHJvcFZhcmlhYmxl QnlJZChPaWQgdmFyaWQpCiAJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAog CS8qIGRvIHRoZSBuZWNlc3NhcnkgY2xlYW51cCBpbiBsb2NhbCBtZW1vcnksIGlmIG5lZWRlZCAq LwotCVNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2Vzcyh2YXJpZCk7CisJU2Vzc2lvblZhcmlh YmxlRHJvcFBvc3Rwcm9jZXNzKHZhcmlkLCBYYWN0RW5kQWN0aW9uKTsKIH0KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCAyZTJjNGY5MzBhMy4uZjI0OWI5YmViMmYg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTE2LDYgKzE2LDgg QEAKIAogI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJp YWJsZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvZGVwZW5kZW5jeS5oIgorI2luY2x1ZGUgImNhdGFs b2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgog I2luY2x1ZGUgImV4ZWN1dG9yL3NwaS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJl Y2VpdmVyLmgiCkBAIC0zMiw2ICszNCwxOSBAQAogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIK ICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogCit0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVY QWN0RHJvcEl0ZW0KK3sKKwlPaWQJCQl2YXJpZDsJCQkvKiB2YXJpZCBvZiBzZXNzaW9uIHZhcmlh YmxlICovCisKKwkvKgorCSAqIGNyZWF0aW5nX3N1YmlkIGlzIHRoZSBJRCBvZiB0aGUgY3JlYXRp bmcgc3VieGFjdC4gSWYgdGhlIGFjdGlvbiB3YXMKKwkgKiB1bnJlZ2lzdGVyZWQgZHVyaW5nIHRo ZSBjdXJyZW50IHRyYW5zYWN0aW9uLCBkZWxldGluZ19zdWJpZCBpcyB0aGUgSUQKKwkgKiBvZiB0 aGUgZGVsZXRpbmcgc3VieGFjdCwgb3RoZXJ3aXNlIEludmFsaWRTdWJUcmFuc2FjdGlvbklkLgor CSAqLworCVN1YlRyYW5zYWN0aW9uSWQgY3JlYXRpbmdfc3ViaWQ7CisJU3ViVHJhbnNhY3Rpb25J ZCBkZWxldGluZ19zdWJpZDsKK30gU1ZhcmlhYmxlWEFjdERyb3BJdGVtOworCiAvKgogICogVGhl IHNlc3Npb24gdmFyaWFibGVzIHVzZSBmZW5jZSBjb250ZXh0IGFsbG93IHRvIHNwZWNpZnkKICAq IHRoZSBjb250ZXh0cyB3aGVyZSB1c2luZyBzZXNzaW9uIHZhcmlhYmxlIGZlbmNlcyBhcmUgcmVx dWlyZWQuCkBAIC0xMDQsMTMgKzExOSwyMSBAQCBzdGF0aWMgTWVtb3J5Q29udGV4dCBTVmFyaWFi bGVNZW1vcnlDb250ZXh0ID0gTlVMTDsKIHN0YXRpYyBib29sIG5lZWRzX3ZhbGlkYXRpb24gPSBm YWxzZTsKIAogLyoKLSAqIFRoZSBjb250ZW50IG9mIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMg aXMgbm90IHJlbW92ZWQgaW1tZWRpYXRlbHkuICBXZSBkbwotICogdGhhdCBpbiB0aGUgbmV4dCB0 cmFuc2FjdGlvbiB0aGF0IHJlYWRzIG9yIHdyaXRlcyBhIHNlc3Npb24gdmFyaWFibGUuCi0gKiAi dmFsaWRhdGVkX2x4aWQiIHN0b3JlcyB0aGUgdHJhbnNhY3Rpb24gdGhhdCBwZXJmb3JtZWQgc2Fp ZCB2YWxpZGF0aW9uLCBzbwotICogdGhhdCB3ZSBjYW4gYXZvaWQgcmVwZWF0aW5nIHRoZSBlZmZv cnQuCisgKiBUaGUgY29udGVudCBvZiBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdCBy ZW1vdmVkIGltbWVkaWF0ZWx5LiAgSWYKKyAqIHBvc3NpYmxlLCB3ZSBkbyB0aGF0IGF0IHRoZSBl bmQgb2YgdGhlIHRyYW5zYWN0aW9uLiAgQnV0IHdlIGNhbm5vdCBkbyB0aGF0CisgKiBpZiB0aGUg dHJhbnNhY3Rpb24gYWJvcnRlZCwgYmVjYXVzZSB3ZSBsb3N0IGFjY2VzcyB0byB0aGUgc3lzdGVt IGNhdGFsb2cuCisgKiBJbiB0aGF0IGNhc2UsIHdlIGNsZWFuIHVwIGluIHRoZSBuZXh0IHRyYW5z YWN0aW9uIHRoYXQgcmVhZHMgb3Igd3JpdGVzIGEKKyAqIHNlc3Npb24gdmFyaWFibGUuICAidmFs aWRhdGVkX2x4aWQiIHN0b3JlcyB0aGUgdHJhbnNhY3Rpb24gdGhhdCBwZXJmb3JtZWQKKyAqIHNh aWQgdmFsaWRhdGlvbiwgc28gdGhhdCB3ZSBjYW4gYXZvaWQgcmVwZWF0aW5nIHRoZSBlZmZvcnQu CiAgKi8KIHN0YXRpYyBMb2NhbFRyYW5zYWN0aW9uSWQgdmFsaWRhdGVkX2x4aWQgPSBJbnZhbGlk TG9jYWxUcmFuc2FjdGlvbklkOwogCisvKiBsaXN0IGhvbGRzIGZpZWxkcyBvZiBTVmFyaWFibGVY QWN0RHJvcEl0ZW0gdHlwZSAqLworc3RhdGljIExpc3QgKnhhY3RfZHJvcF9pdGVtcyA9IE5JTDsK Kworc3RhdGljIHZvaWQgcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AoT2lkIHZh cmlkKTsKK3N0YXRpYyB2b2lkIHVucmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3Ao T2lkIHZhcmlkKTsKKwogLyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBzZXNzaW9uIHZhcmlh YmxlIGludmFsaWRhdGlvbi4KICAqLwpAQCAtMTQ3LDE2ICsxNzAsNDUgQEAgcGdfdmFyaWFibGVf Y2FjaGVfY2FsbGJhY2soRGF0dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkK IAl9CiB9CiAKKy8qCisgKiBEbyB0aGUgbmVjZXNzYXJ5IHdvcmsgdG8gc2V0dXAgbG9jYWwgbWVt b3J5IG1hbmFnZW1lbnQgb2YgYSBuZXcKKyAqIHZhcmlhYmxlLgorICoKKyAqIENhbGxlciBzaG91 bGQgYWxyZWFkeSBoYXZlIGNyZWF0ZWQgdGhlIG5lY2Vzc2FyeSBlbnRyeSBpbiBjYXRhbG9nCisg KiBhbmQgbWFkZSB0aGVtIHZpc2libGUuCisgKi8KK3ZvaWQKK1Nlc3Npb25WYXJpYWJsZUNyZWF0 ZVBvc3Rwcm9jZXNzKE9pZCB2YXJpZCwgY2hhciBYYWN0RW5kQWN0aW9uKQoreworCS8qCisJICog Rm9yIHRlbXBvcmFyeSB2YXJpYWJsZXMsIHdlIG5lZWQgdG8gY3JlYXRlIGEgbmV3IGVuZCBvZiB4 YWN0IGFjdGlvbiB0bworCSAqIGVuc3VyZSBkZWxldGlvbiBmcm9tIGNhdGFsb2cuCisJICovCisJ aWYgKFhhY3RFbmRBY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9EUk9QKQorCXsKKwkJQXNzZXJ0 KGlzVGVtcE5hbWVzcGFjZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSk7 CisKKwkJcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AodmFyaWQpOworCX0KK30K KwogLyoKICAqIEhhbmRsZSB0aGUgbG9jYWwgbWVtb3J5IGNsZWFudXAgZm9yIGEgRFJPUCBWQVJJ QUJMRSBjb21tYW5kLgogICoKICAqIENhbGxlciBzaG91bGQgdGFrZSBjYXJlIG9mIHJlbW92aW5n IHRoZSBwZ192YXJpYWJsZSBlbnRyeSBmaXJzdC4KICAqLwogdm9pZAotU2Vzc2lvblZhcmlhYmxl RHJvcFBvc3Rwcm9jZXNzKE9pZCB2YXJpZCkKK1Nlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2Vz cyhPaWQgdmFyaWQsIGNoYXIgWGFjdEVuZEFjdGlvbikKIHsKIAlBc3NlcnQoTG9jYWxUcmFuc2Fj dGlvbklkSXNWYWxpZChNeVByb2MtPnZ4aWQubHhpZCkpOwogCisJaWYgKFhhY3RFbmRBY3Rpb24g PT0gVkFSSUFCTEVfWEFDVEVORF9EUk9QKQorCXsKKwkJQXNzZXJ0KGlzVGVtcE5hbWVzcGFjZShn ZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSk7CisKKwkJdW5yZWdpc3Rlcl9z ZXNzaW9uX3ZhcmlhYmxlX3hhY3RfZHJvcCh2YXJpZCk7CisJfQorCiAJaWYgKHNlc3Npb252YXJz KQogCXsKIAkJYm9vbAkJZm91bmQ7CkBAIC0xNzgsNiArMjMwLDU3IEBAIFNlc3Npb25WYXJpYWJs ZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQpCiAJfQogfQogCisvKgorICogUmVnaXN0cmF0aW9u IG9mIGFjdGlvbnMgdG8gYmUgZXhlY3V0ZWQgb24gc2Vzc2lvbiB2YXJpYWJsZXMgYXQgdHJhbnNh Y3Rpb24KKyAqIGVuZCB0aW1lLiBXZSB3YW50IHRvIGRyb3AgdGVtcG9yYXJ5IHNlc3Npb24gdmFy aWFibGVzIHdpdGggY2xhdXNlIE9OIENPTU1JVAorICogRFJPUC4KKyAqLworCisvKgorICogUmVn aXN0ZXIgYSBzZXNzaW9uIHZhcmlhYmxlIHhhY3QgYWN0aW9uLgorICovCitzdGF0aWMgdm9pZAor cmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKQoreworCVNWYXJp YWJsZVhBY3REcm9wSXRlbSAqeGFjdF9haTsKKwlNZW1vcnlDb250ZXh0IG9sZGN4dDsKKworCW9s ZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhDYWNoZU1lbW9yeUNvbnRleHQpOworCisJeGFj dF9haSA9IChTVmFyaWFibGVYQWN0RHJvcEl0ZW0gKikKKwkJcGFsbG9jKHNpemVvZihTVmFyaWFi bGVYQWN0RHJvcEl0ZW0pKTsKKworCXhhY3RfYWktPnZhcmlkID0gdmFyaWQ7CisKKwl4YWN0X2Fp LT5jcmVhdGluZ19zdWJpZCA9IEdldEN1cnJlbnRTdWJUcmFuc2FjdGlvbklkKCk7CisJeGFjdF9h aS0+ZGVsZXRpbmdfc3ViaWQgPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKKworCXhhY3RfZHJv cF9pdGVtcyA9IGxjb25zKHhhY3RfYWksIHhhY3RfZHJvcF9pdGVtcyk7CisKKwlNZW1vcnlDb250 ZXh0U3dpdGNoVG8ob2xkY3h0KTsKK30KKworLyoKKyAqIFVucmVnaXN0ZXIgYW4gaWQgb2YgYSBn aXZlbiBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZHJvcCBsaXN0LiBJbiB0aGlzCisgKiBtb21lbnQs IHRoZSBhY3Rpb24gaXMganVzdCBtYXJrZWQgYXMgZGVsZXRlZCBieSBzZXR0aW5nIGRlbGV0aW5n X3N1YmlkLiBUaGUKKyAqIGNhbGxpbmcgZXZlbiBtaWdodCBiZSByb2xsYmFja2VkLCBpbiB3aGlj aCBjYXNlIHdlIHNob3VsZCBub3QgbG9zZSB0aGlzCisgKiBhY3Rpb24uCisgKi8KK3N0YXRpYyB2 b2lkCit1bnJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCkKK3sK KwlMaXN0Q2VsbCAgICpsOworCisJZm9yZWFjaChsLCB4YWN0X2Ryb3BfaXRlbXMpCisJeworCQlT VmFyaWFibGVYQWN0RHJvcEl0ZW0gKnhhY3RfYWkgPQorCQkJKFNWYXJpYWJsZVhBY3REcm9wSXRl bSAqKSBsZmlyc3QobCk7CisKKwkJaWYgKHhhY3RfYWktPnZhcmlkID09IHZhcmlkKQorCQkJeGFj dF9haS0+ZGVsZXRpbmdfc3ViaWQgPSBHZXRDdXJyZW50U3ViVHJhbnNhY3Rpb25JZCgpOworCX0K K30KKwogLyoKICAqIFJlbGVhc2Ugc3RvcmVkIHZhbHVlLCBmcmVlIG1lbW9yeQogICovCkBAIC0y MzAsOSArMzMzLDExIEBAIGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoU1ZhcmlhYmxlIHN2YXIp CiAvKgogICogQ2hlY2sgYWxsIHBvdGVudGlhbGx5IGludmFsaWQgc2Vzc2lvbiB2YXJpYWJsZSBk YXRhIGluIGxvY2FsIG1lbW9yeSBhbmQgZnJlZQogICogdGhlIG1lbW9yeSBmb3IgYWxsIGludmFs aWQgb25lcy4gIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJlZm9yZSBhbnkgcmVhZCBvcgotICog d3JpdGUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlLiAgRnJlZWluZyBvZiBhIHZhcmlhYmxlJ3MgbWVt b3J5IGlzIHBvc3Rwb25lZCBpZgotICogdGhlIHZhcmlhYmxlIGhhcyBiZWVuIGRyb3BwZWQgYnkg dGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24sIHNpbmNlIHRoYXQKLSAqIG9wZXJhdGlvbiBjb3VsZCBz dGlsbCBiZSByb2xsZWQgYmFjay4KKyAqIHdyaXRlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBvciB3 aGVuIHRoZSB0cmFuc2FjdGlvbiBlbmRzLiAgQXQgdGhlIGVuZCBvZiBhCisgKiB0cmFuc2FjdGlv biAoYXRFT1ggaXMgdHJ1ZSkgd2UgY2FuIGRpc2NhcmQgYWxsIGludmFsaWQgdmFyaWFibGVzLiAg SW5zaWRlIGEKKyAqIHRyYW5zYWN0aW9uIChhdEVPWCBpcyBmYWxzZSkgd2UgcG9zdHBvbmUgZnJl ZWluZyBhIHZhcmlhYmxlJ3MgbWVtb3J5IGlmIHRoZQorICogdmFyaWFibGUgaGFzIGJlZW4gZHJv cHBlZCBieSB0aGUgY3VycmVudCB0cmFuc2FjdGlvbiwgc2luY2UgdGhhdCBvcGVyYXRpb24KKyAq IGNvdWxkIHN0aWxsIGJlIHJvbGxlZCBiYWNrLgogICoKICAqIEl0IGlzIHBvc3NpYmxlIHRoYXQg d2UgcmVjZWl2ZSBhIGNhY2hlIGludmFsaWRhdGlvbiBtZXNzYWdlIHdoaWxlCiAgKiByZW1vdmVf aW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcygpIGlzIGV4ZWN1dGluZywgc28gd2UgY2Fubm90IGd1 YXJhbnRlZSB0aGF0CkBAIC0yNDAsNyArMzQ1LDcgQEAgaXNfc2Vzc2lvbl92YXJpYWJsZV92YWxp ZChTVmFyaWFibGUgc3ZhcikKICAqIGRvbmUuICBIb3dldmVyLCB3ZSBjYW4gZ3VhcmFudGVlIHRo YXQgYWxsIGVudHJpZXMgZ2V0IGNoZWNrZWQgb25jZS4KICAqLwogc3RhdGljIHZvaWQKLXJlbW92 ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKHZvaWQpCityZW1vdmVfaW52YWxpZF9zZXNzaW9u X3ZhcmlhYmxlcyhib29sIGF0RU9YKQogewogCUhBU0hfU0VRX1NUQVRVUyBzdGF0dXM7CiAJU1Zh cmlhYmxlCXN2YXI7CkBAIC0yNjcsNyArMzcyLDcgQEAgcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92 YXJpYWJsZXModm9pZCkKIAl7CiAJCWlmICghc3Zhci0+aXNfdmFsaWQpCiAJCXsKLQkJCWlmIChz dmFyLT5kcm9wX2x4aWQgPT0gTXlQcm9jLT52eGlkLmx4aWQpCisJCQlpZiAoIWF0RU9YICYmIHN2 YXItPmRyb3BfbHhpZCA9PSBNeVByb2MtPnZ4aWQubHhpZCkKIAkJCXsKIAkJCQkvKiB0cnkgYWdh aW4gaW4gdGhlIG5leHQgdHJhbnNhY3Rpb24gKi8KIAkJCQluZWVkc192YWxpZGF0aW9uID0gdHJ1 ZTsKQEAgLTI4OCw2ICszOTMsOTUgQEAgcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMo dm9pZCkKIAl9CiB9CiAKKy8qCisgICogUGVyZm9ybSBPTiBDT01NSVQgRFJPUCBmb3IgdGVtcG9y YXJ5IHNlc3Npb24gdmFyaWFibGVzLAorICAqIGFuZCByZW1vdmUgYWxsIGRyb3BwZWQgdmFyaWFi bGVzIGZyb20gbWVtb3J5LgorICovCit2b2lkCitBdFByZUVPWGFjdF9TZXNzaW9uVmFyaWFibGVz KGJvb2wgaXNDb21taXQpCit7CisJaWYgKGlzQ29tbWl0KQorCXsKKwkJaWYgKHhhY3RfZHJvcF9p dGVtcykKKwkJeworCQkJTGlzdENlbGwgICAqbDsKKworCQkJZm9yZWFjaChsLCB4YWN0X2Ryb3Bf aXRlbXMpCisJCQl7CisJCQkJU1ZhcmlhYmxlWEFjdERyb3BJdGVtICp4YWN0X2FpID0KKwkJCQkJ KFNWYXJpYWJsZVhBY3REcm9wSXRlbSAqKSBsZmlyc3QobCk7CisKKwkJCQkvKiBpdGVyYXRlIG9u bHkgb3ZlciBlbnRyaWVzIHRoYXQgYXJlIHN0aWxsIHBlbmRpbmcgKi8KKwkJCQlpZiAoeGFjdF9h aS0+ZGVsZXRpbmdfc3ViaWQgPT0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQpCisJCQkJeworCQkJ CQlPYmplY3RBZGRyZXNzIG9iamVjdDsKKworCQkJCQlvYmplY3QuY2xhc3NJZCA9IFZhcmlhYmxl UmVsYXRpb25JZDsKKwkJCQkJb2JqZWN0Lm9iamVjdElkID0geGFjdF9haS0+dmFyaWQ7CisJCQkJ CW9iamVjdC5vYmplY3RTdWJJZCA9IDA7CisKKwkJCQkJLyoKKwkJCQkJICogU2luY2UgdGhpcyBp cyBhbiBhdXRvbWF0aWMgZHJvcCwgcmF0aGVyIHRoYW4gb25lCisJCQkJCSAqIGRpcmVjdGx5IGlu aXRpYXRlZCBieSB0aGUgdXNlciwgd2UgcGFzcyB0aGUKKwkJCQkJICogUEVSRk9STV9ERUxFVElP Tl9JTlRFUk5BTCBmbGFnLgorCQkJCQkgKi8KKwkJCQkJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZh cmlhYmxlIChvaWQ6JXUpIHdpbGwgYmUgZGVsZXRlZCAoZm9yY2VkIGJ5IE9OIENPTU1JVCBEUk9Q IGNsYXVzZSkiLAorCQkJCQkJIHhhY3RfYWktPnZhcmlkKTsKKworCQkJCQlwZXJmb3JtRGVsZXRp b24oJm9iamVjdCwgRFJPUF9DQVNDQURFLAorCQkJCQkJCQkJUEVSRk9STV9ERUxFVElPTl9JTlRF Uk5BTCB8CisJCQkJCQkJCQlQRVJGT1JNX0RFTEVUSU9OX1FVSUVUTFkpOworCQkJCX0KKwkJCX0K KwkJfQorCisJCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKHRydWUpOworCX0KKwor CS8qCisJICogV2UgaGF2ZSB0byBjbGVhbiB4YWN0X2Ryb3BfaXRlbXMuIEFsbCByZWxhdGVkIHZh cmlhYmxlcyBhcmUgZHJvcHBlZAorCSAqIG5vdywgb3IgbG9zdCBpbnNpZGUgYWJvcnRlZCB0cmFu c2FjdGlvbi4KKwkgKi8KKwlsaXN0X2ZyZWVfZGVlcCh4YWN0X2Ryb3BfaXRlbXMpOworCXhhY3Rf ZHJvcF9pdGVtcyA9IE5VTEw7Cit9CisKKy8qCisgKiBQb3N0LXN1YmNvbW1pdCBvciBwb3N0LXN1 YmFib3J0IGNsZWFudXAgb2YgeGFjdCBkcm9wIGxpc3QuCisgKgorICogRHVyaW5nIHN1YmFib3J0 LCB3ZSBjYW4gaW1tZWRpYXRlbHkgcmVtb3ZlIGVudHJpZXMgY3JlYXRlZCBkdXJpbmcgdGhpcwor ICogc3VidHJhbnNhY3Rpb24uIER1cmluZyBzdWJjb21taXQsIGp1c3QgdHJhbnNmZXIgZW50cmll cyBtYXJrZWQgZHVyaW5nCisgKiB0aGlzIHN1YnRyYW5zYWN0aW9uIGFzIGJlaW5nIHRoZSBwYXJl bnQncyByZXNwb25zaWJpbGl0eS4KKyAqLwordm9pZAorQXRFT1N1YlhhY3RfU2Vzc2lvblZhcmlh Ymxlcyhib29sIGlzQ29tbWl0LAorCQkJCQkJCSBTdWJUcmFuc2FjdGlvbklkIG15U3ViaWQsCisJ CQkJCQkJIFN1YlRyYW5zYWN0aW9uSWQgcGFyZW50U3ViaWQpCit7CisJTGlzdENlbGwgICAqY3Vy X2l0ZW07CisKKwlmb3JlYWNoKGN1cl9pdGVtLCB4YWN0X2Ryb3BfaXRlbXMpCisJeworCQlTVmFy aWFibGVYQWN0RHJvcEl0ZW0gKnhhY3RfYWkgPQorCQkJKFNWYXJpYWJsZVhBY3REcm9wSXRlbSAq KSBsZmlyc3QoY3VyX2l0ZW0pOworCisJCWlmICghaXNDb21taXQgJiYgeGFjdF9haS0+Y3JlYXRp bmdfc3ViaWQgPT0gbXlTdWJpZCkKKwkJeworCQkJLyogY3VyX2l0ZW0gbXVzdCBiZSByZW1vdmVk ICovCisJCQl4YWN0X2Ryb3BfaXRlbXMgPSBmb3JlYWNoX2RlbGV0ZV9jdXJyZW50KHhhY3RfZHJv cF9pdGVtcywgY3VyX2l0ZW0pOworCQkJcGZyZWUoeGFjdF9haSk7CisJCX0KKwkJZWxzZQorCQl7 CisJCQkvKiBjdXJfaXRlbSBtdXN0IGJlIHByZXNlcnZlZCAqLworCQkJaWYgKHhhY3RfYWktPmNy ZWF0aW5nX3N1YmlkID09IG15U3ViaWQpCisJCQkJeGFjdF9haS0+Y3JlYXRpbmdfc3ViaWQgPSBw YXJlbnRTdWJpZDsKKwkJCWlmICh4YWN0X2FpLT5kZWxldGluZ19zdWJpZCA9PSBteVN1YmlkKQor CQkJCXhhY3RfYWktPmRlbGV0aW5nX3N1YmlkID0gaXNDb21taXQgPyBwYXJlbnRTdWJpZCA6IElu dmFsaWRTdWJUcmFuc2FjdGlvbklkOworCQl9CisJfQorfQorCiAvKgogICogSW5pdGlhbGl6ZSBh dHRyaWJ1dGVzIGNhY2hlZCBpbiAic3ZhciIKICAqLwpAQCAtNDQ2LDcgKzY0MCw3IEBAIGdldF9z ZXNzaW9uX3ZhcmlhYmxlKE9pZCB2YXJpZCkKIAkJdmFsaWRhdGVkX2x4aWQgIT0gTXlQcm9jLT52 eGlkLmx4aWQpCiAJewogCQkvKiBmcmVlIHRoZSBtZW1vcnkgZnJvbSBkcm9wcGVkIHNlc3Npb24g dmFyaWFibGVzICovCi0JCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKCk7CisJCXJl bW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKGZhbHNlKTsKIAogCQkvKiBkb24ndCByZXBl YXQgdGhlIGFib3ZlIHN0ZXAgaW4gdGhlIHNhbWUgdHJhbnNhY3Rpb24gKi8KIAkJdmFsaWRhdGVk X2x4aWQgPSBNeVByb2MtPnZ4aWQubHhpZDsKQEAgLTU0Miw3ICs3MzYsNyBAQCBTZXRTZXNzaW9u VmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpCiAJCXZhbGlkYXRl ZF9seGlkICE9IE15UHJvYy0+dnhpZC5seGlkKQogCXsKIAkJLyogZnJlZSB0aGUgbWVtb3J5IGZy b20gZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLwotCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9u X3ZhcmlhYmxlcygpOworCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhmYWxzZSk7 CiAKIAkJLyogZG9uJ3QgcmVwZWF0IHRoZSBhYm92ZSBzdGVwIGluIHRoZSBzYW1lIHRyYW5zYWN0 aW9uICovCiAJCXZhbGlkYXRlZF9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92aWV3 LmMKaW5kZXggNmYwMzAxNTU1ZTAuLjZiZWY5YTI2MTJhIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy92aWV3LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmlldy5jCkBAIC00 ODQsNyArNDg0LDcgQEAgRGVmaW5lVmlldyhWaWV3U3RtdCAqc3RtdCwgY29uc3QgY2hhciAqcXVl cnlTdHJpbmcsCiAJICovCiAJdmlldyA9IGNvcHlPYmplY3Qoc3RtdC0+dmlldyk7CS8qIGRvbid0 IGNvcnJ1cHQgb3JpZ2luYWwgY29tbWFuZCAqLwogCWlmICh2aWV3LT5yZWxwZXJzaXN0ZW5jZSA9 PSBSRUxQRVJTSVNURU5DRV9QRVJNQU5FTlQKLQkJJiYgaXNRdWVyeVVzaW5nVGVtcFJlbGF0aW9u KHZpZXdQYXJzZSkpCisJCSYmIGlzUXVlcnlVc2luZ1RlbXBPYmplY3Qodmlld1BhcnNlKSkKIAl7 CiAJCXZpZXctPnJlbHBlcnNpc3RlbmNlID0gUkVMUEVSU0lTVEVOQ0VfVEVNUDsKIAkJZXJlcG9y dChOT1RJQ0UsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYwppbmRleCAzZTk4MTRhZDlmNS4uYTAzODYwZDRiODgg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMKKysrIGIvc3JjL2JhY2tl bmQvcGFyc2VyL2FuYWx5emUuYwpAQCAtMzM4OSwxMCArMzM4OSwxMCBAQCB0cmFuc2Zvcm1DcmVh dGVUYWJsZUFzU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVRhYmxlQXNTdG10ICpzdG10 KQogCQkgKiBjcmVhdGlvbiBxdWVyeS4gSXQgd291bGQgYmUgaGFyZCB0byByZWZyZXNoIGRhdGEg b3IgaW5jcmVtZW50YWxseQogCQkgKiBtYWludGFpbiBpdCBpZiBhIHNvdXJjZSBkaXNhcHBlYXJl ZC4KIAkJICovCi0JCWlmIChpc1F1ZXJ5VXNpbmdUZW1wUmVsYXRpb24ocXVlcnkpKQorCQlpZiAo aXNRdWVyeVVzaW5nVGVtcE9iamVjdChxdWVyeSkpCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQko ZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJCSBlcnJtc2coIm1h dGVyaWFsaXplZCB2aWV3cyBtdXN0IG5vdCB1c2UgdGVtcG9yYXJ5IHRhYmxlcyBvciB2aWV3cyIp KSk7CisJCQkJCSBlcnJtc2coIm1hdGVyaWFsaXplZCB2aWV3cyBtdXN0IG5vdCB1c2UgdGVtcG9y YXJ5IHRhYmxlcywgdmlld3Mgb3Igc2Vzc2lvbiB2YXJpYWJsZXMiKSkpOwogCiAJCS8qCiAJCSAq IEEgbWF0ZXJpYWxpemVkIHZpZXcgd291bGQgZWl0aGVyIG5lZWQgdG8gc2F2ZSBwYXJhbWV0ZXJz IGZvciB1c2UgaW4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDZiYmFkMTU0Y2JlLi43YzA4OTU0OWI0YiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CkBAIC00NjUsNiArNDY1LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVW aWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0 eXBlIDxpdmFsPgkgT3B0VGVtcAogJXR5cGUgPGl2YWw+CSBPcHROb0xvZwogJXR5cGUgPG9uY29t bWl0PiBPbkNvbW1pdE9wdGlvbgorJXR5cGUgPGl2YWw+CSBYYWN0RW5kQWN0aW9uT3B0aW9uCiAK ICV0eXBlIDxpdmFsPglmb3JfbG9ja2luZ19zdHJlbmd0aAogJXR5cGUgPG5vZGU+CWZvcl9sb2Nr aW5nX2l0ZW0KQEAgLTUyMjgsMjYgKzUyMjksMzkgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRl bToKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogQ3JlYXRlU2Vzc2lvblZhclN0bXQ6Ci0JCQlD UkVBVEUgVkFSSUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRl X2NsYXVzZQorCQkJQ1JFQVRFIE9wdFRlbXAgVkFSSUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0X2Fz IFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBYYWN0RW5kQWN0aW9uT3B0aW9uCiAJCQkJewog CQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJT dG10KTsKLQkJCQkJbi0+dmFyaWFibGUgPSAkMzsKLQkJCQkJbi0+dHlwZU5hbWUgPSAkNTsKLQkJ CQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ2OworCQkJCQkkNC0+cmVscGVy c2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+dmFyaWFibGUgPSAkNDsKKwkJCQkJbi0+dHlwZU5hbWUg PSAkNjsKKwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ3OworCQkJCQlu LT5YYWN0RW5kQWN0aW9uID0gJDg7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSBmYWxzZTsKIAkJ CQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KLQkJCXwgQ1JFQVRFIFZBUklBQkxFIElGX1AgTk9U IEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNl CisJCQl8IENSRUFURSBPcHRUZW1wIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRf bmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIFhhY3RFbmRBY3Rpb25PcHRp b24KIAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRl U2Vzc2lvblZhclN0bXQpOwotCQkJCQluLT52YXJpYWJsZSA9ICQ2OwotCQkJCQluLT50eXBlTmFt ZSA9ICQ4OwotCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDk7CisJCQkJ CSQ3LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOworCQkJCQluLT52YXJpYWJsZSA9ICQ3OworCQkJCQlu LT50eXBlTmFtZSA9ICQ5OworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikg JDEwOworCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDExOwogCQkJCQluLT5pZl9ub3RfZXhpc3Rz ID0gdHJ1ZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KIAkJOwogCisvKgorICogVGVt cG9yYXJ5IHNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBkcm9wcGVkIG9uIHN1Y2Nlc3NmdWwKKyAq IHRyYW5zYWN0aW9uIGVuZCBsaWtlIHRhYmxlcy4KKyAqLworWGFjdEVuZEFjdGlvbk9wdGlvbjog IE9OIENPTU1JVCBEUk9QCQkJCXsgJCQgPSBWQVJJQUJMRV9YQUNURU5EX0RST1A7IH0KKwkJCXwg LypFTVBUWSovCQkJCQkJCQl7ICQkID0gVkFSSUFCTEVfWEFDVEVORF9OT09QOyB9CisJCTsKKwor CiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKiBBTFRFUiBFWFRFTlNJT04gbmFtZSBVUERB VEUgWyBUTyB2ZXJzaW9uIF0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9y ZWxhdGlvbi5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKaW5kZXggOTJh MDRlMzVkZmYuLjg2NWExMmQ4YjcxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfcmVsYXRpb24uYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYwpA QCAtMTAxLDcgKzEwMSw3IEBAIHN0YXRpYyB2b2lkIGV4cGFuZFR1cGxlRGVzYyhUdXBsZURlc2Mg dHVwZGVzYywgQWxpYXMgKmVyZWYsCiBzdGF0aWMgaW50CXNwZWNpYWxBdHROdW0oY29uc3QgY2hh ciAqYXR0bmFtZSk7CiBzdGF0aWMgYm9vbCBydGVfdmlzaWJsZV9pZl9sYXRlcmFsKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgUmFuZ2VUYmxFbnRyeSAqcnRlKTsKIHN0YXRpYyBib29sIHJ0ZV92aXNpYmxl X2lmX3F1YWxpZmllZChQYXJzZVN0YXRlICpwc3RhdGUsIFJhbmdlVGJsRW50cnkgKnJ0ZSk7Ci1z dGF0aWMgYm9vbCBpc1F1ZXJ5VXNpbmdUZW1wUmVsYXRpb25fd2Fsa2VyKE5vZGUgKm5vZGUsIHZv aWQgKmNvbnRleHQpOworc3RhdGljIGJvb2wgaXNRdWVyeVVzaW5nVGVtcE9iamVjdF93YWxrZXIo Tm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCk7CiAKIAogLyoKQEAgLTM4OTYsMTMgKzM4OTYsMTMg QEAgcnRlX3Zpc2libGVfaWZfcXVhbGlmaWVkKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUmFuZ2VUYmxF bnRyeSAqcnRlKQogICogdGhlIHF1ZXJ5IGlzIGEgdGVtcG9yYXJ5IHJlbGF0aW9uICh0YWJsZSwg dmlldywgb3IgbWF0ZXJpYWxpemVkIHZpZXcpLgogICovCiBib29sCi1pc1F1ZXJ5VXNpbmdUZW1w UmVsYXRpb24oUXVlcnkgKnF1ZXJ5KQoraXNRdWVyeVVzaW5nVGVtcE9iamVjdChRdWVyeSAqcXVl cnkpCiB7Ci0JcmV0dXJuIGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbl93YWxrZXIoKE5vZGUgKikg cXVlcnksIE5VTEwpOworCXJldHVybiBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0X3dhbGtlcigoTm9k ZSAqKSBxdWVyeSwgTlVMTCk7CiB9CiAKIHN0YXRpYyBib29sCi1pc1F1ZXJ5VXNpbmdUZW1wUmVs YXRpb25fd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNvbnRleHQpCitpc1F1ZXJ5VXNpbmdUZW1w T2JqZWN0X3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KQogewogCWlmIChub2RlID09 IE5VTEwpCiAJCXJldHVybiBmYWxzZTsKQEAgLTM5MjgsMTMgKzM5MjgsMjMgQEAgaXNRdWVyeVVz aW5nVGVtcFJlbGF0aW9uX3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KQogCQl9CiAK IAkJcmV0dXJuIHF1ZXJ5X3RyZWVfd2Fsa2VyKHF1ZXJ5LAotCQkJCQkJCQkgaXNRdWVyeVVzaW5n VGVtcFJlbGF0aW9uX3dhbGtlciwKKwkJCQkJCQkJIGlzUXVlcnlVc2luZ1RlbXBPYmplY3Rfd2Fs a2VyLAogCQkJCQkJCQkgY29udGV4dCwKIAkJCQkJCQkJIFFUV19JR05PUkVfSk9JTkFMSUFTRVMp OwogCX0KKwllbHNlIGlmIChJc0Eobm9kZSwgUGFyYW0pKQorCXsKKwkJUGFyYW0JICAgKnAgPSAo UGFyYW0gKikgbm9kZTsKKworCQlpZiAocC0+cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQor CQl7CisJCQlpZiAoaXNBbnlUZW1wTmFtZXNwYWNlKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVz cGFjZShwLT5wYXJhbXZhcmlkKSkpCisJCQkJcmV0dXJuIHRydWU7CisJCX0KKwl9CiAKIAlyZXR1 cm4gZXhwcmVzc2lvbl90cmVlX3dhbGtlcihub2RlLAotCQkJCQkJCQkgIGlzUXVlcnlVc2luZ1Rl bXBSZWxhdGlvbl93YWxrZXIsCisJCQkJCQkJCSAgaXNRdWVyeVVzaW5nVGVtcE9iamVjdF93YWxr ZXIsCiAJCQkJCQkJCSAgY29udGV4dCk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9k ZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggNTU0NmJmOTFlMmUuLmQ2 ZDMwZTczZWU4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMv YmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtNTI1MCw3ICs1MjUwLDcgQEAgbGlzdFZhcmlhYmxlcyhj b25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJUFFFeHBCdWZmZXJEYXRhIGJ1ZjsK IAlQR3Jlc3VsdCAgICpyZXM7CiAJcHJpbnRRdWVyeU9wdCBteW9wdCA9IHBzZXQucG9wdDsKLQlz dGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKKwlzdGF0aWMgY29uc3QgYm9vbCB0cmFu c2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs c2UsIGZhbHNlLCBmYWxzZX07CiAKIAlpZiAocHNldC5zdmVyc2lvbiA8IDE4MDAwMCkKIAl7CkBA IC01MjcwLDEyICs1MjcwLDE2IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwg Ym9vbCB2ZXJib3NlKQogCQkJCQkgICIgIHBnX2NhdGFsb2cuZm9ybWF0X3R5cGUodi52YXJ0eXBl LCB2LnZhcnR5cG1vZCkgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIChTRUxFQ1QgYy5jb2xsbmFt ZSBGUk9NIHBnX2NhdGFsb2cucGdfY29sbGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlwZSBidFxu IgogCQkJCQkgICIgICBXSEVSRSBjLm9pZCA9IHYudmFyY29sbGF0aW9uIEFORCBidC5vaWQgPSB2 LnZhcnR5cGUgQU5EIHYudmFyY29sbGF0aW9uIDw+IGJ0LnR5cGNvbGxhdGlvbikgYXMgXCIlc1wi LFxuIgotCQkJCQkgICIgIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFyb3duZXIpIGFz IFwiJXNcIlxuIiwKKwkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZCh2LnZhcm93 bmVyKSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgQ0FTRSB2LnZhcnhhY3RlbmRhY3Rpb25cbiIK KwkJCQkJICAiICAgIFdIRU4gJ2QnIFRIRU4gJ09OIENPTU1JVCBEUk9QJ1xuIgorCQkJCQkgICIg IEVORCBhcyBcIiVzXCJcbiIsCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJTY2hlbWEiKSwKIAkJCQkJ ICBnZXR0ZXh0X25vb3AoIk5hbWUiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlR5cGUiKSwKIAkJ CQkJICBnZXR0ZXh0X25vb3AoIkNvbGxhdGlvbiIpLAotCQkJCQkgIGdldHRleHRfbm9vcCgiT3du ZXIiKSk7CisJCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpLAorCQkJCQkgIGdldHRleHRfbm9v cCgiVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIikpOwogCiAJaWYgKHZlcmJvc2UpCiAJewpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jCmluZGV4IGUzYzgzMDUyN2VhLi4yNDlmNjE4NzhkMSAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWIt Y29tcGxldGUuaW4uYwpAQCAtMzYwOCw3ICszNjA4LDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMo aW50IHBhdHRlcm5faWQsCiAvKiBDUkVBVEUgVEFCTEUgLS0tIGlzIGFsbG93ZWQgaW5zaWRlIENS RUFURSBTQ0hFTUEsIHNvIHVzZSBUYWlsTWF0Y2hlcyAqLwogCS8qIENvbXBsZXRlICJDUkVBVEUg VEVNUC9URU1QT1JBUlkiIHdpdGggdGhlIHBvc3NpYmxlIHRlbXAgb2JqZWN0cyAqLwogCWVsc2Ug aWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAiVEVNUHxURU1QT1JBUlkiKSkKLQkJQ09NUExFVEVf V0lUSCgiU0VRVUVOQ0UiLCAiVEFCTEUiLCAiVklFVyIpOworCQlDT01QTEVURV9XSVRIKCJTRVFV RU5DRSIsICJUQUJMRSIsICJWQVJJQUJMRSIsICJWSUVXIik7CiAJLyogQ29tcGxldGUgIkNSRUFU RSBVTkxPR0dFRCIgd2l0aCBUQUJMRSBvciBTRVFVRU5DRSAqLwogCWVsc2UgaWYgKFRhaWxNYXRj aGVzKCJDUkVBVEUiLCAiVU5MT0dHRUQiKSkKIAkJQ09NUExFVEVfV0lUSCgiVEFCTEUiLCAiU0VR VUVOQ0UiKTsKQEAgLTM5NTksNyArMzk1OSw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBw YXR0ZXJuX2lkLAogCX0KIC8qIENSRUFURSBWQVJJQUJMRSAtLS0gaXMgYWxsb3dlZCBpbnNpZGUg Q1JFQVRFIFNDSEVNQSwgc28gdXNlIFRhaWxNYXRjaGVzICovCiAJLyogQ29tcGxldGUgQ1JFQVRF IFZBUklBQkxFIDxuYW1lPiB3aXRoIEFTICovCi0JZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFU RSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSkKKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRF IiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpIHx8CisJCQkgVGFpbE1hdGNoZXMoIlRFTVB8VEVNUE9S QVJZIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJBUyIpOwogCWVs c2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJQUJMRSIsIE1hdGNoQW55LCAiQVMiKSkKIAkJLyogQ29t cGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRoIEFTIHR5cGVzICovCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3ZhcmlhYmxlLmgKaW5kZXggNWI0NWJlNWFmYWYuLjBmYzY3MmJjMmJhIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ192YXJpYWJsZS5oCkBAIC01Niw2ICs1Niw5IEBAIENBVEFMT0cocGdfdmFyaWFibGUs OTIyMixWYXJpYWJsZVJlbGF0aW9uSWQpCiAJLyogdHlwbW9kIGZvciB2YXJpYWJsZSdzIHR5cGUg Ki8KIAlpbnQzMgkJdmFydHlwbW9kIEJLSV9ERUZBVUxUKC0xKTsKIAorCS8qIGFjdGlvbiBvbiB0 cmFuc2FjdGlvbiBlbmQgKi8KKwljaGFyCQl2YXJ4YWN0ZW5kYWN0aW9uIEJLSV9ERUZBVUxUKG4p OworCiAJLyogdmFyaWFibGUgY29sbGF0aW9uICovCiAJT2lkCQkJdmFyY29sbGF0aW9uIEJLSV9E RUZBVUxUKDApIEJLSV9MT09LVVBfT1BUKHBnX2NvbGxhdGlvbik7CiAKQEAgLTY4LDYgKzcxLDEy IEBAIENBVEFMT0cocGdfdmFyaWFibGUsOTIyMixWYXJpYWJsZVJlbGF0aW9uSWQpCiAjZW5kaWYK IH0gRm9ybURhdGFfcGdfdmFyaWFibGU7CiAKK3R5cGVkZWYgZW51bSBWYXJpYWJsZVhhY3RFbmRB Y3Rpb24KK3sKKwlWQVJJQUJMRV9YQUNURU5EX05PT1AgPSAnbicsCS8qIE5PT1AgKi8KKwlWQVJJ QUJMRV9YQUNURU5EX0RST1AgPSAnZCcsCS8qIE9OIENPTU1JVCBEUk9QICovCit9CQkJVmFyaWFi bGVYYWN0RW5kQWN0aW9uOworCiAvKiAtLS0tLS0tLS0tLS0tLS0tCiAgKgkJRm9ybV9wZ192YXJp YWJsZSBjb3JyZXNwb25kcyB0byBhIHBvaW50ZXIgdG8gYSB0dXBsZSB3aXRoCiAgKgkJdGhlIGZv cm1hdCBvZiB0aGUgcGdfdmFyaWFibGUgcmVsYXRpb24uCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmgKaW5kZXggMDZjZTk2NDAwODUuLjIzODQxYWIzNzNiIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1 ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0yMSw3ICsyMSwxMSBAQAogI2luY2x1 ZGUgInRjb3AvY21kdGFnLmgiCiAjaW5jbHVkZSAidXRpbHMvcXVlcnllbnZpcm9ubWVudC5oIgog Ci1leHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZhcmlkKTsK K2V4dGVybiB2b2lkIFNlc3Npb25WYXJpYWJsZUNyZWF0ZVBvc3Rwcm9jZXNzKE9pZCB2YXJpZCwg Y2hhciBYYWN0RW5kQWN0aW9uKTsKK2V4dGVybiB2b2lkIFNlc3Npb25WYXJpYWJsZURyb3BQb3N0 cHJvY2VzcyhPaWQgdmFyaWQsIGNoYXIgWGFjdEVuZEFjdGlvbik7CitleHRlcm4gdm9pZCBBdFBy ZUVPWGFjdF9TZXNzaW9uVmFyaWFibGVzKGJvb2wgaXNDb21taXQpOworZXh0ZXJuIHZvaWQgQXRF T1N1YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0LCBTdWJUcmFuc2FjdGlvbklk IG15U3ViaWQsCisJCQkJCQkJCQkJIFN1YlRyYW5zYWN0aW9uSWQgcGFyZW50U3ViaWQpOwogCiBl eHRlcm4gdm9pZCBTZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9v bCBpc051bGwpOwogZXh0ZXJuIERhdHVtIEdldFNlc3Npb25WYXJpYWJsZShPaWQgdmFyaWQsIGJv b2wgKmlzTnVsbCwgT2lkICp0eXBpZCk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggZjg4ZWRj MGQ0MTguLmVjNGExNmFlYTI0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0zNDg3LDYgKzM0 ODcsNyBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVTZXNzaW9uVmFyU3RtdAogCVR5cGVOYW1lICAg KnR5cGVOYW1lOwkJLyogdGhlIHR5cGUgb2YgdmFyaWFibGUgKi8KIAlDb2xsYXRlQ2xhdXNlICpj b2xsQ2xhdXNlOwogCWJvb2wJCWlmX25vdF9leGlzdHM7CS8qIGRvIG5vdGhpbmcgaWYgaXQgYWxy ZWFkeSBleGlzdHMgKi8KKwljaGFyCQlYYWN0RW5kQWN0aW9uOwkvKiBvbiB0cmFuc2FjdGlvbiBl bmQgYWN0aW9uICovCiB9IENyZWF0ZVNlc3Npb25WYXJTdG10OwogCiAKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVz LmgKaW5kZXggOTQ2NmIzMTE3MTAuLjMyYjdhNDMzYTI0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApA QCAtNTEsNyArNTEsOSBAQCB0eXBlZGVmIHN0cnVjdCBBbGlhcwogCUxpc3QJICAgKmNvbG5hbWVz OwkJLyogb3B0aW9uYWwgbGlzdCBvZiBjb2x1bW4gYWxpYXNlcyAqLwogfSBBbGlhczsKIAotLyog V2hhdCB0byBkbyBhdCBjb21taXQgdGltZSBmb3IgdGVtcG9yYXJ5IHJlbGF0aW9ucyAqLworLyoK KyAqIFdoYXQgdG8gZG8gYXQgY29tbWl0IHRpbWUgZm9yIHRlbXBvcmFyeSByZWxhdGlvbnMgb3Ig c2Vzc2lvbiB2YXJpYWJsZXMuCisgKi8KIHR5cGVkZWYgZW51bSBPbkNvbW1pdEFjdGlvbgogewog CU9OQ09NTUlUX05PT1AsCQkJCS8qIE5vIE9OIENPTU1JVCBjbGF1c2UgKGRvIG5vdGhpbmcpICov CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaCBiL3NyYy9p bmNsdWRlL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5oCmluZGV4IGRmNmZkNTU1MGQ3Li5iZTBkMGFi ZmZlMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgKKysr IGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgKQEAgLTEyNiw2ICsxMjYsNiBA QCBleHRlcm4gaW50CWF0dG5hbWVBdHROdW0oUmVsYXRpb24gcmQsIGNvbnN0IGNoYXIgKmF0dG5h bWUsIGJvb2wgc3lzQ29sT0spOwogZXh0ZXJuIGNvbnN0IE5hbWVEYXRhICphdHRudW1BdHROYW1l KFJlbGF0aW9uIHJkLCBpbnQgYXR0aWQpOwogZXh0ZXJuIE9pZAlhdHRudW1UeXBlSWQoUmVsYXRp b24gcmQsIGludCBhdHRpZCk7CiBleHRlcm4gT2lkCWF0dG51bUNvbGxhdGlvbklkKFJlbGF0aW9u IHJkLCBpbnQgYXR0aWQpOwotZXh0ZXJuIGJvb2wgaXNRdWVyeVVzaW5nVGVtcFJlbGF0aW9uKFF1 ZXJ5ICpxdWVyeSk7CitleHRlcm4gYm9vbCBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0KFF1ZXJ5ICpx dWVyeSk7CiAKICNlbmRpZgkJCQkJCQkvKiBQQVJTRV9SRUxBVElPTl9IICovCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgYi9zcmMv dGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKaW5kZXggMGE1NTc5 ZGM3Y2UuLmE2MDk3OTdkYzVkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0 ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVjdGVk L3Nlc3Npb24tdmFyaWFibGUub3V0CkBAIC04NiwxMCArODYsMTEgQEAgbXl2YXIKIAogc3RlcCBz cjE6IFJPTExCQUNLOwogCi1zdGFydGluZyBwZXJtdXRhdGlvbjogY3JlYXRlMyBsZXQzIHMzIGNy ZWF0ZTQgbGV0NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKK3N0YXJ0aW5n IHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgb19jX2QgY3JlYXRlNCBsZXQ0IGRyb3A0IGRy b3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQogc3RlcCBjcmVhdGUzOiBDUkVBVEUgVkFSSUFC TEUgbXl2YXIzIEFTIHRleHQ7CiBzdGVwIGxldDM6IExFVCBteXZhcjMgPSAndGVzdCc7CiBzdGVw IHMzOiBCRUdJTjsKK3N0ZXAgb19jX2Q6IENSRUFURSBURU1QIFZBUklBQkxFIG15dmFyX29fY19k IEFTIHRleHQgT04gQ09NTUlUIERST1A7CiBzdGVwIGNyZWF0ZTQ6IENSRUFURSBWQVJJQUJMRSBt eXZhcjQgQVMgdGV4dDsKIHN0ZXAgbGV0NDogTEVUIG15dmFyNCA9ICd0ZXN0JzsKIHN0ZXAgZHJv cDQ6IERST1AgVkFSSUFCTEUgbXl2YXI0OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9u L3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9z ZXNzaW9uLXZhcmlhYmxlLnNwZWMKaW5kZXggYzg2NGZlZTQwMDYuLjQ1ZTY1ZDQwODVkIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjCisr KyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKQEAgLTI0 LDYgKzI0LDcgQEAgc3RlcCBjcmVhdGUJCXsgQ1JFQVRFIFZBUklBQkxFIG15dmFyIEFTIHRleHQ7 IH0KIHNlc3Npb24gczMKIHN0ZXAgczMJCQl7IEJFR0lOOyB9CiBzdGVwIGxldDMJCXsgTEVUIG15 dmFyMyA9ICd0ZXN0JzsgfQorc3RlcCBvX2NfZAkJeyBDUkVBVEUgVEVNUCBWQVJJQUJMRSBteXZh cl9vX2NfZCBBUyB0ZXh0IE9OIENPTU1JVCBEUk9QOyB9CiBzdGVwIGNyZWF0ZTQJeyBDUkVBVEUg VkFSSUFCTEUgbXl2YXI0IEFTIHRleHQ7IH0KIHN0ZXAgbGV0NAkJeyBMRVQgbXl2YXI0ID0gJ3Rl c3QnOyB9CiBzdGVwIGRyb3A0CQl7IERST1AgVkFSSUFCTEUgbXl2YXI0OyB9CkBAIC00Nyw0ICs0 OCw0IEBAIHBlcm11dGF0aW9uIGxldCB2YWwgZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwKICMgY2Fs bGluZyB0aGUgZGJnIHN0ZXAgYWZ0ZXIgdGhlIGNvbmN1cnJlbnQgZHJvcAogcGVybXV0YXRpb24g bGV0IHZhbCBzMSBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbCBzcjEKICMgdGVzdCBmb3IgRElTQ0FS RCBBTEwgd2hlbiBhbGwgaW50ZXJuYWwgcXVldWVzIGhhdmUgYWN0aW9ucyByZWdpc3RlcmVkCi1w ZXJtdXRhdGlvbiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFs MyBkaXNjYXJkIHNjMyBzdGF0ZQorcGVybXV0YXRpb24gY3JlYXRlMyBsZXQzIHMzIG9fY19kIGNy ZWF0ZTQgbGV0NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3BzcWwub3V0CmluZGV4IDg4ZTIxMTk0NzExLi42MTA3N2E1MmIxNiAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CkBAIC01OTM1LDIwICs1OTM1LDIwIEBAIENSRUFURSBS T0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxl X293bmVyOwogQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhciBDT0xMQVRFICJDIjsKIFxk VisgdmFyMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxh dGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2Ny aXB0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jl c3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFi bGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAg ICAgICBPd25lciAgICAgICAgICB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8IEFjY2VzcyBw cml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcHVibGljIHwg dmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9v d25lciB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgCiAo MSByb3cpCiAKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsKIENPTU1F TlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CiBcZFYrIHZhcjEKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAg fCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgICAgICAgICAgICAgICAgQWNj ZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAKLS0tLS0t LS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlp bmcgfCBDICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgcmVncmVzc192YXJpYWJs ZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgotICAg ICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgfCA9ci9yZWdyZXNzX3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAg ICAgICAgfCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8 IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAg ICAgICAgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gfCAgICAgICAgICAgICAgICBBY2Nlc3Mg cHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0r LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8 IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVf b3duZXIgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVy PXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCisgICAgICAgIHwg ICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3du ZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHZh cjE7CkBAIC02NDE2LDkgKzY0MTYsOSBAQCBMaXN0IG9mIHNjaGVtYXMKICgwIHJvd3MpCiAKIFxk ViAibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2No ZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAKLS0tLS0tLS0tKy0tLS0tLSst LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0 IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIg fCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0t IGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpAQCAtNjU5MSw5 ICs2NTkxLDkgQEAgaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1l cyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guaW5zdGEKIFxkeSAibm8uc3VjaC5zY2hlbWEi LiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1h bnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2Vy IgogXGRWICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICBM aXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3du ZXIgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlw ZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0t LS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggY3VycmVudCBkYXRhYmFzZSBh bmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY3MzAsOSArNjczMCw5IEBAIExp c3Qgb2YgdGV4dCBzZWFyY2ggdGVtcGxhdGVzCiAoMCByb3dzKQogCiBcZFYgcmVncmVzc2lvbi4i bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgTGlzdCBvZiB2 YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAotLS0t LS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tCisgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xs YXRpb24gfCBPd25lciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0t LSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQog KDAgcm93cykKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBkYXRhYmFzZSBhbmQgZG90dGVk IHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggNWViMjBiOTIyZTIuLmZhZWQzMGU3YzhlIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAt MjIyNywzICsyMjI3LDEyMyBAQCBTRUxFQ1QgdmFyMTsKIAogREVBTExPQ0FURSBwMTsKIERST1Ag VkFSSUFCTEUgdmFyMTsKKy0tIHRlbXBvcmFyeSB2YXJpYWJsZXMKK0NSRUFURSBURU1QIFZBUklB QkxFIHZhcjEgQVMgaW50OworLS0gdGhpcyB2aWV3IHNob3VsZCBiZSB0ZW1wb3JhcnkKK0NSRUFU RSBWSUVXIHZhcl90ZXN0X3ZpZXcgQVMgU0VMRUNUIHZhcjE7CitOT1RJQ0U6ICB2aWV3ICJ2YXJf dGVzdF92aWV3IiB3aWxsIGJlIGEgdGVtcG9yYXJ5IHZpZXcKK0RST1AgVkFSSUFCTEUgdmFyMSBD QVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byB2aWV3IHZhcl90ZXN0X3ZpZXcKK0JF R0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsK KyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAw CisoMSByb3cpCisKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikg RlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworIGNvdW50IAorLS0tLS0t LQorICAgICAwCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikg RlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCiso MSByb3cpCisKK0JFR0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBD T01NSVQgRFJPUDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCist LS0tLS0KKyAgMTAwCisoMSByb3cpCisKK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIHplcm8KK1NF TEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7Cisg Y291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIHplcm8KK1NF TEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0t LS0tCisgICAgIDAKKygxIHJvdykKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZh cjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgRFJPUCBWQVJJ QUJMRSB2YXIxOworQ09NTUlUOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBG Uk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgY291bnQgCistLS0tLS0t CisgICAgIDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBG Uk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygx IHJvdykKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENP TU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworUk9M TEJBQ0s7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfdmFyaWFi bGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEg cm93KQorCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lv bl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitCRUdJ TjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7Cisg IExFVCB2YXIxID0gMTAwOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsK KyAgUk9MTEJBQ0sgVE8gczE7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAw CisoMSByb3cpCisKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikg RlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworIGNvdW50IAorLS0tLS0t LQorICAgICAwCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikg RlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCiso MSByb3cpCisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFi bGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRl eCA3NThjZDNmYzRhNC4uZTY3ZTVkYjk2YmQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNz aW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTEzMDYsNiArMTMwNiw3IEBAIEJFR0lOOwogICBEUk9QIFZB UklBQkxFIHZhcjE7CiAgIFNFTEVDVCB2YXIyOwogUk9MTEJBQ0s7CisKIC0tIHNob3VsZCBiZSBv awogU0VMRUNUIHZhcjE7CiAKQEAgLTE1NDYsMyArMTU0Nyw2OCBAQCBTRUxFQ1QgdmFyMTsKIAog REVBTExPQ0FURSBwMTsKIERST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gdGVtcG9yYXJ5IHZhcmlh YmxlcworQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CistLSB0aGlzIHZpZXcgc2hv dWxkIGJlIHRlbXBvcmFyeQorQ1JFQVRFIFZJRVcgdmFyX3Rlc3RfdmlldyBBUyBTRUxFQ1QgdmFy MTsKKworRFJPUCBWQVJJQUJMRSB2YXIxIENBU0NBREU7CisKK0JFR0lOOworICBDUkVBVEUgVEVN UCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsKKyAgTEVUIHZhcjEgPSAxMDA7 CisgIFNFTEVDVCB2YXIxOworQ09NTUlUOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNv dW50KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKy0tIHNob3Vs ZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwor CitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERS T1A7CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKK1JPTExCQUNLOworCistLSBz aG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFy bmFtZSA9ICd2YXIxJzsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUg dmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBEUk9QIFZB UklBQkxFIHZhcjE7CitDT01NSVQ7CisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQo KikgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworLS0gc2hvdWxkIGJl IHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKK0JF R0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJPUDsK KyAgTEVUIHZhcjEgPSAxMDA7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKK1JPTExCQUNLOworCist LSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUg dmFybmFtZSA9ICd2YXIxJzsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJP TSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitCRUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFC TEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAwOworICBTQVZF UE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgUk9MTEJBQ0sgVE8gczE7CisgIFNF TEVDVCB2YXIxOworQ09NTUlUOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCop IEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKy0tIHNob3VsZCBiZSB6 ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwpkaWZmIC0t Z2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdAppbmRleCBhMDVjZTIwOWRmZi4uNWM4NzVhZTY4NDYgMTAwNjQ0Ci0t LSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CkBAIC0yODA2LDYgKzI4MDYsNyBAQCBTdXBwb3J0UmVxdWVzdFdG dW5jTW9ub3RvbmljCiBTVmFyaWFibGUKIFNWYXJpYWJsZURhdGEKIFNWYXJpYWJsZVN0YXRlCitT VmFyaWFibGVYQWN0RHJvcEl0ZW0KIFN5bgogU3luY09wcwogU3luY1JlcENvbmZpZ0RhdGEKLS0g CjIuNDcuMQoK --000000000000f297a7062b2456dc Content-Type: text/x-patch; charset="US-ASCII"; name="v20250107-0011-PREPARE-LET-support.patch" Content-Disposition: attachment; filename="v20250107-0011-PREPARE-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5mz6bl211 RnJvbSBlMDg5OTA3YTRhNzhlYzhlZTg1MzgyZDc1NzE5ZDIwNzRkYmQ4YzViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMDk6NDQ6NTggKzAxMDAKU3ViamVjdDogW1BBVENIIDEx LzIyXSBQUkVQQVJFIExFVCBzdXBwb3J0CgpJbiBjdXJyZW50IGNvZGUgYmFzZSBpdCByZXF1aXJl cyBqdXN0IHNtYWxsIGNoYW5nZXMgaW4gcGFyc2VyLiBJdCBpcyBuaWNlCnRvIGhhdmUgdG8gaGF2 ZSBwb3NzaWJpbGl0eSB0byB1c2UgcHJlcGFyZWQgTEVUIHN0YXRlbWVudHMgbWFpbmx5IGR1ZSBy ZWR1Y3Rpb24Kb2Ygc2VjdXJpdHkgcmlza3MgKFNRTCBpbmplY3Rpb24pLCBhbmQgaW1wbGVtZW50 YXRpb24gaXMgYWxtb3N0IGNoZWFwLgoKRXhwbGljaXQgcHJlcGFyaW5nIGlzIG5vdCBuZWNlc3Np dHkgZm9yIHN1cHBvcnQgb2YgTEVUIHN0YXRlbWVudHMgaW4gUEwsIGJlY2F1c2UKUEwgdXNlcyBT UEkgZm9yIHF1ZXJ5IGV4ZWN1dGlvbiwgYnV0IGl0IGlzIG5pY2UgdG8gaGF2ZSB0aGlzIHBvc3Np YmlsaXR5IChjb21wbGV0ZW5lZXMsIC4uLikKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUu c2dtbCAgICAgICAgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAg ICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jdGUu YyAgICAgICAgICAgICAgICB8ICA3ICsrCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMg ICAgICAgICAgICAgICAgfCAgNCArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXMub3V0ICAgIHwgODEgKysrKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgNTcgKysrKysrKysrKysrKwogNiBmaWxlcyBj aGFuZ2VkLCAxNDkgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcHJlcGFyZS5z Z21sCmluZGV4IDhlZTk0MzlmNjExLi40NWQ3MmIxZDUyYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9wcmVwYXJlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9wcmVwYXJlLnNnbWwK QEAgLTExNiw4ICsxMTYsOCBAQCBQUkVQQVJFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcwogICAgIDxsaXN0aXRl bT4KICAgICAgPHBhcmE+CiAgICAgICBBbnkgPGNvbW1hbmQ+U0VMRUNUPC9jb21tYW5kPiwgPGNv bW1hbmQ+SU5TRVJUPC9jb21tYW5kPiwgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwKLSAgICAg IDxjb21tYW5kPkRFTEVURTwvY29tbWFuZD4sIDxjb21tYW5kPk1FUkdFPC9jb21tYW5kPiwgb3Ig PGNvbW1hbmQ+VkFMVUVTPC9jb21tYW5kPgotICAgICAgc3RhdGVtZW50LgorICAgICAgPGNvbW1h bmQ+REVMRVRFPC9jb21tYW5kPiwgPGNvbW1hbmQ+TUVSR0U8L2NvbW1hbmQ+LCA8Y29tbWFuZD5W QUxVRVM8L2NvbW1hbmQ+LAorICAgICAgb3IgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBzdGF0ZW1l bnQuCiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueQppbmRleCAzYmU5YTJkZDJkNS4uNmJiYWQxNTRjYmUgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAt MTIxNjAsNyArMTIxNjAsOCBAQCBQcmVwYXJhYmxlU3RtdDoKIAkJCXwgSW5zZXJ0U3RtdAogCQkJ fCBVcGRhdGVTdG10CiAJCQl8IERlbGV0ZVN0bXQKLQkJCXwgTWVyZ2VTdG10CQkJCQkJLyogYnkg ZGVmYXVsdCBhbGwgYXJlICQkPSQxICovCisJCQl8IE1lcmdlU3RtdAorCQkJfCBMZXRTdG10CQkJ CQkJLyogYnkgZGVmYXVsdCBhbGwgYXJlICQkPSQxICovCiAJCTsKIAogLyoqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKaW5kZXggNzk2NzM2MjFjOWIuLmM2Mjc2MWU0ZWFl IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2N0ZS5jCkBAIC0xMjYsNiArMTI2LDEzIEBAIHRyYW5zZm9ybVdp dGhDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaXRoQ2xhdXNlICp3aXRoQ2xhdXNlKQogCQlD b21tb25UYWJsZUV4cHIgKmN0ZSA9IChDb21tb25UYWJsZUV4cHIgKikgbGZpcnN0KGxjKTsKIAkJ TGlzdENlbGwgICAqcmVzdDsKIAorCQkvKiBMRVQgaXMgYWxsb3dlZCBieSBwYXJzZXIsIGJ1dCBu b3Qgc3VwcG9ydGVkLiBSZWplY3QgZm9yIG5vdyAqLworCQlpZiAoSXNBKGN0ZS0+Y3RlcXVlcnks IExldFN0bXQpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCWVycm1zZygiTEVUIG5vdCBzdXBwb3J0ZWQgaW4gV0lU SCBxdWVyeSIpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjdGUtPmxvY2F0aW9u KSk7CisKIAkJZm9yX2VhY2hfY2VsbChyZXN0LCB3aXRoQ2xhdXNlLT5jdGVzLCBsbmV4dCh3aXRo Q2xhdXNlLT5jdGVzLCBsYykpCiAJCXsKIAkJCUNvbW1vblRhYmxlRXhwciAqY3RlMiA9IChDb21t b25UYWJsZUV4cHIgKikgbGZpcnN0KHJlc3QpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IGQ3 OGNlZjM2YWQ4Li5lM2M4MzA1MjdlYSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtNDY2MCw5 ICs0NjYwLDkgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBp ZiAoVGFpbE1hdGNoZXMoIlZBTFVFUyIpICYmICFUYWlsTWF0Y2hlcygiREVGQVVMVCIsICJWQUxV RVMiKSkKIAkJQ09NUExFVEVfV0lUSCgiKCIpOwogCi0vKiBMRVQgKi8KKy8qIExFVCwgRVhQTEFJ TiBMRVQsIFBSRVBBUkUgTEVUICovCiAJLyogSWYgcHJldi4gd29yZCBpcyBMRVQgc3VnZ2VzdCBh IGxpc3Qgb2YgdmFyaWFibGVzICovCi0JZWxzZSBpZiAoTWF0Y2hlcygiTEVUIikpCisJZWxzZSBp ZiAoVGFpbE1hdGNoZXMoIkxFVCIpKQogCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVy eV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOwogCS8qIENvbXBsZXRlIExFVCA8dmFyaWFibGU+IHdp dGggIj0iICovCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkxFVCIsIE1hdGNoQW55KSkKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggODAx ODA2OGIxMTkuLjVlYjIwYjkyMmUyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtOTQwLDkgKzk0MCw5IEBAIERST1AgVkFSSUFCTEUg dmFyMSwgdmFyMjsKIC0tIHRoZSBMRVQgc3RhdGVtZW50IHNob3VsZCBiZSBkaXNhbGxvd2VkIGlu IENURQogQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OwogV0lUSCB4IEFTIChMRVQgdmFyMSA9 IDEwMCkgU0VMRUNUICogRlJPTSB4OwotRVJST1I6ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAi TEVUIgorRVJST1I6ICBMRVQgbm90IHN1cHBvcnRlZCBpbiBXSVRIIHF1ZXJ5CiBMSU5FIDE6IFdJ VEggeCBBUyAoTEVUIHZhcjEgPSAxMDApIFNFTEVDVCAqIEZST00geDsKLSAgICAgICAgICAgICAg ICAgICBeCisgICAgICAgICAgICAgXgogLS0gc2hvdWxkIGJlIG9rCiBMRVQgdmFyMSA9IGdlbmVy YXRlX3NlcmllcygxLCAxKTsKIC0tIHNob3VsZCBmYWlsCkBAIC0yMTQ4LDUgKzIxNDgsODIgQEAg U0VMRUNUIHZhcjE7CiAgICAxMAogKDEgcm93KQogCitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIGZv cmNlX2dlbmVyaWNfcGxhbjsKK1BSRVBBUkUgcDEgQVMgTEVUIHZhcjEgPSAoU0VMRUNUIGNvdW50 KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKK0xFVCB2YXIxID0gTlVMTDsKK0VYUExBSU4g KENPU1RTIE9GRikgRVhFQ1VURSBwMTsKKyAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBTRVQgU0VTU0lPTiBWQVJJQUJMRQorIFJlc3VsdAorICAgSW5pdFBsYW4gMQorICAg ICAtPiAgQWdncmVnYXRlCisgICAgICAgICAgIC0+ICBTZXEgU2NhbiBvbiB2YXJfdGFiX3Rlc3Rf dGFibGUKKyg1IHJvd3MpCisKKy0tIHNob3VsZCBiZSBOVUxMCitTRUxFQ1QgdmFyMTsKKyB2YXIx IAorLS0tLS0tCisgICAgIAorKDEgcm93KQorCitFWFBMQUlOIChDT1NUUyBPRkYsIFRJTUlORyBP RkYsIEFOQUxZWkUsIFNVTU1BUlkgT0ZGLCBCVUZGRVJTIE9GRikgRVhFQ1VURSBwMTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNFVCBTRVNTSU9OIFZBUklBQkxFCisgUmVzdWx0 IChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICBJbml0UGxhbiAxCisgICAgIC0+ICBBZ2dyZWdh dGUgKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKKyAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHZh cl90YWJfdGVzdF90YWJsZSAoYWN0dWFsIHJvd3M9MTAgbG9vcHM9MSkKKyg1IHJvd3MpCisKKy0t IHNob3VsZCBiZSAxMAorU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJv dykKKworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBERUZBVUxUOworREVBTExPQ0FURSBwMTsKIERS T1AgVkFSSUFCTEUgdmFyMTsKIERST1AgVEFCTEUgdmFyX3RhYl90ZXN0X3RhYmxlOworQ1JFQVRF IFZBUklBQkxFIHZhcjEgbnVtZXJpYzsKK1NFVCBwbGFuX2NhY2hlX21vZGUgVE8gZm9yY2VfZ2Vu ZXJpY19wbGFuOworUFJFUEFSRSBwMShudW1lcmljKSBBUyBMRVQgdmFyMSA9ICQxOworUFJFUEFS RSBwMiBBUyBTRUxFQ1QgdmFyMTsKK0VYRUNVVEUgcDEocGkoKSArIDEwMCk7CitFWEVDVVRFIHAy OworICAgICAgdmFyMSAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tCisgMTAzLjE0MTU5MjY1MzU5 CisoMSByb3cpCisKKy0tIHByZXBhcmVkIHBsYW4gY2FjaGUgaW52YWxpZGF0aW9uIHRlc3QKK0RS T1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIG51bWVyaWM7CistLSBzaG91 bGQgYmUgTlVMTAorRVhFQ1VURSBwMjsKKyB2YXIxIAorLS0tLS0tCisgICAgIAorKDEgcm93KQor CitERUFMTE9DQVRFIHAxOworREVBTExPQ0FURSBwMjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK1NF VCBwbGFuX2NhY2hlX21vZGUgVE8gZm9yY2VfZ2VuZXJpY19wbGFuOworQ1JFQVRFIFZBUklBQkxF IHZhcjEgbnVtZXJpY1tdOworUFJFUEFSRSBwMShpbnQsIG51bWVyaWMpIEFTIExFVCB2YXIxWyQx XSA9ICQyOworTEVUIHZhcjEgPSAne30nOjpudW1lcmljW107CitFWEVDVVRFIHAxKDEsIDEwLjIp OworRVhFQ1VURSBwMSgyLCAxMC4zKTsKK1NFTEVDVCB2YXIxOworICAgIHZhcjEgICAgIAorLS0t LS0tLS0tLS0tLQorIHsxMC4yLDEwLjN9CisoMSByb3cpCisKK0RFQUxMT0NBVEUgcDE7CitEUk9Q IFZBUklBQkxFIHZhcjE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwKaW5kZXggOTQ0OTJlM2E4OWEuLjc1OGNkM2ZjNGE0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xNDg3LDUgKzE0ODcsNjIgQEAgRVhQTEFJTiAo Q09TVFMgT0ZGLCBUSU1JTkcgT0ZGLCBBTkFMWVpFLCBTVU1NQVJZIE9GRiwgQlVGRkVSUyBPRkYp IExFVCB2YXIxID0gKFMKIC0tIHNob3VsZCBiZSAxMAogU0VMRUNUIHZhcjE7CiAKK1NFVCBwbGFu X2NhY2hlX21vZGUgVE8gZm9yY2VfZ2VuZXJpY19wbGFuOworCitQUkVQQVJFIHAxIEFTIExFVCB2 YXIxID0gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHZhcl90YWJfdGVzdF90YWJsZSk7CisKK0xFVCB2 YXIxID0gTlVMTDsKKworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHAxOworCistLSBzaG91 bGQgYmUgTlVMTAorU0VMRUNUIHZhcjE7CisKK0VYUExBSU4gKENPU1RTIE9GRiwgVElNSU5HIE9G RiwgQU5BTFlaRSwgU1VNTUFSWSBPRkYsIEJVRkZFUlMgT0ZGKSBFWEVDVVRFIHAxOworCistLSBz aG91bGQgYmUgMTAKK1NFTEVDVCB2YXIxOworCitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIERFRkFV TFQ7CisKK0RFQUxMT0NBVEUgcDE7CisKIERST1AgVkFSSUFCTEUgdmFyMTsKIERST1AgVEFCTEUg dmFyX3RhYl90ZXN0X3RhYmxlOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1lcmljOworCitT RVQgcGxhbl9jYWNoZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKKworUFJFUEFSRSBwMShu dW1lcmljKSBBUyBMRVQgdmFyMSA9ICQxOworUFJFUEFSRSBwMiBBUyBTRUxFQ1QgdmFyMTsKKwor RVhFQ1VURSBwMShwaSgpICsgMTAwKTsKK0VYRUNVVEUgcDI7CisKKy0tIHByZXBhcmVkIHBsYW4g Y2FjaGUgaW52YWxpZGF0aW9uIHRlc3QKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJ QUJMRSB2YXIxIG51bWVyaWM7CisKKy0tIHNob3VsZCBiZSBOVUxMCitFWEVDVVRFIHAyOworCitE RUFMTE9DQVRFIHAxOworREVBTExPQ0FURSBwMjsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCitT RVQgcGxhbl9jYWNoZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKKworQ1JFQVRFIFZBUklB QkxFIHZhcjEgbnVtZXJpY1tdOworCitQUkVQQVJFIHAxKGludCwgbnVtZXJpYykgQVMgTEVUIHZh cjFbJDFdID0gJDI7CisKK0xFVCB2YXIxID0gJ3t9Jzo6bnVtZXJpY1tdOworRVhFQ1VURSBwMSgx LCAxMC4yKTsKK0VYRUNVVEUgcDEoMiwgMTAuMyk7CisKK1NFTEVDVCB2YXIxOworCitERUFMTE9D QVRFIHAxOworRFJPUCBWQVJJQUJMRSB2YXIxOwotLSAKMi40Ny4xCgo= --000000000000f297a7062b2456dc Content-Type: text/x-patch; charset="US-ASCII"; name="v20250107-0010-EXPLAIN-LET-support.patch" Content-Disposition: attachment; filename="v20250107-0010-EXPLAIN-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5mz6bm212 RnJvbSBmM2I2YTMyZjllNjc5OGM0YmEyYjA2NTUyZTg4OTExMDRiZTRmNzdjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMjEgTWF5IDIwMjQgMTg6Mjg6MDcgKzAyMDAKU3ViamVjdDogW1BBVENIIDEw LzIyXSBFWFBMQUlOIExFVCBzdXBwb3J0CgpFbmhhbmNpbmcgRXhwbGFpbk9uZVBsYW4gaXMgbmVj ZXNzYXJ5IHRvIGJlIEVYUExBSU4gQU5BTFlaRSBMRVQgZnVsbHkgd29ya2FibGUuCkluIHRoaXMg Y2FzZSB3ZSB3YW50IHRvIGJlIHJlc3VsdCBvZiBxdWVyeSBvciBleHByZXNzaW9uIHdyaXR0ZW4g dG8gdGFyZ2V0IHZhcmlhYmxlLgotLS0KIGRvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sICAg ICAgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMgICAg ICAgICAgICAgICAgfCAzMSArKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJl cGFyZS5jICAgICAgICAgICAgICAgIHwgIDUgKystCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 ICAgICAgICAgICAgICAgICAgICAgfCAgMyArLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFp bi5oICAgICAgICAgICAgICAgIHwgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzLm91dCAgICB8IDQwICsrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDIxICsrKysrKysrKysKIDcgZmlsZXMg Y2hhbmdlZCwgOTcgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2V4cGxhaW4uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5z Z21sCmluZGV4IDYzNjFhMTRlNjVkLi40MjkyNjE1YjQ0NyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9leHBsYWluLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9leHBsYWluLnNnbWwK QEAgLTk4LDcgKzk4LDggQEAgRVhQTEFJTiBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm9wdGlvbjwvcmVwbGFjZWFibGU+IFssIC4uLl0gKSBdIDxyZXAKICAgICA8Y29tbWFuZD5J TlNFUlQ8L2NvbW1hbmQ+LCA8Y29tbWFuZD5VUERBVEU8L2NvbW1hbmQ+LAogICAgIDxjb21tYW5k PkRFTEVURTwvY29tbWFuZD4sIDxjb21tYW5kPk1FUkdFPC9jb21tYW5kPiwKICAgICA8Y29tbWFu ZD5DUkVBVEUgVEFCTEUgQVM8L2NvbW1hbmQ+LAotICAgIG9yIDxjb21tYW5kPkVYRUNVVEU8L2Nv bW1hbmQ+IHN0YXRlbWVudAorICAgIDxjb21tYW5kPkVYRUNVVEU8L2NvbW1hbmQ+LAorICAgIG9y IDxjb21tYW5kPkxFVDwvY29tbWFuZD4gc3RhdGVtZW50CiAgICAgd2l0aG91dCBsZXR0aW5nIHRo ZSBjb21tYW5kIGFmZmVjdCB5b3VyIGRhdGEsIHVzZSB0aGlzIGFwcHJvYWNoOgogPHByb2dyYW1s aXN0aW5nPgogQkVHSU47CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWlu LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKaW5kZXggYzI0ZTY2ZjgyZTEuLmE2 MDhmODFlZjRmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKKysr IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCkBAIC0xOCw2ICsxOCw3IEBACiAjaW5j bHVkZSAiY29tbWFuZHMvY3JlYXRlYXMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIK ICNpbmNsdWRlICJjb21tYW5kcy9wcmVwYXJlLmgiCisjaW5jbHVkZSAiZXhlY3V0b3Ivc3Zhcmlh YmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJmb3JlaWduL2Zkd2FwaS5oIgogI2luY2x1ZGUgImpp dC9qaXQuaCIKICNpbmNsdWRlICJsaWJwcS9wcWZvcm1hdC5oIgpAQCAtNTE5LDggKzUyMCw5IEBA IHN0YW5kYXJkX0V4cGxhaW5PbmVRdWVyeShRdWVyeSAqcXVlcnksIGludCBjdXJzb3JPcHRpb25z LAogCX0KIAogCS8qIHJ1biBpdCAoaWYgbmVlZGVkKSBhbmQgcHJvZHVjZSBvdXRwdXQgKi8KLQlF eHBsYWluT25lUGxhbihwbGFuLCBpbnRvLCBlcywgcXVlcnlTdHJpbmcsIHBhcmFtcywgcXVlcnlF bnYsCi0JCQkJICAgJnBsYW5kdXJhdGlvbiwgKGVzLT5idWZmZXJzID8gJmJ1ZnVzYWdlIDogTlVM TCksCisJRXhwbGFpbk9uZVBsYW4ocGxhbiwgaW50bywgcXVlcnktPnJlc3VsdFZhcmlhYmxlLCBl cywgcXVlcnlTdHJpbmcsCisJCQkJICAgcGFyYW1zLCBxdWVyeUVudiwgJnBsYW5kdXJhdGlvbiwK KwkJCQkgICAoZXMtPmJ1ZmZlcnMgPyAmYnVmdXNhZ2UgOiBOVUxMKSwKIAkJCQkgICBlcy0+bWVt b3J5ID8gJm1lbV9jb3VudGVycyA6IE5VTEwpOwogfQogCkBAIC02MTgsNiArNjIwLDI1IEBAIEV4 cGxhaW5PbmVVdGlsaXR5KE5vZGUgKnV0aWxpdHlTdG10LCBJbnRvQ2xhdXNlICppbnRvLCBFeHBs YWluU3RhdGUgKmVzLAogCQllbHNlCiAJCQlFeHBsYWluRHVtbXlHcm91cCgiTm90aWZ5IiwgTlVM TCwgZXMpOwogCX0KKwllbHNlIGlmIChJc0EodXRpbGl0eVN0bXQsIExldFN0bXQpKQorCXsKKwkJ TGV0U3RtdCAgICAqbGV0c3RtdCA9IChMZXRTdG10ICopIHV0aWxpdHlTdG10OworCQlMaXN0CSAg ICpyZXdyaXR0ZW47CisJCVF1ZXJ5CSAgICpxdWVyeTsKKworCQlpZiAoZXMtPmZvcm1hdCA9PSBF WFBMQUlOX0ZPUk1BVF9URVhUKQorCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhlcy0+c3RyLCAi U0VUIFNFU1NJT04gVkFSSUFCTEVcbiIpOworCQllbHNlCisJCQlFeHBsYWluRHVtbXlHcm91cCgi U2V0IFNlc3Npb24gVmFyaWFibGUiLCBOVUxMLCBlcyk7CisKKwkJcmV3cml0dGVuID0gUXVlcnlS ZXdyaXRlKGNhc3ROb2RlKFF1ZXJ5LCBjb3B5T2JqZWN0KGxldHN0bXQtPnF1ZXJ5KSkpOworCisJ CUFzc2VydChsaXN0X2xlbmd0aChyZXdyaXR0ZW4pID09IDEpOworCQlxdWVyeSA9IGxpbml0aWFs X25vZGUoUXVlcnksIHJld3JpdHRlbik7CisJCUV4cGxhaW5PbmVRdWVyeShxdWVyeSwKKwkJCQkJ CUNVUlNPUl9PUFRfUEFSQUxMRUxfT0ssIE5VTEwsIGVzLAorCQkJCQkJcHN0YXRlLCBwYXJhbXMp OworCX0KIAllbHNlCiAJewogCQlpZiAoZXMtPmZvcm1hdCA9PSBFWFBMQUlOX0ZPUk1BVF9URVhU KQpAQCAtNjQxLDggKzY2Miw4IEBAIEV4cGxhaW5PbmVVdGlsaXR5KE5vZGUgKnV0aWxpdHlTdG10 LCBJbnRvQ2xhdXNlICppbnRvLCBFeHBsYWluU3RhdGUgKmVzLAogICogdG8gY2FsbCBpdC4KICAq Lwogdm9pZAotRXhwbGFpbk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBJbnRvQ2xh dXNlICppbnRvLCBFeHBsYWluU3RhdGUgKmVzLAotCQkJICAgY29uc3QgY2hhciAqcXVlcnlTdHJp bmcsIFBhcmFtTGlzdEluZm8gcGFyYW1zLAorRXhwbGFpbk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBs YW5uZWRzdG10LCBJbnRvQ2xhdXNlICppbnRvLCBPaWQgdGFyZ2V0dmFyLAorCQkJICAgRXhwbGFp blN0YXRlICplcywgY29uc3QgY2hhciAqcXVlcnlTdHJpbmcsIFBhcmFtTGlzdEluZm8gcGFyYW1z LAogCQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYsIGNvbnN0IGluc3RyX3RpbWUgKnBs YW5kdXJhdGlvbiwKIAkJCSAgIGNvbnN0IEJ1ZmZlclVzYWdlICpidWZ1c2FnZSwKIAkJCSAgIGNv bnN0IE1lbW9yeUNvbnRleHRDb3VudGVycyAqbWVtX2NvdW50ZXJzKQpAQCAtNjkxLDYgKzcxMiw4 IEBAIEV4cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwgSW50b0NsYXVzZSAq aW50bywgRXhwbGFpblN0YXRlICplcywKIAkgKi8KIAlpZiAoaW50bykKIAkJZGVzdCA9IENyZWF0 ZUludG9SZWxEZXN0UmVjZWl2ZXIoaW50byk7CisJZWxzZSBpZiAoT2lkSXNWYWxpZCh0YXJnZXR2 YXIpKQorCQlkZXN0ID0gQ3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIodGFyZ2V0dmFyKTsKIAll bHNlIGlmIChlcy0+c2VyaWFsaXplICE9IEVYUExBSU5fU0VSSUFMSVpFX05PTkUpCiAJCWRlc3Qg PSBDcmVhdGVFeHBsYWluU2VyaWFsaXplRGVzdFJlY2VpdmVyKGVzKTsKIAllbHNlCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9wcmVwYXJlLmMKaW5kZXggOTAyYjAyMmY5YzcuLjRlYTJiZmVhNGVhIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv cHJlcGFyZS5jCkBAIC02NjQsOCArNjY0LDkgQEAgRXhwbGFpbkV4ZWN1dGVRdWVyeShFeGVjdXRl U3RtdCAqZXhlY3N0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJCVBs YW5uZWRTdG10ICpwc3RtdCA9IGxmaXJzdF9ub2RlKFBsYW5uZWRTdG10LCBwKTsKIAogCQlpZiAo cHN0bXQtPmNvbW1hbmRUeXBlICE9IENNRF9VVElMSVRZKQotCQkJRXhwbGFpbk9uZVBsYW4ocHN0 bXQsIGludG8sIGVzLCBxdWVyeV9zdHJpbmcsIHBhcmFtTEksIHBzdGF0ZS0+cF9xdWVyeUVudiwK LQkJCQkJCSAgICZwbGFuZHVyYXRpb24sIChlcy0+YnVmZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwp LAorCQkJRXhwbGFpbk9uZVBsYW4ocHN0bXQsIGludG8sIEludmFsaWRPaWQsIGVzLCBxdWVyeV9z dHJpbmcsIHBhcmFtTEksCisJCQkJCQkgICBwc3RhdGUtPnBfcXVlcnlFbnYsICZwbGFuZHVyYXRp b24sCisJCQkJCQkgICAoZXMtPmJ1ZmZlcnMgPyAmYnVmdXNhZ2UgOiBOVUxMKSwKIAkJCQkJCSAg IGVzLT5tZW1vcnkgPyAmbWVtX2NvdW50ZXJzIDogTlVMTCk7CiAJCWVsc2UKIAkJCUV4cGxhaW5P bmVVdGlsaXR5KHBzdG10LT51dGlsaXR5U3RtdCwgaW50bywgZXMsIHBzdGF0ZSwgcGFyYW1MSSk7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueQppbmRleCA2NzRlOGFmMjU2Yy4uM2JlOWEyZGQyZDUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpA QCAtMTIxMjksNyArMTIxMjksOCBAQCBFeHBsYWluYWJsZVN0bXQ6CiAJCQl8IENyZWF0ZUFzU3Rt dAogCQkJfCBDcmVhdGVNYXRWaWV3U3RtdAogCQkJfCBSZWZyZXNoTWF0Vmlld1N0bXQKLQkJCXwg RXhlY3V0ZVN0bXQJCQkJCS8qIGJ5IGRlZmF1bHQgYWxsIGFyZSAkJD0kMSAqLworCQkJfCBFeGVj dXRlU3RtdAorCQkJfCBMZXRTdG10CQkJCQkJLyogYnkgZGVmYXVsdCBhbGwgYXJlICQkPSQxICov CiAJCTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j b21tYW5kcy9leHBsYWluLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9leHBsYWluLmgKaW5kZXgg ZWE3NDE5OTUxZjQuLmRlMjFmZTk3ZDAxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5k cy9leHBsYWluLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFpbi5oCkBAIC0xMDMs NyArMTAzLDggQEAgZXh0ZXJuIHZvaWQgRXhwbGFpbk9uZVV0aWxpdHkoTm9kZSAqdXRpbGl0eVN0 bXQsIEludG9DbGF1c2UgKmludG8sCiAJCQkJCQkJICBFeHBsYWluU3RhdGUgKmVzLCBQYXJzZVN0 YXRlICpwc3RhdGUsCiAJCQkJCQkJICBQYXJhbUxpc3RJbmZvIHBhcmFtcyk7CiAKLWV4dGVybiB2 b2lkIEV4cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3RtdCwgSW50b0NsYXVzZSAq aW50bywKK2V4dGVybiB2b2lkIEV4cGxhaW5PbmVQbGFuKFBsYW5uZWRTdG10ICpwbGFubmVkc3Rt dCwKKwkJCQkJCSAgIEludG9DbGF1c2UgKmludG8sIE9pZCB0YXJnZXR2YXIsCiAJCQkJCQkgICBF eHBsYWluU3RhdGUgKmVzLCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywKIAkJCQkJCSAgIFBhcmFt TGlzdEluZm8gcGFyYW1zLCBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwKIAkJCQkJCSAgIGNv bnN0IGluc3RyX3RpbWUgKnBsYW5kdXJhdGlvbiwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggOWUzNWViNmMyOGYuLjgwMTgwNjhiMTE5 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dApAQCAtMjExMCwzICsyMTEwLDQzIEBAIE5PVElDRTogIDIwIHQKIFNFVCBzZXNzaW9uX3Zhcmlh Ymxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZCBUTyBERUZBVUxUOwogRFJPUCBWQVJJQUJMRSB2 YXIxOwogRFJPUCBUQUJMRSB2YXJ0ZXN0X3RhYjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBiaWdp bnQ7CitDUkVBVEUgVEFCTEUgdmFyX3RhYl90ZXN0X3RhYmxlKGEgaW50KTsKK0lOU0VSVCBJTlRP IHZhcl90YWJfdGVzdF90YWJsZSBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsK K1ZBQ1VVTSBBTkFMWVpFIHZhcl90YWJfdGVzdF90YWJsZTsKK0VYUExBSU4gKENPU1RTIE9GRikg TEVUIHZhcjEgPSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKyAg ICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTRVQgU0VTU0lPTiBWQVJJQUJM RQorIFJlc3VsdAorICAgSW5pdFBsYW4gMQorICAgICAtPiAgQWdncmVnYXRlCisgICAgICAgICAg IC0+ICBTZXEgU2NhbiBvbiB2YXJfdGFiX3Rlc3RfdGFibGUKKyg1IHJvd3MpCisKKy0tIHNob3Vs ZCBiZSBOVUxMCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAgIAorKDEgcm93KQor CitFWFBMQUlOIChDT1NUUyBPRkYsIFRJTUlORyBPRkYsIEFOQUxZWkUsIFNVTU1BUlkgT0ZGLCBC VUZGRVJTIE9GRikgTEVUIHZhcjEgPSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0 X3RhYmxlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNFVCBTRVNTSU9OIFZB UklBQkxFCisgUmVzdWx0IChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICBJbml0UGxhbiAxCisg ICAgIC0+ICBBZ2dyZWdhdGUgKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKKyAgICAgICAgICAgLT4g IFNlcSBTY2FuIG9uIHZhcl90YWJfdGVzdF90YWJsZSAoYWN0dWFsIHJvd3M9MTAgbG9vcHM9MSkK Kyg1IHJvd3MpCisKKy0tIHNob3VsZCBiZSAxMAorU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0t LQorICAgMTAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJf dGFiX3Rlc3RfdGFibGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwKaW5kZXggNDllYzkwNGI5MzIuLjk0NDkyZTNhODlhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xNDY4LDMgKzE0NjgsMjQgQEAgU0VUIHNlc3Np b25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkIFRPIERFRkFVTFQ7CiAKIERST1Ag VkFSSUFCTEUgdmFyMTsKIERST1AgVEFCTEUgdmFydGVzdF90YWIxOworCitDUkVBVEUgVkFSSUFC TEUgdmFyMSBiaWdpbnQ7CisKK0NSRUFURSBUQUJMRSB2YXJfdGFiX3Rlc3RfdGFibGUoYSBpbnQp OworCitJTlNFUlQgSU5UTyB2YXJfdGFiX3Rlc3RfdGFibGUgU0VMRUNUICogRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwxMCk7CisKK1ZBQ1VVTSBBTkFMWVpFIHZhcl90YWJfdGVzdF90YWJsZTsKKwor RVhQTEFJTiAoQ09TVFMgT0ZGKSBMRVQgdmFyMSA9IChTRUxFQ1QgY291bnQoKikgRlJPTSB2YXJf dGFiX3Rlc3RfdGFibGUpOworCistLSBzaG91bGQgYmUgTlVMTAorU0VMRUNUIHZhcjE7CisKK0VY UExBSU4gKENPU1RTIE9GRiwgVElNSU5HIE9GRiwgQU5BTFlaRSwgU1VNTUFSWSBPRkYsIEJVRkZF UlMgT0ZGKSBMRVQgdmFyMSA9IChTRUxFQ1QgY291bnQoKikgRlJPTSB2YXJfdGFiX3Rlc3RfdGFi bGUpOworCistLSBzaG91bGQgYmUgMTAKK1NFTEVDVCB2YXIxOworCitEUk9QIFZBUklBQkxFIHZh cjE7CitEUk9QIFRBQkxFIHZhcl90YWJfdGVzdF90YWJsZTsKLS0gCjIuNDcuMQoK --000000000000f297a7062b2456dc Content-Type: text/x-patch; charset="US-ASCII"; name="v20250107-0009-dynamic-check-of-usage-of-session-variable-fences.patch" Content-Disposition: attachment; filename="v20250107-0009-dynamic-check-of-usage-of-session-variable-fences.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5mz6bmq13 RnJvbSBmMTdkNTYyMGU4MzQ2YjMxZGQ3YTQ0MmUzNDU0YzQ2NmI3ZTNmZTU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPHBhdmVsLnN0ZWh1bGVAZ21h aWwuY29tPgpEYXRlOiBGcmksIDEzIERlYyAyMDI0IDA2OjI4OjQ1ICswMTAwClN1YmplY3Q6IFtQ QVRDSCAwOS8yMl0gZHluYW1pYyBjaGVjayBvZiB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlIGZl bmNlcwoKVGhpcyBwYXRjaCBhbGxvd3MgdG8gc3BlY2lmeSBkeW5hbWljIGNvbnRleHQgd2hlcmUg ZmVuY2luZwpvZiBzZXNzaW9uIHZhcmlhYmxlcyBpcyByZXF1aXJlZC4gUG9zc2libGUgY29udGV4 dHMgYXJlCm5vbmUsIG5vc3BpIG9yIGFsbC4gV2l0aCB0aGlzIGNoZWNrIGlzIHBvc3NpYmxlIHRv IGZvcmNlCnZhcmlhYmxlIGZlbmNpbmcgb3V0c2lkZSBzdG9yZWQgcHJvY2VkdXJlcy4KLS0tCiBk b2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgICAgICAgICAgICAgICAgICAgICAgfCA1NiArKysrKysr KysrKysKIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAz ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAzMyAr KysrKysrCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jICAgICAgICAgICAgICAgfCAg NCArCiBzcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYyAgICAgICAgICAgICAgICAgICAgfCAgOCAr Kwogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMgICAgICAgICAgIHwgMTkgKysr Kwogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIHwgIDEgKwog c3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oICAgICAgIHwgMTYgKysrKwog c3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3BpLmggICAgICAgICAgICAgICAgICAgIHwgIDEgKwogLi4u L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgOTAgKysrKysrKysr KysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAg IHwgNzMgKysrKysrKysrKysrKysrCiAxMSBmaWxlcyBjaGFuZ2VkLCAzMDMgaW5zZXJ0aW9ucygr KSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbCBi L2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAppbmRleCAxYjM5NGYyN2JhMi4uNTg0MzQzNjFiNWEg MTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv Y29uZmlnLnNnbWwKQEAgLTEwODY2LDYgKzEwODY2LDYyIEBAIERFVEFJTDogIFNlc3Npb24gdmFy aWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5lJ3MgdmFyaWFibGVzIGFu ZCByCiAgICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICA8dmFy bGlzdGVudHJ5IGlkPSJndWMtc2Vzc2lvbi12YXJpYWJsZXMtdXNlLWZlbmNlLWNvbnRleHQtZ3Vh cmQiIHhyZWZsYWJlbD0ic2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQi PgorICAgICAgPHRlcm0+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRl eHRfZ3VhcmQ8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKKyAgICAgIDxpbmRleHRl cm0+CisgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNl X2NvbnRleHRfZ3VhcmQ8L3Zhcm5hbWU+IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5 PgorICAgICAgPC9pbmRleHRlcm0+CisgICAgICA8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+Cisg ICAgICA8cGFyYT4KKyAgICAgICBXaGVuIG9uLCBhbiBlcnJvciBpcyByYWlzZWQgd2hlbiBhIHNl c3Npb24gdmFyaWFibGUgaWRlbnRpZmllciBpcyB1c2VkCisgICAgICAgaW5zaWRlIGEgcXVlcnkg d2l0aG91dCB2YXJpYWJsZSBmZW5jZSBpbiBjaG9vc2VkIGNvbnRleHQuIFRoZSBkZWZhdWx0Cisg ICAgICAgaXMgPGxpdGVyYWw+bm9uZTwvbGl0ZXJhbD4uIFRoZSBlcnJvciBpcyByYWlzZWQgb25s eSB3aGVuIHZhcmlhYmxlIGlzCisgICAgICAgdXNlZCBpbiBwbGFjZXMsIHdoZXJlIGFuIGNvbGxp c2lvbnMgd2l0aCBjb2x1bW4gbmFtZXMgaXMgcG9zc2libGUgKGFuZAorICAgICAgIHdoZW4gdmFy aWFibGUgZmVuY2VzIGFyZSBwb3NzaWJsZSkuIFRoZSBhbGxvd2VkIHZhbHVlcyBvZgorICAgICAg IDx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkPC92YXJu YW1lPiBhcmUKKyAgICAgICA8bGl0ZXJhbD5ub25lPC9saXRlcmFsPiAoYWxsb3cgdXNpbmcgc2Vz c2lvbiB2YXJpYWJsZXMgd2l0aG91dAorICAgICAgIHZhcmlhYmxlJ3MgZmVuY2VzIGFsd2F5cyks IDxsaXRlcmFsPmFsbDwvbGl0ZXJhbD4gKHJlcXVpcmVzIHZhcmlhYmxlCisgICAgICAgZmVuY2lu ZyBldmVyeXdoZXJlKSwgYW5kIDxsaXRlcmFsPm5vc3BpPC9saXRlcmFsPiAocmVxdWlyZXMgdmFy aWFibGUKKyAgICAgICBmZW5jaW5nIG91dHNpZGUgU1BJIGNvbnRleHRzIChvdXRzaWRlIHN0b3Jl ZCBwcm9jZWR1cmVzKS4KKzxwcm9ncmFtbGlzdGluZz4KK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191 c2VfZmVuY2VfY29udGV4dF9ndWFyZCBUTyAnbm9zcGknOworQ1JFQVRFIFZBUklBQkxFIGEgaW50 OworCitMRVQgYSA9IDEwOworRE8gJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnYSA9ICUnLCBh OworRU5EOworJCQ7CisKK1NFTEVDVCBhOworU0VMRUNUIFZBUklBQkxFKHMpOworPC9wcm9ncmFt bGlzdGluZz4KKworPHNjcmVlbj4KK05PVElDRTogIGEgPSAxMAorCitFUlJPUjogIHNlc3Npb24g dmFyaWFibGUgInB1YmxpYy5hIiBpcyBub3QgdXNlZCBpbnNpZGUgdmFyaWFibGUgZmVuY2UKK0RF VEFJTDogIFRoZXJlIGlzIGEgcmlzayBvZiB1bndhbnRlZCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlh YmxlLgorSElOVDogIFVzZSB2YXJpYWJsZSBmZW5jZSAiVkFSSUFCTEUodmFybmFtZSkgZm9yIGFj Y2VzcyB0byB2YXJpYWJsZSIuCisKK1NFTEVDVCB2YXJpYWJsZShhKTsKKyBhICAKKy0tLS0KKyAx MAorKDEgcm93KQorPC9zY3JlZW4+CisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+Cisg ICAgICAgIFdoZW4geW91IGFmcmFpZCBhYm91dCB1bndhbnRlZCB1c2FnZSBvZiBzZXNzaW9uIHZh cmlhYmxlcywgc2V0CisgICAgICAgIHRoaXMgZmVhdHVyZSB0byA8bGl0ZXJhbD5hbGw8L2xpdGVy YWw+IG9yIG1pbmltYWx5IHRvCisgICAgICAgIDxsaXRlcmFsPm5vc3BpPC9saXRlcmFsPi4KKyAg ICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwog ICAgICA8dmFybGlzdGVudHJ5IGlkPSJndWMtc2Vzc2lvbi12YXJpYWJsZXMtdXNlLWZlbmNlLXdh cm5pbmctZ3VhcmQiIHhyZWZsYWJlbD0ic2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5p bmdfZ3VhcmQiPgogICAgICAgPHRlcm0+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfdXNlX2Zl bmNlX3dhcm5pbmdfZ3VhcmQ8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKICAgICAg IDxpbmRleHRlcm0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvZGRsLnNnbWwKaW5kZXggZmUzZjFjY2EwMDYuLjEyMjU0NTUxMWU0IDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC01 NDI0LDcgKzU0MjQsOCBAQCBTRUxFQ1QgVkFSSUFCTEUoY3VycmVudF91c2VyX2lkKTsKICAgIFdo ZW4gdGhlcmUgaXMgYSByaXNrIG9mIHBvc3NpYmxlIGNvbGxpc2lvbnMgYmV0d2VlbiB2YXJpYWJs ZSBpZGVudGlmaWVycwogICAgYW5kIGNvbHVtbiBuYW1lcywgdGhlbiB1c2luZyB2YXJpYWJsZSBm ZW5jZSBzeW50YXggY2FuIGJlIHJlY29tbWVuZGVkLgogICAgVXNhZ2Ugc2Vzc2lvbiB2YXJpYWJs ZSB3aXRob3V0IHZhcmlhYmxlIGZlbmNlIGNhbiBiZSBkZXRlY3RlZCBieQotICAgd2FybmluZyA8 eHJlZiBsaW5rZW5kPSJndWMtc2Vzc2lvbi12YXJpYWJsZXMtdXNlLWZlbmNlLXdhcm5pbmctZ3Vh cmQiLz4uCisgICB3YXJuaW5nIDx4cmVmIGxpbmtlbmQ9Imd1Yy1zZXNzaW9uLXZhcmlhYmxlcy11 c2UtZmVuY2Utd2FybmluZy1ndWFyZCIvPgorICAgb3IgYnkgY2hlY2sgPHhyZWYgbGlua2VuZD0i Z3VjLXNlc3Npb24tdmFyaWFibGVzLXVzZS1mZW5jZS1jb250ZXh0LWd1YXJkIi8+LgogICA8L3Bh cmE+CiAgIDwvc2VjdDE+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpp bmRleCBhZDg1MmI1Y2Y3Yy4uMmUyYzRmOTMwYTMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNz aW9uX3ZhcmlhYmxlLmMKQEAgLTE3LDYgKzE3LDcgQEAKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiZXhlY3V0b3Ivc3BpLmgiCiAjaW5jbHVkZSAi ZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJmdW5jYXBpLmgiCiAjaW5j bHVkZSAibWlzY2FkbWluLmgiCkBAIC0zMSw2ICszMiwxMyBAQAogI2luY2x1ZGUgInV0aWxzL3Nu YXBtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogCisvKgorICogVGhlIHNlc3Np b24gdmFyaWFibGVzIHVzZSBmZW5jZSBjb250ZXh0IGFsbG93IHRvIHNwZWNpZnkKKyAqIHRoZSBj b250ZXh0cyB3aGVyZSB1c2luZyBzZXNzaW9uIHZhcmlhYmxlIGZlbmNlcyBhcmUgcmVxdWlyZWQu CisgKi8KK2ludAkJc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgPQor CQkJCQkJCQlTRVNTSU9OVkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfTk9ORTsKKwog LyoKICAqIFRoZSB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHN0b3JlZCBpbiB0aGUg YmFja2VuZCdzIHByaXZhdGUgbWVtb3J5CiAgKiBpbiB0aGUgZGVkaWNhdGVkIG1lbW9yeSBjb250 ZXh0IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgaW4gYmluYXJ5IGZvcm1hdC4KQEAgLTgxNCwzICs4 MjIsMjggQEAgUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpCiAJaWYgKFNWYXJpYWJsZU1lbW9y eUNvbnRleHQgIT0gTlVMTCkKIAkJTWVtb3J5Q29udGV4dFJlc2V0KFNWYXJpYWJsZU1lbW9yeUNv bnRleHQpOwogfQorCisvKgorICogUmFpc2UgZXJyb3Igd2hlbiB1bmZlbmNlZCB2YXJpYWJsZSBp cyB1c2VkIGluIHdyb25nIGNvbnRleHQuCisgKiBUaGlzIGNoZWNrIGFsbG93cyB0byBmb3JjZSBz ZXNzaW9uIHZhcmlhYmxlIGZlbmNpbmcgb3V0c2lkZQorICogc3RvcmVkIHByb2NlZHVyZXMgZW52 aXJvbm1lbnQuCisgKi8KK3ZvaWQKK1Nlc3Npb25WYXJpYWJsZXNVc2VGZW5jZUNvbnRleHRDaGVj ayhPaWQgdmFyaWQsIGJvb2wgaXNfZmVuY2VkKQoreworCWlmIChpc19mZW5jZWQpCisJCXJldHVy bjsKKworCWlmICgoKHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkID09 CisJCQlTRVNTSU9OVkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfQUxMKSAmJiAhaXNf ZmVuY2VkKSB8fAorCQkoKHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJk ID09CisJCQlTRVNTSU9OVkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfTk9TUEkpICYm CisJCQkJIVNQSV9pbnNpZGVfc3BpX2NvbnRleHQoKSkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJ KGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX0NPTFVNTl9SRUZFUkVOQ0UpLAorCQkJCSBlcnJtc2co InNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIGlzIG5vdCB1c2VkIGluc2lkZSB2YXJpYWJsZSBm ZW5jZSIsCisJCQkJIGdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l c3BhY2UodmFyaWQpKSwKKwkJCQkgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpLAor CQkJCSBlcnJkZXRhaWwoIlRoZXJlIGlzIGEgcmlzayBvZiB1bndhbnRlZCB1c2FnZSBvZiBzZXNz aW9uIHZhcmlhYmxlLiIpLAorCQkJCSBlcnJoaW50KCJVc2UgdmFyaWFibGUgZmVuY2UgXCJWQVJJ QUJMRSh2YXJuYW1lKSBmb3IgYWNjZXNzIHRvIHZhcmlhYmxlXCIuIikpKTsKK30KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjRXhwci5jCmluZGV4IDliNTU4NjFlYTY0Li4yZmZiNTZhZTQ1MSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjRXhwci5jCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3Rh Y2Nlc3MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5j bHVkZSAiZXhlY3V0b3IvZXhlY0V4cHIuaCIKICNpbmNsdWRlICJleGVjdXRvci9ub2RlU3VicGxh bi5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKQEAgLTk5OCw2ICs5OTksOSBAQCBFeGVjSW5pdEV4 cHJSZWMoRXhwciAqbm9kZSwgRXhwclN0YXRlICpzdGF0ZSwKIAkJCQkJCQlTZXNzaW9uVmFyaWFi bGVWYWx1ZSAqZXNfc2Vzc2lvbl92YXJpYWJsZXMgPSBOVUxMOwogCQkJCQkJCVNlc3Npb25WYXJp YWJsZVZhbHVlICp2YXI7CiAKKwkJCQkJCQlTZXNzaW9uVmFyaWFibGVzVXNlRmVuY2VDb250ZXh0 Q2hlY2socGFyYW0tPnBhcmFtdmFyaWQsCisJCQkJCQkJCQkJCQkJCQkJIHBhcmFtLT5wYXJhbXZh cmZlbmNlZCk7CisKIAkJCQkJCQlpZiAoc3RhdGUtPnBhcmVudCAmJiBzdGF0ZS0+cGFyZW50LT5z dGF0ZSkKIAkJCQkJCQl7CiAJCQkJCQkJCWVzX3Nlc3Npb25fdmFyaWFibGVzID0gc3RhdGUtPnBh cmVudC0+c3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivc3BpLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYwppbmRleCBlY2Iy ZTRjY2FhMS4uNGNlNmJjNWYyOTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3Nw aS5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jCkBAIC01OTAsNiArNTkwLDE0IEBA IFNQSV9pbnNpZGVfbm9uYXRvbWljX2NvbnRleHQodm9pZCkKIAlyZXR1cm4gdHJ1ZTsKIH0KIAor LyoKKyAqIEFyZSB3ZSBleGVjdXRlZCBpbnNpZGUgYSBTUEk/CisgKi8KK2Jvb2wKK1NQSV9pbnNp ZGVfc3BpX2NvbnRleHQodm9pZCkKK3sKKwlyZXR1cm4gKF9TUElfY3VycmVudCAhPSBOVUxMKTsK K30KIAogLyogUGFyc2UsIHBsYW4sIGFuZCBleGVjdXRlIGEgcXVlcnkgc3RyaW5nICovCiBpbnQK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggZTA0NDRhN2I1MTcuLjI0Njc0ODAw YWMxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYwpAQCAtNDAsNiArNDAsNyBAQAog I2luY2x1ZGUgImNhdGFsb2cvc3RvcmFnZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgorI2luY2x1ZGUgImNvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNlLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3VzZXIuaCIK QEAgLTQyMyw2ICs0MjQsMTMgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBjb25maWdfZW51bV9lbnRy eSBkZWJ1Z19sb2dpY2FsX3JlcGxpY2F0aW9uX3N0cmVhbWluZ19vcHRpb24KIAl7TlVMTCwgMCwg ZmFsc2V9CiB9OwogCitzdGF0aWMgY29uc3Qgc3RydWN0IGNvbmZpZ19lbnVtX2VudHJ5IHNlc3Np b25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkX29wdGlvbnNbXSA9IHsKKwl7Im5v bmUiLCBTRVNTSU9OVkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfTk9ORSwgZmFsc2V9 LAorCXsiYWxsIiwgU0VTU0lPTlZBUklBQkxFX1VTRV9GRU5DRV9DT05URVhUX0dVQVJEX0FMTCwg ZmFsc2V9LAorCXsibm9zcGkiLCBTRVNTSU9OVkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VB UkRfTk9TUEksIGZhbHNlfSwKKwl7TlVMTCwgMCwgZmFsc2V9Cit9OworCiBTdGF0aWNBc3NlcnRE ZWNsKGxlbmd0aG9mKHNzbF9wcm90b2NvbF92ZXJzaW9uc19pbmZvKSA9PSAoUEdfVExTMV8zX1ZF UlNJT04gKyAyKSwKIAkJCQkgImFycmF5IGxlbmd0aCBtaXNtYXRjaCIpOwogCkBAIC01MjUzLDYg KzUyNjEsMTcgQEAgc3RydWN0IGNvbmZpZ19lbnVtIENvbmZpZ3VyZU5hbWVzRW51bVtdID0KIAkJ TlVMTCwgTlVMTCwgTlVMTAogCX0sCiAKKwl7CisJCXsic2Vzc2lvbl92YXJpYWJsZXNfdXNlX2Zl bmNlX2NvbnRleHRfZ3VhcmQiLCBQR0NfVVNFUlNFVCwgQ0xJRU5UX0NPTk5fU1RBVEVNRU5ULAor CQkJZ2V0dGV4dF9ub29wKCJDaG9vc2VzIHRoZSBjb250ZXh0IHdoZXJlIHNlc3Npb24gdmFyaWFi bGVzIHNob3VsZCBiZSB1c2VkIGluc2lkZSBmZW5jZS4iKSwKKwkJCU5VTEwKKwkJfSwKKwkJJnNl c3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkLAorCQlTRVNTSU9OVkFSSUFC TEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfTk9ORSwgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2Zl bmNlX2NvbnRleHRfZ3VhcmRfb3B0aW9ucywKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCisKKwog CS8qIEVuZC1vZi1saXN0IG1hcmtlciAqLwogCXsKIAkJe05VTEwsIDAsIDAsIE5VTEwsIE5VTEx9 LCBOVUxMLCAwLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgYi9zcmMvYmFja2VuZC91dGlscy9t aXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKaW5kZXggMTVkNmIzMTJlMTkuLmI2YjY4ZmJhZDQw IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1w bGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBA IC03MTksNiArNzE5LDcgQEAgYXV0b3ZhY3V1bV93b3JrZXJfc2xvdHMgPSAxNgkjIGF1dG92YWN1 dW0gd29ya2VyIHNsb3RzIHRvIGFsbG9jYXRlCiAjc2Vzc2lvbl9yZXBsaWNhdGlvbl9yb2xlID0g J29yaWdpbicKICNzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyA9IG9mZgogI3Nl c3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkID0gb2ZmCisjc2Vzc2lvbl92 YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgPSAnbm9uZScKICNzdGF0ZW1lbnRfdGlt ZW91dCA9IDAJCQkJIyBpbiBtaWxsaXNlY29uZHMsIDAgaXMgZGlzYWJsZWQKICN0cmFuc2FjdGlv bl90aW1lb3V0ID0gMAkJCSMgaW4gbWlsbGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCiAjbG9ja190 aW1lb3V0ID0gMAkJCQkjIGluIG1pbGxpc2Vjb25kcywgMCBpcyBkaXNhYmxlZApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmluZGV4IDA3ZDgwMGJjYzAxLi4wNmNlOTY0MDA4 NSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisr KyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMzEsNSArMzEs MjEgQEAgZXh0ZXJuIHZvaWQgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMZXRT dG10ICpzdG10LCBQYXJhbUxpc3RJbmZvIHBhcmEKIAkJCQkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQg KnF1ZXJ5RW52LCBRdWVyeUNvbXBsZXRpb24gKnFjKTsKIAogZXh0ZXJuIHZvaWQgUmVzZXRTZXNz aW9uVmFyaWFibGVzKHZvaWQpOworZXh0ZXJuIHZvaWQgU2Vzc2lvblZhcmlhYmxlc1VzZUZlbmNl Q29udGV4dENoZWNrKE9pZCB2YXJpZCwgYm9vbCBpc19mZW5jZWQpOworCisvKgorICogU3BlY2lm eSB0aGUgZHluYW1pYyBjb250ZXh0IHdoZXJlIHZhcmlhYmxlIGZlbmNlIGlzIHJlcXVpcmVkCisg Ki8KK3R5cGVkZWYgZW51bSBTZXNzaW9uVmFyaWFibGVzVXNlRmVuY2VDb250ZXh0R3VhcmQKK3sK KwkvKiBEaXNhYmxlIGZlbmNlIHVzYWdlIGNvbnRleHQgZ3VhcmQgKi8KKwlTRVNTSU9OVkFSSUFC TEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfTk9ORSwKKwkvKiBFbmFibGUgZmVuY2UgdXNhZ2Ug Y29udGV4dCBndWFyZCBldmVyeXdoZXJlICovCisJU0VTU0lPTlZBUklBQkxFX1VTRV9GRU5DRV9D T05URVhUX0dVQVJEX0FMTCwKKwkvKiBFbmFibGUgZmVuY2UgdXNhZ2UgY29udGV4dCBndWFyZCB3 aGVuIFNQSSBpcyBub3QgdXNlZCAqLworCVNFU1NJT05WQVJJQUJMRV9VU0VfRkVOQ0VfQ09OVEVY VF9HVUFSRF9OT1NQSSwKK30gU2Vzc2lvblZhcmlhYmxlc1VzZUZlbmNlQ29udGV4dEd1YXJkOwor CitleHRlcm4gUEdETExJTVBPUlQgaW50IHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250 ZXh0X2d1YXJkOwogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3Nw aS5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3BpLmgKaW5kZXggZDA2NGQxYTliNzYuLjQ2OTBh OTVmMzlhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9zcGkuaAorKysgYi9zcmMv aW5jbHVkZS9leGVjdXRvci9zcGkuaApAQCAtMjAzLDUgKzIwMyw2IEBAIGV4dGVybiB2b2lkIFNQ SV9yb2xsYmFja19hbmRfY2hhaW4odm9pZCk7CiBleHRlcm4gdm9pZCBBdEVPWGFjdF9TUEkoYm9v bCBpc0NvbW1pdCk7CiBleHRlcm4gdm9pZCBBdEVPU3ViWGFjdF9TUEkoYm9vbCBpc0NvbW1pdCwg U3ViVHJhbnNhY3Rpb25JZCBteVN1YmlkKTsKIGV4dGVybiBib29sIFNQSV9pbnNpZGVfbm9uYXRv bWljX2NvbnRleHQodm9pZCk7CitleHRlcm4gYm9vbCBTUElfaW5zaWRlX3NwaV9jb250ZXh0KHZv aWQpOwogCiAjZW5kaWYJCQkJCQkJLyogU1BJX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggMTJmYjJjNmE0OWYuLjllMzVlYjZj MjhmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFi bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz Lm91dApAQCAtMjAyMCwzICsyMDIwLDkzIEBAIERST1AgU0NIRU1BIHRlc3R2YXI7CiBTRVQgc2Vz c2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gREVGQVVMVDsKIFNFVCBzZXNzaW9u X3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZCBUTyBERUZBVUxUOwogU0VUIHNlYXJj aF9wYXRoIFRPIERFRkFVTFQ7CistLSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9j b250ZXh0X2d1YXJkCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVEFCTEUg dmFydGVzdF90YWIxKGEgaW50KTsKK0xFVCB2YXIxID0gMjA7CitJTlNFUlQgSU5UTyB2YXJ0ZXN0 X3RhYjEgVkFMVUVTKDIwKTsKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4 dF9ndWFyZCBUTyAnbm9uZSc7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxLCBWQVJJQUJM RSh2YXIxKTsKKyB2YXIxIHwgdmFyMSAKKy0tLS0tLSstLS0tLS0KKyAgIDIwIHwgICAyMAorKDEg cm93KQorCitETyAkJAorREVDTEFSRSB0IGludDsKK0JFR0lOCisgIFNFTEVDVCBhIEZST00gdmFy dGVzdF90YWIxIFdIRVJFIGEgPSB2YXIxIElOVE8gdDsKKyAgUkFJU0UgTk9USUNFICclICUnLCB2 YXIxLCB2YXIxID0gdDsKKyAgU0VMRUNUIGEgRlJPTSB2YXJ0ZXN0X3RhYjEgV0hFUkUgYSA9IFZB UklBQkxFKHZhcjEpIElOVE8gdDsKKyAgUkFJU0UgTk9USUNFICclICUnLCBWQVJJQUJMRSh2YXIx KSwgVkFSSUFCTEUodmFyMSkgPSB0OworRU5EOworJCQ7CitOT1RJQ0U6ICAyMCB0CitOT1RJQ0U6 ICAyMCB0CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgVE8g J2FsbCc7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjEsIFZBUklBQkxFKHZhcjEpOworRVJS T1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgbm90IHVzZWQgaW5zaWRlIHZh cmlhYmxlIGZlbmNlCitERVRBSUw6ICBUaGVyZSBpcyBhIHJpc2sgb2YgdW53YW50ZWQgdXNhZ2Ug b2Ygc2Vzc2lvbiB2YXJpYWJsZS4KK0hJTlQ6ICBVc2UgdmFyaWFibGUgZmVuY2UgIlZBUklBQkxF KHZhcm5hbWUpIGZvciBhY2Nlc3MgdG8gdmFyaWFibGUiLgorLS0gc2hvdWxkIGZhaWwKK0RPICQk CitERUNMQVJFIHQgaW50OworQkVHSU4KKyAgU0VMRUNUIGEgRlJPTSB2YXJ0ZXN0X3RhYjEgV0hF UkUgYSA9IHZhcjEgSU5UTyB0OworRU5EOworJCQ7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUg InB1YmxpYy52YXIxIiBpcyBub3QgdXNlZCBpbnNpZGUgdmFyaWFibGUgZmVuY2UKK0RFVEFJTDog IFRoZXJlIGlzIGEgcmlzayBvZiB1bndhbnRlZCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlLgor SElOVDogIFVzZSB2YXJpYWJsZSBmZW5jZSAiVkFSSUFCTEUodmFybmFtZSkgZm9yIGFjY2VzcyB0 byB2YXJpYWJsZSIuCitDT05URVhUOiAgU1FMIHN0YXRlbWVudCAiU0VMRUNUIGEgRlJPTSB2YXJ0 ZXN0X3RhYjEgV0hFUkUgYSA9IHZhcjEiCitQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9i bG9jayBsaW5lIDQgYXQgU1FMIHN0YXRlbWVudAorLS0gc2hvdWxkIGZhaWwKK0RPICQkCitERUNM QVJFIHQgaW50IERFRkFVTFQgMjA7CitCRUdJTgorICBSQUlTRSBOT1RJQ0UgJyUgJScsIHZhcjEs IHZhcjEgPSB0OworRU5EOworJCQ7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52 YXIxIiBpcyBub3QgdXNlZCBpbnNpZGUgdmFyaWFibGUgZmVuY2UKK0RFVEFJTDogIFRoZXJlIGlz IGEgcmlzayBvZiB1bndhbnRlZCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlLgorSElOVDogIFVz ZSB2YXJpYWJsZSBmZW5jZSAiVkFSSUFCTEUodmFybmFtZSkgZm9yIGFjY2VzcyB0byB2YXJpYWJs ZSIuCitDT05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAidmFyMSIKK1BML3BnU1FMIGZ1bmN0 aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgNCBhdCBSQUlTRQorLS0gc2hvdWxkIGJlIG9rCitT RUxFQ1QgVkFSSUFCTEUodmFyMSksIFZBUklBQkxFKHZhcjEpOworIHZhcjEgfCB2YXIxIAorLS0t LS0tKy0tLS0tLQorICAgMjAgfCAgIDIwCisoMSByb3cpCisKK0RPICQkCitERUNMQVJFIHQgaW50 OworQkVHSU4KKyAgU0VMRUNUIGEgRlJPTSB2YXJ0ZXN0X3RhYjEgV0hFUkUgYSA9IFZBUklBQkxF KHZhcjEpIElOVE8gdDsKKyAgUkFJU0UgTk9USUNFICclICUnLCBWQVJJQUJMRSh2YXIxKSwgVkFS SUFCTEUodmFyMSkgPSB0OworRU5EOworJCQ7CitOT1RJQ0U6ICAyMCB0CitTRVQgc2Vzc2lvbl92 YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgVE8gJ25vc3BpJzsKKy0tIHNob3VsZCBm YWlsCitTRUxFQ1QgdmFyMSwgVkFSSUFCTEUodmFyMSk7CitFUlJPUjogIHNlc3Npb24gdmFyaWFi bGUgInB1YmxpYy52YXIxIiBpcyBub3QgdXNlZCBpbnNpZGUgdmFyaWFibGUgZmVuY2UKK0RFVEFJ TDogIFRoZXJlIGlzIGEgcmlzayBvZiB1bndhbnRlZCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxl LgorSElOVDogIFVzZSB2YXJpYWJsZSBmZW5jZSAiVkFSSUFCTEUodmFybmFtZSkgZm9yIGFjY2Vz cyB0byB2YXJpYWJsZSIuCistLSBzaG91bGQgYmUgb2sKK0RPICQkCitERUNMQVJFIHQgaW50Owor QkVHSU4KKyAgU0VMRUNUIGEgRlJPTSB2YXJ0ZXN0X3RhYjEgV0hFUkUgYSA9IHZhcjEgSU5UTyB0 OworICBSQUlTRSBOT1RJQ0UgJyUgJScsIHZhcjEsIHZhcjEgPSB0OworICBTRUxFQ1QgYSBGUk9N IHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gVkFSSUFCTEUodmFyMSkgSU5UTyB0OworICBSQUlTRSBO T1RJQ0UgJyUgJScsIFZBUklBQkxFKHZhcjEpLCBWQVJJQUJMRSh2YXIxKSA9IHQ7CitFTkQ7Cisk JDsKK05PVElDRTogIDIwIHQKK05PVElDRTogIDIwIHQKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191 c2VfZmVuY2VfY29udGV4dF9ndWFyZCBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSB2YXIxOwor RFJPUCBUQUJMRSB2YXJ0ZXN0X3RhYjE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwKaW5kZXggOTRkMzUzYjU4MGIuLjQ5ZWM5MDRiOTMyIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xMzk1LDMgKzEzOTUsNzYgQEAg RFJPUCBTQ0hFTUEgdGVzdHZhcjsKIFNFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2Fy bmluZyBUTyBERUZBVUxUOwogU0VUIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5n X2d1YXJkIFRPIERFRkFVTFQ7CiBTRVQgc2VhcmNoX3BhdGggVE8gREVGQVVMVDsKKworLS0gdGVz dCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZAorQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgaW50OworQ1JFQVRFIFRBQkxFIHZhcnRlc3RfdGFiMShhIGludCk7CisKK0xF VCB2YXIxID0gMjA7CitJTlNFUlQgSU5UTyB2YXJ0ZXN0X3RhYjEgVkFMVUVTKDIwKTsKKworU0VU IHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkIFRPICdub25lJzsKKwor LS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMSwgVkFSSUFCTEUodmFyMSk7CitETyAkJAorREVD TEFSRSB0IGludDsKK0JFR0lOCisgIFNFTEVDVCBhIEZST00gdmFydGVzdF90YWIxIFdIRVJFIGEg PSB2YXIxIElOVE8gdDsKKyAgUkFJU0UgTk9USUNFICclICUnLCB2YXIxLCB2YXIxID0gdDsKKyAg U0VMRUNUIGEgRlJPTSB2YXJ0ZXN0X3RhYjEgV0hFUkUgYSA9IFZBUklBQkxFKHZhcjEpIElOVE8g dDsKKyAgUkFJU0UgTk9USUNFICclICUnLCBWQVJJQUJMRSh2YXIxKSwgVkFSSUFCTEUodmFyMSkg PSB0OworRU5EOworJCQ7CisKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4 dF9ndWFyZCBUTyAnYWxsJzsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxLCBWQVJJQUJM RSh2YXIxKTsKKworLS0gc2hvdWxkIGZhaWwKK0RPICQkCitERUNMQVJFIHQgaW50OworQkVHSU4K KyAgU0VMRUNUIGEgRlJPTSB2YXJ0ZXN0X3RhYjEgV0hFUkUgYSA9IHZhcjEgSU5UTyB0OworRU5E OworJCQ7CisKKy0tIHNob3VsZCBmYWlsCitETyAkJAorREVDTEFSRSB0IGludCBERUZBVUxUIDIw OworQkVHSU4KKyAgUkFJU0UgTk9USUNFICclICUnLCB2YXIxLCB2YXIxID0gdDsKK0VORDsKKyQk OworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBWQVJJQUJMRSh2YXIxKSwgVkFSSUFCTEUodmFy MSk7CitETyAkJAorREVDTEFSRSB0IGludDsKK0JFR0lOCisgIFNFTEVDVCBhIEZST00gdmFydGVz dF90YWIxIFdIRVJFIGEgPSBWQVJJQUJMRSh2YXIxKSBJTlRPIHQ7CisgIFJBSVNFIE5PVElDRSAn JSAlJywgVkFSSUFCTEUodmFyMSksIFZBUklBQkxFKHZhcjEpID0gdDsKK0VORDsKKyQkOworCitT RVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgVE8gJ25vc3BpJzsK KworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxLCBWQVJJQUJMRSh2YXIxKTsKKworLS0gc2hv dWxkIGJlIG9rCitETyAkJAorREVDTEFSRSB0IGludDsKK0JFR0lOCisgIFNFTEVDVCBhIEZST00g dmFydGVzdF90YWIxIFdIRVJFIGEgPSB2YXIxIElOVE8gdDsKKyAgUkFJU0UgTk9USUNFICclICUn LCB2YXIxLCB2YXIxID0gdDsKKyAgU0VMRUNUIGEgRlJPTSB2YXJ0ZXN0X3RhYjEgV0hFUkUgYSA9 IFZBUklBQkxFKHZhcjEpIElOVE8gdDsKKyAgUkFJU0UgTk9USUNFICclICUnLCBWQVJJQUJMRSh2 YXIxKSwgVkFSSUFCTEUodmFyMSkgPSB0OworRU5EOworJCQ7CisKK1NFVCBzZXNzaW9uX3Zhcmlh Ymxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZCBUTyBERUZBVUxUOworCitEUk9QIFZBUklBQkxF IHZhcjE7CitEUk9QIFRBQkxFIHZhcnRlc3RfdGFiMTsKLS0gCjIuNDcuMQoK --000000000000f297a7062b2456dc Content-Type: text/x-patch; charset="US-ASCII"; name="v20250107-0008-variable-fence-syntax-support-and-variable-fence-usa.patch" Content-Disposition: attachment; filename="v20250107-0008-variable-fence-syntax-support-and-variable-fence-usa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5mz6bnn14 RnJvbSAyNjE5MzgxN2NhODJkZDMyZDcxYjNlZTVjNTlkZjI1ZjFlZWIzYjhmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMTkgTm92IDIwMjQgMDg6MTQ6NTMgKzAxMDAKU3ViamVjdDogW1BBVENIIDA4 LzIyXSB2YXJpYWJsZSBmZW5jZSBzeW50YXggc3VwcG9ydCBhbmQgdmFyaWFibGUgZmVuY2UgdXNh Z2UKIGd1YXJkIHN1cHBvcnQKCnRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGNvbmNlcHQgb2YgdmFy aWFibGUgZmVuY2UgLSBzeW50YXggZm9yIHZhcmlhYmxlCnJlZmVyZW5jZSBgVkFSSUFCTEUodmFy bmFtZSlgIHRoYXQgaXMgbm90IGluIGNvbGxpc2lvbiB3aXRoIGNvbHVtbiByZWZlcmVuY2UuCldo ZW4gdmFyaWFibGUgZmVuY2UgdXNhZ2UgZ3VhcmQgd2FybmluZyBpcyBhY3RpdmUsIHRoZW4gdXNh Z2UgdmFyaWFibGUKd2l0aG91dCB2YXJpYWJsZSBmZW5jZSBpbiB0aGUgY2FzZSwgd2hlcmUgdGhl cmUgY2FuIGJlIGNvbHVtbiByZWZlcmVuY2VzLAp0aGUgdGhlIHdhcm5pbmcgaXMgcmFpc2VkLgoK aW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB2YXJpYWJsZSBmZW5jZQotLS0KIGRvYy9zcmMvc2dt bC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8IDY1ICsrKysrKysrKysrKysrKysK IGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8IDE1ICsrKysK IHNyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICA2ICsrCiBz cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAyOCArKysrKyst CiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCA3NCArKysr KysrKysrKysrKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgICAgICAg ICAgICAgfCAgNyArKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAg ICAgIHwgMTIgKystCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyAgICAgICAg ICAgfCAgOSArKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBs ZSB8ICAxICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8 IDEwICsrKwogc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwg IDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCAgICAgICAgICAgICAgIHwgIDEg KwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgNTkgKysr KysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwg ICAgfCA0MSArKysrKysrKysrCiAxNCBmaWxlcyBjaGFuZ2VkLCAzMjMgaW5zZXJ0aW9ucygrKSwg NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9k b2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggNTc2NmNkNjIzNGEuLjFiMzk0ZjI3YmEyIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Nv bmZpZy5zZ21sCkBAIC0xMDg2Niw2ICsxMDg2Niw3MSBAQCBERVRBSUw6ICBTZXNzaW9uIHZhcmlh YmxlcyBjYW4gYmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGluZSdzIHZhcmlhYmxlcyBhbmQg cgogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICAgPHZhcmxp c3RlbnRyeSBpZD0iZ3VjLXNlc3Npb24tdmFyaWFibGVzLXVzZS1mZW5jZS13YXJuaW5nLWd1YXJk IiB4cmVmbGFiZWw9InNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkIj4K KyAgICAgIDx0ZXJtPjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5n X2d1YXJkPC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJt PgorICAgICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93 YXJuaW5nX2d1YXJkPC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4K KyAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAg ICAgPHBhcmE+CisgICAgICAgV2hlbiBvbiwgYSB3YXJuaW5nIGlzIHJhaXNlZCB3aGVuIGEgc2Vz c2lvbiB2YXJpYWJsZSBpZGVudGlmaWVyIGlzIHVzZWQKKyAgICAgICBpbnNpZGUgYSBxdWVyeSB3 aXRob3V0IHZhcmlhYmxlIGZlbmNlLiBUaGUgZGVmYXVsdCBpcyA8bGl0ZXJhbD5vZmY8L2xpdGVy YWw+LgorICAgICAgIFRoZSB3YXJuaW5nIGlzIHJhaXNlZCBvbmx5IHdoZW4gdmFyaWFibGUgaXMg dXNlZCBpbiBwbGFjZXMsIHdoZXJlIGFuCisgICAgICAgY29sbGlzaW9ucyB3aXRoIGNvbHVtbiBu YW1lcyBpcyBwb3NzaWJsZS4KKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBUQUJMRSBmb28oYSBp bnQpOworSU5TRVJUIElOVE8gZm9vIFZBTFVFUygxMCk7CitDUkVBVEUgVkFSSUFCTEUgYiBpbnQ7 CitMRVQgYiA9IDEwMDsKK1NFTEVDVCBhLCBiIEZST00gZm9vOworPC9wcm9ncmFtbGlzdGluZz4K KworPHNjcmVlbj4KKyBhICB8ICBiICAKKy0tLS0rLS0tLS0KKyAxMCB8IDEwMAorKDEgcm93KQor PC9zY3JlZW4+CisKKzxwcm9ncmFtbGlzdGluZz4KK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2Vf ZmVuY2Vfd2FybmluZ19ndWFyZCBUTyBvbjsKK1NFTEVDVCBhLCBiIEZST00gZm9vOworPC9wcm9n cmFtbGlzdGluZz4KKworPHNjcmVlbj4KK1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlhYmxlICJiIiBp cyBub3QgdXNlZCBpbnNpZGUgdmFyaWFibGUgZmVuY2UKK0xJTkUgMTogU0VMRUNUIGEsIGIgRlJP TSBmb287CisgICAgICAgICAgICAgICAgICBeCitERVRBSUw6ICBUaGUgY29sbGlzaW9uIG9mIHNl c3Npb24gdmFyaWFibGUnIG5hbWVzIGFuZCBjb2x1bW4gbmFtZXMgaXMgcG9zc2libGUuCisgYSAg fCAgYiAgCistLS0tKy0tLS0tCisgMTAgfCAxMDAKKygxIHJvdykKKzwvc2NyZWVuPgorCis8cHJv Z3JhbWxpc3Rpbmc+CitTRUxFQ1QgYSwgVkFSSUFCTEUoYikgRlJPTSBmb287Cis8L3Byb2dyYW1s aXN0aW5nPgorCis8c2NyZWVuPgorIGEgIHwgIGIgIAorLS0tLSstLS0tLQorIDEwIHwgMTAwCiso MSByb3cpCis8L3NjcmVlbj4KKyAgICAgICA8L3BhcmE+CisKKyAgICAgICA8cGFyYT4KKyAgICAg ICAgVGhpcyBmZWF0dXJlIGNhbiBzaWduaWZpY2FudGx5IGluY3JlYXNlIGxvZyBzaXplLCBzbyBp dCdzIGRpc2FibGVkIGJ5CisgICAgICAgIGRlZmF1bHQuIFVubGVzcyBhbm90aGVyIGNvbGxpc2lv biByZXNvbHV0aW9uIHRlY2huaXF1ZSBpcyB1c2VkCisgICAgICAgIChkZWRpY2F0ZWQgc2NoZW1h IG9yIHVzaW5nIHByZWZpeGVzIGxpa2UgPGxpdGVyYWw+XzwvbGl0ZXJhbD4pLAorICAgICAgICB0 aGUgdXNlIG9mIHZhcmlhYmxlIGZlbmNlIHN5bnRheCBpcyBzdHJvbmdseSByZWNvbW1lbmRlZCwg YW5kIHRoaXMKKyAgICAgICAgd2FybmluZyBzaG91bGQgYmUgZW5hYmxlZC4KKyAgICAgICA8L3Bh cmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFy bGlzdGVudHJ5IGlkPSJndWMtc3RhbmRhcmQtY29uZm9ybWluZy1zdHJpbmdzIiB4cmVmbGFiZWw9 InN0YW5kYXJkX2NvbmZvcm1pbmdfc3RyaW5ncyI+CiAgICAgICA8dGVybT48dmFybmFtZT5zdGFu ZGFyZF9jb25mb3JtaW5nX3N0cmluZ3M8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikK ICAgICAgIDxpbmRleHRlcm0+PHByaW1hcnk+c3RyaW5nczwvcHJpbWFyeT48c2Vjb25kYXJ5PnN0 YW5kYXJkIGNvbmZvcm1pbmc8L3NlY29uZGFyeT48L2luZGV4dGVybT4KZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCBhZDEyZTM2 NDM2My4uZmUzZjFjY2EwMDYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTU0MTEsNiArNTQxMSwyMSBAQCBTRUxFQ1QgY3Vy cmVudF91c2VyX2lkOwogICAgIDxsaXRlcmFsPnNjaGVtYS52YXJpYWJsZTwvbGl0ZXJhbD4uIEl0 IGlzIHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvIHJlbmFtZQogICAgIHNoYWRvd2VkIHZhcmlhYmxl cyBvciB1c2UgcXVhbGlmaWVkIG5hbWVzIGFsd2F5cy4KICAgIDwvcGFyYT4KKworICAgPHBhcmE+ PGZpcnN0dGVybT5WYXJpYWJsZSBmZW5jZTwvZmlyc3R0ZXJtPiBpcyBzcGVjaWFsIHN5bnRheCBm b3Igc2Vzc2lvbgorICAgIHZhcmlhYmxlIGlkZW50aWZpZXIuIE9ubHkgbmFtZSBvciBxdWFsaWZp ZWQgbmFtZSBjYW4gYmUgdXNlZCBpbnNpZGUgdGhlCisgICAgdmFyaWFibGUgZmVuY2UsIGFuZCB0 aGlzIG5hbWUgaXMgdXNlZCBhcyBvbmx5IHNlc3Npb24gdmFyaWFibGUgaWRlbnRpZmllci4KKzxw cm9ncmFtbGlzdGluZz4KK1NFTEVDVCBWQVJJQUJMRShjdXJyZW50X3VzZXJfaWQpOworPC9wcm9n cmFtbGlzdGluZz4KKyAgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFdoZW4gdGhlcmUgaXMgYSBy aXNrIG9mIHBvc3NpYmxlIGNvbGxpc2lvbnMgYmV0d2VlbiB2YXJpYWJsZSBpZGVudGlmaWVycwor ICAgYW5kIGNvbHVtbiBuYW1lcywgdGhlbiB1c2luZyB2YXJpYWJsZSBmZW5jZSBzeW50YXggY2Fu IGJlIHJlY29tbWVuZGVkLgorICAgVXNhZ2Ugc2Vzc2lvbiB2YXJpYWJsZSB3aXRob3V0IHZhcmlh YmxlIGZlbmNlIGNhbiBiZSBkZXRlY3RlZCBieQorICAgd2FybmluZyA8eHJlZiBsaW5rZW5kPSJn dWMtc2Vzc2lvbi12YXJpYWJsZXMtdXNlLWZlbmNlLXdhcm5pbmctZ3VhcmQiLz4uCisgIDwvcGFy YT4KICAgPC9zZWN0MT4KIAogIDxzZWN0MSBpZD0iZGRsLW90aGVycyI+CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5j cy5jCmluZGV4IDU2YThmZTVkNzRmLi4zN2I5MWU1MDc5NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMK QEAgLTE2NjIsNiArMTY2Miw5IEBAIGV4cHJMb2NhdGlvbihjb25zdCBOb2RlICpleHByKQogCQlj YXNlIFRfUGFyYW1SZWY6CiAJCQlsb2MgPSAoKGNvbnN0IFBhcmFtUmVmICopIGV4cHIpLT5sb2Nh dGlvbjsKIAkJCWJyZWFrOworCQljYXNlIFRfVmFyaWFibGVGZW5jZToKKwkJCWxvYyA9ICgoY29u c3QgVmFyaWFibGVGZW5jZSAqKSBleHByKS0+bG9jYXRpb247CisJCQlicmVhazsKIAkJY2FzZSBU X0FfQ29uc3Q6CiAJCQlsb2MgPSAoKGNvbnN0IEFfQ29uc3QgKikgZXhwciktPmxvY2F0aW9uOwog CQkJYnJlYWs7CkBAIC00NjgxLDYgKzQ2ODQsOSBAQCByYXdfZXhwcmVzc2lvbl90cmVlX3dhbGtl cl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0cnVlOwogCQkJfQogCQkJYnJlYWs7CisJ CWNhc2UgVF9WYXJpYWJsZUZlbmNlOgorCQkJLyogd2UgYXNzdW1lIHRoZSBmaWVsZHMgY29udGFp biBub3RoaW5nIGludGVyZXN0aW5nICovCisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2co RVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIG5vZGVUYWco bm9kZSkpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggN2U3MTU4YWMwOTkuLjY3NGU4YWYyNTZjIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKQEAgLTUxNyw3ICs1MTcsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdT ZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogJXR5cGUg PG5vZGU+CWRlZl9hcmcgY29sdW1uRWxlbSB3aGVyZV9jbGF1c2Ugd2hlcmVfb3JfY3VycmVudF9j bGF1c2UKIAkJCQlhX2V4cHIgYl9leHByIGNfZXhwciBBZXhwckNvbnN0IGluZGlyZWN0aW9uX2Vs IG9wdF9zbGljZV9ib3VuZAogCQkJCWNvbHVtbnJlZiBpbl9leHByIGhhdmluZ19jbGF1c2UgZnVu Y190YWJsZSB4bWx0YWJsZSBhcnJheV9leHByCi0JCQkJT3B0V2hlcmVDbGF1c2Ugb3BlcmF0b3Jf ZGVmX2FyZworCQkJCU9wdFdoZXJlQ2xhdXNlIG9wZXJhdG9yX2RlZl9hcmcgdmFyaWFibGVfZmVu Y2UKICV0eXBlIDxsaXN0PglvcHRfY29sdW1uX2FuZF9wZXJpb2RfbGlzdAogJXR5cGUgPGxpc3Q+ CXJvd3Nmcm9tX2l0ZW0gcm93c2Zyb21fbGlzdCBvcHRfY29sX2RlZl9saXN0CiAldHlwZSA8Ym9v bGVhbj4gb3B0X29yZGluYWxpdHkgb3B0X3dpdGhvdXRfb3ZlcmxhcHMKQEAgLTg3NCw3ICs4NzQs NyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwg TGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogICovCiAlbm9uYXNzb2MJVU5CT1VOREVEIE5F U1RFRCAvKiBpZGVhbGx5IHdvdWxkIGhhdmUgc2FtZSBwcmVjZWRlbmNlIGFzIElERU5UICovCiAl bm9uYXNzb2MJSURFTlQgUEFSVElUSU9OIFJBTkdFIFJPV1MgR1JPVVBTIFBSRUNFRElORyBGT0xM T1dJTkcgQ1VCRSBST0xMVVAKLQkJCVNFVCBLRVlTIE9CSkVDVF9QIFNDQUxBUiBWQUxVRV9QIFdJ VEggV0lUSE9VVCBQQVRICisJCQlTRVQgS0VZUyBPQkpFQ1RfUCBTQ0FMQVIgVkFMVUVfUCBXSVRI IFdJVEhPVVQgUEFUSCBWQVJJQUJMRQogJWxlZnQJCU9wIE9QRVJBVE9SCQkvKiBtdWx0aS1jaGFy YWN0ZXIgb3BzIGFuZCB1c2VyLWRlZmluZWQgb3BlcmF0b3JzICovCiAlbGVmdAkJJysnICctJwog JWxlZnQJCScqJyAnLycgJyUnCkBAIC0xNTU5Myw2ICsxNTU5MywxOSBAQCBjX2V4cHI6CQljb2x1 bW5yZWYJCQkJCQkJCXsgJCQgPSAkMTsgfQogCQkJCQllbHNlCiAJCQkJCQkkJCA9ICQyOwogCQkJ CX0KKwkJCXwgdmFyaWFibGVfZmVuY2Ugb3B0X2luZGlyZWN0aW9uCisJCQkJeworCQkJCQlpZiAo JDIpCisJCQkJCXsKKwkJCQkJCUFfSW5kaXJlY3Rpb24gKm4gPSBtYWtlTm9kZShBX0luZGlyZWN0 aW9uKTsKKworCQkJCQkJbi0+YXJnID0gKE5vZGUgKikgJDE7CisJCQkJCQluLT5pbmRpcmVjdGlv biA9IGNoZWNrX2luZGlyZWN0aW9uKCQyLCB5eXNjYW5uZXIpOworCQkJCQkJJCQgPSAoTm9kZSAq KSBuOworCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJCSQkID0gJDE7CisJCQkJfQogCQkJfCBjYXNl X2V4cHIKIAkJCQl7ICQkID0gJDE7IH0KIAkJCXwgZnVuY19leHByCkBAIC0xNjk3OSw2ICsxNjk5 MiwxNyBAQCBjYXNlX2FyZzoJYV9leHByCQkJCQkJCQkJeyAkJCA9ICQxOyB9CiAJCQl8IC8qRU1Q VFkqLwkJCQkJCQkJeyAkJCA9IE5VTEw7IH0KIAkJOwogCit2YXJpYWJsZV9mZW5jZToKKwkJCVZB UklBQkxFICcoJyBhbnlfbmFtZSAnKScKKwkJCQl7CisJCQkJCVZhcmlhYmxlRmVuY2UgKnZmID0g bWFrZU5vZGUoVmFyaWFibGVGZW5jZSk7CisKKwkJCQkJdmYtPnZhcm5hbWUgPSAkMzsKKwkJCQkJ dmYtPmxvY2F0aW9uID0gQDM7CisJCQkJCSQkID0gKE5vZGUgKikgdmY7CisJCQkJfQorCQk7CisK IGNvbHVtbnJlZjoJQ29sSWQKIAkJCQl7CiAJCQkJCSQkID0gbWFrZUNvbHVtblJlZigkMSwgTklM LCBAMSwgeXlzY2FubmVyKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9l eHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IDRlNzg1MjljNDBk Li5iODVhOTdjYTc4ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIu YworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC00Niw2ICs0Niw3IEBA CiAvKiBHVUMgcGFyYW1ldGVycyAqLwogYm9vbAkJVHJhbnNmb3JtX251bGxfZXF1YWxzID0gZmFs c2U7CiBib29sCQlzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyA9IGZhbHNlOwor Ym9vbAkJc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQgPSBmYWxzZTsK IAogCiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtRXhwclJlY3Vyc2UoUGFyc2VTdGF0ZSAqcHN0YXRl LCBOb2RlICpleHByKTsKQEAgLTgxLDYgKzgyLDcgQEAgc3RhdGljIE5vZGUgKnRyYW5zZm9ybVdo b2xlUm93UmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1JbmRp cmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCk7CiBzdGF0aWMg Tm9kZSAqdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBlQ2FzdCAqdGMp Owogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUNvbGxhdGVDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRl LCBDb2xsYXRlQ2xhdXNlICpjKTsKK3N0YXRpYyBOb2RlICp0cmFuc2Zvcm1WYXJpYWJsZUZlbmNl KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVmFyaWFibGVGZW5jZSAqdmYpOwogc3RhdGljIE5vZGUgKnRy YW5zZm9ybUpzb25PYmplY3RDb25zdHJ1Y3RvcihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJ CQkJCUpzb25PYmplY3RDb25zdHJ1Y3RvciAqY3Rvcik7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3Jt SnNvbkFycmF5Q29uc3RydWN0b3IoUGFyc2VTdGF0ZSAqcHN0YXRlLApAQCAtMTEyLDcgKzExNCw3 IEBAIHN0YXRpYyBOb2RlICptYWtlX251bGx0ZXN0X2Zyb21fZGlzdGluY3QoUGFyc2VTdGF0ZSAq cHN0YXRlLAogCQkJCQkJCQkJCSBBX0V4cHIgKmRpc3RpbmN0YSwgTm9kZSAqYXJnKTsKIHN0YXRp YyBOb2RlICptYWtlUGFyYW1TZXNzaW9uVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJ CQkJCQkJICBPaWQgdmFyaWQsIE9pZCB0eXBpZCwgaW50MzIgdHlwbW9kLCBPaWQgY29sbGlkLAot CQkJCQkJCQkJICBjaGFyICphdHRybmFtZSwgaW50IGxvY2F0aW9uKTsKKwkJCQkJCQkJCSAgY2hh ciAqYXR0cm5hbWUsIGJvb2wgZmVuY2VkLCBpbnQgbG9jYXRpb24pOwogCiAKIC8qCkBAIC0zNzcs NiArMzc5LDEwIEBAIHRyYW5zZm9ybUV4cHJSZWN1cnNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9k ZSAqZXhwcikKIAkJCXJlc3VsdCA9IHRyYW5zZm9ybUpzb25GdW5jRXhwcihwc3RhdGUsIChKc29u RnVuY0V4cHIgKikgZXhwcik7CiAJCQlicmVhazsKIAorCQljYXNlIFRfVmFyaWFibGVGZW5jZToK KwkJCXJlc3VsdCA9IHRyYW5zZm9ybVZhcmlhYmxlRmVuY2UocHN0YXRlLCAoVmFyaWFibGVGZW5j ZSAqKSBleHByKTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQkvKiBzaG91bGQgbm90IHJl YWNoIGhlcmUgKi8KIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIs IChpbnQpIG5vZGVUYWcoZXhwcikpOwpAQCAtMTAyOCw3ICsxMDM0LDIwIEBAIHRyYW5zZm9ybUNv bHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAogCQkJCW5vZGUg PSBtYWtlUGFyYW1TZXNzaW9uVmFyaWFibGUocHN0YXRlLAogCQkJCQkJCQkJCQkJdmFyaWQsIHR5 cGlkLCB0eXBtb2QsIGNvbGxpZCwKLQkJCQkJCQkJCQkJCWF0dHJuYW1lLCBjcmVmLT5sb2NhdGlv bik7CisJCQkJCQkJCQkJCQlhdHRybmFtZSwgZmFsc2UsIGNyZWYtPmxvY2F0aW9uKTsKKworCQkJ CS8qCisJCQkJICogVGhlIHZhcmlhYmxlIGlzIG5vdCBpbnNpZGUgdmFyaWFibGUncyBmZW5jZSwg c28gcmFpc2Ugd2FybmluZworCQkJCSAqIHdoZW4gdmFyaWFibGUgZmVuY2UgZ3VhcmQgaXMgYWN0 aXZlIGFuZCB0aGUgcXVlcnkgaGFzIEZST00KKwkJCQkgKiBjbGF1c2UuCisJCQkJICovCisJCQkJ aWYgKHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkICYmIHBzdGF0ZS0+ cF9ydGFibGUpCisJCQkJCWVyZXBvcnQoV0FSTklORywKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RF X0FNQklHVU9VU19DT0xVTU4pLAorCQkJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIl c1wiIGlzIG5vdCB1c2VkIGluc2lkZSB2YXJpYWJsZSBmZW5jZSIsCisJCQkJCQkJCQlOYW1lTGlz dFRvU3RyaW5nKGNyZWYtPmZpZWxkcykpLAorCQkJCQkJCSBlcnJkZXRhaWwoIlRoZSBjb2xsaXNp b24gb2Ygc2Vzc2lvbiB2YXJpYWJsZScgbmFtZXMgYW5kIGNvbHVtbiBuYW1lcyBpcyBwb3NzaWJs ZS4iKSwKKwkJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgY3JlZi0+bG9jYXRpb24p KSk7CiAJCQl9CiAJCX0KIAl9CkBAIC0xMDcxLDcgKzEwOTAsNyBAQCB0cmFuc2Zvcm1Db2x1bW5S ZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiBzdGF0aWMgTm9kZSAqCiBt YWtlUGFyYW1TZXNzaW9uVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJIE9pZCB2 YXJpZCwgT2lkIHR5cGlkLCBpbnQzMiB0eXBtb2QsIE9pZCBjb2xsaWQsCi0JCQkJCQkgY2hhciAq YXR0cm5hbWUsIGludCBsb2NhdGlvbikKKwkJCQkJCSBjaGFyICphdHRybmFtZSwgYm9vbCBmZW5j ZWQsIGludCBsb2NhdGlvbikKIHsKIAlQYXJhbQkgICAqcGFyYW07CiAKQEAgLTEwNzksNiArMTA5 OCw3IEBAIG1ha2VQYXJhbVNlc3Npb25WYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsCiAKIAlw YXJhbS0+cGFyYW1raW5kID0gUEFSQU1fVkFSSUFCTEU7CiAJcGFyYW0tPnBhcmFtdmFyaWQgPSB2 YXJpZDsKKwlwYXJhbS0+cGFyYW12YXJmZW5jZWQgPSBmZW5jZWQ7CiAJcGFyYW0tPnBhcmFtdHlw ZSA9IHR5cGlkOwogCXBhcmFtLT5wYXJhbXR5cG1vZCA9IHR5cG1vZDsKIAlwYXJhbS0+cGFyYW1j b2xsaWQgPSBjb2xsaWQ7CkBAIC0xMTU3LDYgKzExNzcsNTQgQEAgdHJhbnNmb3JtUGFyYW1SZWYo UGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJhbVJlZiAqcHJlZikKIAlyZXR1cm4gcmVzdWx0OwogfQog CitzdGF0aWMgTm9kZSAqCit0cmFuc2Zvcm1WYXJpYWJsZUZlbmNlKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgVmFyaWFibGVGZW5jZSAqdmYpCit7CisJTm9kZQkgICAqcmVzdWx0OworCU9pZAkJCXZhcmlk ID0gSW52YWxpZE9pZDsKKwljaGFyCSAgICphdHRybmFtZSA9IE5VTEw7CisJYm9vbAkJbm90X3Vu aXF1ZTsKKworCS8qIFZhcmlhYmxlRmVuY2UgY2FuIGJlIHVzZWQgb25seSBpbiBjb250ZXh0IHdo ZW4gdmFyaWFibGVzIGFyZSBzdXBwb3J0ZWQgKi8KKwlpZiAoIWV4cHJfa2luZF9hbGxvd3Nfc2Vz c2lvbl92YXJpYWJsZXMocHN0YXRlLT5wX2V4cHJfa2luZCkpCisJCWVyZXBvcnQoRVJST1IsCisJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkgZXJybXNnKCJz ZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSBpcyBub3Qgc3VwcG9ydGVkIGhlcmUiKSwKKwkJCSBw YXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCB2Zi0+bG9jYXRpb24pKSk7CisKKwkvKiB0YWtlcyBh biBBY2Nlc3NTaGFyZUxvY2sgb24gdGhlIHNlc3Npb24gdmFyaWFibGUgKi8KKwl2YXJpZCA9IElk ZW50aWZ5VmFyaWFibGUodmYtPnZhcm5hbWUsICZhdHRybmFtZSwgJm5vdF91bmlxdWUsIGZhbHNl KTsKKworCWlmIChub3RfdW5pcXVlKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVS UkNPREVfQU1CSUdVT1VTX1BBUkFNRVRFUiksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJs ZSByZWZlcmVuY2UgXCIlc1wiIGlzIGFtYmlndW91cyIsCisJCQkJCQlOYW1lTGlzdFRvU3RyaW5n KHZmLT52YXJuYW1lKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHZmLT5sb2Nh dGlvbikpKTsKKworCWlmIChPaWRJc1ZhbGlkKHZhcmlkKSkKKwl7CisJCU9pZAkJCXR5cGlkOwor CQlpbnQzMgkJdHlwbW9kOworCQlPaWQJCQljb2xsaWQ7CisKKwkJZ2V0X3Nlc3Npb25fdmFyaWFi bGVfdHlwZV90eXBtb2RfY29sbGlkKHZhcmlkLCAmdHlwaWQsICZ0eXBtb2QsCisJCQkJCQkJCQkJ CQkmY29sbGlkKTsKKworCQlyZXN1bHQgPSBtYWtlUGFyYW1TZXNzaW9uVmFyaWFibGUocHN0YXRl LAorCQkJCQkJCQkJCXZhcmlkLCB0eXBpZCwgdHlwbW9kLCBjb2xsaWQsCisJCQkJCQkJCQkJYXR0 cm5hbWUsIHRydWUsIHZmLT5sb2NhdGlvbik7CisJfQorCWVsc2UKKwkJZXJlcG9ydChFUlJPUiwK KwkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coInNl c3Npb24gdmFyaWFibGUgXCIlc1wiIGRvZXNuJ3QgZXhpc3QiLAorCQkJCQkJTmFtZUxpc3RUb1N0 cmluZyh2Zi0+dmFybmFtZSkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCB2Zi0+ bG9jYXRpb24pKSk7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAvKiBUZXN0IHdoZXRoZXIgYW4g YV9leHByIGlzIGEgcGxhaW4gTlVMTCBjb25zdGFudCBvciBub3QgKi8KIHN0YXRpYyBib29sCiBl eHBySXNOdWxsQ29uc3RhbnQoTm9kZSAqYXJnKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX3RhcmdldC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCmlu ZGV4IDkzOTE1MDMxYmU4Li4zMDBlYTM0ODc4OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX3RhcmdldC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQu YwpAQCAtMjAzNCw2ICsyMDM0LDEzIEBAIEZpZ3VyZUNvbG5hbWVJbnRlcm5hbChOb2RlICpub2Rl LCBjaGFyICoqbmFtZSkKIAkJCQkJCSAoaW50KSAoKEpzb25GdW5jRXhwciAqKSBub2RlKS0+b3Ap OwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9WYXJpYWJsZUZlbmNlOgorCQkJeworCQkJCS8q IHJldHVybiBsYXN0IGZpZWxkIG5hbWUgKi8KKwkJCQkqbmFtZSA9IHN0clZhbChsbGFzdCgoKFZh cmlhYmxlRmVuY2UgKikgbm9kZSktPnZhcm5hbWUpKTsKKwkJCQlyZXR1cm4gMjsKKwkJCX0KKwkJ CWJyZWFrOwogCQlkZWZhdWx0OgogCQkJYnJlYWs7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGls cy5jCmluZGV4IDhkM2QzYzljNzU3Li5lYmI0MWUzYjVlOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxl dXRpbHMuYwpAQCAtODYzMCw4ICs4NjMwLDE2IEBAIGdldF9wYXJhbWV0ZXIoUGFyYW0gKnBhcmFt LCBkZXBhcnNlX2NvbnRleHQgKmNvbnRleHQpCiAJLyogdHJhbnNsYXRlIHBhcmFtdmFyaWQgdG8g c2Vzc2lvbiB2YXJpYWJsZSBuYW1lICovCiAJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1f VkFSSUFCTEUpCiAJewotCQlhcHBlbmRTdHJpbmdJbmZvKGNvbnRleHQtPmJ1ZiwgIiVzIiwKLQkJ CQkJCSBnZW5lcmF0ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUocGFyYW0tPnBhcmFtdmFyaWQpKTsK KwkJaWYgKHBhcmFtLT5wYXJhbXZhcmZlbmNlZCkKKwkJeworCQkJYXBwZW5kU3RyaW5nSW5mbyhj b250ZXh0LT5idWYsICJWQVJJQUJMRSglcykiLAorCQkJCQkJCSBnZW5lcmF0ZV9zZXNzaW9uX3Zh cmlhYmxlX25hbWUocGFyYW0tPnBhcmFtdmFyaWQpKTsKKwkJfQorCQllbHNlCisJCXsKKwkJCWFw cGVuZFN0cmluZ0luZm8oY29udGV4dC0+YnVmLCAiJXMiLAorCQkJCQkJCSBnZW5lcmF0ZV9zZXNz aW9uX3ZhcmlhYmxlX25hbWUocGFyYW0tPnBhcmFtdmFyaWQpKTsKKwkJfQogCQlyZXR1cm47CiAJ fQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCmluZGV4IDY0N2ZhMWY2NGNkLi5lMDQ0 NGE3YjUxNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTE2MTQsNiArMTYx NCwxNSBAQCBzdHJ1Y3QgY29uZmlnX2Jvb2wgQ29uZmlndXJlTmFtZXNCb29sW10gPQogCQlmYWxz ZSwKIAkJTlVMTCwgTlVMTCwgTlVMTAogCX0sCisJeworCQl7InNlc3Npb25fdmFyaWFibGVzX3Vz ZV9mZW5jZV93YXJuaW5nX2d1YXJkIiwgUEdDX1VTRVJTRVQsIENMSUVOVF9DT05OX1NUQVRFTUVO VCwKKwkJCWdldHRleHRfbm9vcCgiUmFpc2UgYSB3YXJuaW5nIHdoZW4gdmFyaWFibGUgaXMgbm90 IHVzZWQgaW5zaWRlIHZhcmlhYmxlIGZlbmNlLiIpLAorCQkJTlVMTAorCQl9LAorCQkmc2Vzc2lv bl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQsCisJCWZhbHNlLAorCQlOVUxMLCBO VUxMLCBOVUxMCisJfSwKIAl7CiAJCXsiZGVmYXVsdF90cmFuc2FjdGlvbl9yZWFkX29ubHkiLCBQ R0NfVVNFUlNFVCwgQ0xJRU5UX0NPTk5fU1RBVEVNRU5ULAogCQkJZ2V0dGV4dF9ub29wKCJTZXRz IHRoZSBkZWZhdWx0IHJlYWQtb25seSBzdGF0dXMgb2YgbmV3IHRyYW5zYWN0aW9ucy4iKSwKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSBi L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQppbmRleCAyNGNk NmEyY2Y1MC4uMTVkNmIzMTJlMTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2Mv cG9zdGdyZXNxbC5jb25mLnNhbXBsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3Rn cmVzcWwuY29uZi5zYW1wbGUKQEAgLTcxOCw2ICs3MTgsNyBAQCBhdXRvdmFjdXVtX3dvcmtlcl9z bG90cyA9IDE2CSMgYXV0b3ZhY3V1bSB3b3JrZXIgc2xvdHMgdG8gYWxsb2NhdGUKICNkZWZhdWx0 X3RyYW5zYWN0aW9uX2RlZmVycmFibGUgPSBvZmYKICNzZXNzaW9uX3JlcGxpY2F0aW9uX3JvbGUg PSAnb3JpZ2luJwogI3Nlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nID0gb2ZmCisj c2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQgPSBvZmYKICNzdGF0ZW1l bnRfdGltZW91dCA9IDAJCQkJIyBpbiBtaWxsaXNlY29uZHMsIDAgaXMgZGlzYWJsZWQKICN0cmFu c2FjdGlvbl90aW1lb3V0ID0gMAkJCSMgaW4gbWlsbGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCiAj bG9ja190aW1lb3V0ID0gMAkJCQkjIGluIG1pbGxpc2Vjb25kcywgMCBpcyBkaXNhYmxlZApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDkzMjQxYmQ1NWI4Li5mODhlZGMwZDQxOCAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaApAQCAtMzEyLDYgKzMxMiwxNiBAQCB0eXBlZGVmIHN0cnVjdCBQYXJhbVJl ZgogCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25v d24gKi8KIH0gUGFyYW1SZWY7CiAKKy8qCisgKiBWYXJpYWJsZUZlbmNlIC0gZW5zdXJlIHNvIGZp ZWxkcyB3aWxsIGJlIGludGVycHJldHRlZCBhcyBhIHZhcmlhYmxlCisgKi8KK3R5cGVkZWYgc3Ry dWN0IFZhcmlhYmxlRmVuY2UKK3sKKwlOb2RlVGFnCQl0eXBlOworCUxpc3QJICAgKnZhcm5hbWU7 CQkvKiB2YXJpYWJsZSBuYW1lIChTdHJpbmcgbm9kZXMpICovCisJUGFyc2VMb2MJbG9jYXRpb247 CQkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLworfSBWYXJpYWJsZUZlbmNl OworCiAvKgogICogQV9FeHByIC0gaW5maXgsIHByZWZpeCwgYW5kIHBvc3RmaXggZXhwcmVzc2lv bnMKICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggYi9zcmMv aW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCBjMTFkMTk1ZjE4OS4uOTQ2NmIzMTE3MTAg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNs dWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC0zOTQsNiArMzk0LDggQEAgdHlwZWRlZiBzdHJ1Y3Qg UGFyYW0KIAkgKiBwYXJhbSBpcyB1c2VkIGp1c3QgZm9yIGV4ZWN1dGlvbiBvZiBVUERBVEUgb3Bl cmF0aW9uLgogCSAqLwogCWJvb2wJCXBhcmFtYmFzZW5vZGU7CisJLyogdHJ1ZSB3aGVuIHZhcmlh YmxlIGlzIHVzZWQgaW5zaWRlIGFuIGZlbmNlICovCisJYm9vbAkJcGFyYW12YXJmZW5jZWQ7CiAJ LyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8KIAlQYXJzZUxvYwlsb2NhdGlv bjsKIH0gUGFyYW07CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5o IGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAppbmRleCBkMjIwOTA3MDE4MS4uNWJk ZTQzNzU4ZDEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKKysr IGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaApAQCAtMTgsNiArMTgsNyBAQAogLyog R1VDIHBhcmFtZXRlcnMgKi8KIGV4dGVybiBQR0RMTElNUE9SVCBib29sIFRyYW5zZm9ybV9udWxs X2VxdWFsczsKIGV4dGVybiBQR0RMTElNUE9SVCBib29sIHNlc3Npb25fdmFyaWFibGVzX2FtYmln dWl0eV93YXJuaW5nOworZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wgc2Vzc2lvbl92YXJpYWJsZXNf dXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQ7CiAKIGV4dGVybiBOb2RlICp0cmFuc2Zvcm1FeHByKFBh cnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgUGFyc2VFeHByS2luZCBleHByS2luZCk7CiAK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMu b3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5k ZXggOTQ3NDYyMzY1OTguLjEyZmIyYzZhNDlmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTk2MSwzICsxOTYxLDYyIEBAIFNFVCBz ZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvZmY7CiBEUk9QIFRBQkxFIHB1 YmxpYy54eHRhYjsKIERST1AgU0NIRU1BIHh4dGFiIENBU0NBREU7CiBOT1RJQ0U6ICBkcm9wIGNh c2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgeHh0YWIuYXZhcgorLS0gdGVzdCBzZXNzaW9uX3Zh cmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZAorU0VUIHNlc3Npb25fdmFyaWFibGVzX2Ft YmlndWl0eV93YXJuaW5nIFRPIG9uOworU0VUIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93 YXJuaW5nX2d1YXJkIFRPIG9uOworQ1JFQVRFIFNDSEVNQSB0ZXN0dmFyOworU0VUIHNlYXJjaF9w YXRoIFRPICd0ZXN0dmFyJzsKK0NSRUFURSBWQVJJQUJMRSBhIEFTIGludDsKK0xFVCBhID0gMTA7 CitDUkVBVEUgVEFCTEUgdGVzdF90YWJsZShhIGludCwgYiBpbnQpOworSU5TRVJUIElOVE8gdGVz dF90YWJsZSBWQUxVRVMoMjAsIDIwKTsKKy0tIG5vIHdhcm5pbmcKK1NFTEVDVCBhOworIGEgIAor LS0tLQorIDEwCisoMSByb3cpCisKKy0tIHdhcm5pbmcgdmFyaWFibGUgaXMgc2hhZG93ZWQKK1NF TEVDVCBhLCBiIEZST00gdGVzdF90YWJsZTsKK1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlhYmxlICJh IiBpcyBzaGFkb3dlZAorTElORSAxOiBTRUxFQ1QgYSwgYiBGUk9NIHRlc3RfdGFibGU7CisgICAg ICAgICAgICAgICBeCitERVRBSUw6ICBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hhZG93ZWQg YnkgY29sdW1ucywgcm91dGluZSdzIHZhcmlhYmxlcyBhbmQgcm91dGluZSdzIGFyZ3VtZW50cyB3 aXRoIHRoZSBzYW1lIG5hbWUuCisgYSAgfCBiICAKKy0tLS0rLS0tLQorIDIwIHwgMjAKKygxIHJv dykKKworLS0gbm8gd2FybmluZworU0VMRUNUIHZhcmlhYmxlKGEpIEZST00gdGVzdF90YWJsZTsK KyBhICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitBTFRFUiBUQUJMRSB0ZXN0X3RhYmxlIERST1Ag Q09MVU1OIGE7CistLSB3YXJuaW5nIC0gdmFyaWFibGUgZmVuY2UgaXMgbm90IHVzZWQKK1NFTEVD VCBhLCBiIEZST00gdGVzdF90YWJsZTsKK1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlhYmxlICJhIiBp cyBub3QgdXNlZCBpbnNpZGUgdmFyaWFibGUgZmVuY2UKK0xJTkUgMTogU0VMRUNUIGEsIGIgRlJP TSB0ZXN0X3RhYmxlOworICAgICAgICAgICAgICAgXgorREVUQUlMOiAgVGhlIGNvbGxpc2lvbiBv ZiBzZXNzaW9uIHZhcmlhYmxlJyBuYW1lcyBhbmQgY29sdW1uIG5hbWVzIGlzIHBvc3NpYmxlLgor IGEgIHwgYiAgCistLS0tKy0tLS0KKyAxMCB8IDIwCisoMSByb3cpCisKKy0tIG5vIHdhcm5pbmcK K1NFTEVDVCB2YXJpYWJsZShhKSwgYiBGUk9NIHRlc3RfdGFibGU7CisgYSAgfCBiICAKKy0tLS0r LS0tLQorIDEwIHwgMjAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSBhOworRFJPUCBUQUJMRSB0 ZXN0X3RhYmxlOworRFJPUCBTQ0hFTUEgdGVzdHZhcjsKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19h bWJpZ3VpdHlfd2FybmluZyBUTyBERUZBVUxUOworU0VUIHNlc3Npb25fdmFyaWFibGVzX3VzZV9m ZW5jZV93YXJuaW5nX2d1YXJkIFRPIERFRkFVTFQ7CitTRVQgc2VhcmNoX3BhdGggVE8gREVGQVVM VDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCBmOTNj NTUyNDIwMC4uOTRkMzUzYjU4MGIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nl c3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwKQEAgLTEzNTQsMyArMTM1NCw0NCBAQCBTRVQgc2Vzc2lvbl92YXJpYWJsZXNf YW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOwogCiBEUk9QIFRBQkxFIHB1YmxpYy54eHRhYjsKIERS T1AgU0NIRU1BIHh4dGFiIENBU0NBREU7CisKKy0tIHRlc3Qgc2Vzc2lvbl92YXJpYWJsZXNfdXNl X2ZlbmNlX3dhcm5pbmdfZ3VhcmQKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2Fy bmluZyBUTyBvbjsKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFy ZCBUTyBvbjsKKworQ1JFQVRFIFNDSEVNQSB0ZXN0dmFyOworCitTRVQgc2VhcmNoX3BhdGggVE8g J3Rlc3R2YXInOworCitDUkVBVEUgVkFSSUFCTEUgYSBBUyBpbnQ7CitMRVQgYSA9IDEwOworCitD UkVBVEUgVEFCTEUgdGVzdF90YWJsZShhIGludCwgYiBpbnQpOworCitJTlNFUlQgSU5UTyB0ZXN0 X3RhYmxlIFZBTFVFUygyMCwgMjApOworCistLSBubyB3YXJuaW5nCitTRUxFQ1QgYTsKKworLS0g d2FybmluZyB2YXJpYWJsZSBpcyBzaGFkb3dlZAorU0VMRUNUIGEsIGIgRlJPTSB0ZXN0X3RhYmxl OworCistLSBubyB3YXJuaW5nCitTRUxFQ1QgdmFyaWFibGUoYSkgRlJPTSB0ZXN0X3RhYmxlOwor CitBTFRFUiBUQUJMRSB0ZXN0X3RhYmxlIERST1AgQ09MVU1OIGE7CisKKy0tIHdhcm5pbmcgLSB2 YXJpYWJsZSBmZW5jZSBpcyBub3QgdXNlZAorU0VMRUNUIGEsIGIgRlJPTSB0ZXN0X3RhYmxlOwor CistLSBubyB3YXJuaW5nCitTRUxFQ1QgdmFyaWFibGUoYSksIGIgRlJPTSB0ZXN0X3RhYmxlOwor CitEUk9QIFZBUklBQkxFIGE7CitEUk9QIFRBQkxFIHRlc3RfdGFibGU7CisKK0RST1AgU0NIRU1B IHRlc3R2YXI7CisKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBE RUZBVUxUOworU0VUIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkIFRP IERFRkFVTFQ7CitTRVQgc2VhcmNoX3BhdGggVE8gREVGQVVMVDsKLS0gCjIuNDcuMQoK --000000000000f297a7062b2456dc Content-Type: text/x-patch; charset="US-ASCII"; name="v20250107-0007-GUC-session_variables_ambiguity_warning.patch" Content-Disposition: attachment; filename="v20250107-0007-GUC-session_variables_ambiguity_warning.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5mz6boe15 RnJvbSBlMTM5ZGE0ZDY5YmJhNjc5MzhiMjkyMTEyNTViZDEzN2QyMDZiMDQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMjEgTWF5IDIwMjQgMTc6NTU6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIDA3 LzIyXSBHVUMgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcKCkluc2lkZSBhbiBx dWVyeSB0aGUgc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkLiBUaGlzIGJlaGF2aW91 ciBpcyBieSBkZXNpZ24sCmJlY2F1c2UgdGhpcyBlbnN1cmluZyBzbyBuZXcgdmFyaWFibGVzIGRv ZXNuJ3QgYnJlYWsgZXhpc3RpbmcgcXVlcmllcy4gQnV0IHRoaXMKYmVoYXZpb3VyIGNhbiBiZSBj b25mdXNpbmcsIGJlY2F1c2Ugc2hhZG93aW5nIGlzIHF1aWV0LgoKV2hlbiBuZXcgR1VDIHNlc3Np b25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIGlzIG9uLCB0aGVuIHRoZSB3YXJuaW5nCmlz IGRpc3BsYXllZCwgd2hlbiBzb21lIHNlc3Npb24gdmFyaWFibGUgY2FuIGJlIHVzZWQsIGJ1dCBp dCBpcyBub3QgdXNlZApkdWUgc2hhZG93aW5nLiBUaGlzIGZlYXR1cmUgc2hvdWxkIHRvIGhlbHAg d2l0aCBpbnZlc3RpZ2F0aW9uIG9mIHVuZXhwZWN0ZWQKYmVoYXZpb3VyLgoKTm90ZTogUExwZ1NR TCBoYXMgYW4gb3B0aW9uIHRoYXQgY29udHJvbHMgcHJpb3JpdHkgb2YgaWRlbnRpZmllcidzIHNw YWNlcwooU1FMIG9yIFBMcGdTUUwpLiBEZWZhdWx0IGJlaGF2aW91ciBkb2Vzbid0IGFsbG93cyBj b2xsaXNpb25zLiBJIGJlbGlldmUKdGhpcyBkZWZhdWx0IGlzIHRoZSBiZXN0LiBJIGNhbm5vdCB0 byBpbXBsZW1lbnQgc2ltaWxhciB2ZXJ5IHN0cmljdApiZWhhdmlvdXIgdG8gc2Vzc2lvbiB2YXJp YWJsZXMsIGJlY2F1c2Ugb25lIHVuaGFwcHkgbmFtZWQgc2Vzc2lvbiB2YXJpYWJsZQpjYW4gYnJl YWtzIGFuIGFwcGxpY2F0aW9ucy4gVGhlIHByb2JsZW1zIHJlbGF0ZWQgdG8gYmFkbHkgbmFtZWQg UExwZ1NRTCdzCnZhcmlibGUgaXMgbGltaXR0ZWQganVzdCB0byBvbmx5IG9uZSByb3V0aW5lLgot LS0KIGRvYy9zcmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8IDYwICsr KysrKysrKysrKysrKysrKysKIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAg ICAgICAgICB8IDExICsrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAg ICAgICAgICB8IDQ5ICsrKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNf dGFibGVzLmMgICAgICAgICAgIHwgIDkgKysrCiBzcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3Rn cmVzcWwuY29uZi5zYW1wbGUgfCAgMSArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5o ICAgICAgICAgICAgICAgfCAgMSArCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92 YXJpYWJsZS5vdXQgfCAzMyArKysrKysrKysrCiAuLi4vc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25f dmFyaWFibGUuc3FsICAgICAgfCAyOSArKysrKysrKysKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dCAgICB8IDI2ICsrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyNiArKysrKysrKwogMTAgZmlsZXMgY2hhbmdl ZCwgMjQxIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4IDc0MGZm NWQ1MDQ0Li41NzY2Y2Q2MjM0YSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbApAQCAtMTA4MDYsNiArMTA4MDYsNjYgQEAg ZHluYW1pY19saWJyYXJ5X3BhdGggPSAnQzpcdG9vbHNccG9zdGdyZXNxbDtIOlxteV9wcm9qZWN0 XGxpYjskbGliZGlyJwogICAgICAgPC9saXN0aXRlbT4KICAgICAgPC92YXJsaXN0ZW50cnk+CiAK KyAgICAgPHZhcmxpc3RlbnRyeSBpZD0iZ3VjLXNlc3Npb24tdmFyaWFibGVzLWFtYmlndWl0eS13 YXJuaW5nIiB4cmVmbGFiZWw9InNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIj4K KyAgICAgIDx0ZXJtPjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5n PC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCisgICAgICA8aW5kZXh0ZXJtPgorICAg ICAgIDxwcmltYXJ5Pjx2YXJuYW1lPnNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5n PC92YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgIDwvaW5k ZXh0ZXJtPgorICAgICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgor ICAgICAgICBXaGVuIG9uLCBhIHdhcm5pbmcgaXMgcmFpc2VkIHdoZW4gYW55IGlkZW50aWZpZXIg aW4gYSBxdWVyeSBjb3VsZCBiZQorICAgICAgICB1c2VkIGFzIGJvdGggYSBjb2x1bW4gaWRlbnRp Zmllciwgcm91dGluZSB2YXJpYWJsZSBvciBhIHNlc3Npb24KKyAgICAgICAgdmFyaWFibGUgaWRl bnRpZmllci4gVGhlIGRlZmF1bHQgaXMgPGxpdGVyYWw+b2ZmPC9saXRlcmFsPi4KKyAgICAgICA8 L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBz aGFkb3dlZCBieSBjb2x1bW4gcmVmZXJlbmNlcyBpbiBhIHF1ZXJ5LCB0aGlzCisgICAgICAgIGlz IGFuIGV4cGVjdGVkIGJlaGF2aW9yLiAgUHJldmlvdXNseSB3b3JraW5nIHF1ZXJpZXMgc2hvdWxk bid0IGVycm9yIG91dAorICAgICAgICBieSBjcmVhdGluZyBhbnkgc2Vzc2lvbiB2YXJpYWJsZSwg c28gc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGFsd2F5cyBzaGFkb3dlZAorICAgICAgICBpZiBhbiBp ZGVudGlmaWVyIGlzIGFtYmlndW91cy4gIFZhcmlhYmxlcyBzaG91bGQgYmUgcmVmZXJlbmNlZCB1 c2luZworICAgICAgICBhbnVuYW1iaWd1b3VzIGlkZW50aWZpZXIgd2l0aG91dCBhbnkgcG9zc2li aWxpdHkgZm9yIGEgY29sbGlzaW9uIHdpdGgKKyAgICAgICAgaWRlbnRpZmllciBvZiBvdGhlciBk YXRhYmFzZSBvYmplY3RzIChjb2x1bW4gbmFtZXMgb3IgcmVjb3JkIGZpZWxkcyBuYW1lcykuCisg ICAgICAgIFRoZSB3YXJuaW5nIG1lc3NhZ2VzIGVtaXR0ZWQgd2hlbiBlbmFibGluZyA8dmFybmFt ZT5zZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZzwvdmFybmFtZT4KKyAgICAgICAg Y2FuIGhlbHAgZmluZGluZyBzdWNoIGlkZW50aWZpZXIgY29sbGlzaW9uLgorPHByb2dyYW1saXN0 aW5nPgorQ1JFQVRFIFRBQkxFIGZvbyhhIGludCk7CitJTlNFUlQgSU5UTyBmb28gVkFMVUVTKDEw KTsKK0NSRUFURSBWQVJJQUJMRSBhIGludDsKK0xFVCBhID0gMTAwOworU0VMRUNUIGEgRlJPTSBm b287Cis8L3Byb2dyYW1saXN0aW5nPgorCis8c2NyZWVuPgorIGEKKy0tLS0KKyAxMAorKDEgcm93 KQorPC9zY3JlZW4+CisKKzxwcm9ncmFtbGlzdGluZz4KK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19h bWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKK1NFTEVDVCBhIEZST00gZm9vOworPC9wcm9ncmFtbGlz dGluZz4KKworPHNjcmVlbj4KK1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlhYmxlICJhIiBpcyBzaGFk b3dlZAorTElORSAxOiBTRUxFQ1QgYSBGUk9NIGZvbzsKKyAgICAgICAgICAgICAgIF4KK0RFVEFJ TDogIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5l J3MgdmFyaWFibGVzIGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUgbmFtZS4K KyBhCistLS0tCisgMTAKKygxIHJvdykKKzwvc2NyZWVuPgorICAgICAgIDwvcGFyYT4KKyAgICAg ICA8cGFyYT4KKyAgICAgICAgVGhpcyBmZWF0dXJlIGNhbiBzaWduaWZpY2FudGx5IGluY3JlYXNl IGxvZyBzaXplLCBzbyBpdCdzIGRpc2FibGVkIGJ5CisgICAgICAgIGRlZmF1bHQuICBGb3IgdGVz dGluZyBvciBkZXZlbG9wbWVudCBlbnZpcm9ubWVudHMgaXQncyByZWNvbW1lbmRlZCB0bworICAg ICAgICBlbmFibGUgaXQgaWYgeW91IHVzZSBzZXNzaW9uIHZhcmlhYmxlcy4KKyAgICAgICA8L3Bh cmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFy bGlzdGVudHJ5IGlkPSJndWMtc3RhbmRhcmQtY29uZm9ybWluZy1zdHJpbmdzIiB4cmVmbGFiZWw9 InN0YW5kYXJkX2NvbmZvcm1pbmdfc3RyaW5ncyI+CiAgICAgICA8dGVybT48dmFybmFtZT5zdGFu ZGFyZF9jb25mb3JtaW5nX3N0cmluZ3M8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikK ICAgICAgIDxpbmRleHRlcm0+PHByaW1hcnk+c3RyaW5nczwvcHJpbWFyeT48c2Vjb25kYXJ5PnN0 YW5kYXJkIGNvbmZvcm1pbmc8L3NlY29uZGFyeT48L2luZGV4dGVybT4KZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAppbmRleCAxMDBkNGU3 ZmNkOS4uYWQxMmUzNjQzNjMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbAorKysg Yi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTU0MDAsNiArNTQwMCwxNyBAQCBTRUxFQ1QgY3Vy cmVudF91c2VyX2lkOwogICAgIHRoZSBzY2hlbWEgbmFtZSwgY29sdW1ucyBjYW4gdXNlIHRhYmxl IGFsaWFzZXMsIHJvdXRpbmUgdmFyaWFibGVzIGNhbiB1c2UKICAgICBibG9jayBsYWJlbHMsIGFu ZCByb3V0aW5lIGFyZ3VtZW50cyBjYW4gdXNlIHRoZSByb3V0aW5lIG5hbWUuCiAgICA8L3BhcmE+ CisKKyAgIDxwYXJhPgorICAgIFdoZW4gYSBxdWVyeSBjb250YWlucyBpZGVudGlmaWVycyBvciBx dWFsaWZpZWQgaWRlbnRpZmllcnMgdGhhdCBjb3VsZCBiZQorICAgIHVzZWQgYXMgYm90aCBhIHNl c3Npb24gdmFyaWFibGUgaWRlbnRpZmllcnMgYW5kIGFzIGNvbHVtbiBpZGVudGlmaWVyLAorICAg IHRoZW4gdGhlIGNvbHVtbiBpZGVudGlmaWVyIGlzIHByZWZlcnJlZCBldmVyeSB0aW1lLiAgV2Fy bmluZ3MgY2FuIGJlCisgICAgZW1pdHRlZCB3aGVuIHRoaXMgc2l0dWF0aW9uIGhhcHBlbnMgYnkg ZW5hYmxpbmcgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXIgPHhyZWYKKyAgICBsaW5rZW5kPSJndWMt c2Vzc2lvbi12YXJpYWJsZXMtYW1iaWd1aXR5LXdhcm5pbmciLz4uIFVzZXIgY2FuIGV4cGxpY2l0 bHkKKyAgICBxdWFsaWZ5IHRoZSBzb3VyY2Ugb2JqZWN0IGJ5IHN5bnRheCA8bGl0ZXJhbD50YWJs ZS5jb2x1bW48L2xpdGVyYWw+IG9yCisgICAgPGxpdGVyYWw+c2NoZW1hLnZhcmlhYmxlPC9saXRl cmFsPi4gSXQgaXMgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG8gcmVuYW1lCisgICAgc2hhZG93ZWQg dmFyaWFibGVzIG9yIHVzZSBxdWFsaWZpZWQgbmFtZXMgYWx3YXlzLgorICAgPC9wYXJhPgogICA8 L3NlY3QxPgogCiAgPHNlY3QxIGlkPSJkZGwtb3RoZXJzIj4KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5j CmluZGV4IGFhMDA0MWZmOWQzLi40ZTc4NTI5YzQwZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5j CkBAIC00NSw2ICs0NSw3IEBACiAKIC8qIEdVQyBwYXJhbWV0ZXJzICovCiBib29sCQlUcmFuc2Zv cm1fbnVsbF9lcXVhbHMgPSBmYWxzZTsKK2Jvb2wJCXNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0 eV93YXJuaW5nID0gZmFsc2U7CiAKIAogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUV4cHJSZWN1cnNl KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcik7CkBAIC05NjAsMTEgKzk2MSw1MSBAQCB0 cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJ CSAqCiAJCSAqIFNFTEVDVCBmb28uYSwgZm9vLmIsIGZvby5jIEZST00gZm9vOwogCQkgKgotCQkg KiBIb3dldmVyLCB0aGF0IGlzIHZlcnkgY29uZnVzaW5nLCBzbyB3ZSBkaXNhbGxvdyBpdC4gIFdl IGRvbid0IHRyeSB0bwotCQkgKiBpZGVudGlmeSBhIHZhcmlhYmxlIGlmIHdlIGtub3cgdGhhdCBp dCB3b3VsZCBiZSBzaGFkb3dlZC4KLQkJICogLS0tLS0KKwkJICogSG93ZXZlciwgdGhhdCBpcyB2 ZXJ5IGNvbmZ1c2luZywgc28gd2UgZGlzYWxsb3cgaXQuCisJCSAqCisJCSAqIFdoZW4gc2Vzc2lv bl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgaXMgcmVxdWVzdGVkLCB0aGVuIHdlCisJCSAq IG5lZWQgdG8gaWRlbnRpZnkgYSB2YXJpYWJsZSBhbHRob3VnaCB3ZSBrbm93LCBzbyB0aGlzIHZh cmlhYmxlCisJCSAqIHdvdWxkIGJlIHNoYWRvd2VkLgogCQkgKi8KLQkJaWYgKCFub2RlICYmICEo cmVsbmFtZSAmJiBjcmVyciA9PSBDUkVSUl9OT19DT0xVTU4pKQorCQlpZiAobm9kZSB8fCAocmVs bmFtZSAmJiBjcmVyciA9PSBDUkVSUl9OT19DT0xVTU4pKQorCQl7CisJCQkvKgorCQkJICogSW4g dGhpcyBwYXRoIHdlIGp1c3QgdHJ5IChpZiBpdCBpcyB3YW50ZWQpIGRldGVjdCBpZiBzZXNzaW9u CisJCQkgKiB2YXJpYWJsZSBpcyBzaGFkb3dlZC4KKwkJCSAqLworCQkJaWYgKHNlc3Npb25fdmFy aWFibGVzX2FtYmlndWl0eV93YXJuaW5nKQorCQkJeworCQkJCS8qCisJCQkJICogVGhlIEFjY2Vz c1NoYXJlTG9jayBpcyBjcmVhdGVkIG9uIHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZS4KKwkJCQkg KiBUaGUgbG9jayB3aWxsIGJlIGtlcHQgZm9yIHRoZSB3aG9sZSB0cmFuc2FjdGlvbi4KKwkJCQkg Ki8KKwkJCQl2YXJpZCA9IElkZW50aWZ5VmFyaWFibGUoY3JlZi0+ZmllbGRzLCAmYXR0cm5hbWUs ICZub3RfdW5pcXVlLCB0cnVlKTsKKworCQkJCWlmIChPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJCQl7 CisJCQkJCS8qIHRoaXMgcGF0aCB3aWxsIGVuZGluZyBieSBXQVJOSU5HLiBVbmxvY2sgdmFyaWFi bGUgZmlyc3QgKi8KKwkJCQkJVW5sb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklk LCB2YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCQkJCQlpZiAobm9kZSkKKwkJCQkJCWVy ZXBvcnQoV0FSTklORywKKwkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9BTUJJR1VPVVNfQ09MVU1O KSwKKwkJCQkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgaXMgc2hhZG93ZWQi LAorCQkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcoY3JlZi0+ZmllbGRzKSksCisJCQkJCQkJCSBl cnJkZXRhaWwoIlNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCBy b3V0aW5lJ3MgdmFyaWFibGVzIGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUg bmFtZS4iKSwKKwkJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGNyZWYtPmxvY2F0 aW9uKSkpOworCQkJCQllbHNlCisJCQkJCQkvKiBzZXNzaW9uIHZhcmlhYmxlIGlzIHNoYWRvd2Vk IGJ5IFJURSAqLworCQkJCQkJZXJlcG9ydChXQVJOSU5HLAorCQkJCQkJCQkoZXJyY29kZShFUlJD T0RFX0FNQklHVU9VU19DT0xVTU4pLAorCQkJCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxl IFwiJXMuJXNcIiBpcyBzaGFkb3dlZCIsCisJCQkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdl dF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCQkJCWdldF9zZXNz aW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKSwKKwkJCQkJCQkJIGVycmRldGFpbCgiU2Vzc2lvbiB2 YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IHRhYmxlcyBvciB0YWJsZSdzIGFsaWFzZXMgd2l0 aCB0aGUgc2FtZSBuYW1lLiIpLAorCQkJCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwg Y3JlZi0+bG9jYXRpb24pKSk7CisJCQkJfQorCQkJfQorCQl9CisJCWVsc2UKIAkJewogCQkJLyog dGFrZXMgYW4gQWNjZXNzU2hhcmVMb2NrIG9uIHRoZSBzZXNzaW9uIHZhcmlhYmxlICovCiAJCQl2 YXJpZCA9IElkZW50aWZ5VmFyaWFibGUoY3JlZi0+ZmllbGRzLCAmYXR0cm5hbWUsICZub3RfdW5p cXVlLCBmYWxzZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJs ZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCmluZGV4IGM5ZDhjZDc5 NmE4Li42NDdmYTFmNjRjZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNf dGFibGVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTE2 MDUsNiArMTYwNSwxNSBAQCBzdHJ1Y3QgY29uZmlnX2Jvb2wgQ29uZmlndXJlTmFtZXNCb29sW10g PQogCQlmYWxzZSwKIAkJTlVMTCwgTlVMTCwgTlVMTAogCX0sCisJeworCQl7InNlc3Npb25fdmFy aWFibGVzX2FtYmlndWl0eV93YXJuaW5nIiwgUEdDX1VTRVJTRVQsIENMSUVOVF9DT05OX1NUQVRF TUVOVCwKKwkJCWdldHRleHRfbm9vcCgiUmFpc2UgYSB3YXJuaW5nIHdoZW4gcmVmZXJlbmNlIHRv IGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBhbWJpZ3VvdXMuIiksCisJCQlOVUxMCisJCX0sCisJCSZz ZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZywKKwkJZmFsc2UsCisJCU5VTEwsIE5V TEwsIE5VTEwKKwl9LAogCXsKIAkJeyJkZWZhdWx0X3RyYW5zYWN0aW9uX3JlYWRfb25seSIsIFBH Q19VU0VSU0VULCBDTElFTlRfQ09OTl9TVEFURU1FTlQsCiAJCQlnZXR0ZXh0X25vb3AoIlNldHMg dGhlIGRlZmF1bHQgcmVhZC1vbmx5IHN0YXR1cyBvZiBuZXcgdHJhbnNhY3Rpb25zLiIpLApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4IGIyYmM0 MzM4M2RiLi4yNGNkNmEyY2Y1MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9w b3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdy ZXNxbC5jb25mLnNhbXBsZQpAQCAtNzE3LDYgKzcxNyw3IEBAIGF1dG92YWN1dW1fd29ya2VyX3Ns b3RzID0gMTYJIyBhdXRvdmFjdXVtIHdvcmtlciBzbG90cyB0byBhbGxvY2F0ZQogI2RlZmF1bHRf dHJhbnNhY3Rpb25fcmVhZF9vbmx5ID0gb2ZmCiAjZGVmYXVsdF90cmFuc2FjdGlvbl9kZWZlcnJh YmxlID0gb2ZmCiAjc2Vzc2lvbl9yZXBsaWNhdGlvbl9yb2xlID0gJ29yaWdpbicKKyNzZXNzaW9u X3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyA9IG9mZgogI3N0YXRlbWVudF90aW1lb3V0ID0g MAkJCQkjIGluIG1pbGxpc2Vjb25kcywgMCBpcyBkaXNhYmxlZAogI3RyYW5zYWN0aW9uX3RpbWVv dXQgPSAwCQkJIyBpbiBtaWxsaXNlY29uZHMsIDAgaXMgZGlzYWJsZWQKICNsb2NrX3RpbWVvdXQg PSAwCQkJCSMgaW4gbWlsbGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4 cHIuaAppbmRleCBlZmJhZmY4ZTcxMC4uZDIyMDkwNzAxODEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3BhcnNlci9wYXJzZV9leHByLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4 cHIuaApAQCAtMTcsNiArMTcsNyBAQAogCiAvKiBHVUMgcGFyYW1ldGVycyAqLwogZXh0ZXJuIFBH RExMSU1QT1JUIGJvb2wgVHJhbnNmb3JtX251bGxfZXF1YWxzOworZXh0ZXJuIFBHRExMSU1QT1JU IGJvb2wgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmc7CiAKIGV4dGVybiBOb2Rl ICp0cmFuc2Zvcm1FeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgUGFyc2VFeHBy S2luZCBleHByS2luZCk7CiAKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3Rl ZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVj dGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKaW5kZXggYWI3Nzk5MDA1OTYuLmE2NTIz ZjdhZmUyIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9z ZXNzaW9uX3ZhcmlhYmxlLm91dAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxw Z3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dApAQCAtMzU0LDYgKzM1NCwzOSBAQCAkJDsKIE5PVElD RTogIHNlc3Npb24gdmFyaWFibGUgaXMgMTAwCiBOT1RJQ0U6ICBwbHBnc3FsIHZhcmlhYmxlIGlz IDEwMDAKIE5PVElDRTogIHZhcmlhYmxlIGlzIDEwMDAKKy0tIGFnYWludCB3aXRoIHNlc3Npb25f dmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nKG9uKQorU0VUIHNlc3Npb25fdmFyaWFibGVzX2Ft YmlndWl0eV93YXJuaW5nIFRPIG9uOworRE8gJCQKKzw8bXlibG9jaz4+CitERUNMQVJFIHBscGdz cWxfc3ZfdmFyMSBpbnQ7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTAwOworCisg IC0tIHNob3VsZCBiZSBvayB3aXRob3V0IHdhcm5pbmcKKyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEw MDA7CisKKyAgLS0gc2hvdWxkIGJlIG9rIHdpdGhvdXQgd2FybmluZworICAtLSBwcmludCAxMDA7 CisgIFJBSVNFIE5PVElDRSAnc2Vzc2lvbiB2YXJpYWJsZSBpcyAlJywgcHVibGljLnBscGdzcWxf c3ZfdmFyMTsKKworICAtLSBzaG91bGQgYmUgb2sgd2l0aG91dCB3YXJuaW5nCisgIC0tIHByaW50 IDEwMDAKKyAgUkFJU0UgTk9USUNFICdwbHBnc3FsIHZhcmlhYmxlIGlzICUnLCBteWJsb2NrLnBs cGdzcWxfc3ZfdmFyMTsKKworICAtLSBzaG91bGQgdG8gcHJpbnQgcGxwZ3NxbCB2YXJpYWJsZSB3 aXRoIHdhcm5pbmcKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJQ0UgJ3ZhcmlhYmxlIGlz ICUnLCBwbHBnc3FsX3N2X3ZhcjE7CitFTkQ7CiskJDsKK05PVElDRTogIHNlc3Npb24gdmFyaWFi bGUgaXMgMTAwCitOT1RJQ0U6ICBwbHBnc3FsIHZhcmlhYmxlIGlzIDEwMDAKK1dBUk5JTkc6ICBz ZXNzaW9uIHZhcmlhYmxlICJwbHBnc3FsX3N2X3ZhcjEiIGlzIHNoYWRvd2VkCitMSU5FIDE6IHBs cGdzcWxfc3ZfdmFyMQorICAgICAgICBeCitERVRBSUw6ICBTZXNzaW9uIHZhcmlhYmxlcyBjYW4g YmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGluZSdzIHZhcmlhYmxlcyBhbmQgcm91dGluZSdz IGFyZ3VtZW50cyB3aXRoIHRoZSBzYW1lIG5hbWUuCitRVUVSWTogIHBscGdzcWxfc3ZfdmFyMQor Tk9USUNFOiAgdmFyaWFibGUgaXMgMTAwMAorU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0 eV93YXJuaW5nIFRPIG9mZjsKIERST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOwogLS0gdGhl IHZhbHVlIHNob3VsZCBub3QgYmUgY29ycnVwdGVkCiBDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9z dl92IHRleHQ7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vz c2lvbl92YXJpYWJsZS5zcWwgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lv bl92YXJpYWJsZS5zcWwKaW5kZXggYTNjYzI2NGNmMzguLjliOGU5MGU4MWZhIDEwMDY0NAotLS0g YS9zcmMvcGwvcGxwZ3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKKysr IGIvc3JjL3BsL3BscGdzcWwvc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsCkBA IC0yNjAsNiArMjYwLDM1IEBAIEJFR0lOCiBFTkQ7CiAkJDsKIAorLS0gYWdhaW50IHdpdGggc2Vz c2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcob24pCisKK1NFVCBzZXNzaW9uX3Zhcmlh Ymxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKKworRE8gJCQKKzw8bXlibG9jaz4+CitERUNM QVJFIHBscGdzcWxfc3ZfdmFyMSBpbnQ7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0g MTAwOworCisgIC0tIHNob3VsZCBiZSBvayB3aXRob3V0IHdhcm5pbmcKKyAgcGxwZ3NxbF9zdl92 YXIxIDo9IDEwMDA7CisKKyAgLS0gc2hvdWxkIGJlIG9rIHdpdGhvdXQgd2FybmluZworICAtLSBw cmludCAxMDA7CisgIFJBSVNFIE5PVElDRSAnc2Vzc2lvbiB2YXJpYWJsZSBpcyAlJywgcHVibGlj LnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBzaG91bGQgYmUgb2sgd2l0aG91dCB3YXJuaW5nCisg IC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNFICdwbHBnc3FsIHZhcmlhYmxlIGlzICUnLCBt eWJsb2NrLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBzaG91bGQgdG8gcHJpbnQgcGxwZ3NxbCB2 YXJpYWJsZSB3aXRoIHdhcm5pbmcKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJQ0UgJ3Zh cmlhYmxlIGlzICUnLCBwbHBnc3FsX3N2X3ZhcjE7CitFTkQ7CiskJDsKKworU0VUIHNlc3Npb25f dmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9mZjsKKwogRFJPUCBWQVJJQUJMRSBwbHBn c3FsX3N2X3ZhcjE7CiAKIC0tIHRoZSB2YWx1ZSBzaG91bGQgbm90IGJlIGNvcnJ1cHRlZApkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCBk ZDEzOGJiZGRkZC4uOTQ3NDYyMzY1OTggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0xNTE2LDYgKzE1MTYsOSBAQCBDUkVBVEUgVEFC TEUgdmFydGVzdF9mb28oYSBpbnQsIGIgaW50KTsKIElOU0VSVCBJTlRPIHZhcnRlc3RfZm9vIFZB TFVFUygxMCwyMCksICgzMCw0MCk7CiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJ0ZXN0X2Zv bzsKIExFVCB2YXIxID0gKDEwMCwyMDApOworLS0gbm8gdmFyaWFibGUgaXMgc2hhZG93ZWQgaGVy ZQorLS0gbm8gd2FybmluZyBleHBlY3RlZAorU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0 eV93YXJuaW5nIFRPIG9uOwogLS0gc2hvdWxkIHRvIGZhaWwKIFNFTEVDVCB2YXIxLiogRlJPTSB2 YXJ0ZXN0X2ZvbzsKIEVSUk9SOiAgbWlzc2luZyBGUk9NLWNsYXVzZSBlbnRyeSBmb3IgdGFibGUg InZhcjEiCkBAIC0xNTQxLDYgKzE1NDQsNyBAQCBTRUxFQ1QgY291bnQodmFyMS4qKSBGUk9NIHZh cnRlc3RfZm9vIHZhcjE7CiAgICAgIDIKICgxIHJvdykKIAorU0VUIHNlc3Npb25fdmFyaWFibGVz X2FtYmlndWl0eV93YXJuaW5nIFRPIG9mZjsKIFNFVCBTRUFSQ0hfUEFUSCBUTyBERUZBVUxUOwog RFJPUCBTQ0hFTUEgdmFydGVzdCBDQVNDQURFOwogTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAy IG90aGVyIG9iamVjdHMKQEAgLTE5MzUsMyArMTkzOSwyNSBAQCBTRUxFQ1QgdmFyMTsKICgxIHJv dykKIAogRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIyOworLS0gdGVzdCBzZXNzaW9uX3ZhcmlhYmxl c19hbWJpZ3VpdHlfd2FybmluZworQ1JFQVRFIFNDSEVNQSB4eHRhYjsKK0NSRUFURSBWQVJJQUJM RSB4eHRhYi5hdmFyIGludDsKK0NSRUFURSBUQUJMRSBwdWJsaWMueHh0YWIoYXZhciBpbnQpOwor SU5TRVJUIElOVE8gcHVibGljLnh4dGFiIFZBTFVFUygxKTsKK0xFVCB4eHRhYi5hdmFyID0gMjA7 CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb247CistLS0gc2hv dWxkIHRvIHJhaXNlIHdhcm5pbmcsIHNob3cgMQorU0VMRUNUIHh4dGFiLmF2YXIgRlJPTSBwdWJs aWMueHh0YWI7CitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJpYWJsZSAieHh0YWIuYXZhciIgaXMgc2hh ZG93ZWQKK0xJTkUgMTogU0VMRUNUIHh4dGFiLmF2YXIgRlJPTSBwdWJsaWMueHh0YWI7CisgICAg ICAgICAgICAgICBeCitERVRBSUw6ICBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hhZG93ZWQg YnkgY29sdW1ucywgcm91dGluZSdzIHZhcmlhYmxlcyBhbmQgcm91dGluZSdzIGFyZ3VtZW50cyB3 aXRoIHRoZSBzYW1lIG5hbWUuCisgYXZhciAKKy0tLS0tLQorICAgIDEKKygxIHJvdykKKworU0VU IHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9mZjsKK0RST1AgVEFCTEUg cHVibGljLnh4dGFiOworRFJPUCBTQ0hFTUEgeHh0YWIgQ0FTQ0FERTsKK05PVElDRTogIGRyb3Ag Y2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSB4eHRhYi5hdmFyCmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggNzRmY2VkYzhmMGQuLmY5M2M1NTI0MjAw IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xMDcz LDYgKzEwNzMsMTAgQEAgSU5TRVJUIElOVE8gdmFydGVzdF9mb28gVkFMVUVTKDEwLDIwKSwgKDMw LDQwKTsKIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnRlc3RfZm9vOwogTEVUIHZhcjEgPSAo MTAwLDIwMCk7CiAKKy0tIG5vIHZhcmlhYmxlIGlzIHNoYWRvd2VkIGhlcmUKKy0tIG5vIHdhcm5p bmcgZXhwZWN0ZWQKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBv bjsKKwogLS0gc2hvdWxkIHRvIGZhaWwKIFNFTEVDVCB2YXIxLiogRlJPTSB2YXJ0ZXN0X2ZvbzsK IApAQCAtMTA4NSw2ICsxMDg5LDggQEAgU0VMRUNUIGNvdW50KHZhcjEuKikgRlJPTSB2YXJ0ZXN0 X2ZvbzsKIC0tIHNob3VsZCBiZSBvawogU0VMRUNUIGNvdW50KHZhcjEuKikgRlJPTSB2YXJ0ZXN0 X2ZvbyB2YXIxOwogCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8g b2ZmOworCiBTRVQgU0VBUkNIX1BBVEggVE8gREVGQVVMVDsKIERST1AgU0NIRU1BIHZhcnRlc3Qg Q0FTQ0FERTsKIApAQCAtMTMyOCwzICsxMzM0LDIzIEBAIEJFR0lOOyBEUk9QIFZBUklBQkxFIHZh cjE7IFJPTExCQUNLOwogU0VMRUNUIHZhcjE7CiAKIERST1AgVkFSSUFCTEUgdmFyMSwgdmFyMjsK KworLS0gdGVzdCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZworQ1JFQVRFIFND SEVNQSB4eHRhYjsKKworQ1JFQVRFIFZBUklBQkxFIHh4dGFiLmF2YXIgaW50OworCitDUkVBVEUg VEFCTEUgcHVibGljLnh4dGFiKGF2YXIgaW50KTsKKworSU5TRVJUIElOVE8gcHVibGljLnh4dGFi IFZBTFVFUygxKTsKKworTEVUIHh4dGFiLmF2YXIgPSAyMDsKKworU0VUIHNlc3Npb25fdmFyaWFi bGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9uOworLS0tIHNob3VsZCB0byByYWlzZSB3YXJuaW5n LCBzaG93IDEKK1NFTEVDVCB4eHRhYi5hdmFyIEZST00gcHVibGljLnh4dGFiOworCitTRVQgc2Vz c2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOworCitEUk9QIFRBQkxFIHB1 YmxpYy54eHRhYjsKK0RST1AgU0NIRU1BIHh4dGFiIENBU0NBREU7Ci0tIAoyLjQ3LjEKCg== --000000000000f297a7062b2456dc Content-Type: text/x-patch; charset="US-ASCII"; name="v20250107-0006-plpgsql-tests.patch" Content-Disposition: attachment; filename="v20250107-0006-plpgsql-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5mz6boz16 RnJvbSAxZGE5NmU3ODRlMWRlZTU5MmE2NDEwZDg1MGQwNDdhYTY1MjY2N2I4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNDowNjowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDYvMjJdIHBscGdzcWwgdGVzdHMKCi0tLQogc3JjL3BsL3BscGdzcWwvc3JjL01ha2VmaWxlICAg ICAgICAgICAgICAgICAgIHwgICAzICstCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lv bl92YXJpYWJsZS5vdXQgfCAzODIgKysrKysrKysrKysrKysrKysrCiBzcmMvcGwvcGxwZ3NxbC9z cmMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL3NyYy9zcWwvcGxwZ3Nx bF9zZXNzaW9uX3ZhcmlhYmxlLnNxbCAgICAgIHwgMjg5ICsrKysrKysrKysrKysKIDQgZmlsZXMg Y2hhbmdlZCwgNjc0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxl Lm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9z ZXNzaW9uX3ZhcmlhYmxlLnNxbAoKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9NYWtl ZmlsZSBiL3NyYy9wbC9wbHBnc3FsL3NyYy9NYWtlZmlsZQppbmRleCA2M2NiOTZmYWUzZS4uYmJj YWUyN2Q0MjIgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9NYWtlZmlsZQorKysgYi9z cmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUKQEAgLTM1LDcgKzM1LDggQEAgUkVHUkVTU19PUFRT ID0gLS1kYm5hbWU9JChQTF9URVNUREIpCiBSRUdSRVNTID0gcGxwZ3NxbF9hcnJheSBwbHBnc3Fs X2NhY2hlIHBscGdzcWxfY2FsbCBwbHBnc3FsX2NvbnRyb2wgXAogCXBscGdzcWxfY29weSBwbHBn c3FsX2RvbWFpbiBwbHBnc3FsX21pc2MgXAogCXBscGdzcWxfcmVjb3JkIHBscGdzcWxfc2ltcGxl IHBscGdzcWxfdHJhbnNhY3Rpb24gXAotCXBscGdzcWxfdHJhcCBwbHBnc3FsX3RyaWdnZXIgcGxw Z3NxbF92YXJwcm9wcworCXBscGdzcWxfdHJhcCBwbHBnc3FsX3RyaWdnZXIgcGxwZ3NxbF92YXJw cm9wcyBcCisJcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlCiAKICMgd2hlcmUgdG8gZmluZCBnZW5f a2V5d29yZGxpc3QucGwgYW5kIHN1YnNpZGlhcnkgZmlsZXMKIFRPT0xTRElSID0gJCh0b3Bfc3Jj ZGlyKS9zcmMvdG9vbHMKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9w bHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVk L3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLmFiNzc5OTAwNTk2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3BsL3BscGdz cWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKQEAgLTAsMCArMSwz ODIgQEAKKy0tIHRlc3Qgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBWQVJJQUJMRSBwbHBn c3FsX3N2X3ZhciBBUyBudW1lcmljOworTEVUIHBscGdzcWxfc3ZfdmFyID0gcGkoKTsKKy0tIHBh c3NpbmcgcGFyYW1ldGVycyB0byBETyBibG9jaworRE8gJCQKK0JFR0lOCisgIFJBSVNFIE5PVElD RSAndmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXI7CitFTkQ7 CiskJDsKK05PVElDRTogIHZhbHVlIG9mIHNlc3Npb24gdmFyaWFibGUgaXMgMy4xNDE1OTI2NTM1 ODk3OQorLS0gcGFzc2luZyBvdXRwdXQgZnJvbSBETyBibG9jazsKK0RPICQkCitCRUdJTgorICBM RVQgcGxwZ3NxbF9zdl92YXIgPSAyICogcGkoKTsKK0VORAorJCQ7CitTRUxFQ1QgcGxwZ3NxbF9z dl92YXIgQVMgInBpX211bHRpcGx5XzIiOworICBwaV9tdWx0aXBseV8yICAgCistLS0tLS0tLS0t LS0tLS0tLS0KKyA2LjI4MzE4NTMwNzE3OTU5CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgcGxw Z3NxbF9zdl92YXI7CistLSB0ZXN0IGFjY2VzcyBmcm9tIFBML3BnU1FMCitDUkVBVEUgVkFSSUFC TEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3Zh cjIgQVMgbnVtZXJpYzsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjMgQVMgdmFyY2hh cjsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHdyaXRlcl9mdW5jKCkKK1JFVFVSTlMgdm9p ZCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IDEwOworICBMRVQgcGxwZ3Nx bF9zdl92YXIyID0gcGkoKTsKKyAgLS0gdmVyeSBsb25nIHZhbHVlCisgIExFVCBwbHBnc3FsX3N2 X3ZhcjMgPSBmb3JtYXQoJyglcyknLCByZXBlYXQoJyonLCAxMDAwMCkpOworRU5EOworJCQgTEFO R1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYygp CitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBwbHBn c3FsX3N2X3ZhcjEgKyAxMDA7CisgIExFVCBwbHBnc3FsX3N2X3ZhcjIgPSBwbHBnc3FsX3N2X3Zh cjIgKyAxMDAwMDAwMDAwMDA7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9z dl92YXIzID0gcGxwZ3NxbF9zdl92YXIzIHx8IGZvcm1hdCgnKCVzKScsIHJlcGVhdCgnKicsIDEw MDAwKSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVO Q1RJT04gcmVhZGVyX2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBSQUlTRSBO T1RJQ0UgJ3ZhcjEgPSAlJywgcGxwZ3NxbF9zdl92YXIxOworICBSQUlTRSBOT1RJQ0UgJ3ZhcjIg PSAlJywgcGxwZ3NxbF9zdl92YXIyOworICBSQUlTRSBOT1RJQ0UgJ2xlbmd0aCBvZiB2YXIzID0g JScsIGxlbmd0aChwbHBnc3FsX3N2X3ZhcjMpOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsK Ky0tIGV4ZWN1dGUgaW4gYSB0cmFuc2FjdGlvbgorQkVHSU47CitTRUxFQ1Qgd3JpdGVyX2Z1bmMo KTsKKyB3cml0ZXJfZnVuYyAKKy0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHJl YWRlcl9mdW5jKCk7CitOT1RJQ0U6ICB2YXIxID0gMTAKK05PVElDRTogIHZhcjIgPSAzLjE0MTU5 MjY1MzU4OTc5CitOT1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDEwMDAyCisgcmVhZGVyX2Z1bmMg CistLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCB1cGRhdGVyX2Z1bmMoKTsKKyB1 cGRhdGVyX2Z1bmMgCistLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcmVhZGVy X2Z1bmMoKTsKK05PVElDRTogIHZhcjEgPSAxMTAKK05PVElDRTogIHZhcjIgPSAxMDAwMDAwMDAw MDMuMTQxNTkyNjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMjAwMDQKKyByZWFk ZXJfZnVuYyAKKy0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworRU5EOworLS0gZXhlY3V0ZSBv dXRzaWRlIG9mIGEgdHJhbnNhY3Rpb24KK1NFTEVDVCB3cml0ZXJfZnVuYygpOworIHdyaXRlcl9m dW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsK K05PVElDRTogIHZhcjEgPSAxMAorTk9USUNFOiAgdmFyMiA9IDMuMTQxNTkyNjUzNTg5NzkKK05P VElDRTogIGxlbmd0aCBvZiB2YXIzID0gMTAwMDIKKyByZWFkZXJfZnVuYyAKKy0tLS0tLS0tLS0t LS0KKyAKKygxIHJvdykKKworU0VMRUNUIHVwZGF0ZXJfZnVuYygpOworIHVwZGF0ZXJfZnVuYyAK Ky0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJfZnVuYygpOworTk9U SUNFOiAgdmFyMSA9IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAwMy4xNDE1OTI2NTM1 ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorIHJlYWRlcl9mdW5jIAorLS0t LS0tLS0tLS0tLQorIAorKDEgcm93KQorCistLSBleGVjdXRlIGluc2lkZSBhIFBML3BnU1FMIGJs b2NrCitETyAkJAorQkVHSU4KKyAgUEVSRk9STSB3cml0ZXJfZnVuYygpOworICBQRVJGT1JNIHJl YWRlcl9mdW5jKCk7CisgIFBFUkZPUk0gdXBkYXRlcl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVy X2Z1bmMoKTsKK0VORDsKKyQkOworTk9USUNFOiAgdmFyMSA9IDEwCitOT1RJQ0U6ICB2YXIyID0g My4xNDE1OTI2NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAxMDAwMgorTk9USUNF OiAgdmFyMSA9IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAwMy4xNDE1OTI2NTM1ODk3 OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorLS0gcGxhbiBjYWNoZXMgc2hvdWxk IGJlIGNvcnJlY3RseSBpbnZhbGlkYXRlZAorRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEs IHBscGdzcWxfc3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworQ1JFQVRFIFZBUklBQkxFIHBscGdz cWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIG51 bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNoYXI7CistLSBz aG91bGQgd29yayBhZ2FpbgorRE8gJCQKK0JFR0lOCisgIFBFUkZPUk0gd3JpdGVyX2Z1bmMoKTsK KyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworICBQRVJGT1JNIHVwZGF0ZXJfZnVuYygpOworICBQ RVJGT1JNIHJlYWRlcl9mdW5jKCk7CitFTkQ7CiskJDsKK05PVElDRTogIHZhcjEgPSAxMAorTk9U SUNFOiAgdmFyMiA9IDMuMTQxNTkyNjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0g MTAwMDIKK05PVElDRTogIHZhcjEgPSAxMTAKK05PVElDRTogIHZhcjIgPSAxMDAwMDAwMDAwMDMu MTQxNTkyNjUzNTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMjAwMDQKK0RST1AgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3ZfdmFyMzsK K0RST1AgRlVOQ1RJT04gd3JpdGVyX2Z1bmM7CitEUk9QIEZVTkNUSU9OIHJlYWRlcl9mdW5jOwor RFJPUCBGVU5DVElPTiB1cGRhdGVyX2Z1bmM7CistLSBhbm90aGVyIGNoZWNrIG9mIGNvcnJlY3Qg cGxhbiBjYWNoZSBpbnZhbGlkYXRpb24KK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEg QVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBBUyBpbnRbXTsKK0NSRUFU RSBPUiBSRVBMQUNFIEZVTkNUSU9OIHRlc3RfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0RF Q0xBUkUgdiBpbnRbXSBERUZBVUxUICd7fSc7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIx ID0gMTsKKyAgdltwbHBnc3FsX3N2X3ZhcjFdID0gMTAwOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2 OworICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gdjsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMltwbHBn c3FsX3N2X3ZhcjFdID0gLTE7CisgIFJBSVNFIE5PVElDRSAnJScsIHBscGdzcWxfc3ZfdmFyMjsK K0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgdGVzdF9mdW5jKCk7CitOT1RJQ0U6 ICB7MTAwfQorTk9USUNFOiAgey0xfQorIHRlc3RfZnVuYyAKKy0tLS0tLS0tLS0tCisgCisoMSBy b3cpCisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CitD UkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjIgQVMgaW50W107CitTRUxFQ1QgdGVzdF9mdW5jKCk7CitOT1RJQ0U6ICB7 MTAwfQorTk9USUNFOiAgey0xfQorIHRlc3RfZnVuYyAKKy0tLS0tLS0tLS0tCisgCisoMSByb3cp CisKK0RST1AgRlVOQ1RJT04gdGVzdF9mdW5jKCk7CitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3Zf dmFyMSwgcGxwZ3NxbF9zdl92YXIyOworLS0gY2hlY2sgc2VjdXJlIGFjY2VzcworQ1JFQVRFIFJP TEUgcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyX3JlYWRl cl9yb2xlOworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfZXhlY19yb2xlOworR1JBTlQgQUxMIE9O IFNDSEVNQSBwdWJsaWMgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVh ZGVyX3JvbGUsIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFy X293bmVyX3JvbGU7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0xF VCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9MRSBU TyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZh cl9yZWFkX2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBSQUlTRSBOT1RJQ0Ug JyUnLCBwbHBnc3FsX3N2X3ZhcjE7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsIFNFQ1VSSVRZ IERFRklORVI7CitTRVQgUk9MRSBUTyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJf ZXhlY19yb2xlOworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXJfcmVhZF9mdW5jKCk7CitFUlJP UjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHBscGdzcWxfc3ZfdmFy MQorQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gInBscGdzcWxfc3ZfdmFyMSIKK1BML3Bn U1FMIGZ1bmN0aW9uIHZhcl9yZWFkX2Z1bmMoKSBsaW5lIDMgYXQgUkFJU0UKK1NFVCBST0xFIFRP IERFRkFVTFQ7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworR1JBTlQgU0VM RUNUIE9OIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBUTyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9s ZTsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9leGVjX3Jv bGU7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXJfcmVhZF9mdW5jKCk7CitOT1RJQ0U6ICAx MAorIHZhcl9yZWFkX2Z1bmMgCistLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VUIFJP TEUgVE8gREVGQVVMVDsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CitEUk9Q IFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMTsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9M RSBUTyByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CistLSBzaG91bGQgZmFpbCwgYnV0IG5vdCBjcmFz aAorU0VMRUNUIHZhcl9yZWFkX2Z1bmMoKTsKK0VSUk9SOiAgY29sdW1uICJwbHBnc3FsX3N2X3Zh cjEiIGRvZXMgbm90IGV4aXN0CitMSU5FIDE6IHBscGdzcWxfc3ZfdmFyMQorICAgICAgICBeCitR VUVSWTogIHBscGdzcWxfc3ZfdmFyMQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIHZhcl9y ZWFkX2Z1bmMoKSBsaW5lIDMgYXQgUkFJU0UKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIEZV TkNUSU9OIHZhcl9yZWFkX2Z1bmM7CitSRVZPS0UgQUxMIE9OIFNDSEVNQSBwdWJsaWMgRlJPTSBy ZWdyZXNzX3Zhcl9vd25lcl9yb2xlLCByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZSwgcmVncmVzc192 YXJfZXhlY19yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CitEUk9QIFJP TEUgcmVncmVzc192YXJfcmVhZGVyX3JvbGU7CitEUk9QIFJPTEUgcmVncmVzc192YXJfZXhlY19y b2xlOworLS0gcmV0dXJucyB1cGRhdGVkIHZhbHVlCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9z dl92YXIxIEFTIGludDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGluY192YXJfaW50KGlu dCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gQ09B TEVTQ0UocGxwZ3NxbF9zdl92YXIxICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFy MTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgaW5jX3Zhcl9pbnQoMSk7Cisg aW5jX3Zhcl9pbnQgCistLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDEKKygxIHJvdykKKworU0VM RUNUIGluY192YXJfaW50KDEpOworIGluY192YXJfaW50IAorLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAyCisoMSByb3cpCisKK1NFTEVDVCBpbmNfdmFyX2ludCgxKTsKKyBpbmNfdmFyX2ludCAK Ky0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMworKDEgcm93KQorCitTRUxFQ1QgaW5jX3Zhcl9p bnQoMSkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisgaW5jX3Zhcl9pbnQgCistLS0tLS0t LS0tLS0tCisgICAgICAgICAgIDQKKyAgICAgICAgICAgNQorICAgICAgICAgICA2CisgICAgICAg ICAgIDcKKyAgICAgICAgICAgOAorICAgICAgICAgICA5CisgICAgICAgICAgMTAKKyAgICAgICAg ICAxMQorICAgICAgICAgIDEyCisgICAgICAgICAgMTMKKygxMCByb3dzKQorCitDUkVBVEUgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIG51bWVyaWM7CitMRVQgcGxwZ3NxbF9zdl92YXIyID0g MC4wOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9udW0obnVtZXJpYykKK1JF VFVSTlMgaW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gQ09BTEVTQ0Uo cGxwZ3NxbF9zdl92YXIyICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFyMjsKK0VO RDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKKyBpbmNf dmFyX251bSAKKy0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMQorKDEgcm93KQorCitTRUxFQ1Qg aW5jX3Zhcl9udW0oMS4wKTsKKyBpbmNfdmFyX251bSAKKy0tLS0tLS0tLS0tLS0KKyAgICAgICAg ICAgMgorKDEgcm93KQorCitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKKyBpbmNfdmFyX251bSAK Ky0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMworKDEgcm93KQorCitTRUxFQ1QgaW5jX3Zhcl9u dW0oMS4wKSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsKKyBpbmNfdmFyX251bSAKKy0tLS0t LS0tLS0tLS0KKyAgICAgICAgICAgNAorICAgICAgICAgICA1CisgICAgICAgICAgIDYKKyAgICAg ICAgICAgNworICAgICAgICAgICA4CisgICAgICAgICAgIDkKKyAgICAgICAgICAxMAorICAgICAg ICAgIDExCisgICAgICAgICAgMTIKKyAgICAgICAgICAxMworKDEwIHJvd3MpCisKK0RST1AgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CitEUk9QIEZVTkNUSU9OIGlu Y192YXJfaW50OworRFJPUCBGVU5DVElPTiBpbmNfdmFyX251bTsKKy0tIHBscGdzcWwgdmFyaWFi bGVzIGFyZSBwcmVmZXJyZWQgYWdhaW5zdCBzZXNzaW9uIHZhcmlhYmxlcworQ1JFQVRFIFZBUklB QkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitETyAkJAorPDxteWJsb2NrPj4KK0RFQ0xBUkUg cGxwZ3NxbF9zdl92YXIxIGludDsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDA7 CisKKyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEwMDA7CisKKyAgLS0gcHJpbnQgMTAwOworICBSQUlT RSBOT1RJQ0UgJ3Nlc3Npb24gdmFyaWFibGUgaXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2X3ZhcjE7 CisKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyaWFibGUgaXMg JScsIG15YmxvY2sucGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHByaW50IDEwMDAKKyAgUkFJU0Ug Tk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQ7CitOT1RJ Q0U6ICBzZXNzaW9uIHZhcmlhYmxlIGlzIDEwMAorTk9USUNFOiAgcGxwZ3NxbCB2YXJpYWJsZSBp cyAxMDAwCitOT1RJQ0U6ICB2YXJpYWJsZSBpcyAxMDAwCitEUk9QIFZBUklBQkxFIHBscGdzcWxf c3ZfdmFyMTsKKy0tIHRoZSB2YWx1ZSBzaG91bGQgbm90IGJlIGNvcnJ1cHRlZAorQ1JFQVRFIFZB UklBQkxFIHBscGdzcWxfc3ZfdiB0ZXh0OworTEVUIHBscGdzcWxfc3ZfdiA9ICdhYmMnOworQ1JF QVRFIEZVTkNUSU9OIGZmdW5jKCkKK1JFVFVSTlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgUkVUVVJO IGdmdW5jKHBscGdzcWxfc3Zfdik7CitFTkQKKyQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUg RlVOQ1RJT04gZ2Z1bmModCB0ZXh0KQorUkVUVVJOUyB0ZXh0IEFTICQkCitCRUdJTgorICBMRVQg cGxwZ3NxbF9zdl92ID0gJ0JPT00hJzsKKyAgUkVUVVJOIHQ7CitFTkQ7CiskJCBMQU5HVUFHRSBw bHBnc3FsOworc2VsZWN0IGZmdW5jKCk7CisgZmZ1bmMgCistLS0tLS0tCisgYWJjCisoMSByb3cp CisKK0RST1AgRlVOQ1RJT04gZmZ1bmMoKTsKK0RST1AgRlVOQ1RJT04gZ2Z1bmModGV4dCk7CitE Uk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdjsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3Ny Yy9tZXNvbi5idWlsZCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9tZXNvbi5idWlsZAppbmRleCAzM2M0 OWFjMjVkOS4uMWQwMWQxYzI2MjkgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9tZXNv bi5idWlsZAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVpbGQKQEAgLTg4LDYgKzg4 LDcgQEAgdGVzdHMgKz0gewogICAgICAgJ3BscGdzcWxfdHJhcCcsCiAgICAgICAncGxwZ3NxbF90 cmlnZ2VyJywKICAgICAgICdwbHBnc3FsX3ZhcnByb3BzJywKKyAgICAgICdwbHBnc3FsX3Nlc3Np b25fdmFyaWFibGUnLAogICAgIF0sCiAgIH0sCiB9CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwgYi9zcmMvcGwvcGxwZ3NxbC9z cmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLmEzY2MyNjRjZjM4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Bs L3BscGdzcWwvc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsCkBAIC0wLDAgKzEs Mjg5IEBACistLSB0ZXN0IG9mIHNlc3Npb24gdmFyaWFibGVzCitDUkVBVEUgVkFSSUFCTEUgcGxw Z3NxbF9zdl92YXIgQVMgbnVtZXJpYzsKKworTEVUIHBscGdzcWxfc3ZfdmFyID0gcGkoKTsKKwor LS0gcGFzc2luZyBwYXJhbWV0ZXJzIHRvIERPIGJsb2NrCitETyAkJAorQkVHSU4KKyAgUkFJU0Ug Tk9USUNFICd2YWx1ZSBvZiBzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwbHBnc3FsX3N2X3ZhcjsK K0VORDsKKyQkOworCistLSBwYXNzaW5nIG91dHB1dCBmcm9tIERPIGJsb2NrOworRE8gJCQKK0JF R0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhciA9IDIgKiBwaSgpOworRU5ECiskJDsKKworU0VMRUNU IHBscGdzcWxfc3ZfdmFyIEFTICJwaV9tdWx0aXBseV8yIjsKKworRFJPUCBWQVJJQUJMRSBwbHBn c3FsX3N2X3ZhcjsKKworLS0gdGVzdCBhY2Nlc3MgZnJvbSBQTC9wZ1NRTAorQ1JFQVRFIFZBUklB QkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92 YXIyIEFTIG51bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNo YXI7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHdyaXRlcl9mdW5jKCkKK1JFVFVSTlMg dm9pZCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IDEwOworICBMRVQgcGxw Z3NxbF9zdl92YXIyID0gcGkoKTsKKyAgLS0gdmVyeSBsb25nIHZhbHVlCisgIExFVCBwbHBnc3Fs X3N2X3ZhcjMgPSBmb3JtYXQoJyglcyknLCByZXBlYXQoJyonLCAxMDAwMCkpOworRU5EOworJCQg TEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdXBkYXRlcl9m dW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9 IHBscGdzcWxfc3ZfdmFyMSArIDEwMDsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IHBscGdzcWxf c3ZfdmFyMiArIDEwMDAwMDAwMDAwMDsKKyAgLS0gdmVyeSBsb25nIHZhbHVlCisgIExFVCBwbHBn c3FsX3N2X3ZhcjMgPSBwbHBnc3FsX3N2X3ZhcjMgfHwgZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcq JywgMTAwMDApKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKKworQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04gcmVhZGVyX2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgor ICBSQUlTRSBOT1RJQ0UgJ3ZhcjEgPSAlJywgcGxwZ3NxbF9zdl92YXIxOworICBSQUlTRSBOT1RJ Q0UgJ3ZhcjIgPSAlJywgcGxwZ3NxbF9zdl92YXIyOworICBSQUlTRSBOT1RJQ0UgJ2xlbmd0aCBv ZiB2YXIzID0gJScsIGxlbmd0aChwbHBnc3FsX3N2X3ZhcjMpOworRU5EOworJCQgTEFOR1VBR0Ug cGxwZ3NxbDsKKworLS0gZXhlY3V0ZSBpbiBhIHRyYW5zYWN0aW9uCitCRUdJTjsKK1NFTEVDVCB3 cml0ZXJfZnVuYygpOworU0VMRUNUIHJlYWRlcl9mdW5jKCk7CitTRUxFQ1QgdXBkYXRlcl9mdW5j KCk7CitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsKK0VORDsKKworLS0gZXhlY3V0ZSBvdXRzaWRlIG9m IGEgdHJhbnNhY3Rpb24KK1NFTEVDVCB3cml0ZXJfZnVuYygpOworU0VMRUNUIHJlYWRlcl9mdW5j KCk7CitTRUxFQ1QgdXBkYXRlcl9mdW5jKCk7CitTRUxFQ1QgcmVhZGVyX2Z1bmMoKTsKKworLS0g ZXhlY3V0ZSBpbnNpZGUgYSBQTC9wZ1NRTCBibG9jaworRE8gJCQKK0JFR0lOCisgIFBFUkZPUk0g d3JpdGVyX2Z1bmMoKTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworICBQRVJGT1JNIHVwZGF0 ZXJfZnVuYygpOworICBQRVJGT1JNIHJlYWRlcl9mdW5jKCk7CitFTkQ7CiskJDsKKworLS0gcGxh biBjYWNoZXMgc2hvdWxkIGJlIGNvcnJlY3RseSBpbnZhbGlkYXRlZAorRFJPUCBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworCitDUkVB VEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBn c3FsX3N2X3ZhcjIgQVMgbnVtZXJpYzsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjMg QVMgdmFyY2hhcjsKKworLS0gc2hvdWxkIHdvcmsgYWdhaW4KK0RPICQkCitCRUdJTgorICBQRVJG T1JNIHdyaXRlcl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsKKyAgUEVSRk9STSB1 cGRhdGVyX2Z1bmMoKTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworRU5EOworJCQ7CisKK0RS T1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3Zf dmFyMzsKKworRFJPUCBGVU5DVElPTiB3cml0ZXJfZnVuYzsKK0RST1AgRlVOQ1RJT04gcmVhZGVy X2Z1bmM7CitEUk9QIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYzsKKworLS0gYW5vdGhlciBjaGVjayBv ZiBjb3JyZWN0IHBsYW4gY2FjaGUgaW52YWxpZGF0aW9uCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zdl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjIgQVMgaW50 W107CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHRlc3RfZnVuYygpCitSRVRVUk5TIHZv aWQgQVMgJCQKK0RFQ0xBUkUgdiBpbnRbXSBERUZBVUxUICd7fSc7CitCRUdJTgorICBMRVQgcGxw Z3NxbF9zdl92YXIxID0gMTsKKyAgdltwbHBnc3FsX3N2X3ZhcjFdID0gMTAwOworICBSQUlTRSBO T1RJQ0UgJyUnLCB2OworICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gdjsKKyAgTEVUIHBscGdzcWxf c3ZfdmFyMltwbHBnc3FsX3N2X3ZhcjFdID0gLTE7CisgIFJBSVNFIE5PVElDRSAnJScsIHBscGdz cWxfc3ZfdmFyMjsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCB0ZXN0X2Z1 bmMoKTsKKworRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMjsK KworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFC TEUgcGxwZ3NxbF9zdl92YXIyIEFTIGludFtdOworCitTRUxFQ1QgdGVzdF9mdW5jKCk7CisKK0RS T1AgRlVOQ1RJT04gdGVzdF9mdW5jKCk7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIx LCBwbHBnc3FsX3N2X3ZhcjI7CisKKy0tIGNoZWNrIHNlY3VyZSBhY2Nlc3MKK0NSRUFURSBST0xF IHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl9yZWFkZXJf cm9sZTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworR1JBTlQgQUxMIE9O IFNDSEVNQSBwdWJsaWMgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZSwgcmVncmVzc192YXJfcmVh ZGVyX3JvbGUsIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworU0VUIFJPTEUgVE8gcmVncmVzc192 YXJfb3duZXJfcm9sZTsKKworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7 CitMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTA7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NF VCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlOworCitDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiB2YXJfcmVhZF9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJ U0UgTk9USUNFICclJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3Nx bCBTRUNVUklUWSBERUZJTkVSOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBU TyByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyX3Jl YWRfZnVuYygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNz X3Zhcl9vd25lcl9yb2xlOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFy MSBUTyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKwor U0VUIFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xlOworCistLSBzaG91bGQgYmUgb2sKK1NF TEVDVCB2YXJfcmVhZF9mdW5jKCk7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFVCBST0xF IFRPIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92 YXIxOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9l eGVjX3JvbGU7CisKKy0tIHNob3VsZCBmYWlsLCBidXQgbm90IGNyYXNoCitTRUxFQ1QgdmFyX3Jl YWRfZnVuYygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitEUk9QIEZVTkNUSU9OIHZhcl9y ZWFkX2Z1bmM7CisKK1JFVk9LRSBBTEwgT04gU0NIRU1BIHB1YmxpYyBGUk9NIHJlZ3Jlc3NfdmFy X293bmVyX3JvbGUsIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlLCByZWdyZXNzX3Zhcl9leGVjX3Jv bGU7CisKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jl c3NfdmFyX3JlYWRlcl9yb2xlOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKwor LS0gcmV0dXJucyB1cGRhdGVkIHZhbHVlCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIx IEFTIGludDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9pbnQoaW50KQor UkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBDT0FMRVND RShwbHBnc3FsX3N2X3ZhcjEgKyAkMSwgJDEpOworICBSRVRVUk4gcGxwZ3NxbF9zdl92YXIxOwor RU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworU0VMRUNUIGluY192YXJfaW50KDEpOworU0VM RUNUIGluY192YXJfaW50KDEpOworU0VMRUNUIGluY192YXJfaW50KDEpOworCitTRUxFQ1QgaW5j X3Zhcl9pbnQoMSkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisKK0NSRUFURSBWQVJJQUJM RSBwbHBnc3FsX3N2X3ZhcjIgQVMgbnVtZXJpYzsKKworTEVUIHBscGdzcWxfc3ZfdmFyMiA9IDAu MDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9udW0obnVtZXJpYykKK1JF VFVSTlMgaW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIyID0gQ09BTEVTQ0Uo cGxwZ3NxbF9zdl92YXIyICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFyMjsKK0VO RDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCBpbmNfdmFyX251bSgxLjApOworU0VM RUNUIGluY192YXJfbnVtKDEuMCk7CitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKKworU0VMRUNU IGluY192YXJfbnVtKDEuMCkgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwxMCk7CisKK0RST1AgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CisKK0RST1AgRlVOQ1RJT04g aW5jX3Zhcl9pbnQ7CitEUk9QIEZVTkNUSU9OIGluY192YXJfbnVtOworCistLSBwbHBnc3FsIHZh cmlhYmxlcyBhcmUgcHJlZmVycmVkIGFnYWluc3Qgc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBW QVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworCitETyAkJAorPDxteWJsb2NrPj4KK0RF Q0xBUkUgcGxwZ3NxbF9zdl92YXIxIGludDsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEg PSAxMDA7CisKKyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEwMDA7CisKKyAgLS0gcHJpbnQgMTAwOwor ICBSQUlTRSBOT1RJQ0UgJ3Nlc3Npb24gdmFyaWFibGUgaXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2 X3ZhcjE7CisKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJQ0UgJ3BscGdzcWwgdmFyaWFi bGUgaXMgJScsIG15YmxvY2sucGxwZ3NxbF9zdl92YXIxOworCisgIC0tIHByaW50IDEwMDAKKyAg UkFJU0UgTk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXIxOworRU5EOworJCQ7 CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOworCistLSB0aGUgdmFsdWUgc2hvdWxk IG5vdCBiZSBjb3JydXB0ZWQKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3YgdGV4dDsKK0xF VCBwbHBnc3FsX3N2X3YgPSAnYWJjJzsKKworQ1JFQVRFIEZVTkNUSU9OIGZmdW5jKCkKK1JFVFVS TlMgdGV4dCBBUyAkJAorQkVHSU4KKyAgUkVUVVJOIGdmdW5jKHBscGdzcWxfc3Zfdik7CitFTkQK KyQkIExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBGVU5DVElPTiBnZnVuYyh0IHRleHQpCitS RVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3YgPSAnQk9PTSEnOwor ICBSRVRVUk4gdDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK3NlbGVjdCBmZnVuYygp OworCitEUk9QIEZVTkNUSU9OIGZmdW5jKCk7CitEUk9QIEZVTkNUSU9OIGdmdW5jKHRleHQpOwor CitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdjsKLS0gCjIuNDcuMQoK --000000000000f297a7062b2456dc Content-Type: text/x-patch; charset="US-ASCII"; name="v20250107-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20250107-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5mz6bpp17 RnJvbSAxN2U3NjUxY2ZhMmU2NWZhNjdlN2NkM2VmZjc0YjcyNmZmMDlkZGI0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAwOTozMToyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDUvMjJdIG1lbW9yeSBjbGVhbmluZyBhZnRlciBEUk9QIFZBUklBQkxFCgpBY2NlcHRpbmcgYSBz aW52YWwgbWVzc2FnZSBpbnZhbGlkYXRlcyBlbnRyaWVzIGluIHRoZSAic2Vzc2lvbnZhcnMiIGhh c2ggdGFibGUuClRoZXNlIGVudHJpZXMgYXJlIHZhbGlkYXRlZCBiZWZvcmUgYW55IHJlYWQgb3Ig d3JpdGUgb3BlcmF0aW9ucyBvbiBzZXNzaW9uIHZhcmlhYmxlcy4KV2hlbiB0aGUgZW50cnkgY2Fu bm90IGJlIHZhbGlkYXRlZCwgaXQgaXMgcmVtb3ZlZC4gIFJlbW92YWwgd2lsbCBiZSBkZWxheWVk IHdoZW4KdGhlIHZhcmlhYmxlIHdhcyBkcm9wcGVkIGJ5IHRoZSBjdXJyZW50IHRyYW5zYWN0aW9u LCB3aGljaCBjb3VsZCBzdGlsbCBiZSByb2xsZWQgYmFjay4KLS0tCiBzcmMvYmFja2VuZC9jYXRh bG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDE1MyArKysrKysrKysrKy0KIHNyYy9pbmNs dWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgMiArCiAuLi4vaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0ICAgfCAxMTAgKysrKysrKysrCiBzcmMv dGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlICAgICAgICAgfCAgIDEgKwogLi4uL2lz b2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgICAgIHwgIDUwICsrKysKIC4uLi9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDIxNyArKysrKysrKysr KysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8 IDEyMCArKysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDY1NSBpbnNlcnRpb25zKCspLCA1IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3Rl ZC9zZXNzaW9uLXZhcmlhYmxlLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xh dGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxl LmMKaW5kZXggYmI0NDVlOTQzNGIuLmQ2NzJkMmE5Y2IzIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJp YWJsZS5jCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb2xsYXRpb24u aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX25hbWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cv cGdfdmFyaWFibGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAj aW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNp bmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgpAQCAtMjMwLDcgKzIzMSw4IEBAIENyZWF0ZVZhcmlh YmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiB9CiAK IC8qCi0gKiBEcm9wIHZhcmlhYmxlIGJ5IE9JRAorICogRHJvcCB2YXJpYWJsZSBieSBPSUQsIGFu ZCByZWdpc3RlciB0aGUgbmVlZGVkIHNlc3Npb24gdmFyaWFibGUKKyAqIGNsZWFudXAuCiAgKi8K IHZvaWQKIERyb3BWYXJpYWJsZUJ5SWQoT2lkIHZhcmlkKQpAQCAtMjUwLDQgKzI1Miw3IEBAIERy b3BWYXJpYWJsZUJ5SWQoT2lkIHZhcmlkKQogCVJlbGVhc2VTeXNDYWNoZSh0dXApOwogCiAJdGFi bGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCS8qIGRvIHRoZSBuZWNlc3Nhcnkg Y2xlYW51cCBpbiBsb2NhbCBtZW1vcnksIGlmIG5lZWRlZCAqLworCVNlc3Npb25WYXJpYWJsZURy b3BQb3N0cHJvY2Vzcyh2YXJpZCk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKaW5kZXggNGRjMjA3Y2ZkNWYuLmFkODUyYjVjZjdjIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC0xNCw2ICsxNCw3IEBACiAgKi8KICNpbmNsdWRlICJw b3N0Z3Jlcy5oIgogCisjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgog I2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCkBAIC02Nyw2ICs2OCwxNCBA QCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVEYXRhCiAJdm9pZAkgICAqZG9tYWluX2NoZWNrX2V4 dHJhOwogCUxvY2FsVHJhbnNhY3Rpb25JZCBkb21haW5fY2hlY2tfZXh0cmFfbHhpZDsKIAorCS8q CisJICogVG9wIGxldmVsIGxvY2FsIHRyYW5zYWN0aW9uIGlkIG9mIHRoZSBsYXN0IHRyYW5zYWN0 aW9uIHRoYXQgZHJvcHBlZCB0aGUKKwkgKiB2YXJpYWJsZSwgaWYgYW55LiAgV2UgbmVlZCB0aGlz IGluZm9ybWF0aW9uIHRvIGF2b2lkIGZyZWVpbmcgbWVtb3J5IGZvcgorCSAqIHZhcmlhYmxlcyBk cm9wcGVkIGJ5IHRoZSBsb2NhbCBiYWNrZW5kLCBpbiBjYXNlIHRoZSBvcGVyYXRpb24gaXMgcm9s bGVkCisJICogYmFjay4KKwkgKi8KKwlMb2NhbFRyYW5zYWN0aW9uSWQgZHJvcF9seGlkOworCiAJ LyoKIAkgKiBTdG9yZWQgdmFsdWUgYW5kIHR5cGUgZGVzY3JpcHRpb24gY2FuIGJlIG91dGRhdGVk IHdoZW4gd2UgcmVjZWl2ZSBhCiAJICogc2ludmFsIG1lc3NhZ2UuICBXZSB0aGVuIGhhdmUgdG8g Y2hlY2sgaWYgdGhlIHN0b3JlZCBkYXRhIGFyZSBzdGlsbApAQCAtODMsNiArOTIsMTcgQEAgc3Rh dGljIEhUQUIgKnNlc3Npb252YXJzID0gTlVMTDsJLyogaGFzaCB0YWJsZSBmb3Igc2Vzc2lvbiB2 YXJpYWJsZXMgKi8KIAogc3RhdGljIE1lbW9yeUNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4 dCA9IE5VTEw7CiAKKy8qIGJlY29tZXMgdHJ1ZSB3aGVuIHdlIHJlY2VpdmUgYSBzaW52YWwgbWVz c2FnZSAqLworc3RhdGljIGJvb2wgbmVlZHNfdmFsaWRhdGlvbiA9IGZhbHNlOworCisvKgorICog VGhlIGNvbnRlbnQgb2YgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QgcmVtb3ZlZCBp bW1lZGlhdGVseS4gIFdlIGRvCisgKiB0aGF0IGluIHRoZSBuZXh0IHRyYW5zYWN0aW9uIHRoYXQg cmVhZHMgb3Igd3JpdGVzIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqICJ2YWxpZGF0ZWRfbHhpZCIg c3RvcmVzIHRoZSB0cmFuc2FjdGlvbiB0aGF0IHBlcmZvcm1lZCBzYWlkIHZhbGlkYXRpb24sIHNv CisgKiB0aGF0IHdlIGNhbiBhdm9pZCByZXBlYXRpbmcgdGhlIGVmZm9ydC4KKyAqLworc3RhdGlj IExvY2FsVHJhbnNhY3Rpb25JZCB2YWxpZGF0ZWRfbHhpZCA9IEludmFsaWRMb2NhbFRyYW5zYWN0 aW9uSWQ7CisKIC8qCiAgKiBDYWxsYmFjayBmdW5jdGlvbiBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBp bnZhbGlkYXRpb24uCiAgKi8KQEAgLTExNCw2ICsxMzQsMzggQEAgcGdfdmFyaWFibGVfY2FjaGVf Y2FsbGJhY2soRGF0dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKIAkJaWYg KGhhc2h2YWx1ZSA9PSAwIHx8IHN2YXItPmhhc2h2YWx1ZSA9PSBoYXNodmFsdWUpCiAJCXsKIAkJ CXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CisJCQluZWVkc192YWxpZGF0aW9uID0gdHJ1ZTsKKwkJ fQorCX0KK30KKworLyoKKyAqIEhhbmRsZSB0aGUgbG9jYWwgbWVtb3J5IGNsZWFudXAgZm9yIGEg RFJPUCBWQVJJQUJMRSBjb21tYW5kLgorICoKKyAqIENhbGxlciBzaG91bGQgdGFrZSBjYXJlIG9m IHJlbW92aW5nIHRoZSBwZ192YXJpYWJsZSBlbnRyeSBmaXJzdC4KKyAqLwordm9pZAorU2Vzc2lv blZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKE9pZCB2YXJpZCkKK3sKKwlBc3NlcnQoTG9jYWxUcmFu c2FjdGlvbklkSXNWYWxpZChNeVByb2MtPnZ4aWQubHhpZCkpOworCisJaWYgKHNlc3Npb252YXJz KQorCXsKKwkJYm9vbAkJZm91bmQ7CisJCVNWYXJpYWJsZQlzdmFyID0gKFNWYXJpYWJsZSkgaGFz aF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwKKwkJCQkJCQkJCQkJCSAgIEhBU0hfRklORCwg JmZvdW5kKTsKKworCQlpZiAoZm91bmQpCisJCXsKKwkJCS8qCisJCQkgKiBTYXZlIHRoZSBjdXJy ZW50IHRvcCBsZXZlbCBsb2NhbCB0cmFuc2FjdGlvbiBpZCB0byBtYWtlIHN1cmUgd2UKKwkJCSAq IHdvbid0IGF1dG9tYXRpY2FsbHkgcmVtb3ZlIHRoZSBsb2NhbCB2YXJpYWJsZSBzdG9yYWdlIGlu CisJCQkgKiB2YWxpZGF0ZV9hbGxfc2Vzc2lvbl92YXJpYWJsZXMoKSB3aGVuIHRoZSBpbnZhbGlk YXRpb24gbWVzc2FnZQorCQkJICogZnJvbSBEUk9QIFZBUklBQkxFIGFycml2ZXMuICBBZnRlciBh bGwsIHRoZSB0cmFuc2FjdGlvbiBjb3VsZAorCQkJICogc3RpbGwgYmUgcm9sbGVkIGJhY2suCisJ CQkgKi8KKwkJCXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CisJCQlzdmFyLT5kcm9wX2x4aWQgPSBN eVByb2MtPnZ4aWQubHhpZDsKIAkJfQogCX0KIH0KQEAgLTE2Nyw2ICsyMTksNjcgQEAgaXNfc2Vz c2lvbl92YXJpYWJsZV92YWxpZChTVmFyaWFibGUgc3ZhcikKIAlyZXR1cm4gcmVzdWx0OwogfQog CisvKgorICogQ2hlY2sgYWxsIHBvdGVudGlhbGx5IGludmFsaWQgc2Vzc2lvbiB2YXJpYWJsZSBk YXRhIGluIGxvY2FsIG1lbW9yeSBhbmQgZnJlZQorICogdGhlIG1lbW9yeSBmb3IgYWxsIGludmFs aWQgb25lcy4gIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJlZm9yZSBhbnkgcmVhZCBvcgorICog d3JpdGUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlLiAgRnJlZWluZyBvZiBhIHZhcmlhYmxlJ3MgbWVt b3J5IGlzIHBvc3Rwb25lZCBpZgorICogdGhlIHZhcmlhYmxlIGhhcyBiZWVuIGRyb3BwZWQgYnkg dGhlIGN1cnJlbnQgdHJhbnNhY3Rpb24sIHNpbmNlIHRoYXQKKyAqIG9wZXJhdGlvbiBjb3VsZCBz dGlsbCBiZSByb2xsZWQgYmFjay4KKyAqCisgKiBJdCBpcyBwb3NzaWJsZSB0aGF0IHdlIHJlY2Vp dmUgYSBjYWNoZSBpbnZhbGlkYXRpb24gbWVzc2FnZSB3aGlsZQorICogcmVtb3ZlX2ludmFsaWRf c2Vzc2lvbl92YXJpYWJsZXMoKSBpcyBleGVjdXRpbmcsIHNvIHdlIGNhbm5vdCBndWFyYW50ZWUg dGhhdAorICogYWxsIGVudHJpZXMgaW4gInNlc3Npb252YXJzIiB3aWxsIGJlIHNldCB0byAiaXNf dmFsaWQiIGFmdGVyIHRoZSBmdW5jdGlvbiBpcworICogZG9uZS4gIEhvd2V2ZXIsIHdlIGNhbiBn dWFyYW50ZWUgdGhhdCBhbGwgZW50cmllcyBnZXQgY2hlY2tlZCBvbmNlLgorICovCitzdGF0aWMg dm9pZAorcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXModm9pZCkKK3sKKwlIQVNIX1NF UV9TVEFUVVMgc3RhdHVzOworCVNWYXJpYWJsZQlzdmFyOworCisJLyoKKwkgKiBUaGUgdmFsaWRh dGlvbiByZXF1aXJlcyBzeXN0ZW0gY2F0YWxvZyBhY2Nlc3MsIHNvIHRoZSBzZXNzaW9uIHN0YXRl CisJICogc2hvdWxkIGJlICJpbiB0cmFuc2FjdGlvbiIuCisJICovCisJQXNzZXJ0KElzVHJhbnNh Y3Rpb25TdGF0ZSgpKTsKKworCWlmICghbmVlZHNfdmFsaWRhdGlvbiB8fCAhc2Vzc2lvbnZhcnMp CisJCXJldHVybjsKKworCS8qCisJICogUmVzZXQgdGhlIGZsYWcgYmVmb3JlIHdlIHN0YXJ0IHRo ZSB2YWxpZGF0aW9uLiAgSXQgY2FuIGJlIHNldCBhZ2FpbgorCSAqIGJ5IGNvbmN1cnJlbnRseSBp bmNvbWluZyBzaW52YWwgbWVzc2FnZXMuCisJICovCisJbmVlZHNfdmFsaWRhdGlvbiA9IGZhbHNl OworCisJZWxvZyhERUJVRzEsICJlZmZlY3RpdmUgY2FsbCBvZiB2YWxpZGF0ZV9hbGxfc2Vzc2lv bl92YXJpYWJsZXMoKSIpOworCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFycyk7 CisJd2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAh PSBOVUxMKQorCXsKKwkJaWYgKCFzdmFyLT5pc192YWxpZCkKKwkJeworCQkJaWYgKHN2YXItPmRy b3BfbHhpZCA9PSBNeVByb2MtPnZ4aWQubHhpZCkKKwkJCXsKKwkJCQkvKiB0cnkgYWdhaW4gaW4g dGhlIG5leHQgdHJhbnNhY3Rpb24gKi8KKwkJCQluZWVkc192YWxpZGF0aW9uID0gdHJ1ZTsKKwkJ CQljb250aW51ZTsKKwkJCX0KKworCQkJaWYgKCFpc19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKHN2 YXIpKQorCQkJeworCQkJCU9pZAkJCXZhcmlkID0gc3Zhci0+dmFyaWQ7CisKKwkJCQlmcmVlX3Nl c3Npb25fdmFyaWFibGVfdmFsdWUoc3Zhcik7CisJCQkJaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMs ICZ2YXJpZCwgSEFTSF9SRU1PVkUsIE5VTEwpOworCQkJCXN2YXIgPSBOVUxMOworCQkJfQorCQkJ ZWxzZQorCQkJCXN2YXItPmlzX3ZhbGlkID0gdHJ1ZTsKKwkJfQorCX0KK30KKwogLyoKICAqIElu aXRpYWxpemUgYXR0cmlidXRlcyBjYWNoZWQgaW4gInN2YXIiCiAgKi8KQEAgLTE5Niw2ICszMDks OCBAQCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQpCiAJ c3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKIAlzdmFyLT5kb21haW5fY2hlY2tfZXh0 cmFfbHhpZCA9IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQ7CiAKKwlzdmFyLT5kcm9wX2x4aWQg PSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwogCXN2YXItPmlzbnVsbCA9IHRydWU7CiAJc3Zhci0+ dmFsdWUgPSAoRGF0dW0pIDA7CiAKQEAgLTMxOSwyMiArNDM0LDQyIEBAIGdldF9zZXNzaW9uX3Zh cmlhYmxlKE9pZCB2YXJpZCkKIAlpZiAoIXNlc3Npb252YXJzKQogCQljcmVhdGVfc2Vzc2lvbnZh cnNfaGFzaHRhYmxlcygpOwogCisJaWYgKHZhbGlkYXRlZF9seGlkID09IEludmFsaWRMb2NhbFRy YW5zYWN0aW9uSWQgfHwKKwkJdmFsaWRhdGVkX2x4aWQgIT0gTXlQcm9jLT52eGlkLmx4aWQpCisJ eworCQkvKiBmcmVlIHRoZSBtZW1vcnkgZnJvbSBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzICov CisJCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKKwkJLyogZG9uJ3QgcmVw ZWF0IHRoZSBhYm92ZSBzdGVwIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uICovCisJCXZhbGlkYXRl ZF9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CisJfQorCiAJc3ZhciA9IChTVmFyaWFibGUpIGhh c2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsCiAJCQkJCQkJCSAgIEhBU0hfRU5URVIsICZm b3VuZCk7CiAKIAlpZiAoZm91bmQpCiAJeworCQkvKgorCQkgKiBUaGUgc2Vzc2lvbiB2YXJpYWJs ZSBjb3VsZCBoYXZlIGJlZW4gZHJvcHBlZCBieSBhIERST1AgVkFSSUFCTEUKKwkJICogc3RhdGVt ZW50IGluIGEgc3VidHJhbnNhY3Rpb24gdGhhdCB3YXMgbGF0ZXIgcm9sbGVkIGJhY2ssIHdoaWNo CisJCSAqIG1lYW5zIHRoYXQgd2UgbWF5IGhhdmUgdG8gd29yayB3aXRoIHRoZSBkYXRhIG9mIGEg dmFyaWFibGUgbWFya2VkCisJCSAqIGFzIGludmFsaWQuCisJCSAqLwogCQlpZiAoIXN2YXItPmlz X3ZhbGlkKQogCQl7CiAJCQkvKgotCQkJICogSWYgdGhlcmUgd2FzIGFuIGludmFsaWRhdGlvbiBt ZXNzYWdlLCB0aGUgdmFyaWFibGUgbWlnaHQgc3RpbGwgYmUKLQkJCSAqIHZhbGlkLCBidXQgd2Ug aGF2ZSB0byBjaGVjayB3aXRoIHRoZSBzeXN0ZW0gY2F0YWxvZy4KKwkJCSAqIFdlIGhhdmUgdG8g Y2hlY2sgdGhlIHN5c3RlbSBjYXRhbG9nIHRvIHNlZSBpZiB0aGUgdmFyaWFibGUgaXMKKwkJCSAq IHN0aWxsIHZhbGlkLCBldmVuIGlmIGFuIGludmFsaWRhdGlvbiBtZXNzYWdlIHNldCBpdCB0byBp bnZhbGlkLgorCQkJICoKKwkJCSAqIFRoZSB2YXJpYWJsZSBtdXN0IGJlIHZhbGlkYXRlZCBiZWZv cmUgaXQgaXMgYWNjZXNzZWQuICBUaGUgb2lkCisJCQkgKiBzaG91bGQgYmUgdmFsaWQsIGJlY2F1 c2UgdGhlIHJlbGF0ZWQgc2Vzc2lvbiB2YXJpYWJsZSBpcyBhbHJlYWR5CisJCQkgKiBsb2NrZWQs IGFuZCByZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcygpIHdvdWxkIHJlbW92ZQorCQkJ ICogdmFyaWFibGVzIGRyb3BwZWQgYnkgb3RoZXIgdHJhbnNhY3Rpb25zLgogCQkJICovCiAJCQlp ZiAoaXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChzdmFyKSkKIAkJCQlzdmFyLT5pc192YWxpZCA9 IHRydWU7CiAJCQllbHNlCi0JCQkJLyogaWYgdGhlIHZhbHVlIGNhbm5vdCBiZSB2YWxpZGF0ZWQs IHdlIGhhdmUgdG8gZGlzY2FyZCBpdCAqLwotCQkJCWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1 ZShzdmFyKTsKKwkJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCBzdGF0ZSBvZiBzZXNzaW9uIHZh cmlhYmxlICV1IiwgdmFyaWQpOwogCQl9CiAJfQogCWVsc2UKQEAgLTM5NSw2ICs1MzAsMTYgQEAg U2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQog CWlmICghc2Vzc2lvbnZhcnMpCiAJCWNyZWF0ZV9zZXNzaW9udmFyc19oYXNodGFibGVzKCk7CiAK KwlpZiAodmFsaWRhdGVkX2x4aWQgPT0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZCB8fAorCQl2 YWxpZGF0ZWRfbHhpZCAhPSBNeVByb2MtPnZ4aWQubHhpZCkKKwl7CisJCS8qIGZyZWUgdGhlIG1l bW9yeSBmcm9tIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwkJcmVtb3ZlX2ludmFsaWRf c2Vzc2lvbl92YXJpYWJsZXMoKTsKKworCQkvKiBkb24ndCByZXBlYXQgdGhlIGFib3ZlIHN0ZXAg aW4gdGhlIHNhbWUgdHJhbnNhY3Rpb24gKi8KKwkJdmFsaWRhdGVkX2x4aWQgPSBNeVByb2MtPnZ4 aWQubHhpZDsKKwl9CisKIAlzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZWFyY2goc2Vzc2lvbnZh cnMsICZ2YXJpZCwKIAkJCQkJCQkJICAgSEFTSF9FTlRFUiwgJmZvdW5kKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmluZGV4IDQzZmNlODgwMzE0Li4wN2Q4MDBiY2Mw MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisr KyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMjEsNiArMjEs OCBAQAogI2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCiAjaW5jbHVkZSAidXRpbHMvcXVlcnllbnZp cm9ubWVudC5oIgogCitleHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3Mo T2lkIHZhcmlkKTsKKwogZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwg RGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsKIGV4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFyaWFi bGUoT2lkIHZhcmlkLCBib29sICppc051bGwsIE9pZCAqdHlwaWQpOwogZXh0ZXJuIERhdHVtIEdl dFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlQ2hlY2soT2lkIHZhcmlkLCBib29sICppc051bGwsIE9p ZCBleHBlY3RlZF90eXBpZCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0 ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vz c2lvbi12YXJpYWJsZS5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjBhNTU3OWRjN2NlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2V4cGVj dGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CkBAIC0wLDAgKzEsMTEwIEBACitQYXJzZWQgdGVzdCBz cGVjIHdpdGggNCBzZXNzaW9ucworCitzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBkcm9w IHZhbAorc3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0ZXAgdmFsOiBTRUxFQ1QgbXl2 YXI7CitteXZhcgorLS0tLS0KK3Rlc3QgCisoMSByb3cpCisKK3N0ZXAgZHJvcDogRFJPUCBWQVJJ QUJMRSBteXZhcjsKK3N0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitFUlJPUjogIGNvbHVtbiAibXl2 YXIiIGRvZXMgbm90IGV4aXN0CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIHMxIGRy b3AgdmFsIHNyMQorc3RlcCBsZXQ6IExFVCBteXZhciA9ICd0ZXN0JzsKK3N0ZXAgdmFsOiBTRUxF Q1QgbXl2YXI7CitteXZhcgorLS0tLS0KK3Rlc3QgCisoMSByb3cpCisKK3N0ZXAgczE6IEJFR0lO Oworc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOworc3RlcCB2YWw6IFNFTEVDVCBteXZh cjsKK0VSUk9SOiAgY29sdW1uICJteXZhciIgZG9lcyBub3QgZXhpc3QKK3N0ZXAgc3IxOiBST0xM QkFDSzsKKworc3RhcnRpbmcgcGVybXV0YXRpb246IGxldCB2YWwgZGJnIGRyb3AgY3JlYXRlIGRi ZyB2YWwKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7CitzdGVwIHZhbDogU0VMRUNUIG15 dmFyOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVwIGRiZzogU0VMRUNUIHNj aGVtYSwgbmFtZSwgcmVtb3ZlZCBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CitzY2hlbWF8 bmFtZSB8cmVtb3ZlZAorLS0tLS0tKy0tLS0tKy0tLS0tLS0KK3B1YmxpY3xteXZhcnxmICAgICAg CisoMSByb3cpCisKK3N0ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBteXZhcjsKK3N0ZXAgY3JlYXRl OiBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsKK3N0ZXAgZGJnOiBTRUxFQ1Qgc2NoZW1h LCBuYW1lLCByZW1vdmVkIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKK3NjaGVtYXxuYW1l fHJlbW92ZWQKKy0tLS0tLSstLS0tKy0tLS0tLS0KKyAgICAgIHwgICAgfHQgICAgICAKKygxIHJv dykKKworc3RlcCB2YWw6IFNFTEVDVCBteXZhcjsKK215dmFyCistLS0tLQorICAgICAKKygxIHJv dykKKworCitzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBzMSBkYmcgZHJvcCBjcmVhdGUg ZGJnIHZhbCBzcjEKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7CitzdGVwIHZhbDogU0VM RUNUIG15dmFyOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVwIHMxOiBCRUdJ TjsKK3N0ZXAgZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00gcGdfc2Vzc2lv bl92YXJpYWJsZXMoKTsKK3NjaGVtYXxuYW1lIHxyZW1vdmVkCistLS0tLS0rLS0tLS0rLS0tLS0t LQorcHVibGljfG15dmFyfGYgICAgICAKKygxIHJvdykKKworc3RlcCBkcm9wOiBEUk9QIFZBUklB QkxFIG15dmFyOworc3RlcCBjcmVhdGU6IENSRUFURSBWQVJJQUJMRSBteXZhciBBUyB0ZXh0Owor c3RlcCBkYmc6IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBwZ19zZXNzaW9uX3Zh cmlhYmxlcygpOworc2NoZW1hfG5hbWUgfHJlbW92ZWQKKy0tLS0tLSstLS0tLSstLS0tLS0tCitw dWJsaWN8bXl2YXJ8ZiAgICAgIAorKDEgcm93KQorCitzdGVwIHZhbDogU0VMRUNUIG15dmFyOwor bXl2YXIKKy0tLS0tCisgICAgIAorKDEgcm93KQorCitzdGVwIHNyMTogUk9MTEJBQ0s7CisKK3N0 YXJ0aW5nIHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRy b3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQorc3RlcCBjcmVhdGUzOiBDUkVBVEUgVkFSSUFC TEUgbXl2YXIzIEFTIHRleHQ7CitzdGVwIGxldDM6IExFVCBteXZhcjMgPSAndGVzdCc7CitzdGVw IHMzOiBCRUdJTjsKK3N0ZXAgY3JlYXRlNDogQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0 Oworc3RlcCBsZXQ0OiBMRVQgbXl2YXI0ID0gJ3Rlc3QnOworc3RlcCBkcm9wNDogRFJPUCBWQVJJ QUJMRSBteXZhcjQ7CitzdGVwIGRyb3AzOiBEUk9QIFZBUklBQkxFIG15dmFyMzsKK3N0ZXAgaW52 YWwzOiBTRUxFQ1QgQ09VTlQoKikgPj0gMCBGUk9NIHBnX2ZvcmVpZ25fdGFibGU7Cis/Y29sdW1u PworLS0tLS0tLS0KK3QgICAgICAgCisoMSByb3cpCisKK3N0ZXAgZGlzY2FyZDogRElTQ0FSRCBW QVJJQUJMRVM7CitzdGVwIHNjMzogQ09NTUlUOworc3RlcCBzdGF0ZTogU0VMRUNUIHZhcm5hbWUg RlJPTSBwZ192YXJpYWJsZTsKK3Zhcm5hbWUKKy0tLS0tLS0KK215dmFyICAKKygxIHJvdykKKwpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZSBiL3NyYy90 ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKaW5kZXggMTQzMTA5YWE0ZGEuLjc0NTM2 ODVkMDQ2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxl CisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUKQEAgLTExNSwzICsx MTUsNCBAQCB0ZXN0OiBzZXJpYWxpemFibGUtcGFyYWxsZWwtMgogdGVzdDogc2VyaWFsaXphYmxl LXBhcmFsbGVsLTMKIHRlc3Q6IG1hdHZpZXctd3JpdGUtc2tldwogdGVzdDogbG9jay1ub3dhaXQK K3Rlc3Q6IHNlc3Npb24tdmFyaWFibGUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9z cGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vz c2lvbi12YXJpYWJsZS5zcGVjCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li5jODY0ZmVlNDAwNgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVj cy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKQEAgLTAsMCArMSw1MCBAQAorIyBUZXN0IHNlc3Npb24g dmFyaWFibGVzIG1lbW9yeSBjbGVhbnVwIGZvciBzaW52YWwKKworc2V0dXAKK3sKKyAgICBDUkVB VEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsKK30KKwordGVhcmRvd24KK3sKKyAgICBEUk9QIFZB UklBQkxFIElGIEVYSVNUUyBteXZhcjsKK30KKworc2Vzc2lvbiBzMQorc3RlcCBzMQkJeyBCRUdJ TjsgfQorc3RlcCBsZXQJeyBMRVQgbXl2YXIgPSAndGVzdCc7IH0KK3N0ZXAgdmFsCXsgU0VMRUNU IG15dmFyOyB9CitzdGVwIGRiZwl7IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpOyB9CitzdGVwIHNyMQl7IFJPTExCQUNLOyB9CisKK3Nlc3Np b24gczIKK3N0ZXAgZHJvcAkJeyBEUk9QIFZBUklBQkxFIG15dmFyOyB9CitzdGVwIGNyZWF0ZQkJ eyBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsgfQorCitzZXNzaW9uIHMzCitzdGVwIHMz CQkJeyBCRUdJTjsgfQorc3RlcCBsZXQzCQl7IExFVCBteXZhcjMgPSAndGVzdCc7IH0KK3N0ZXAg Y3JlYXRlNAl7IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsgfQorc3RlcCBsZXQ0CQl7 IExFVCBteXZhcjQgPSAndGVzdCc7IH0KK3N0ZXAgZHJvcDQJCXsgRFJPUCBWQVJJQUJMRSBteXZh cjQ7IH0KK3N0ZXAgaW52YWwzCQl7IFNFTEVDVCBDT1VOVCgqKSA+PSAwIEZST00gcGdfZm9yZWln bl90YWJsZTsgfQorc3RlcCBkaXNjYXJkCXsgRElTQ0FSRCBWQVJJQUJMRVM7IH0KK3N0ZXAgc2Mz CQl7IENPTU1JVDsgfQorc3RlcCBzdGF0ZQkJeyBTRUxFQ1QgdmFybmFtZSBGUk9NIHBnX3Zhcmlh YmxlOyB9CisKK3Nlc3Npb24gczQKK3N0ZXAgY3JlYXRlMwl7IENSRUFURSBWQVJJQUJMRSBteXZh cjMgQVMgdGV4dDsgfQorc3RlcCBkcm9wMwkJeyBEUk9QIFZBUklBQkxFIG15dmFyMzsgfQorCisj IENvbmN1cnJlbnQgZHJvcCBvZiBhIGtub3duIHZhcmlhYmxlIHNob3VsZCBsZWFkIHRvIGFuIGVy cm9yCitwZXJtdXRhdGlvbiBsZXQgdmFsIGRyb3AgdmFsCisjIFNhbWUsIGJ1dCB3aXRoIGFuIGV4 cGxpY2l0IHRyYW5zYWN0aW9uCitwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRyb3AgdmFsIHNyMQor IyBDb25jdXJyZW50IGRyb3AvY3JlYXRlIG9mIGEga25vd24gdmFyaWFibGUgc2hvdWxkIGxlYWQg dG8gZW1wdHkgdmFyaWFibGUKK3Blcm11dGF0aW9uIGxldCB2YWwgZGJnIGRyb3AgY3JlYXRlIGRi ZyB2YWwKKyMgQ29uY3VycmVudCBkcm9wL2NyZWF0ZSBvZiBhIGtub3duIHZhcmlhYmxlIHNob3Vs ZCBsZWFkIHRvIGVtcHR5IHZhcmlhYmxlCisjIFdlIG5lZWQgYSB0cmFuc2FjdGlvbiB0byBtYWtl IHN1cmUgdGhhdCB3ZSB3b24ndCBhY2NlcHQgaW52YWxpZGF0aW9uIHdoZW4KKyMgY2FsbGluZyB0 aGUgZGJnIHN0ZXAgYWZ0ZXIgdGhlIGNvbmN1cnJlbnQgZHJvcAorcGVybXV0YXRpb24gbGV0IHZh bCBzMSBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbCBzcjEKKyMgdGVzdCBmb3IgRElTQ0FSRCBBTEwg d2hlbiBhbGwgaW50ZXJuYWwgcXVldWVzIGhhdmUgYWN0aW9ucyByZWdpc3RlcmVkCitwZXJtdXRh dGlvbiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNj YXJkIHNjMyBzdGF0ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzLm91dAppbmRleCA4ZTNmNjU2OGUyYi4uZGQxMzhiYmRkZGQgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0xNzE4LDMgKzE3 MTgsMjIwIEBAIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CiAg ICAgIDAKICgxIHJvdykKIAorLS0gZHJvcHBlZCB2YXJpYWJsZXMgc2hvdWxkIGJlIHJlbW92ZWQg ZnJvbSBtZW1vcnkgYmVmb3JlIHRoZSBuZXh0IHVzYWdlCistLSBvZiBhbnkgc2Vzc2lvbiB2YXJp YWJsZSBpbiB0aGUgbmV4dCB0cmFuc2FjdGlvbgorTEVUIHZhcjEgPSAnQWhvaic7CitTRUxFQ1Qg bmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3VwZGF0ZSBGUk9NIHBnX3Nlc3Npb25fdmFy aWFibGVzKCk7CisgbmFtZSB8ICAgICAgdHlwbmFtZSAgICAgIHwgY2FuX3NlbGVjdCB8IGNhbl91 cGRhdGUgCistLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tCisgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgdCAgICAgICAgICB8IHQKKygxIHJvdykK KworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkgV0hFUkUgTk9UIHJlbW92ZWQ7CisgY291bnQg CistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworLS0gdGhlIGNvbnRlbnQgb2YgdGhlIHZhbHVl IHNob3VsZCBiZSBwcmVzZXJ2ZWQgd2hlbiBhIHZhcmlhYmxlIGlzIGRyb3BwZWQKKy0tIGJ5IGFu IGFib3J0ZWQgdHJhbnNhY3Rpb24KK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXI7CitM RVQgdmFyMSA9ICdBaG9qJzsKK0JFR0lOOworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gc2hvdWxk IGZhaWwKK1NFTEVDVCB2YXIxOworRVJST1I6ICBjb2x1bW4gInZhcjEiIGRvZXMgbm90IGV4aXN0 CitMSU5FIDE6IFNFTEVDVCB2YXIxOworICAgICAgICAgICAgICAgXgorUk9MTEJBQ0s7CistLSBz aG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyBBaG9qCisoMSByb3cp CisKKy0tIGFub3RoZXIgdGVzdAorQkVHSU47CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwMDsKKy0tIHNob3VsZCBiZSBvaywg cmVzdWx0IDEwMAorU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykK KworUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgb2ssIHJlc3VsdCAnQWhvaicKK1NFTEVDVCB2YXIx OworIHZhcjEgCistLS0tLS0KKyBBaG9qCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsK Ky0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3Zhcmlh YmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSBy b3cpCisKK0JFR0lOOworICBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisgIExFVCB2YXIx ID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQor CisgIFNFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdf c2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBuYW1lIHwgdHlwbmFtZSB8IGNhbl9zZWxlY3QgfCBjYW5f dXBkYXRlIAorLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgdmFy MSB8IGludGVnZXIgfCB0ICAgICAgICAgIHwgdAorKDEgcm93KQorCisgIERST1AgVkFSSUFCTEUg dmFyMTsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOworIGNvdW50IAorLS0tLS0t LQorICAgICAwCisoMSByb3cpCisKK0JFR0lOOworICBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBp bnQ7CisgIExFVCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisg IDEwMAorKDEgcm93KQorCisgIFNFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5f dXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBuYW1lIHwgdHlwbmFtZSB8IGNh bl9zZWxlY3QgfCBjYW5fdXBkYXRlIAorLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tCisgdmFyMSB8IGludGVnZXIgfCB0ICAgICAgICAgIHwgdAorKDEgcm93KQorCisg IERST1AgVkFSSUFCTEUgdmFyMTsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1Qg Y291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOwor IGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGludDsKK0xFVCB2YXIxID0gMTA7CitM RVQgdmFyMiA9IDA7CitCRUdJTjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxFIHZh cjE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJp YWJsZQorICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCisg IFJPTExCQUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUgdmFyMTsK KyAgU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworICBST0xM QkFDSyBUTyBzMjsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFy MSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAg RFJPUCBWQVJJQUJMRSB2YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90 aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAg IDAKKygxIHJvdykKKworICBST0xMQkFDSyBUTyBzMTsKKyAgU0FWRVBPSU5UIHMyOworICBEUk9Q IFZBUklBQkxFIHZhcjE7CisgIFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0KKyAgICAwCiso MSByb3cpCisKK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIx IAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitCRUdJTjsKKyAgU0FWRVBPSU5UIHMxOworICBE Uk9QIFZBUklBQkxFIHZhcjE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3Ro ZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisgICAg MAorKDEgcm93KQorCisgIFNBVkVQT0lOVCBzMjsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91 Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworIHZhcjIgCist LS0tLS0KKyAgICAwCisoMSByb3cpCisKKyAgUk9MTEJBQ0sgVE8gczE7CisgIC0tIGZvcmNlIGNs ZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFy MjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCitDT01NSVQ7CistLSBzaG91bGQg YmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKKy0t IHJlcGVhdGVkIGFib3J0ZWQgdHJhbnNhY3Rpb24KK0JFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7 IFJPTExCQUNLOworQkVHSU47IERST1AgVkFSSUFCTEUgdmFyMTsgUk9MTEJBQ0s7CitCRUdJTjsg RFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZh cjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIx LCB2YXIyOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCmluZGV4 IDkwZDAzZjc3YTkxLi43NGZjZWRjOGYwZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Np b25fdmFyaWFibGVzLnNxbApAQCAtMTIwOCwzICsxMjA4LDEyMyBAQCBESVNDQVJEIFZBUklBQkxF UzsKIAogLS0gc2hvdWxkIGJlIHplcm8gYWdhaW4KIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nl c3Npb25fdmFyaWFibGVzKCk7CisKKy0tIGRyb3BwZWQgdmFyaWFibGVzIHNob3VsZCBiZSByZW1v dmVkIGZyb20gbWVtb3J5IGJlZm9yZSB0aGUgbmV4dCB1c2FnZQorLS0gb2YgYW55IHNlc3Npb24g dmFyaWFibGUgaW4gdGhlIG5leHQgdHJhbnNhY3Rpb24KKworTEVUIHZhcjEgPSAnQWhvaic7CitT RUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3VwZGF0ZSBGUk9NIHBnX3Nlc3Np b25fdmFyaWFibGVzKCk7CitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHNob3VsZCBiZSB6ZXJv CitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCBy ZW1vdmVkOworCistLSB0aGUgY29udGVudCBvZiB0aGUgdmFsdWUgc2hvdWxkIGJlIHByZXNlcnZl ZCB3aGVuIGEgdmFyaWFibGUgaXMgZHJvcHBlZAorLS0gYnkgYW4gYWJvcnRlZCB0cmFuc2FjdGlv bgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhcjsKK0xFVCB2YXIxID0gJ0Fob2onOwor QkVHSU47CitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFy MTsKKworUk9MTEJBQ0s7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKKy0tIGFu b3RoZXIgdGVzdAorQkVHSU47CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwMDsKKy0tIHNob3VsZCBiZSBvaywgcmVzdWx0IDEw MAorU0VMRUNUIHZhcjE7CitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaywgcmVzdWx0ICdBaG9q JworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGJlIHpl cm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkgV0hFUkUgTk9U IHJlbW92ZWQ7CisKK0JFR0lOOworICBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisgIExF VCB2YXIxID0gMTAwOworICBTRUxFQ1QgdmFyMTsKKyAgU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNh bl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworICBEUk9Q IFZBUklBQkxFIHZhcjE7CitDT01NSVQ7CisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291 bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOworCitC RUdJTjsKKyAgQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworICBMRVQgdmFyMSA9IDEwMDsK KyAgU0VMRUNUIHZhcjE7CisgIFNFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5f dXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIx OworQ09NTUlUOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdf c2Vzc2lvbl92YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKworQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgaW50OworTEVUIHZhcjEgPSAx MDsKK0xFVCB2YXIyID0gMDsKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFC TEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9u IHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworICBST0xMQkFDSyBUTyBzMTsKKyAgU0FWRVBPSU5U IHMyOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIFNFTEVDVCB2YXIyOworICBST0xMQkFDSyBU TyBzMjsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKK0JFR0lOOwor ICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xlYW5p bmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOwor ICBST0xMQkFDSyBUTyBzMTsKKyAgU0FWRVBPSU5UIHMyOworICBEUk9QIFZBUklBQkxFIHZhcjE7 CisgIFNFTEVDVCB2YXIyOworUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIx OworCitCRUdJTjsKKyAgU0FWRVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIC0t IGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBT RUxFQ1QgdmFyMjsKKworICBTQVZFUE9JTlQgczI7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRv dWNoaW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKyAgUk9MTEJB Q0sgVE8gczE7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNoaW5nIGFub3RoZXIgc2Vzc2lv biB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSBvaworU0VM RUNUIHZhcjE7CisKKy0tIHJlcGVhdGVkIGFib3J0ZWQgdHJhbnNhY3Rpb24KK0JFR0lOOyBEUk9Q IFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOworQkVHSU47IERST1AgVkFSSUFCTEUgdmFyMTsgUk9M TEJBQ0s7CitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFDSzsKKworLS0gc2hvdWxk IGJlIG9rCitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIyOwotLSAKMi40 Ny4xCgo= --000000000000f297a7062b2456dc Content-Type: text/x-patch; charset="US-ASCII"; name="v20250107-0004-DISCARD-VARIABLES.patch" Content-Disposition: attachment; filename="v20250107-0004-DISCARD-VARIABLES.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5mz6bqa18 RnJvbSBjNjYwYTU4ZjM0NWY2OTY3MjAzZTU2YjNmYTk2YjM0YjZhZjlmMDBlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjA6NTQ6MjAgKzAxMDAKU3ViamVjdDogW1BBVENIIDA0 LzIyXSBESVNDQVJEIFZBUklBQkxFUwoKSW1wbGVtZW50YXRpb24gb2YgRElTQ0FSRCBWQVJJQUJM RVMgY29tbWFuZHMgYnkgcmVtb3ZpbmcgaGFzaCB0YWJsZSB3aXRoIHNlc3Npb24gdmFyaWFibGVz CmFuZCByZXNldHRpbmcgcmVsYXRlZCBtZW1vcnkgY29udGV4dC4KLS0tCiBkb2Mvc3JjL3NnbWwv cmVmL2Rpc2NhcmQuc2dtbCAgICAgICAgICAgICAgICAgfCAxMyArKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kaXNjYXJkLmMgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgMjggKysrKysrKystCiBzcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgIDMgKwogc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oICAgICAgICAgICAgICAgICB8ICAxICsKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dCAgICB8IDYzICsrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDM2ICsrKysrKysrKysrCiAxMSBm aWxlcyBjaGFuZ2VkLCAxNTggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZGlz Y2FyZC5zZ21sCmluZGV4IGJmNDRjNTIzY2FjLi42MWI5NjdmOWM5YiAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJk LnNnbWwKQEAgLTIxLDcgKzIxLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAKICA8cmVm c3lub3BzaXNkaXY+CiA8c3lub3BzaXM+Ci1ESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBTRVFVRU5D RVMgfCBURU1QT1JBUlkgfCBURU1QIH0KK0RJU0NBUkQgeyBBTEwgfCBQTEFOUyB8IFNFUVVFTkNF UyB8IFRFTVBPUkFSWSB8IFRFTVAgfCBWQVJJQUJMRVMgfQogPC9zeW5vcHNpcz4KICA8L3JlZnN5 bm9wc2lzZGl2PgogCkBAIC02Niw2ICs2NiwxNiBAQCBESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBT RVFVRU5DRVMgfCBURU1QT1JBUlkgfCBURU1QIH0KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJs aXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+VkFSSUFC TEVTPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg UmVzZXRzIHRoZSB2YWx1ZSBvZiBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUK KyAgICAgIGlzIGxhdGVyIHJldXNlZCwgaXQgaXMgcmUtaW5pdGlhbGl6ZWQgdG8gPGxpdGVyYWw+ TlVMTDwvbGl0ZXJhbD4uCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PGxpdGVyYWw+VEVNUE9S QVJZPC9saXRlcmFsPiBvciA8bGl0ZXJhbD5URU1QPC9saXRlcmFsPjwvdGVybT4KICAgICA8bGlz dGl0ZW0+CkBAIC05Myw2ICsxMDMsNyBAQCBTRUxFQ1QgcGdfYWR2aXNvcnlfdW5sb2NrX2FsbCgp OwogRElTQ0FSRCBQTEFOUzsKIERJU0NBUkQgVEVNUDsKIERJU0NBUkQgU0VRVUVOQ0VTOworRElT Q0FSRCBWQVJJQUJMRVM7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KICAgICA8L2xpc3RpdGVt PgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9k aXNjYXJkLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJkLmMKaW5kZXggODEzMzlhNzVh NTIuLjU5MDRhNmM0OTE3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJk LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jCkBAIC0xOCw2ICsxOCw3IEBA CiAjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kaXNjYXJk LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJlcGFyZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXF1ZW5jZS5oIgogI2luY2x1 ZGUgInV0aWxzL2d1Yy5oIgogI2luY2x1ZGUgInV0aWxzL3BvcnRhbC5oIgpAQCAtNDgsNiArNDks MTAgQEAgRGlzY2FyZENvbW1hbmQoRGlzY2FyZFN0bXQgKnN0bXQsIGJvb2wgaXNUb3BMZXZlbCkK IAkJCVJlc2V0VGVtcFRhYmxlTmFtZXNwYWNlKCk7CiAJCQlicmVhazsKIAorCQljYXNlIERJU0NB UkRfVkFSSUFCTEVTOgorCQkJUmVzZXRTZXNzaW9uVmFyaWFibGVzKCk7CisJCQlicmVhazsKKwog CQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBESVNDQVJEIHRhcmdldDog JWQiLCBzdG10LT50YXJnZXQpOwogCX0KQEAgLTc1LDQgKzgwLDUgQEAgRGlzY2FyZEFsbChib29s IGlzVG9wTGV2ZWwpCiAJUmVzZXRQbGFuQ2FjaGUoKTsKIAlSZXNldFRlbXBUYWJsZU5hbWVzcGFj ZSgpOwogCVJlc2V0U2VxdWVuY2VDYWNoZXMoKTsKKwlSZXNldFNlc3Npb25WYXJpYWJsZXMoKTsK IH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBi L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCAwMmU2YTk3MWIy NC4uNGRjMjA3Y2ZkNWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25f dmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMK QEAgLTk0LDcgKzk0LDEzIEBAIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywg aW50IGNhY2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCiAKIAllbG9nKERFQlVHMSwgInBnX3Zhcmlh YmxlX2NhY2hlX2NhbGxiYWNrICV1ICV1IiwgY2FjaGVpZCwgaGFzaHZhbHVlKTsKIAotCUFzc2Vy dChzZXNzaW9udmFycyk7CisJLyoKKwkgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgb2Ygc2Vzc2lv biB2YXJpYWJsZXMgYmVpbmcgaW5pdGlhbGl6ZWQsIGV2ZW4gd2hlbgorCSAqIHJlY2VpdmluZyBh biBpbnZhbGlkYXRpb24gY2FsbGJhY2ssIGFzIERJU0NBUkQgWyBBTEwgfCBWQVJJQUJMRVMgXQor CSAqIGRlc3Ryb3lzIHRoZSBoYXNoIHRhYmxlIGVudGlyZWx5LgorCSAqLworCWlmICghc2Vzc2lv bnZhcnMpCisJCXJldHVybjsKIAogCS8qCiAJICogSWYgdGhlIGhhc2h2YWx1ZSBpcyBub3Qgc3Bl Y2lmaWVkLCB3ZSBoYXZlIHRvIHJlY2hlY2sgYWxsIGN1cnJlbnRseQpAQCAtNjQzLDMgKzY0OSwy MyBAQCBwZ19zZXNzaW9uX3ZhcmlhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCiAJcmV0dXJuIChE YXR1bSkgMDsKIH0KKworLyoKKyAqIEZhc3QgZHJvcCBvZiB0aGUgY29tcGxldGUgY29udGVudCBv ZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZXMgaGFzaCB0YWJsZSwgYW5kCisgKiBjbGVhbnVwIG9mIGFu eSBsaXN0IHRoYXQgd291bGRuJ3QgYmUgcmVsZXZhbnQgYW55bW9yZS4KKyAqIFRoaXMgaXMgdXNl ZCBieSB0aGUgRElTQ0FSRCBWQVJJQUJMRVMgKGFuZCBESVNDQVJEIEFMTCkgY29tbWFuZC4KKyAq Lwordm9pZAorUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpCit7CisJLyogZGVzdHJveSBoYXNo IHRhYmxlIGFuZCByZXNldCByZWxhdGVkIG1lbW9yeSBjb250ZXh0ICovCisJaWYgKHNlc3Npb252 YXJzKQorCXsKKwkJaGFzaF9kZXN0cm95KHNlc3Npb252YXJzKTsKKwkJc2Vzc2lvbnZhcnMgPSBO VUxMOworCX0KKworCS8qIHJlbGVhc2UgbWVtb3J5IGFsbG9jYXRlZCBieSBzZXNzaW9uIHZhcmlh YmxlcyAqLworCWlmIChTVmFyaWFibGVNZW1vcnlDb250ZXh0ICE9IE5VTEwpCisJCU1lbW9yeUNv bnRleHRSZXNldChTVmFyaWFibGVNZW1vcnlDb250ZXh0KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGE0 MTUwZjg5OWI5Li43ZTcxNThhYzA5OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0yMDc2LDcgKzIwNzYsMTMg QEAgRGlzY2FyZFN0bXQ6CiAJCQkJCW4tPnRhcmdldCA9IERJU0NBUkRfU0VRVUVOQ0VTOwogCQkJ CQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBESVNDQVJEIFZBUklBQkxFUworCQkJCXsK KwkJCQkJRGlzY2FyZFN0bXQgKm4gPSBtYWtlTm9kZShEaXNjYXJkU3RtdCk7CiAKKwkJCQkJbi0+ dGFyZ2V0ID0gRElTQ0FSRF9WQVJJQUJMRVM7CisJCQkJCSQkID0gKE5vZGUgKikgbjsKKwkJCQl9 CiAJCTsKIAogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9i YWNrZW5kL3Rjb3AvdXRpbGl0eS5jCmluZGV4IDdhNTA4YTM2NDRmLi42ZTRkMjMxMGY1YyAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNv cC91dGlsaXR5LmMKQEAgLTI5NjIsNiArMjk2Miw5IEBAIENyZWF0ZUNvbW1hbmRUYWcoTm9kZSAq cGFyc2V0cmVlKQogCQkJCWNhc2UgRElTQ0FSRF9TRVFVRU5DRVM6CiAJCQkJCXRhZyA9IENNRFRB R19ESVNDQVJEX1NFUVVFTkNFUzsKIAkJCQkJYnJlYWs7CisJCQkJY2FzZSBESVNDQVJEX1ZBUklB QkxFUzoKKwkJCQkJdGFnID0gQ01EVEFHX0RJU0NBUkRfVkFSSUFCTEVTOworCQkJCQlicmVhazsK IAkJCQlkZWZhdWx0OgogCQkJCQl0YWcgPSBDTURUQUdfVU5LTk9XTjsKIAkJCX0KZGlmZiAtLWdp dCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29t cGxldGUuaW4uYwppbmRleCBhY2JmNTFlZjJlNy4uZDc4Y2VmMzZhZDggMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmluLmMKQEAgLTQxMTMsNyArNDExMyw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBw YXR0ZXJuX2lkLAogCiAvKiBESVNDQVJEICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiRElTQ0FSRCIp KQotCQlDT01QTEVURV9XSVRIKCJBTEwiLCAiUExBTlMiLCAiU0VRVUVOQ0VTIiwgIlRFTVAiKTsK KwkJQ09NUExFVEVfV0lUSCgiQUxMIiwgIlBMQU5TIiwgIlNFUVVFTkNFUyIsICJURU1QIiwgIlZB UklBQkxFUyIpOwogCiAvKiBETyAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkRPIikpCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVk ZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggNjlhOGU2YjA5ZmMuLjQzZmNlODgw MzE0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgK KysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCkBAIC0yOCw0ICsy OCw2IEBAIGV4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlwZUNoZWNrKE9pZCB2 YXJpZCwgYm9vbCAqaXNOdWxsLCBPaWQgZXhwZWN0CiBleHRlcm4gdm9pZCBFeGVjdXRlTGV0U3Rt dChQYXJzZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQsIFBhcmFtTGlzdEluZm8gcGFyYW1z LAogCQkJCQkJICAgUXVlcnlFbnZpcm9ubWVudCAqcXVlcnlFbnYsIFF1ZXJ5Q29tcGxldGlvbiAq cWMpOwogCitleHRlcm4gdm9pZCBSZXNldFNlc3Npb25WYXJpYWJsZXModm9pZCk7CisKICNlbmRp ZgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGI0MTdiNTZjMmEzLi45MzI0MWJkNTViOCAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMzk4OCw2ICszOTg4LDcgQEAgdHlwZWRlZiBlbnVtIERp c2NhcmRNb2RlCiAJRElTQ0FSRF9QTEFOUywKIAlESVNDQVJEX1NFUVVFTkNFUywKIAlESVNDQVJE X1RFTVAsCisJRElTQ0FSRF9WQVJJQUJMRVMsCiB9IERpc2NhcmRNb2RlOwogCiB0eXBlZGVmIHN0 cnVjdCBEaXNjYXJkU3RtdApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0 LmggYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRleCAyMjA4MmMzMDAwOC4uYmVm MGFjMjUzMzEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBi L3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC0xMzUsNiArMTM1LDcgQEAgUEdfQ01E VEFHKENNRFRBR19ESVNDQVJEX0FMTCwgIkRJU0NBUkQgQUxMIiwgZmFsc2UsIGZhbHNlLCBmYWxz ZSkKIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FSRF9QTEFOUywgIkRJU0NBUkQgUExBTlMiLCBmYWxz ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ESVNDQVJEX1NFUVVFTkNFUywgIkRJ U0NBUkQgU0VRVUVOQ0VTIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdf RElTQ0FSRF9URU1QLCAiRElTQ0FSRCBURU1QIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKK1BHX0NN RFRBRyhDTURUQUdfRElTQ0FSRF9WQVJJQUJMRVMsICJESVNDQVJEIFZBUklBQkxFUyIsIGZhbHNl LCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RPLCAiRE8iLCBmYWxzZSwgZmFsc2Us IGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX0FDQ0VTU19NRVRIT0QsICJEUk9QIEFDQ0VT UyBNRVRIT0QiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfQUdH UkVHQVRFLCAiRFJPUCBBR0dSRUdBVEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDc3MjU4NTcw ZWEyLi44ZTNmNjU2OGUyYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTE2NTUsMyArMTY1NSw2NiBAQCBEUk9QIFZBUklBQkxFIDoi REJOQU1FIi46IkRCTkFNRSIuYjsKIERST1AgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi46 IkRCTkFNRSI7CiBEUk9QIFNDSEVNQSA6IkRCTkFNRSI7CiBSRVNFVCBzZWFyY2hfcGF0aDsKKy0t IG1lbW9yeSBjbGVhbmluZyBieSBESVNDQVJEIGNvbW1hbmQKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIHZhcmNoYXI7CitMRVQgdmFyMSA9ICdIZWxsbyc7CitTRUxFQ1QgdmFyMTsKKyB2YXIxICAK Ky0tLS0tLS0KKyBIZWxsbworKDEgcm93KQorCitESVNDQVJEIEFMTDsKK1NFTEVDVCB2YXIxOwor IHZhcjEgCistLS0tLS0KKyAKKygxIHJvdykKKworTEVUIHZhcjEgPSAnQUhPSic7CitTRUxFQ1Qg dmFyMTsKKyB2YXIxIAorLS0tLS0tCisgQUhPSgorKDEgcm93KQorCitESVNDQVJEIFZBUklBQkxF UzsKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAKKygxIHJvdykKKworRFJPUCBWQVJJ QUJMRSB2YXIxOworLS0gaW5pdGlhbCB0ZXN0IG9mIGRlYnVnIHBnX3Nlc3Npb25fdmFyaWFibGVz IGZ1bmN0aW9uCistLSBzaG91bGQgYmUgemVybyBub3cKK0RJU0NBUkQgVkFSSUFCTEVTOworU0VM RUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0t LS0KKyAgICAgMAorKDEgcm93KQorCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOwor LS0gc2hvdWxkIGJlIHplcm8gc3RpbGwKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25f dmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworTEVUIHZh cjEgPSAnQUhPSic7CitTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3VwZGF0 ZSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgbmFtZSB8ICAgICAgdHlwbmFtZSAgICAg IHwgY2FuX3NlbGVjdCB8IGNhbl91cGRhdGUgCistLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgdCAg ICAgICAgICB8IHQKKygxIHJvdykKKworRElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91bGQgYmUg emVybyBhZ2FpbgorU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsK KyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggYmE1MWMxODU4OWMuLjkwZDAzZjc3YTkxIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xMTcyLDMg KzExNzIsMzkgQEAgRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJOQU1FIjsK IERST1AgU0NIRU1BIDoiREJOQU1FIjsKIAogUkVTRVQgc2VhcmNoX3BhdGg7CisKKy0tIG1lbW9y eSBjbGVhbmluZyBieSBESVNDQVJEIGNvbW1hbmQKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZh cmNoYXI7CitMRVQgdmFyMSA9ICdIZWxsbyc7CitTRUxFQ1QgdmFyMTsKKworRElTQ0FSRCBBTEw7 CitTRUxFQ1QgdmFyMTsKKworTEVUIHZhcjEgPSAnQUhPSic7CitTRUxFQ1QgdmFyMTsKKworRElT Q0FSRCBWQVJJQUJMRVM7CitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCist LSBpbml0aWFsIHRlc3Qgb2YgZGVidWcgcGdfc2Vzc2lvbl92YXJpYWJsZXMgZnVuY3Rpb24KKy0t IHNob3VsZCBiZSB6ZXJvIG5vdworRElTQ0FSRCBWQVJJQUJMRVM7CisKK1NFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFT IHZhcmNoYXI7CisKKy0tIHNob3VsZCBiZSB6ZXJvIHN0aWxsCitTRUxFQ1QgY291bnQoKikgRlJP TSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitMRVQgdmFyMSA9ICdBSE9KJzsKKworU0VMRUNU IG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3Zh cmlhYmxlcygpOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxkIGJlIHplcm8gYWdh aW4KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7Ci0tIAoyLjQ3 LjEKCg== --000000000000f297a7062b2456dc Content-Type: text/x-patch; charset="US-ASCII"; name="v20250107-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Disposition: attachment; filename="v20250107-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5mz6br119 RnJvbSA3NTNmMzU5NzQyNmRhNjI0ZmFjMDAyZjFmYjI3M2ZiMTY1Yzc1YmRlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMjA6MDE6NTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDAz LzIyXSBmdW5jdGlvbiBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmb3IgY2xlYW5pbmcgdGVzdHMKClRo aXMgaXMgYSBmdW5jdGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQg cmV0dXJucyB0aGUKY29udGVudCBvZiBzZXNzaW9udmFycyBhcy1pcywgYW5kIGNhbiB0aGVyZWZv cmUgZGlzcGxheSBlbnRyaWVzIGFib3V0CnNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9w cGVkIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndApwcm9jZXNzIHRoZSBzaGFyZWQg aW52YWxpZGF0aW9ucyB5ZXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICAgIHwgIDggKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEwMCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDE1 NjYyOTZhODU1Li4wMmU2YTk3MWIyNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwpAQCAtNTUxLDMgKzU1MSw5NSBAQCBFeGVjdXRlTGV0U3RtdChQYXJzZVN0YXRlICpw c3RhdGUsCiAKIAlQb3BBY3RpdmVTbmFwc2hvdCgpOwogfQorCisvKgorICogcGdfc2Vzc2lvbl92 YXJpYWJsZXMgLSBkZXNpZ25lZCBmb3IgdGVzdGluZworICoKKyAqIFRoaXMgaXMgYSBmdW5jdGlv biBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQgcmV0dXJucyB0aGUKKyAq IGNvbnRlbnQgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXMtaXMsIGFuZCBjYW4gdGhlcmVmb3JlIGRp c3BsYXkgZGF0YSBhYm91dAorICogc2Vzc2lvbiB2YXJpYWJsZXMgdGhhdCB3ZXJlIGRyb3BwZWQs IGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndAorICogcHJvY2VzcyB0aGUgc2hhcmVk IGludmFsaWRhdGlvbnMgeWV0LgorICovCitEYXR1bQorcGdfc2Vzc2lvbl92YXJpYWJsZXMoUEdf RlVOQ1RJT05fQVJHUykKK3sKKyNkZWZpbmUgTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFMg OAorCisJSW5pdE1hdGVyaWFsaXplZFNSRihmY2luZm8sIDApOworCisJaWYgKHNlc3Npb252YXJz KQorCXsKKwkJUmV0dXJuU2V0SW5mbyAqcnNpbmZvID0gKFJldHVyblNldEluZm8gKikgZmNpbmZv LT5yZXN1bHRpbmZvOworCQlIQVNIX1NFUV9TVEFUVVMgc3RhdHVzOworCQlTVmFyaWFibGUJc3Zh cjsKKworCQloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJzKTsKKworCQl3aGlsZSAo KHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1cykpICE9IE5VTEwpCisJ CXsKKwkJCURhdHVtCQl2YWx1ZXNbTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFNdOworCQkJ Ym9vbAkJbnVsbHNbTlVNX1BHX1NFU1NJT05fVkFSSUFCTEVTX0FUVFNdOworCQkJSGVhcFR1cGxl CXRwOworCQkJYm9vbAkJdmFyX2lzX3ZhbGlkID0gZmFsc2U7CisKKwkJCW1lbXNldCh2YWx1ZXMs IDAsIHNpemVvZih2YWx1ZXMpKTsKKwkJCW1lbXNldChudWxscywgMCwgc2l6ZW9mKG51bGxzKSk7 CisKKwkJCXZhbHVlc1swXSA9IE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dmFyaWQpOworCQkJdmFs dWVzWzNdID0gT2JqZWN0SWRHZXREYXR1bShzdmFyLT50eXBpZCk7CisKKwkJCS8qCisJCQkgKiBJ dCBpcyBwb3NzaWJsZSB0aGF0IHRoZSB2YXJpYWJsZSBoYXMgYmVlbiBkcm9wcGVkIGZyb20gdGhl CisJCQkgKiBjYXRhbG9nLCBidXQgbm90IHlldCBwdXJnZWQgZnJvbSB0aGUgaGFzaCB0YWJsZS4K KwkJCSAqLworCQkJdHAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0 RGF0dW0oc3Zhci0+dmFyaWQpKTsKKworCQkJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHApKQorCQkJ eworCQkJCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRT VFJVQ1QodHApOworCisJCQkJLyoKKwkJCQkgKiBJdCBpcyBhbHNvIHBvc3NpYmxlIHRoYXQgYSB2 YXJpYWJsZSBoYXMgYmVlbiBkcm9wcGVkIGFuZAorCQkJCSAqIHNvbWVvbmUgY3JlYXRlZCBhIG5l dyB2YXJpYWJsZSB3aXRoIHRoZSBzYW1lIG9iamVjdCBJRC4gIFVzZQorCQkJCSAqIHRoZSBjYXRh bG9nIGluZm9ybWF0aW9uIG9ubHkgaWYgdGhhdCBpcyBub3QgdGhlIGNhc2UuCisJCQkJICovCisJ CQkJaWYgKHN2YXItPmNyZWF0ZV9sc24gPT0gdmFyZm9ybS0+dmFyY3JlYXRlX2xzbikKKwkJCQl7 CisJCQkJCXZhbHVlc1sxXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oCisJCQkJCQkJCQkJCQkJZ2V0 X25hbWVzcGFjZV9uYW1lKHZhcmZvcm0tPnZhcm5hbWVzcGFjZSkpOworCisJCQkJCXZhbHVlc1sy XSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oTmFtZVN0cih2YXJmb3JtLT52YXJuYW1lKSk7CisJCQkJ CXZhbHVlc1s0XSA9IENTdHJpbmdHZXRUZXh0RGF0dW0oZm9ybWF0X3R5cGVfYmUoc3Zhci0+dHlw aWQpKTsKKwkJCQkJdmFsdWVzWzVdID0gQm9vbEdldERhdHVtKGZhbHNlKTsKKworCQkJCQl2YWx1 ZXNbNl0gPSBCb29sR2V0RGF0dW0oCisJCQkJCQkJCQkJCSBvYmplY3RfYWNsY2hlY2soVmFyaWFi bGVSZWxhdGlvbklkLCBzdmFyLT52YXJpZCwKKwkJCQkJCQkJCQkJCQkJCSBHZXRVc2VySWQoKSwg QUNMX1NFTEVDVCkgPT0gQUNMQ0hFQ0tfT0spOworCisJCQkJCXZhbHVlc1s3XSA9IEJvb2xHZXRE YXR1bSgKKwkJCQkJCQkJCQkJIG9iamVjdF9hY2xjaGVjayhWYXJpYWJsZVJlbGF0aW9uSWQsIHN2 YXItPnZhcmlkLAorCQkJCQkJCQkJCQkJCQkJIEdldFVzZXJJZCgpLCBBQ0xfVVBEQVRFKSA9PSBB Q0xDSEVDS19PSyk7CisKKwkJCQkJdmFyX2lzX3ZhbGlkID0gdHJ1ZTsKKwkJCQl9CisKKwkJCQlS ZWxlYXNlU3lzQ2FjaGUodHApOworCQkJfQorCisJCQkvKiBpZiB0aGVyZSBpcyBubyBtYXRjaGlu ZyBjYXRhbG9nIGVudHJ5LCByZXR1cm4gbnVsbCB2YWx1ZXMgKi8KKwkJCWlmICghdmFyX2lzX3Zh bGlkKQorCQkJeworCQkJCW51bGxzWzFdID0gdHJ1ZTsKKwkJCQludWxsc1syXSA9IHRydWU7CisJ CQkJbnVsbHNbNF0gPSB0cnVlOworCQkJCXZhbHVlc1s1XSA9IEJvb2xHZXREYXR1bSh0cnVlKTsK KwkJCQludWxsc1s2XSA9IHRydWU7CisJCQkJbnVsbHNbN10gPSB0cnVlOworCQkJfQorCisJCQl0 dXBsZXN0b3JlX3B1dHZhbHVlcyhyc2luZm8tPnNldFJlc3VsdCwgcnNpbmZvLT5zZXREZXNjLCB2 YWx1ZXMsIG51bGxzKTsKKwkJfQorCX0KKworCXJldHVybiAoRGF0dW0pIDA7Cit9CmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdAppbmRleCA3MGY0MWYxOGUyZC4uYjNhZTRkNmFhZGYgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdApAQCAtMTI0NTIsNCArMTI0NTIsMTIgQEAKICAgcHJvYXJndHlwZXMgPT4g J2ludDInLAogICBwcm9zcmMgPT4gJ2dpc3Rfc3RyYXRudW1faWRlbnRpdHknIH0sCiAKKyMgU2Vz c2lvbiB2YXJpYWJsZXMgc3VwcG9ydAoreyBvaWQgPT4gJzg0ODgnLCBkZXNjciA9PiAnbGlzdCBv ZiB1c2VkIHNlc3Npb24gdmFyaWFibGVzJywKKyAgcHJvbmFtZSA9PiAncGdfc2Vzc2lvbl92YXJp YWJsZXMnLCBwcm9yb3dzID0+ICcxMDAwJywgcHJvcmV0c2V0ID0+ICd0JywKKyAgcHJvdm9sYXRp bGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAncicsIHByb3JldHR5cGUgPT4gJ3JlY29yZCcsCisg IHByb2FyZ3R5cGVzID0+ICcnLCBwcm9hbGxhcmd0eXBlcyA9PiAne29pZCx0ZXh0LHRleHQsb2lk LHRleHQsYm9vbCxib29sLGJvb2x9JywKKyAgcHJvYXJnbW9kZXMgPT4gJ3tvLG8sbyxvLG8sbyxv LG99JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3t2YXJpZCxzY2hlbWEsbmFtZSx0eXBpZCx0eXBuYW1l LHJlbW92ZWQsY2FuX3NlbGVjdCxjYW5fdXBkYXRlfScsCisgIHByb3NyYyA9PiAncGdfc2Vzc2lv bl92YXJpYWJsZXMnIH0sCiBdCi0tIAoyLjQ3LjEKCg== --000000000000f297a7062b2456dc Content-Type: text/x-patch; charset="US-ASCII"; name="v20250107-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Disposition: attachment; filename="v20250107-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5mz6bs020 RnJvbSAzMzlkZDJhMzcxZTUxZjJhZjJmMjBmNmRhOWFlNDhlY2ZkZjM3NzQ5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAwODoyOToyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIv MjJdIFN0b3JhZ2UgZm9yIHNlc3Npb24gdmFyaWFibGVzIGFuZCBTUUwgaW50ZXJmYWNlCgpTZXNz aW9uIHZhcmlhYmxlcyBhcmUgc3RvcmVkIGluIHNlc3Npb24gbWVtb3J5IGluIGEgZGVkaWNhdGVk IGhhc2ggdGFibGUuClRoZXkgYXJlIHNldCBieSB0aGUgTEVUIGNvbW1hbmQgYW5kIHJlYWQgYnkg dGhlIFNFTEVDVCBjb21tYW5kLgpUaGUgYWNjZXNzIHJpZ2h0cyBzaG91bGQgYmUgY2hlY2tlZC4K ClRoZSBpZGVudGlmaWVycyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBzaG91bGQgYWx3YXlzIGJlIHNo YWRvd2VkIGJ5IHBvc3NpYmxlCmNvbHVtbiBpZGVudGlmaWVyczogd2UgZG9uJ3Qgd2FudCB0byBi cmVhayBhbiBhcHBsaWNhdGlvbiBieSBjcmVhdGluZyBzb21lCmJhZGx5IG5hbWVkIHNlc3Npb24g dmFyaWFibGUuCgpUaGUgbGltaXRzIG9mIHRoaXMgcGF0Y2ggKHNvbHZlZCBieSBvdGhlciBwYXRj aGVzKToKCi0gc2Vzc2lvbiB2YXJpYWJsZXMgYmxvY2sgcGFyYWxsZWwgZXhlY3V0aW9uCi0gc2Vz c2lvbiB2YXJpYWJsZXMgYmxvY2tzIHNpbXBsZSBleHByZXNzaW9uIGV2YWx1YXRpb24gKGluIHBs cGdzcWwpCi0gU1FMIGZ1bmN0aW9ucyB3aXRoIHNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgaW5s aW5lZAotIENBTEwgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgKHVzYWdlIG9mIGRpcmVjdCBh Y2Nlc3MgdG8gZXhwcmVzcyBleGVjdXRvcikKLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBub3Qgc3Vw cG9ydGVkICh1c2FnZSBvZiBkaXJlY3QgYWNjZXNzIHRvIGV4cHJlc3MgZXhlY3V0b3IpCi0gbWVt b3J5IHVzZWQgYnkgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QgcmVsZWFzZWQKCklt cGxlbWVudGF0aW9ucyBvZiBFWFBMQUlOIExFVCBhbmQgUFJFUEFSRSBMRVQgc3RhdGVtZW50cwph cmUgaW4gc2VwYXJhdGUgcGF0Y2hlcyAoZm9yIGJldHRlciByZWFkYWJpbGl0eSkKLS0tCiBkb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsKIGRvYy9z cmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNDMgKwogZG9jL3Ny Yy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICAgNSArLQogZG9jL3Ny Yy9zZ21sL3BhcmFsbGVsLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICAgNiArCiBkb2Mvc3Jj L3NnbWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsKIGRvYy9zcmMv c2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8ICAgIDEgKwogZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sICAgICAgICAgIHwgICAgMSArCiBkb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAgICAzICsKIGRvYy9zcmMvc2dt bC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sICAgICAgICAgICB8ICAgIDEgKwogZG9jL3NyYy9zZ21s L3JlZi9sZXQuc2dtbCAgICAgICAgICAgICAgICAgICAgIHwgICA5NiArKwogZG9jL3NyYy9zZ21s L3JlZmVyZW5jZS5zZ21sICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9j YXRhbG9nL2RlcGVuZGVuY3kuYyAgICAgICAgICAgICAgfCAgICA1ICsKIHNyYy9iYWNrZW5kL2Nh dGFsb2cvbmFtZXNwYWNlLmMgICAgICAgICAgICAgICB8ICAyODkgKysrKwogc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ192YXJpYWJsZS5jICAgICAgICAgICAgIHwgICAgMiArCiBzcmMvYmFja2VuZC9j b21tYW5kcy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL21lc29uLmJ1aWxkICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvcHJlcGFyZS5jICAgICAgICAgICAgICAgIHwgICAxMCArCiBzcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAgNTUzICsrKysrKysrCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8ICAgMzUgKwogc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgICA2NyArCiBzcmMvYmFja2VuZC9l eGVjdXRvci9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2V4 ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMgICAgICB8ICAxNzIgKysrCiBzcmMvYmFja2VuZC9u b2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgIDEwICsKIHNyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL3BsYW5uZXIuYyAgICAgICAgICB8ICAgMjQgKwogc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vc2V0cmVmcy5jICAgICAgICAgIHwgIDE1NiArKy0KIHNyYy9iYWNrZW5kL29w dGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jICAgICB8ICAgIDMgKwogc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3V0aWwvY2xhdXNlcy5jICAgICAgICAgIHwgICAzNSArLQogc3JjL2JhY2tlbmQvcGFy c2VyL2FuYWx5emUuYyAgICAgICAgICAgICAgICAgIHwgIDI3MiArKystCiBzcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgIDM5ICstCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfYWdnLmMgICAgICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICAyMjMgKystCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfZnVuYy5jICAgICAgICAgICAgICAgfCAgICAyICsKIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9tZXJnZS5jICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvdGNv cC9kZXN0LmMgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNyArCiBzcmMvYmFja2VuZC90Y29w L3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgIDE2ICsKIHNyYy9iYWNrZW5kL3V0aWxz L2FkdC9ydWxldXRpbHMuYyAgICAgICAgICAgICB8ICAgNDYgKwogc3JjL2JhY2tlbmQvdXRpbHMv Y2FjaGUvcGxhbmNhY2hlLmMgICAgICAgICAgIHwgICA0MSArLQogc3JjL2JhY2tlbmQvdXRpbHMv Zm1nci9mbWdyLmMgICAgICAgICAgICAgICAgIHwgICAxMCArLQogc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgICAxMiArLQogc3JjL2luY2x1ZGUvY2F0YWxv Zy9uYW1lc3BhY2UuaCAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgMzEgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3Iv c3ZhcmlhYmxlUmVjZWl2ZXIuaCAgICAgIHwgICAyMiArCiBzcmMvaW5jbHVkZS9ub2Rlcy9leGVj bm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDE2ICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgMTcgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5v ZGVzLmggICAgICAgICAgICAgICAgIHwgICAxMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9k ZXMuaCAgICAgICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rl cy5oICAgICAgICAgICAgICAgICB8ICAgMTQgKwogc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5t YWluLmggICAgICAgICAgICAgIHwgICAgMiArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0Lmgg ICAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2Rl LmggICAgICAgICAgICAgICB8ICAgIDMgKwogc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0Lmgg ICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS90Y29wL2Rlc3QuaCAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgICAg ICAgICAgICAgICAgICB8ICAgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzLm91dCAgICB8IDEyMjQgKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA4NzcgKysrKysrKysrKysrCiBzcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgICA1ICsKIDU4IGZpbGVz IGNoYW5nZWQsIDQ0NTAgaW5zZXJ0aW9ucygrKSwgMjQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9sZXQuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbAppbmRleCA2YmJjNmM3ZTI4ZS4uNjdlNjQ1OTI1MDYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC05 Nzg0LDYgKzk3ODQsMTkgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlv biBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT48 L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+dmFyY3JlYXRlX2xzbjwvc3RydWN0ZmllbGQ+IDx0eXBlPnBnX2xzbjwv dHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIExTTiBvZiB0aGUgdHJh bnNhY3Rpb24gd2hlcmUgdGhlIHZhcmlhYmxlIHdhcyBjcmVhdGVkLgorICAgICAgIDxzdHJ1Y3Rm aWVsZD52YXJjcmVhdGVfbHNuPC9zdHJ1Y3RmaWVsZD4gYW5kCisgICAgICAgPHN0cnVjdGZpZWxk Pm9pZDwvc3RydWN0ZmllbGQ+IHRvZ2V0aGVyIGZvcm0gdGhlIGFsbC10aW1lIHVuaXF1ZQorICAg ICAgIGlkZW50aWZpZXIgKDxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPiBhbG9uZSBpcyBu b3QgZW5vdWdoLCBzaW5jZQorICAgICAgIG9iamVjdCBpZGVudGlmaWVycyBjYW4gZ2V0IHJldXNl ZCkuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAg ICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5f ZGVmaW5pdGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPnZhcm5hbWU8L3N0cnVjdGZpZWxkPiA8 dHlwZT5uYW1lPC90eXBlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9j L3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IDRmNzljNjc2YzMwLi4xMDBkNGU3ZmNkOSAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApA QCAtNTM1Nyw2ICs1MzU3LDQ5IEBAIEVYUExBSU4gU0VMRUNUIGNvdW50KCopIEZST00gbWVhc3Vy ZW1lbnQgV0hFUkUgbG9nZGF0ZSAmZ3Q7PSBEQVRFICcyMDA4LTAxLTAxJzsKICAgICBUaGUgc2Vz c2lvbiB2YXJpYWJsZSBob2xkcyB2YWx1ZSBpbiBzZXNzaW9uIG1lbW9yeS4gIFRoaXMgdmFsdWUg aXMgcHJpdmF0ZQogICAgIHRvIGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVsZWFzZWQgd2hlbiB0aGUg c2Vzc2lvbiBlbmRzLgogICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBUaGUgdmFsdWUgb2Yg YSBzZXNzaW9uIHZhcmlhYmxlIGlzIHNldCB3aXRoIHRoZSBTUUwgc3RhdGVtZW50CisgICAgPGNv bW1hbmQ+TEVUPC9jb21tYW5kPi4gIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgY2Fu IGJlIHJldHJpZXZlZAorICAgIHdpdGggdGhlIFNRTCBzdGF0ZW1lbnQgPGNvbW1hbmQ+U0VMRUNU PC9jb21tYW5kPi4KKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGRh dGU7CitMRVQgdmFyMSA9IGN1cnJlbnRfZGF0ZTsKK1NFTEVDVCB2YXIxOworPC9wcm9ncmFtbGlz dGluZz4KKworICAgIG9yCisKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSBwdWJs aWMuY3VycmVudF91c2VyX2lkIEFTIGludGVnZXI7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUg cHVibGljLmN1cnJlbnRfdXNlcl9pZCBUTyBQVUJMSUM7CitMRVQgY3VycmVudF91c2VyX2lkID0g KFNFTEVDVCBpZCBGUk9NIHVzZXJzIFdIRVJFIHVzZW5hbWUgPSBzZXNzaW9uX3VzZXIpOworU0VM RUNUIGN1cnJlbnRfdXNlcl9pZDsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICA8L3BhcmE+CisKKyAg IDxwYXJhPgorICAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbG9jYWwgdG8g dGhlIGN1cnJlbnQgc2Vzc2lvbi4gUmV0cmlldmluZworICAgIGEgdmFyaWFibGUncyB2YWx1ZSBy ZXR1cm5zIGEgPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4sIHVubGVzcyBpdHMgdmFsdWUgaGFzCisg ICAgYmVlbiBzZXQgdG8gc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB1c2lu ZyB0aGUKKyAgICA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuICBTZXNzaW9uIHZhcmlh YmxlcyBhcmUgbm90IHRyYW5zYWN0aW9uYWw6CisgICAgYW55IGNoYW5nZXMgbWFkZSB0byB0aGUg dmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGluIGEgdHJhbnNhY3Rpb24gd29uJ3QKKyAgICBi ZSB1bmRvbmUgaWYgdGhlIHRyYW5zYWN0aW9uIGlzIHJvbGxlZCBiYWNrIChqdXN0IGxpa2UgdmFy aWFibGVzIGluCisgICAgcHJvY2VkdXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lvbiB2YXJpYWJsZXMg dGhlbXNlbHZlcyBhcmUgcGVyc2lzdGVudCwgYnV0CisgICAgdGhlaXIgdmFsdWVzIGFyZSBuZWl0 aGVyIHBlcnNpc3RlbnQgbm9yIHNoYXJlZCAobGlrZSB0aGUgY29udGVudCBvZgorICAgIHRlbXBv cmFyeSB0YWJsZXMpLgorICAgPC9wYXJhPgorCisgICA8cGFyYT4KKyAgICBJbnNpZGUgYSBxdWVy eSBvciBhbiBleHByZXNzaW9uLCBhIHNlc3Npb24gdmFyaWFibGUgY2FuIGJlCisgICAgPHF1b3Rl PnNoYWRvd2VkPC9xdW90ZT4gYnkgYSBjb2x1bW4gd2l0aCB0aGUgc2FtZSBuYW1lLiAgU2ltaWxh cmx5LCB0aGUKKyAgICBuYW1lIG9mIGEgZnVuY3Rpb24gb3IgcHJvY2VkdXJlIGFyZ3VtZW50IG9y IGEgUEwvcGdTUUwgdmFyaWFibGUgKHNlZQorICAgIDx4cmVmIGxpbmtlbmQ9InBscGdzcWwtZGVj bGFyYXRpb25zIi8+KSBjYW4gc2hhZG93IGEgc2Vzc2lvbiB2YXJpYWJsZQorICAgIGluIHRoZSBy b3V0aW5lJ3MgYm9keS4gIFN1Y2ggY29sbGlzaW9ucyBvZiBpZGVudGlmaWVycyBjYW4gYmUgcmVz b2x2ZWQKKyAgICBieSB1c2luZyBxdWFsaWZpZWQgaWRlbnRpZmllcnM6IFNlc3Npb24gdmFyaWFi bGVzIGNhbiBiZSBxdWFsaWZpZWQgd2l0aAorICAgIHRoZSBzY2hlbWEgbmFtZSwgY29sdW1ucyBj YW4gdXNlIHRhYmxlIGFsaWFzZXMsIHJvdXRpbmUgdmFyaWFibGVzIGNhbiB1c2UKKyAgICBibG9j ayBsYWJlbHMsIGFuZCByb3V0aW5lIGFyZ3VtZW50cyBjYW4gdXNlIHRoZSByb3V0aW5lIG5hbWUu CisgICA8L3BhcmE+CiAgIDwvc2VjdDE+CiAKICA8c2VjdDEgaWQ9ImRkbC1vdGhlcnMiPgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nh cnkuc2dtbAppbmRleCBkMGNiNTM3NjNhYS4uN2JjM2ZjM2JiMDIgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9nbG9zc2FyeS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCkBA IC0xNjcwLDggKzE2NzAsOSBAQAogICAgIDxwYXJhPgogICAgICBBIHBlcnNpc3RlbnQgZGF0YWJh c2Ugb2JqZWN0IHRoYXQgaG9sZHMgYSB2YWx1ZSBpbiBzZXNzaW9uIG1lbW9yeS4gIFRoaXMKICAg ICAgdmFsdWUgaXMgcHJpdmF0ZSB0byBlYWNoIHNlc3Npb24gYW5kIGlzIHJlbGVhc2VkIHdoZW4g dGhlIHNlc3Npb24gZW5kcy4KLSAgICAgUmVhZCBvciB3cml0ZSBhY2Nlc3MgdG8gc2Vzc2lvbiB2 YXJpYWJsZXMgaXMgY29udHJvbGxlZCBieSBwcml2aWxlZ2VzLAotICAgICBzaW1pbGFyIHRvIG90 aGVyIGRhdGFiYXNlIG9iamVjdHMuCisgICAgIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSBzZXNz aW9uIHZhcmlhYmxlIGlzIG51bGwuICBSZWFkIG9yIHdyaXRlIGFjY2VzcworICAgICB0byBzZXNz aW9uIHZhcmlhYmxlcyBpcyBjb250cm9sbGVkIGJ5IHByaXZpbGVnZXMsIHNpbWlsYXIgdG8gb3Ro ZXIgZGF0YWJhc2UKKyAgICAgb2JqZWN0cy4KICAgICA8L3BhcmE+CiAgICAgPHBhcmE+CiAgICAg IEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgPHhyZWYgbGlua2VuZD0iZGRsLXNlc3Npb24tdmFy aWFibGVzIi8+LgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwgYi9kb2Mv c3JjL3NnbWwvcGFyYWxsZWwuc2dtbAppbmRleCAxY2U5YWJmODZmNS4uNjgzZGVkZTZhZGMgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9w YXJhbGxlbC5zZ21sCkBAIC01MTUsNiArNTE1LDEyIEBAIEVYUExBSU4gU0VMRUNUICogRlJPTSBw Z2JlbmNoX2FjY291bnRzIFdIRVJFIGZpbGxlciBMSUtFICcleCUnOwogICAgICAgICBQbGFuIG5v ZGVzIHRoYXQgcmVmZXJlbmNlIGEgY29ycmVsYXRlZCA8bGl0ZXJhbD5TdWJQbGFuPC9saXRlcmFs Pi4KICAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgorCisgICAgPGxpc3RpdGVtPgorICAg ICAgPHBhcmE+CisgICAgICAgIFBsYW4gbm9kZXMgdGhhdCB1c2UgYSBzZXNzaW9uIHZhcmlhYmxl LgorICAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CiAgIDwvaXRlbWl6ZWRsaXN0PgogCiAg PHNlY3QyIGlkPSJwYXJhbGxlbC1sYWJlbGluZyI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cGxwZ3NxbC5zZ21sIGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAppbmRleCA3OGU0OTgzMTM5 Yi4uYmZiZmY5YWI3NGUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbApAQCAtNjAzNCw2ICs2MDM0LDIwIEBAICQkIExB TkdVQUdFIHBscGdzcWwgU1RSSUNUIElNTVVUQUJMRTsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgICAg PC9wYXJhPgogICAgPC9zZWN0Mz4KKworICAgPHNlY3QzIGlkPSJwbHBnc3FsLXBvcnRpbmctcGFj a2FnZS12YXJpYWJsZXMiPgorICAgIDx0aXRsZT48Y29tbWFuZD5QYWNrYWdlcyBhbmQgcGFja2Fn ZSB2YXJpYWJsZXM8L2NvbW1hbmQ+PC90aXRsZT4KKworICAgIDxwYXJhPgorICAgICBUaGUgPGFw cGxpY2F0aW9uPlBML3BnU1FMPC9hcHBsaWNhdGlvbj4gbGFuZ3VhZ2UgaGFzIG5vIHBhY2thZ2Vz LCBhbmQKKyAgICAgdGhlcmVmb3JlIG5vIHBhY2thZ2UgdmFyaWFibGVzIG9yIHBhY2thZ2UgY29u c3RhbnRzLgorICAgICBZb3UgY2FuIGNvbnNpZGVyIHRyYW5zbGF0aW5nIGFuIE9yYWNsZSBwYWNr YWdlIGludG8gYSBzY2hlbWEgaW4KKyAgICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1 Y3RuYW1lPi4gIFBhY2thZ2UgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzCisgICAgIHdvdWxkIHRo ZW4gYmVjb21lIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyBpbiB0aGF0IHNjaGVtYSwgYW5kIHBh Y2thZ2UKKyAgICAgdmFyaWFibGVzIGNvdWxkIGJlIHRyYW5zbGF0ZWQgdG8gc2Vzc2lvbiB2YXJp YWJsZXMgaW4gdGhhdCBzY2hlbWEuCisgICAgIChzZWUgPHhyZWYgbGlua2VuZD0iZGRsLXNlc3Np b24tdmFyaWFibGVzIi8+KS4KKyAgICA8L3BhcmE+CisgICA8L3NlY3QzPgogICA8L3NlY3QyPgog CiAgIDxzZWN0MiBpZD0icGxwZ3NxbC1wb3J0aW5nLWFwcGVuZGl4Ij4KZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMu c2dtbAppbmRleCAyZjY3ZGUzZTIxYi4uY2MzYmQ1YWI1NDAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9yZWYvYWxsZmlsZXMuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNn bWwKQEAgLTE1OCw2ICsxNTgsNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJj ZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZIGdyYW50ICAgICAgICAgICAgICBT WVNURU0gImdyYW50LnNnbWwiPgogPCFFTlRJVFkgaW1wb3J0Rm9yZWlnblNjaGVtYSBTWVNURU0g ImltcG9ydF9mb3JlaWduX3NjaGVtYS5zZ21sIj4KIDwhRU5USVRZIGluc2VydCAgICAgICAgICAg ICBTWVNURU0gImluc2VydC5zZ21sIj4KKzwhRU5USVRZIGxldCAgICAgICAgICAgICAgICBTWVNU RU0gImxldC5zZ21sIj4KIDwhRU5USVRZIGxpc3RlbiAgICAgICAgICAgICBTWVNURU0gImxpc3Rl bi5zZ21sIj4KIDwhRU5USVRZIGxvYWQgICAgICAgICAgICAgICBTWVNURU0gImxvYWQuc2dtbCI+ CiA8IUVOVElUWSBsb2NrICAgICAgICAgICAgICAgU1lTVEVNICJsb2NrLnNnbWwiPgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCmluZGV4IDk2ZDI1ODY0MjNlLi4yMjFhNjk5NDY5YiAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbApAQCAtMTczLDYgKzE3Myw3IEBAIEFM VEVSIFZBUklBQkxFIGJvbyBTRVQgU0NIRU1BIHByaXZhdGU7CiAgIDxzaW1wbGVsaXN0IHR5cGU9 ImlubGluZSI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJsZSIv PjwvbWVtYmVyPgogICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcHZhcmlhYmxlIi8+ PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1sZXQiLz48L21lbWJlcj4K ICAgPC9zaW1wbGVsaXN0PgogIDwvcmVmc2VjdDE+CiA8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX3ZhcmlhYmxlLnNnbWwKaW5kZXggNmU5ODhmMmU0NzIuLmQ2ODE0MDQwNTVkIDEwMDY0 NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTEyMyw2ICsxMjMsOCBAQCBDUkVB VEUgVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYgogICAgQ3JlYXRlIGFuIGRhdGUgc2Vzc2lvbiB2YXJpYWJsZSA8 bGl0ZXJhbD52YXIxPC9saXRlcmFsPjoKIDxwcm9ncmFtbGlzdGluZz4KIENSRUFURSBWQVJJQUJM RSB2YXIxIEFTIGRhdGU7CitMRVQgdmFyMSA9IGN1cnJlbnRfZGF0ZTsKK1NFTEVDVCB2YXIxOwog PC9wcm9ncmFtbGlzdGluZz4KICAgPC9wYXJhPgogCkBAIC0xNDMsNiArMTQ1LDcgQEAgQ1JFQVRF IFZBUklBQkxFIHZhcjEgQVMgZGF0ZTsKICAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KICAg IDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUiLz48L21lbWJlcj4KICAg IDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAg PG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtbGV0Ii8+PC9tZW1iZXI+CiAgIDwvc2ltcGxlbGlz dD4KICA8L3JlZnNlY3QxPgogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFy aWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCmluZGV4IDVi ZGIzNTYwZjBiLi42Nzk4OGI1ZmNkOCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9w X3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwK QEAgLTExMSw2ICsxMTEsNyBAQCBEUk9QIFZBUklBQkxFIHZhcjE7CiAgIDxzaW1wbGVsaXN0IHR5 cGU9ImlubGluZSI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlcnZhcmlhYmxl Ii8+PC9tZW1iZXI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2YXJpYWJs ZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtbGV0Ii8+PC9tZW1i ZXI+CiAgIDwvc2ltcGxlbGlzdD4KICA8L3JlZnNlY3QxPgogCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL2xldC5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9sZXQuc2dtbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDBmOWJlYTkxZmUKLS0tIC9kZXYvbnVsbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2xldC5zZ21sCkBAIC0wLDAgKzEsOTYgQEAKKzwhLS0KK2Rv Yy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisK KzxyZWZlbnRyeSBpZD0ic3FsLWxldCI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtbGV0Ij4KKyAg PHByaW1hcnk+TEVUPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4dGVybT4KKyAg PHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFyeT5jaGFuZ2lu Zzwvc2Vjb25kYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRp dGxlPkxFVDwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxy ZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3Jl Zm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+TEVUPC9yZWZuYW1lPgorICA8cmVm cHVycG9zZT5jaGFuZ2UgYSBzZXNzaW9uIHZhcmlhYmxlJ3MgdmFsdWU8L3JlZnB1cnBvc2U+Cisg PC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lzPgorTEVUIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXNzaW9uX3ZhcmlhYmxlPC9yZXBsYWNlYWJsZT4g PSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3FsX2V4cHJlc3Npb248L3JlcGxhY2Vh YmxlPgorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8 dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkxF VDwvY29tbWFuZD4gY29tbWFuZCBhc3NpZ25zIGEgdmFsdWUgdG8gdGhlIHNwZWNpZmllZCBzZXNz aW9uCisgICB2YXJpYWJsZS4KKyAgPC9wYXJhPgorCisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0 MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8 dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5z ZXNzaW9uX3ZhcmlhYmxlPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAg ICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICA8 L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlz dGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zcWxfZXhw cmVzc2lvbjwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+ CisgICAgICBBbiBhcmJpdHJhcnkgU1FMIGV4cHJlc3Npb24uICBUaGUgcmVzdWx0IG11c3QgYmUg b2YgYSBkYXRhIHR5cGUgdGhhdCBjYW4KKyAgICAgIGJlIGNhc3QgdG8gdGhlIHR5cGUgb2YgdGhl IHNlc3Npb24gdmFyaWFibGUgaW4gYW4gYXNzaWdubWVudC4KKyAgICAgPC9wYXJhPgorICAgIDwv bGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3Jl ZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorPHByb2dy YW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIG15dmFyIEFTIGludGVnZXI7CitMRVQgbXl2YXIg PSAxMDsKK0xFVCBteXZhciA9IChTRUxFQ1Qgc3VtKHZhbCkgRlJPTSB0YWIpOworPC9wcm9ncmFt bGlzdGluZz4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+Q29tcGF0aWJp bGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBp cyBhIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4KKyAgIGV4dGVuc2lvbi4K KyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxz bzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhy ZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhy ZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4 cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0 PgorIDwvcmVmc2VjdDE+Cis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Jl ZmVyZW5jZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCmluZGV4IDI1NTc4ZjM5 NDZjLi4xM2U0YWRjNWRmMyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbApAQCAtMTg2LDYgKzE4Niw3IEBACiAg ICAmZ3JhbnQ7CiAgICAmaW1wb3J0Rm9yZWlnblNjaGVtYTsKICAgICZpbnNlcnQ7CisgICAmbGV0 OwogICAgJmxpc3RlbjsKICAgICZsb2FkOwogICAgJmxvY2s7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5j eS5jCmluZGV4IDFkYTA3MjBmNjFiLi5jZTJlODg2NTYzMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRl bmN5LmMKQEAgLTE4NjQsNiArMTg2NCwxMSBAQCBmaW5kX2V4cHJfcmVmZXJlbmNlc193YWxrZXIo Tm9kZSAqbm9kZSwKIAl7CiAJCVBhcmFtCSAgICpwYXJhbSA9IChQYXJhbSAqKSBub2RlOwogCisJ CS8qIGEgdmFyaWFibGUgcGFyYW1ldGVyIGRlcGVuZHMgb24gdGhlIHNlc3Npb24gdmFyaWFibGUg Ki8KKwkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJCQlhZGRfb2Jq ZWN0X2FkZHJlc3MoVmFyaWFibGVSZWxhdGlvbklkLCBwYXJhbS0+cGFyYW12YXJpZCwgMCwKKwkJ CQkJCQkgICBjb250ZXh0LT5hZGRycyk7CisKIAkJLyogQSBwYXJhbWV0ZXIgbXVzdCBkZXBlbmQg b24gdGhlIHBhcmFtZXRlcidzIGRhdGF0eXBlICovCiAJCWFkZF9vYmplY3RfYWRkcmVzcyhUeXBl UmVsYXRpb25JZCwgcGFyYW0tPnBhcmFtdHlwZSwgMCwKIAkJCQkJCSAgIGNvbnRleHQtPmFkZHJz KTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCmluZGV4IDQzMDdjYWQxNWM3Li5iZWFmZWUyYTM0MSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYworKysgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC0zNDk3LDYgKzM0OTcsMjk1IEBAIE5hbWVzRnJv bUxpc3QoTGlzdCAqbmFtZXMpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorLyogLS0tLS0KKyAqIElk ZW50aWZ5VmFyaWFibGUgLSB0cnkgdG8gZmluZCBhIHZhcmlhYmxlIGZyb20gYSBsaXN0IG9mIGlk ZW50aWZpZXJzCisgKgorICogUmV0dXJucyB0aGUgT0lEIG9mIHRoZSB2YXJpYWJsZSBmb3VuZCwg b3IgSW52YWxpZE9pZC4KKyAqCisgKiAibmFtZXMiIGlzIGEgbGlzdCBvZiB1cCB0byBmb3VyIGlk ZW50aWZpZXJzOyBwb3NzaWJsZSBtZWFuaW5ncyBhcmU6CisgKiAtIHZhcmlhYmxlICAoc2VhcmNo ZWQgb24gdGhlIHNlYXJjaF9wYXRoKQorICogLSBzY2hlbWEudmFyaWFibGUKKyAqIC0gdmFyaWFi bGUuYXR0cmlidXRlICAoc2VhcmNoZWQgb24gdGhlIHNlYXJjaF9wYXRoKQorICogLSBzY2hlbWEu dmFyaWFibGUuYXR0cmlidXRlCisgKiAtIGRhdGFiYXNlLnNjaGVtYS52YXJpYWJsZQorICogLSBk YXRhYmFzZS5zY2hlbWEudmFyaWFibGUuYXR0cmlidXRlCisgKgorICogSWYgdGhlcmUgaXMgbW9y ZSB0aGFuIG9uZSB3YXkgdG8gaWRlbnRpZnkgYSB2YXJpYWJsZSwgIm5vdF91bmlxdWUiIHdpbGwg YmUKKyAqIHNldCB0byB0cnVlLgorICoKKyAqIFVubGVzcyAibm9lcnJvciIgaXMgdHJ1ZSwgYW4g ZXJyb3IgaXMgcmFpc2VkIGlmIHRoZXJlIGFyZSBtb3JlIHRoYW4gZm91cgorICogIGlkZW50aWZp ZXJzIGluIHRoZSBsaXN0LCBvciBpZiB0aGUgbmFtZWQgZGF0YWJhc2UgaXMgbm90IHRoZSBjdXJy ZW50IG9uZS4KKyAqIFRoaXMgaXMgdXNlZnVsIGlmIHdlIHdhbnQgdG8gaWRlbnRpZnkgYSBzaGFk b3dlZCB2YXJpYWJsZS4KKyAqCisgKiBJZiBhbiBhdHRyaWJ1dGUgaXMgaWRlbnRpZmllZCwgaXQg aXMgc3RvcmVkIGluICJhdHRybmFtZSIsIG90aGVyd2lzZSB0aGUKKyAqIHBhcmFtZXRlciBpcyBz ZXQgdG8gTlVMTC4KKyAqCisgKiBUaGUgaWRlbnRpZmllZCBzZXNzaW9uIHZhcmlhYmxlIHdpbGwg YmUgbG9ja2VkIHdpdGggYW4gQWNjZXNzU2hhcmVMb2NrLgorICogLS0tLS0KKyAqLworT2lkCitJ ZGVudGlmeVZhcmlhYmxlKExpc3QgKm5hbWVzLCBjaGFyICoqYXR0cm5hbWUsIGJvb2wgKm5vdF91 bmlxdWUsIGJvb2wgbm9lcnJvcikKK3sKKwlPaWQJCQl2YXJpZCA9IEludmFsaWRPaWQ7CisJT2lk CQkJb2xkX3ZhcmlkID0gSW52YWxpZE9pZDsKKwl1aW50NjQJCWludmFsX2NvdW50OworCWJvb2wJ CXJldHJ5ID0gZmFsc2U7CisKKwkvKgorCSAqIERETCBvcGVyYXRpb25zIGNhbiBjaGFuZ2UgdGhl IHJlc3VsdHMgb2YgYSBuYW1lIGxvb2t1cC4gIFNpbmNlIGFsbCBzdWNoCisJICogb3BlcmF0aW9u cyB3aWxsIGdlbmVyYXRlIGludmFsaWRhdGlvbiBtZXNzYWdlcywgd2Uga2VlcCB0cmFjayBvZgor CSAqIHdoZXRoZXIgYW55IHN1Y2ggbWVzc2FnZXMgc2hvdyB1cCB3aGlsZSB3ZSdyZSBwZXJmb3Jt aW5nIHRoZSBvcGVyYXRpb24sCisJICogYW5kIHJldHJ5IHVudGlsIGVpdGhlciAoMSkgbm8gbW9y ZSBpbnZhbGlkYXRpb24gbWVzc2FnZXMgc2hvdyB1cCBvciAoMikKKwkgKiB0aGUgYW5zd2VyIGRv ZXNuJ3QgY2hhbmdlLgorCSAqLworCWZvciAoOzspCisJeworCQlOb2RlCSAgICpmaWVsZDEgPSBO VUxMOworCQlOb2RlCSAgICpmaWVsZDIgPSBOVUxMOworCQlOb2RlCSAgICpmaWVsZDMgPSBOVUxM OworCQlOb2RlCSAgICpmaWVsZDQgPSBOVUxMOworCQljaGFyCSAgICphID0gTlVMTDsKKwkJY2hh cgkgICAqYiA9IE5VTEw7CisJCWNoYXIJICAgKmMgPSBOVUxMOworCQljaGFyCSAgICpkID0gTlVM TDsKKwkJT2lkCQkJdmFyb2lkX3dpdGhvdXRfYXR0ciA9IEludmFsaWRPaWQ7CisJCU9pZAkJCXZh cm9pZF93aXRoX2F0dHIgPSBJbnZhbGlkT2lkOworCisJCSpub3RfdW5pcXVlID0gZmFsc2U7CisJ CSphdHRybmFtZSA9IE5VTEw7CisJCXZhcmlkID0gSW52YWxpZE9pZDsKKworCQlpbnZhbF9jb3Vu dCA9IFNoYXJlZEludmFsaWRNZXNzYWdlQ291bnRlcjsKKworCQlzd2l0Y2ggKGxpc3RfbGVuZ3Ro KG5hbWVzKSkKKwkJeworCQkJY2FzZSAxOgorCQkJCWZpZWxkMSA9IGxpbml0aWFsKG5hbWVzKTsK KworCQkJCUFzc2VydChJc0EoZmllbGQxLCBTdHJpbmcpKTsKKworCQkJCXZhcmlkID0gTG9va3Vw VmFyaWFibGUoTlVMTCwgc3RyVmFsKGZpZWxkMSksIHRydWUpOworCQkJCWJyZWFrOworCisJCQlj YXNlIDI6CisJCQkJZmllbGQxID0gbGluaXRpYWwobmFtZXMpOworCQkJCWZpZWxkMiA9IGxzZWNv bmQobmFtZXMpOworCisJCQkJQXNzZXJ0KElzQShmaWVsZDEsIFN0cmluZykpOworCQkJCWEgPSBz dHJWYWwoZmllbGQxKTsKKworCQkJCWlmIChJc0EoZmllbGQyLCBTdHJpbmcpKQorCQkJCXsKKwkJ CQkJLyogd2hlbiBib3RoIGZpZWxkcyBhcmUgb2Ygc3RyaW5nIHR5cGUgKi8KKwkJCQkJYiA9IHN0 clZhbChmaWVsZDIpOworCisJCQkJCS8qCisJCQkJCSAqIGEuYiBjYW4gbWVhbiAic2NoZW1hIi4i dmFyaWFibGUiIG9yCisJCQkJCSAqICJ2YXJpYWJsZSIuImF0dHJpYnV0ZSIuICBDaGVjayBib3Ro IHZhcmlhbnRzLCBhbmQKKwkJCQkJICogcmV0dXJucyBJbnZhbGlkT2lkIHdpdGggbm90X3VuaXF1 ZSBmbGFnLCB3aGVuIGJvdGgKKwkJCQkJICogaW50ZXJwcmV0YXRpb25zIGFyZSBwb3NzaWJsZS4K KwkJCQkJICovCisJCQkJCXZhcm9pZF93aXRob3V0X2F0dHIgPSBMb29rdXBWYXJpYWJsZShhLCBi LCB0cnVlKTsKKwkJCQkJdmFyb2lkX3dpdGhfYXR0ciA9IExvb2t1cFZhcmlhYmxlKE5VTEwsIGEs IHRydWUpOworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQkvKiB0aGUgbGFzdCBmaWVsZCBv ZiBsaXN0IGNhbiBiZSBzdGFyIHRvbyAqLworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMiwgQV9TdGFy KSk7CisKKwkJCQkJLyoKKwkJCQkJICogVGhlIHN5bnRheCBpZGVudC4qIGlzIHVzZWQgb25seSBi eSByZWxhdGlvbiBhbGlhc2VzLAorCQkJCQkgKiBhbmQgdGhlbiB0aGlzIGlkZW50aWZpZXIgY2Fu bm90IGJlIGEgcmVmZXJlbmNlIHRvCisJCQkJCSAqIHNlc3Npb24gdmFyaWFibGUuCisJCQkJCSAq LworCQkJCQlyZXR1cm4gSW52YWxpZE9pZDsKKwkJCQl9CisKKwkJCQlpZiAoT2lkSXNWYWxpZCh2 YXJvaWRfd2l0aG91dF9hdHRyKSAmJiBPaWRJc1ZhbGlkKHZhcm9pZF93aXRoX2F0dHIpKQorCQkJ CXsKKwkJCQkJKm5vdF91bmlxdWUgPSB0cnVlOworCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRob3V0 X2F0dHI7CisJCQkJfQorCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhvdXRfYXR0 cikpCisJCQkJeworCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRob3V0X2F0dHI7CisJCQkJfQorCQkJ CWVsc2UgaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhfYXR0cikpCisJCQkJeworCQkJCQkqYXR0 cm5hbWUgPSBiOworCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRoX2F0dHI7CisJCQkJfQorCQkJCWJy ZWFrOworCisJCQljYXNlIDM6CisJCQkJeworCQkJCQlib29sCQlmaWVsZDFfaXNfY2F0YWxvZyA9 IGZhbHNlOworCisJCQkJCWZpZWxkMSA9IGxpbml0aWFsKG5hbWVzKTsKKwkJCQkJZmllbGQyID0g bHNlY29uZChuYW1lcyk7CisJCQkJCWZpZWxkMyA9IGx0aGlyZChuYW1lcyk7CisKKwkJCQkJQXNz ZXJ0KElzQShmaWVsZDEsIFN0cmluZykpOworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMiwgU3RyaW5n KSk7CisKKwkJCQkJYSA9IHN0clZhbChmaWVsZDEpOworCQkJCQliID0gc3RyVmFsKGZpZWxkMik7 CisKKwkJCQkJaWYgKElzQShmaWVsZDMsIFN0cmluZykpCisJCQkJCXsKKwkJCQkJCWMgPSBzdHJW YWwoZmllbGQzKTsKKworCQkJCQkJLyoKKwkJCQkJCSAqIGEuYi5jIGNhbiBtZWFuIGNhdGFsb2cu c2NoZW1hLnZhcmlhYmxlIG9yCisJCQkJCQkgKiBzY2hlbWEudmFyaWFibGUuYXR0cmlidXRlLgor CQkJCQkJICoKKwkJCQkJCSAqIENoZWNrIGJvdGggdmFyaWFudHMsIGFuZCBzZXQgbm90X3VuaXF1 ZSBmbGFnLCB3aGVuCisJCQkJCQkgKiBib3RoIGludGVycHJldGF0aW9ucyBhcmUgcG9zc2libGUu CisJCQkJCQkgKgorCQkJCQkJICogV2hlbiB0aGlyZCBub2RlIGlzIHN0YXIsIG9ubHkgcG9zc2li bGUKKwkJCQkJCSAqIGludGVycHJldGF0aW9uIGlzIHNjaGVtYS52YXJpYWJsZS4qLCBidXQgdGhp cworCQkJCQkJICogcGF0dGVybiBpcyBub3Qgc3VwcG9ydGVkIG5vdy4KKwkJCQkJCSAqLworCQkJ CQkJdmFyb2lkX3dpdGhfYXR0ciA9IExvb2t1cFZhcmlhYmxlKGEsIGIsIHRydWUpOworCisJCQkJ CQkvKgorCQkJCQkJICogY2hlY2sgcGF0dGVybiBjYXRhbG9nLnNjaGVtYS52YXJpYWJsZSBvbmx5 IHdoZW4KKwkJCQkJCSAqIHRoZXJlIGlzIHBvc3NpYmlsaXR5IHRvIHN1Y2Nlc3MuCisJCQkJCQkg Ki8KKwkJCQkJCWlmIChzdHJjbXAoYSwgZ2V0X2RhdGFiYXNlX25hbWUoTXlEYXRhYmFzZUlkKSkg PT0gMCkKKwkJCQkJCXsKKwkJCQkJCQlmaWVsZDFfaXNfY2F0YWxvZyA9IHRydWU7CisJCQkJCQkJ dmFyb2lkX3dpdGhvdXRfYXR0ciA9IExvb2t1cFZhcmlhYmxlKGIsIGMsIHRydWUpOworCQkJCQkJ fQorCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJeworCQkJCQkJQXNzZXJ0KElzQShmaWVsZDMsIEFf U3RhcikpOworCQkJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCQkJCX0KKworCQkJCQlpZiAoT2lk SXNWYWxpZCh2YXJvaWRfd2l0aG91dF9hdHRyKSAmJiBPaWRJc1ZhbGlkKHZhcm9pZF93aXRoX2F0 dHIpKQorCQkJCQl7CisJCQkJCQkqbm90X3VuaXF1ZSA9IHRydWU7CisJCQkJCQl2YXJpZCA9IHZh cm9pZF93aXRob3V0X2F0dHI7CisJCQkJCX0KKwkJCQkJZWxzZSBpZiAoT2lkSXNWYWxpZCh2YXJv aWRfd2l0aG91dF9hdHRyKSkKKwkJCQkJeworCQkJCQkJdmFyaWQgPSB2YXJvaWRfd2l0aG91dF9h dHRyOworCQkJCQl9CisJCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhfYXR0cikp CisJCQkJCXsKKwkJCQkJCSphdHRybmFtZSA9IGM7CisJCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRo X2F0dHI7CisJCQkJCX0KKworCQkJCQkvKgorCQkJCQkgKiBXaGVuIHdlIGRpZG4ndCBmaW5kIHZh cmlhYmxlLCB3ZSBjYW4gKHdoZW4gaXQgaXMKKwkJCQkJICogYWxsb3dlZCkgcmFpc2UgY3Jvc3Mt ZGF0YWJhc2UgcmVmZXJlbmNlIGVycm9yLgorCQkJCQkgKi8KKwkJCQkJaWYgKCFPaWRJc1ZhbGlk KHZhcmlkKSAmJiAhbm9lcnJvciAmJiAhZmllbGQxX2lzX2NhdGFsb2cpCisJCQkJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCks CisJCQkJCQkJCSBlcnJtc2coImNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBs ZW1lbnRlZDogJXMiLAorCQkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSkpOworCQkJ CX0KKwkJCQlicmVhazsKKworCQkJY2FzZSA0OgorCQkJCXsKKwkJCQkJZmllbGQxID0gbGluaXRp YWwobmFtZXMpOworCQkJCQlmaWVsZDIgPSBsc2Vjb25kKG5hbWVzKTsKKwkJCQkJZmllbGQzID0g bHRoaXJkKG5hbWVzKTsKKwkJCQkJZmllbGQ0ID0gbGZvdXJ0aChuYW1lcyk7CisKKwkJCQkJQXNz ZXJ0KElzQShmaWVsZDEsIFN0cmluZykpOworCQkJCQlBc3NlcnQoSXNBKGZpZWxkMiwgU3RyaW5n KSk7CisJCQkJCUFzc2VydChJc0EoZmllbGQzLCBTdHJpbmcpKTsKKworCQkJCQlhID0gc3RyVmFs KGZpZWxkMSk7CisJCQkJCWIgPSBzdHJWYWwoZmllbGQyKTsKKwkJCQkJYyA9IHN0clZhbChmaWVs ZDMpOworCisJCQkJCS8qCisJCQkJCSAqIEluIHRoaXMgY2FzZSwgImEiIGlzIHVzZWQgYXMgY2F0 YWxvZyBuYW1lIC0gY2hlY2sgaXQuCisJCQkJCSAqLworCQkJCQlpZiAoc3RyY21wKGEsIGdldF9k YXRhYmFzZV9uYW1lKE15RGF0YWJhc2VJZCkpICE9IDApCisJCQkJCXsKKwkJCQkJCWlmICghbm9l cnJvcikKKwkJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9G RUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJCQkJIGVycm1zZygiY3Jvc3MtZGF0YWJhc2Ug cmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAlcyIsCisJCQkJCQkJCQkJCU5hbWVMaXN0 VG9TdHJpbmcobmFtZXMpKSkpOworCQkJCQl9CisKKwkJCQkJaWYgKElzQShmaWVsZDQsIFN0cmlu ZykpCisJCQkJCXsKKwkJCQkJCWQgPSBzdHJWYWwoZmllbGQ0KTsKKwkJCQkJfQorCQkJCQllbHNl CisJCQkJCXsKKwkJCQkJCUFzc2VydChJc0EoZmllbGQ0LCBBX1N0YXIpKTsKKwkJCQkJCXJldHVy biBJbnZhbGlkT2lkOworCQkJCQl9CisKKwkJCQkJKmF0dHJuYW1lID0gZDsKKwkJCQkJdmFyaWQg PSBMb29rdXBWYXJpYWJsZShiLCBjLCB0cnVlKTsKKwkJCQl9CisJCQkJYnJlYWs7CisKKwkJCWRl ZmF1bHQ6CisJCQkJaWYgKCFub2Vycm9yKQorCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCShl cnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCQkgZXJybXNnKCJpbXByb3BlciBx dWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogJXMiLAorCQkJCQkJCQkJTmFt ZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCX0KKwor CQkvKgorCQkgKiBJZiwgdXBvbiByZXRyeSwgd2UgZ2V0IGJhY2sgdGhlIHNhbWUgT0lEIHdlIGRp ZCBsYXN0IHRpbWUsIHRoZW4gdGhlCisJCSAqIGludmFsaWRhdGlvbiBtZXNzYWdlcyB3ZSBwcm9j ZXNzZWQgZGlkIG5vdCBjaGFuZ2UgdGhlIGZpbmFsIGFuc3dlci4KKwkJICogU28gd2UncmUgZG9u ZS4KKwkJICoKKwkJICogSWYgd2UgZ290IGEgZGlmZmVyZW50IE9JRCwgd2UndmUgbG9ja2VkIHRo ZSB2YXJpYWJsZSB0aGF0IHVzZWQgdG8KKwkJICogaGF2ZSB0aGlzIG5hbWUgcmF0aGVyIHRoYW4g dGhlIG9uZSB0aGF0IGRvZXMgbm93LiAgU28gcmVsZWFzZSB0aGUKKwkJICogbG9jay4KKwkJICov CisJCWlmIChyZXRyeSkKKwkJeworCQkJaWYgKG9sZF92YXJpZCA9PSB2YXJpZCkKKwkJCQlicmVh azsKKworCQkJaWYgKE9pZElzVmFsaWQob2xkX3ZhcmlkKSkKKwkJCQlVbmxvY2tEYXRhYmFzZU9i amVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIG9sZF92YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsK KwkJfQorCisJCS8qCisJCSAqIExvY2sgdGhlIHZhcmlhYmxlLiAgVGhpcyB3aWxsIGFsc28gYWNj ZXB0IGFueSBwZW5kaW5nIGludmFsaWRhdGlvbgorCQkgKiBtZXNzYWdlcy4gIElmIHdlIGdvdCBi YWNrIEludmFsaWRPaWQsIGluZGljYXRpbmcgbm90IGZvdW5kLCB0aGVuCisJCSAqIHRoZXJlJ3Mg bm90aGluZyB0byBsb2NrLCBidXQgd2UgYWNjZXB0IGludmFsaWRhdGlvbiBtZXNzYWdlcworCQkg KiBhbnl3YXksIHRvIGZsdXNoIGFueSBuZWdhdGl2ZSBjYXRjYWNoZSBlbnRyaWVzIHRoYXQgbWF5 IGJlCisJCSAqIGxpbmdlcmluZy4KKwkJICovCisJCWlmICghT2lkSXNWYWxpZCh2YXJpZCkpCisJ CQlBY2NlcHRJbnZhbGlkYXRpb25NZXNzYWdlcygpOworCQllbHNlCisJCQlMb2NrRGF0YWJhc2VP YmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKwor CQkvKgorCQkgKiBJZiBubyBpbnZhbGlkYXRpb24gbWVzc2FnZSB3ZXJlIHByb2Nlc3NlZCwgd2Un cmUgZG9uZSEKKwkJICovCisJCWlmIChpbnZhbF9jb3VudCA9PSBTaGFyZWRJbnZhbGlkTWVzc2Fn ZUNvdW50ZXIpCisJCQlicmVhazsKKworCQlyZXRyeSA9IHRydWU7CisJCW9sZF92YXJpZCA9IHZh cmlkOworCQl2YXJpZCA9IEludmFsaWRPaWQ7CisJfQorCisJcmV0dXJuIHZhcmlkOworfQorCiAv KgogICogRGVjb25zdHJ1Y3RRdWFsaWZpZWROYW1lCiAgKgkJR2l2ZW4gYSBwb3NzaWJseS1xdWFs aWZpZWQgbmFtZSBleHByZXNzZWQgYXMgYSBsaXN0IG9mIFN0cmluZyBub2RlcywKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFs b2cvcGdfdmFyaWFibGUuYwppbmRleCAyOWQ5NjdhMmQ1Yi4uYmI0NDVlOTQzNGIgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJwYXJzZXIv cGFyc2VfdHlwZS5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRp bHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvcGdfbHNuLmgiCiAjaW5jbHVkZSAidXRp bHMvc3lzY2FjaGUuaCIKIAogc3RhdGljIE9iamVjdEFkZHJlc3MgY3JlYXRlX3ZhcmlhYmxlKGNv bnN0IGNoYXIgKnZhck5hbWUsCkBAIC0xMDEsNiArMTAyLDcgQEAgY3JlYXRlX3ZhcmlhYmxlKGNv bnN0IGNoYXIgKnZhck5hbWUsCiAJdmFyaWQgPSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBWYXJp YWJsZU9pZEluZGV4SWQsIEFudW1fcGdfdmFyaWFibGVfb2lkKTsKIAogCXZhbHVlc1tBbnVtX3Bn X3ZhcmlhYmxlX29pZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJpZCk7CisJdmFsdWVzW0Fu dW1fcGdfdmFyaWFibGVfdmFyY3JlYXRlX2xzbiAtIDFdID0gTFNOR2V0RGF0dW0oR2V0WExvZ0lu c2VydFJlY1B0cigpKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJuYW1lIC0gMV0gPSBO YW1lR2V0RGF0dW0oJnZhcm5hbWUpOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWVz cGFjZSAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJOYW1lc3BhY2UpOwogCXZhbHVlc1tBbnVt X3BnX3ZhcmlhYmxlX3ZhcnR5cGUgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyVHlwZSk7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL01ha2VmaWxlCmluZGV4IDQ4ZjczNDhmOTFjLi4xY2ZhZWNhNTFlYSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvTWFrZWZpbGUKQEAgLTUwLDYgKzUwLDcgQEAgT0JKUyA9IFwKIAlzY2hlbWFjbWRzLm8gXAog CXNlY2xhYmVsLm8gXAogCXNlcXVlbmNlLm8gXAorCXNlc3Npb25fdmFyaWFibGUubyBcCiAJc3Rh dHNjbWRzLm8gXAogCXN1YnNjcmlwdGlvbmNtZHMubyBcCiAJdGFibGVjbWRzLm8gXApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9tZXNvbi5idWlsZAppbmRleCBlZjBkNDA3YTM4My4uY2UxNjE5ZTMwODkgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL21lc29uLmJ1aWxkCkBAIC0zOCw2ICszOCw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBm aWxlcygKICAgJ3NjaGVtYWNtZHMuYycsCiAgICdzZWNsYWJlbC5jJywKICAgJ3NlcXVlbmNlLmMn LAorICAnc2Vzc2lvbl92YXJpYWJsZS5jJywKICAgJ3N0YXRzY21kcy5jJywKICAgJ3N1YnNjcmlw dGlvbmNtZHMuYycsCiAgICd0YWJsZWNtZHMuYycsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy9wcmVwYXJlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKaW5kZXgg ODk4OWMwYzg4MmQuLjkwMmIwMjJmOWM3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy9wcmVwYXJlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCkBAIC0zMzgs NiArMzM4LDE2IEBAIEV2YWx1YXRlUGFyYW1zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUHJlcGFyZWRT dGF0ZW1lbnQgKnBzdG10LCBMaXN0ICpwYXJhbXMsCiAJCWkrKzsKIAl9CiAKKwkvKgorCSAqIFRo ZSBhcmd1bWVudHMgb2YgRVhFQ1VURSBhcmUgZXZhbHVhdGVkIGJ5IGEgZGlyZWN0IGV4cHJlc3Np b24KKwkgKiBleGVjdXRvciBjYWxsLiAgVGhpcyBtb2RlIGRvZXNuJ3Qgc3VwcG9ydCBzZXNzaW9u IHZhcmlhYmxlcyB5ZXQuCisJICogSXQgd2lsbCBiZSBlbmFibGVkIGxhdGVyLgorCSAqLworCWlm IChwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJIGVycm1zZygic2Vz c2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudCIpKSk7CisKIAkvKiBQ cmVwYXJlIHRoZSBleHByZXNzaW9ucyBmb3IgZXhlY3V0aW9uICovCiAJZXhwcnN0YXRlcyA9IEV4 ZWNQcmVwYXJlRXhwckxpc3QocGFyYW1zLCBlc3RhdGUpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjE1NjYyOTZhODU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5jCkBAIC0wLDAgKzEsNTUzIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq CisgKiBzZXNzaW9uX3ZhcmlhYmxlLmMKKyAqCSAgc2Vzc2lvbiB2YXJpYWJsZSBjcmVhdGlvbi9t YW5pcHVsYXRpb24gY29tbWFuZHMKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYt MjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENv cHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlh CisgKgorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuYworICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisjaW5jbHVkZSAi cG9zdGdyZXMuaCIKKworI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKKyNpbmNsdWRl ICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiZXhlY3V0b3Ivc3Zhcmlh YmxlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJmdW5jYXBpLmgiCisjaW5jbHVkZSAibWlzY2FkbWlu LmgiCisjaW5jbHVkZSAicmV3cml0ZS9yZXdyaXRlSGFuZGxlci5oIgorI2luY2x1ZGUgInN0b3Jh Z2UvbG1nci5oIgorI2luY2x1ZGUgInN0b3JhZ2UvcHJvYy5oIgorI2luY2x1ZGUgInRjb3AvdGNv cHByb3QuaCIKKyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2Rh dHVtLmgiCisjaW5jbHVkZSAidXRpbHMvaW52YWwuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2Fj aGUuaCIKKyNpbmNsdWRlICJ1dGlscy9zbmFwbWdyLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2Fj aGUuaCIKKworLyoKKyAqIFRoZSB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHN0b3Jl ZCBpbiB0aGUgYmFja2VuZCdzIHByaXZhdGUgbWVtb3J5CisgKiBpbiB0aGUgZGVkaWNhdGVkIG1l bW9yeSBjb250ZXh0IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgaW4gYmluYXJ5IGZvcm1hdC4KKyAq IFRoZXkgYXJlIHN0b3JlZCBpbiB0aGUgInNlc3Npb252YXJzIiBoYXNoIHRhYmxlLCB3aG9zZSBr ZXkgaXMgdGhlIE9JRCBvZiB0aGUKKyAqIHZhcmlhYmxlLiAgSG93ZXZlciwgdGhlIE9JRCBpcyBu b3QgZ29vZCBlbm91Z2ggdG8gaWRlbnRpZnkgYSBzZXNzaW9uCisgKiB2YXJpYWJsZTogY29uY3Vy cmVudCBzZXNzaW9ucyBjb3VsZCBkcm9wIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGFuZCBjcmVhdGUg YQorICogbmV3IG9uZSwgd2hpY2ggY291bGQgYmUgYXNzaWduZWQgdGhlIHNhbWUgT0lELiAgVG8g ZW5zdXJlIHRoYXQgdGhlIHZhbHVlcworICogc3RvcmVkIGluIG1lbW9yeSBhbmQgdGhlIGNhdGFs b2cgZGVmaW5pdGlvbiBtYXRjaCwgd2UgYWxzbyBrZWVwIHRyYWNrIG9mCisgKiB0aGUgImNyZWF0 ZV9sc24iLiAgQmVmb3JlIGFueSBhY2Nlc3MgdG8gdGhlIHZhcmlhYmxlIHZhbHVlcywgd2UgbmVl ZCB0bworICogY2hlY2sgaWYgdGhlIExTTiBzdG9yZWQgaW4gbWVtb3J5IG1hdGNoZXMgdGhlIExT TiBpbiB0aGUgY2F0YWxvZy4gIElmIHRoZXJlCisgKiBpcyBhIG1pc21hdGNoIGJldHdlZW4gdGhl IExTTnMsIG9yIGlmIHRoZSBPSUQgaXMgbm90IHByZXNlbnQgaW4gcGdfdmFyaWFibGUKKyAqIGF0 IGFsbCwgdGhlIHZhbHVlIHN0b3JlZCBpbiBtZW1vcnkgaXMgcmVsZWFzZWQuCisgKi8KK3R5cGVk ZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKK3sKKwlPaWQJCQl2YXJpZDsJCQkvKiBwZ192YXJpYWJs ZSBPSUQgb2YgdGhlIHZhcmlhYmxlIChoYXNoIGtleSkgKi8KKwlYTG9nUmVjUHRyCWNyZWF0ZV9s c247CisKKwlib29sCQlpc251bGw7CisJRGF0dW0JCXZhbHVlOworCisJT2lkCQkJdHlwaWQ7CisJ aW50MTYJCXR5cGxlbjsKKwlib29sCQl0eXBieXZhbDsKKworCWJvb2wJCWlzX2RvbWFpbjsKKwor CS8qCisJICogZG9tYWluX2NoZWNrX2V4dHJhIGhvbGRzIGNhY2hlZCBkb21haW4gbWV0YWRhdGEu ICBUaGlzICJleHRyYSIgaXMKKwkgKiB1c3VhbGx5IHN0b3JlZCBpbiBmbl9tY3h0LiAgV2UgZG8g bm90IGhhdmUgYWNjZXNzIHRvIHRoYXQgbWVtb3J5IGNvbnRleHQKKwkgKiBmb3Igc2Vzc2lvbiB2 YXJpYWJsZXMsIGJ1dCB3ZSBjYW4gdXNlIFRvcFRyYW5zYWN0aW9uQ29udGV4dCBpbnN0ZWFkLgor CSAqIEEgZnJlc2ggdmFsdWUgaXMgZm9yY2VkIHdoZW4gd2UgZGV0ZWN0IHdlIGFyZSBpbiBhIGRp ZmZlcmVudCB0cmFuc2FjdGlvbgorCSAqICh0aGUgbG9jYWwgdHJhbnNhY3Rpb24gSUQgZGlmZmVy cyBmcm9tIGRvbWFpbl9jaGVja19leHRyYV9seGlkKS4KKwkgKi8KKwl2b2lkCSAgICpkb21haW5f Y2hlY2tfZXh0cmE7CisJTG9jYWxUcmFuc2FjdGlvbklkIGRvbWFpbl9jaGVja19leHRyYV9seGlk OworCisJLyoKKwkgKiBTdG9yZWQgdmFsdWUgYW5kIHR5cGUgZGVzY3JpcHRpb24gY2FuIGJlIG91 dGRhdGVkIHdoZW4gd2UgcmVjZWl2ZSBhCisJICogc2ludmFsIG1lc3NhZ2UuICBXZSB0aGVuIGhh dmUgdG8gY2hlY2sgaWYgdGhlIHN0b3JlZCBkYXRhIGFyZSBzdGlsbAorCSAqIHRydXN0d29ydGh5 LgorCSAqLworCWJvb2wJCWlzX3ZhbGlkOworCisJdWludDMyCQloYXNodmFsdWU7CQkvKiB1c2Vk IGZvciBwYWlyaW5nIHNpbnZhbCBtZXNzYWdlICovCit9IFNWYXJpYWJsZURhdGE7CisKK3R5cGVk ZWYgU1ZhcmlhYmxlRGF0YSAqU1ZhcmlhYmxlOworCitzdGF0aWMgSFRBQiAqc2Vzc2lvbnZhcnMg PSBOVUxMOwkvKiBoYXNoIHRhYmxlIGZvciBzZXNzaW9uIHZhcmlhYmxlcyAqLworCitzdGF0aWMg TWVtb3J5Q29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250ZXh0ID0gTlVMTDsKKworLyoKKyAqIENh bGxiYWNrIGZ1bmN0aW9uIGZvciBzZXNzaW9uIHZhcmlhYmxlIGludmFsaWRhdGlvbi4KKyAqLwor c3RhdGljIHZvaWQKK3BnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywgaW50IGNh Y2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCit7CisJSEFTSF9TRVFfU1RBVFVTIHN0YXR1czsKKwlT VmFyaWFibGUJc3ZhcjsKKworCWVsb2coREVCVUcxLCAicGdfdmFyaWFibGVfY2FjaGVfY2FsbGJh Y2sgJXUgJXUiLCBjYWNoZWlkLCBoYXNodmFsdWUpOworCisJQXNzZXJ0KHNlc3Npb252YXJzKTsK KworCS8qCisJICogSWYgdGhlIGhhc2h2YWx1ZSBpcyBub3Qgc3BlY2lmaWVkLCB3ZSBoYXZlIHRv IHJlY2hlY2sgYWxsIGN1cnJlbnRseQorCSAqIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMuICBTaW5j ZSB3ZSBjYW4ndCB0ZWxsIHRoZSBleGFjdCBzZXNzaW9uIHZhcmlhYmxlCisJICogZnJvbSBpdHMg aGFzaHZhbHVlLCB3ZSBoYXZlIHRvIGl0ZXJhdGUgb3ZlciBhbGwgaXRlbXMgaW4gdGhlIGhhc2gg YnVja2V0LgorCSAqLworCWhhc2hfc2VxX2luaXQoJnN0YXR1cywgc2Vzc2lvbnZhcnMpOworCisJ d2hpbGUgKChzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBO VUxMKQorCXsKKwkJaWYgKGhhc2h2YWx1ZSA9PSAwIHx8IHN2YXItPmhhc2h2YWx1ZSA9PSBoYXNo dmFsdWUpCisJCXsKKwkJCXN2YXItPmlzX3ZhbGlkID0gZmFsc2U7CisJCX0KKwl9Cit9CisKKy8q CisgKiBSZWxlYXNlIHN0b3JlZCB2YWx1ZSwgZnJlZSBtZW1vcnkKKyAqLworc3RhdGljIHZvaWQK K2ZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShTVmFyaWFibGUgc3ZhcikKK3sKKwkvKiBjbGVh biB0aGUgY3VycmVudCB2YWx1ZSAqLworCWlmICghc3Zhci0+aXNudWxsKQorCXsKKwkJaWYgKCFz dmFyLT50eXBieXZhbCkKKwkJCXBmcmVlKERhdHVtR2V0UG9pbnRlcihzdmFyLT52YWx1ZSkpOwor CisJCXN2YXItPmlzbnVsbCA9IHRydWU7CisJfQorCisJc3Zhci0+dmFsdWUgPSAoRGF0dW0pIDA7 Cit9CisKKy8qCisgKiBSZXR1cm5zIHRydWUgd2hlbiB0aGUgZW50cnkgaW4gcGdfdmFyaWFibGUg aXMgY29uc2lzdGVudCB3aXRoIHRoZSBnaXZlbgorICogc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLwor c3RhdGljIGJvb2wKK2lzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoU1ZhcmlhYmxlIHN2YXIpCit7 CisJSGVhcFR1cGxlCXRwOworCWJvb2wJCXJlc3VsdCA9IGZhbHNlOworCisJQXNzZXJ0KE9pZElz VmFsaWQoc3Zhci0+dmFyaWQpKTsKKworCXRwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lE LCBPYmplY3RJZEdldERhdHVtKHN2YXItPnZhcmlkKSk7CisKKwlpZiAoSGVhcFR1cGxlSXNWYWxp ZCh0cCkpCisJeworCQkvKgorCQkgKiBUaGUgT0lEIGFsb25lIGlzIG5vdCBlbm91Z2ggYXMgYW4g dW5pcXVlIGlkZW50aWZpZXIsIGJlY2F1c2UgT0lECisJCSAqIHZhbHVlcyBnZXQgcmVjeWNsZWQs IGFuZCBhIG5ldyBzZXNzaW9uIHZhcmlhYmxlIGNvdWxkIGhhdmUgZ290CisJCSAqIHRoZSBzYW1l IE9JRC4gIFdlIGRvIGEgc2Vjb25kIGNoZWNrIGFnYWluc3QgdGhlIDY0LWJpdCBMU04gd2hlbgor CQkgKiB0aGUgdmFyaWFibGUgd2FzIGNyZWF0ZWQuCisJCSAqLworCQlpZiAoc3Zhci0+Y3JlYXRl X2xzbiA9PSAoKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0cCkpLT52YXJjcmVhdGVfbHNu KQorCQkJcmVzdWx0ID0gdHJ1ZTsKKworCQlSZWxlYXNlU3lzQ2FjaGUodHApOworCX0KKworCXJl dHVybiByZXN1bHQ7Cit9CisKKy8qCisgKiBJbml0aWFsaXplIGF0dHJpYnV0ZXMgY2FjaGVkIGlu ICJzdmFyIgorICovCitzdGF0aWMgdm9pZAorc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFi bGUgc3ZhciwgT2lkIHZhcmlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJs ZSB2YXJmb3JtOworCisJQXNzZXJ0KE9pZElzVmFsaWQodmFyaWQpKTsKKworCXR1cCA9IFNlYXJj aFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYg KCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFp bGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChGb3Jt X3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCXN2YXItPnZhcmlkID0gdmFyaWQ7CisJ c3Zhci0+Y3JlYXRlX2xzbiA9IHZhcmZvcm0tPnZhcmNyZWF0ZV9sc247CisKKwlzdmFyLT50eXBp ZCA9IHZhcmZvcm0tPnZhcnR5cGU7CisKKwlnZXRfdHlwbGVuYnl2YWwoc3Zhci0+dHlwaWQsICZz dmFyLT50eXBsZW4sICZzdmFyLT50eXBieXZhbCk7CisKKwlzdmFyLT5pc19kb21haW4gPSAoZ2V0 X3R5cHR5cGUodmFyZm9ybS0+dmFydHlwZSkgPT0gVFlQVFlQRV9ET01BSU4pOworCXN2YXItPmRv bWFpbl9jaGVja19leHRyYSA9IE5VTEw7CisJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQg PSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOworCisJc3Zhci0+aXNudWxsID0gdHJ1ZTsKKwlz dmFyLT52YWx1ZSA9IChEYXR1bSkgMDsKKworCXN2YXItPmlzX3ZhbGlkID0gdHJ1ZTsKKworCXN2 YXItPmhhc2h2YWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZhbHVlMShWQVJJQUJMRU9JRCwKKwkJCQkJ CQkJCQkJT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7 Cit9CisKKy8qCisgKiBBc3NpZ24gYSBuZXcgdmFsdWUgdG8gdGhlIHNlc3Npb24gdmFyaWFibGUu ICBJdCBpcyBjb3BpZWQgdG8KKyAqIFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgaWYgbmVjZXNzYXJ5 LgorICoKKyAqIElmIGFueSBlcnJvciBoYXBwZW5zLCB0aGUgZXhpc3RpbmcgdmFsdWUgd29uJ3Qg YmUgbW9kaWZpZWQuCisgKi8KK3N0YXRpYyB2b2lkCitzZXRfc2Vzc2lvbl92YXJpYWJsZShTVmFy aWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQoreworCURhdHVtCQluZXd2YWw7 CisJU1ZhcmlhYmxlRGF0YSBsb2NzdmFyLAorCQkJICAgKl9zdmFyOworCisJQXNzZXJ0KHN2YXIp OworCUFzc2VydCghaXNudWxsIHx8IHZhbHVlID09IChEYXR1bSkgMCk7CisKKwkvKgorCSAqIFVz ZSB0eXBieXZhbCwgdHlwYnlsZW4gZnJvbSBzZXNzaW9uIHZhcmlhYmxlIG9ubHkgd2hlbiB0aGV5 IGFyZQorCSAqIHRydXN0d29ydGh5ICh0aGUgaW52YWxpZGF0aW9uIG1lc3NhZ2Ugd2FzIG5vdCBh Y2NlcHRlZCBmb3IgdGhpcworCSAqIHZhcmlhYmxlKS4gIElmIHRoZSB2YXJpYWJsZSBtaWdodCBi ZSBpbnZhbGlkLCBmb3JjZSBzZXR1cC4KKwkgKgorCSAqIERvIG5vdCBvdmVyd3JpdGUgdGhlIHBh c3NlZCBzZXNzaW9uIHZhcmlhYmxlIHVudGlsIHdlIGNhbiBiZSBjZXJ0YWluCisJICogdGhhdCBu byBlcnJvciBjYW4gYmUgdGhyb3duLgorCSAqLworCWlmICghc3Zhci0+aXNfdmFsaWQpCisJewor CQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKCZsb2NzdmFyLCBzdmFyLT52YXJpZCk7CisJCV9zdmFy ID0gJmxvY3N2YXI7CisJfQorCWVsc2UKKwkJX3N2YXIgPSBzdmFyOworCisJaWYgKCFpc251bGwp CisJeworCQlNZW1vcnlDb250ZXh0IG9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhTVmFy aWFibGVNZW1vcnlDb250ZXh0KTsKKworCQluZXd2YWwgPSBkYXR1bUNvcHkodmFsdWUsIF9zdmFy LT50eXBieXZhbCwgX3N2YXItPnR5cGxlbik7CisKKwkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9s ZGN4dCk7CisJfQorCWVsc2UKKwkJbmV3dmFsID0gdmFsdWU7CisKKwlmcmVlX3Nlc3Npb25fdmFy aWFibGVfdmFsdWUoc3Zhcik7CisKKwllbG9nKERFQlVHMSwgInNlc3Npb24gdmFyaWFibGUgXCIl cy4lc1wiIChvaWQ6JXUpIGhhcyBuZXcgdmFsdWUiLAorCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdl dF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShzdmFyLT52YXJpZCkpLAorCQkgZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZShzdmFyLT52YXJpZCksCisJCSBzdmFyLT52YXJpZCk7CisKKwkvKiBu byBtb3JlIGVycm9yIGV4cGVjdGVkLCBzbyB3ZSBjYW4gb3ZlcndyaXRlIHRoZSBvbGQgdmFyaWFi bGUgbm93ICovCisJaWYgKHN2YXIgIT0gX3N2YXIpCisJCW1lbWNweShzdmFyLCBfc3Zhciwgc2l6 ZW9mKFNWYXJpYWJsZURhdGEpKTsKKworCXN2YXItPnZhbHVlID0gbmV3dmFsOworCXN2YXItPmlz bnVsbCA9IGlzbnVsbDsKK30KKworLyoKKyAqIENyZWF0ZSB0aGUgaGFzaCB0YWJsZSBmb3Igc3Rv cmluZyBzZXNzaW9uIHZhcmlhYmxlcy4KKyAqLworc3RhdGljIHZvaWQKK2NyZWF0ZV9zZXNzaW9u dmFyc19oYXNodGFibGVzKHZvaWQpCit7CisJSEFTSENUTAkJdmFyc19jdGw7CisKKwlBc3NlcnQo IXNlc3Npb252YXJzKTsKKworCWlmICghU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCkKKwl7CisJCS8q IHJlYWQgc2ludmFsIG1lc3NhZ2VzICovCisJCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNr KFZBUklBQkxFT0lELAorCQkJCQkJCQkJICBwZ192YXJpYWJsZV9jYWNoZV9jYWxsYmFjaywKKwkJ CQkJCQkJCSAgKERhdHVtKSAwKTsKKworCQkvKiB3ZSBuZWVkIG91ciBvd24gbG9uZy1saXZlZCBt ZW1vcnkgY29udGV4dCAqLworCQlTVmFyaWFibGVNZW1vcnlDb250ZXh0ID0KKwkJCUFsbG9jU2V0 Q29udGV4dENyZWF0ZShUb3BNZW1vcnlDb250ZXh0LAorCQkJCQkJCQkgICJzZXNzaW9uIHZhcmlh YmxlcyIsCisJCQkJCQkJCSAgQUxMT0NTRVRfU1RBUlRfU01BTExfU0laRVMpOworCX0KKworCW1l bXNldCgmdmFyc19jdGwsIDAsIHNpemVvZih2YXJzX2N0bCkpOworCXZhcnNfY3RsLmtleXNpemUg PSBzaXplb2YoT2lkKTsKKwl2YXJzX2N0bC5lbnRyeXNpemUgPSBzaXplb2YoU1ZhcmlhYmxlRGF0 YSk7CisJdmFyc19jdGwuaGN4dCA9IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQ7CisKKwlzZXNzaW9u dmFycyA9IGhhc2hfY3JlYXRlKCJTZXNzaW9uIHZhcmlhYmxlcyIsIDY0LCAmdmFyc19jdGwsCisJ CQkJCQkJICBIQVNIX0VMRU0gfCBIQVNIX0JMT0JTIHwgSEFTSF9DT05URVhUKTsKK30KKworLyoK KyAqIFNlYXJjaCBhIHNlc3Npb24gdmFyaWFibGUgaW4gdGhlIGhhc2ggdGFibGUgZ2l2ZW4gaXRz IE9JRC4gIElmIGl0CisgKiBkb2Vzbid0IGV4aXN0LCB0aGVuIGluc2VydCBpdCB0aGVyZS4KKyAq CisgKiBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBkb2luZyBwZXJtaXNzaW9uIGNoZWNr cy4KKyAqCisgKiBBcyBhIHNpZGUgZWZmZWN0LCB0aGlzIGZ1bmN0aW9uIGFjcXVpcmVzIGEgQWNj ZXNzU2hhcmVMb2NrIG9uIHRoZQorICogc2Vzc2lvbiB2YXJpYWJsZSB1bnRpbCB0aGUgZW5kIG9m IHRoZSB0cmFuc2FjdGlvbi4KKyAqLworc3RhdGljIFNWYXJpYWJsZQorZ2V0X3Nlc3Npb25fdmFy aWFibGUoT2lkIHZhcmlkKQoreworCVNWYXJpYWJsZQlzdmFyOworCWJvb2wJCWZvdW5kOworCisJ LyogcHJvdGVjdCB0aGUgdXNlZCBzZXNzaW9uIHZhcmlhYmxlIGFnYWluc3QgRFJPUCAqLworCUxv Y2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAwLCBBY2Nlc3NTaGFy ZUxvY2spOworCisJaWYgKCFzZXNzaW9udmFycykKKwkJY3JlYXRlX3Nlc3Npb252YXJzX2hhc2h0 YWJsZXMoKTsKKworCXN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywg JnZhcmlkLAorCQkJCQkJCQkgICBIQVNIX0VOVEVSLCAmZm91bmQpOworCisJaWYgKGZvdW5kKQor CXsKKwkJaWYgKCFzdmFyLT5pc192YWxpZCkKKwkJeworCQkJLyoKKwkJCSAqIElmIHRoZXJlIHdh cyBhbiBpbnZhbGlkYXRpb24gbWVzc2FnZSwgdGhlIHZhcmlhYmxlIG1pZ2h0IHN0aWxsIGJlCisJ CQkgKiB2YWxpZCwgYnV0IHdlIGhhdmUgdG8gY2hlY2sgd2l0aCB0aGUgc3lzdGVtIGNhdGFsb2cu CisJCQkgKi8KKwkJCWlmIChpc19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKHN2YXIpKQorCQkJCXN2 YXItPmlzX3ZhbGlkID0gdHJ1ZTsKKwkJCWVsc2UKKwkJCQkvKiBpZiB0aGUgdmFsdWUgY2Fubm90 IGJlIHZhbGlkYXRlZCwgd2UgaGF2ZSB0byBkaXNjYXJkIGl0ICovCisJCQkJZnJlZV9zZXNzaW9u X3ZhcmlhYmxlX3ZhbHVlKHN2YXIpOworCQl9CisJfQorCWVsc2UKKwkJc3Zhci0+aXNfdmFsaWQg PSBmYWxzZTsKKworCS8qCisJICogRm9yY2Ugc2V0dXAgZm9yIG5vdCB5ZXQgaW5pdGlhbGl6ZWQg dmFyaWFibGVzIG9yIHZhcmlhYmxlcyB0aGF0IGNhbm5vdAorCSAqIGJlIHZhbGlkYXRlZC4KKwkg Ki8KKwlpZiAoIXN2YXItPmlzX3ZhbGlkKQorCXsKKwkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShz dmFyLCB2YXJpZCk7CisKKwkJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNc IiAob2lkOiV1KSBoYXMgYXNzaWduZWQgZW50cnkgaW4gbWVtb3J5IChlbWl0dGVkIGJ5IFJFQUQp IiwKKwkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNl KHZhcmlkKSksCisJCQkgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCksCisJCQkgdmFy aWQpOworCX0KKworCS8qIGVuc3VyZSB0aGUgcmV0dXJuZWQgZGF0YSBpcyBzdGlsbCBvZiB0aGUg Y29ycmVjdCBkb21haW4gKi8KKwlpZiAoc3Zhci0+aXNfZG9tYWluKQorCXsKKwkJLyoKKwkJICog U3RvcmUgImV4dHJhIiBmb3IgZG9tYWluX2NoZWNrKCkgaW4gVG9wVHJhbnNhY3Rpb25Db250ZXh0 LiAgV2hlbiB3ZQorCQkgKiBhcmUgaW4gYSBuZXcgdHJhbnNhY3Rpb24sIGRvbWFpbl9jaGVja19l eHRyYSBjYWNoZSBpcyBub3QgdmFsaWQgYW55CisJCSAqIG1vcmUuCisJCSAqLworCQlpZiAoc3Zh ci0+ZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQgIT0gTXlQcm9jLT52eGlkLmx4aWQpCisJCQlzdmFy LT5kb21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOworCisJCWRvbWFpbl9jaGVjayhzdmFyLT52YWx1 ZSwgc3Zhci0+aXNudWxsLAorCQkJCQkgc3Zhci0+dHlwaWQsICZzdmFyLT5kb21haW5fY2hlY2tf ZXh0cmEsCisJCQkJCSBUb3BUcmFuc2FjdGlvbkNvbnRleHQpOworCisJCXN2YXItPmRvbWFpbl9j aGVja19leHRyYV9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CisJfQorCisJcmV0dXJuIHN2YXI7 Cit9CisKKy8qCisgKiBTdG9yZSB0aGUgZ2l2ZW4gdmFsdWUgaW4gYSBzZXNzaW9uIHZhcmlhYmxl IGluIHRoZSBjYWNoZS4KKyAqCisgKiBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBkb2lu ZyBwZXJtaXNzaW9uIGNoZWNrcy4KKyAqCisgKiBBcyBhIHNpZGUgZWZmZWN0LCB0aGlzIGZ1bmN0 aW9uIGFjcXVpcmVzIGEgQWNjZXNzU2hhcmVMb2NrIG9uIHRoZSBzZXNzaW9uCisgKiB2YXJpYWJs ZSB1bnRpbCB0aGUgZW5kIG9mIHRoZSB0cmFuc2FjdGlvbi4KKyAqLwordm9pZAorU2V0U2Vzc2lv blZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQoreworCVNWYXJp YWJsZQlzdmFyOworCWJvb2wJCWZvdW5kOworCisJLyogcHJvdGVjdCB1c2VkIHNlc3Npb24gdmFy aWFibGUgYWdhaW5zdCBEUk9QICovCisJTG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRp b25JZCwgdmFyaWQsIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwlpZiAoIXNlc3Npb252YXJzKQor CQljcmVhdGVfc2Vzc2lvbnZhcnNfaGFzaHRhYmxlcygpOworCisJc3ZhciA9IChTVmFyaWFibGUp IGhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsCisJCQkJCQkJCSAgIEhBU0hfRU5URVIs ICZmb3VuZCk7CisKKwlpZiAoIWZvdW5kKQorCXsKKwkJc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShz dmFyLCB2YXJpZCk7CisKKwkJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNc IiAob2lkOiV1KSBoYXMgYXNzaWduZWQgZW50cnkgaW4gbWVtb3J5IChlbWl0dGVkIGJ5IFdSSVRF KSIsCisJCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFj ZShzdmFyLT52YXJpZCkpLAorCQkJIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoc3Zhci0+dmFy aWQpLAorCQkJIHZhcmlkKTsKKwl9CisKKwkvKiBpZiB0aGlzIGZhaWxzLCBpdCB3b24ndCBjaGFu Z2UgdGhlIHN0b3JlZCB2YWx1ZSAqLworCXNldF9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIsIHZhbHVl LCBpc051bGwpOworfQorCisvKgorICogUmV0dXJucyBhIGNvcHkgb2YgdGhlIHZhbHVlIHN0b3Jl ZCBpbiBhIHZhcmlhYmxlLgorICovCitzdGF0aWMgaW5saW5lIERhdHVtCitjb3B5X3Nlc3Npb25f dmFyaWFibGVfdmFsdWUoU1ZhcmlhYmxlIHN2YXIsIGJvb2wgKmlzTnVsbCkKK3sKKwlEYXR1bQkJ dmFsdWU7CisKKwkvKiBmb3JjZSBjb3B5IG9mIG5vbiBOVUxMIHZhbHVlICovCisJaWYgKCFzdmFy LT5pc251bGwpCisJeworCQl2YWx1ZSA9IGRhdHVtQ29weShzdmFyLT52YWx1ZSwgc3Zhci0+dHlw Ynl2YWwsIHN2YXItPnR5cGxlbik7CisJCSppc051bGwgPSBmYWxzZTsKKwl9CisJZWxzZQorCXsK KwkJdmFsdWUgPSAoRGF0dW0pIDA7CisJCSppc051bGwgPSB0cnVlOworCX0KKworCXJldHVybiB2 YWx1ZTsKK30KKworLyoKKyAqIFJldHVybnMgYSBjb3B5IG9mIHRoZSB2YWx1ZSBvZiB0aGUgc2Vz c2lvbiB2YXJpYWJsZSAoaW4gdGhlIGN1cnJlbnQgbWVtb3J5CisgKiBjb250ZXh0KS4gIFRoZSBj YWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIHBlcm1pc3Npb24gY2hlY2tzLgorICovCitEYXR1bQor R2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsLCBPaWQgKnR5cGlkKQor eworCVNWYXJpYWJsZQlzdmFyOworCisJc3ZhciA9IGdldF9zZXNzaW9uX3ZhcmlhYmxlKHZhcmlk KTsKKworCS8qCisJICogQWx0aG91Z2ggInN2YXIiIGlzIGZyZXNobHkgdmFsaWRhdGVkIGluIHRo aXMgcG9pbnQsIHN2YXItPmlzX3ZhbGlkIGNhbgorCSAqIGJlIGZhbHNlLCBpZiBhbiBpbnZhbGlk YXRpb24gbWVzc2FnZSB3YXMgcHJvY2Vzc2VkIGR1cmluZyB0aGUgZG9tYWluIGNoZWNrLgorCSAq IEJ1dCB0aGUgdmFyaWFibGUgYW5kIGFsbCBpdHMgZGVwZW5kZW5jaWVzIGFyZSBsb2NrZWQgbm93 LCBzbyB3ZSBkb24ndCBuZWVkCisJICogdG8gcmVwZWF0IHRoZSB2YWxpZGF0aW9uLgorCSAqLwor CSp0eXBpZCA9IHN2YXItPnR5cGlkOworCisJcmV0dXJuIGNvcHlfc2Vzc2lvbl92YXJpYWJsZV92 YWx1ZShzdmFyLCBpc051bGwpOworfQorCisvKgorICogUmV0dXJucyBhIGNvcHkgb2YgdGhlIHZh bHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGFmdGVyIGNoZWNraW5nIGlmIHRoZQorICogdHlw ZSBpcyB0aGUgc2FtZSBhcyAiZXhwZWN0ZWRfdHlwaWQiLiAgVGhlIGNhbGxlciBpcyByZXNwb25z aWJsZSBmb3IKKyAqIHBlcm1pc3Npb24gY2hlY2tzLgorICovCitEYXR1bQorR2V0U2Vzc2lvblZh cmlhYmxlV2l0aFR5cGVDaGVjayhPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCwgT2lkIGV4cGVjdGVk X3R5cGlkKQoreworCVNWYXJpYWJsZQlzdmFyOworCisJc3ZhciA9IGdldF9zZXNzaW9uX3Zhcmlh YmxlKHZhcmlkKTsKKworCUFzc2VydChzdmFyICYmIHN2YXItPmlzX3ZhbGlkKTsKKworCWlmIChl eHBlY3RlZF90eXBpZCAhPSBzdmFyLT50eXBpZCkKKwkJZWxvZyhFUlJPUiwgInR5cGUgb2YgdmFy aWFibGUgXCIlcy4lc1wiIGlzIGRpZmZlcmVudCB0aGFuIGV4cGVjdGVkIiwKKwkJCSBnZXRfbmFt ZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkg Z2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOworCisJcmV0dXJuIGNvcHlfc2Vzc2lv bl92YXJpYWJsZV92YWx1ZShzdmFyLCBpc051bGwpOworfQorCisvKgorICogQXNzaWduIHRoZSBy ZXN1bHQgb2YgdGhlIGV2YWx1YXRlZCBleHByZXNzaW9uIHRvIHRoZSBzZXNzaW9uIHZhcmlhYmxl CisgKi8KK3ZvaWQKK0V4ZWN1dGVMZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJCSAgIExl dFN0bXQgKnN0bXQsCisJCQkgICBQYXJhbUxpc3RJbmZvIHBhcmFtcywKKwkJCSAgIFF1ZXJ5RW52 aXJvbm1lbnQgKnF1ZXJ5RW52LAorCQkJICAgUXVlcnlDb21wbGV0aW9uICpxYykKK3sKKwlRdWVy eQkgICAqcXVlcnkgPSBjYXN0Tm9kZShRdWVyeSwgc3RtdC0+cXVlcnkpOworCUxpc3QJICAgKnJl d3JpdHRlbjsKKwlEZXN0UmVjZWl2ZXIgKmRlc3Q7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlQ bGFubmVkU3RtdCAqcGxhbjsKKwlRdWVyeURlc2MgICpxdWVyeURlc2M7CisJT2lkCQkJdmFyaWQg PSBxdWVyeS0+cmVzdWx0VmFyaWFibGU7CisKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJpZCkpOwor CisJLyogZG8gd2UgaGF2ZSBwZXJtaXNzaW9uIHRvIHdyaXRlIHRvIHRoZSBzZXNzaW9uIHZhcmlh YmxlPyAqLworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhWYXJpYWJsZVJlbGF0aW9uSWQs IHZhcmlkLCBHZXRVc2VySWQoKSwgQUNMX1VQREFURSk7CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xD SEVDS19PSykKKwkJYWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfVkFSSUFCTEUsIGdl dF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKTsKKworCS8qIGNyZWF0ZSBhIGRlc3QgcmVj ZWl2ZXIgZm9yIExFVCAqLworCWRlc3QgPSBDcmVhdGVWYXJpYWJsZURlc3RSZWNlaXZlcih2YXJp ZCk7CisKKwkvKiBydW4gdGhlIHF1ZXJ5IHJld3JpdGVyICovCisJcXVlcnkgPSBjb3B5T2JqZWN0 KHF1ZXJ5KTsKKworCXJld3JpdHRlbiA9IFF1ZXJ5UmV3cml0ZShxdWVyeSk7CisKKwlBc3NlcnQo bGlzdF9sZW5ndGgocmV3cml0dGVuKSA9PSAxKTsKKworCXF1ZXJ5ID0gbGluaXRpYWxfbm9kZShR dWVyeSwgcmV3cml0dGVuKTsKKwlBc3NlcnQocXVlcnktPmNvbW1hbmRUeXBlID09IENNRF9TRUxF Q1QpOworCisJLyogcGxhbiB0aGUgcXVlcnkgKi8KKwlwbGFuID0gcGdfcGxhbl9xdWVyeShxdWVy eSwgcHN0YXRlLT5wX3NvdXJjZXRleHQsCisJCQkJCQkgQ1VSU09SX09QVF9QQVJBTExFTF9PSywg cGFyYW1zKTsKKworCS8qCisJICogVXNlIGEgc25hcHNob3Qgd2l0aCBhbiB1cGRhdGVkIGNvbW1h bmQgSUQgdG8gZW5zdXJlIHRoaXMgcXVlcnkgc2VlcyB0aGUKKwkgKiByZXN1bHRzIG9mIGFueSBw cmV2aW91c2x5IGV4ZWN1dGVkIHF1ZXJpZXMuICAoVGhpcyBjb3VsZCBvbmx5IG1hdHRlciBpZgor CSAqIHRoZSBwbGFubmVyIGV4ZWN1dGVkIGFuIGFsbGVnZWRseS1zdGFibGUgZnVuY3Rpb24gdGhh dCBjaGFuZ2VkIHRoZQorCSAqIGRhdGFiYXNlIGNvbnRlbnRzLCBidXQgbGV0J3MgZG8gaXQgYW55 d2F5IHRvIGJlIHBhcmFsbGVsIHRvIHRoZSBFWFBMQUlOCisJICogY29kZSBwYXRoLikKKwkgKi8K KwlQdXNoQ29waWVkU25hcHNob3QoR2V0QWN0aXZlU25hcHNob3QoKSk7CisJVXBkYXRlQWN0aXZl U25hcHNob3RDb21tYW5kSWQoKTsKKworCS8qIGNyZWF0ZSBhIFF1ZXJ5RGVzYywgcmVkaXJlY3Rp bmcgb3V0cHV0IHRvIG91ciB0dXBsZSByZWNlaXZlciAqLworCXF1ZXJ5RGVzYyA9IENyZWF0ZVF1 ZXJ5RGVzYyhwbGFuLCBwc3RhdGUtPnBfc291cmNldGV4dCwKKwkJCQkJCQkJR2V0QWN0aXZlU25h cHNob3QoKSwgSW52YWxpZFNuYXBzaG90LAorCQkJCQkJCQlkZXN0LCBwYXJhbXMsIHF1ZXJ5RW52 LCAwKTsKKworCS8qIGNhbGwgRXhlY3V0b3JTdGFydCB0byBwcmVwYXJlIHRoZSBwbGFuIGZvciBl eGVjdXRpb24gKi8KKwlFeGVjdXRvclN0YXJ0KHF1ZXJ5RGVzYywgMCk7CisKKwkvKgorCSAqIFJ1 biB0aGUgcGxhbiB0byBjb21wbGV0aW9uLiAgVGhlIHJlc3VsdCBzaG91bGQgYmUgb25seSBvbmUg cm93LiAgVG8KKwkgKiBjaGVjayBpZiB0aGVyZSBhcmUgdG9vIG1hbnkgcmVzdWx0IHJvd3MsIHdl IHRyeSB0byBmZXRjaCB0d28uCisJICovCisJRXhlY3V0b3JSdW4ocXVlcnlEZXNjLCBGb3J3YXJk U2NhbkRpcmVjdGlvbiwgMkwpOworCisJLyogc2F2ZSB0aGUgcm93Y291bnQgaWYgd2UncmUgZ2l2 ZW4gYSBRdWVyeUNvbXBsZXRpb24gdG8gZmlsbCAqLworCWlmIChxYykKKwkJU2V0UXVlcnlDb21w bGV0aW9uKHFjLCBDTURUQUdfTEVULCBxdWVyeURlc2MtPmVzdGF0ZS0+ZXNfcHJvY2Vzc2VkKTsK KworCS8qIGFuZCBjbGVhbiB1cCAqLworCUV4ZWN1dG9yRmluaXNoKHF1ZXJ5RGVzYyk7CisJRXhl Y3V0b3JFbmQocXVlcnlEZXNjKTsKKworCUZyZWVRdWVyeURlc2MocXVlcnlEZXNjKTsKKworCVBv cEFjdGl2ZVNuYXBzaG90KCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9N YWtlZmlsZSBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlCmluZGV4IDExMTE4ZDBjZTAy Li43MTI0OGEzNGYyNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUK KysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvTWFrZWZpbGUKQEAgLTc2LDYgKzc2LDcgQEAgT0JK UyA9IFwKIAlub2RlV2luZG93QWdnLm8gXAogCW5vZGVXb3JrdGFibGVzY2FuLm8gXAogCXNwaS5v IFwKKwlzdmFyaWFibGVSZWNlaXZlci5vIFwKIAl0cXVldWUubyBcCiAJdHN0b3JlUmVjZWl2ZXIu bwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwppbmRleCA4OTUxNGY3YTRmMC4uOWI1NTg2MWVhNjQg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpAQCAtOTkxLDYgKzk5MSw0MSBAQCBFeGVjSW5pdEV4 cHJSZWMoRXhwciAqbm9kZSwgRXhwclN0YXRlICpzdGF0ZSwKIAkJCQkJCXNjcmF0Y2guZC5wYXJh bS5wYXJhbXR5cGUgPSBwYXJhbS0+cGFyYW10eXBlOwogCQkJCQkJRXhwckV2YWxQdXNoU3RlcChz dGF0ZSwgJnNjcmF0Y2gpOwogCQkJCQkJYnJlYWs7CisKKwkJCQkJY2FzZSBQQVJBTV9WQVJJQUJM RToKKwkJCQkJCXsKKwkJCQkJCQlpbnQJCQllc19udW1fc2Vzc2lvbl92YXJpYWJsZXMgPSAwOwor CQkJCQkJCVNlc3Npb25WYXJpYWJsZVZhbHVlICplc19zZXNzaW9uX3ZhcmlhYmxlcyA9IE5VTEw7 CisJCQkJCQkJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKnZhcjsKKworCQkJCQkJCWlmIChzdGF0ZS0+ cGFyZW50ICYmIHN0YXRlLT5wYXJlbnQtPnN0YXRlKQorCQkJCQkJCXsKKwkJCQkJCQkJZXNfc2Vz c2lvbl92YXJpYWJsZXMgPSBzdGF0ZS0+cGFyZW50LT5zdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJs ZXM7CisJCQkJCQkJCWVzX251bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IHN0YXRlLT5wYXJlbnQtPnN0 YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJsZXM7CisJCQkJCQkJfQorCisJCQkJCQkJQXNzZXJ0 KGVzX3Nlc3Npb25fdmFyaWFibGVzKTsKKworCQkJCQkJCS8qIHBhcmFtZXRlciBzYW5pdHkgY2hl Y2tzICovCisJCQkJCQkJaWYgKHBhcmFtLT5wYXJhbWlkID49IGVzX251bV9zZXNzaW9uX3Zhcmlh YmxlcykKKwkJCQkJCQkJZWxvZyhFUlJPUiwgInBhcmFtaWQgb2YgUEFSQU1fVkFSSUFCTEUgcGFy YW0gaXMgb3V0IG9mIHJhbmdlIik7CisKKwkJCQkJCQl2YXIgPSAmZXNfc2Vzc2lvbl92YXJpYWJs ZXNbcGFyYW0tPnBhcmFtaWRdOworCisJCQkJCQkJaWYgKHZhci0+dHlwaWQgIT0gcGFyYW0tPnBh cmFtdHlwZSkKKwkJCQkJCQkJZWxvZyhFUlJPUiwgInR5cGUgb2YgYnVmZmVyZWQgdmFsdWUgaXMg ZGlmZmVyZW50IHRoYW4gUEFSQU1fVkFSSUFCTEUgdHlwZSIpOworCisJCQkJCQkJLyoKKwkJCQkJ CQkgKiBJbiB0aGlzIGNhc2UsIHBhc3MgdGhlIHZhbHVlIGxpa2UgYQorCQkJCQkJCSAqIGNvbnN0 YW50LgorCQkJCQkJCSAqLworCQkJCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9DT05TVDsKKwkJ CQkJCQlzY3JhdGNoLmQuY29uc3R2YWwudmFsdWUgPSB2YXItPnZhbHVlOworCQkJCQkJCXNjcmF0 Y2guZC5jb25zdHZhbC5pc251bGwgPSB2YXItPmlzbnVsbDsKKwkJCQkJCQlFeHByRXZhbFB1c2hT dGVwKHN0YXRlLCAmc2NyYXRjaCk7CisJCQkJCQl9CisJCQkJCQlicmVhazsKKwogCQkJCQljYXNl IFBBUkFNX0VYVEVSTjoKIAogCQkJCQkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNNYWluLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCmluZGV4IGEw NjI5NWI2YmE3Li5hNDlmZTU2MDM2NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY01haW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCkBAIC00Myw3 ICs0Myw5IEBACiAjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL25h bWVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGFydGl0aW9uLmgiCisjaW5jbHVkZSAiY2F0 YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL21hdHZpZXcuaCIKKyNpbmNs dWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHJp Z2dlci5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAjaW5jbHVkZSAiZXhlY3V0 b3Ivbm9kZVN1YnBsYW4uaCIKQEAgLTE5Myw2ICsxOTUsNzEgQEAgc3RhbmRhcmRfRXhlY3V0b3JT dGFydChRdWVyeURlc2MgKnF1ZXJ5RGVzYywgaW50IGVmbGFncykKIAlBc3NlcnQocXVlcnlEZXNj LT5zb3VyY2VUZXh0ICE9IE5VTEwpOwogCWVzdGF0ZS0+ZXNfc291cmNlVGV4dCA9IHF1ZXJ5RGVz Yy0+c291cmNlVGV4dDsKIAorCS8qCisJICogVGhlIGV4ZWN1dG9yIGRvZXNuJ3Qgd29yayB3aXRo IHNlc3Npb24gdmFyaWFibGVzIGRpcmVjdGx5LiBWYWx1ZXMgb2YKKwkgKiByZWxhdGVkIHNlc3Np b24gdmFyaWFibGVzIGFyZSBjb3BpZWQgdG8gYSBkZWRpY2F0ZWQgYXJyYXksIGFuZCB0aGlzIGFy cmF5CisJICogaXMgcGFzc2VkIHRvIHRoZSBleGVjdXRvci4gVGhpcyBhcnJheSBpcyBzdGFibGUg InNuYXBzaG90IiBvZiB2YWx1ZXMgb2YKKwkgKiB1c2VkIHNlc3Npb24gdmFyaWFibGVzLiBUaGVy ZSBhcmUgdGhyZWUgYmVuZWZpdHMgb2YgdGhpcyBzdHJhdGVneToKKwkgKgorCSAqIC0gY29uc2lz dGVuY3kgd2l0aCBleHRlcm5hbCBwYXJhbWV0ZXJzIGFuZCBwbHBnc3FsIHZhcmlhYmxlcywKKwkg KgorCSAqIC0gc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHBhcmFsbGVsIHNhZmUsCisJICoKKwkg KiAtIHdlIGRvbid0IG5lZWQgbWFrZSBmcmVzaCBjb3B5IGZvciBhbnkgcmVhZCBvZiBzZXNzaW9u IHZhcmlhYmxlCisJICogICAgKHRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIGludGVybmFs bHkgdGhlIHNlc3Npb24gdmFyaWFibGUgY2FuCisJICogICAgYmUgY2hhbmdlZCBpbnNpZGUgcXVl cnkgZXhlY3V0aW9uIHRpbWUsIGFuZCB0aGVuIGEgcmVmZXJlbmNlIHRvCisJICogICAgcHJldmlv dXNseSByZXR1cm5lZCB2YWx1ZSBjYW4gYmUgY29ycnVwdGVkKS4KKwkgKi8KKwlpZiAocXVlcnlE ZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykKKwl7CisJCWludAkJCW5TZXNzaW9u VmFyaWFibGVzOworCQlpbnQJCQlpID0gMDsKKworCQkvKgorCQkgKiBJbiB0aGlzIGNhc2UsIHRo ZSBxdWVyeSB1c2VzIHNlc3Npb24gdmFyaWFibGVzLCBidXQgd2UgaGF2ZSB0bworCQkgKiBwcmVw YXJlIHRoZSBhcnJheSB3aXRoIHBhc3NlZCB2YWx1ZXMgKG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJs ZXMpCisJCSAqIGZpcnN0LgorCQkgKi8KKwkJQXNzZXJ0KCFJc1BhcmFsbGVsV29ya2VyKCkpOwor CQluU2Vzc2lvblZhcmlhYmxlcyA9IGxpc3RfbGVuZ3RoKHF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQt PnNlc3Npb25WYXJpYWJsZXMpOworCisJCS8qIGNyZWF0ZSB0aGUgYXJyYXkgdXNlZCBmb3IgcGFz c2luZyB2YWx1ZXMgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLworCQllc3RhdGUtPmVzX3Nl c3Npb25fdmFyaWFibGVzID0gKFNlc3Npb25WYXJpYWJsZVZhbHVlICopCisJCQlwYWxsb2MoblNl c3Npb25WYXJpYWJsZXMgKiBzaXplb2YoU2Vzc2lvblZhcmlhYmxlVmFsdWUpKTsKKworCQkvKiBm aWxsIHRoZSBhcnJheSAqLworCQlmb3JlYWNoX29pZCh2YXJpZCwgcXVlcnlEZXNjLT5wbGFubmVk c3RtdC0+c2Vzc2lvblZhcmlhYmxlcykKKwkJeworCQkJLyoKKwkJCSAqIFBlcm1pc3Npb24gY2hl Y2sgc2hvdWxkIGJlIGV4ZWN1dGVkIG9uIGFsbCBleHBsaWNpdGx5IHVzZWQKKwkJCSAqIHZhcmlh YmxlcyBpbiB0aGUgcXVlcnkuIEZvciBpbXBsaWNpdGx5IHVzZWQgdmFyaWFibGUKKwkJCSAqIChs aWtlIGJhc2Ugbm9kZSBvZiBhc3NpZ25tZW50IGluZGlyZWN0KSB3ZSBjYW5ub3QgZG8gcGVybWlz c2lvbgorCQkJICogY2hlY2ssIGJlY2F1c2Ugd2UgbmVlZCByZWFkIHRoZSB2YWx1ZSAoYW5kIHVz ZXIgY2FuIGhhdmUKKwkJCSAqIG9ubHkgVVBEQVRFIHZhcmlhYmxlKS4gSW4gdGhpcyBjYXNlIHRo ZSBwZXJtaXNzaW9uIGNoZWNrCisJCQkgKiBpcyBleGVjdXRlZCBpbiB3cml0ZSB0aW1lLgorCQkJ ICovCisJCQlpZiAodmFyaWQgIT0gcXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+ZXhjbFNlbGVjdFBl cm1DaGVja1ZhcmlkKQorCQkJeworCQkJCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisKKwkJCQlhY2xy ZXN1bHQgPSBvYmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJ CQkJCQkJR2V0VXNlcklkKCksIEFDTF9TRUxFQ1QpOworCQkJCWlmIChhY2xyZXN1bHQgIT0gQUNM Q0hFQ0tfT0spCisJCQkJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxF LAorCQkJCQkJCQkgICBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSk7CisJCQl9CisK KwkJCWVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0udmFyaWQgPSB2YXJpZDsKKwkJCWVz dGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0udmFsdWUgPSBHZXRTZXNzaW9uVmFyaWFibGUo dmFyaWQsCisJCQkJCQkJCQkJCQkgICAmZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlc1tpXS5p c251bGwsCisJCQkJCQkJCQkJCQkgICAmZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlc1tpXS50 eXBpZCk7CisKKwkJCWkrKzsKKwkJfQorCisJCWVzdGF0ZS0+ZXNfbnVtX3Nlc3Npb25fdmFyaWFi bGVzID0gblNlc3Npb25WYXJpYWJsZXM7CisJfQorCiAJLyoKIAkgKiBGaWxsIGluIHRoZSBxdWVy eSBlbnZpcm9ubWVudCwgaWYgYW55LCBmcm9tIHF1ZXJ5RGVzYy4KIAkgKi8KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL21lc29uLmJ1aWxkIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv bWVzb24uYnVpbGQKaW5kZXggMmNlYTQxZjg3NzEuLjQ5MTA5MmZjYzRjIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9leGVjdXRvci9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9tZXNvbi5idWlsZApAQCAtNjQsNiArNjQsNyBAQCBiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMo CiAgICdub2RlV2luZG93QWdnLmMnLAogICAnbm9kZVdvcmt0YWJsZXNjYW4uYycsCiAgICdzcGku YycsCisgICdzdmFyaWFibGVSZWNlaXZlci5jJywKICAgJ3RxdWV1ZS5jJywKICAgJ3RzdG9yZVJl Y2VpdmVyLmMnLAogKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxl UmVjZWl2ZXIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM2MTYzZmIzNmY2Ci0tLSAvZGV2 L251bGwKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuYwpAQCAt MCwwICsxLDE3MiBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogc3ZhcmlhYmxlUmVjZWl2 ZXIuYworICoJICBBbiBpbXBsZW1lbnRhdGlvbiBvZiBEZXN0UmVjZWl2ZXIgdGhhdCBzdG9yZXMg dGhlIHJlc3VsdCB2YWx1ZSBpbgorICoJICBhIHNlc3Npb24gdmFyaWFibGUuCisgKgorICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3Bt ZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhl IFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNy Yy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKKyAqCisgKi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAqLworCisjaW5jbHVkZSAicG9zdGdyZXMuaCIKKyNpbmNsdWRlICJtaXNjYWRtaW4u aCIKKworI2luY2x1ZGUgImFjY2Vzcy9kZXRvYXN0LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192 YXJpYWJsZS5oIgorI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKKyNpbmNs dWRlICJleGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIgorI2luY2x1ZGUgInN0b3JhZ2UvbG9j ay5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAidXRpbHMvbHN5c2Nh Y2hlLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKKworLyoKKyAqIFRoaXMgRGVzdFJl Y2VpdmVyIGlzIHVzZWQgYnkgdGhlIExFVCBjb21tYW5kIGZvciBzdG9yaW5nIHRoZSByZXN1bHQg dG8gYQorICogc2Vzc2lvbiB2YXJpYWJsZS4gIFRoZSByZXN1bHQgaGFzIHRvIGhhdmUgb25seSBv bmUgdHVwbGUgd2l0aCBvbmx5IG9uZQorICogbm9uLWRlbGV0ZWQgYXR0cmlidXRlLiAgVGhlIHJv dyBjb3VudGVyIChmaWVsZCAicm93cyIpIGlzIGluY3JlbWVudGVkCisgKiBhZnRlciByZWNlaXZp bmcgYSByb3csIGFuZCBhbiBlcnJvciBpcyByYWlzZWQgd2hlbiB0aGVyZSBhcmUgbm8gcm93cyBv cgorICogdGhlcmUgYXJlIG1vcmUgdGhhbiBvbmUgcmVjZWl2ZWQgcm93cy4gIEEgcmVjZWl2ZWQg dHVwbGUgY2Fubm90IHRvIGhhdmUKKyAqIGRlbGV0ZWQgYXR0cmlidXRlcy4gIFRoZSB2YWx1ZSBp cyBkZXRvYXN0ZWQgYmVmb3JlIHN0b3JpbmcgaXQgaW4gdGhlCisgKiBzZXNzaW9uIHZhcmlhYmxl LgorICovCit0eXBlZGVmIHN0cnVjdAoreworCURlc3RSZWNlaXZlciBwdWI7CisJT2lkCQkJdmFy aWQ7CisJYm9vbAkJbmVlZF9kZXRvYXN0OwkJLyogZG8gd2UgbmVlZCB0byBkZXRvYXN0IHRoZSBh dHRyaWJ1dGU/ICovCisJaW50CQkJcm93czsJCQkJLyogcm93IGNvdW50ZXIgKi8KK30gU1Zhcmlh YmxlU3RhdGU7CisKKy8qCisgKiBQcmVwYXJlIHRvIHJlY2VpdmUgdHVwbGVzIGZyb20gZXhlY3V0 b3IuCisgKi8KK3N0YXRpYyB2b2lkCitzdmFyaWFibGVTdGFydHVwUmVjZWl2ZXIoRGVzdFJlY2Vp dmVyICpzZWxmLCBpbnQgb3BlcmF0aW9uLCBUdXBsZURlc2MgdHlwZWluZm8pCit7CisJU1Zhcmlh YmxlU3RhdGUgKm15U3RhdGUgPSAoU1ZhcmlhYmxlU3RhdGUgKikgc2VsZjsKKwlMT0NLVEFHCQls b2NrdGFnIFBHX1VTRURfRk9SX0FTU0VSVFNfT05MWTsKKwlGb3JtX3BnX2F0dHJpYnV0ZSBhdHRy OworCU9pZAkJCXR5cGlkIFBHX1VTRURfRk9SX0FTU0VSVFNfT05MWTsKKwlPaWQJCQljb2xsaWQg UEdfVVNFRF9GT1JfQVNTRVJUU19PTkxZOworCWludDMyCQl0eXBtb2QgUEdfVVNFRF9GT1JfQVNT RVJUU19PTkxZOworCisJQXNzZXJ0KG15U3RhdGUtPnB1Yi5teWRlc3QgPT0gRGVzdFZhcmlhYmxl KTsKKwlBc3NlcnQoT2lkSXNWYWxpZChteVN0YXRlLT52YXJpZCkpOworCUFzc2VydChTZWFyY2hT eXNDYWNoZUV4aXN0czEoVkFSSUFCTEVPSUQsIG15U3RhdGUtPnZhcmlkKSk7CisJQXNzZXJ0KHR5 cGVpbmZvLT5uYXR0cyA9PSAxKTsKKworI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKKworCVNF VF9MT0NLVEFHX09CSkVDVChsb2NrdGFnLAorCQkJCQkgICBNeURhdGFiYXNlSWQsCisJCQkJCSAg IFZhcmlhYmxlUmVsYXRpb25JZCwKKwkJCQkJICAgbXlTdGF0ZS0+dmFyaWQsCisJCQkJCSAgIDAp OworCisJQXNzZXJ0KExvY2tIZWxkQnlNZSgmbG9ja3RhZywgQWNjZXNzU2hhcmVMb2NrLCBmYWxz ZSkpOworCisjZW5kaWYKKworCWF0dHIgPSBUdXBsZURlc2NBdHRyKHR5cGVpbmZvLCAwKTsKKwor CUFzc2VydCghYXR0ci0+YXR0aXNkcm9wcGVkKTsKKworI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJ TkcKKworCWdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9kX2NvbGxpZChteVN0YXRlLT52 YXJpZCwKKwkJCQkJCQkJCQkJJnR5cGlkLAorCQkJCQkJCQkJCQkmdHlwbW9kLAorCQkJCQkJCQkJ CQkmY29sbGlkKTsKKworCUFzc2VydChhdHRyLT5hdHR0eXBpZCA9PSB0eXBpZCk7CisJQXNzZXJ0 KGF0dHItPmF0dHR5cG1vZCA8IDAgfHwgYXR0ci0+YXR0dHlwbW9kID09IHR5cG1vZCk7CisKKyNl bmRpZgorCisJbXlTdGF0ZS0+bmVlZF9kZXRvYXN0ID0gYXR0ci0+YXR0bGVuID09IC0xOworCW15 U3RhdGUtPnJvd3MgPSAwOworfQorCisvKgorICogUmVjZWl2ZSBhIHR1cGxlIGZyb20gdGhlIGV4 ZWN1dG9yIGFuZCBzdG9yZSBpdCBpbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLworc3RhdGlj IGJvb2wKK3N2YXJpYWJsZVJlY2VpdmVTbG90KFR1cGxlVGFibGVTbG90ICpzbG90LCBEZXN0UmVj ZWl2ZXIgKnNlbGYpCit7CisJU1ZhcmlhYmxlU3RhdGUgKm15U3RhdGUgPSAoU1ZhcmlhYmxlU3Rh dGUgKikgc2VsZjsKKwlEYXR1bQkJdmFsdWU7CisJYm9vbAkJaXNudWxsOworCWJvb2wJCWZyZWV2 YWwgPSBmYWxzZTsKKworCS8qIG1ha2Ugc3VyZSB0aGUgdHVwbGUgaXMgZnVsbHkgZGVjb25zdHJ1 Y3RlZCAqLworCXNsb3RfZ2V0YWxsYXR0cnMoc2xvdCk7CisKKwl2YWx1ZSA9IHNsb3QtPnR0c192 YWx1ZXNbMF07CisJaXNudWxsID0gc2xvdC0+dHRzX2lzbnVsbFswXTsKKworCWlmIChteVN0YXRl LT5uZWVkX2RldG9hc3QgJiYgIWlzbnVsbCAmJiBWQVJBVFRfSVNfRVhURVJOQUwoRGF0dW1HZXRQ b2ludGVyKHZhbHVlKSkpCisJeworCQl2YWx1ZSA9IFBvaW50ZXJHZXREYXR1bShkZXRvYXN0X2V4 dGVybmFsX2F0dHIoKHN0cnVjdCB2YXJsZW5hICopCisJCQkJCQkJCQkJCQkJICBEYXR1bUdldFBv aW50ZXIodmFsdWUpKSk7CisJCWZyZWV2YWwgPSB0cnVlOworCX0KKworCW15U3RhdGUtPnJvd3Mg Kz0gMTsKKworCWlmIChteVN0YXRlLT5yb3dzID4gMSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX1RPT19NQU5ZX1JPV1MpLAorCQkJCSBlcnJtc2coImV4cHJlc3Npb24g cmV0dXJuZWQgbW9yZSB0aGFuIG9uZSByb3ciKSkpOworCisJU2V0U2Vzc2lvblZhcmlhYmxlKG15 U3RhdGUtPnZhcmlkLCB2YWx1ZSwgaXNudWxsKTsKKworCWlmIChmcmVldmFsKQorCQlwZnJlZShE YXR1bUdldFBvaW50ZXIodmFsdWUpKTsKKworCXJldHVybiB0cnVlOworfQorCisvKgorICogQ2xl YW4gdXAgYXQgZW5kIG9mIHRoZSBleGVjdXRvciBydW4KKyAqLworc3RhdGljIHZvaWQKK3N2YXJp YWJsZVNodXRkb3duUmVjZWl2ZXIoRGVzdFJlY2VpdmVyICpzZWxmKQoreworCWlmICgoKFNWYXJp YWJsZVN0YXRlICopIHNlbGYpLT5yb3dzID09IDApCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9OT19EQVRBX0ZPVU5EKSwKKwkJCQkgZXJybXNnKCJleHByZXNzaW9uIHJl dHVybmVkIG5vIHJvd3MiKSkpOworfQorCisvKgorICogRGVzdHJveSB0aGUgcmVjZWl2ZXIgd2hl biB3ZSBhcmUgZG9uZSB3aXRoIGl0CisgKi8KK3N0YXRpYyB2b2lkCitzdmFyaWFibGVEZXN0cm95 UmVjZWl2ZXIoRGVzdFJlY2VpdmVyICpzZWxmKQoreworCXBmcmVlKHNlbGYpOworfQorCisvKgor ICogSW5pdGlhbGx5IGNyZWF0ZSBhIERlc3RSZWNlaXZlciBvYmplY3QuCisgKi8KK0Rlc3RSZWNl aXZlciAqCitDcmVhdGVWYXJpYWJsZURlc3RSZWNlaXZlcihPaWQgdmFyaWQpCit7CisJU1Zhcmlh YmxlU3RhdGUgKnNlbGYgPSAoU1ZhcmlhYmxlU3RhdGUgKikgcGFsbG9jMChzaXplb2YoU1Zhcmlh YmxlU3RhdGUpKTsKKworCXNlbGYtPnB1Yi5yZWNlaXZlU2xvdCA9IHN2YXJpYWJsZVJlY2VpdmVT bG90OworCXNlbGYtPnB1Yi5yU3RhcnR1cCA9IHN2YXJpYWJsZVN0YXJ0dXBSZWNlaXZlcjsKKwlz ZWxmLT5wdWIuclNodXRkb3duID0gc3ZhcmlhYmxlU2h1dGRvd25SZWNlaXZlcjsKKwlzZWxmLT5w dWIuckRlc3Ryb3kgPSBzdmFyaWFibGVEZXN0cm95UmVjZWl2ZXI7CisJc2VsZi0+cHViLm15ZGVz dCA9IERlc3RWYXJpYWJsZTsKKworCXNlbGYtPnZhcmlkID0gdmFyaWQ7CisKKwlyZXR1cm4gKERl c3RSZWNlaXZlciAqKSBzZWxmOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9k ZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwppbmRleCBkZjc3OTEzN2M5 ZC4uNTZhOGZlNWQ3NGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5j CisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC00MzQxLDYgKzQzNDEsMTYg QEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAogCQkJCQlyZXR1 cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfTGV0U3RtdDoKKwkJCXsKKwkJCQlM ZXRTdG10ICAgICpzdG10ID0gKExldFN0bXQgKikgbm9kZTsKKworCQkJCWlmIChXQUxLKHN0bXQt PnRhcmdldCkpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChXQUxLKHN0bXQtPnF1ZXJ5KSkK KwkJCQkJcmV0dXJuIHRydWU7CisJCQl9CisJCQlicmVhazsKIAkJY2FzZSBUX1BMQXNzaWduU3Rt dDoKIAkJCXsKIAkJCQlQTEFzc2lnblN0bXQgKnN0bXQgPSAoUExBc3NpZ25TdG10ICopIG5vZGU7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMgYi9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKaW5kZXggZTkyZTEwOGI2YjYuLmJkZDlj YjA2NTAxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMK KysrIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCkBAIC0zMzMsNiArMzMz LDkgQEAgc3RhbmRhcmRfcGxhbm5lcihRdWVyeSAqcGFyc2UsIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0 cmluZywgaW50IGN1cnNvck9wdGlvbnMsCiAJZ2xvYi0+bGFzdFBsYW5Ob2RlSWQgPSAwOwogCWds b2ItPnRyYW5zaWVudFBsYW4gPSBmYWxzZTsKIAlnbG9iLT5kZXBlbmRzT25Sb2xlID0gZmFsc2U7 CisJZ2xvYi0+c2Vzc2lvblZhcmlhYmxlcyA9IE5JTDsKKwlnbG9iLT5iYXNlbm9kZVNlc3Npb25W YXJpZCA9IEludmFsaWRPaWQ7CisJZ2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyU2VsZWN0Q2hlY2sg PSBmYWxzZTsKIAogCS8qCiAJICogQXNzZXNzIHdoZXRoZXIgaXQncyBmZWFzaWJsZSB0byB1c2Ug cGFyYWxsZWwgbW9kZSBmb3IgdGhpcyBxdWVyeS4gV2UKQEAgLTU2Nyw2ICs1NzAsMjAgQEAgc3Rh bmRhcmRfcGxhbm5lcihRdWVyeSAqcGFyc2UsIGNvbnN0IGNoYXIgKnF1ZXJ5X3N0cmluZywgaW50 IGN1cnNvck9wdGlvbnMsCiAJcmVzdWx0LT5wYXJhbUV4ZWNUeXBlcyA9IGdsb2ItPnBhcmFtRXhl Y1R5cGVzOwogCS8qIHV0aWxpdHlTdG10IHNob3VsZCBiZSBudWxsLCBidXQgd2UgbWlnaHQgYXMg d2VsbCBjb3B5IGl0ICovCiAJcmVzdWx0LT51dGlsaXR5U3RtdCA9IHBhcnNlLT51dGlsaXR5U3Rt dDsKKworCXJlc3VsdC0+c2Vzc2lvblZhcmlhYmxlcyA9IGdsb2ItPnNlc3Npb25WYXJpYWJsZXM7 CisKKwkvKgorCSAqIFRoZSBzZXNzaW9uIHZhcmlhYmxlIHVzZWQgKGFuZCBvbmx5IHVzZWQpIGxp a2UgYmFzZSBub2RlCisJICogZm9yIGFzc2lnbmVtbnQgaW5kaXJlY3Rpb24gc2hvdWxkIGJlIGV4 Y2x1ZGVkIGZyb20gcGVybWlzc2lvbgorCSAqIGNoZWNrLgorCSAqLworCWlmIChPaWRJc1ZhbGlk KGdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhcmlkKSAmJgorCQkoIWdsb2ItPmJhc2Vub2RlU2Vzc2lv blZhclNlbGVjdENoZWNrKSkKKwkJcmVzdWx0LT5leGNsU2VsZWN0UGVybUNoZWNrVmFyaWQgPSBn bG9iLT5iYXNlbm9kZVNlc3Npb25WYXJpZDsKKwllbHNlCisJCXJlc3VsdC0+ZXhjbFNlbGVjdFBl cm1DaGVja1ZhcmlkID0gSW52YWxpZE9pZDsKKwogCXJlc3VsdC0+c3RtdF9sb2NhdGlvbiA9IHBh cnNlLT5zdG10X2xvY2F0aW9uOwogCXJlc3VsdC0+c3RtdF9sZW4gPSBwYXJzZS0+c3RtdF9sZW47 CiAKQEAgLTczNyw2ICs3NTQsMTMgQEAgc3VicXVlcnlfcGxhbm5lcihQbGFubmVyR2xvYmFsICpn bG9iLCBRdWVyeSAqcGFyc2UsIFBsYW5uZXJJbmZvICpwYXJlbnRfcm9vdCwKIAkgKi8KIAlwdWxs X3VwX3N1YnF1ZXJpZXMocm9vdCk7CiAKKwkvKgorCSAqIENoZWNrIGlmIHNvbWUgc3VicXVlcnkg dXNlcyBhIHNlc3Npb24gdmFyaWFibGUuICBUaGUgZmxhZworCSAqIGhhc1Nlc3Npb25WYXJpYWJs ZXMgc2hvdWxkIGJlIHRydWUgaWYgdGhlIHF1ZXJ5IG9yIHNvbWUgc3VicXVlcnkgdXNlcyBhCisJ ICogc2Vzc2lvbiB2YXJpYWJsZS4KKwkgKi8KKwlwdWxsX3VwX2hhc19zZXNzaW9uX3ZhcmlhYmxl cyhyb290KTsKKwogCS8qCiAJICogSWYgdGhpcyBpcyBhIHNpbXBsZSBVTklPTiBBTEwgcXVlcnks IGZsYXR0ZW4gaXQgaW50byBhbiBhcHBlbmRyZWwuIFdlCiAJICogZG8gdGhpcyBub3cgYmVjYXVz ZSBpdCByZXF1aXJlcyBhcHBseWluZyBwdWxsX3VwX3N1YnF1ZXJpZXMgdG8gdGhlIGxlYWYKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYyBiL3NyYy9iYWNr ZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYwppbmRleCA4MTM2MzU4OTEyNS4uMDkxNjBlZGYz NzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYworKysg Yi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKQEAgLTIxMCw2ICsyMTAsOSBA QCBzdGF0aWMgTGlzdCAqc2V0X3JldHVybmluZ19jbGF1c2VfcmVmZXJlbmNlcyhQbGFubmVySW5m byAqcm9vdCwKIHN0YXRpYyBMaXN0ICpzZXRfd2luZG93YWdnX3J1bmNvbmRpdGlvbl9yZWZlcmVu Y2VzKFBsYW5uZXJJbmZvICpyb290LAogCQkJCQkJCQkJCQkJICAgTGlzdCAqcnVuY29uZGl0aW9u LAogCQkJCQkJCQkJCQkJICAgUGxhbiAqcGxhbik7CitzdGF0aWMgYm9vbCBwdWxsX3VwX2hhc19z ZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIoTm9kZSAqbm9kZSwKKwkJCQkJCQkJCQkJCSBQbGFubmVy SW5mbyAqcm9vdCk7CitzdGF0aWMgdm9pZCByZWNvcmRfcGxhbl92YXJpYWJsZV9kZXBlbmRlbmN5 KFBsYW5uZXJJbmZvICpyb290LCBPaWQgdmFyaWQpOwogCiAKIC8qKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KgpAQCAtMTMwOSw2ICsxMzEyLDUwIEBAIHNldF9wbGFuX3JlZnMoUGxhbm5lckluZm8gKnJvb3Qs IFBsYW4gKnBsYW4sIGludCBydG9mZnNldCkKIAlyZXR1cm4gcGxhbjsKIH0KIAorLyoKKyAqIFNl YXJjaCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlcyBpbiBzdWJxdWVyaWVzCisgKi8KK3ZvaWQK K3B1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzKFBsYW5uZXJJbmZvICpyb290KQoreworCVF1 ZXJ5CSAgICpxdWVyeSA9IHJvb3QtPnBhcnNlOworCisJaWYgKHF1ZXJ5LT5oYXNTZXNzaW9uVmFy aWFibGVzKQorCXsKKwkJcm9vdC0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHRydWU7CisJfQorCWVs c2UKKwl7CisJCSh2b2lkKSBxdWVyeV90cmVlX3dhbGtlcihxdWVyeSwKKwkJCQkJCQkJIHB1bGxf dXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlciwKKwkJCQkJCQkJICh2b2lkICopIHJvb3Qs IDApOworCX0KK30KKworc3RhdGljIGJvb2wKK3B1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVz X3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVySW5mbyAqcm9vdCkKK3sKKwlpZiAobm9kZSA9PSBO VUxMKQorCQlyZXR1cm4gZmFsc2U7CisJaWYgKElzQShub2RlLCBRdWVyeSkpCisJeworCQlRdWVy eQkgICAqcXVlcnkgPSAoUXVlcnkgKikgbm9kZTsKKworCQlpZiAocXVlcnktPmhhc1Nlc3Npb25W YXJpYWJsZXMpCisJCXsKKwkJCXJvb3QtPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOworCQkJ cmV0dXJuIGZhbHNlOworCQl9CisKKwkJLyogcmVjdXJzZSBpbnRvIHN1YnNlbGVjdHMgKi8KKwkJ cmV0dXJuIHF1ZXJ5X3RyZWVfd2Fsa2VyKChRdWVyeSAqKSBub2RlLAorCQkJCQkJCQkgcHVsbF91 cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2Fsa2VyLAorCQkJCQkJCQkgKHZvaWQgKikgcm9vdCwg MCk7CisJfQorCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIHB1bGxfdXBfaGFz X3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlciwKKwkJCQkJCQkJICAodm9pZCAqKSByb290KTsKK30K KwogLyoKICAqIHNldF9pbmRleG9ubHlzY2FuX3JlZmVyZW5jZXMKICAqCQlEbyBzZXRfcGxhbl9y ZWZlcmVuY2VzIHByb2Nlc3Npbmcgb24gYW4gSW5kZXhPbmx5U2NhbgpAQCAtMTk1Nyw4ICsyMDA0 LDkgQEAgY29weVZhcihWYXIgKnZhcikKICAqIFRoaXMgaXMgY29kZSB0aGF0IGlzIGNvbW1vbiB0 byBhbGwgdmFyaWFudHMgb2YgZXhwcmVzc2lvbi1maXhpbmcuCiAgKiBXZSBtdXN0IGxvb2sgdXAg b3BlcmF0b3Igb3Bjb2RlIGluZm8gZm9yIE9wRXhwciBhbmQgcmVsYXRlZCBub2RlcywKICAqIGFk ZCBPSURzIGZyb20gcmVnY2xhc3MgQ29uc3Qgbm9kZXMgaW50byByb290LT5nbG9iLT5yZWxhdGlv bk9pZHMsIGFuZAotICogYWRkIFBsYW5JbnZhbEl0ZW1zIGZvciB1c2VyLWRlZmluZWQgZnVuY3Rp b25zIGludG8gcm9vdC0+Z2xvYi0+aW52YWxJdGVtcy4KLSAqIFdlIGFsc28gZmlsbCBpbiBjb2x1 bW4gaW5kZXggbGlzdHMgZm9yIEdST1VQSU5HKCkgZXhwcmVzc2lvbnMuCisgKiBhZGQgUGxhbklu dmFsSXRlbXMgZm9yIHVzZXItZGVmaW5lZCBmdW5jdGlvbnMgYW5kIHNlc3Npb24gdmFyaWFibGVz IGludG8KKyAqIHJvb3QtPmdsb2ItPmludmFsSXRlbXMuICBXZSBhbHNvIGZpbGwgaW4gY29sdW1u IGluZGV4IGxpc3RzIGZvciBHUk9VUElORygpCisgKiBleHByZXNzaW9ucy4KICAqCiAgKiBXZSBh c3N1bWUgaXQncyBva2F5IHRvIHVwZGF0ZSBvcGNvZGUgaW5mbyBpbi1wbGFjZS4gIFNvIHRoaXMg Y291bGQgcG9zc2libHkKICAqIHNjcmliYmxlIG9uIHRoZSBwbGFubmVyJ3MgaW5wdXQgZGF0YSBz dHJ1Y3R1cmVzLCBidXQgaXQncyBPSy4KQEAgLTIwNDgsNiArMjA5NiwxMyBAQCBmaXhfZXhwcl9j b21tb24oUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUpCiAJCQkJZy0+Y29scyA9IGNvbHM7 CiAJCX0KIAl9CisJZWxzZSBpZiAoSXNBKG5vZGUsIFBhcmFtKSkKKwl7CisJCVBhcmFtCSAgICpw ID0gKFBhcmFtICopIG5vZGU7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJM RSkKKwkJCXJlY29yZF9wbGFuX3ZhcmlhYmxlX2RlcGVuZGVuY3kocm9vdCwgcC0+cGFyYW12YXJp ZCk7CisJfQogfQogCiAvKgpAQCAtMjA1Nyw2ICsyMTEyLDEwIEBAIGZpeF9leHByX2NvbW1vbihQ bGFubmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSkKICAqIElmIGl0J3MgYSBQQVJBTV9NVUxUSUVY UFIsIHJlcGxhY2UgaXQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgUGFyYW0gZnJvbQogICogcm9vdC0+ bXVsdGlleHByX3BhcmFtczsgb3RoZXJ3aXNlIG5vIGNoYW5nZSBpcyBuZWVkZWQuCiAgKiBKdXN0 IGZvciBwYXJhbm9pYSdzIHNha2UsIHdlIG1ha2UgYSBjb3B5IG9mIHRoZSBub2RlIGluIGVpdGhl ciBjYXNlLgorICoKKyAqIElmIGl0J3MgYSBQQVJBTV9WQVJJQUJMRSwgdGhlbiB3ZSBjb2xsZWN0 IHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaW4KKyAqIHRoZSBsaXN0IHJvb3QtPmdsb2ItPnNlc3Np b25WYXJpYWJsZS4gIEFsc28sIGFzc2lnbiB0aGUgcGFyYW1ldGVyJ3MKKyAqICJwYXJhbWlkIiB0 byB0aGUgcGFyYW1ldGVyJ3MgcG9zaXRpb24gaW4gdGhhdCBsaXN0LgogICovCiBzdGF0aWMgTm9k ZSAqCiBmaXhfcGFyYW1fbm9kZShQbGFubmVySW5mbyAqcm9vdCwgUGFyYW0gKnApCkBAIC0yMDc1 LDYgKzIxMzQsNjIgQEAgZml4X3BhcmFtX25vZGUoUGxhbm5lckluZm8gKnJvb3QsIFBhcmFtICpw KQogCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgUEFSQU1fTVVMVElFWFBSIElEOiAlZCIsIHAt PnBhcmFtaWQpOwogCQlyZXR1cm4gY29weU9iamVjdChsaXN0X250aChwYXJhbXMsIGNvbG5vIC0g MSkpOwogCX0KKworCWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJeworCQlp bnQJCQluID0gMDsKKwkJYm9vbAkJZm91bmQgPSBmYWxzZTsKKworCQkvKiB3ZSB3aWxsIG1vZGlm eSBvYmplY3QgKi8KKwkJcCA9IChQYXJhbSAqKSBjb3B5T2JqZWN0KHApOworCisJCS8qCisJCSAq IE5vdywgd2UgY2FuIGFjdHVhbGl6ZSBsaXN0IG9mIHNlc3Npb24gdmFyaWFibGVzLCBhbmQgd2Ug Y2FuCisJCSAqIGNvbXBsZXRlIHBhcmFtaWQgcGFyYW1ldGVyLgorCQkgKi8KKwkJZm9yZWFjaF9v aWQodmFyaWQsIHJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZXMpCisJCXsKKwkJCWlmICh2YXJp ZCA9PSBwLT5wYXJhbXZhcmlkKQorCQkJeworCQkJCXAtPnBhcmFtaWQgPSBuOworCQkJCWZvdW5k ID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCW4gKz0gMTsKKwkJfQorCisJCWlmICghZm91 bmQpCisJCXsKKwkJCXJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZXMgPSBsYXBwZW5kX29pZChy b290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzLAorCQkJCQkJCQkJCQkJCSAgIHAtPnBhcmFtdmFy aWQpOworCQkJcC0+cGFyYW1pZCA9IG47CisJCX0KKworCQkvKgorCQkgKiBXZSBkbyBTRUxFQ1Qg cGVybWlzc2lvbiBjaGVjayBvZiBhbGwgdmFyaWFibGVzIHVzZWQgYnkKKwkJICogdGhlIHF1ZXJ5 IGV4Y2x1ZGluZyB0aGUgdmFyaWFibGUgdGhhdCBpcyB1c2VkIG9ubHkgYXMgYmFzZSBub2RlCisJ CSAqIG9mIGFzc2lnbm1lbnQgaW5kaXJlY3Rpb24uIFRoZSB2YXJpYWJsZSBpZCBhc3NpZ25lZCB0 byB0aGlzIHBhcmFtCisJCSAqIHNob3VsZCBiZSBzYW1lIGxpa2UgcmVzdWx0VmFyaWFibGUgaWQs IGFuZCB0aGlzIHBhcmFtIHNob3VsZCBiZQorCQkgKiB1c2VkIG9ubHkgb25jZSBpbiBxdWVyeS4g V2hlbiB0aGUgdmFyaWFibGUgaXMgcmVmZXJlbmNlZCBieSBhbnkKKwkJICogb3RoZXIgcGFyYW0s IHdlIHNob3VsZCB0byBkbyBTRUxFQ1QgcGVybWlzc2lvbiBjaGVjayBmb3IgdGhpcyB2YXJpYWJs ZQorCQkgKiB0b28uCisJCSAqLworCQlpZiAocC0+cGFyYW1iYXNlbm9kZSkKKwkJeworCQkJQXNz ZXJ0KCFPaWRJc1ZhbGlkKHJvb3QtPmdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhcmlkKSk7CisJCQlB c3NlcnQocm9vdC0+cGFyc2UtPnJlc3VsdFZhcmlhYmxlID09IHAtPnBhcmFtdmFyaWQpOworCisJ CQlyb290LT5nbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJpZCA9IHAtPnBhcmFtdmFyaWQ7CisJCX0K KwkJZWxzZQorCQl7CisJCQlpZiAocC0+cGFyYW12YXJpZCA9PSByb290LT5wYXJzZS0+cmVzdWx0 VmFyaWFibGUpCisJCQkJcm9vdC0+Z2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyU2VsZWN0Q2hlY2sg PSB0cnVlOworCQl9CisKKwkJcmV0dXJuIChOb2RlICopIHA7CisJfQorCiAJcmV0dXJuIChOb2Rl ICopIGNvcHlPYmplY3QocCk7CiB9CiAKQEAgLTIxMzYsNyArMjI1MSwxMCBAQCBmaXhfYWx0ZXJu YXRpdmVfc3VicGxhbihQbGFubmVySW5mbyAqcm9vdCwgQWx0ZXJuYXRpdmVTdWJQbGFuICphc3Bs YW4sCiAgKiByZXBsYWNpbmcgQWdncmVmIG5vZGVzIHRoYXQgc2hvdWxkIGJlIHJlcGxhY2VkIGJ5 IGluaXRwbGFuIG91dHB1dCBQYXJhbXMsCiAgKiBjaG9vc2luZyB0aGUgYmVzdCBpbXBsZW1lbnRh dGlvbiBmb3IgQWx0ZXJuYXRpdmVTdWJQbGFucywKICAqIGxvb2tpbmcgdXAgb3BlcmF0b3Igb3Bj b2RlIGluZm8gZm9yIE9wRXhwciBhbmQgcmVsYXRlZCBub2RlcywKLSAqIGFuZCBhZGRpbmcgT0lE cyBmcm9tIHJlZ2NsYXNzIENvbnN0IG5vZGVzIGludG8gcm9vdC0+Z2xvYi0+cmVsYXRpb25PaWRz LgorICogYWRkaW5nIE9JRHMgZnJvbSByZWdjbGFzcyBDb25zdCBub2RlcyBpbnRvIHJvb3QtPmds b2ItPnJlbGF0aW9uT2lkcywKKyAqIGFzc2lnbmluZyBwYXJhbXZhcmlkIHRvIFBBUkFNX1ZBUklB QkxFIHBhcmFtcywgYW5kIGNvbGxlY3RpbmcgdGhlCisgKiBPSURzIG9mIHNlc3Npb24gdmFyaWFi bGVzIGluIHRoZSByb290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzIGxpc3QKKyAqIChwYXJhbXZh cmlkIGlzIHRoZSBwb3NpdGlvbiBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGlzIGxpc3Qp LgogICoKICAqICdub2RlJzogdGhlIGV4cHJlc3Npb24gdG8gYmUgbW9kaWZpZWQKICAqICdydG9m ZnNldCc6IGhvdyBtdWNoIHRvIGluY3JlbWVudCB2YXJub3MgYnkKQEAgLTIxNTgsNyArMjI3Niw4 IEBAIGZpeF9zY2FuX2V4cHIoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUsIGludCBydG9m ZnNldCwgZG91YmxlIG51bV9leGVjKQogCQlyb290LT5tdWx0aWV4cHJfcGFyYW1zICE9IE5JTCB8 fAogCQlyb290LT5nbG9iLT5sYXN0UEhJZCAhPSAwIHx8CiAJCXJvb3QtPm1pbm1heF9hZ2dzICE9 IE5JTCB8fAotCQlyb290LT5oYXNBbHRlcm5hdGl2ZVN1YlBsYW5zKQorCQlyb290LT5oYXNBbHRl cm5hdGl2ZVN1YlBsYW5zIHx8CisJCXJvb3QtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJewogCQly ZXR1cm4gZml4X3NjYW5fZXhwcl9tdXRhdG9yKG5vZGUsICZjb250ZXh0KTsKIAl9CkBAIC0zNTM2 LDYgKzM2NTUsMjUgQEAgcmVjb3JkX3BsYW5fdHlwZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpy b290LCBPaWQgdHlwaWQpCiAJfQogfQogCisvKgorICogUmVjb3JkIGRlcGVuZGVuY3kgb24gYSBz ZXNzaW9uIHZhcmlhYmxlLiAgVGhlIHZhcmlhYmxlIGNhbiBiZSB1c2VkIGFzIGEKKyAqIHNlc3Np b24gdmFyaWFibGUgaW4gYW4gZXhwcmVzc2lvbiBsaXN0LCBvciBhcyB0aGUgdGFyZ2V0IG9mIGEg TEVUIHN0YXRlbWVudC4KKyAqLworc3RhdGljIHZvaWQKK3JlY29yZF9wbGFuX3ZhcmlhYmxlX2Rl cGVuZGVuY3koUGxhbm5lckluZm8gKnJvb3QsIE9pZCB2YXJpZCkKK3sKKwlQbGFuSW52YWxJdGVt ICppbnZhbF9pdGVtID0gbWFrZU5vZGUoUGxhbkludmFsSXRlbSk7CisKKwkvKiBwYXJhbWlkIGlz IHN0aWxsIHNlc3Npb24gdmFyaWFibGUgaWQgKi8KKwlpbnZhbF9pdGVtLT5jYWNoZUlkID0gVkFS SUFCTEVPSUQ7CisJaW52YWxfaXRlbS0+aGFzaFZhbHVlID0gR2V0U3lzQ2FjaGVIYXNoVmFsdWUx KFZBUklBQkxFT0lELAorCQkJCQkJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisK KwkvKiBhcHBlbmQgdGhpcyB2YXJpYWJsZSB0byBnbG9iYWwsIHJlZ2lzdGVyIGRlcGVuZGVuY3kg Ki8KKwlyb290LT5nbG9iLT5pbnZhbEl0ZW1zID0gbGFwcGVuZChyb290LT5nbG9iLT5pbnZhbEl0 ZW1zLAorCQkJCQkJCQkJIGludmFsX2l0ZW0pOworfQorCiAvKgogICogZXh0cmFjdF9xdWVyeV9k ZXBlbmRlbmNpZXMKICAqCQlHaXZlbiBhIHJld3JpdHRlbiwgYnV0IG5vdCB5ZXQgcGxhbm5lZCwg cXVlcnkgb3IgcXVlcmllcwpAQCAtMzYyMSw5ICszNzU5LDkgQEAgZXh0cmFjdF9xdWVyeV9kZXBl bmRlbmNpZXNfd2Fsa2VyKE5vZGUgKm5vZGUsIFBsYW5uZXJJbmZvICpjb250ZXh0KQogCQkJfQog CiAJCQkvKgotCQkJICogSWdub3JlIG90aGVyIHV0aWxpdHkgc3RhdGVtZW50cywgZXhjZXB0IHRo b3NlIChzdWNoIGFzIEVYUExBSU4pCi0JCQkgKiB0aGF0IGNvbnRhaW4gYSBwYXJzZWQtYnV0LW5v dC1wbGFubmVkIHF1ZXJ5LiAgRm9yIHRob3NlLCB3ZQotCQkJICoganVzdCBuZWVkIHRvIHRyYW5z ZmVyIG91ciBhdHRlbnRpb24gdG8gdGhlIGNvbnRhaW5lZCBxdWVyeS4KKwkJCSAqIElnbm9yZSBv dGhlciB1dGlsaXR5IHN0YXRlbWVudHMsIGV4Y2VwdCB0aG9zZSAoc3VjaCBhcyBFWFBMQUlOCisJ CQkgKiBvciBMRVQpIHRoYXQgY29udGFpbiBhIHBhcnNlZC1idXQtbm90LXBsYW5uZWQgcXVlcnku ICBGb3IgdGhvc2UsCisJCQkgKiB3ZSBqdXN0IG5lZWQgdG8gdHJhbnNmZXIgb3VyIGF0dGVudGlv biB0byB0aGUgY29udGFpbmVkIHF1ZXJ5LgogCQkJICovCiAJCQlxdWVyeSA9IFV0aWxpdHlDb250 YWluc1F1ZXJ5KHF1ZXJ5LT51dGlsaXR5U3RtdCk7CiAJCQlpZiAocXVlcnkgPT0gTlVMTCkKQEAg LTM2NDYsNiArMzc4NCwxMCBAQCBleHRyYWN0X3F1ZXJ5X2RlcGVuZGVuY2llc193YWxrZXIoTm9k ZSAqbm9kZSwgUGxhbm5lckluZm8gKmNvbnRleHQpCiAJCQkJCWxhcHBlbmRfb2lkKGNvbnRleHQt Pmdsb2ItPnJlbGF0aW9uT2lkcywgcnRlLT5yZWxpZCk7CiAJCX0KIAorCQkvKiByZWNvcmQgZGVw ZW5kZW5jeSBvbiB0aGUgdGFyZ2V0IHZhcmlhYmxlIG9mIGEgTEVUIGNvbW1hbmQgKi8KKwkJaWYg KE9pZElzVmFsaWQocXVlcnktPnJlc3VsdFZhcmlhYmxlKSkKKwkJCXJlY29yZF9wbGFuX3Zhcmlh YmxlX2RlcGVuZGVuY3koY29udGV4dCwgcXVlcnktPnJlc3VsdFZhcmlhYmxlKTsKKwogCQkvKiBB bmQgcmVjdXJzZSBpbnRvIHRoZSBxdWVyeSdzIHN1YmV4cHJlc3Npb25zICovCiAJCXJldHVybiBx dWVyeV90cmVlX3dhbGtlcihxdWVyeSwgZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXNfd2Fsa2Vy LAogCQkJCQkJCQkgY29udGV4dCwgMCk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9vcHRpbWl6 ZXIvcHJlcC9wcmVwam9pbnRyZWUuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci9wcmVwL3ByZXBq b2ludHJlZS5jCmluZGV4IDgyNzc1YTNkZDUxLi5hNzkxNzlmYzM1YSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMKKysrIGIvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3ByZXAvcHJlcGpvaW50cmVlLmMKQEAgLTE0MzIsNiArMTQzMiw5IEBAIHB1bGxf dXBfc2ltcGxlX3N1YnF1ZXJ5KFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpqdG5vZGUsIFJhbmdl VGJsRW50cnkgKnJ0ZSwKIAkvKiBJZiBzdWJxdWVyeSBoYWQgYW55IFJMUyBjb25kaXRpb25zLCBu b3cgbWFpbiBxdWVyeSBkb2VzIHRvbyAqLwogCXBhcnNlLT5oYXNSb3dTZWN1cml0eSB8PSBzdWJx dWVyeS0+aGFzUm93U2VjdXJpdHk7CiAKKwkvKiBpZiB0aGUgc3VicXVlcnkgaGFkIHNlc3Npb24g dmFyaWFibGVzLCB0aGUgbWFpbiBxdWVyeSBkb2VzIHRvbyAqLworCXBhcnNlLT5oYXNTZXNzaW9u VmFyaWFibGVzIHw9IHN1YnF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzOworCiAJLyoKIAkgKiBz dWJxdWVyeSB3b24ndCBiZSBwdWxsZWQgdXAgaWYgaXQgaGFzQWdncywgaGFzV2luZG93RnVuY3Ms IG9yCiAJICogaGFzVGFyZ2V0U1JGcywgc28gbm8gd29yayBuZWVkZWQgb24gdGhvc2UgZmxhZ3MK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9i YWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwppbmRleCBkZTFmMzQwY2JlOS4uOThlNWQ5 N2M0MTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwor KysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTI0LDYgKzI0LDcg QEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX29wZXJhdG9yLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9w Z19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAj aW5jbHVkZSAiZXhlY3V0b3IvZnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5oIgpAQCAt OTM0LDYgKzkzNSwxMyBAQCBtYXhfcGFyYWxsZWxfaGF6YXJkX3dhbGtlcihOb2RlICpub2RlLCBt YXhfcGFyYWxsZWxfaGF6YXJkX2NvbnRleHQgKmNvbnRleHQpCiAJCWlmIChwYXJhbS0+cGFyYW1r aW5kID09IFBBUkFNX0VYVEVSTikKIAkJCXJldHVybiBmYWxzZTsKIAorCQkvKiB3ZSBkb24ndCBz dXBwb3J0IHBhc3Npbmcgc2Vzc2lvbiB2YXJpYWJsZXMgdG8gd29ya2VycyAqLworCQlpZiAocGFy YW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJeworCQkJaWYgKG1heF9wYXJhbGxl bF9oYXphcmRfdGVzdChQUk9QQVJBTExFTF9SRVNUUklDVEVELCBjb250ZXh0KSkKKwkJCQlyZXR1 cm4gdHJ1ZTsKKwkJfQorCiAJCWlmIChwYXJhbS0+cGFyYW1raW5kICE9IFBBUkFNX0VYRUMgfHwK IAkJCSFsaXN0X21lbWJlcl9pbnQoY29udGV4dC0+c2FmZV9wYXJhbV9pZHMsIHBhcmFtLT5wYXJh bWlkKSkKIAkJewpAQCAtMjM4OCw2ICsyMzk2LDcgQEAgY29udmVydF9zYW9wX3RvX2hhc2hlZF9z YW9wX3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KQogICoJICB2YWx1ZSBvZiB0aGUg UGFyYW0uCiAgKiAyLiBGb2xkIHN0YWJsZSwgYXMgd2VsbCBhcyBpbW11dGFibGUsIGZ1bmN0aW9u cyB0byBjb25zdGFudHMuCiAgKiAzLiBSZWR1Y2UgUGxhY2VIb2xkZXJWYXIgbm9kZXMgdG8gdGhl aXIgY29udGFpbmVkIGV4cHJlc3Npb25zLgorICogNC4gQ3VycmVudCB2YWx1ZSBvZiBzZXNzaW9u IHZhcmlhYmxlIGNhbiBiZSB1c2VkIGZvciBlc3RpbWF0aW9uIHRvby4KICAqLS0tLS0tLS0tLS0t LS0tLS0tLS0KICAqLwogTm9kZSAqCkBAIC0yNTE0LDYgKzI1MjMsMjkgQEAgZXZhbF9jb25zdF9l eHByZXNzaW9uc19tdXRhdG9yKE5vZGUgKm5vZGUsCiAJCQkJCQl9CiAJCQkJCX0KIAkJCQl9CisJ CQkJZWxzZSBpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSAmJgorCQkJCQkJ IGNvbnRleHQtPmVzdGltYXRlKQorCQkJCXsKKwkJCQkJaW50MTYJCXR5cExlbjsKKwkJCQkJYm9v bAkJdHlwQnlWYWw7CisJCQkJCURhdHVtCQlwdmFsOworCQkJCQlib29sCQlpc251bGw7CisKKwkJ CQkJZ2V0X3R5cGxlbmJ5dmFsKHBhcmFtLT5wYXJhbXR5cGUsCisJCQkJCQkJCQkmdHlwTGVuLCAm dHlwQnlWYWwpOworCisJCQkJCXB2YWwgPSBHZXRTZXNzaW9uVmFyaWFibGVXaXRoVHlwZUNoZWNr KHBhcmFtLT5wYXJhbXZhcmlkLAorCQkJCQkJCQkJCQkJCQkgICAmaXNudWxsLAorCQkJCQkJCQkJ CQkJCQkgICBwYXJhbS0+cGFyYW10eXBlKTsKKworCQkJCQlyZXR1cm4gKE5vZGUgKikgbWFrZUNv bnN0KHBhcmFtLT5wYXJhbXR5cGUsCisJCQkJCQkJCQkJCSAgcGFyYW0tPnBhcmFtdHlwbW9kLAor CQkJCQkJCQkJCQkgIHBhcmFtLT5wYXJhbWNvbGxpZCwKKwkJCQkJCQkJCQkJICAoaW50KSB0eXBM ZW4sCisJCQkJCQkJCQkJCSAgcHZhbCwKKwkJCQkJCQkJCQkJICBpc251bGwsCisJCQkJCQkJCQkJ CSAgdHlwQnlWYWwpOworCQkJCX0KIAogCQkJCS8qCiAJCQkJICogTm90IHJlcGxhY2VhYmxlLCBz byBqdXN0IGNvcHkgdGhlIFBhcmFtIChubyBuZWVkIHRvCkBAIC00NzE3LDcgKzQ3NDksOCBAQCBp bmxpbmVfZnVuY3Rpb24oT2lkIGZ1bmNpZCwgT2lkIHJlc3VsdF90eXBlLCBPaWQgcmVzdWx0X2Nv bGxpZCwKIAkJcXVlcnl0cmVlLT5saW1pdE9mZnNldCB8fAogCQlxdWVyeXRyZWUtPmxpbWl0Q291 bnQgfHwKIAkJcXVlcnl0cmVlLT5zZXRPcGVyYXRpb25zIHx8Ci0JCWxpc3RfbGVuZ3RoKHF1ZXJ5 dHJlZS0+dGFyZ2V0TGlzdCkgIT0gMSkKKwkJKGxpc3RfbGVuZ3RoKHF1ZXJ5dHJlZS0+dGFyZ2V0 TGlzdCkgIT0gMSkgfHwKKwkJcXVlcnl0cmVlLT5oYXNTZXNzaW9uVmFyaWFibGVzKQogCQlnb3Rv IGZhaWw7CiAKIAkvKiBJZiB0aGUgZnVuY3Rpb24gcmVzdWx0IGlzIGNvbXBvc2l0ZSwgcmVzb2x2 ZSBpdCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9i YWNrZW5kL3BhcnNlci9hbmFseXplLmMKaW5kZXggNTYxY2Y0ZDZhNzcuLjNlOTgxNGFkOWY1IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5k L3BhcnNlci9hbmFseXplLmMKQEAgLTI1LDkgKzI1LDEyIEBACiAjaW5jbHVkZSAicG9zdGdyZXMu aCIKIAogI2luY2x1ZGUgImFjY2Vzcy9zeXNhdHRyLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9uYW1l c3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvZGVmcmVtLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5o IgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgog I2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5oIgpAQCAtNTEsNiArNTQsNyBAQAogI2luY2x1ZGUg InV0aWxzL2JhY2tlbmRfc3RhdHVzLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNp bmNsdWRlICJ1dGlscy9ndWMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNs dWRlICJ1dGlscy9yZWwuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogCkBAIC04Myw2 ICs4Nyw4IEBAIHN0YXRpYyBRdWVyeSAqdHJhbnNmb3JtQ3JlYXRlVGFibGVBc1N0bXQoUGFyc2VT dGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCSBDcmVhdGVUYWJsZUFzU3RtdCAqc3RtdCk7CiBzdGF0 aWMgUXVlcnkgKnRyYW5zZm9ybUNhbGxTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJ Q2FsbFN0bXQgKnN0bXQpOworc3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1MZXRTdG10KFBhcnNlU3Rh dGUgKnBzdGF0ZSwKKwkJCQkJCQkgICBMZXRTdG10ICpzdG10KTsKIHN0YXRpYyB2b2lkIHRyYW5z Zm9ybUxvY2tpbmdDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBRdWVyeSAqcXJ5LAogCQkJCQkJ CQkgICBMb2NraW5nQ2xhdXNlICpsYywgYm9vbCBwdXNoZWREb3duKTsKICNpZmRlZiBERUJVR19O T0RFX1RFU1RTX0VOQUJMRUQKQEAgLTQxNCw2ICs0MjAsNyBAQCB0cmFuc2Zvcm1TdG10KFBhcnNl U3RhdGUgKnBzdGF0ZSwgTm9kZSAqcGFyc2VUcmVlKQogCQkJY2FzZSBUX1VwZGF0ZVN0bXQ6CiAJ CQljYXNlIFRfRGVsZXRlU3RtdDoKIAkJCWNhc2UgVF9NZXJnZVN0bXQ6CisJCQljYXNlIFRfTGV0 U3RtdDoKIAkJCQkodm9pZCkgdGVzdF9yYXdfZXhwcmVzc2lvbl9jb3ZlcmFnZShwYXJzZVRyZWUs IE5VTEwpOwogCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoKQEAgLTQ5Myw2ICs1MDAsMTEgQEAgdHJh bnNmb3JtU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKnBhcnNlVHJlZSkKIAkJCQkJCQkJ CSAgIChDYWxsU3RtdCAqKSBwYXJzZVRyZWUpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX0xldFN0 bXQ6CisJCQlyZXN1bHQgPSB0cmFuc2Zvcm1MZXRTdG10KHBzdGF0ZSwKKwkJCQkJCQkJCSAgKExl dFN0bXQgKikgcGFyc2VUcmVlKTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAKIAkJCS8qCkBA IC01NDUsNiArNTU3LDcgQEAgc3RtdF9yZXF1aXJlc19wYXJzZV9hbmFseXNpcyhSYXdTdG10ICpw YXJzZVRyZWUpCiAJCWNhc2UgVF9TZWxlY3RTdG10OgogCQljYXNlIFRfUmV0dXJuU3RtdDoKIAkJ Y2FzZSBUX1BMQXNzaWduU3RtdDoKKwkJY2FzZSBUX0xldFN0bXQ6CiAJCQlyZXN1bHQgPSB0cnVl OwogCQkJYnJlYWs7CiAKQEAgLTY1Myw2ICs2NjYsNyBAQCB0cmFuc2Zvcm1EZWxldGVTdG10KFBh cnNlU3RhdGUgKnBzdGF0ZSwgRGVsZXRlU3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNz ID0gcHN0YXRlLT5wX2hhc1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0 ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOwor CXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVz OwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0xMDc5LDYg KzEwOTMsNyBAQCB0cmFuc2Zvcm1JbnNlcnRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgSW5zZXJ0 U3RtdCAqc3RtdCkKIAogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRT UkZzOwogCXFyeS0+aGFzU3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5LT5o YXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlh c3NpZ25fcXVlcnlfY29sbGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTE1NDQsNiArMTU1OSw3 IEBAIHRyYW5zZm9ybVNlbGVjdFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpz dG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJ cXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNB Z2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0 YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlmb3JlYWNoKGwsIHN0bXQtPmxvY2tpbmdD bGF1c2UpCiAJewpAQCAtMTc3MCwxMiArMTc4NiwyNDEgQEAgdHJhbnNmb3JtVmFsdWVzQ2xhdXNl KFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCkKIAlxcnktPmpvaW50cmVlID0g bWFrZUZyb21FeHByKHBzdGF0ZS0+cF9qb2lubGlzdCwgTlVMTCk7CiAKIAlxcnktPmhhc1N1Ykxp bmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9 IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlv bnMocHN0YXRlLCBxcnkpOwogCiAJcmV0dXJuIHFyeTsKIH0KIAorLyoKKyAqIHRyYW5zZm9ybUxl dFN0bXQgLQorICoJICB0cmFuc2Zvcm0gYW4gTGV0IFN0YXRlbWVudAorICovCitzdGF0aWMgUXVl cnkgKgordHJhbnNmb3JtTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQp Cit7CisJUXVlcnkJICAgKnF1ZXJ5OworCVF1ZXJ5CSAgICpyZXN1bHQ7CisJTGlzdAkgICAqZXhw ckxpc3QgPSBOSUw7CisJTGlzdAkgICAqZXhwckxpc3RDb2VyID0gTklMOworCUxpc3RDZWxsICAg KmxjOworCUxpc3RDZWxsICAgKmluZGlyZWN0aW9uX2hlYWQgPSBOVUxMOworCVF1ZXJ5CSAgICpz ZWxlY3RRdWVyeTsKKwlPaWQJCQl2YXJpZDsKKwljaGFyCSAgICphdHRybmFtZSA9IE5VTEw7CisJ Ym9vbAkJbm90X3VuaXF1ZTsKKwlib29sCQlpc19yb3d0eXBlOworCU9pZAkJCXR5cGlkOworCWlu dDMyCQl0eXBtb2Q7CisJT2lkCQkJY29sbGlkOworCUxpc3QJICAgKm5hbWVzID0gTlVMTDsKKwlp bnQJCQlpbmRpcmVjdGlvbl9zdGFydDsKKwlpbnQJCQlpID0gMDsKKworCS8qIHRoZXJlIGNhbid0 IGJlIGFueSBvdXRlciBXSVRIIHRvIHdvcnJ5IGFib3V0ICovCisJQXNzZXJ0KHBzdGF0ZS0+cF9j dGVuYW1lc3BhY2UgPT0gTklMKTsKKworCW5hbWVzID0gTmFtZXNGcm9tTGlzdChzdG10LT50YXJn ZXQpOworCisJLyogbG9ja3MgdGhlIHZhcmlhYmxlIHdpdGggYW4gQWNjZXNzU2hhcmVMb2NrICov CisJdmFyaWQgPSBJZGVudGlmeVZhcmlhYmxlKG5hbWVzLCAmYXR0cm5hbWUsICZub3RfdW5pcXVl LCBmYWxzZSk7CisJaWYgKG5vdF91bmlxdWUpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNv ZGUoRVJSQ09ERV9BTUJJR1VPVVNfUEFSQU1FVEVSKSwKKwkJCQkgZXJybXNnKCJ0YXJnZXQgXCIl c1wiIG9mIExFVCBjb21tYW5kIGlzIGFtYmlndW91cyIsCisJCQkJCQlOYW1lTGlzdFRvU3RyaW5n KG5hbWVzKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHN0bXQtPmxvY2F0aW9u KSkpOworCisJaWYgKCFPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coInNlc3Npb24g dmFyaWFibGUgXCIlc1wiIGRvZXNuJ3QgZXhpc3QiLAorCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhu YW1lcykpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10LT5sb2NhdGlvbikp KTsKKworCS8qCisJICogQ2FsY3VsYXRlIHN0YXJ0IG9mIHBvc3NpYmxlIHBvc2l0aW9uIG9mIGFu IGluZGlyZWN0aW9uIGluIGxpc3QsIGFuZAorCSAqIHdoZW4gaXQgaXMgaW5zaWRlIHRoZSBsaXN0 LCBzdG9yZSBwb2ludGVyIG9uIGZpcnN0IG5vZGUgb2YgaW5kaXJlY3Rpb24uCisJICovCisJaW5k aXJlY3Rpb25fc3RhcnQgPSBsaXN0X2xlbmd0aChuYW1lcykgLSAoYXR0cm5hbWUgPyAxIDogMCk7 CisJaWYgKGxpc3RfbGVuZ3RoKHN0bXQtPnRhcmdldCkgPiBpbmRpcmVjdGlvbl9zdGFydCkKKwkJ aW5kaXJlY3Rpb25faGVhZCA9IGxpc3RfbnRoX2NlbGwoc3RtdC0+dGFyZ2V0LCBpbmRpcmVjdGlv bl9zdGFydCk7CisKKwlnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQodmFy aWQsICZ0eXBpZCwgJnR5cG1vZCwgJmNvbGxpZCk7CisKKwlpc19yb3d0eXBlID0gdHlwZV9pc19y b3d0eXBlKHR5cGlkKTsKKworCWlmIChhdHRybmFtZSAmJiAhaXNfcm93dHlwZSkKKwkJZXJlcG9y dChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkg ZXJybXNnKCJjYW5ub3QgYXNzaWduIHRvIGZpZWxkIFwiJXNcIiBvZiBzZXNzaW9uIHZhcmlhYmxl IFwiJXMuJXNcIiBiZWNhdXNlIGl0cyB0eXBlICVzIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlIiwK KwkJCQkJCWF0dHJuYW1lLAorCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3Zh cmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFt ZSh2YXJpZCksCisJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkpLAorCQkJCSBwYXJzZXJfZXJy cG9zaXRpb24ocHN0YXRlLCBzdG10LT5sb2NhdGlvbikpKTsKKworCXBzdGF0ZS0+cF9leHByX2tp bmQgPSBFWFBSX0tJTkRfTEVUX1RBUkdFVDsKKworCS8qIHdlIG5lZWQgdG8gcG9zdHBvbmUgY29u dmVyc2lvbiBvZiAidW5rbm93biIgdG8gdGV4dCAqLworCXBzdGF0ZS0+cF9yZXNvbHZlX3Vua25v d25zID0gZmFsc2U7CisKKwlzZWxlY3RRdWVyeSA9IHRyYW5zZm9ybVN0bXQocHN0YXRlLCBzdG10 LT5xdWVyeSk7CisKKwkvKiB0aGUgZ3JhbW1hciBzaG91bGQgaGF2ZSBwcm9kdWNlZCBhIFNFTEVD VCAqLworCUFzc2VydChJc0Eoc2VsZWN0UXVlcnksIFF1ZXJ5KSAmJiBzZWxlY3RRdWVyeS0+Y29t bWFuZFR5cGUgPT0gQ01EX1NFTEVDVCk7CisKKwkvKgorCSAqIEdlbmVyYXRlIGFuIGV4cHJlc3Np b24gbGlzdCBmb3IgdGhlIExFVCB0aGF0IHNlbGVjdHMgYWxsIHRoZSBub24tcmVzanVuaworCSAq IGNvbHVtbnMgZnJvbSB0aGUgc3VicXVlcnkuCisJICovCisJZXhwckxpc3QgPSBOSUw7CisJZm9y ZWFjaF9ub2RlKFRhcmdldEVudHJ5LCB0bGUsIHNlbGVjdFF1ZXJ5LT50YXJnZXRMaXN0KQorCXsK KwkJaWYgKHRsZS0+cmVzanVuaykKKwkJCWNvbnRpbnVlOworCisJCWV4cHJMaXN0ID0gbGFwcGVu ZChleHByTGlzdCwgdGxlLT5leHByKTsKKwl9CisKKwkvKiBkb24ndCBhbGxvdyBtdWx0aWNvbHVt biByZXN1bHQgKi8KKwlpZiAobGlzdF9sZW5ndGgoZXhwckxpc3QpICE9IDEpCisJCWVyZXBvcnQo RVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCSBlcnJtc2df cGx1cmFsKCJhc3NpZ25tZW50IGV4cHJlc3Npb24gcmV0dXJuZWQgJWQgY29sdW1uIiwKKwkJCQkJ CQkgICAiYXNzaWdubWVudCBleHByZXNzaW9uIHJldHVybmVkICVkIGNvbHVtbnMiLAorCQkJCQkJ CSAgIGxpc3RfbGVuZ3RoKGV4cHJMaXN0KSwKKwkJCQkJCQkgICBsaXN0X2xlbmd0aChleHByTGlz dCkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLAorCQkJCQkJCQkJZXhwckxvY2F0 aW9uKChOb2RlICopIGV4cHJMaXN0KSkpKTsKKworCWV4cHJMaXN0Q29lciA9IE5JTDsKKworCWZv cmVhY2gobGMsIGV4cHJMaXN0KQorCXsKKwkJRXhwcgkgICAqZXhwciA9IChFeHByICopIGxmaXJz dChsYyk7CisJCUV4cHIJICAgKmNvZXJjZWRfZXhwcjsKKwkJT2lkCQkJZXhwcnR5cGlkOworCisJ CS8qIG5vdyB3ZSBjYW4gcmVhZCB0aGUgdHlwZSBvZiB0aGUgZXhwcmVzc2lvbiAqLworCQlleHBy dHlwaWQgPSBleHByVHlwZSgoTm9kZSAqKSBleHByKTsKKworCQlpZiAoaW5kaXJlY3Rpb25faGVh ZCkKKwkJeworCQkJYm9vbAkJdGFyZ2V0SXNBcnJheTsKKwkJCWNoYXIJICAgKnRhcmdldE5hbWU7 CisJCQlQYXJhbQkgICAqcGFyYW07CisKKwkJCXRhcmdldE5hbWUgPSBnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lKHZhcmlkKTsKKwkJCXRhcmdldElzQXJyYXkgPSBPaWRJc1ZhbGlkKGdldF9lbGVt ZW50X3R5cGUodHlwaWQpKTsKKworCQkJcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMgPSB0 cnVlOworCisJCQlwYXJhbSA9IG1ha2VOb2RlKFBhcmFtKTsKKwkJCXBhcmFtLT5wYXJhbWtpbmQg PSBQQVJBTV9WQVJJQUJMRTsKKwkJCXBhcmFtLT5wYXJhbXZhcmlkID0gdmFyaWQ7CisJCQlwYXJh bS0+cGFyYW10eXBlID0gdHlwaWQ7CisJCQlwYXJhbS0+cGFyYW10eXBtb2QgPSB0eXBtb2Q7CisK KwkJCS8qCisJCQkgKiBUaGUgcGFyYW1ldGVyIHVzZWQgYXMgYmFzZW5vZGUgaGFzIHRvIGhhdmUg c3BlY2lhbAorCQkJICogbWFyaywgYmVjYXVzZSByZXF1aXJlcyBzcGVjaWFsIGFjY2VzcyB3aGVu IHdlIGRvCisJCQkgKiBTRUxFQ1QgYWNjZXNzIGNoZWNrLgorCQkJICovCisJCQlwYXJhbS0+cGFy YW1iYXNlbm9kZSA9IHRydWU7CisKKwkJCWNvZXJjZWRfZXhwciA9IChFeHByICopCisJCQkJdHJh bnNmb3JtQXNzaWdubWVudEluZGlyZWN0aW9uKHBzdGF0ZSwKKwkJCQkJCQkJCQkJICAgKE5vZGUg KikgcGFyYW0sCisJCQkJCQkJCQkJCSAgIHRhcmdldE5hbWUsCisJCQkJCQkJCQkJCSAgIHRhcmdl dElzQXJyYXksCisJCQkJCQkJCQkJCSAgIHR5cGlkLAorCQkJCQkJCQkJCQkgICB0eXBtb2QsCisJ CQkJCQkJCQkJCSAgIEludmFsaWRPaWQsCisJCQkJCQkJCQkJCSAgIHN0bXQtPnRhcmdldCwKKwkJ CQkJCQkJCQkJICAgaW5kaXJlY3Rpb25faGVhZCwKKwkJCQkJCQkJCQkJICAgKE5vZGUgKikgZXhw ciwKKwkJCQkJCQkJCQkJICAgQ09FUkNJT05fQVNTSUdOTUVOVCwKKwkJCQkJCQkJCQkJICAgc3Rt dC0+bG9jYXRpb24pOworCQl9CisJCWVsc2UKKwkJCWNvZXJjZWRfZXhwciA9IChFeHByICopCisJ CQkJY29lcmNlX3RvX3RhcmdldF90eXBlKHBzdGF0ZSwKKwkJCQkJCQkJCSAgKE5vZGUgKikgZXhw ciwKKwkJCQkJCQkJCSAgZXhwcnR5cGlkLAorCQkJCQkJCQkJICB0eXBpZCwgdHlwbW9kLAorCQkJ CQkJCQkJICBDT0VSQ0lPTl9BU1NJR05NRU5ULAorCQkJCQkJCQkJICBDT0VSQ0VfSU1QTElDSVRf Q0FTVCwKKwkJCQkJCQkJCSAgc3RtdC0+bG9jYXRpb24pOworCisJCWlmIChjb2VyY2VkX2V4cHIg PT0gTlVMTCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZ UEVfTUlTTUFUQ0gpLAorCQkJCQkgZXJybXNnKCJ2YXJpYWJsZSBcIiVzLiVzXCIgaXMgb2YgdHlw ZSAlcywgYnV0IGV4cHJlc3Npb24gaXMgb2YgdHlwZSAlcyIsCisJCQkJCQkJZ2V0X25hbWVzcGFj ZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCWdl dF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpLAorCQkJCQkJCWZvcm1hdF90eXBlX2JlKHR5 cGlkKSwKKwkJCQkJCQlmb3JtYXRfdHlwZV9iZShleHBydHlwaWQpKSwKKwkJCQkJIGVycmhpbnQo IllvdSB3aWxsIG5lZWQgdG8gcmV3cml0ZSBvciBjYXN0IHRoZSBleHByZXNzaW9uLiIpLAorCQkJ CQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKChOb2RlICopIGV4cHIp KSkpOworCisJCWV4cHJMaXN0Q29lciA9IGxhcHBlbmQoZXhwckxpc3RDb2VyLCBjb2VyY2VkX2V4 cHIpOworCX0KKworCS8qIGdlbmVyYXRlIHF1ZXJ5J3MgdGFyZ2V0IGxpc3QgdXNpbmcgdGhlIGNv bXB1dGVkIGxpc3Qgb2YgZXhwcmVzc2lvbnMgKi8KKwlxdWVyeSA9IG1ha2VOb2RlKFF1ZXJ5KTsK KwlxdWVyeS0+Y29tbWFuZFR5cGUgPSBDTURfU0VMRUNUOworCisJZm9yZWFjaChsYywgZXhwckxp c3RDb2VyKQorCXsKKwkJRXhwcgkgICAqZXhwciA9IChFeHByICopIGxmaXJzdChsYyk7CisJCVRh cmdldEVudHJ5ICp0bGU7CisKKwkJdGxlID0gbWFrZVRhcmdldEVudHJ5KGV4cHIsCisJCQkJCQkJ ICBpICsgMSwKKwkJCQkJCQkgIEZpZ3VyZUNvbG5hbWUoKE5vZGUgKikgZXhwciksCisJCQkJCQkJ ICBmYWxzZSk7CisJCXF1ZXJ5LT50YXJnZXRMaXN0ID0gbGFwcGVuZChxdWVyeS0+dGFyZ2V0TGlz dCwgdGxlKTsKKwl9CisKKwkvKiBkb25lIGJ1aWxkaW5nIHRoZSByYW5nZSB0YWJsZSBhbmQgam9p bnRyZWUgKi8KKwlxdWVyeS0+cnRhYmxlID0gcHN0YXRlLT5wX3J0YWJsZTsKKwlxdWVyeS0+am9p bnRyZWUgPSBtYWtlRnJvbUV4cHIocHN0YXRlLT5wX2pvaW5saXN0LCBOVUxMKTsKKworCXF1ZXJ5 LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CisJcXVlcnktPmhhc1N1 YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFi bGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CisKKwkvKiB0aGlzIGlzIHRvcC1s ZXZlbCBxdWVyeSAqLworCXF1ZXJ5LT5jYW5TZXRUYWcgPSB0cnVlOworCisJLyoKKwkgKiBTYXZl IHRhcmdldCBzZXNzaW9uIHZhcmlhYmxlIElELiBJdCBpcyB1c2VkIGxhdGVyIGZvcgorCSAqIGFj cXVpcmluZyBhbiBBY2Nlc3NTaGFyZUxvY2sgb24gdGFyZ2V0IHZhcmlhYmxlLCBzZXR0aW5nCisJ ICogcGxhbiBkZXBlbmRlbmN5IGFuZCBmaW5hbGx5IGZvciBjcmVhdGluZyBWYXJpYWJsZURlc3RS ZWNlaXZlci4KKwkgKi8KKwlxdWVyeS0+cmVzdWx0VmFyaWFibGUgPSB2YXJpZDsKKworCWFzc2ln bl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXVlcnkpOworCisJLyoKKwkgKiBUaGUgcXVlcnkg aXMgZXhlY3V0ZWQgYXMgdXRpbGl0eSBjb21tYW5kIGJ5IG5lc3RlZCBleGVjdXRvciBjYWxsLgor CSAqIEFzc2lnbmVkIHF1ZXJ5SWQgaXMgcmVxdWlyZWQgaW4gdGhpcyBjYXNlLgorCSAqLworCWlm IChJc1F1ZXJ5SWRFbmFibGVkKCkpCisJCUp1bWJsZVF1ZXJ5KHF1ZXJ5KTsKKworCXN0bXQtPnF1 ZXJ5ID0gKE5vZGUgKikgcXVlcnk7CisKKwkvKiByZXByZXNlbnQgdGhlIGNvbW1hbmQgYXMgYSB1 dGlsaXR5IFF1ZXJ5ICovCisJcmVzdWx0ID0gbWFrZU5vZGUoUXVlcnkpOworCXJlc3VsdC0+Y29t bWFuZFR5cGUgPSBDTURfVVRJTElUWTsKKwlyZXN1bHQtPnV0aWxpdHlTdG10ID0gKE5vZGUgKikg c3RtdDsKKworCXJldHVybiByZXN1bHQ7Cit9CisKIC8qCiAgKiB0cmFuc2Zvcm1TZXRPcGVyYXRp b25TdG10IC0KICAqCSAgdHJhbnNmb3JtcyBhIHNldC1vcGVyYXRpb25zIHRyZWUKQEAgLTIwMjEs NiArMjI2Niw3IEBAIHRyYW5zZm9ybVNldE9wZXJhdGlvblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRl LCBTZWxlY3RTdG10ICpzdG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFz V2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNS RnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNzaW9u VmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlmb3JlYWNoKGws IGxvY2tpbmdDbGF1c2UpCiAJewpAQCAtMjQ5Niw2ICsyNzQyLDcgQEAgdHJhbnNmb3JtUmV0dXJu U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFJldHVyblN0bXQgKnN0bXQpCiAJcXJ5LT5oYXNXaW5k b3dGdW5jcyA9IHBzdGF0ZS0+cF9oYXNXaW5kb3dGdW5jczsKIAlxcnktPmhhc1RhcmdldFNSRnMg PSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlxcnktPmhhc0FnZ3MgPSBwc3RhdGUtPnBfaGFz QWdnczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZh cmlhYmxlczsKIAogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAt MjU2Myw2ICsyODEwLDcgQEAgdHJhbnNmb3JtVXBkYXRlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUs IFVwZGF0ZVN0bXQgKnN0bXQpCiAKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFz VGFyZ2V0U1JGczsKIAlxcnktPmhhc1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOwor CXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVz OwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0yNzUwLDkg KzI5OTgsMTUgQEAgdHJhbnNmb3JtUExBc3NpZ25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUExB c3NpZ25TdG10ICpzdG10KQogCS8qCiAJICogVHJhbnNmb3JtIHRoZSB0YXJnZXQgcmVmZXJlbmNl LiAgVHlwaWNhbGx5IHdlIHdpbGwgZ2V0IGJhY2sgYSBQYXJhbQogCSAqIG5vZGUsIGJ1dCB0aGVy ZSdzIG5vIHJlYXNvbiB0byBiZSB0b28gcGlja3kgYWJvdXQgaXRzIHR5cGUuCisJICoKKwkgKiBT ZXNzaW9uIHZhcmlhYmxlcyBzaG91bGQgbm90IGJlIHVzZWQgYXMgdGFyZ2V0IG9mIGEgUEwvcGdT UUwgYXNzaWduCisJICogc3RhdGVtZW50LiAgU28gd2Ugc2hvdWxkIHVzZSBhIGRlZGljYXRlZCBl eHByZXNzaW9uIGtpbmQgYW5kIGRpc2FsbG93CisJICogc2Vzc2lvbiB2YXJpYWJsZXMgdGhlcmUu ICBUaGUgZGVkaWNhdGVkIGNvbnRleHQgYWxsb3dzIHRvIGVsaW1pbmF0ZQorCSAqIHVuZGVzaXJh YmxlIHdhcm5pbmdzIGFib3V0IHRoZSBwb3NzaWJpbGl0eSBvZiBhIHRhcmdldCBQTC9wZ1NRTCB2 YXJpYWJsZQorCSAqIHNoYWRvd2luZyBhIHNlc3Npb24gdmFyaWFibGUuCiAJICovCiAJdGFyZ2V0 ID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIChOb2RlICopIGNyZWYsCi0JCQkJCQkgICBFWFBSX0tJ TkRfVVBEQVRFX1RBUkdFVCk7CisJCQkJCQkgICBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVCk7CiAJ dGFyZ2V0dHlwZSA9IGV4cHJUeXBlKHRhcmdldCk7CiAJdGFyZ2V0dHlwbW9kID0gZXhwclR5cG1v ZCh0YXJnZXQpOwogCXRhcmdldGNvbGxhdGlvbiA9IGV4cHJDb2xsYXRpb24odGFyZ2V0KTsKQEAg LTI3OTQsNiArMzA0OCwxMCBAQCB0cmFuc2Zvcm1QTEFzc2lnblN0bXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBQTEFzc2lnblN0bXQgKnN0bXQpCiAJICovCiAJdHlwZV9pZCA9IGV4cHJUeXBlKChOb2Rl ICopIHRsZS0+ZXhwcik7CiAKKwkvKgorCSAqIEZvciBpbmRpcmVjdGlvbiBwcm9jZXNzaW5nIGFu ZCBhZGRpdGlvbmFsIGNhc3RzIHdlIGNhbiB1c2UgZXhwcl9raW5kCisJICogRVhQUl9LSU5EX1VQ REFURV9UQVJHRVQuCisJICovCiAJcHN0YXRlLT5wX2V4cHJfa2luZCA9IEVYUFJfS0lORF9VUERB VEVfVEFSR0VUOwogCiAJaWYgKGluZGlyZWN0aW9uKQpAQCAtMjkzNiw2ICszMTk0LDggQEAgdHJh bnNmb3JtUExBc3NpZ25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUExBc3NpZ25TdG10ICpzdG10 KQogCQkJCQkJCSAgIChMb2NraW5nQ2xhdXNlICopIGxmaXJzdChsKSwgZmFsc2UpOwogCX0KIAor CXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVz OworCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCiAJLyogdGhpcyBt dXN0IGJlIGRvbmUgYWZ0ZXIgY29sbGF0aW9ucywgZm9yIHJlbGlhYmxlIGNvbXBhcmlzb24gb2Yg ZXhwcnMgKi8KQEAgLTMyMDksNiArMzQ2OSwxNiBAQCB0cmFuc2Zvcm1DYWxsU3RtdChQYXJzZVN0 YXRlICpwc3RhdGUsIENhbGxTdG10ICpzdG10KQogCQkJCQkJCSB0cnVlLAogCQkJCQkJCSBzdG10 LT5mdW5jY2FsbC0+bG9jYXRpb24pOwogCisJLyoKKwkgKiBUaGUgYXJndW1lbnRzIG9mIENBTEwg c3RhdGVtZW50IGFyZSBldmFsdWF0ZWQgYnkgYSBkaXJlY3QgZXhwcmVzc2lvbgorCSAqIGV4ZWN1 dG9yIGNhbGwuICBUaGlzIHBhdGggaXMgdW5zdXBwb3J0ZWQgeWV0LCBzbyBibG9jayBpdC4gIEl0 IHdpbGwgYmUKKwkgKiBlbmFibGVkIGxhdGVyLgorCSAqLworCWlmIChwc3RhdGUtPnBfaGFzU2Vz c2lvblZhcmlhYmxlcykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZF QVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBjYW5u b3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudCIpKSk7CisKIAlhc3NpZ25fZXhwcl9jb2xsYXRpb25z KHBzdGF0ZSwgbm9kZSk7CiAKIAlmZXhwciA9IGNhc3ROb2RlKEZ1bmNFeHByLCBub2RlKTsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CmluZGV4IDc5NjE0N2E1NDFhLi5hNDE1MGY4OTliOSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0y OTMsNyArMjkzLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIg KnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJRHJvcFRyYW5zZm9ybVN0 bXQKIAkJRHJvcFVzZXJNYXBwaW5nU3RtdCBFeHBsYWluU3RtdCBGZXRjaFN0bXQKIAkJR3JhbnRT dG10IEdyYW50Um9sZVN0bXQgSW1wb3J0Rm9yZWlnblNjaGVtYVN0bXQgSW5kZXhTdG10IEluc2Vy dFN0bXQKLQkJTGlzdGVuU3RtdCBMb2FkU3RtdCBMb2NrU3RtdCBNZXJnZVN0bXQgTm90aWZ5U3Rt dCBFeHBsYWluYWJsZVN0bXQgUHJlcGFyYWJsZVN0bXQKKwkJTGV0U3RtdCBMaXN0ZW5TdG10IExv YWRTdG10IExvY2tTdG10IE1lcmdlU3RtdCBOb3RpZnlTdG10IEV4cGxhaW5hYmxlU3RtdCBQcmVw YXJhYmxlU3RtdAogCQlDcmVhdGVGdW5jdGlvblN0bXQgQWx0ZXJGdW5jdGlvblN0bXQgUmVpbmRl eFN0bXQgUmVtb3ZlQWdnclN0bXQKIAkJUmVtb3ZlRnVuY1N0bXQgUmVtb3ZlT3BlclN0bXQgUmVu YW1lU3RtdCBSZXR1cm5TdG10IFJldm9rZVN0bXQgUmV2b2tlUm9sZVN0bXQKIAkJUnVsZUFjdGlv blN0bXQgUnVsZUFjdGlvblN0bXRPckVtcHR5IFJ1bGVTdG10CkBAIC03MzQsNyArNzM0LDcgQEAg c3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3Qg KmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAlLRUVQIEtFWSBLRVlTCiAKIAlMQUJFTCBMQU5HVUFH RSBMQVJHRV9QIExBU1RfUCBMQVRFUkFMX1AKLQlMRUFESU5HIExFQUtQUk9PRiBMRUFTVCBMRUZU IExFVkVMIExJS0UgTElNSVQgTElTVEVOIExPQUQgTE9DQUwKKwlMRUFESU5HIExFQUtQUk9PRiBM RUFTVCBMRUZUIExFVCBMRVZFTCBMSUtFIExJTUlUIExJU1RFTiBMT0FEIExPQ0FMCiAJTE9DQUxU SU1FIExPQ0FMVElNRVNUQU1QIExPQ0FUSU9OIExPQ0tfUCBMT0NLRUQgTE9HR0VECiAKIAlNQVBQ SU5HIE1BVENIIE1BVENIRUQgTUFURVJJQUxJWkVEIE1BWFZBTFVFIE1FUkdFIE1FUkdFX0FDVElP TiBNRVRIT0QKQEAgLTEwODEsNiArMTA4MSw3IEBAIHN0bXQ6CiAJCQl8IEltcG9ydEZvcmVpZ25T Y2hlbWFTdG10CiAJCQl8IEluZGV4U3RtdAogCQkJfCBJbnNlcnRTdG10CisJCQl8IExldFN0bXQK IAkJCXwgTGlzdGVuU3RtdAogCQkJfCBSZWZyZXNoTWF0Vmlld1N0bXQKIAkJCXwgTG9hZFN0bXQK QEAgLTEyNzcwLDYgKzEyNzcxLDM4IEBAIG9wdF9ob2xkOiAvKiBFTVBUWSAqLwkJCQkJCXsgJCQg PSAwOyB9CiAJCQl8IFdJVEhPVVQgSE9MRAkJCQkJeyAkJCA9IDA7IH0KIAkJOwogCisvKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioKKyAqCisgKgkJUVVFUlk6CisgKgkJCQlMRVQgU1RBVEVNRU5UCisgKgor ICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqLworTGV0U3RtdDoJTEVUIENvbElkIG9wdF9pbmRpcmVjdGlv biAnPScgYV9leHByCisJCQkJeworCQkJCQlMZXRTdG10CSAgICpuID0gbWFrZU5vZGUoTGV0U3Rt dCk7CisJCQkJCVNlbGVjdFN0bXQgKnNlbGVjdDsKKwkJCQkJUmVzVGFyZ2V0ICAqcmVzOworCisJ CQkJCW4tPnRhcmdldCA9IGxjb25zKG1ha2VTdHJpbmcoJDIpLAorCQkJCQkJCQkJICBjaGVja19p bmRpcmVjdGlvbigkMywgeXlzY2FubmVyKSk7CisKKwkJCQkJc2VsZWN0ID0gbWFrZU5vZGUoU2Vs ZWN0U3RtdCk7CisJCQkJCXJlcyA9IG1ha2VOb2RlKFJlc1RhcmdldCk7CisKKwkJCQkJLyogY3Jl YXRlIHRhcmdldCBsaXN0IGZvciBpbXBsaWNpdCBxdWVyeSAqLworCQkJCQlyZXMtPm5hbWUgPSBO VUxMOworCQkJCQlyZXMtPmluZGlyZWN0aW9uID0gTklMOworCQkJCQlyZXMtPnZhbCA9IChOb2Rl ICopICQ1OworCQkJCQlyZXMtPmxvY2F0aW9uID0gQDU7CisKKwkJCQkJc2VsZWN0LT50YXJnZXRM aXN0ID0gbGlzdF9tYWtlMShyZXMpOworCQkJCQluLT5xdWVyeSA9IChOb2RlICopIHNlbGVjdDsK KworCQkJCQluLT5sb2NhdGlvbiA9IEAyOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQor CQk7CisKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKICAqCQlRVUVSWToKQEAgLTE3ODQwLDYg KzE3ODczLDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJfCBMQVJHRV9QCiAJCQl8IExBU1Rf UAogCQkJfCBMRUFLUFJPT0YKKwkJCXwgTEVUCiAJCQl8IExFVkVMCiAJCQl8IExJU1RFTgogCQkJ fCBMT0FECkBAIC0xODQ1MSw2ICsxODQ4NSw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwg TEVBS1BST09GCiAJCQl8IExFQVNUCiAJCQl8IExFRlQKKwkJCXwgTEVUCiAJCQl8IExFVkVMCiAJ CQl8IExJS0UKIAkJCXwgTElTVEVOCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfYWdnLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKaW5kZXggOWU1NjdmM2Nj NDUuLjQ3MzdiMDRkMTcxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdn LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCkBAIC01ODAsNiArNTgwLDEx IEBAIGNoZWNrX2FnZ2xldmVsc19hbmRfY29uc3RyYWludHMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBO b2RlICpleHByKQogCQkJZXJya2luZCA9IHRydWU7CiAJCQlicmVhazsKIAorCQljYXNlIEVYUFJf S0lORF9BU1NJR05fVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgorCQkJZXJy a2luZCA9IHRydWU7CisJCQlicmVhazsKKwogCQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlv bmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQogCQkJICogY29tcGlsZXIg d2lsbCB3YXJuIGlmIHdlIGFkZCBhIG5ldyBQYXJzZUV4cHJLaW5kIHdpdGhvdXQKQEAgLTk3MCw2 ICs5NzUsMTAgQEAgdHJhbnNmb3JtV2luZG93RnVuY0NhbGwoUGFyc2VTdGF0ZSAqcHN0YXRlLCBX aW5kb3dGdW5jICp3ZnVuYywKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKIAkJCWVycmtp bmQgPSB0cnVlOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6CisJ CWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CisJCQllcnJraW5kID0gdHJ1ZTsKKwkJCWJyZWFr OwogCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9uYWxseSBubyBkZWZhdWx0OiBjYXNl IGhlcmUsIHNvIHRoYXQgdGhlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf ZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCA4NGQyMTRmNWM3 NC4uYWEwMDQxZmY5ZDMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHBy LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtMTcsNiArMTcsNyBA QAogCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hZ2dyZWdhdGUuaCIKICNpbmNsdWRlICJjYXRhbG9n L3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAi Y29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUg Im5vZGVzL21ha2VmdW5jcy5oIgpAQCAtMzMsMTEgKzM0LDEzIEBACiAjaW5jbHVkZSAicGFyc2Vy L3BhcnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3RhcmdldC5oIgogI2lu Y2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCisjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgiCiAj aW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9kYXRlLmgiCiAjaW5j bHVkZSAidXRpbHMvZm1ncm9pZHMuaCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNp bmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKKyNpbmNsdWRlICJ1dGlscy90eXBjYWNoZS5oIgog I2luY2x1ZGUgInV0aWxzL3htbC5oIgogCiAvKiBHVUMgcGFyYW1ldGVycyAqLwpAQCAtMTA2LDYg KzEwOSw5IEBAIHN0YXRpYyBFeHByICptYWtlX2Rpc3RpbmN0X29wKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgTGlzdCAqb3BuYW1lLAogCQkJCQkJCSAgTm9kZSAqbHRyZWUsIE5vZGUgKnJ0cmVlLCBpbnQg bG9jYXRpb24pOwogc3RhdGljIE5vZGUgKm1ha2VfbnVsbHRlc3RfZnJvbV9kaXN0aW5jdChQYXJz ZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJIEFfRXhwciAqZGlzdGluY3RhLCBOb2RlICphcmcp Oworc3RhdGljIE5vZGUgKm1ha2VQYXJhbVNlc3Npb25WYXJpYWJsZShQYXJzZVN0YXRlICpwc3Rh dGUsCisJCQkJCQkJCQkgIE9pZCB2YXJpZCwgT2lkIHR5cGlkLCBpbnQzMiB0eXBtb2QsIE9pZCBj b2xsaWQsCisJCQkJCQkJCQkgIGNoYXIgKmF0dHJuYW1lLCBpbnQgbG9jYXRpb24pOwogCiAKIC8q CkBAIC00OTksNiArNTA1LDg5IEBAIHRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qCisgKiBS ZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIGV4cHJlc3Npb24ga2luZCBpcyB2YWxpZCBmb3Igc2Vz c2lvbiB2YXJpYWJsZXMuCisgKiBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgdXNlZCBldmVyeXdo ZXJlIHdoZXJlIGV4dGVybmFsIHBhcmFtZXRlcnMgY2FuIGJlCisgKiB1c2VkLiAgU2Vzc2lvbiB2 YXJpYWJsZXMgYXJlIG5vdCBhbGxvd2VkIGluIERETCBjb21tYW5kcyBvciBpbiBjb25zdHJhaW50 cy4KKyAqCisgKiBBbiBpZGVudGlmaWVyIGNhbiBiZSBwYXJzZWQgYXMgYSBzZXNzaW9uIHZhcmlh YmxlIG9ubHkgZm9yIGV4cHJlc3Npb24ga2luZHMKKyAqIHdoZXJlIHNlc3Npb24gdmFyaWFibGVz IGFyZSBhbGxvd2VkLiAgVGhpcyBpcyB0aGUgcHJpbWFyeSB1c2FnZSBvZiB0aGlzCisgKiBmdW5j dGlvbi4KKyAqCisgKiBUaGUgc2Vjb25kIHVzYWdlIG9mIHRoaXMgZnVuY3Rpb24gaXMgdG8gZGVj aWRlIHdoZXRoZXIgYSAiY29sdW1uIGRvZXMgbm90CisgKiBleGlzdCIgb3IgYSAiY29sdW1uIG9y IHZhcmlhYmxlIGRvZXMgbm90IGV4aXN0IiBlcnJvciBtZXNzYWdlIHNob3VsZCBiZQorICogcHJp bnRlZC4gIFdoZW4gd2UgYXJlIGluIGFuIGV4cHJlc3Npb24gd2hlcmUgc2Vzc2lvbiB2YXJpYWJs ZXMgY2Fubm90IGJlCisgKiB1c2VkLCB3ZSByYWlzZSB0aGUgZmlyc3QgZm9ybSBvZiBlcnJvciBt ZXNzYWdlLgorICovCitzdGF0aWMgYm9vbAorZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3Zhcmlh YmxlcyhQYXJzZUV4cHJLaW5kIHBfZXhwcl9raW5kKQoreworCWJvb2wJCXJlc3VsdCA9IGZhbHNl OworCisJc3dpdGNoIChwX2V4cHJfa2luZCkKKwl7CisJCWNhc2UgRVhQUl9LSU5EX05PTkU6CisJ CQlBc3NlcnQoZmFsc2UpOwkJLyogY2FuJ3QgaGFwcGVuICovCisJCQlyZXR1cm4gZmFsc2U7CisK KwkJLyogc2Vzc2lvbiB2YXJpYWJsZXMgYWxsb3dlZCAqLworCQljYXNlIEVYUFJfS0lORF9PVEhF UjoKKwkJY2FzZSBFWFBSX0tJTkRfSk9JTl9PTjoKKwkJY2FzZSBFWFBSX0tJTkRfRlJPTV9TVUJT RUxFQ1Q6CisJCWNhc2UgRVhQUl9LSU5EX0ZST01fRlVOQ1RJT046CisJCWNhc2UgRVhQUl9LSU5E X1dIRVJFOgorCQljYXNlIEVYUFJfS0lORF9IQVZJTkc6CisJCWNhc2UgRVhQUl9LSU5EX0ZJTFRF UjoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX1BBUlRJVElPTjoKKwkJY2FzZSBFWFBSX0tJTkRf V0lORE9XX09SREVSOgorCQljYXNlIEVYUFJfS0lORF9XSU5ET1dfRlJBTUVfUkFOR0U6CisJCWNh c2UgRVhQUl9LSU5EX1dJTkRPV19GUkFNRV9ST1dTOgorCQljYXNlIEVYUFJfS0lORF9XSU5ET1df RlJBTUVfR1JPVVBTOgorCQljYXNlIEVYUFJfS0lORF9TRUxFQ1RfVEFSR0VUOgorCQljYXNlIEVY UFJfS0lORF9JTlNFUlRfVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9VUERBVEVfU09VUkNFOgor CQljYXNlIEVYUFJfS0lORF9VUERBVEVfVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9NRVJHRV9X SEVOOgorCQljYXNlIEVYUFJfS0lORF9NRVJHRV9SRVRVUk5JTkc6CisJCWNhc2UgRVhQUl9LSU5E X0dST1VQX0JZOgorCQljYXNlIEVYUFJfS0lORF9PUkRFUl9CWToKKwkJY2FzZSBFWFBSX0tJTkRf RElTVElOQ1RfT046CisJCWNhc2UgRVhQUl9LSU5EX0xJTUlUOgorCQljYXNlIEVYUFJfS0lORF9P RkZTRVQ6CisJCWNhc2UgRVhQUl9LSU5EX1JFVFVSTklORzoKKwkJY2FzZSBFWFBSX0tJTkRfVkFM VUVTOgorCQljYXNlIEVYUFJfS0lORF9WQUxVRVNfU0lOR0xFOgorCQljYXNlIEVYUFJfS0lORF9B TFRFUl9DT0xfVFJBTlNGT1JNOgorCQljYXNlIEVYUFJfS0lORF9FWEVDVVRFX1BBUkFNRVRFUjoK KwkJY2FzZSBFWFBSX0tJTkRfUE9MSUNZOgorCQljYXNlIEVYUFJfS0lORF9DQUxMX0FSR1VNRU5U OgorCQljYXNlIEVYUFJfS0lORF9DT1BZX1dIRVJFOgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFS R0VUOgorCQkJcmVzdWx0ID0gdHJ1ZTsKKwkJCWJyZWFrOworCisJCS8qIHNlc3Npb24gdmFyaWFi bGVzIG5vdCBhbGxvd2VkICovCisJCWNhc2UgRVhQUl9LSU5EX0NIRUNLX0NPTlNUUkFJTlQ6CisJ CWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKKwkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RF RkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9L SU5EX0lOREVYX0VYUFJFU1NJT046CisJCWNhc2UgRVhQUl9LSU5EX0lOREVYX1BSRURJQ0FURToK KwkJY2FzZSBFWFBSX0tJTkRfU1RBVFNfRVhQUkVTU0lPTjoKKwkJY2FzZSBFWFBSX0tJTkRfVFJJ R0dFUl9XSEVOOgorCQljYXNlIEVYUFJfS0lORF9QQVJUSVRJT05fQk9VTkQ6CisJCWNhc2UgRVhQ Ul9LSU5EX1BBUlRJVElPTl9FWFBSRVNTSU9OOgorCQljYXNlIEVYUFJfS0lORF9HRU5FUkFURURf Q09MVU1OOgorCQljYXNlIEVYUFJfS0lORF9KT0lOX1VTSU5HOgorCQljYXNlIEVYUFJfS0lORF9D WUNMRV9NQVJLOgorCQljYXNlIEVYUFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQkJcmVzdWx0ID0g ZmFsc2U7CisJCQlicmVhazsKKwl9CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAvKgogICogVHJh bnNmb3JtIGEgQ29sdW1uUmVmLgogICoKQEAgLTU3NSw2ICs2NjQsOCBAQCB0cmFuc2Zvcm1Db2x1 bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJCWNhc2UgRVhQUl9L SU5EX0NPUFlfV0hFUkU6CiAJCWNhc2UgRVhQUl9LSU5EX0dFTkVSQVRFRF9DT0xVTU46CiAJCWNh c2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CisJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6 CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CiAJCQkvKiBva2F5ICovCiAJCQlicmVhazsK IApAQCAtODQ3LDggKzkzOCw2MSBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJfQogCiAJLyoKLQkgKiBUaHJvdyBlcnJvciBpZiBubyB0 cmFuc2xhdGlvbiBmb3VuZC4KKwkgKiBUaGVyZSBhcmUgY29udGV4dHMgd2hlcmUgc2Vzc2lvbiB2 YXJpYWJsZXMgYXJlIG5vdCBhbGxvd2VkLiAgV2UgZG9uJ3QKKwkgKiBuZWVkIHRvIGlkZW50aWZ5 IHNlc3Npb24gdmFyaWFibGVzIGluIHN1Y2ggYSBjb250ZXh0LCBidXQgaWRlbnRpZnlpbmcKKwkg KiB0aGVtIGFsbG93cyB1cyB0byByYWlzZSBtZWFuaW5nZnVsIGVycm9yIG1lc3NhZ2VzIGxpa2Ug InlvdSBjYW5ub3QgdXNlCisJICogc2Vzc2lvbiB2YXJpYWJsZXMgaGVyZSIuCiAJICovCisJaWYg KGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMocHN0YXRlLT5wX2V4cHJfa2luZCkp CisJeworCQlPaWQJCQl2YXJpZCA9IEludmFsaWRPaWQ7CisJCWNoYXIJICAgKmF0dHJuYW1lID0g TlVMTDsKKwkJYm9vbAkJbm90X3VuaXF1ZTsKKworCQkvKiAtLS0tLQorCQkgKiBTZXNzaW9uIHZh cmlhYmxlcyBhcmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGluZSB2YXJpYWJsZXMgb3IKKwkJ ICogcm91dGluZSBhcmd1bWVudHMuICBXZSBjZXJ0YWlubHkgZG9uJ3Qgd2FudCB0byB1c2UgYSBz ZXNzaW9uIHZhcmlhYmxlCisJCSAqIHdoZW4gaXQgaXMgZXhhY3RseSBzaGFkb3dlZCwgYnV0IGEg UlRFIGxpa2UgdGhpcyBpcyBjb25jZWl2YWJsZToKKwkJICoKKwkJICogQ1JFQVRFIFRZUEUgdCBB UyAoYyBpbnQpOworCQkgKiBDUkVBVEUgVkFSSUFCTEUgZm9vIEFTIHQ7CisJCSAqIENSRUFURSBU QUJMRSBmb28oYSBpbnQsIGIgaW50KTsKKwkJICoKKwkJICogU0VMRUNUIGZvby5hLCBmb28uYiwg Zm9vLmMgRlJPTSBmb287CisJCSAqCisJCSAqIEhvd2V2ZXIsIHRoYXQgaXMgdmVyeSBjb25mdXNp bmcsIHNvIHdlIGRpc2FsbG93IGl0LiAgV2UgZG9uJ3QgdHJ5IHRvCisJCSAqIGlkZW50aWZ5IGEg dmFyaWFibGUgaWYgd2Uga25vdyB0aGF0IGl0IHdvdWxkIGJlIHNoYWRvd2VkLgorCQkgKiAtLS0t LQorCQkgKi8KKwkJaWYgKCFub2RlICYmICEocmVsbmFtZSAmJiBjcmVyciA9PSBDUkVSUl9OT19D T0xVTU4pKQorCQl7CisJCQkvKiB0YWtlcyBhbiBBY2Nlc3NTaGFyZUxvY2sgb24gdGhlIHNlc3Np b24gdmFyaWFibGUgKi8KKwkJCXZhcmlkID0gSWRlbnRpZnlWYXJpYWJsZShjcmVmLT5maWVsZHMs ICZhdHRybmFtZSwgJm5vdF91bmlxdWUsIGZhbHNlKTsKKworCQkJaWYgKE9pZElzVmFsaWQodmFy aWQpKQorCQkJeworCQkJCU9pZAkJCXR5cGlkOworCQkJCWludDMyCQl0eXBtb2Q7CisJCQkJT2lk CQkJY29sbGlkOworCisJCQkJaWYgKG5vdF91bmlxdWUpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJ CQkJCQkJKGVycmNvZGUoRVJSQ09ERV9BTUJJR1VPVVNfUEFSQU1FVEVSKSwKKwkJCQkJCQkgZXJy bXNnKCJzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSBcIiVzXCIgaXMgYW1iaWd1b3VzIiwKKwkJ CQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcoY3JlZi0+ZmllbGRzKSksCisJCQkJCQkJIHBhcnNlcl9l cnJwb3NpdGlvbihwc3RhdGUsIGNyZWYtPmxvY2F0aW9uKSkpOworCisJCQkJZ2V0X3Nlc3Npb25f dmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKHZhcmlkLCAmdHlwaWQsICZ0eXBtb2QsCisJCQkJ CQkJCQkJCQkJCSZjb2xsaWQpOworCisJCQkJbm9kZSA9IG1ha2VQYXJhbVNlc3Npb25WYXJpYWJs ZShwc3RhdGUsCisJCQkJCQkJCQkJCQl2YXJpZCwgdHlwaWQsIHR5cG1vZCwgY29sbGlkLAorCQkJ CQkJCQkJCQkJYXR0cm5hbWUsIGNyZWYtPmxvY2F0aW9uKTsKKwkJCX0KKwkJfQorCX0KKworCS8q IHRocm93IGFuIGVycm9yIGlmIG5vIHRyYW5zbGF0aW9uIHdhcyBmb3VuZCAqLwogCWlmIChub2Rl ID09IE5VTEwpCiAJewogCQlzd2l0Y2ggKGNyZXJyKQpAQCAtODgwLDYgKzEwMjQsNzUgQEAgdHJh bnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCXJl dHVybiBub2RlOwogfQogCisvKgorICogR2VuZXJhdGUgcGFyYW0gdmFyaWFibGUgZm9yIHJlZmVy ZW5jZSB0byBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3N0YXRpYyBOb2RlICoKK21ha2VQYXJhbVNl c3Npb25WYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkgT2lkIHZhcmlkLCBPaWQg dHlwaWQsIGludDMyIHR5cG1vZCwgT2lkIGNvbGxpZCwKKwkJCQkJCSBjaGFyICphdHRybmFtZSwg aW50IGxvY2F0aW9uKQoreworCVBhcmFtCSAgICpwYXJhbTsKKworCXBhcmFtID0gbWFrZU5vZGUo UGFyYW0pOworCisJcGFyYW0tPnBhcmFta2luZCA9IFBBUkFNX1ZBUklBQkxFOworCXBhcmFtLT5w YXJhbXZhcmlkID0gdmFyaWQ7CisJcGFyYW0tPnBhcmFtdHlwZSA9IHR5cGlkOworCXBhcmFtLT5w YXJhbXR5cG1vZCA9IHR5cG1vZDsKKwlwYXJhbS0+cGFyYW1jb2xsaWQgPSBjb2xsaWQ7CisKKwlw c3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcyA9IHRydWU7CisKKwlpZiAoYXR0cm5hbWUgIT0g TlVMTCkKKwl7CisJCVR1cGxlRGVzYwl0dXBkZXNjOworCQlpbnQJCQlpOworCisJCXR1cGRlc2Mg PSBsb29rdXBfcm93dHlwZV90dXBkZXNjX25vZXJyb3IodHlwaWQsIHR5cG1vZCwgdHJ1ZSk7CisJ CWlmICghdHVwZGVzYykKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVf V1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCQkgZXJybXNnKCJ2YXJpYWJsZSBcIiVzLiVzXCIgaXMg b2YgdHlwZSBcIiVzXCIsIHdoaWNoIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlIiwKKwkJCQkJCQln ZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSks CisJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCksCisJCQkJCQkJZm9ybWF0 X3R5cGVfYmUodHlwaWQpKSwKKwkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0 aW9uKSkpOworCisJCWZvciAoaSA9IDA7IGkgPCB0dXBkZXNjLT5uYXR0czsgaSsrKQorCQl7CisJ CQlGb3JtX3BnX2F0dHJpYnV0ZSBhdHQgPSBUdXBsZURlc2NBdHRyKHR1cGRlc2MsIGkpOworCisJ CQlpZiAoc3RyY21wKGF0dHJuYW1lLCBOYW1lU3RyKGF0dC0+YXR0bmFtZSkpID09IDAgJiYKKwkJ CQkhYXR0LT5hdHRpc2Ryb3BwZWQpCisJCQl7CisJCQkJLyogc3VjY2Vzcywgc28gZ2VuZXJhdGUg YSBGaWVsZFNlbGVjdCBleHByZXNzaW9uICovCisJCQkJRmllbGRTZWxlY3QgKmZzZWxlY3QgPSBt YWtlTm9kZShGaWVsZFNlbGVjdCk7CisKKwkJCQlmc2VsZWN0LT5hcmcgPSAoRXhwciAqKSBwYXJh bTsKKwkJCQlmc2VsZWN0LT5maWVsZG51bSA9IGkgKyAxOworCQkJCWZzZWxlY3QtPnJlc3VsdHR5 cGUgPSBhdHQtPmF0dHR5cGlkOworCQkJCWZzZWxlY3QtPnJlc3VsdHR5cG1vZCA9IGF0dC0+YXR0 dHlwbW9kOworCQkJCS8qIHNhdmUgYXR0cmlidXRlJ3MgY29sbGF0aW9uIGZvciBwYXJzZV9jb2xs YXRlLmMgKi8KKwkJCQlmc2VsZWN0LT5yZXN1bHRjb2xsaWQgPSBhdHQtPmF0dGNvbGxhdGlvbjsK KworCQkJCVJlbGVhc2VUdXBsZURlc2ModHVwZGVzYyk7CisJCQkJcmV0dXJuIChOb2RlICopIGZz ZWxlY3Q7CisJCQl9CisJCX0KKworCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNP REVfVU5ERUZJTkVEX0NPTFVNTiksCisJCQkJIGVycm1zZygiY291bGQgbm90IGlkZW50aWZ5IGNv bHVtbiBcIiVzXCIgaW4gdmFyaWFibGUgXCIlcy4lc1wiIiwKKwkJCQkJCWF0dHJuYW1lLAorCQkJ CQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJp ZCkpLAorCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpLAorCQkJCSBwYXJz ZXJfZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbikpKTsKKwl9CisKKwlyZXR1cm4gKE5vZGUg KikgcGFyYW07Cit9CisKIHN0YXRpYyBOb2RlICoKIHRyYW5zZm9ybVBhcmFtUmVmKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgUGFyYW1SZWYgKnByZWYpCiB7CkBAIC0xODE1LDYgKzIwMjgsNyBAQCB0cmFu c2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKIAkJY2Fz ZSBFWFBSX0tJTkRfVkFMVUVTOgogCQljYXNlIEVYUFJfS0lORF9WQUxVRVNfU0lOR0xFOgogCQlj YXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgog CQkJLyogb2theSAqLwogCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NIRUNLX0NPTlNUUkFJ TlQ6CkBAIC0xODU4LDYgKzIwNzIsOSBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBz dGF0ZSwgU3ViTGluayAqc3VibGluaykKIAkJY2FzZSBFWFBSX0tJTkRfR0VORVJBVEVEX0NPTFVN TjoKIAkJCWVyciA9IF8oImNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gY29sdW1uIGdlbmVyYXRpb24g ZXhwcmVzc2lvbiIpOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6 CisJCQllcnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGFzIHRhcmdldCBvZiBhc3NpZ24gc3Rh dGVtZW50Iik7CisJCQlicmVhazsKIAogCQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFs bHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQpAQCAtMzE5Nyw2ICszNDE0LDEw IEBAIFBhcnNlRXhwcktpbmROYW1lKFBhcnNlRXhwcktpbmQgZXhwcktpbmQpCiAJCQlyZXR1cm4g IkdFTkVSQVRFRCBBUyI7CiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCQlyZXR1cm4g IkNZQ0xFIjsKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJCXJldHVybiAiQVNT SUdOIjsKKwkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoKKwkJCXJldHVybiAiTEVUIjsKIAog CQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJl LCBzbyB0aGF0IHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMu YyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKaW5kZXggNTgzYmJiZjIzMmYuLmRj MjVmNmRjZDBlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKQEAgLTI2NTYsNiArMjY1Niw4IEBA IGNoZWNrX3NyZl9jYWxsX3BsYWNlbWVudChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmxhc3Rf c3JmLCBpbnQgbG9jYXRpb24pCiAJCQllcnIgPSBfKCJzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBh cmUgbm90IGFsbG93ZWQgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbnMiKTsKIAkJCWJy ZWFrOwogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgorCQljYXNlIEVYUFJfS0lORF9BU1NJ R05fVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgogCQkJZXJya2luZCA9IHRy dWU7CiAJCQlicmVhazsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21l cmdlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfbWVyZ2UuYwppbmRleCBmOTJiZWY5OWQ1 OS4uYWNkZjVjZDEwODggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJn ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5jCkBAIC00MDUsNiArNDA1 LDcgQEAgdHJhbnNmb3JtTWVyZ2VTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTWVyZ2VTdG10ICpz dG10KQogCiAJcXJ5LT5oYXNUYXJnZXRTUkZzID0gZmFsc2U7CiAJcXJ5LT5oYXNTdWJMaW5rcyA9 IHBzdGF0ZS0+cF9oYXNTdWJMaW5rczsKKwlxcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSBwc3Rh dGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWFzc2lnbl9xdWVyeV9jb2xsYXRpb25zKHBz dGF0ZSwgcXJ5KTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9kZXN0LmMgYi9zcmMv YmFja2VuZC90Y29wL2Rlc3QuYwppbmRleCBiNDRmOTA3MjI4MC4uNDQ2YzcxOTUzYmYgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvZGVzdC5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvZGVz dC5jCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiZXhlY3V0b3IvZnVuY3Rpb25zLmgiCiAj aW5jbHVkZSAiZXhlY3V0b3IvdHF1ZXVlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvdHN0b3JlUmVj ZWl2ZXIuaCIKKyNpbmNsdWRlICJleGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIgogI2luY2x1 ZGUgImxpYnBxL2xpYnBxLmgiCiAjaW5jbHVkZSAibGlicHEvcHFmb3JtYXQuaCIKIApAQCAtMTU1 LDYgKzE1Niw5IEBAIENyZWF0ZURlc3RSZWNlaXZlcihDb21tYW5kRGVzdCBkZXN0KQogCiAJCWNh c2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6CiAJCQlyZXR1cm4gQ3JlYXRlRXhwbGFpblNlcmlhbGl6 ZURlc3RSZWNlaXZlcihOVUxMKTsKKworCQljYXNlIERlc3RWYXJpYWJsZToKKwkJCXJldHVybiBD cmVhdGVWYXJpYWJsZURlc3RSZWNlaXZlcihJbnZhbGlkT2lkKTsKIAl9CiAKIAkvKiBzaG91bGQg bmV2ZXIgZ2V0IGhlcmUgKi8KQEAgLTE5MSw2ICsxOTUsNyBAQCBFbmRDb21tYW5kKGNvbnN0IFF1 ZXJ5Q29tcGxldGlvbiAqcWMsIENvbW1hbmREZXN0IGRlc3QsIGJvb2wgZm9yY2VfdW5kZWNvcmF0 ZWRfbwogCQljYXNlIERlc3RUcmFuc2llbnRSZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6CiAJ CWNhc2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJYnJl YWs7CiAJfQogfQpAQCAtMjM3LDYgKzI0Miw3IEBAIE51bGxDb21tYW5kKENvbW1hbmREZXN0IGRl c3QpCiAJCWNhc2UgRGVzdFRyYW5zaWVudFJlbDoKIAkJY2FzZSBEZXN0VHVwbGVRdWV1ZToKIAkJ Y2FzZSBEZXN0RXhwbGFpblNlcmlhbGl6ZToKKwkJY2FzZSBEZXN0VmFyaWFibGU6CiAJCQlicmVh azsKIAl9CiB9CkBAIC0yODEsNiArMjg3LDcgQEAgUmVhZHlGb3JRdWVyeShDb21tYW5kRGVzdCBk ZXN0KQogCQljYXNlIERlc3RUcmFuc2llbnRSZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6CiAJ CWNhc2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJYnJl YWs7CiAJfQogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMv YmFja2VuZC90Y29wL3V0aWxpdHkuYwppbmRleCA5OWE1MTg3N2QzNC4uN2E1MDhhMzY0NGYgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvdXRpbGl0eS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rj b3AvdXRpbGl0eS5jCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiY29tbWFuZHMvc2NoZW1h Y21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlY2xhYmVsLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvc2VxdWVuY2UuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRz L3RhYmxlY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIKQEAgLTIzNSw2 ICsyMzYsNyBAQCBDbGFzc2lmeVV0aWxpdHlDb21tYW5kQXNSZWFkT25seShOb2RlICpwYXJzZXRy ZWUpCiAKIAkJY2FzZSBUX0NhbGxTdG10OgogCQljYXNlIFRfRG9TdG10OgorCQljYXNlIFRfTGV0 U3RtdDoKIAkJCXsKIAkJCQkvKgogCQkJCSAqIENvbW1hbmRzIGluc2lkZSB0aGUgRE8gYmxvY2sg b3IgdGhlIGNhbGxlZCBwcm9jZWR1cmUgbWlnaHQKQEAgLTEwNjcsNiArMTA2OSwxMSBAQCBzdGFu ZGFyZF9Qcm9jZXNzVXRpbGl0eShQbGFubmVkU3RtdCAqcHN0bXQsCiAJCQkJYnJlYWs7CiAJCQl9 CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQlFeGVjdXRlTGV0U3RtdChwc3RhdGUsIChMZXRTdG10 ICopIHBhcnNldHJlZSwgcGFyYW1zLAorCQkJCQkJICAgcXVlcnlFbnYsIHFjKTsKKwkJCWJyZWFr OworCiAJCWRlZmF1bHQ6CiAJCQkvKiBBbGwgb3RoZXIgc3RhdGVtZW50IHR5cGVzIGhhdmUgZXZl bnQgdHJpZ2dlciBzdXBwb3J0ICovCiAJCQlQcm9jZXNzVXRpbGl0eVNsb3cocHN0YXRlLCBwc3Rt dCwgcXVlcnlTdHJpbmcsCkBAIC0yMjA2LDYgKzIyMTMsMTAgQEAgVXRpbGl0eUNvbnRhaW5zUXVl cnkoTm9kZSAqcGFyc2V0cmVlKQogCQkJCXJldHVybiBVdGlsaXR5Q29udGFpbnNRdWVyeShxcnkt PnV0aWxpdHlTdG10KTsKIAkJCXJldHVybiBxcnk7CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQlx cnkgPSBjYXN0Tm9kZShRdWVyeSwgKChMZXRTdG10ICopIHBhcnNldHJlZSktPnF1ZXJ5KTsKKwkJ CXJldHVybiBxcnk7CisKIAkJZGVmYXVsdDoKIAkJCXJldHVybiBOVUxMOwogCX0KQEAgLTI0MDQs NiArMjQxNSwxMCBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCXRhZyA9 IENNRFRBR19TRUxFQ1Q7CiAJCQlicmVhazsKIAorCQljYXNlIFRfTGV0U3RtdDoKKwkJCXRhZyA9 IENNRFRBR19MRVQ7CisJCQlicmVhazsKKwogCQkJLyogdXRpbGl0eSBzdGF0ZW1lbnRzIC0tLSBz YW1lIHdoZXRoZXIgcmF3IG9yIGNvb2tlZCAqLwogCQljYXNlIFRfVHJhbnNhY3Rpb25TdG10Ogog CQkJewpAQCAtMzI4OSw2ICszMzA0LDcgQEAgR2V0Q29tbWFuZExvZ0xldmVsKE5vZGUgKnBhcnNl dHJlZSkKIAkJCWJyZWFrOwogCiAJCWNhc2UgVF9QTEFzc2lnblN0bXQ6CisJCWNhc2UgVF9MZXRT dG10OgogCQkJbGV2ID0gTE9HU1RNVF9BTEw7CiAJCQlicmVhazsKIApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1 bGV1dGlscy5jCmluZGV4IDIwODliNTJkNTc1Li44ZDNkM2M5Yzc1NyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9ydWxldXRpbHMuYwpAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfc3Rh dGlzdGljX2V4dC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHJpZ2dlci5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNp bmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNl LmgiCiAjaW5jbHVkZSAiY29tbW9uL2tleXdvcmRzLmgiCkBAIC01MjgsNiArNTI5LDcgQEAgc3Rh dGljIGNoYXIgKmdlbmVyYXRlX2Z1bmN0aW9uX25hbWUoT2lkIGZ1bmNpZCwgaW50IG5hcmdzLAog c3RhdGljIGNoYXIgKmdlbmVyYXRlX29wZXJhdG9yX25hbWUoT2lkIG9wZXJpZCwgT2lkIGFyZzEs IE9pZCBhcmcyKTsKIHN0YXRpYyB2b2lkIGFkZF9jYXN0X3RvKFN0cmluZ0luZm8gYnVmLCBPaWQg dHlwaWQpOwogc3RhdGljIGNoYXIgKmdlbmVyYXRlX3F1YWxpZmllZF90eXBlX25hbWUoT2lkIHR5 cGlkKTsKK3N0YXRpYyBjaGFyICpnZW5lcmF0ZV9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZh cmlkKTsKIHN0YXRpYyB0ZXh0ICpzdHJpbmdfdG9fdGV4dChjaGFyICpzdHIpOwogc3RhdGljIGNo YXIgKmZsYXR0ZW5fcmVsb3B0aW9ucyhPaWQgcmVsaWQpOwogc3RhdGljIHZvaWQgZ2V0X3JlbG9w dGlvbnMoU3RyaW5nSW5mbyBidWYsIERhdHVtIHJlbG9wdGlvbnMpOwpAQCAtODYyNSw2ICs4NjI3 LDE0IEBAIGdldF9wYXJhbWV0ZXIoUGFyYW0gKnBhcmFtLCBkZXBhcnNlX2NvbnRleHQgKmNvbnRl eHQpCiAJCXJldHVybjsKIAl9CiAKKwkvKiB0cmFuc2xhdGUgcGFyYW12YXJpZCB0byBzZXNzaW9u IHZhcmlhYmxlIG5hbWUgKi8KKwlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJM RSkKKwl7CisJCWFwcGVuZFN0cmluZ0luZm8oY29udGV4dC0+YnVmLCAiJXMiLAorCQkJCQkJIGdl bmVyYXRlX3Nlc3Npb25fdmFyaWFibGVfbmFtZShwYXJhbS0+cGFyYW12YXJpZCkpOworCQlyZXR1 cm47CisJfQorCiAJLyoKIAkgKiBBbHRlcm5hdGl2ZWx5LCBtYXliZSBpdCdzIGEgc3VicGxhbiBv dXRwdXQsIHdoaWNoIHdlIHByaW50IGFzIGEKIAkgKiByZWZlcmVuY2UgdG8gdGhlIHN1YnBsYW4u ICAoV2UgY291bGQgZHJpbGwgZG93biBpbnRvIHRoZSBzdWJwbGFuIGFuZApAQCAtMTM0MDcsNiAr MTM0MTcsNDIgQEAgZ2VuZXJhdGVfY29sbGF0aW9uX25hbWUoT2lkIGNvbGxpZCkKIAlyZXR1cm4g cmVzdWx0OwogfQogCisvKgorICogZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lCisgKgkJ Q29tcHV0ZSB0aGUgbmFtZSB0byBkaXNwbGF5IGZvciBhIHNlc3Npb24gdmFyaWFibGUgc3BlY2lm aWVkIGJ5IE9JRAorICoKKyAqIFRoZSByZXN1bHQgaW5jbHVkZXMgYWxsIG5lY2Vzc2FyeSBxdW90 aW5nIGFuZCBzY2hlbWEtcHJlZml4aW5nLgorICovCitzdGF0aWMgY2hhciAqCitnZW5lcmF0ZV9z ZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZhcmlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9y bV9wZ192YXJpYWJsZSB2YXJmb3JtOworCWNoYXIJICAgKnZhcm5hbWU7CisJY2hhcgkgICAqbnNw bmFtZTsKKwljaGFyCSAgICpyZXN1bHQ7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFC TEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxp ZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgdmFyaWFibGUg JXUiLCB2YXJpZCk7CisKKwl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0 dXApOworCisJdmFybmFtZSA9IE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSk7CisKKwlpZiAoIVZh cmlhYmxlSXNWaXNpYmxlKHZhcmlkKSkKKwkJbnNwbmFtZSA9IGdldF9uYW1lc3BhY2VfbmFtZV9v cl90ZW1wKHZhcmZvcm0tPnZhcm5hbWVzcGFjZSk7CisJZWxzZQorCQluc3BuYW1lID0gTlVMTDsK KworCXJlc3VsdCA9IHF1b3RlX3F1YWxpZmllZF9pZGVudGlmaWVyKG5zcG5hbWUsIHZhcm5hbWUp OworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAvKgog ICogR2l2ZW4gYSBDIHN0cmluZywgcHJvZHVjZSBhIFRFWFQgZGF0dW0uCiAgKgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcGxhbmNhY2hlLmMgYi9zcmMvYmFja2VuZC91dGls cy9jYWNoZS9wbGFuY2FjaGUuYwppbmRleCA1NWRiOGY1MzcwNS4uNjMyYzQzOGE3YmQgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCkBAIC01OCw2ICs1OCw3IEBACiAKICNpbmNsdWRl ICJhY2Nlc3MvdHJhbnNhbS5oIgogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCisjaW5j bHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9y LmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgi CkBAIC0xNjIsNiArMTYzLDcgQEAgSW5pdFBsYW5DYWNoZSh2b2lkKQogCUNhY2hlUmVnaXN0ZXJT eXNjYWNoZUNhbGxiYWNrKEFNT1BPUElELCBQbGFuQ2FjaGVTeXNDYWxsYmFjaywgKERhdHVtKSAw KTsKIAlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhGT1JFSUdOU0VSVkVST0lELCBQbGFu Q2FjaGVTeXNDYWxsYmFjaywgKERhdHVtKSAwKTsKIAlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxs YmFjayhGT1JFSUdOREFUQVdSQVBQRVJPSUQsIFBsYW5DYWNoZVN5c0NhbGxiYWNrLCAoRGF0dW0p IDApOworCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKFZBUklBQkxFT0lELCBQbGFuQ2Fj aGVPYmplY3RDYWxsYmFjaywgKERhdHVtKSAwKTsKIH0KIAogLyoKQEAgLTE5MDMsMTcgKzE5MDUs MzIgQEAgU2NhblF1ZXJ5Rm9yTG9ja3MoUXVlcnkgKnBhcnNldHJlZSwgYm9vbCBhY3F1aXJlKQog CiAJLyoKIAkgKiBSZWN1cnNlIGludG8gc3VibGluayBzdWJxdWVyaWVzLCB0b28uICBCdXQgd2Ug YWxyZWFkeSBkaWQgdGhlIG9uZXMgaW4KLQkgKiB0aGUgcnRhYmxlIGFuZCBjdGVMaXN0LgorCSAq IHRoZSBydGFibGUgYW5kIGN0ZUxpc3QuICBXZSBuZWVkIHRvIGZvcmNlIGEgcmVjdXJzaXZlIGNh bGwgZm9yIHNlc3Npb24KKwkgKiB2YXJpYWJsZXMgdG9vLCB0byBmaW5kIGFuZCBsb2NrIHZhcmlh YmxlcyB1c2VkIGluIHRoZSBxdWVyeSAoc2VlCisJICogU2NhblF1ZXJ5V2Fsa2VyKS4KIAkgKi8K LQlpZiAocGFyc2V0cmVlLT5oYXNTdWJMaW5rcykKKwlpZiAocGFyc2V0cmVlLT5oYXNTdWJMaW5r cyB8fAorCQlwYXJzZXRyZWUtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJewogCQlxdWVyeV90cmVl X3dhbGtlcihwYXJzZXRyZWUsIFNjYW5RdWVyeVdhbGtlciwgJmFjcXVpcmUsCiAJCQkJCQkgIFFU V19JR05PUkVfUkNfU1VCUVVFUklFUyk7CiAJfQorCisJLyogcHJvY2VzcyBzZXNzaW9uIHZhcmlh YmxlcyAqLworCWlmIChPaWRJc1ZhbGlkKHBhcnNldHJlZS0+cmVzdWx0VmFyaWFibGUpKQorCXsK KwkJaWYgKGFjcXVpcmUpCisJCQlMb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklk LCBwYXJzZXRyZWUtPnJlc3VsdFZhcmlhYmxlLAorCQkJCQkJCSAgIDAsIEFjY2Vzc1NoYXJlTG9j ayk7CisJCWVsc2UKKwkJCVVubG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwg cGFyc2V0cmVlLT5yZXN1bHRWYXJpYWJsZSwKKwkJCQkJCQkJIDAsIEFjY2Vzc1NoYXJlTG9jayk7 CisJfQogfQogCiAvKgotICogV2Fsa2VyIHRvIGZpbmQgc3VibGluayBzdWJxdWVyaWVzIGZvciBT Y2FuUXVlcnlGb3JMb2NrcworICogV2Fsa2VyIHRvIGZpbmQgc3VibGluayBzdWJxdWVyaWVzIG9y IHJlZmVyZW5jZWQgc2Vzc2lvbiB2YXJpYWJsZXMKKyAqIGZvciBTY2FuUXVlcnlGb3JMb2Nrcwog ICovCiBzdGF0aWMgYm9vbAogU2NhblF1ZXJ5V2Fsa2VyKE5vZGUgKm5vZGUsIGJvb2wgKmFjcXVp cmUpCkBAIC0xOTI4LDYgKzE5NDUsMjAgQEAgU2NhblF1ZXJ5V2Fsa2VyKE5vZGUgKm5vZGUsIGJv b2wgKmFjcXVpcmUpCiAJCVNjYW5RdWVyeUZvckxvY2tzKGNhc3ROb2RlKFF1ZXJ5LCBzdWItPnN1 YnNlbGVjdCksICphY3F1aXJlKTsKIAkJLyogRmFsbCB0aHJvdWdoIHRvIHByb2Nlc3MgbGVmdGhh bmQgYXJncyBvZiBTdWJMaW5rICovCiAJfQorCWVsc2UgaWYgKElzQShub2RlLCBQYXJhbSkpCisJ eworCQlQYXJhbQkgICAqcCA9IChQYXJhbSAqKSBub2RlOworCisJCWlmIChwLT5wYXJhbWtpbmQg PT0gUEFSQU1fVkFSSUFCTEUpCisJCXsKKwkJCWlmIChhY3F1aXJlKQorCQkJCUxvY2tEYXRhYmFz ZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHAtPnBhcmFtdmFyaWQsCisJCQkJCQkJCSAgIDAs IEFjY2Vzc1NoYXJlTG9jayk7CisJCQllbHNlCisJCQkJVW5sb2NrRGF0YWJhc2VPYmplY3QoVmFy aWFibGVSZWxhdGlvbklkLCBwLT5wYXJhbXZhcmlkLAorCQkJCQkJCQkJIDAsIEFjY2Vzc1NoYXJl TG9jayk7CisJCX0KKwl9CiAKIAkvKgogCSAqIERvIE5PVCByZWN1cnNlIGludG8gUXVlcnkgbm9k ZXMsIGJlY2F1c2UgU2NhblF1ZXJ5Rm9yTG9ja3MgYWxyZWFkeQpAQCAtMjA1OCw3ICsyMDg5LDkg QEAgUGxhbkNhY2hlUmVsQ2FsbGJhY2soRGF0dW0gYXJnLCBPaWQgcmVsaWQpCiAKIC8qCiAgKiBQ bGFuQ2FjaGVPYmplY3RDYWxsYmFjawotICoJCVN5c2NhY2hlIGludmFsIGNhbGxiYWNrIGZ1bmN0 aW9uIGZvciBQUk9DT0lEIGFuZCBUWVBFT0lEIGNhY2hlcworICoJCVN5c2NhY2hlIGludmFsIGNh bGxiYWNrIGZ1bmN0aW9uIGZvciBUWVBFT0lELCBQUk9DT0lELCBOQU1FU1BBQ0VPSUQsCisgKgkJ T1BFUk9JRCwgQU1PUE9QSUQsIEZPUkVJR05TRVJWRVJPSUQsIEZPUkVJR05EQVRBV1JBUFBFUk9J RCBhbmQKKyAqCQlWQVJJQUJMRU9JRCBjYWNoZXMuCiAgKgogICogSW52YWxpZGF0ZSBhbGwgcGxh bnMgbWVudGlvbmluZyB0aGUgb2JqZWN0IHdpdGggdGhlIHNwZWNpZmllZCBoYXNoIHZhbHVlLAog ICogb3IgYWxsIHBsYW5zIG1lbnRpb25pbmcgYW55IG1lbWJlciBvZiB0aGlzIGNhY2hlIGlmIGhh c2h2YWx1ZSA9PSAwLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMg Yi9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYwppbmRleCBhYTg5YWU4ZmUxYS4uMjc2OTEw OTc4OTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCkBAIC0yMDI2LDkgKzIwMjYsMTMgQEAgZ2V0X2Nh bGxfZXhwcl9hcmdfc3RhYmxlKE5vZGUgKmV4cHIsIGludCBhcmdudW0pCiAJICovCiAJaWYgKElz QShhcmcsIENvbnN0KSkKIAkJcmV0dXJuIHRydWU7Ci0JaWYgKElzQShhcmcsIFBhcmFtKSAmJgot CQkoKFBhcmFtICopIGFyZyktPnBhcmFta2luZCA9PSBQQVJBTV9FWFRFUk4pCi0JCXJldHVybiB0 cnVlOworCWlmIChJc0EoYXJnLCBQYXJhbSkpCisJeworCQlQYXJhbQkgICAqcCA9IChQYXJhbSAq KSBhcmc7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9FWFRFUk4gfHwgcC0+cGFyYW1r aW5kID09IFBBUkFNX1ZBUklBQkxFKQorCQkJcmV0dXJuIHRydWU7CisJfQogCiAJcmV0dXJuIGZh bHNlOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDZlZWJmYzZhNWY5Li5hY2JmNTFlZjJl NyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9i aW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMTIxNCw4ICsxMjE0LDggQEAgc3RhdGljIGNv bnN0IGNoYXIgKmNvbnN0IHNxbF9jb21tYW5kc1tdID0gewogCSJBQk9SVCIsICJBTFRFUiIsICJB TkFMWVpFIiwgIkJFR0lOIiwgIkNBTEwiLCAiQ0hFQ0tQT0lOVCIsICJDTE9TRSIsICJDTFVTVEVS IiwKIAkiQ09NTUVOVCIsICJDT01NSVQiLCAiQ09QWSIsICJDUkVBVEUiLCAiREVBTExPQ0FURSIs ICJERUNMQVJFIiwKIAkiREVMRVRFIEZST00iLCAiRElTQ0FSRCIsICJETyIsICJEUk9QIiwgIkVO RCIsICJFWEVDVVRFIiwgIkVYUExBSU4iLAotCSJGRVRDSCIsICJHUkFOVCIsICJJTVBPUlQgRk9S RUlHTiBTQ0hFTUEiLCAiSU5TRVJUIElOVE8iLCAiTElTVEVOIiwgIkxPQUQiLCAiTE9DSyIsCi0J Ik1FUkdFIElOVE8iLCAiTU9WRSIsICJOT1RJRlkiLCAiUFJFUEFSRSIsCisJIkZFVENIIiwgIkdS QU5UIiwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsICJJTlNFUlQgSU5UTyIsICJMRVQiLAorCSJM SVNURU4iLCAiTE9BRCIsICJMT0NLIiwgIk1FUkdFIElOVE8iLCAiTU9WRSIsICJOT1RJRlkiLCAi UFJFUEFSRSIsCiAJIlJFQVNTSUdOIiwgIlJFRlJFU0ggTUFURVJJQUxJWkVEIFZJRVciLCAiUkVJ TkRFWCIsICJSRUxFQVNFIiwKIAkiUkVTRVQiLCAiUkVWT0tFIiwgIlJPTExCQUNLIiwKIAkiU0FW RVBPSU5UIiwgIlNFQ1VSSVRZIExBQkVMIiwgIlNFTEVDVCIsICJTRVQiLCAiU0hPVyIsICJTVEFS VCIsCkBAIC00NjYwLDYgKzQ2NjAsMTQgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRl cm5faWQsCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlZBTFVFUyIpICYmICFUYWlsTWF0Y2hlcygi REVGQVVMVCIsICJWQUxVRVMiKSkKIAkJQ09NUExFVEVfV0lUSCgiKCIpOwogCisvKiBMRVQgKi8K KwkvKiBJZiBwcmV2LiB3b3JkIGlzIExFVCBzdWdnZXN0IGEgbGlzdCBvZiB2YXJpYWJsZXMgKi8K KwllbHNlIGlmIChNYXRjaGVzKCJMRVQiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlko UXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzKTsKKwkvKiBDb21wbGV0ZSBMRVQgPHZhcmlhYmxl PiB3aXRoICI9IiAqLworCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJMRVQiLCBNYXRjaEFueSkpCisJ CUNPTVBMRVRFX1dJVEgoIj0iKTsKKwogLyogTE9DSyAqLwogCS8qIENvbXBsZXRlIExPQ0sgW1RB QkxFXSBbT05MWV0gd2l0aCBhIGxpc3Qgb2YgdGFibGVzICovCiAJZWxzZSBpZiAoTWF0Y2hlcygi TE9DSyIpKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKaW5kZXggYmRhYzBjMTNiZWMuLjUwNjBiOGM5 NDkwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCisrKyBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKQEAgLTE3NCw2ICsxNzQsNyBAQCBleHRlcm4g Ym9vbCBTZWFyY2hQYXRoTWF0Y2hlc0N1cnJlbnRFbnZpcm9ubWVudChTZWFyY2hQYXRoTWF0Y2hl ciAqcGF0aCk7CiBleHRlcm4gTGlzdCAqTmFtZXNGcm9tTGlzdChMaXN0ICpuYW1lcyk7CiBleHRl cm4gT2lkCUxvb2t1cFZhcmlhYmxlKGNvbnN0IGNoYXIgKm5zcG5hbWUsIGNvbnN0IGNoYXIgKnZh cm5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCUxvb2t1cFZhcmlhYmxlRnJvbU5h bWVMaXN0KExpc3QgKm5hbWVzLCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJuIE9pZAlJZGVudGlm eVZhcmlhYmxlKExpc3QgKm5hbWVzLCBjaGFyICoqYXR0cm5hbWUsIGJvb2wgKm5vdF91bmlxdWUs IGJvb2wgbm9lcnJvcik7CiAKIGV4dGVybiBPaWQJZ2V0X2NvbGxhdGlvbl9vaWQoTGlzdCAqY29s bG5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCWdldF9jb252ZXJzaW9uX29pZChM aXN0ICpjb25uYW1lLCBib29sIG1pc3Npbmdfb2spOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5o CmluZGV4IDNkM2M2ZWIyNGI1Li41YjQ1YmU1YWZhZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFi bGUuaApAQCAtMTgsNiArMTgsNyBAQAogI2lmbmRlZiBQR19WQVJJQUJMRV9ICiAjZGVmaW5lIFBH X1ZBUklBQkxFX0gKIAorI2luY2x1ZGUgImFjY2Vzcy94bG9nZGVmcy5oIgogI2luY2x1ZGUgImNh dGFsb2cvZ2VuYmtpLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhZGRyZXNzLmgiCiAjaW5j bHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZV9kLmgiCkBAIC0zNSw2ICszNiwxNCBAQCBDQVRBTE9H KHBnX3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQogCS8qIE9JRCBvZiBlbnRyeSBp biBwZ190eXBlIGZvciB2YXJpYWJsZSdzIHR5cGUgKi8KIAlPaWQJCQl2YXJ0eXBlIEJLSV9MT09L VVAocGdfdHlwZSk7CiAKKwkvKgorCSAqIFVzZWQgZm9yIGlkZW50aXR5IGNoZWNrIFtvaWQsIGNy ZWF0ZV9sc25dLgorCSAqCisJICogVGhpcyBjb2x1bW4gb2YgdGhlIDgtYnl0ZSBYbG9nUmVjUHRy IHR5cGUgc2hvdWxkIGJlIGF0IGFuIGFkZHJlc3MgdGhhdAorCSAqIGlzIGRpdmlzaWJsZSBieSA4 LCBidXQgYmVmb3JlIGFueSBjb2x1bW4gb2YgdHlwZSBOYW1lRGF0YS4KKwkgKi8KKwlYTG9nUmVj UHRyCXZhcmNyZWF0ZV9sc247CisKIAkvKiB2YXJpYWJsZSBuYW1lICovCiAJTmFtZURhdGEJdmFy bmFtZTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42OWE4ZTZiMDlmYwotLS0gL2Rldi9udWxsCisr KyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMCwwICsxLDMx IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBzZXNzaW9udmFyaWFibGUuaAorICoJICBw cm90b3R5cGVzIGZvciBzZXNzaW9udmFyaWFibGUuYy4KKyAqCisgKgorICogUG9ydGlvbnMgQ29w eXJpZ2h0IChjKSAxOTk2LTIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3Vw CisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNp dHkgb2YgQ2FsaWZvcm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuaAorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpZm5kZWYgU0VTU0lPTlZB UklBQkxFX0gKKyNkZWZpbmUgU0VTU0lPTlZBUklBQkxFX0gKKworI2luY2x1ZGUgIm5vZGVzL3Bh cmFtcy5oIgorI2luY2x1ZGUgIm5vZGVzL3BhcnNlbm9kZXMuaCIKKyNpbmNsdWRlICJwYXJzZXIv cGFyc2Vfbm9kZS5oIgorI2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCisjaW5jbHVkZSAidXRpbHMv cXVlcnllbnZpcm9ubWVudC5oIgorCitleHRlcm4gdm9pZCBTZXRTZXNzaW9uVmFyaWFibGUoT2lk IHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpOworZXh0ZXJuIERhdHVtIEdldFNlc3Np b25WYXJpYWJsZShPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCwgT2lkICp0eXBpZCk7CitleHRlcm4g RGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlV2l0aFR5cGVDaGVjayhPaWQgdmFyaWQsIGJvb2wgKmlz TnVsbCwgT2lkIGV4cGVjdGVkX3R5cGlkKTsKKworZXh0ZXJuIHZvaWQgRXhlY3V0ZUxldFN0bXQo UGFyc2VTdGF0ZSAqcHN0YXRlLCBMZXRTdG10ICpzdG10LCBQYXJhbUxpc3RJbmZvIHBhcmFtcywK KwkJCQkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LCBRdWVyeUNvbXBsZXRpb24gKnFj KTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVS ZWNlaXZlci5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZGI0NGQ4Yjk0YzYKLS0tIC9kZXYv bnVsbAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCkBAIC0w LDAgKzEsMjIgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHN2YXJpYWJsZVJlY2VpdmVy LmgKKyAqCSAgcHJvdG90eXBlcyBmb3Igc3ZhcmlhYmxlUmVjZWl2ZXIuYworICoKKyAqCisgKiBQ b3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxv cG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0 aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvZXhlY3V0b3Iv c3ZhcmlhYmxlUmVjZWl2ZXIuaAorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICovCisKKyNpZm5k ZWYgU1ZBUklBQkxFX1JFQ0VJVkVSX0gKKyNkZWZpbmUgU1ZBUklBQkxFX1JFQ0VJVkVSX0gKKwor I2luY2x1ZGUgInRjb3AvZGVzdC5oIgorCitleHRlcm4gRGVzdFJlY2VpdmVyICpDcmVhdGVWYXJp YWJsZURlc3RSZWNlaXZlcihPaWQgdmFyaWQpOworCisjZW5kaWYJCQkJCQkJLyogU1ZBUklBQkxF X1JFQ0VJVkVSX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5o IGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKaW5kZXggMjkxMjc0MTYwNzYuLjhlNWU1 ZGRhOGQ3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAorKysgYi9z cmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAtNjE3LDYgKzYxNywxOCBAQCB0eXBlZGVm IHN0cnVjdCBBc3luY1JlcXVlc3QKIAkJCQkJCQkJICogdHVwbGVzKSAqLwogfSBBc3luY1JlcXVl c3Q7CiAKKy8qIC0tLS0tLS0tLS0tLS0tLS0KKyAqIFNlc3Npb25WYXJpYWJsZVZhbHVlCisgKiAt LS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYgc3RydWN0IFNlc3Npb25WYXJpYWJsZVZhbHVl Cit7CisJT2lkCQkJdmFyaWQ7CisJT2lkCQkJdHlwaWQ7CisJYm9vbAkJaXNudWxsOworCURhdHVt CQl2YWx1ZTsKK30gU2Vzc2lvblZhcmlhYmxlVmFsdWU7CisKIC8qIC0tLS0tLS0tLS0tLS0tLS0K ICAqCSAgRVN0YXRlIGluZm9ybWF0aW9uCiAgKgpAQCAtNjY5LDYgKzY4MSwxMCBAQCB0eXBlZGVm IHN0cnVjdCBFU3RhdGUKIAlQYXJhbUxpc3RJbmZvIGVzX3BhcmFtX2xpc3RfaW5mbzsJLyogdmFs dWVzIG9mIGV4dGVybmFsIHBhcmFtcyAqLwogCVBhcmFtRXhlY0RhdGEgKmVzX3BhcmFtX2V4ZWNf dmFsczsJLyogdmFsdWVzIG9mIGludGVybmFsIHBhcmFtcyAqLwogCisJLyogU2Vzc2lvbiB2YXJp YWJsZXMgaW5mbzogKi8KKwlpbnQJCQllc19udW1fc2Vzc2lvbl92YXJpYWJsZXM7CQkvKiBudW1i ZXIgb2YgdXNlZCB2YXJpYWJsZXMgKi8KKwlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqZXNfc2Vzc2lv bl92YXJpYWJsZXM7CS8qIGFycmF5IG9mIGNvcGllcyBvZiB2YWx1ZXMgKi8KKwogCVF1ZXJ5RW52 aXJvbm1lbnQgKmVzX3F1ZXJ5RW52OwkvKiBxdWVyeSBlbnZpcm9ubWVudCAqLwogCiAJLyogT3Ro ZXIgd29ya2luZyBzdGF0ZTogKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCA2NmFlYzQ2NTQ5 OC4uYjQxN2I1NmMyYTMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMu aAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTE0Miw2ICsxNDIsOSBA QCB0eXBlZGVmIHN0cnVjdCBRdWVyeQogCSAqLwogCWludAkJCXJlc3VsdFJlbGF0aW9uIHBnX25v ZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAorCS8qIHRhcmdldCB2YXJpYWJsZSBvZiBM RVQgc3RhdGVtZW50ICovCisJT2lkCQkJcmVzdWx0VmFyaWFibGU7CisKIAkvKiBoYXMgYWdncmVn YXRlcyBpbiB0bGlzdCBvciBoYXZpbmdRdWFsICovCiAJYm9vbAkJaGFzQWdncyBwZ19ub2RlX2F0 dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogaGFzIHdpbmRvdyBmdW5jdGlvbnMgaW4gdGxp c3QgKi8KQEAgLTE2Miw2ICsxNjUsOCBAQCB0eXBlZGVmIHN0cnVjdCBRdWVyeQogCWJvb2wJCWhh c1Jvd1NlY3VyaXR5IHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiBwYXJz ZXIgaGFzIGFkZGVkIGFuIFJURV9HUk9VUCBSVEUgKi8KIAlib29sCQloYXNHcm91cFJURSBwZ19u b2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CisJLyogdXNlcyBzZXNzaW9uIHZhcmlhYmxl cyAqLworCWJvb2wJCWhhc1Nlc3Npb25WYXJpYWJsZXMgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJs ZV9pZ25vcmUpOwogCS8qIGlzIGEgUkVUVVJOIHN0YXRlbWVudCAqLwogCWJvb2wJCWlzUmV0dXJu IHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIApAQCAtMjEwMCw2ICsyMTA1LDE4 IEBAIHR5cGVkZWYgc3RydWN0IE1lcmdlU3RtdAogCVBhcnNlTG9jCXN0bXRfbGVuOwkJLyogbGVu Z3RoIGluIGJ5dGVzOyAwIG1lYW5zICJyZXN0IG9mIHN0cmluZyIgKi8KIH0gTWVyZ2VTdG10Owog CisvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgkJTGV0IFN0YXRlbWVudAorICogLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBMZXRTdG10Cit7CisJTm9kZVRh ZwkJdHlwZTsKKwlMaXN0CSAgICp0YXJnZXQ7CQkJLyogdGFyZ2V0IHZhcmlhYmxlICovCisJTm9k ZQkgICAqcXVlcnk7CQkJLyogc291cmNlIGV4cHJlc3Npb24gKi8KKwlQYXJzZUxvYwlsb2NhdGlv bjsKK30gTGV0U3RtdDsKKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJCVNlbGVjdCBT dGF0ZW1lbnQKICAqCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCBi L3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCmluZGV4IDU0ZWUxNzY5N2U1Li5iOTAxZGFj M2ZhNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKKysrIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcGF0aG5vZGVzLmgKQEAgLTE2Myw2ICsxNjMsMTUgQEAgdHlwZWRlZiBz dHJ1Y3QgUGxhbm5lckdsb2JhbAogCiAJLyogcGFydGl0aW9uIGRlc2NyaXB0b3JzICovCiAJUGFy dGl0aW9uRGlyZWN0b3J5IHBhcnRpdGlvbl9kaXJlY3RvcnkgcGdfbm9kZV9hdHRyKHJlYWRfd3Jp dGVfaWdub3JlKTsKKworCS8qIGxpc3Qgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLworCUxp c3QJICAgKnNlc3Npb25WYXJpYWJsZXM7CisKKwkvKiBvaWQgb2Ygc2Vzc2lvbiB2YXJpYWJsZSB1 c2VkIGxpa2UgYmFzZSBub2RlIGZvciBhc3NpZ25tZW50IGluZGlyZWN0aW9uICovCisJT2lkCQkJ YmFzZW5vZGVTZXNzaW9uVmFyaWQ7CisKKwkvKiB0cnVlLCBpZiB3ZSBkbyBTRUxFQ1QgcGVybWlz c2lvbiBjaGVjayBvbiBiYXNlbm9kZVNlc3Npb25WYXJpZCAqLworCWJvb2wJCWJhc2Vub2RlU2Vz c2lvblZhclNlbGVjdENoZWNrOwogfSBQbGFubmVyR2xvYmFsOwogCiAvKiBtYWNybyBmb3IgZmV0 Y2hpbmcgdGhlIFBsYW4gYXNzb2NpYXRlZCB3aXRoIGEgU3ViUGxhbiBub2RlICovCkBAIC01MDgs NiArNTE3LDggQEAgc3RydWN0IFBsYW5uZXJJbmZvCiAJYm9vbAkJcGxhY2Vob2xkZXJzRnJvemVu OwogCS8qIHRydWUgaWYgcGxhbm5pbmcgYSByZWN1cnNpdmUgV0lUSCBpdGVtICovCiAJYm9vbAkJ aGFzUmVjdXJzaW9uOworCS8qIHRydWUgaWYgc2Vzc2lvbiB2YXJpYWJsZXMgd2VyZSB1c2VkICov CisJYm9vbAkJaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCS8qCiAJICogVGhlIHJhbmdldGFibGUg aW5kZXggZm9yIHRoZSBSVEVfR1JPVVAgUlRFLCBvciAwIGlmIHRoZXJlIGlzIG5vCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3Bs YW5ub2Rlcy5oCmluZGV4IGVmOWVhN2VlOTgyLi5hNDI0NTkzYTQ2NSAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5v ZGVzLmgKQEAgLTk0LDYgKzk0LDE1IEBAIHR5cGVkZWYgc3RydWN0IFBsYW5uZWRTdG10CiAKIAlO b2RlCSAgICp1dGlsaXR5U3RtdDsJLyogbm9uLW51bGwgaWYgdGhpcyBpcyB1dGlsaXR5IHN0bXQg Ki8KIAorCUxpc3QJICAgKnNlc3Npb25WYXJpYWJsZXM7CS8qIE9JRHMgZm9yIFBBUkFNX1ZBUklB QkxFIFBhcmFtcyAqLworCisJLyoKKwkgKiBUaGUgb2lkIG9mIHNlc3Npb24gdmFyaWFibGUgZXhl Y2x1ZGVkIGZyb20gcGVybWlzc2lvbiBjaGVjay4KKwkgKiBUaGlzIHNlc3Npb24gdmFyaWFibGUg aXMgdXNlZCBhcyBiYXNlIG5vZGUgb2YgYXNzaWdubWVudCBpbmRpcmVjdGlvbgorCSAqIChhbmQg aXQgaXMgdXNlZCBvbmx5IHRoZXJlKS4KKwkgKi8KKwlpbnQJCQlleGNsU2VsZWN0UGVybUNoZWNr VmFyaWQ7CisKIAkvKiBzdGF0ZW1lbnQgbG9jYXRpb24gaW4gc291cmNlIHN0cmluZyAoY29waWVk IGZyb20gUXVlcnkpICovCiAJUGFyc2VMb2MJc3RtdF9sb2NhdGlvbjsJLyogc3RhcnQgbG9jYXRp b24sIG9yIC0xIGlmIHVua25vd24gKi8KIAlQYXJzZUxvYwlzdG10X2xlbjsJCS8qIGxlbmd0aCBp biBieXRlczsgMCBtZWFucyAicmVzdCBvZiBzdHJpbmciICovCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCmlu ZGV4IDljMjk1N2ViNTQ2Li5jMTFkMTk1ZjE4OSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9k ZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKQEAgLTM2 MSw2ICszNjEsOSBAQCB0eXBlZGVmIHN0cnVjdCBDb25zdAogICoJCQkJb2YgdGhlIGBwYXJhbWlk JyBmaWVsZCBjb250YWluIHRoZSBTdWJMaW5rJ3Mgc3ViTGlua0lkLCBhbmQKICAqCQkJCXRoZSBs b3ctb3JkZXIgMTYgYml0cyBjb250YWluIHRoZSBjb2x1bW4gbnVtYmVyLiAgKFRoaXMgdHlwZQog ICoJCQkJb2YgUGFyYW0gaXMgYWxzbyBjb252ZXJ0ZWQgdG8gUEFSQU1fRVhFQyBkdXJpbmcgcGxh bm5pbmcuKQorICoKKyAqCQlQQVJBTV9WQVJJQUJMRTogIFRoZSBwYXJhbWV0ZXIgaXMgYSByZWZl cmVuY2UgdG8gYSBzZXNzaW9uIHZhcmlhYmxlCisgKgkJCQkocGFyYW12YXJpZCBob2xkcyB0aGUg dmFyaWFibGUncyBPSUQpLgogICovCiB0eXBlZGVmIGVudW0gUGFyYW1LaW5kCiB7CkBAIC0zNjgs NiArMzcxLDcgQEAgdHlwZWRlZiBlbnVtIFBhcmFtS2luZAogCVBBUkFNX0VYRUMsCiAJUEFSQU1f U1VCTElOSywKIAlQQVJBTV9NVUxUSUVYUFIsCisJUEFSQU1fVkFSSUFCTEUsCiB9IFBhcmFtS2lu ZDsKIAogdHlwZWRlZiBzdHJ1Y3QgUGFyYW0KQEAgLTM4MCw2ICszODQsMTYgQEAgdHlwZWRlZiBz dHJ1Y3QgUGFyYW0KIAlpbnQzMgkJcGFyYW10eXBtb2QgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJs ZV9pZ25vcmUpOwogCS8qIE9JRCBvZiBjb2xsYXRpb24sIG9yIEludmFsaWRPaWQgaWYgbm9uZSAq LwogCU9pZAkJCXBhcmFtY29sbGlkIHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsK KwkvKiBPSUQgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpZiBpdCBpcyB1c2VkICovCisJT2lkCQkJcGFy YW12YXJpZCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CisKKwkvKgorCSAqIHRy dWUgaWYgcGFyYW0gaXMgdXNlZCBhcyBiYXNlIG5vZGUgb2YgYXNzaWdubWVudCBpbmRpcmVjdGlv bgorCSAqICh3aGVuIHRhcmdldCBvZiBMRVQgc3RhdGVtZW50IGlzIGFuIGFycmF5IGZpZWxkIG9y IGFuIHJlY29yZCBmaWVsZCkuCisJICogRm9yIHRoaXMgcGFyYW0gd2UgZG8gbm90IGNoZWNrIFNF TEVDVCBhY2Nlc3MgcmlnaHQsIGJlY2F1c2UgdGhpcworCSAqIHBhcmFtIGlzIHVzZWQganVzdCBm b3IgZXhlY3V0aW9uIG9mIFVQREFURSBvcGVyYXRpb24uCisJICovCisJYm9vbAkJcGFyYW1iYXNl bm9kZTsKIAkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLwogCVBhcnNlTG9j CWxvY2F0aW9uOwogfSBQYXJhbTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL29wdGltaXplci9w bGFubWFpbi5oIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWluLmgKaW5kZXggZmVlMzM3 OGJiZTMuLmU4NTUxMzIwZDE0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxh bm1haW4uaAorKysgYi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvcGxhbm1haW4uaApAQCAtMTI1LDQg KzEyNSw2IEBAIGV4dGVybiB2b2lkIHJlY29yZF9wbGFuX2Z1bmN0aW9uX2RlcGVuZGVuY3koUGxh bm5lckluZm8gKnJvb3QsIE9pZCBmdW5jaWQpOwogZXh0ZXJuIHZvaWQgcmVjb3JkX3BsYW5fdHlw ZV9kZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgdHlwaWQpOwogZXh0ZXJuIGJvb2wg ZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXNfd2Fsa2VyKE5vZGUgKm5vZGUsIFBsYW5uZXJJbmZv ICpjb250ZXh0KTsKIAorZXh0ZXJuIHZvaWQgcHVsbF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXMo UGxhbm5lckluZm8gKnJvb3QpOworCiAjZW5kaWYJCQkJCQkJLyogUExBTk1BSU5fSCAqLwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oIGIvc3JjL2luY2x1ZGUvcGFyc2Vy L2t3bGlzdC5oCmluZGV4IGMyNWFkZTY4ZjE5Li42Zjg0ZmVmZDUyNSAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3Qu aApAQCAtMjU2LDYgKzI1Niw3IEBAIFBHX0tFWVdPUkQoImxlYWRpbmciLCBMRUFESU5HLCBSRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGVha3Byb29mIiwgTEVBS1BS T09GLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZWFzdCIs IExFQVNULCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgibGVmdCIs IExFRlQsIFRZUEVfRlVOQ19OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJs ZXQiLCBMRVQsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImxl dmVsIiwgTEVWRUwsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQo Imxpa2UiLCBMSUtFLCBUWVBFX0ZVTkNfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZ V09SRCgibGltaXQiLCBMSU1JVCwgUkVTRVJWRURfS0VZV09SRCwgQVNfTEFCRUwpCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2Vy L3BhcnNlX25vZGUuaAppbmRleCAwZGU0NGQxNjZmNC4uOGI1NWY4NDBkMTAgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2Vy L3BhcnNlX25vZGUuaApAQCAtODIsNiArODIsOCBAQCB0eXBlZGVmIGVudW0gUGFyc2VFeHByS2lu ZAogCUVYUFJfS0lORF9DT1BZX1dIRVJFLAkJLyogV0hFUkUgY29uZGl0aW9uIGluIENPUFkgRlJP TSAqLwogCUVYUFJfS0lORF9HRU5FUkFURURfQ09MVU1OLCAvKiBnZW5lcmF0aW9uIGV4cHJlc3Np b24gZm9yIGEgY29sdW1uICovCiAJRVhQUl9LSU5EX0NZQ0xFX01BUkssCQkvKiBjeWNsZSBtYXJr IHZhbHVlICovCisJRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQsCS8qIFBML3BnU1FMIGFzc2lnbm1l bnQgdGFyZ2V0ICovCisJRVhQUl9LSU5EX0xFVF9UQVJHRVQsCQkvKiBMRVQgdGFyZ2V0ICovCiB9 IFBhcnNlRXhwcktpbmQ7CiAKIApAQCAtMjQ0LDYgKzI0Niw3IEBAIHN0cnVjdCBQYXJzZVN0YXRl CiAJYm9vbAkJcF9oYXNUYXJnZXRTUkZzOwogCWJvb2wJCXBfaGFzU3ViTGlua3M7CiAJYm9vbAkJ cF9oYXNNb2RpZnlpbmdDVEU7CisJYm9vbAkJcF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJTm9k ZQkgICAqcF9sYXN0X3NyZjsJCS8qIG1vc3QgcmVjZW50IHNldC1yZXR1cm5pbmcgZnVuYy9vcCBm b3VuZCAqLwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaCBiL3Ny Yy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCmluZGV4IGVhODY5NTRkZGVkLi4yMjA4MmMzMDAw OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKKysrIGIvc3JjL2lu Y2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKQEAgLTE4Niw2ICsxODYsNyBAQCBQR19DTURUQUcoQ01E VEFHX0dSQU5ULCAiR1JBTlQiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFH X0dSQU5UX1JPTEUsICJHUkFOVCBST0xFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRB RyhDTURUQUdfSU1QT1JUX0ZPUkVJR05fU0NIRU1BLCAiSU1QT1JUIEZPUkVJR04gU0NIRU1BIiwg dHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19JTlNFUlQsICJJTlNFUlQiLCBm YWxzZSwgZmFsc2UsIHRydWUpCitQR19DTURUQUcoQ01EVEFHX0xFVCwgIkxFVCIsIGZhbHNlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0xJU1RFTiwgIkxJU1RFTiIsIGZhbHNlLCBm YWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0xPQUQsICJMT0FEIiwgZmFsc2UsIGZhbHNl LCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfTE9DS19UQUJMRSwgIkxPQ0sgVEFCTEUiLCBmYWxz ZSwgZmFsc2UsIGZhbHNlKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmggYi9z cmMvaW5jbHVkZS90Y29wL2Rlc3QuaAppbmRleCAwMGMwOTJlM2Q3Yy4uNmNlM2VhMGU2MTcgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvZGVzdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3Av ZGVzdC5oCkBAIC05Nyw2ICs5Nyw3IEBAIHR5cGVkZWYgZW51bQogCURlc3RUcmFuc2llbnRSZWws CQkJLyogcmVzdWx0cyBzZW50IHRvIHRyYW5zaWVudCByZWxhdGlvbiAqLwogCURlc3RUdXBsZVF1 ZXVlLAkJCQkvKiByZXN1bHRzIHNlbnQgdG8gdHVwbGUgcXVldWUgKi8KIAlEZXN0RXhwbGFpblNl cmlhbGl6ZSwJCS8qIHJlc3VsdHMgYXJlIHNlcmlhbGl6ZWQgYW5kIGRpc2NhcmRlZCAqLworCURl c3RWYXJpYWJsZSwJCQkJLyogcmVzdWx0cyBzZW50IHRvIHNlc3Npb24gdmFyaWFibGUgKi8KIH0g Q29tbWFuZERlc3Q7CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL3NyYy9wbC9w bHBnc3FsL3NyYy9wbF9leGVjLmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4 IGU1YjBkYTA0ZTNjLi4zZjkwMWNkOGZjZCAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3Jj L3BsX2V4ZWMuYworKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCkBAIC04MDk5LDcg KzgwOTksOCBAQCBleGVjX2lzX3NpbXBsZV9xdWVyeShQTHBnU1FMX2V4cHIgKmV4cHIpCiAJCXF1 ZXJ5LT5zb3J0Q2xhdXNlIHx8CiAJCXF1ZXJ5LT5saW1pdE9mZnNldCB8fAogCQlxdWVyeS0+bGlt aXRDb3VudCB8fAotCQlxdWVyeS0+c2V0T3BlcmF0aW9ucykKKwkJcXVlcnktPnNldE9wZXJhdGlv bnMgfHwKKwkJcXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJCXJldHVybiBmYWxzZTsKIAog CS8qCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFi bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CmluZGV4IGMzNjY2MGNlNmQzLi43NzI1ODU3MGVhMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKQEAgLTQzMSwzICs0MzEsMTIyNyBAQCBE Uk9QIFZBUklBQkxFIHB1YmxpYy52YXIxOwogRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjE7 CiBEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMjsKIERST1AgUk9MRSByZWdyZXNzX3Zhcmlh YmxlX293bmVyOworLS0gY2hlY2sgYWNjZXNzIHJpZ2h0cworQ1JFQVRFIFJPTEUgcmVncmVzc19u b293bmVyOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRFIE9SIFJFUExBQ0Ug RlVOQ1RJT04gc3FsZngoaW50KQorUkVUVVJOUyBpbnQgQVMgJCQgU0VMRUNUICQxICsgdmFyMSAk JCBMQU5HVUFHRSBzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeF9zZChpbnQp CitSRVRVUk5TIGludCBBUyAkJCBTRUxFQ1QgJDEgKyB2YXIxICQkIExBTkdVQUdFIHNxbCBTRUNV UklUWSBERUZJTkVSOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4KGludCkK K1JFVFVSTlMgaW50IEFTICQkIEJFR0lOIFJFVFVSTiAkMSArIHZhcjE7IEVORCAkJCBMQU5HVUFH RSBwbHBnc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4X3NkKGludCkK K1JFVFVSTlMgaW50IEFTICQkIEJFR0lOIFJFVFVSTiAkMSArIHZhcjE7IEVORCAkJCBMQU5HVUFH RSBwbHBnc3FsIFNFQ1VSSVRZIERFRklORVI7CitMRVQgdmFyMSA9IDEwOworLS0gc2hvdWxkIGJl IG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitTRUxF Q1Qgc3FsZngoMjApOworIHNxbGZ4IAorLS0tLS0tLQorICAgIDMwCisoMSByb3cpCisKK1NFTEVD VCBzcWxmeF9zZCgyMCk7Cisgc3FsZnhfc2QgCistLS0tLS0tLS0tCisgICAgICAgMzAKKygxIHJv dykKKworU0VMRUNUIHBscGdzcWxmeCgyMCk7CisgcGxwZ3NxbGZ4IAorLS0tLS0tLS0tLS0KKyAg ICAgICAgMzAKKygxIHJvdykKKworU0VMRUNUIHBscGdzcWxmeF9zZCgyMCk7CisgcGxwZ3NxbGZ4 X3NkIAorLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMzAKKygxIHJvdykKKworLS0gc2hvdWxk IGZhaWwKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nfbm9vd25lcjsKK1NFTEVDVCB2YXIxOworRVJST1I6 ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitTRUxFQ1Qgc3Fs ZngoMjApOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2 YXIxCitDT05URVhUOiAgU1FMIGZ1bmN0aW9uICJzcWxmeCIgc3RhdGVtZW50IDEKK1NFTEVDVCBw bHBnc3FsZngoMjApOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJp YWJsZSB2YXIxCitDT05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAiJDEgKyB2YXIxIgorUEwv cGdTUUwgZnVuY3Rpb24gcGxwZ3NxbGZ4KGludGVnZXIpIGxpbmUgMSBhdCBSRVRVUk4KKy0tIHNo b3VsZCBiZSBvaworU0VMRUNUIHNxbGZ4X3NkKDIwKTsKKyBzcWxmeF9zZCAKKy0tLS0tLS0tLS0K KyAgICAgICAzMAorKDEgcm93KQorCitTRUxFQ1QgcGxwZ3NxbGZ4X3NkKDIwKTsKKyBwbHBnc3Fs Znhfc2QgCistLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAzMAorKDEgcm93KQorCitTRVQgUk9M RSBUTyBERUZBVUxUOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc19u b293bmVyOworLS0gc2hvdWxkIGJlIG9rCitTRVQgUk9MRSBUTyByZWdyZXNzX25vb3duZXI7CitT RUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitTRUxFQ1Qgc3Fs ZngoMjApOworIHNxbGZ4IAorLS0tLS0tLQorICAgIDMwCisoMSByb3cpCisKK1NFTEVDVCBwbHBn c3FsZngoMjApOworIHBscGdzcWxmeCAKKy0tLS0tLS0tLS0tCisgICAgICAgIDMwCisoMSByb3cp CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIEZVTkNU SU9OIHNxbGZ4KGludCk7CitEUk9QIEZVTkNUSU9OIHBscGdzcWxmeChpbnQpOworRFJPUCBGVU5D VElPTiBzcWxmeF9zZChpbnQpOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZnhfc2QoaW50KTsKK0RS T1AgUk9MRSByZWdyZXNzX25vb3duZXI7CistLSB1c2UgdmFyaWFibGVzIGluc2lkZSB2aWV3cwor Q1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpYzsKKy0tIHVzZSB2YXJpYWJsZXMgaW4gdmll d3MKK0NSRUFURSBWSUVXIHRlc3RfdmlldyBBUyBTRUxFQ1QgQ09BTEVTQ0UodmFyMSArIHYsIDAp IEFTIHJlc3VsdCBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDIpIGcodik7CitTRUxFQ1QgKiBGUk9N IHRlc3RfdmlldzsKKyByZXN1bHQgCistLS0tLS0tLQorICAgICAgMAorICAgICAgMAorKDIgcm93 cykKKworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisgcmVzdWx0 IAorLS0tLS0tLS0KKyAgIDQuMTQKKyAgIDUuMTQKKygyIHJvd3MpCisKKy0tIHN0YXJ0IGEgbmV3 IHNlc3Npb24KK1xjCitTRUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsKKyByZXN1bHQgCistLS0tLS0t LQorICAgICAgMAorICAgICAgMAorKDIgcm93cykKKworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNU ICogRlJPTSB0ZXN0X3ZpZXc7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgIDQuMTQKKyAgIDUuMTQK KygyIHJvd3MpCisKKy0tIHNob3VsZCBmYWlsLCBkZXBlbmRlbmN5CitEUk9QIFZBUklBQkxFIHZh cjE7CitFUlJPUjogIGNhbm5vdCBkcm9wIHNlc3Npb24gdmFyaWFibGUgdmFyMSBiZWNhdXNlIG90 aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICB2aWV3IHRlc3RfdmlldyBkZXBlbmRz IG9uIHNlc3Npb24gdmFyaWFibGUgdmFyMQorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRv IGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KKy0tIHNob3VsZCBiZSBvaworRFJPUCBW QVJJQUJMRSB2YXIxIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHZpZXcgdGVz dF92aWV3CitDUkVBVEUgVkFSSUFCTEUgdmFyMSB0ZXh0OworQ1JFQVRFIFZBUklBQkxFIHZhcjIg dGV4dDsKKy0tIHVzZSB2YXJpYWJsZXMgaW4gU1FMIGZ1bmN0aW9ucworQ1JFQVRFIE9SIFJFUExB Q0UgRlVOQ1RJT04gc3FsZngxKHZhcmNoYXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQgU0VMRUNU IHZhcjEgfHwgJywgJyB8fCAkMSAkJCBMQU5HVUFHRSBzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiBzcWxmeDIoIHZhcmNoYXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQgU0VMRUNUIHZh cjIgfHwgJywgJyB8fCAkMSAkJCBMQU5HVUFHRSBzcWw7CitMRVQgdmFyMSA9ICdzdHIxJzsKK0xF VCB2YXIyID0gJ3N0cjInOworU0VMRUNUIHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOworICAgICAg c3FsZngxICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLQorIHN0cjEsIHN0cjIsIEhlbGxvCiso MSByb3cpCisKKy0tIGlubGluaW5nIGlzIGJsb2NrZWQKK0VYUExBSU4gKENPU1RTIE9GRiwgVkVS Qk9TRSkgU0VMRUNUIHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOworICAgICAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBSZXN1bHQKKyAgIE91dHB1dDog c3FsZngxKHNxbGZ4MignSGVsbG8nOjpjaGFyYWN0ZXIgdmFyeWluZykpCisoMiByb3dzKQorCitE Uk9QIEZVTkNUSU9OIHNxbGZ4MSh2YXJjaGFyKTsKK0RST1AgRlVOQ1RJT04gc3FsZngyKHZhcmNo YXIpOworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworLS0gYWNjZXNz IGZyb20gY2FjaGVkIHBsYW5zIHNob3VsZCB3b3JrCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBu dW1lcmljOworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgbnVtZXJpYzsKK0NSRUFURSBPUiBSRVBM QUNFIEZVTkNUSU9OIHBscGdzcWxmeCgpCitSRVRVUk5TIG51bWVyaWMgQVMgJCQgQkVHSU4gUkVU VVJOIHZhcjE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVO Q1RJT04gcGxwZ3NxbGZ4MihudW1lcmljKQorUkVUVVJOUyB2b2lkIEFTICQkIEJFR0lOIExFVCB2 YXIyID0gJDE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworU0VUIHBsYW5fY2FjaGVfbW9kZSBU TyBmb3JjZV9nZW5lcmljX3BsYW47CitMRVQgdmFyMSA9IDMuMTQ7CitTRUxFQ1QgcGxwZ3NxbGZ4 KCk7CisgcGxwZ3NxbGZ4IAorLS0tLS0tLS0tLS0KKyAgICAgIDMuMTQKKygxIHJvdykKKworTEVU IHZhcjEgPSAzLjE0ICogMjsKK1NFTEVDVCBwbHBnc3FsZngoKTsKKyBwbHBnc3FsZnggCistLS0t LS0tLS0tLQorICAgICAgNi4yOAorKDEgcm93KQorCitTRUxFQ1QgcGxwZ3NxbGZ4MigxMC4wKTsK KyBwbHBnc3FsZngyIAorLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCB2YXIyOwor IHZhcjIgCistLS0tLS0KKyAxMC4wCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RS T1AgVkFSSUFCTEUgdmFyMjsKKy0tIGRlcGVuZGVuY3kgKHBsYW4gaW52YWxpZGF0aW9uKSBzaG91 bGQgd29yaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpYzsKK0NSRUFURSBWQVJJQUJM RSB2YXIyIEFTIG51bWVyaWM7CitMRVQgdmFyMSA9IDMuMTQgKiAzOworU0VMRUNUIHBscGdzcWxm eCgpOworIHBscGdzcWxmeCAKKy0tLS0tLS0tLS0tCisgICAgICA5LjQyCisoMSByb3cpCisKK0xF VCB2YXIxID0gMy4xNCAqIDQ7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CisgcGxwZ3NxbGZ4IAorLS0t LS0tLS0tLS0KKyAgICAgMTIuNTYKKygxIHJvdykKKworU0VMRUNUIHBscGdzcWxmeDIoMTAuMCk7 CisgcGxwZ3NxbGZ4MiAKKy0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgdmFyMjsK KyB2YXIyIAorLS0tLS0tCisgMTAuMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitE Uk9QIFZBUklBQkxFIHZhcjI7CitEUk9QIEZVTkNUSU9OIHBscGdzcWxmeCgpOworRFJPUCBGVU5D VElPTiBwbHBnc3FsZngyKCk7CitFUlJPUjogIGZ1bmN0aW9uIHBscGdzcWxmeDIoKSBkb2VzIG5v dCBleGlzdAorLS0gZGVwZW5kZW5jeSBvbiBjb2x1bW4gdHlwZQorQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgaW50OworQ1JFQVRFIFRBQkxFIHRlc3R2YXIoYSBpbnQsIGIgaW50LCBjIGludCk7CitJ TlNFUlQgSU5UTyB0ZXN0dmFyIFZBTFVFUygxMCwyMCwzMCk7CitBTFRFUiBUQUJMRSB0ZXN0dmFy IERST1AgQ09MVU1OIGE7CitBTFRFUiBUQUJMRSB0ZXN0dmFyIERST1AgQ09MVU1OIGI7CitDUkVB VEUgRlVOQ1RJT04gcGxwZ3NxbGZ4MygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIExF VCB2YXIxID0gKFNFTEVDVCAqIEZST00gdGVzdHZhcik7CisgIFJBSVNFIE5PVElDRSAnJScsIHZh cjE7CitFTkQKKyQkIExBTkdVQUdFIHBscGdzcWw7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBw bHBnc3FsZngzKCk7CitOT1RJQ0U6ICAzMAorIHBscGdzcWxmeDMgCistLS0tLS0tLS0tLS0KKyAK KygxIHJvdykKKworQUxURVIgVEFCTEUgdGVzdHZhciBBTFRFUiBDT0xVTU4gYyBUWVBFIG51bWVy aWM7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBwbHBnc3FsZngzKCk7CitOT1RJQ0U6ICAzMAor IHBscGdzcWxmeDMgCistLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworRFJPUCBGVU5DVElPTiBw bHBnc3FsZngzKCk7CitEUk9QIFRBQkxFIHRlc3R2YXI7CitEUk9QIFZBUklBQkxFIHZhcjE7CitT RVQgcGxhbl9jYWNoZV9tb2RlIFRPIERFRkFVTFQ7CistLSByZXBlYXRlZCBleGVjdXRpb24gc2hv dWxkIG5vdCBjcmFzaAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgaW50OworQ1JFQVRFIFRBQkxFIHRl c3R2YXIoYSBpbnQpOworSU5TRVJUIElOVE8gdGVzdHZhciBWQUxVRVMoMSk7CitETyAkJAorQkVH SU4KKyAgTEVUIHZhcjEgPSAwOworICBGT1IgaSBJTiAxLi4xMAorICBMT09QCisgICAgTEVUIHZh cjEgPSAoU0VMRUNUIGEgRlJPTSB0ZXN0dmFyKTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElD RSAnJScsIHZhcjE7CitFTkQ7CiskJDsKK05PVElDRTogIDEKK0RPICQkCitCRUdJTgorICBMRVQg dmFyMSA9IDA7CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9IChTRUxF Q1QgYSArIHZhcjEgRlJPTSB0ZXN0dmFyKTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElDRSAn JScsIHZhcjE7CitFTkQ7CiskJDsKK05PVElDRTogIDEwCitETyAkJAorQkVHSU4KKyAgTEVUIHZh cjEgPSAwOworICBGT1IgaSBJTiAxLi4xMAorICBMT09QCisgICAgTEVUIHZhcjEgPSAoU0VMRUNU IGEgRlJPTSB0ZXN0dmFyKSArIHZhcjE7CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0UgJyUn LCB2YXIxOworRU5EOworJCQ7CitOT1RJQ0U6ICAxMAorRE8gJCQKK0JFR0lOCisgIExFVCB2YXIx ID0gMDsKKyAgRk9SIGkgSU4gMS4uMTAKKyAgTE9PUAorICAgIExFVCB2YXIxID0gaTsKKyAgRU5E IExPT1A7CisgIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7CitFTkQ7CiskJDsKK05PVElDRTogIDEw CitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjEgPSAwOworICBGT1IgaSBJTiAxLi4xMAorICBMT09Q CisgICAgTEVUIHZhcjEgPSBpICsgdmFyMTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElDRSAn JScsIHZhcjE7CitFTkQ7CiskJDsKK05PVElDRTogIDU1CitEUk9QIFZBUklBQkxFIHZhcjE7CitE Uk9QIFRBQkxFIHRlc3R2YXI7CistLSB1c2FnZSBMRVQgc3RhdGVtZW50IGluIHBscGdzcWwgc2hv dWxkIHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIGludDsKK0NSRUFURSBWQVJJQUJMRSB2YXIy IG51bWVyaWNbXTsKK0RPICQkCitCRUdJTgorICBMRVQgdmFyMiA9ICd7fSc6OmludFtdOworICBG T1IgaSBJTiAxLi4xMAorICBMT09QCisgICAgTEVUIHZhcjEgPSBpOworICAgIExFVCB2YXIyW3Zh cjFdID0gaTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElDRSAncmVzdWx0IGFycmF5OiAlJywg dmFyMjsKK0VORDsKKyQkOworTk9USUNFOiAgcmVzdWx0IGFycmF5OiB7MSwyLDMsNCw1LDYsNyw4 LDksMTB9CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CistLSBDQUxM IHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVkIHlldAorLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2Vz cyB0byBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorQ1JFQVRFIFZB UklBQkxFIHYgaW50OworQ1JFQVRFIFBST0NFRFVSRSBwKGFyZyBpbnQpIEFTICQkIEJFR0lOIFJB SVNFIE5PVElDRSAnJScsIGFyZzsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7CistLSBzaG91bGQg bm90IGNyYXNoIChidXQgaXMgbm90IHN1cHBvcnRlZCB5ZXQpCitDQUxMIHAodik7CitFUlJPUjog IHNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQKK0RPICQkIEJF R0lOIENBTEwgcCh2KTsgRU5EICQkOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBi ZSB1c2VkIGFzIGFuIGFyZ3VtZW50CitDT05URVhUOiAgU1FMIHN0YXRlbWVudCAiQ0FMTCBwKHYp IgorUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IENBTEwKK0RS T1AgUFJPQ0VEVVJFIHAoaW50KTsKK0RST1AgVkFSSUFCTEUgdjsKKy0tIEVYRUNVVEUgc3RhdGVt ZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0CistLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNl c3Npb24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCitDUkVBVEUgVkFSSUFCTEUg diBpbnQ7CitMRVQgdiA9IDIwOworUFJFUEFSRSBwdGVzdChpbnQpIEFTIFNFTEVDVCAkMTsKKy0t IHNob3VsZCBmYWlsCitFWEVDVVRFIHB0ZXN0KHYpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxl IGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50CitERUFMTE9DQVRFIHB0ZXN0OworRFJPUCBW QVJJQUJMRSB2OworLS0gdGVzdCBzZWFyY2ggcGF0aAorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsK K0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIG51bWVyaWM7CistLSBzaG91bGQgZmFp bAorTEVUIHZhcjEgPSBwaSgpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJ2YXIxIiBkb2Vz bid0IGV4aXN0CitMSU5FIDE6IExFVCB2YXIxID0gcGkoKTsKKyAgICAgICAgICAgIF4KK1NFTEVD VCB2YXIxOworRVJST1I6ICBjb2x1bW4gInZhcjEiIGRvZXMgbm90IGV4aXN0CitMSU5FIDE6IFNF TEVDVCB2YXIxOworICAgICAgICAgICAgICAgXgorLS0gc2hvdWxkIGJlIG9rCitMRVQgc3ZhcnRl c3QudmFyMSA9IHBpKCk7CitTRUxFQ1Qgc3ZhcnRlc3QudmFyMTsKKyAgICAgICB2YXIxICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tCisgMy4xNDE1OTI2NTM1ODk3OQorKDEgcm93KQorCitTRVQg c2VhcmNoX3BhdGggVE8gc3ZhcnRlc3Q7CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gcGko KSArIDEwOworU0VMRUNUIHZhcjE7CisgICAgICAgdmFyMSAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLQorIDEzLjE0MTU5MjY1MzU4OTgKKygxIHJvdykKKworUkVTRVQgc2VhcmNoX3BhdGg7CitE Uk9QIFNDSEVNQSBzdmFydGVzdCBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBz ZXNzaW9uIHZhcmlhYmxlIHN2YXJ0ZXN0LnZhcjEKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRl eHQ7CistLSB2YXJpYWJsZXMgY2FuIGJlIHVwZGF0ZWQgdW5kZXIgUk8gdHJhbnNhY3Rpb24KK0JF R0lOOworU0VUIFRSQU5TQUNUSU9OIFJFQUQgT05MWTsKK0xFVCB2YXIxID0gJ2hlbGxvJzsKK0NP TU1JVDsKK1NFTEVDVCB2YXIxOworIHZhcjEgIAorLS0tLS0tLQorIGhlbGxvCisoMSByb3cpCisK K0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIHRlc3Qgb2YgZG9tYWlucworQ1JFQVRFIERPTUFJTiBp bnRfZG9tYWluIEFTIGludCBOT1QgTlVMTCBDSEVDSyAoVkFMVUUgPiAxMDApOworQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgaW50X2RvbWFpbjsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyMTsK K0VSUk9SOiAgZG9tYWluIGludF9kb21haW4gZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMKKy0t IHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDAwOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0t LS0tLQorIDEwMDAKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMTA7CitF UlJPUjogIHZhbHVlIGZvciBkb21haW4gaW50X2RvbWFpbiB2aW9sYXRlcyBjaGVjayBjb25zdHJh aW50ICJpbnRfZG9tYWluX2NoZWNrIgorLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gTlVMTDsK K0VSUk9SOiAgZG9tYWluIGludF9kb21haW4gZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMKKy0t IG5vdGUgLSBkb21haW4gZGVmYXVsdHMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0IChsaWtlIFBMcGdT UUwpCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIERPTUFJTiBpbnRfZG9tYWluOworLS0gdGhl IGV4cHJlc3Npb24gc2hvdWxkIHJlbWFpbiAidW5rbm93biIKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIGludDRtdWx0aXJhbmdlW107CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gTlVMTDsK K0xFVCB2YXIxID0gJ3sie1syLDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwxNCl9In0nOworTEVU IHZhcjFbMl0gPSAne1s1LDgpLFsxMiwxMDApfSc7CitTRUxFQ1QgdmFyMTsKKyAgICAgICAgICAg ICAgICAgIHZhcjEgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyB7IntbMiw4KSxbMTEsMTQpfSIsIntbNSw4KSxbMTIsMTAwKX0ifQor KDEgcm93KQorCistLUl0IHNob3VsZCB3b3JrIGluIHBscGdzcWwgdG9vCitETyAkJAorQkVHSU4K KyAgTEVUIHZhcjEgPSBOVUxMOworICBMRVQgdmFyMSA9ICd7IntbMiw4KSxbMTEsMTQpfSIsIntb NSw4KSxbMTIsMTQpfSJ9JzsKKyAgTEVUIHZhcjFbMl0gPSAne1s1LDgpLFsxMiwxMDApfSc7CisK KyAgUkFJU0UgTk9USUNFICclJywgdmFyMTsKK0VORDsKKyQkOworTk9USUNFOiAgeyJ7WzIsOCks WzExLDE0KX0iLCJ7WzUsOCksWzEyLDEwMCl9In0KK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFU RSBTQ0hFTUEgc3ZhcnRlc3QgQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50IENSRUFURSBUQUJM RSBmb28oYSBpbnQpOworTEVUIHN2YXJ0ZXN0LnZhcjEgPSAxMDA7CitTRUxFQ1Qgc3ZhcnRlc3Qu dmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitTRVQgc2VhcmNoX3BhdGgg dG8gcHVibGljLCBzdmFydGVzdDsKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAw CisoMSByb3cpCisKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0IENBU0NBREU7CitOT1RJQ0U6ICBkcm9w IGNhc2NhZGVzIHRvIDIgb3RoZXIgb2JqZWN0cworREVUQUlMOiAgZHJvcCBjYXNjYWRlcyB0byB0 YWJsZSBmb28KK2Ryb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBpbnRbXTsKK0xF VCB2YXIxID0gMjsKK0xFVCB2YXIyID0gJ3t9Jzo6aW50W107CitMRVQgdmFyMlt2YXIxXSA9IDA7 CitTRUxFQ1QgdmFyMjsKKyAgIHZhcjIgICAgCistLS0tLS0tLS0tLQorIFsyOjJdPXswfQorKDEg cm93KQorCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBpbnRbXTsKK0xFVCB2YXIxID0gMjsKK0xF VCB2YXIyID0gJ3t9Jzo6aW50W107CitTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisge30K KygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIyOworLS0gdGhlIExFVCBzdGF0ZW1l bnQgc2hvdWxkIGJlIGRpc2FsbG93ZWQgaW4gQ1RFCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBp bnQ7CitXSVRIIHggQVMgKExFVCB2YXIxID0gMTAwKSBTRUxFQ1QgKiBGUk9NIHg7CitFUlJPUjog IHN5bnRheCBlcnJvciBhdCBvciBuZWFyICJMRVQiCitMSU5FIDE6IFdJVEggeCBBUyAoTEVUIHZh cjEgPSAxMDApIFNFTEVDVCAqIEZST00geDsKKyAgICAgICAgICAgICAgICAgICBeCistLSBzaG91 bGQgYmUgb2sKK0xFVCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVzKDEsIDEpOworLS0gc2hvdWxkIGZh aWwKK0xFVCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVzKDEsIDIpOworRVJST1I6ICBleHByZXNzaW9u IHJldHVybmVkIG1vcmUgdGhhbiBvbmUgcm93CitMRVQgdmFyMSA9IGdlbmVyYXRlX3Nlcmllcygx LCAwKTsKK0VSUk9SOiAgZXhwcmVzc2lvbiByZXR1cm5lZCBubyByb3dzCitEUk9QIFZBUklBQkxF IHZhcjE7CistLSBjb21wb3NpdGUgdmFyaWFibGVzCitDUkVBVEUgVFlQRSBzdl94eXogQVMgKHgg aW50LCB5IGludCwgeiBudW1lcmljKDEwLDIpKTsKK0NSRUFURSBWQVJJQUJMRSB2MSBBUyBzdl94 eXo7CitDUkVBVEUgVkFSSUFCTEUgdjIgQVMgc3ZfeHl6OworTEVUIHYxID0gKDEsIDIsIDMuMTQp OworTEVUIHYyID0gKDEwLCAyMCwgMy4xNCAqIDEwKTsKKy0tIHNob3VsZCB3b3JrIHRvbyAtIHRo ZXJlIGFyZSBwcmVwYXJlZCBjYXN0cworTEVUIHYxID0gKDEsIDIsIDMpOworU0VMRUNUIHYxOwor ICAgICB2MSAgICAgCistLS0tLS0tLS0tLS0KKyAoMSwyLDMuMDApCisoMSByb3cpCisKK1NFTEVD VCB2MjsKKyAgICAgIHYyICAgICAgIAorLS0tLS0tLS0tLS0tLS0tCisgKDEwLDIwLDMxLjQwKQor KDEgcm93KQorCitTRUxFQ1QgKHYxKS4qOworIHggfCB5IHwgIHogICAKKy0tLSstLS0rLS0tLS0t CisgMSB8IDIgfCAzLjAwCisoMSByb3cpCisKK1NFTEVDVCAodjIpLio7CisgeCAgfCB5ICB8ICAg eiAgIAorLS0tLSstLS0tKy0tLS0tLS0KKyAxMCB8IDIwIHwgMzEuNDAKKygxIHJvdykKKworU0VM RUNUIHYxLnggKyB2MS56OworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorICAgICA0LjAwCisoMSBy b3cpCisKK1NFTEVDVCB2Mi54ICsgdjIuejsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyAgICA0 MS40MAorKDEgcm93KQorCistLSBhY2Nlc3MgdG8gY29tcG9zaXRlIGZpZWxkcyBzaG91bGQgYmUg c2FmZSB0b28KK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK1NFVCBST0xFIFRP IHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdjIueDsKK0VS Uk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdjIKK1NFVCBST0xF IFRPIERFRkFVTFQ7CitEUk9QIFZBUklBQkxFIHYxOworRFJPUCBWQVJJQUJMRSB2MjsKK0RST1Ag VFlQRSBzdl94eXo7CitEUk9QIFJPTEUgcmVncmVzc192YXJfdGVzdF9yb2xlOworLS0gc2hvdWxk IGZhaWwsIHdyb25nIGlkZW50aWZpZXIKK0xFVCBub2RiLm5vc2NoZW1hLm5vdmFyLm5vZmllbGQu bm9zdWJmaWVsZCA9IDEwOworRVJST1I6ICBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1h bnkgZG90dGVkIG5hbWVzKTogbm9kYi5ub3NjaGVtYS5ub3Zhci5ub2ZpZWxkLm5vc3ViZmllbGQK K0xFVCBub2RiLm5vc2NoZW1hLm5vdmFyLm5vZmllbGQgPSAxMDsKK0VSUk9SOiAgY3Jvc3MtZGF0 YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiBub2RiLm5vc2NoZW1hLm5vdmFy Lm5vZmllbGQKK0xFVCBub2RiLm5vc2NoZW1hLm5vdmFyID0gMTA7CitFUlJPUjogIGNyb3NzLWRh dGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogbm9kYi5ub3NjaGVtYS5ub3Zh cgorQ1JFQVRFIFRZUEUgdDEgQVMgKGEgaW50LCBiIG51bWVyaWMsIGMgdGV4dCk7CitDUkVBVEUg VkFSSUFCTEUgdjEgQVMgdDE7CitMRVQgdjEgPSAoMSwgcGkoKSwgJ2hlbGxvJyk7CitTRUxFQ1Qg djE7CisgICAgICAgICAgICAgdjEgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgKDEsMy4xNDE1OTI2NTM1ODk3OSxoZWxsbykKKygxIHJvdykKKworTEVUIHYxLmIg PSAxMC4yMjIyOworU0VMRUNUIHYxOworICAgICAgICB2MSAgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLQorICgxLDEwLjIyMjIsaGVsbG8pCisoMSByb3cpCisKKy0tIHNob3VsZCBmYWlsLCBh dHRyaWJ1dGUgZG9lc24ndCBleGlzdAorTEVUIHYxLnggPSAxMDsKK0VSUk9SOiAgY2Fubm90IGFz c2lnbiB0byBmaWVsZCAieCIgb2YgY29sdW1uICJ2MSIgYmVjYXVzZSB0aGVyZSBpcyBubyBzdWNo IGNvbHVtbiBpbiBkYXRhIHR5cGUgdDEKK0xJTkUgMTogTEVUIHYxLnggPSAxMDsKKyAgICAgICAg ICAgIF4KKy0tIHNob3VsZCBmYWlsLCBkb24ndCBhbGxvdyBtdWx0aSBjb2x1bW4gcXVlcnkKK0xF VCB2MSA9IChOVUxMOjp0MSkuKjsKK0VSUk9SOiAgYXNzaWdubWVudCBleHByZXNzaW9uIHJldHVy bmVkIDMgY29sdW1ucworTElORSAxOiBMRVQgdjEgPSAoTlVMTDo6dDEpLio7CisgICAgICAgICAg ICAgICAgICBeCistLSBhbGxvdyBEUk9QIG9yIEFERCBBVFRSSUJVVEUgb24gY29tcG9zaXRlIHR5 cGVzCistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUgdDEgRFJPUCBBVFRSSUJVVEUgYzsKK1NF TEVDVCB2MTsKKyAgICAgdjEgICAgICAKKy0tLS0tLS0tLS0tLS0KKyAoMSwxMC4yMjIyKQorKDEg cm93KQorCistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUgdDEgQUREIEFUVFJJQlVURSBjIGlu dDsKK1NFTEVDVCB2MTsKKyAgICAgIHYxICAgICAgCistLS0tLS0tLS0tLS0tLQorICgxLDEwLjIy MjIsKQorKDEgcm93KQorCitMRVQgdjEgPSAoMTAsIDEwLjMsIDIwKTsKK1NFTEVDVCB2MTsKKyAg ICAgIHYxICAgICAgCistLS0tLS0tLS0tLS0tLQorICgxMCwxMC4zLDIwKQorKDEgcm93KQorCist LSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUgdDEgRFJPUCBBVFRSSUJVVEUgYjsKK1NFTEVDVCB2 MTsKKyAgIHYxICAgIAorLS0tLS0tLS0tCisgKDEwLDIwKQorKDEgcm93KQorCistLSBzaG91bGQg ZmFpbCwgZGlzYWxsb3cgZGF0YSB0eXBlIGNoYW5nZQorQUxURVIgVFlQRSB0MSBBTFRFUiBBVFRS SUJVVEUgYyBUWVBFIGludDsKK0VSUk9SOiAgY2Fubm90IGFsdGVyIHR5cGUgInQxIiBiZWNhdXNl IHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52MSIgdXNlcyBpdAorRFJPUCBWQVJJQUJMRSB2MTsK K0RST1AgVFlQRSB0MTsKKy0tIHRoZSB0YWJsZSB0eXBlIGNhbiBiZSB1c2VkIGFzIGNvbXBvc2l0 ZSB0eXBlIHRvbworQ1JFQVRFIFRBQkxFIHN2YXJfdGVzdChhIGludCwgYiBudW1lcmljLCBjIGRh dGUpOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgc3Zhcl90ZXN0OworTEVUIHZhcjEgPSAoMTAs IHBpKCksICcyMDIzLTA1LTI2Jyk7CitTRUxFQ1QgdmFyMTsKKyAgICAgICAgICAgICAgIHZhcjEg ICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoMTAs My4xNDE1OTI2NTM1ODk3OSwwNS0yNi0yMDIzKQorKDEgcm93KQorCistLSBzaG91bGQgZmFpbCBk dWUgZGVwZW5kZW5jeQorQUxURVIgVEFCTEUgc3Zhcl90ZXN0IEFMVEVSIENPTFVNTiBhIFRZUEUg dGV4dDsKK0VSUk9SOiAgY2Fubm90IGFsdGVyIHRhYmxlICJzdmFyX3Rlc3QiIGJlY2F1c2Ugc2Vz c2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIHVzZXMgaXQKKy0tIHNob3VsZCBmYWlsCitEUk9Q IFRBQkxFIHN2YXJfdGVzdDsKK0VSUk9SOiAgY2Fubm90IGRyb3AgdGFibGUgc3Zhcl90ZXN0IGJl Y2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDogIHNlc3Npb24gdmFyaWFi bGUgdmFyMSBkZXBlbmRzIG9uIHR5cGUgc3Zhcl90ZXN0CitISU5UOiAgVXNlIERST1AgLi4uIENB U0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorRFJPUCBWQVJJQUJMRSB2 YXIxOworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CitDUkVBVEUgVFlQRSB2YXJ0ZXN0X3QxIEFTIChh IGludCwgYiBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFydGVzdF90MTsKK0NSRUFU RSBST0xFIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK0dSQU5UIFVQREFURSBPTiBWQVJJQUJMRSB2 YXIxIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rl c3Rfcm9sZTsKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAoMTAsIDIwKTsKK0xFVCB2YXIx LmEgPSAzMDsKK0RPICQkCitCRUdJTgorICBMRVQgdmFyMSA9ICgxMDAsIDEwMCk7CisgIExFVCB2 YXIxLmEgPSAxMDAwOworRU5EOworJCQ7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjEuYTsK K0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorU0VM RUNUIHZhcjE7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxl IHZhcjEKK0xFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5p ZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICcl JywgdmFyMTsgRU5EICQkOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2 YXJpYWJsZSB2YXIxCitDT05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAidmFyMSIKK1BML3Bn U1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQorRE8gJCQgQkVH SU4gUkFJU0UgTk9USUNFICclJywgdmFyMS5hOyBFTkQgJCQ7CitFUlJPUjogIHBlcm1pc3Npb24g ZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBleHBy ZXNzaW9uICJ2YXIxLmEiCitQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5l IDEgYXQgUkFJU0UKK0RPICQkIEJFR0lOIExFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsgRU5EICQk OworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitD T05URVhUOiAgU1FMIHN0YXRlbWVudCAiTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwIgorUEwvcGdT UUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFNRTCBzdGF0ZW1lbnQKK1NF VCBST0xFIFRPIERFRkFVTFQ7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdy ZXNzX3Zhcl90ZXN0X3JvbGU7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7Cist LSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxLmE7CisgIGEgICAKKy0tLS0tLQorIDEwMDAKKygx IHJvdykKKworU0VMRUNUIHZhcjE7CisgICAgdmFyMSAgICAKKy0tLS0tLS0tLS0tLQorICgxMDAw LDEwMCkKKygxIHJvdykKKworTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwOworRE8gJCQgQkVHSU4g UkFJU0UgTk9USUNFICclJywgdmFyMTsgRU5EICQkOworTk9USUNFOiAgKDEwMTAsMTAwKQorRE8g JCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMS5hOyBFTkQgJCQ7CitOT1RJQ0U6ICAxMDEw CitETyAkJCBCRUdJTiBMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7IEVORCAkJDsKK1NFVCBST0xF IFRPIERFRkFVTFQ7CitSRVZPS0UgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgRlJPTSByZWdyZXNz X3Zhcl90ZXN0X3JvbGU7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CistLSBz aG91bGQgZmFpbCBhZ2FpbgorU0VMRUNUIHZhcjEuYTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5p ZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorU0VMRUNUIHZhcjE7CitFUlJPUjogIHBlcm1p c3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0xFVCB2YXIxLmEgPSB2YXIx LmEgKyAxMDsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUg dmFyMQorRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMTsgRU5EICQkOworRVJST1I6 ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitDT05URVhUOiAg UEwvcGdTUUwgZXhwcmVzc2lvbiAidmFyMSIKK1BML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2Rl X2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQorRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFy MS5hOyBFTkQgJCQ7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlh YmxlIHZhcjEKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9uICJ2YXIxLmEiCitQTC9wZ1NR TCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgUkFJU0UKK0RPICQkIEJFR0lO IExFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsgRU5EICQkOworRVJST1I6ICBwZXJtaXNzaW9uIGRl bmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitDT05URVhUOiAgU1FMIHN0YXRlbWVudCAi TEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwIgorUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVf YmxvY2sgbGluZSAxIGF0IFNRTCBzdGF0ZW1lbnQKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9Q IFZBUklBQkxFIHZhcjE7CitEUk9QIFJPTEUgcmVncmVzc192YXJfdGVzdF9yb2xlOworRFJPUCBU WVBFIHZhcnRlc3RfdDE7CitDUkVBVEUgVFlQRSB2YXJ0ZXN0X3QxIEFTIChhIGludCwgYiBpbnQp OworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGV4dDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFT IHZhcnRlc3RfdDE7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjEuYTsKK0VSUk9SOiAgdmFy aWFibGUgInB1YmxpYy52YXIxIiBpcyBvZiB0eXBlICJ0ZXh0Iiwgd2hpY2ggaXMgbm90IGEgY29t cG9zaXRlIHR5cGUKK0xJTkUgMTogU0VMRUNUIHZhcjEuYTsKKyAgICAgICAgICAgICAgIF4KK1NF TEVDVCB2YXIyLmM7CitFUlJPUjogIGNvdWxkIG5vdCBpZGVudGlmeSBjb2x1bW4gImMiIGluIHZh cmlhYmxlICJwdWJsaWMudmFyMiIKK0xJTkUgMTogU0VMRUNUIHZhcjIuYzsKKyAgICAgICAgICAg ICAgIF4KK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVkFSSUFCTEUgdmFyMjsKK0RST1AgVFlQ RSB2YXJ0ZXN0X3QxOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworTEVUIHZhcjEgPSAx OworTEVUIHZhcjEgPSAnMSc7CitMRVQgdmFyMSA9IDEwLjE7CistLSBzaG91bGQgZmFpbAorTEVU IHZhcjEgPSAnMSc6Ompzb25iOworRVJST1I6ICB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIG9m IHR5cGUgaW50ZWdlciwgYnV0IGV4cHJlc3Npb24gaXMgb2YgdHlwZSBqc29uYgorTElORSAxOiBM RVQgdmFyMSA9ICcxJzo6anNvbmI7CisgICAgICAgICAgICAgICAgICAgXgorSElOVDogIFlvdSB3 aWxsIG5lZWQgdG8gcmV3cml0ZSBvciBjYXN0IHRoZSBleHByZXNzaW9uLgorLS0gc2hvdWxkIGJl IG9rCitMRVQgdmFyMSA9ICcxJzo6anNvbmI6OmludDsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFy MS54ID0gMTA7CitFUlJPUjogIGNhbm5vdCBhc3NpZ24gdG8gZmllbGQgIngiIG9mIHNlc3Npb24g dmFyaWFibGUgInB1YmxpYy52YXIxIiBiZWNhdXNlIGl0cyB0eXBlIGludGVnZXIgaXMgbm90IGEg Y29tcG9zaXRlIHR5cGUKK0xJTkUgMTogTEVUIHZhcjEueCA9IDEwOworICAgICAgICAgICAgXgor RFJPUCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIFNDSEVNQSB2YXJ0ZXN0OworQ1JFQVRFIFRZUEUg dmFydGVzdHR5cGUgQVMgKHZhcnRlc3QgaW50KTsKK0NSRUFURSBWQVJJQUJMRSB2YXJ0ZXN0LnZh cnRlc3QgQVMgdmFydGVzdHR5cGU7CitTRVQgU0VBUkNIX1BBVEggVE8gdmFydGVzdDsKKy0tIHNo b3VsZCBmYWlsCitMRVQgdmFydGVzdC52YXJ0ZXN0ID0gMTsKK0VSUk9SOiAgdGFyZ2V0ICJ2YXJ0 ZXN0LnZhcnRlc3QiIG9mIExFVCBjb21tYW5kIGlzIGFtYmlndW91cworTElORSAxOiBMRVQgdmFy dGVzdC52YXJ0ZXN0ID0gMTsKKyAgICAgICAgICAgIF4KK0RST1AgVkFSSUFCTEUgdmFydGVzdC52 YXJ0ZXN0OworRFJPUCBUWVBFIHZhcnRlc3R0eXBlOworRVJST1I6ICB0eXBlICJ2YXJ0ZXN0dHlw ZSIgZG9lcyBub3QgZXhpc3QKK0RST1AgU0NIRU1BIHZhcnRlc3Q7CitTRVQgU0VBUkNIX1BBVEgg VE8gREVGQVVMVDsKKy0tIGFycmF5cyBhcmUgc3VwcG9ydGVkCitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyBudW1lcmljW107CitMRVQgdmFyMSA9IEFSUkFZWzEuMSwyLjFdOworTEVUIHZhcjFbMV0g PSAxMC4xOworU0VMRUNUIHZhcjE7CisgICAgdmFyMSAgICAKKy0tLS0tLS0tLS0tLQorIHsxMC4x LDIuMX0KKygxIHJvdykKKworLS0gTEVUIHRhcmdldCBkb2Vzbid0IGFsbG93IHNyZiwgc2hvdWxk IGZhaWwKK0xFVCB2YXIxW2dlbmVyYXRlX3NlcmllcygxLDMpXSA9IDEwMDsKK0VSUk9SOiAgc2V0 LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIExFVAorTElORSAxOiBMRVQg dmFyMVtnZW5lcmF0ZV9zZXJpZXMoMSwzKV0gPSAxMDA7CisgICAgICAgICAgICAgICAgIF4KK0RS T1AgVkFSSUFCTEUgdmFyMTsKKy0tIGFycmF5cyBpbnNpZGUgY29tcG9zaXRlCitDUkVBVEUgVFlQ RSB0MSBBUyAoYSBudW1lcmljLCBiIG51bWVyaWNbXSk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyB0MTsKK0xFVCB2YXIxID0gKDEwLjEsIEFSUkFZWzAuMCwgMC4wXSk7CitMRVQgdmFyMS5hID0g MTAuMjsKK1NFTEVDVCB2YXIxOworICAgICAgICB2YXIxICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tCisgKDEwLjIsInswLjAsMC4wfSIpCisoMSByb3cpCisKK0xFVCB2YXIxLmJbMV0gPSAx MC4zOworU0VMRUNUIHZhcjE7CisgICAgICAgIHZhcjEgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICgxMC4yLCJ7MTAuMywwLjB9IikKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2 YXIxOworRFJPUCBUWVBFIHQxOworLS0gRW5jb3VyYWdlIHVzZSBvZiBwYXJhbGxlbCBwbGFucwor U0VUIHBhcmFsbGVsX3NldHVwX2Nvc3QgPSAwOworU0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3QgPSAw OworU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemUgPSAwOworU0VUIG1heF9wYXJhbGxl bF93b3JrZXJzX3Blcl9nYXRoZXIgPSAyOworLS0gdGVzdCBvbiBxdWVyeSB3aXRoIHdvcmtlcnMK K0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoYSBpbnQpOworSU5TRVJUIElOVE8gc3Zhcl90ZXN0IFNF TEVDVCAqIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwMCk7CitBTkFMWVpFIHN2YXJfdGVzdDsK K0NSRUFURSBWQVJJQUJMRSB6ZXJvIGludDsKK0xFVCB6ZXJvID0gMDsKKy0tIHJlc3VsdCBzaG91 bGQgYmUgMTAwCitTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHpl cm87CisgY291bnQgCistLS0tLS0tCisgICAxMDAKKygxIHJvdykKKworLS0gcGFyYWxsZWwgZXhl Y3V0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgeWV0CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBj b3VudCgqKSBGUk9NIHN2YXJfdGVzdCBXSEVSRSBhJTEwID0gemVybzsKKyAgICAgICAgICAgIFFV RVJZIFBMQU4gICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIEFnZ3JlZ2F0ZQorICAgLT4gIFNlcSBTY2FuIG9uIHN2YXJfdGVzdAorICAgICAgICAgRmls dGVyOiAoKGEgJSAxMCkgPSB6ZXJvKQorKDMgcm93cykKKworTEVUIHplcm8gPSAoU0VMRUNUIGNv dW50KCopIEZST00gc3Zhcl90ZXN0KTsKKy0tIHJlc3VsdCBzaG91bGQgYmUgMTAwMAorU0VMRUNU IHplcm87CisgemVybyAKKy0tLS0tLQorIDEwMDAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB6 ZXJvOworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CitSRVNFVCBwYXJhbGxlbF9zZXR1cF9jb3N0Owor UkVTRVQgcGFyYWxsZWxfdHVwbGVfY29zdDsKK1JFU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2Fu X3NpemU7CitSRVNFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyOworLS0gdGhlIHJl c3VsdCBvZiB2aWV3IHNob3VsZCBiZSBzYW1lIGluIHBhcmFsbGVsIG1vZGUgdG9vCitDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwOworQ1JFQVRFIFZJRVcgdmFyMXZp ZXcgQVMgU0VMRUNUIENPQUxFU0NFKHZhcjEsIDApIEFTIHJlc3VsdDsKK1NFTEVDVCAqIEZST00g dmFyMXZpZXc7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgICAgMTAKKygxIHJvdykKKworU0VUIGRl YnVnX3BhcmFsbGVsX3F1ZXJ5IFRPIG9uOworU0VMRUNUICogRlJPTSB2YXIxdmlldzsKKyByZXN1 bHQgCistLS0tLS0tLQorICAgICAxMAorKDEgcm93KQorCitTRVQgZGVidWdfcGFyYWxsZWxfcXVl cnkgVE8gb2ZmOworRFJPUCBWSUVXIHZhcjF2aWV3OworRFJPUCBWQVJJQUJMRSB2YXIxOworQ1JF QVRFIFZBUklBQkxFIHZhcmlkIGludDsKK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoaWQgaW50LCB2 IGludCk7CitMRVQgdmFyaWQgPSAxOworSU5TRVJUIElOVE8gc3Zhcl90ZXN0IFZBTFVFUyh2YXJp ZCwgMTAwKTsKK1NFTEVDVCAqIEZST00gc3Zhcl90ZXN0OworIGlkIHwgIHYgIAorLS0tLSstLS0t LQorICAxIHwgMTAwCisoMSByb3cpCisKK1VQREFURSBzdmFyX3Rlc3QgU0VUIHYgPSAyMDAgV0hF UkUgaWQgPSB2YXJpZDsKK1NFTEVDVCAqIEZST00gc3Zhcl90ZXN0OworIGlkIHwgIHYgIAorLS0t LSstLS0tLQorICAxIHwgMjAwCisoMSByb3cpCisKK0RFTEVURSBGUk9NIHN2YXJfdGVzdCBXSEVS RSBpZCA9IHZhcmlkOworU0VMRUNUICogRlJPTSBzdmFyX3Rlc3Q7CisgaWQgfCB2IAorLS0tLSst LS0KKygwIHJvd3MpCisKK0RST1AgVEFCTEUgc3Zhcl90ZXN0OworRFJPUCBWQVJJQUJMRSB2YXJp ZDsKKy0tIHZpc2liaWxpdHkgY2hlY2sKKy0tIHZhcmlhYmxlcyBzaG91bGQgYmUgc2hhZG93ZWQg YWx3YXlzCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0ZXh0OworU0VMRUNUIHZhcjEucmVsbmFt ZSBGUk9NIHBnX2NsYXNzIHZhcjEgV0hFUkUgdmFyMS5yZWxuYW1lID0gJ3BnX2NsYXNzJzsKKyBy ZWxuYW1lICAKKy0tLS0tLS0tLS0KKyBwZ19jbGFzcworKDEgcm93KQorCitEUk9QIFZBUklBQkxF IHZhcjE7CitDUkVBVEUgVEFCTEUgeHh0YWIoYXZhciBpbnQpOworSU5TRVJUIElOVE8geHh0YWIg VkFMVUVTKDMzMyk7CitDUkVBVEUgVFlQRSB4eHR5cGUgQVMgKGF2YXIgaW50KTsKK0NSRUFURSBW QVJJQUJMRSB4eHRhYiBBUyB4eHR5cGU7CitJTlNFUlQgSU5UTyB4eHRhYiBWQUxVRVMoMTApOwor LS0gaXQgaXMgYW1iaWd1b3VzLCBidXQgY29sdW1ucyBhcmUgcHJlZmVycmVkCitTRUxFQ1QgeHh0 YWIuYXZhciBGUk9NIHh4dGFiOworIGF2YXIgCistLS0tLS0KKyAgMzMzCisgICAxMAorKDIgcm93 cykKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgYXZhciBGUk9NIHh4dGFiOworIGF2YXIgCist LS0tLS0KKyAgMzMzCisgICAxMAorKDIgcm93cykKKworQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5h dmFyIEFTIGludDsKKy0tIHNob3VsZCBiZSBvaywgc2VlIHRoZSB0YWJsZQorU0VMRUNUIGF2YXIg RlJPTSB4eHRhYjsKKyBhdmFyIAorLS0tLS0tCisgIDMzMworICAgMTAKKygyIHJvd3MpCisKKy0t IHNob3VsZCBiZSBvaworU0VMRUNUIHB1YmxpYy5hdmFyIEZST00geHh0YWI7CisgYXZhciAKKy0t LS0tLQorICAgICAKKyAgICAgCisoMiByb3dzKQorCitEUk9QIFZBUklBQkxFIHh4dGFiOworU0VM RUNUIHh4dGFiLmF2YXIgRlJPTSB4eHRhYjsKKyBhdmFyIAorLS0tLS0tCisgIDMzMworICAgMTAK KygyIHJvd3MpCisKK0RST1AgVkFSSUFCTEUgcHVibGljLmF2YXI7CitEUk9QIFRZUEUgeHh0eXBl OworRFJPUCBUQUJMRSB4eHRhYjsKKy0tIFRoZSB2YXJpYWJsZSBjYW4gYmUgc2hhZG93ZWQgYnkg dGFibGUgb3IgYnkgYWxpYXMKK0NSRUFURSBUWVBFIHB1YmxpYy5zdmFyX3R5cGUgQVMgKGEgaW50 LCBiIGludCwgYyBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5zdmFyIEFTIHB1YmxpYy5z dmFyX3R5cGU7CitDUkVBVEUgVEFCTEUgcHVibGljLnN2YXIoYSBpbnQsIGIgaW50KTsKK0lOU0VS VCBJTlRPIHB1YmxpYy5zdmFyIFZBTFVFUygxMCwgMjApOworTEVUIHB1YmxpYy5zdmFyID0gKDEw MCwgMjAwLCAzMDApOworLS0gc2hvdWxkIGJlIG9rCistLSBzaG93IHRhYmxlCitTRUxFQ1QgKiBG Uk9NIHB1YmxpYy5zdmFyOworIGEgIHwgYiAgCistLS0tKy0tLS0KKyAxMCB8IDIwCisoMSByb3cp CisKK1NFTEVDVCBzdmFyLmEgRlJPTSBwdWJsaWMuc3ZhcjsKKyBhICAKKy0tLS0KKyAxMAorKDEg cm93KQorCitTRUxFQ1Qgc3Zhci4qIEZST00gcHVibGljLnN2YXI7CisgYSAgfCBiICAKKy0tLS0r LS0tLQorIDEwIHwgMjAKKygxIHJvdykKKworLS0gc2hvdyB2YXJpYWJsZQorU0VMRUNUIHB1Ymxp Yy5zdmFyOworICAgICBzdmFyICAgICAgCistLS0tLS0tLS0tLS0tLS0KKyAoMTAwLDIwMCwzMDAp CisoMSByb3cpCisKK1NFTEVDVCBwdWJsaWMuc3Zhci5jOworICBjICAKKy0tLS0tCisgMzAwCiso MSByb3cpCisKK1NFTEVDVCAocHVibGljLnN2YXIpLio7CisgIGEgIHwgIGIgIHwgIGMgIAorLS0t LS0rLS0tLS0rLS0tLS0KKyAxMDAgfCAyMDAgfCAzMDAKKygxIHJvdykKKworLS0gdGhlIHZhcmlh YmxlIGlzIHNoYWRvd2VkLCByYWlzZSBlcnJvcgorU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBw dWJsaWMuc3ZhcjsKK0VSUk9SOiAgY29sdW1uIHN2YXIuYyBkb2VzIG5vdCBleGlzdAorTElORSAx OiBTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworICAgICAgICAgICAgICAg XgorLS0gY2FuIGJlIGZpeGVkIGJ5IGFsaWFzCitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1 YmxpYy5zdmFyIHg7CisgIGMgIAorLS0tLS0KKyAzMDAKKygxIHJvdykKKworU0VMRUNUIHN2YXIu YSBGUk9NIHB1YmxpYy5zdmFyOworIGEgIAorLS0tLQorIDEwCisoMSByb3cpCisKK1NFTEVDVCBz dmFyLiogRlJPTSBwdWJsaWMuc3ZhcjsKKyBhICB8IGIgIAorLS0tLSstLS0tCisgMTAgfCAyMAor KDEgcm93KQorCistLSBzaG93IHZhcmlhYmxlCitTRUxFQ1QgcHVibGljLnN2YXI7CisgICAgIHN2 YXIgICAgICAKKy0tLS0tLS0tLS0tLS0tLQorICgxMDAsMjAwLDMwMCkKKygxIHJvdykKKworU0VM RUNUIHB1YmxpYy5zdmFyLmM7CisgIGMgIAorLS0tLS0KKyAzMDAKKygxIHJvdykKKworU0VMRUNU IChwdWJsaWMuc3ZhcikuKjsKKyAgYSAgfCAgYiAgfCAgYyAgCistLS0tLSstLS0tLSstLS0tLQor IDEwMCB8IDIwMCB8IDMwMAorKDEgcm93KQorCistLSB0aGUgdmFyaWFibGUgaXMgc2hhZG93ZWQs IHJhaXNlIGVycm9yCitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworRVJS T1I6ICBjb2x1bW4gc3Zhci5jIGRvZXMgbm90IGV4aXN0CitMSU5FIDE6IFNFTEVDVCBwdWJsaWMu c3Zhci5jIEZST00gcHVibGljLnN2YXI7CisgICAgICAgICAgICAgICBeCistLSBjYW4gYmUgZml4 ZWQgYnkgYWxpYXMKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXIgeDsKKyAg YyAgCistLS0tLQorIDMwMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHB1YmxpYy5zdmFyOwor RFJPUCBUQUJMRSBwdWJsaWMuc3ZhcjsKK0RST1AgVFlQRSBwdWJsaWMuc3Zhcl90eXBlOworLS0g VGhlIHNlcXVlbmNlIGlkZW50LiogY2Fubm90IGJlIHVzZWQgYnkgcmVmZXJlbmNlIHRvIHNlc3Np b24gdmFyaWFibGUsCistLSBhbmQgaW4gdGhpcyBjYXNlLCB0aGVyZSBpcyBub3QgY29sbGlzaW9u CitDUkVBVEUgU0NIRU1BIHZhcnRlc3Q7CitTRVQgU0VBUkNIX1BBVEggVE8gdmFydGVzdDsKK0NS RUFURSBUQUJMRSB2YXJ0ZXN0X2ZvbyhhIGludCwgYiBpbnQpOworSU5TRVJUIElOVE8gdmFydGVz dF9mb28gVkFMVUVTKDEwLDIwKSwgKDMwLDQwKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZh cnRlc3RfZm9vOworTEVUIHZhcjEgPSAoMTAwLDIwMCk7CistLSBzaG91bGQgdG8gZmFpbAorU0VM RUNUIHZhcjEuKiBGUk9NIHZhcnRlc3RfZm9vOworRVJST1I6ICBtaXNzaW5nIEZST00tY2xhdXNl IGVudHJ5IGZvciB0YWJsZSAidmFyMSIKK0xJTkUgMTogU0VMRUNUIHZhcjEuKiBGUk9NIHZhcnRl c3RfZm9vOworICAgICAgICAgICAgICAgXgorLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMS4q IEZST00gdmFydGVzdF9mb28gdmFyMTsKKyBhICB8IGIgIAorLS0tLSstLS0tCisgMTAgfCAyMAor IDMwIHwgNDAKKygyIHJvd3MpCisKKy0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgY291bnQodmFy MS4qKSBGUk9NIHZhcnRlc3RfZm9vOworRVJST1I6ICBtaXNzaW5nIEZST00tY2xhdXNlIGVudHJ5 IGZvciB0YWJsZSAidmFyMSIKK0xJTkUgMTogU0VMRUNUIGNvdW50KHZhcjEuKikgRlJPTSB2YXJ0 ZXN0X2ZvbzsKKyAgICAgICAgICAgICAgICAgICAgIF4KKy0tIHNob3VsZCBiZSBvaworU0VMRUNU IGNvdW50KHZhcjEuKikgRlJPTSB2YXJ0ZXN0X2ZvbyB2YXIxOworIGNvdW50IAorLS0tLS0tLQor ICAgICAyCisoMSByb3cpCisKK1NFVCBTRUFSQ0hfUEFUSCBUTyBERUZBVUxUOworRFJPUCBTQ0hF TUEgdmFydGVzdCBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAyIG90aGVyIG9i amVjdHMKK0RFVEFJTDogIGRyb3AgY2FzY2FkZXMgdG8gdGFibGUgdmFydGVzdC52YXJ0ZXN0X2Zv bworZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlhYmxlIHZhcnRlc3QudmFyMQorQ1JFQVRF IFRZUEUgYWIgQVMgKGEgaW50ZWdlciwgYiBpbnRlZ2VyKTsKK0NSRUFURSBWQVJJQUJMRSB2X2Fi IEFTIGFiOworQ1JFQVRFIFRBQkxFIHZfYWIgKGEgaW50ZWdlciwgYiBpbnRlZ2VyKTsKK0lOU0VS VCBJTlRPIHZfYWIgVkFMVUVTKDEwLDIwKTsKKy0tIHdlIHNob3VsZCBzZWUgdGFibGUKK1NFTEVD VCB2X2FiLmEgRlJPTSB2X2FiOworIGEgIAorLS0tLQorIDEwCisoMSByb3cpCisKK0NSRUFURSBT Q0hFTUEgdl9hYjsKK0NSRUFURSBWQVJJQUJMRSB2X2FiLmEgQVMgaW50ZWdlcjsKKy0tIHdlIHNo b3VsZCBzZWUgdGFibGUKK1NFTEVDVCB2X2FiLmEgRlJPTSB2X2FiOworIGEgIAorLS0tLQorIDEw CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdl9hYjsKK0RST1AgVEFCTEUgdl9hYjsKK0RST1Ag VFlQRSBhYjsKK0RST1AgVkFSSUFCTEUgdl9hYi5hOworRFJPUCBTQ0hFTUEgdl9hYjsKK0NSRUFU RSBUWVBFIHRfYW1fdHlwZSBBUyAoYiBpbnQpOworQ1JFQVRFIFNDSEVNQSB4eHhfYW07CitTRVQg c2VhcmNoX3BhdGggVE8gcHVibGljOworQ1JFQVRFIFZBUklBQkxFIHh4eF9hbSBBUyB0X2FtX3R5 cGU7CitMRVQgeHh4X2FtID0gUk9XKDEwKTsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHh4eF9h bTsKKyB4eHhfYW0gCistLS0tLS0tLQorICgxMCkKKygxIHJvdykKKworQ1JFQVRFIFZBUklBQkxF IHh4eF9hbS5iIEFTIGludDsKK0xFVCA6IkRCTkFNRSIueHh4X2FtLmIgPSAyMDsKKy0tIHNob3Vs ZCBiZSBzdGlsbCBvaworU0VMRUNUIHh4eF9hbTsKKyB4eHhfYW0gCistLS0tLS0tLQorICgxMCkK KygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwsIHRoZSByZWZlcmVuY2Ugc2hvdWxkIGJlIGFtYmln dW91cworU0VMRUNUIHh4eF9hbS5iOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5j ZSAieHh4X2FtLmIiIGlzIGFtYmlndW91cworTElORSAxOiBTRUxFQ1QgeHh4X2FtLmI7CisgICAg ICAgICAgICAgICBeCistLSBlbmhhbmNlZCByZWZlcmVuY2VzIHNob3VsZCBiZSBvaworU0VMRUNU IHB1YmxpYy54eHhfYW0uYjsKKyBiICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitTRUxFQ1QgOiJE Qk5BTUUiLnh4eF9hbS5iOworIGIgIAorLS0tLQorIDIwCisoMSByb3cpCisKK0NSRUFURSBUQUJM RSB4eHhfYW0oYiAgaW50KTsKK0lOU0VSVCBJTlRPIHh4eF9hbSBWQUxVRVMoMTApOworLS0gd2Ug c2hvdWxkIHNlZSB0YWJsZQorU0VMRUNUIHh4eF9hbS5iIEZST00geHh4X2FtOworIGIgIAorLS0t LQorIDEwCisoMSByb3cpCisKK1NFTEVDVCB4LmIgRlJPTSB4eHhfYW0geDsKKyBiICAKKy0tLS0K KyAxMAorKDEgcm93KQorCitEUk9QIFRBQkxFIHh4eF9hbTsKK0RST1AgVkFSSUFCTEUgcHVibGlj Lnh4eF9hbTsKK0RST1AgVkFSSUFCTEUgeHh4X2FtLmI7CitEUk9QIFNDSEVNQSB4eHhfYW07CitD UkVBVEUgU0NIRU1BIDoiREJOQU1FIjsKK0NSRUFURSBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5B TUUiLjoiREJOQU1FIiBBUyB0X2FtX3R5cGU7CitDUkVBVEUgVkFSSUFCTEUgOiJEQk5BTUUiLjoi REJOQU1FIi5iIEFTIGludDsKK1NFVCBzZWFyY2hfcGF0aCBUTyA6IkRCTkFNRSI7CistLSBzaG91 bGQgYmUgYW1iaWd1b3VzCitTRUxFQ1QgOiJEQk5BTUUiLmI7CitFUlJPUjogIHNlc3Npb24gdmFy aWFibGUgcmVmZXJlbmNlICJyZWdyZXNzaW9uLmIiIGlzIGFtYmlndW91cworTElORSAxOiBTRUxF Q1QgInJlZ3Jlc3Npb24iLmI7CisgICAgICAgICAgICAgICBeCistLSBzaG91bGQgYmUgYW1iaWd1 b3VzIHRvbworU0VMRUNUIDoiREJOQU1FIi46IkRCTkFNRSIuYjsKK0VSUk9SOiAgc2Vzc2lvbiB2 YXJpYWJsZSByZWZlcmVuY2UgInJlZ3Jlc3Npb24ucmVncmVzc2lvbi5iIiBpcyBhbWJpZ3VvdXMK K0xJTkUgMTogU0VMRUNUICJyZWdyZXNzaW9uIi4icmVncmVzc2lvbiIuYjsKKyAgICAgICAgICAg ICAgIF4KK0NSRUFURSBUQUJMRSA6IkRCTkFNRSIoYiBpbnQpOworLS0gc2hvdWxkIGJlIG9rCitT RUxFQ1QgOiJEQk5BTUUiLmIgRlJPTSA6IkRCTkFNRSI7CisgYiAKKy0tLQorKDAgcm93cykKKwor RFJPUCBUQUJMRSA6IkRCTkFNRSI7CitEUk9QIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIu YjsKK0RST1AgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi46IkRCTkFNRSI7CitEUk9QIFND SEVNQSA6IkRCTkFNRSI7CitSRVNFVCBzZWFyY2hfcGF0aDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCBlZWIwZjk0Y2EzYy4uYmE1MWMxODU4OWMgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTI5NSwzICsy OTUsODgwIEBAIERST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IxOwogRFJPUCBST0xFIHJlZ3Jl c3NfdmFyaWFibGVfcjI7CiAKIERST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworCist LSBjaGVjayBhY2Nlc3MgcmlnaHRzCitDUkVBVEUgUk9MRSByZWdyZXNzX25vb3duZXI7CisKK0NS RUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04g c3FsZngoaW50KQorUkVUVVJOUyBpbnQgQVMgJCQgU0VMRUNUICQxICsgdmFyMSAkJCBMQU5HVUFH RSBzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4X3NkKGludCkKK1JFVFVS TlMgaW50IEFTICQkIFNFTEVDVCAkMSArIHZhcjEgJCQgTEFOR1VBR0Ugc3FsIFNFQ1VSSVRZIERF RklORVI7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHBscGdzcWxmeChpbnQpCitSRVRV Uk5TIGludCBBUyAkJCBCRUdJTiBSRVRVUk4gJDEgKyB2YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxw Z3NxbDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gcGxwZ3NxbGZ4X3NkKGludCkKK1JF VFVSTlMgaW50IEFTICQkIEJFR0lOIFJFVFVSTiAkMSArIHZhcjE7IEVORCAkJCBMQU5HVUFHRSBw bHBnc3FsIFNFQ1VSSVRZIERFRklORVI7CisKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgYmUg b2sKK1NFTEVDVCB2YXIxOworU0VMRUNUIHNxbGZ4KDIwKTsKK1NFTEVDVCBzcWxmeF9zZCgyMCk7 CitTRUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKK1NFTEVDVCBwbHBnc3FsZnhfc2QoMjApOworCistLSBz aG91bGQgZmFpbAorU0VUIFJPTEUgVE8gcmVncmVzc19ub293bmVyOworCitTRUxFQ1QgdmFyMTsK K1NFTEVDVCBzcWxmeCgyMCk7CitTRUxFQ1QgcGxwZ3NxbGZ4KDIwKTsKKworLS0gc2hvdWxkIGJl IG9rCitTRUxFQ1Qgc3FsZnhfc2QoMjApOworU0VMRUNUIHBscGdzcWxmeF9zZCgyMCk7CisKK1NF VCBST0xFIFRPIERFRkFVTFQ7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdy ZXNzX25vb3duZXI7CisKKy0tIHNob3VsZCBiZSBvaworU0VUIFJPTEUgVE8gcmVncmVzc19ub293 bmVyOworCitTRUxFQ1QgdmFyMTsKK1NFTEVDVCBzcWxmeCgyMCk7CitTRUxFQ1QgcGxwZ3NxbGZ4 KDIwKTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1Ag RlVOQ1RJT04gc3FsZngoaW50KTsKK0RST1AgRlVOQ1RJT04gcGxwZ3NxbGZ4KGludCk7CitEUk9Q IEZVTkNUSU9OIHNxbGZ4X3NkKGludCk7CitEUk9QIEZVTkNUSU9OIHBscGdzcWxmeF9zZChpbnQp OworCitEUk9QIFJPTEUgcmVncmVzc19ub293bmVyOworCistLSB1c2UgdmFyaWFibGVzIGluc2lk ZSB2aWV3cworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgbnVtZXJpYzsKKworLS0gdXNlIHZhcmlh YmxlcyBpbiB2aWV3cworQ1JFQVRFIFZJRVcgdGVzdF92aWV3IEFTIFNFTEVDVCBDT0FMRVNDRSh2 YXIxICsgdiwgMCkgQVMgcmVzdWx0IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMikgZyh2KTsKK1NF TEVDVCAqIEZST00gdGVzdF92aWV3OworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUICogRlJPTSB0 ZXN0X3ZpZXc7CisKKy0tIHN0YXJ0IGEgbmV3IHNlc3Npb24KK1xjCisKK1NFTEVDVCAqIEZST00g dGVzdF92aWV3OworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisK Ky0tIHNob3VsZCBmYWlsLCBkZXBlbmRlbmN5CitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHNo b3VsZCBiZSBvaworRFJPUCBWQVJJQUJMRSB2YXIxIENBU0NBREU7CisKK0NSRUFURSBWQVJJQUJM RSB2YXIxIHRleHQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiB0ZXh0OworCistLSB1c2UgdmFyaWFi bGVzIGluIFNRTCBmdW5jdGlvbnMKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4MSh2 YXJjaGFyKQorUkVUVVJOUyB2YXJjaGFyIEFTICQkIFNFTEVDVCB2YXIxIHx8ICcsICcgfHwgJDEg JCQgTEFOR1VBR0Ugc3FsOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeDIoIHZh cmNoYXIpCitSRVRVUk5TIHZhcmNoYXIgQVMgJCQgU0VMRUNUIHZhcjIgfHwgJywgJyB8fCAkMSAk JCBMQU5HVUFHRSBzcWw7CisKK0xFVCB2YXIxID0gJ3N0cjEnOworTEVUIHZhcjIgPSAnc3RyMic7 CisKK1NFTEVDVCBzcWxmeDEoc3FsZngyKCdIZWxsbycpKTsKKworLS0gaW5saW5pbmcgaXMgYmxv Y2tlZAorRVhQTEFJTiAoQ09TVFMgT0ZGLCBWRVJCT1NFKSBTRUxFQ1Qgc3FsZngxKHNxbGZ4Mign SGVsbG8nKSk7CisKK0RST1AgRlVOQ1RJT04gc3FsZngxKHZhcmNoYXIpOworRFJPUCBGVU5DVElP TiBzcWxmeDIodmFyY2hhcik7CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZBUklBQkxFIHZh cjI7CisKKy0tIGFjY2VzcyBmcm9tIGNhY2hlZCBwbGFucyBzaG91bGQgd29yaworQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgbnVtZXJpYzsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIG51bWVyaWM7 CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHBscGdzcWxmeCgpCitSRVRVUk5TIG51bWVy aWMgQVMgJCQgQkVHSU4gUkVUVVJOIHZhcjE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworCitD UkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBwbHBnc3FsZngyKG51bWVyaWMpCitSRVRVUk5TIHZv aWQgQVMgJCQgQkVHSU4gTEVUIHZhcjIgPSAkMTsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7CisK K1NFVCBwbGFuX2NhY2hlX21vZGUgVE8gZm9yY2VfZ2VuZXJpY19wbGFuOworCitMRVQgdmFyMSA9 IDMuMTQ7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CitMRVQgdmFyMSA9IDMuMTQgKiAyOworU0VMRUNU IHBscGdzcWxmeCgpOworCitTRUxFQ1QgcGxwZ3NxbGZ4MigxMC4wKTsKK1NFTEVDVCB2YXIyOwor CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CisKKy0tIGRlcGVuZGVu Y3kgKHBsYW4gaW52YWxpZGF0aW9uKSBzaG91bGQgd29yaworQ1JFQVRFIFZBUklBQkxFIHZhcjEg QVMgbnVtZXJpYzsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIG51bWVyaWM7CisKK0xFVCB2YXIx ID0gMy4xNCAqIDM7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CitMRVQgdmFyMSA9IDMuMTQgKiA0Owor U0VMRUNUIHBscGdzcWxmeCgpOworCitTRUxFQ1QgcGxwZ3NxbGZ4MigxMC4wKTsKK1NFTEVDVCB2 YXIyOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFZBUklBQkxFIHZhcjI7CitEUk9QIEZV TkNUSU9OIHBscGdzcWxmeCgpOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngyKCk7CisKKy0tIGRl cGVuZGVuY3kgb24gY29sdW1uIHR5cGUKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NS RUFURSBUQUJMRSB0ZXN0dmFyKGEgaW50LCBiIGludCwgYyBpbnQpOworSU5TRVJUIElOVE8gdGVz dHZhciBWQUxVRVMoMTAsMjAsMzApOworCitBTFRFUiBUQUJMRSB0ZXN0dmFyIERST1AgQ09MVU1O IGE7CitBTFRFUiBUQUJMRSB0ZXN0dmFyIERST1AgQ09MVU1OIGI7CisKK0NSRUFURSBGVU5DVElP TiBwbHBnc3FsZngzKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgTEVUIHZhcjEgPSAo U0VMRUNUICogRlJPTSB0ZXN0dmFyKTsKKyAgUkFJU0UgTk9USUNFICclJywgdmFyMTsKK0VORAor JCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgcGxwZ3NxbGZ4 MygpOworCitBTFRFUiBUQUJMRSB0ZXN0dmFyIEFMVEVSIENPTFVNTiBjIFRZUEUgbnVtZXJpYzsK KworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgcGxwZ3NxbGZ4MygpOworCitEUk9QIEZVTkNUSU9O IHBscGdzcWxmeDMoKTsKK0RST1AgVEFCTEUgdGVzdHZhcjsKK0RST1AgVkFSSUFCTEUgdmFyMTsK KworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBERUZBVUxUOworCistLSByZXBlYXRlZCBleGVjdXRp b24gc2hvdWxkIG5vdCBjcmFzaAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgaW50OworQ1JFQVRFIFRB QkxFIHRlc3R2YXIoYSBpbnQpOworSU5TRVJUIElOVE8gdGVzdHZhciBWQUxVRVMoMSk7CisKK0RP ICQkCitCRUdJTgorICBMRVQgdmFyMSA9IDA7CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAg ICBMRVQgdmFyMSA9IChTRUxFQ1QgYSBGUk9NIHRlc3R2YXIpOworICBFTkQgTE9PUDsKKyAgUkFJ U0UgTk9USUNFICclJywgdmFyMTsKK0VORDsKKyQkOworCitETyAkJAorQkVHSU4KKyAgTEVUIHZh cjEgPSAwOworICBGT1IgaSBJTiAxLi4xMAorICBMT09QCisgICAgTEVUIHZhcjEgPSAoU0VMRUNU IGEgKyB2YXIxIEZST00gdGVzdHZhcik7CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0UgJyUn LCB2YXIxOworRU5EOworJCQ7CisKK0RPICQkCitCRUdJTgorICBMRVQgdmFyMSA9IDA7CisgIEZP UiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9IChTRUxFQ1QgYSBGUk9NIHRlc3R2 YXIpICsgdmFyMTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7CitFTkQ7 CiskJDsKKworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gMDsKKyAgRk9SIGkgSU4gMS4uMTAK KyAgTE9PUAorICAgIExFVCB2YXIxID0gaTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElDRSAn JScsIHZhcjE7CitFTkQ7CiskJDsKKworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gMDsKKyAg Rk9SIGkgSU4gMS4uMTAKKyAgTE9PUAorICAgIExFVCB2YXIxID0gaSArIHZhcjE7CisgIEVORCBM T09QOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CisKK0RST1AgVkFSSUFC TEUgdmFyMTsKK0RST1AgVEFCTEUgdGVzdHZhcjsKKworLS0gdXNhZ2UgTEVUIHN0YXRlbWVudCBp biBwbHBnc3FsIHNob3VsZCB3b3JrCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBpbnQ7CitDUkVBVEUg VkFSSUFCTEUgdmFyMiBudW1lcmljW107CisKK0RPICQkCitCRUdJTgorICBMRVQgdmFyMiA9ICd7 fSc6OmludFtdOworICBGT1IgaSBJTiAxLi4xMAorICBMT09QCisgICAgTEVUIHZhcjEgPSBpOwor ICAgIExFVCB2YXIyW3ZhcjFdID0gaTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElDRSAncmVz dWx0IGFycmF5OiAlJywgdmFyMjsKK0VORDsKKyQkOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitE Uk9QIFZBUklBQkxFIHZhcjI7CisKKy0tIENBTEwgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQg eWV0CistLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24gdmFyaWFibGUgZnJvbSBl eHByZXNzaW9uIGV4ZWN1dG9yCitDUkVBVEUgVkFSSUFCTEUgdiBpbnQ7CisKK0NSRUFURSBQUk9D RURVUkUgcChhcmcgaW50KSBBUyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCBhcmc7IEVORCAk JCBMQU5HVUFHRSBwbHBnc3FsOworCistLSBzaG91bGQgbm90IGNyYXNoIChidXQgaXMgbm90IHN1 cHBvcnRlZCB5ZXQpCitDQUxMIHAodik7CisKK0RPICQkIEJFR0lOIENBTEwgcCh2KTsgRU5EICQk OworCitEUk9QIFBST0NFRFVSRSBwKGludCk7CitEUk9QIFZBUklBQkxFIHY7CisKKy0tIEVYRUNV VEUgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0CistLSByZXF1aXJlcyBkaXJlY3QgYWNj ZXNzIHRvIHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCitDUkVBVEUg VkFSSUFCTEUgdiBpbnQ7CitMRVQgdiA9IDIwOworUFJFUEFSRSBwdGVzdChpbnQpIEFTIFNFTEVD VCAkMTsKKworLS0gc2hvdWxkIGZhaWwKK0VYRUNVVEUgcHRlc3Qodik7CisKK0RFQUxMT0NBVEUg cHRlc3Q7CitEUk9QIFZBUklBQkxFIHY7CisKKy0tIHRlc3Qgc2VhcmNoIHBhdGgKK0NSRUFURSBT Q0hFTUEgc3ZhcnRlc3Q7CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBudW1lcmlj OworCistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSBwaSgpOworU0VMRUNUIHZhcjE7CisKKy0t IHNob3VsZCBiZSBvaworTEVUIHN2YXJ0ZXN0LnZhcjEgPSBwaSgpOworU0VMRUNUIHN2YXJ0ZXN0 LnZhcjE7CisKK1NFVCBzZWFyY2hfcGF0aCBUTyBzdmFydGVzdDsKKworLS0gc2hvdWxkIGJlIG9r CitMRVQgdmFyMSA9IHBpKCkgKyAxMDsKK1NFTEVDVCB2YXIxOworCitSRVNFVCBzZWFyY2hfcGF0 aDsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0IENBU0NBREU7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIHRleHQ7CisKKy0tIHZhcmlhYmxlcyBjYW4gYmUgdXBkYXRlZCB1bmRlciBSTyB0cmFuc2Fj dGlvbgorQkVHSU47CitTRVQgVFJBTlNBQ1RJT04gUkVBRCBPTkxZOworTEVUIHZhcjEgPSAnaGVs bG8nOworQ09NTUlUOworCitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCist LSB0ZXN0IG9mIGRvbWFpbnMKK0NSRUFURSBET01BSU4gaW50X2RvbWFpbiBBUyBpbnQgTk9UIE5V TEwgQ0hFQ0sgKFZBTFVFID4gMTAwKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludF9kb21h aW47CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxkIGJlIG9rCitM RVQgdmFyMSA9IDEwMDA7CitTRUxFQ1QgdmFyMTsKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIx ID0gMTA7CisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IE5VTEw7CisKKy0tIG5vdGUgLSBk b21haW4gZGVmYXVsdHMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0IChsaWtlIFBMcGdTUUwpCisKK0RS T1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRE9NQUlOIGludF9kb21haW47CisKKy0tIHRoZSBleHBy ZXNzaW9uIHNob3VsZCByZW1haW4gInVua25vd24iCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBp bnQ0bXVsdGlyYW5nZVtdOworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IE5VTEw7CitMRVQg dmFyMSA9ICd7IntbMiw4KSxbMTEsMTQpfSIsIntbNSw4KSxbMTIsMTQpfSJ9JzsKK0xFVCB2YXIx WzJdID0gJ3tbNSw4KSxbMTIsMTAwKX0nOworU0VMRUNUIHZhcjE7CisKKy0tSXQgc2hvdWxkIHdv cmsgaW4gcGxwZ3NxbCB0b28KK0RPICQkCitCRUdJTgorICBMRVQgdmFyMSA9IE5VTEw7CisgIExF VCB2YXIxID0gJ3sie1syLDgpLFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwxNCl9In0nOworICBMRVQg dmFyMVsyXSA9ICd7WzUsOCksWzEyLDEwMCl9JzsKKworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIx OworRU5EOworJCQ7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIFNDSEVNQSBzdmFy dGVzdCBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgQ1JFQVRFIFRBQkxFIGZvbyhhIGludCk7 CitMRVQgc3ZhcnRlc3QudmFyMSA9IDEwMDsKK1NFTEVDVCBzdmFydGVzdC52YXIxOworCitTRVQg c2VhcmNoX3BhdGggdG8gcHVibGljLCBzdmFydGVzdDsKKworU0VMRUNUIHZhcjE7CisKK0RST1Ag U0NIRU1BIHN2YXJ0ZXN0IENBU0NBREU7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsK K0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGludFtdOworCitMRVQgdmFyMSA9IDI7CitMRVQgdmFy MiA9ICd7fSc6OmludFtdOworCitMRVQgdmFyMlt2YXIxXSA9IDA7CisKK1NFTEVDVCB2YXIyOwor CitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGlu dDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGludFtdOworCitMRVQgdmFyMSA9IDI7CitMRVQg dmFyMiA9ICd7fSc6OmludFtdOworCitTRUxFQ1QgdmFyMjsKKworRFJPUCBWQVJJQUJMRSB2YXIx LCB2YXIyOworCistLSB0aGUgTEVUIHN0YXRlbWVudCBzaG91bGQgYmUgZGlzYWxsb3dlZCBpbiBD VEUKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK1dJVEggeCBBUyAoTEVUIHZhcjEgPSAx MDApIFNFTEVDVCAqIEZST00geDsKKworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IGdlbmVy YXRlX3NlcmllcygxLCAxKTsKKworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gZ2VuZXJhdGVf c2VyaWVzKDEsIDIpOworTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwgMCk7CisKK0RST1Ag VkFSSUFCTEUgdmFyMTsKKworLS0gY29tcG9zaXRlIHZhcmlhYmxlcworQ1JFQVRFIFRZUEUgc3Zf eHl6IEFTICh4IGludCwgeSBpbnQsIHogbnVtZXJpYygxMCwyKSk7CisKK0NSRUFURSBWQVJJQUJM RSB2MSBBUyBzdl94eXo7CitDUkVBVEUgVkFSSUFCTEUgdjIgQVMgc3ZfeHl6OworCitMRVQgdjEg PSAoMSwgMiwgMy4xNCk7CitMRVQgdjIgPSAoMTAsIDIwLCAzLjE0ICogMTApOworCistLSBzaG91 bGQgd29yayB0b28gLSB0aGVyZSBhcmUgcHJlcGFyZWQgY2FzdHMKK0xFVCB2MSA9ICgxLCAyLCAz KTsKKworU0VMRUNUIHYxOworU0VMRUNUIHYyOworU0VMRUNUICh2MSkuKjsKK1NFTEVDVCAodjIp Lio7CisKK1NFTEVDVCB2MS54ICsgdjEuejsKK1NFTEVDVCB2Mi54ICsgdjIuejsKKworLS0gYWNj ZXNzIHRvIGNvbXBvc2l0ZSBmaWVsZHMgc2hvdWxkIGJlIHNhZmUgdG9vCitDUkVBVEUgUk9MRSBy ZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9s ZTsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2Mi54OworCitTRVQgUk9MRSBUTyBERUZBVUxU OworCitEUk9QIFZBUklBQkxFIHYxOworRFJPUCBWQVJJQUJMRSB2MjsKK0RST1AgVFlQRSBzdl94 eXo7CitEUk9QIFJPTEUgcmVncmVzc192YXJfdGVzdF9yb2xlOworCistLSBzaG91bGQgZmFpbCwg d3JvbmcgaWRlbnRpZmllcgorTEVUIG5vZGIubm9zY2hlbWEubm92YXIubm9maWVsZC5ub3N1YmZp ZWxkID0gMTA7CitMRVQgbm9kYi5ub3NjaGVtYS5ub3Zhci5ub2ZpZWxkID0gMTA7CitMRVQgbm9k Yi5ub3NjaGVtYS5ub3ZhciA9IDEwOworCitDUkVBVEUgVFlQRSB0MSBBUyAoYSBpbnQsIGIgbnVt ZXJpYywgYyB0ZXh0KTsKKworQ1JFQVRFIFZBUklBQkxFIHYxIEFTIHQxOworTEVUIHYxID0gKDEs IHBpKCksICdoZWxsbycpOworU0VMRUNUIHYxOworTEVUIHYxLmIgPSAxMC4yMjIyOworU0VMRUNU IHYxOworCistLSBzaG91bGQgZmFpbCwgYXR0cmlidXRlIGRvZXNuJ3QgZXhpc3QKK0xFVCB2MS54 ID0gMTA7CisKKy0tIHNob3VsZCBmYWlsLCBkb24ndCBhbGxvdyBtdWx0aSBjb2x1bW4gcXVlcnkK K0xFVCB2MSA9IChOVUxMOjp0MSkuKjsKKworLS0gYWxsb3cgRFJPUCBvciBBREQgQVRUUklCVVRF IG9uIGNvbXBvc2l0ZSB0eXBlcworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIERST1Ag QVRUUklCVVRFIGM7CitTRUxFQ1QgdjE7CisKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0 MSBBREQgQVRUUklCVVRFIGMgaW50OworU0VMRUNUIHYxOworCitMRVQgdjEgPSAoMTAsIDEwLjMs IDIwKTsKK1NFTEVDVCB2MTsKKworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIERST1Ag QVRUUklCVVRFIGI7CitTRUxFQ1QgdjE7CisKKy0tIHNob3VsZCBmYWlsLCBkaXNhbGxvdyBkYXRh IHR5cGUgY2hhbmdlCitBTFRFUiBUWVBFIHQxIEFMVEVSIEFUVFJJQlVURSBjIFRZUEUgaW50Owor CitEUk9QIFZBUklBQkxFIHYxOworRFJPUCBUWVBFIHQxOworCistLSB0aGUgdGFibGUgdHlwZSBj YW4gYmUgdXNlZCBhcyBjb21wb3NpdGUgdHlwZSB0b28KK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3Qo YSBpbnQsIGIgbnVtZXJpYywgYyBkYXRlKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHN2YXJf dGVzdDsKKworTEVUIHZhcjEgPSAoMTAsIHBpKCksICcyMDIzLTA1LTI2Jyk7CitTRUxFQ1QgdmFy MTsKKworLS0gc2hvdWxkIGZhaWwgZHVlIGRlcGVuZGVuY3kKK0FMVEVSIFRBQkxFIHN2YXJfdGVz dCBBTFRFUiBDT0xVTU4gYSBUWVBFIHRleHQ7CisKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRBQkxF IHN2YXJfdGVzdDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7 CisKK0NSRUFURSBUWVBFIHZhcnRlc3RfdDEgQVMgKGEgaW50LCBiIGludCk7CitDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyB2YXJ0ZXN0X3QxOworCitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl90ZXN0 X3JvbGU7CisKK0dSQU5UIFVQREFURSBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3NfdmFyX3Rl c3Rfcm9sZTsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfdGVzdF9yb2xlOworCistLSBzaG91 bGQgYmUgb2sKK0xFVCB2YXIxID0gKDEwLCAyMCk7CitMRVQgdmFyMS5hID0gMzA7CisKK0RPICQk CitCRUdJTgorICBMRVQgdmFyMSA9ICgxMDAsIDEwMCk7CisgIExFVCB2YXIxLmEgPSAxMDAwOwor RU5EOworJCQ7CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyMS5hOworU0VMRUNUIHZhcjE7 CitMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7CisKK0RPICQkIEJFR0lOIFJBSVNFIE5PVElDRSAn JScsIHZhcjE7IEVORCAkJDsKK0RPICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIHZhcjEuYTsg RU5EICQkOworRE8gJCQgQkVHSU4gTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwOyBFTkQgJCQ7CisK K1NFVCBST0xFIFRPIERFRkFVTFQ7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyBy ZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7 CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjEuYTsKK1NFTEVDVCB2YXIxOworTEVUIHZh cjEuYSA9IHZhcjEuYSArIDEwOworCitETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIx OyBFTkQgJCQ7CitETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxLmE7IEVORCAkJDsK K0RPICQkIEJFR0lOIExFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsgRU5EICQkOworCitTRVQgUk9M RSBUTyBERUZBVUxUOworUkVWT0tFIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIEZST00gcmVncmVz c192YXJfdGVzdF9yb2xlOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfdGVzdF9yb2xlOworCist LSBzaG91bGQgZmFpbCBhZ2FpbgorU0VMRUNUIHZhcjEuYTsKK1NFTEVDVCB2YXIxOworTEVUIHZh cjEuYSA9IHZhcjEuYSArIDEwOworCitETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIx OyBFTkQgJCQ7CitETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxLmE7IEVORCAkJDsK K0RPICQkIEJFR0lOIExFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsgRU5EICQkOworCitTRVQgUk9M RSBUTyBERUZBVUxUOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFJPTEUgcmVncmVzc192 YXJfdGVzdF9yb2xlOworRFJPUCBUWVBFIHZhcnRlc3RfdDE7CisKK0NSRUFURSBUWVBFIHZhcnRl c3RfdDEgQVMgKGEgaW50LCBiIGludCk7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRleHQ7 CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyB2YXJ0ZXN0X3QxOworCistLSBzaG91bGQgZmFpbAor U0VMRUNUIHZhcjEuYTsKK1NFTEVDVCB2YXIyLmM7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RS T1AgVkFSSUFCTEUgdmFyMjsKK0RST1AgVFlQRSB2YXJ0ZXN0X3QxOworCitDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyBpbnQ7CisKK0xFVCB2YXIxID0gMTsKK0xFVCB2YXIxID0gJzEnOworTEVUIHZh cjEgPSAxMC4xOworCistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAnMSc6Ompzb25iOworCist LSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gJzEnOjpqc29uYjo6aW50OworCistLSBzaG91bGQg ZmFpbAorTEVUIHZhcjEueCA9IDEwOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKK0NSRUFURSBT Q0hFTUEgdmFydGVzdDsKK0NSRUFURSBUWVBFIHZhcnRlc3R0eXBlIEFTICh2YXJ0ZXN0IGludCk7 CitDUkVBVEUgVkFSSUFCTEUgdmFydGVzdC52YXJ0ZXN0IEFTIHZhcnRlc3R0eXBlOworU0VUIFNF QVJDSF9QQVRIIFRPIHZhcnRlc3Q7CisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFydGVzdC52YXJ0 ZXN0ID0gMTsKKworRFJPUCBWQVJJQUJMRSB2YXJ0ZXN0LnZhcnRlc3Q7CitEUk9QIFRZUEUgdmFy dGVzdHR5cGU7CitEUk9QIFNDSEVNQSB2YXJ0ZXN0OworU0VUIFNFQVJDSF9QQVRIIFRPIERFRkFV TFQ7CisKKy0tIGFycmF5cyBhcmUgc3VwcG9ydGVkCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBu dW1lcmljW107CitMRVQgdmFyMSA9IEFSUkFZWzEuMSwyLjFdOworTEVUIHZhcjFbMV0gPSAxMC4x OworU0VMRUNUIHZhcjE7CisKKy0tIExFVCB0YXJnZXQgZG9lc24ndCBhbGxvdyBzcmYsIHNob3Vs ZCBmYWlsCitMRVQgdmFyMVtnZW5lcmF0ZV9zZXJpZXMoMSwzKV0gPSAxMDA7CisKK0RST1AgVkFS SUFCTEUgdmFyMTsKKworLS0gYXJyYXlzIGluc2lkZSBjb21wb3NpdGUKK0NSRUFURSBUWVBFIHQx IEFTIChhIG51bWVyaWMsIGIgbnVtZXJpY1tdKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHQx OworTEVUIHZhcjEgPSAoMTAuMSwgQVJSQVlbMC4wLCAwLjBdKTsKK0xFVCB2YXIxLmEgPSAxMC4y OworU0VMRUNUIHZhcjE7CitMRVQgdmFyMS5iWzFdID0gMTAuMzsKK1NFTEVDVCB2YXIxOworCitE Uk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZUEUgdDE7CisKKy0tIEVuY291cmFnZSB1c2Ugb2Yg cGFyYWxsZWwgcGxhbnMKK1NFVCBwYXJhbGxlbF9zZXR1cF9jb3N0ID0gMDsKK1NFVCBwYXJhbGxl bF90dXBsZV9jb3N0ID0gMDsKK1NFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplID0gMDsK K1NFVCBtYXhfcGFyYWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyID0gMjsKKworLS0gdGVzdCBvbiBx dWVyeSB3aXRoIHdvcmtlcnMKK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoYSBpbnQpOworSU5TRVJU IElOVE8gc3Zhcl90ZXN0IFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAwMCk7CitB TkFMWVpFIHN2YXJfdGVzdDsKK0NSRUFURSBWQVJJQUJMRSB6ZXJvIGludDsKK0xFVCB6ZXJvID0g MDsKKworLS0gcmVzdWx0IHNob3VsZCBiZSAxMDAKK1NFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJf dGVzdCBXSEVSRSBhJTEwID0gemVybzsKKworLS0gcGFyYWxsZWwgZXhlY3V0aW9uIGlzIG5vdCBz dXBwb3J0ZWQgeWV0CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2 YXJfdGVzdCBXSEVSRSBhJTEwID0gemVybzsKKworTEVUIHplcm8gPSAoU0VMRUNUIGNvdW50KCop IEZST00gc3Zhcl90ZXN0KTsKKworLS0gcmVzdWx0IHNob3VsZCBiZSAxMDAwCitTRUxFQ1QgemVy bzsKKworRFJPUCBWQVJJQUJMRSB6ZXJvOworRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CisKK1JFU0VU IHBhcmFsbGVsX3NldHVwX2Nvc3Q7CitSRVNFVCBwYXJhbGxlbF90dXBsZV9jb3N0OworUkVTRVQg bWluX3BhcmFsbGVsX3RhYmxlX3NjYW5fc2l6ZTsKK1JFU0VUIG1heF9wYXJhbGxlbF93b3JrZXJz X3Blcl9nYXRoZXI7CisKKy0tIHRoZSByZXN1bHQgb2YgdmlldyBzaG91bGQgYmUgc2FtZSBpbiBw YXJhbGxlbCBtb2RlIHRvbworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworTEVUIHZhcjEg PSAxMDsKKworQ1JFQVRFIFZJRVcgdmFyMXZpZXcgQVMgU0VMRUNUIENPQUxFU0NFKHZhcjEsIDAp IEFTIHJlc3VsdDsKKworU0VMRUNUICogRlJPTSB2YXIxdmlldzsKKworU0VUIGRlYnVnX3BhcmFs bGVsX3F1ZXJ5IFRPIG9uOworCitTRUxFQ1QgKiBGUk9NIHZhcjF2aWV3OworCitTRVQgZGVidWdf cGFyYWxsZWxfcXVlcnkgVE8gb2ZmOworCitEUk9QIFZJRVcgdmFyMXZpZXc7CitEUk9QIFZBUklB QkxFIHZhcjE7CisKK0NSRUFURSBWQVJJQUJMRSB2YXJpZCBpbnQ7CitDUkVBVEUgVEFCTEUgc3Zh cl90ZXN0KGlkIGludCwgdiBpbnQpOworCitMRVQgdmFyaWQgPSAxOworSU5TRVJUIElOVE8gc3Zh cl90ZXN0IFZBTFVFUyh2YXJpZCwgMTAwKTsKK1NFTEVDVCAqIEZST00gc3Zhcl90ZXN0OworVVBE QVRFIHN2YXJfdGVzdCBTRVQgdiA9IDIwMCBXSEVSRSBpZCA9IHZhcmlkOworU0VMRUNUICogRlJP TSBzdmFyX3Rlc3Q7CitERUxFVEUgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgaWQgPSB2YXJpZDsKK1NF TEVDVCAqIEZST00gc3Zhcl90ZXN0OworCitEUk9QIFRBQkxFIHN2YXJfdGVzdDsKK0RST1AgVkFS SUFCTEUgdmFyaWQ7CisKKy0tIHZpc2liaWxpdHkgY2hlY2sKKy0tIHZhcmlhYmxlcyBzaG91bGQg YmUgc2hhZG93ZWQgYWx3YXlzCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0ZXh0OworU0VMRUNU IHZhcjEucmVsbmFtZSBGUk9NIHBnX2NsYXNzIHZhcjEgV0hFUkUgdmFyMS5yZWxuYW1lID0gJ3Bn X2NsYXNzJzsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCitDUkVBVEUgVEFCTEUgeHh0YWIoYXZh ciBpbnQpOworCitJTlNFUlQgSU5UTyB4eHRhYiBWQUxVRVMoMzMzKTsKKworQ1JFQVRFIFRZUEUg eHh0eXBlIEFTIChhdmFyIGludCk7CisKK0NSRUFURSBWQVJJQUJMRSB4eHRhYiBBUyB4eHR5cGU7 CisKK0lOU0VSVCBJTlRPIHh4dGFiIFZBTFVFUygxMCk7CisKKy0tIGl0IGlzIGFtYmlndW91cywg YnV0IGNvbHVtbnMgYXJlIHByZWZlcnJlZAorU0VMRUNUIHh4dGFiLmF2YXIgRlJPTSB4eHRhYjsK KworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgYXZhciBGUk9NIHh4dGFiOworCitDUkVBVEUgVkFS SUFCTEUgcHVibGljLmF2YXIgQVMgaW50OworCistLSBzaG91bGQgYmUgb2ssIHNlZSB0aGUgdGFi bGUKK1NFTEVDVCBhdmFyIEZST00geHh0YWI7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHB1 YmxpYy5hdmFyIEZST00geHh0YWI7CisKK0RST1AgVkFSSUFCTEUgeHh0YWI7CisKK1NFTEVDVCB4 eHRhYi5hdmFyIEZST00geHh0YWI7CisKK0RST1AgVkFSSUFCTEUgcHVibGljLmF2YXI7CisKK0RS T1AgVFlQRSB4eHR5cGU7CisKK0RST1AgVEFCTEUgeHh0YWI7CisKKy0tIFRoZSB2YXJpYWJsZSBj YW4gYmUgc2hhZG93ZWQgYnkgdGFibGUgb3IgYnkgYWxpYXMKK0NSRUFURSBUWVBFIHB1YmxpYy5z dmFyX3R5cGUgQVMgKGEgaW50LCBiIGludCwgYyBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHB1Ymxp Yy5zdmFyIEFTIHB1YmxpYy5zdmFyX3R5cGU7CisKK0NSRUFURSBUQUJMRSBwdWJsaWMuc3Zhcihh IGludCwgYiBpbnQpOworCitJTlNFUlQgSU5UTyBwdWJsaWMuc3ZhciBWQUxVRVMoMTAsIDIwKTsK KworTEVUIHB1YmxpYy5zdmFyID0gKDEwMCwgMjAwLCAzMDApOworCistLSBzaG91bGQgYmUgb2sK Ky0tIHNob3cgdGFibGUKK1NFTEVDVCAqIEZST00gcHVibGljLnN2YXI7CitTRUxFQ1Qgc3Zhci5h IEZST00gcHVibGljLnN2YXI7CitTRUxFQ1Qgc3Zhci4qIEZST00gcHVibGljLnN2YXI7CisKKy0t IHNob3cgdmFyaWFibGUKK1NFTEVDVCBwdWJsaWMuc3ZhcjsKK1NFTEVDVCBwdWJsaWMuc3Zhci5j OworU0VMRUNUIChwdWJsaWMuc3ZhcikuKjsKKworLS0gdGhlIHZhcmlhYmxlIGlzIHNoYWRvd2Vk LCByYWlzZSBlcnJvcgorU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhcjsKKwor LS0gY2FuIGJlIGZpeGVkIGJ5IGFsaWFzCitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1Ymxp Yy5zdmFyIHg7CisKK1NFTEVDVCBzdmFyLmEgRlJPTSBwdWJsaWMuc3ZhcjsKK1NFTEVDVCBzdmFy LiogRlJPTSBwdWJsaWMuc3ZhcjsKKworLS0gc2hvdyB2YXJpYWJsZQorU0VMRUNUIHB1YmxpYy5z dmFyOworU0VMRUNUIHB1YmxpYy5zdmFyLmM7CitTRUxFQ1QgKHB1YmxpYy5zdmFyKS4qOworCist LSB0aGUgdmFyaWFibGUgaXMgc2hhZG93ZWQsIHJhaXNlIGVycm9yCitTRUxFQ1QgcHVibGljLnN2 YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworCistLSBjYW4gYmUgZml4ZWQgYnkgYWxpYXMKK1NFTEVD VCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXIgeDsKKworRFJPUCBWQVJJQUJMRSBwdWJs aWMuc3ZhcjsKK0RST1AgVEFCTEUgcHVibGljLnN2YXI7CitEUk9QIFRZUEUgcHVibGljLnN2YXJf dHlwZTsKKworLS0gVGhlIHNlcXVlbmNlIGlkZW50LiogY2Fubm90IGJlIHVzZWQgYnkgcmVmZXJl bmNlIHRvIHNlc3Npb24gdmFyaWFibGUsCistLSBhbmQgaW4gdGhpcyBjYXNlLCB0aGVyZSBpcyBu b3QgY29sbGlzaW9uCitDUkVBVEUgU0NIRU1BIHZhcnRlc3Q7CitTRVQgU0VBUkNIX1BBVEggVE8g dmFydGVzdDsKK0NSRUFURSBUQUJMRSB2YXJ0ZXN0X2ZvbyhhIGludCwgYiBpbnQpOworSU5TRVJU IElOVE8gdmFydGVzdF9mb28gVkFMVUVTKDEwLDIwKSwgKDMwLDQwKTsKKworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgdmFydGVzdF9mb287CitMRVQgdmFyMSA9ICgxMDAsMjAwKTsKKworLS0gc2hv dWxkIHRvIGZhaWwKK1NFTEVDVCB2YXIxLiogRlJPTSB2YXJ0ZXN0X2ZvbzsKKworLS0gc2hvdWxk IGJlIG9rCitTRUxFQ1QgdmFyMS4qIEZST00gdmFydGVzdF9mb28gdmFyMTsKKworLS0gc2hvdWxk IHRvIGZhaWwKK1NFTEVDVCBjb3VudCh2YXIxLiopIEZST00gdmFydGVzdF9mb287CisKKy0tIHNo b3VsZCBiZSBvaworU0VMRUNUIGNvdW50KHZhcjEuKikgRlJPTSB2YXJ0ZXN0X2ZvbyB2YXIxOwor CitTRVQgU0VBUkNIX1BBVEggVE8gREVGQVVMVDsKK0RST1AgU0NIRU1BIHZhcnRlc3QgQ0FTQ0FE RTsKKworQ1JFQVRFIFRZUEUgYWIgQVMgKGEgaW50ZWdlciwgYiBpbnRlZ2VyKTsKKworQ1JFQVRF IFZBUklBQkxFIHZfYWIgQVMgYWI7CisKK0NSRUFURSBUQUJMRSB2X2FiIChhIGludGVnZXIsIGIg aW50ZWdlcik7CitJTlNFUlQgSU5UTyB2X2FiIFZBTFVFUygxMCwyMCk7CisKKy0tIHdlIHNob3Vs ZCBzZWUgdGFibGUKK1NFTEVDVCB2X2FiLmEgRlJPTSB2X2FiOworCitDUkVBVEUgU0NIRU1BIHZf YWI7CisKK0NSRUFURSBWQVJJQUJMRSB2X2FiLmEgQVMgaW50ZWdlcjsKKworLS0gd2Ugc2hvdWxk IHNlZSB0YWJsZQorU0VMRUNUIHZfYWIuYSBGUk9NIHZfYWI7CisKK0RST1AgVkFSSUFCTEUgdl9h YjsKK0RST1AgVEFCTEUgdl9hYjsKK0RST1AgVFlQRSBhYjsKK0RST1AgVkFSSUFCTEUgdl9hYi5h OworRFJPUCBTQ0hFTUEgdl9hYjsKKworQ1JFQVRFIFRZUEUgdF9hbV90eXBlIEFTIChiIGludCk7 CitDUkVBVEUgU0NIRU1BIHh4eF9hbTsKKworU0VUIHNlYXJjaF9wYXRoIFRPIHB1YmxpYzsKKwor Q1JFQVRFIFZBUklBQkxFIHh4eF9hbSBBUyB0X2FtX3R5cGU7CitMRVQgeHh4X2FtID0gUk9XKDEw KTsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgeHh4X2FtOworCitDUkVBVEUgVkFSSUFCTEUg eHh4X2FtLmIgQVMgaW50OworTEVUIDoiREJOQU1FIi54eHhfYW0uYiA9IDIwOworCistLSBzaG91 bGQgYmUgc3RpbGwgb2sKK1NFTEVDVCB4eHhfYW07CisKKy0tIHNob3VsZCBmYWlsLCB0aGUgcmVm ZXJlbmNlIHNob3VsZCBiZSBhbWJpZ3VvdXMKK1NFTEVDVCB4eHhfYW0uYjsKKworLS0gZW5oYW5j ZWQgcmVmZXJlbmNlcyBzaG91bGQgYmUgb2sKK1NFTEVDVCBwdWJsaWMueHh4X2FtLmI7CitTRUxF Q1QgOiJEQk5BTUUiLnh4eF9hbS5iOworCitDUkVBVEUgVEFCTEUgeHh4X2FtKGIgIGludCk7CitJ TlNFUlQgSU5UTyB4eHhfYW0gVkFMVUVTKDEwKTsKKworLS0gd2Ugc2hvdWxkIHNlZSB0YWJsZQor U0VMRUNUIHh4eF9hbS5iIEZST00geHh4X2FtOworU0VMRUNUIHguYiBGUk9NIHh4eF9hbSB4Owor CitEUk9QIFRBQkxFIHh4eF9hbTsKK0RST1AgVkFSSUFCTEUgcHVibGljLnh4eF9hbTsKK0RST1Ag VkFSSUFCTEUgeHh4X2FtLmI7CitEUk9QIFNDSEVNQSB4eHhfYW07CisKK0NSRUFURSBTQ0hFTUEg OiJEQk5BTUUiOworCitDUkVBVEUgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi46IkRCTkFN RSIgQVMgdF9hbV90eXBlOworQ1JFQVRFIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuYiBB UyBpbnQ7CisKK1NFVCBzZWFyY2hfcGF0aCBUTyA6IkRCTkFNRSI7CisKKy0tIHNob3VsZCBiZSBh bWJpZ3VvdXMKK1NFTEVDVCA6IkRCTkFNRSIuYjsKKworLS0gc2hvdWxkIGJlIGFtYmlndW91cyB0 b28KK1NFTEVDVCA6IkRCTkFNRSIuOiJEQk5BTUUiLmI7CisKK0NSRUFURSBUQUJMRSA6IkRCTkFN RSIoYiBpbnQpOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCA6IkRCTkFNRSIuYiBGUk9NIDoi REJOQU1FIjsKKworRFJPUCBUQUJMRSA6IkRCTkFNRSI7CisKK0RST1AgVkFSSUFCTEUgOiJEQk5B TUUiLjoiREJOQU1FIi5iOworRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJO QU1FIjsKK0RST1AgU0NIRU1BIDoiREJOQU1FIjsKKworUkVTRVQgc2VhcmNoX3BhdGg7CmRpZmYg LS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CmluZGV4IGNiZTU5ZmIwNzA4Li5hMDVjZTIwOWRmZiAxMDA2NDQK LS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3Bn aW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTE1MDAsNiArMTUwMCw3IEBAIExhcmdlT2JqZWN0RGVz YwogTGF0Y2gKIExhdW5jaGVyTGFzdFN0YXJ0VGltZXNFbnRyeQogTGVycEZ1bmMKK0xldFN0bXQK IExleERlc2NyCiBMZXhlbWVFbnRyeQogTGV4ZW1lSGFzaEtleQpAQCAtMjYwOSw2ICsyNjEwLDcg QEAgU2VyaWFsaXplZFRyYW5zYWN0aW9uU3RhdGUKIFNlc3Npb24KIFNlc3Npb25CYWNrdXBTdGF0 ZQogU2Vzc2lvbkVuZFR5cGUKK1Nlc3Npb25WYXJpYWJsZVZhbHVlCiBTZXRDb25zdHJhaW50U3Rh dGUKIFNldENvbnN0cmFpbnRTdGF0ZURhdGEKIFNldENvbnN0cmFpbnRUcmlnZ2VyRGF0YQpAQCAt MjgwMSw2ICsyODAzLDkgQEAgU3VwcG9ydFJlcXVlc3RSb3dzCiBTdXBwb3J0UmVxdWVzdFNlbGVj dGl2aXR5CiBTdXBwb3J0UmVxdWVzdFNpbXBsaWZ5CiBTdXBwb3J0UmVxdWVzdFdGdW5jTW9ub3Rv bmljCitTVmFyaWFibGUKK1NWYXJpYWJsZURhdGEKK1NWYXJpYWJsZVN0YXRlCiBTeW4KIFN5bmNP cHMKIFN5bmNSZXBDb25maWdEYXRhCi0tIAoyLjQ3LjEKCg== --000000000000f297a7062b2456dc Content-Type: text/x-patch; charset="US-ASCII"; name="v20250107-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Disposition: attachment; filename="v20250107-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5mz6bsr21 RnJvbSA2ZGEzNmEyZWMyOTgwZGM4YzE0NWRjODU4ZWExYjdiNmJiZTU3Nzg2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTU6NDE6NTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDAx LzIyXSBFbmhhbmNpbmcgY2F0YWxvZyBmb3Igc3VwcG9ydCBzZXNzaW9uIHZhcmlhYmxlcyBhbmQK IHJlbGF0ZWQgc3VwcG9ydAoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBzeXN0ZW0gY2F0YWxv ZyB0YWJsZSBwZ192YXJpYWJsZS4gVGhpcyB0YWJsZSBob2xkcyBtZXRhZGF0YSBhYm91dApzZXNz aW9uIHZhcmlhYmxlcyBjcmVhdGVkIGJ5IGNvbW1hbmQgQ1JFQVRFIFZBUklBQkxFLCBhbmQgZHJv cHBlZCBieSBjb21tYW5kIERST1AgVkFSSUFCTEUuCkJvdGggY29tbWFuZHMgYXJlIGltcGxlbWVu dGVkIGJ5IHRoaXMgcGF0Y2guIFBvc3NpYmlsaXR5IHRvIGNoYW5nZSBvd25lciwgc2NoZW1hIG9y IHJlbmFtZS4KCkFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgY29udHJvbGxlZCBi eSBTRUxFQ1Qgb3IgVVBEQVRFIHJpZ2h0cy4gQm90aCByaWdodHMgYXJlCmludHJvZHVjZWQgYnkg dGhpcyBwYXRjaCB0b28uCgpUaGlzIHBhdGNoIGVuaGFuY2luZyBwZ19kdW1wIGFuZCBwc3FsIHRv IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMuIFRoZSBjaGFuZ2VzIGFyZSByZWxhdGVkCnRvIHN5 c3RlbSBjYXRhbG9nLgoKVGhpcyBwYXRjaCBpcyBub3Qgc2hvcnQsIGJ1dCB0aGUgY29kZSBpcyBz aW1wbGUuCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgMTIzICsrKystCiBkb2Mvc3JjL3NnbWwvZGRsLnNnbWwgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgNDAgKy0KIGRvYy9zcmMvc2dtbC9mdW5jLnNnbWwgICAgICAgICAgICAgICAgICAgICAg ICB8ICAzMiArKwogZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAgICAg IHwgIDE1ICsKIGRvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8 ICAgMyArCiAuLi4vc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwgICAgfCAg MjcgKy0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCAgICAgICAgICB8IDE3 OCArKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCAgICAgICAgICAgICAgICAg fCAgIDEgKwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwgICAgICAgICAgIHwg IDEyICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAx NDkgKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCAgICAgICAgICAg fCAxMTcgKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbCAgICAgICAgICAgICAgICAg ICB8ICAyMCArLQogZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sICAgICAgICAgICAgICAg IHwgIDEzICsKIGRvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwgICAgICAgICAgICAgICAgICB8 ICAgOCArCiBkb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgICAgICAgICAgICAgICAgICAgfCAg IDMgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgIHwgICAx ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICAgICB8ICA3NyAr KysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyAgICAgICAgICAgICAgfCAgIDYg Kwogc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgIHwgICAxICsK IHNyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgICAgICAgICAgICAgICB8IDIyMSArKysr KysrKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jICAgICAgICAgICB8IDEy MSArKysrLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jICAgICAgICAgICAgIHwg ICAyICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8IDI1 MSArKysrKysrKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jICAgICAgICAgICAgICAg ICAgfCAgIDkgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYyAgICAgICAgICAgICAg IHwgICA0ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYyAgICAgICAgICB8 ICAgNCArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jICAgICAgICAgICAgICAgfCAg IDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgIDQx ICsrCiBzcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jICAgICAgICAgICAgICAgfCAgMTUg Kwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgMTA1ICsr KystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jICAgICAgICAgICAgfCAgMTIg Kwogc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgIDIwICsK IHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYyAgICAgICAgICAgICAgICAgICB8IDIyMSArKysr KysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jICAgICAgICAgICB8IDEx MyArKysrKwogc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jICAgICAgICAgICAgICAgICAgICAgIHwg ICAzICsKIHNyYy9iaW4vcGdfZHVtcC9kdW1wdXRpbHMuYyAgICAgICAgICAgICAgICAgICB8ICAg NiArCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmggICAgICAgICAgICAgICAgICAgfCAgIDIg Kwogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jICAgICAgICAgIHwgICA5ICsK IHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDE5NSArKysr KysrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDE5 ICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyAgICAgICAgICAgICAgICB8ICAgNiAr CiBzcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAgICAgfCAgNjQgKysr CiBzcmMvYmluL3BzcWwvY29tbWFuZC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwog c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMTAwICsrKy0K IHNyYy9iaW4vcHNxbC9kZXNjcmliZS5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBz cmMvYmluL3BzcWwvaGVscC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDQzICstCiBzcmMv aW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIHNyYy9p bmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5j bHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAyMyArCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgODEgKysrKwogc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgIDE2ICsKIHNyYy9pbmNsdWRlL3Bh cnNlci9rd2xpc3QuaCAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS90Y29w L2NtZHRhZ2xpc3QuaCAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvdXRpbHMv YWNsLmggICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3V0aWxzL2xz eXNjYWNoZS5oICAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2RlcGVuZGVuY3kub3V0ICAgICAgfCAgMTcgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9vaWRqb2lucy5vdXQgICAgICAgIHwgICA0ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cHNxbC5vdXQgICAgICAgICAgICB8ICA1MCArKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0ICAgIHwgNDMzICsrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVn cmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9kZXBlbmRlbmN5LnNxbCAgICAgICAgICAgfCAgMTQgKwogc3JjL3Rlc3QvcmVncmVz cy9zcWwvcHNxbC5zcWwgICAgICAgICAgICAgICAgIHwgIDIxICsKIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDI5NyArKysrKysrKysrKysKIHNyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgNCArCiA2NyBmaWxlcyBj aGFuZ2VkLCAzMzcxIGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg MTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUg MTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbAppbmRleCBjYzZjZjliZWYwOS4uNmJiYzZjN2UyOGUgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s CkBAIC0zNjksNiArMzY5LDExIEBACiAgICAgICA8ZW50cnk+PGxpbmsgbGlua2VuZD0iY2F0YWxv Zy1wZy11c2VyLW1hcHBpbmciPjxzdHJ1Y3RuYW1lPnBnX3VzZXJfbWFwcGluZzwvc3RydWN0bmFt ZT48L2xpbms+PC9lbnRyeT4KICAgICAgIDxlbnRyeT5tYXBwaW5ncyBvZiB1c2VycyB0byBmb3Jl aWduIHNlcnZlcnM8L2VudHJ5PgogICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ctcGctdmFyaWFibGUiPjxzdHJ1Y3RuYW1lPnBnX3Zh cmlhYmxlPC9zdHJ1Y3RuYW1lPjwvbGluaz48L2VudHJ5PgorICAgICAgPGVudHJ5PnNlc3Npb24g dmFyaWFibGVzPC9lbnRyeT4KKyAgICAgPC9yb3c+CiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3Vw PgogICA8L3RhYmxlPgpAQCAtMzMyOCw3ICszMzMzLDggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFj ZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+ JmwKICAgICAgICA8bGl0ZXJhbD5TPC9saXRlcmFsPiA9IHNlcXVlbmNlLAogICAgICAgIDxsaXRl cmFsPmY8L2xpdGVyYWw+ID0gZnVuY3Rpb24sCiAgICAgICAgPGxpdGVyYWw+VDwvbGl0ZXJhbD4g PSB0eXBlLAotICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0gc2NoZW1hCisgICAgICAgPGxp dGVyYWw+bjwvbGl0ZXJhbD4gPSBzY2hlbWEsCisgICAgICAgPGxpdGVyYWw+VjwvbGl0ZXJhbD4g PSBzZXNzaW9uIHZhcmlhYmxlCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAK QEAgLTk3MzIsNCArOTczOCwxMTkgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0 ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgPC90YWJs ZT4KICA8L3NlY3QxPgogCisgPHNlY3QxIGlkPSJjYXRhbG9nLXBnLXZhcmlhYmxlIj4KKyAgPHRp dGxlPjxzdHJ1Y3RuYW1lPnBnX3ZhcmlhYmxlPC9zdHJ1Y3RuYW1lPjwvdGl0bGU+CisKKyAgPGlu ZGV4dGVybSB6b25lPSJjYXRhbG9nLXBnLXZhcmlhYmxlIj4KKyAgIDxwcmltYXJ5PnBnX3Zhcmlh YmxlPC9wcmltYXJ5PgorICA8L2luZGV4dGVybT4KKworICA8cGFyYT4KKyAgIFRoZSBjYXRhbG9n IDxzdHJ1Y3RuYW1lPnBnX3ZhcmlhYmxlPC9zdHJ1Y3RuYW1lPiBzdG9yZXMgaW5mb3JtYXRpb24g YWJvdXQKKyAgIHNlc3Npb24gdmFyaWFibGVzLgorICA8L3BhcmE+CisKKyAgPHRhYmxlPgorICAg PHRpdGxlPjxzdHJ1Y3RuYW1lPnBnX3ZhcmlhYmxlPC9zdHJ1Y3RuYW1lPiBDb2x1bW5zPC90aXRs ZT4KKyAgIDx0Z3JvdXAgY29scz0iMSI+CisgICAgPHRoZWFkPgorICAgICA8cm93PgorICAgICAg PGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZp bml0aW9uIj4KKyAgICAgICBDb2x1bW4gVHlwZQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+ CisgICAgICAgRGVzY3JpcHRpb24KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4K KyAgICA8L3RoZWFkPgorCisgICAgPHRib2R5PgorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+b2lkPC90eXBlPgor ICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgUm93IGlkZW50aWZpZXIKKyAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5 IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9u Ij4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFydHlwZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwv dHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXR5cGUi PjxzdHJ1Y3RuYW1lPnBnX3R5cGU8L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lk PC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUg T0lEIG9mIHRoZSB2YXJpYWJsZSdzIGRhdGEgdHlwZQorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD52YXJuYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+bmFtZTwvdHlwZT4KKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIE5hbWUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUKKyAg ICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVu dHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0 aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFybmFtZXNwYWNlPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ct cGctbmFtZXNwYWNlIj48c3RydWN0bmFtZT5wZ19uYW1lc3BhY2U8L3N0cnVjdG5hbWU+PC9saW5r Pi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAgICA8 cGFyYT4KKyAgICAgICBUaGUgT0lEIG9mIHRoZSBuYW1lc3BhY2UgdGhhdCBjb250YWlucyB0aGlz IHZhcmlhYmxlCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJv dz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJj b2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcm93bmVyPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9 ImNhdGFsb2ctcGctYXV0aGlkIj48c3RydWN0bmFtZT5wZ19hdXRoaWQ8L3N0cnVjdG5hbWU+PC9s aW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBPd25lciBvZiB0aGUgdmFyaWFibGUKKyAgICAgIDwvcGFyYT48L2Vu dHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFs b2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8 c3RydWN0ZmllbGQ+dmFydHlwbW9kPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50NDwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJ0eXBtb2Q8 L3N0cnVjdGZpZWxkPiByZWNvcmRzIHR5cGUtc3BlY2lmaWMgZGF0YQorICAgICAgIHN1cHBsaWVk IGF0IHZhcmlhYmxlIGNyZWF0aW9uIHRpbWUgKGZvciBleGFtcGxlLCB0aGUgbWF4aW11bQorICAg ICAgIGxlbmd0aCBvZiBhIDx0eXBlPnZhcmNoYXI8L3R5cGU+IGNvbHVtbikuICBJdCBpcyBwYXNz ZWQgdG8KKyAgICAgICB0eXBlLXNwZWNpZmljIGlucHV0IGZ1bmN0aW9ucyBhbmQgbGVuZ3RoIGNv ZXJjaW9uIGZ1bmN0aW9ucy4KKyAgICAgICBUaGUgdmFsdWUgd2lsbCBnZW5lcmFsbHkgYmUgLTEg Zm9yIHR5cGVzIHRoYXQgZG8gbm90IG5lZWQgPHN0cnVjdGZpZWxkPnZhcnR5cG1vZDwvc3RydWN0 ZmllbGQ+LgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJjb2xsYXRpb248L3N0cnVj dGZpZWxkPiA8dHlwZT5vaWQ8L3R5cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2Vu ZD0iY2F0YWxvZy1wZy1jb2xsYXRpb24iPjxzdHJ1Y3RuYW1lPnBnX2NvbGxhdGlvbjwvc3RydWN0 bmFtZT48L2xpbms+LjxzdHJ1Y3RmaWVsZD5vaWQ8L3N0cnVjdGZpZWxkPikKKyAgICAgIDwvcGFy YT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBkZWZpbmVkIGNvbGxhdGlvbiBvZiB0aGUgdmFy aWFibGUsIG9yIHplcm8gaWYgdGhlIHZhcmlhYmxlIGlzCisgICAgICAgbm90IG9mIGEgY29sbGF0 YWJsZSBkYXRhIHR5cGUuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAg ICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcmFjbDwvc3Ry dWN0ZmllbGQ+IDx0eXBlPmFjbGl0ZW1bXTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxw YXJhPgorICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzOyBzZWUKKyAgICAgICA8eHJlZiBsaW5rZW5k PSJzcWwtZ3JhbnQiLz4gYW5kCisgICAgICAgPHhyZWYgbGlua2VuZD0ic3FsLXJldm9rZSIvPgor ICAgICAgIGZvciBkZXRhaWxzCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisK KyAgICA8L3Rib2R5PgorICAgPC90Z3JvdXA+CisgIDwvdGFibGU+CisgPC9zZWN0MT4KIDwvY2hh cHRlcj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMvc2dtbC9k ZGwuc2dtbAppbmRleCBkZWEwNGQ2NGRiNi4uNGY3OWM2NzZjMzAgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9kZGwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKQEAgLTE5OTMsNiAr MTk5Myw3IEBAIFJFVk9LRSBBTEwgT04gYWNjb3VudHMgRlJPTSBQVUJMSUM7CiAgICAgICAgRm9y IHNlcXVlbmNlcywgdGhpcyBwcml2aWxlZ2UgYWxzbyBhbGxvd3MgdXNlIG9mIHRoZQogICAgICAg IDxmdW5jdGlvbj5jdXJydmFsPC9mdW5jdGlvbj4gZnVuY3Rpb24uCiAgICAgICAgRm9yIGxhcmdl IG9iamVjdHMsIHRoaXMgcHJpdmlsZWdlIGFsbG93cyB0aGUgb2JqZWN0IHRvIGJlIHJlYWQuCisg ICAgICAgRm9yIHNlc3Npb24gdmFyaWFibGVzLCB0aGlzICBwcml2aWxlZ2UgYWxsb3dzIHRoZSBv YmplY3QgdG8gYmUgcmVhZC4KICAgICAgIDwvcGFyYT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8 L3Zhcmxpc3RlbnRyeT4KQEAgLTIwMjgsNiArMjAyOSw4IEBAIFJFVk9LRSBBTEwgT04gYWNjb3Vu dHMgRlJPTSBQVUJMSUM7CiAgICAgICAgPGZ1bmN0aW9uPnNldHZhbDwvZnVuY3Rpb24+IGZ1bmN0 aW9ucy4KICAgICAgICBGb3IgbGFyZ2Ugb2JqZWN0cywgdGhpcyBwcml2aWxlZ2UgYWxsb3dzIHdy aXRpbmcgb3IgdHJ1bmNhdGluZyB0aGUKICAgICAgICBvYmplY3QuCisgICAgICAgRm9yIHNlc3Np b24gdmFyaWFibGVzLCB0aGlzIHByaXZpbGVnZSBhbGxvd3MgdG8gc2V0IGEgdmFsdWUgdG8gdGhl CisgICAgICAgb2JqZWN0LgogICAgICAgPC9wYXJhPgogICAgICA8L2xpc3RpdGVtPgogICAgIDwv dmFybGlzdGVudHJ5PgpAQCAtMjI3MSw3ICsyMjc0LDggQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50 cyBGUk9NIFBVQkxJQzsKICAgICAgICA8bGl0ZXJhbD5MQVJHRSBPQkpFQ1Q8L2xpdGVyYWw+LAog ICAgICAgIDxsaXRlcmFsPlNFUVVFTkNFPC9saXRlcmFsPiwKICAgICAgICA8bGl0ZXJhbD5UQUJM RTwvbGl0ZXJhbD4gKGFuZCB0YWJsZS1saWtlIG9iamVjdHMpLAotICAgICAgIHRhYmxlIGNvbHVt bgorICAgICAgIHRhYmxlIGNvbHVtbiwKKyAgICAgICA8bGl0ZXJhbD5TRVNTSU9OIFZBUklBQkxF PC9saXRlcmFsPgogICAgICAgPC9lbnRyeT4KICAgICAgPC9yb3c+CiAgICAgIDxyb3c+CkBAIC0y Mjg2LDcgKzIyOTAsOCBAQCBSRVZPS0UgQUxMIE9OIGFjY291bnRzIEZST00gUFVCTElDOwogICAg ICAgIDxsaXRlcmFsPkxBUkdFIE9CSkVDVDwvbGl0ZXJhbD4sCiAgICAgICAgPGxpdGVyYWw+U0VR VUVOQ0U8L2xpdGVyYWw+LAogICAgICAgIDxsaXRlcmFsPlRBQkxFPC9saXRlcmFsPiwKLSAgICAg ICB0YWJsZSBjb2x1bW4KKyAgICAgICB0YWJsZSBjb2x1bW4sCisgICAgICAgPGxpdGVyYWw+U0VT U0lPTiBWQVJJQUJMRTwvbGl0ZXJhbD4KICAgICAgIDwvZW50cnk+CiAgICAgIDwvcm93PgogICAg ICA8cm93PgpAQCAtMjQ3Myw2ICsyNDc4LDEyIEBAIFJFVk9LRSBBTEwgT04gYWNjb3VudHMgRlJP TSBQVUJMSUM7CiAgICAgICA8ZW50cnk+PGxpdGVyYWw+VTwvbGl0ZXJhbD48L2VudHJ5PgogICAg ICAgPGVudHJ5PjxsaXRlcmFsPlxkVCs8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgPC9yb3c+Cisg ICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+U0VTU0lPTiBWQVJJQUJMRTwvbGl0ZXJh bD48L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPnJ3PC9saXRlcmFsPjwvZW50cnk+Cisg ICAgICA8ZW50cnk+PGxpdGVyYWw+bm9uZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5 PjxsaXRlcmFsPlxkVis8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgPC9yb3c+CiAgICAgPC90Ym9k eT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpAQCAtNTMyMyw2ICs1MzM0LDMxIEBAIEVYUExB SU4gU0VMRUNUIGNvdW50KCopIEZST00gbWVhc3VyZW1lbnQgV0hFUkUgbG9nZGF0ZSAmZ3Q7PSBE QVRFICcyMDA4LTAxLTAxJzsKICAgIDwvcGFyYT4KICA8L3NlY3QxPgogCisgIDxzZWN0MSBpZD0i ZGRsLXNlc3Npb24tdmFyaWFibGVzIj4KKyAgIDx0aXRsZT5TZXNzaW9uIFZhcmlhYmxlczwvdGl0 bGU+CisKKyAgIDxpbmRleHRlcm0gem9uZT0iZGRsLXNlc3Npb24tdmFyaWFibGVzIj4KKyAgICA8 cHJpbWFyeT5TZXNzaW9uIHZhcmlhYmxlczwvcHJpbWFyeT4KKyAgIDwvaW5kZXh0ZXJtPgorCisg ICA8aW5kZXh0ZXJtPgorICAgIDxwcmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3ByaW1hcnk+Cisg ICA8L2luZGV4dGVybT4KKworICAgPHBhcmE+CisgICAgU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIGRh dGFiYXNlIG9iamVjdHMgdGhhdCBjYW4gaG9sZCBhIHZhbHVlLgorICAgIFNlc3Npb24gdmFyaWFi bGVzLCBsaWtlIHJlbGF0aW9ucywgZXhpc3Qgd2l0aGluIGEgc2NoZW1hIGFuZCB0aGVpciBhY2Nl c3MKKyAgICBpcyBjb250cm9sbGVkIHZpYSA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gYW5kIDxj b21tYW5kPlJFVk9LRTwvY29tbWFuZD4KKyAgICBjb21tYW5kcy4gIEEgc2Vzc2lvbiB2YXJpYWJs ZSBjYW4gYmUgY3JlYXRlZCBieSB0aGUgPGNvbW1hbmQ+Q1JFQVRFCisgICAgVkFSSUFCTEU8L2Nv bW1hbmQ+IGNvbW1hbmQuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSBzZXNzaW9u IHZhcmlhYmxlIGhvbGRzIHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAgVGhpcyB2YWx1ZSBpcyBw cml2YXRlCisgICAgdG8gZWFjaCBzZXNzaW9uIGFuZCBpcyByZWxlYXNlZCB3aGVuIHRoZSBzZXNz aW9uIGVuZHMuCisgICA8L3BhcmE+CisgIDwvc2VjdDE+CisKICA8c2VjdDEgaWQ9ImRkbC1vdGhl cnMiPgogICA8dGl0bGU+T3RoZXIgRGF0YWJhc2UgT2JqZWN0czwvdGl0bGU+CiAKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCmluZGV4 IDQ3MzcwZTU4MWFlLi4zZjVkOGM5NzdkZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Z1bmMu c2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCkBAIC0yNTI4Niw2ICsyNTI4NiwyNSBA QCBTRUxFQ1QgaGFzX2Z1bmN0aW9uX3ByaXZpbGVnZSgnam9ldXNlcicsICdteWZ1bmMoaW50LCB0 ZXh0KScsICdleGVjdXRlJyk7CiAgICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4K IAorICAgICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBh cmEgcm9sZT0iZnVuY19zaWduYXR1cmUiPgorICAgICAgICA8aW5kZXh0ZXJtPgorICAgICAgICAg PHByaW1hcnk+aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlPC9wcmltYXJ5PgorICAgICAg ICA8L2luZGV4dGVybT4KKyAgICAgICAgPGZ1bmN0aW9uPmhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZTwvZnVuY3Rpb24+ICgKKyAgICAgICAgICA8b3B0aW9uYWw+IDxwYXJhbWV0ZXI+dXNl cjwvcGFyYW1ldGVyPiA8dHlwZT5uYW1lPC90eXBlPiBvciA8dHlwZT5vaWQ8L3R5cGU+LCA8L29w dGlvbmFsPgorICAgICAgICAgIDxwYXJhbWV0ZXI+c2Vzc2lvbl92YXJpYWJsZTwvcGFyYW1ldGVy PiA8dHlwZT50ZXh0PC90eXBlPiBvciA8dHlwZT5vaWQ8L3R5cGU+LAorICAgICAgICAgIDxwYXJh bWV0ZXI+cHJpdmlsZWdlPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+ICkKKyAgICAgICAg PHJldHVybnZhbHVlPmJvb2xlYW48L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAg ICA8cGFyYT4KKyAgICAgICAgRG9lcyB1c2VyIGhhdmUgcHJpdmlsZWdlIGZvciBzZXNzaW9uIHZh cmlhYmxlPworICAgICAgICBBbGxvd2FibGUgcHJpdmlsZWdlIHR5cGVzIGFyZQorICAgICAgICA8 bGl0ZXJhbD5TRUxFQ1Q8L2xpdGVyYWw+LCBhbmQKKyAgICAgICAgPGxpdGVyYWw+VVBEQVRFPC9s aXRlcmFsPi4KKyAgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgIDwvcm93PgorCiAgICAgICA8 cm93PgogICAgICAgIDxlbnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJm dW5jX3NpZ25hdHVyZSI+CiAgICAgICAgIDxpbmRleHRlcm0+CkBAIC0yNTc5NCw2ICsyNTgxMywx OSBAQCBTRUxFQ1QgcmVsbmFtZSBGUk9NIHBnX2NsYXNzIFdIRVJFIHBnX3RhYmxlX2lzX3Zpc2li bGUob2lkKTsKICAgICAgICAgSXMgdHlwZSAob3IgZG9tYWluKSB2aXNpYmxlIGluIHNlYXJjaCBw YXRoPwogICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICAgPC9yb3c+CisKKyAgICAgIDxyb3c+ CisgICAgICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNf c2lnbmF0dXJlIj4KKyAgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAgIDxwcmltYXJ5PnBnX3Zh cmlhYmxlX2lzX3Zpc2libGU8L3ByaW1hcnk+CisgICAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAg ICA8ZnVuY3Rpb24+cGdfdmFyaWFibGVfaXNfdmlzaWJsZTwvZnVuY3Rpb24+ICggPHBhcmFtZXRl cj52YXJpYWJsZTwvcGFyYW1ldGVyPiA8dHlwZT5vaWQ8L3R5cGU+ICkKKyAgICAgICAgPHJldHVy bnZhbHVlPmJvb2xlYW48L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFy YT4KKyAgICAgICAgSXMgc2Vzc2lvbiB2YXJpYWJsZSB2aXNpYmxlIGluIHNlYXJjaCBwYXRoPwor ICAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICAgPC9yb3c+CiAgICAgIDwvdGJvZHk+CiAgICAg PC90Z3JvdXA+CiAgICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5 LnNnbWwgYi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAppbmRleCBmNTRmMjVjMWM2Yi4uZDBj YjUzNzYzYWEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCkBAIC0xNjY0LDYgKzE2NjQsMjEgQEAKICAgIDwvZ2xv c3NkZWY+CiAgIDwvZ2xvc3NlbnRyeT4KIAorICA8Z2xvc3NlbnRyeSBpZD0iZ2xvc3Nhcnktc2Vz c2lvbi12YXJpYWJsZSI+CisgICA8Z2xvc3N0ZXJtPlNlc3Npb24gdmFyaWFibGU8L2dsb3NzdGVy bT4KKyAgIDxnbG9zc2RlZj4KKyAgICA8cGFyYT4KKyAgICAgQSBwZXJzaXN0ZW50IGRhdGFiYXNl IG9iamVjdCB0aGF0IGhvbGRzIGEgdmFsdWUgaW4gc2Vzc2lvbiBtZW1vcnkuICBUaGlzCisgICAg IHZhbHVlIGlzIHByaXZhdGUgdG8gZWFjaCBzZXNzaW9uIGFuZCBpcyByZWxlYXNlZCB3aGVuIHRo ZSBzZXNzaW9uIGVuZHMuCisgICAgIFJlYWQgb3Igd3JpdGUgYWNjZXNzIHRvIHNlc3Npb24gdmFy aWFibGVzIGlzIGNvbnRyb2xsZWQgYnkgcHJpdmlsZWdlcywKKyAgICAgc2ltaWxhciB0byBvdGhl ciBkYXRhYmFzZSBvYmplY3RzLgorICAgIDwvcGFyYT4KKyAgICA8cGFyYT4KKyAgICAgRm9yIG1v cmUgaW5mb3JtYXRpb24sIHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMi Lz4uCisgICAgPC9wYXJhPgorICAgPC9nbG9zc2RlZj4KKyAgPC9nbG9zc2VudHJ5PgorCiAgIDxn bG9zc2VudHJ5IGlkPSJnbG9zc2FyeS1zaGFyZWQtbWVtb3J5Ij4KICAgIDxnbG9zc3Rlcm0+U2hh cmVkIG1lbW9yeTwvZ2xvc3N0ZXJtPgogICAgPGdsb3NzZGVmPgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21s CmluZGV4IGY1YmU2Mzg4NjdhLi4yZjY3ZGUzZTIxYiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L3JlZi9hbGxmaWxlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbApA QCAtNDcsNiArNDcsNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxl cyBpbiB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZIGFsdGVyVHlwZSAgICAgICAgICBTWVNURU0g ImFsdGVyX3R5cGUuc2dtbCI+CiA8IUVOVElUWSBhbHRlclVzZXIgICAgICAgICAgU1lTVEVNICJh bHRlcl91c2VyLnNnbWwiPgogPCFFTlRJVFkgYWx0ZXJVc2VyTWFwcGluZyAgIFNZU1RFTSAiYWx0 ZXJfdXNlcl9tYXBwaW5nLnNnbWwiPgorPCFFTlRJVFkgYWx0ZXJWYXJpYWJsZSAgICAgIFNZU1RF TSAiYWx0ZXJfdmFyaWFibGUuc2dtbCI+CiA8IUVOVElUWSBhbHRlclZpZXcgICAgICAgICAgU1lT VEVNICJhbHRlcl92aWV3LnNnbWwiPgogPCFFTlRJVFkgYW5hbHl6ZSAgICAgICAgICAgIFNZU1RF TSAiYW5hbHl6ZS5zZ21sIj4KIDwhRU5USVRZIGJlZ2luICAgICAgICAgICAgICBTWVNURU0gImJl Z2luLnNnbWwiPgpAQCAtOTksNiArMTAwLDcgQEAgQ29tcGxldGUgbGlzdCBvZiB1c2FibGUgc2dt bCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuCiA8IUVOVElUWSBjcmVhdGVUeXBlICAg ICAgICAgU1lTVEVNICJjcmVhdGVfdHlwZS5zZ21sIj4KIDwhRU5USVRZIGNyZWF0ZVVzZXIgICAg ICAgICBTWVNURU0gImNyZWF0ZV91c2VyLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlVXNlck1hcHBp bmcgIFNZU1RFTSAiY3JlYXRlX3VzZXJfbWFwcGluZy5zZ21sIj4KKzwhRU5USVRZIGNyZWF0ZVZh cmlhYmxlICAgICBTWVNURU0gImNyZWF0ZV92YXJpYWJsZS5zZ21sIj4KIDwhRU5USVRZIGNyZWF0 ZVZpZXcgICAgICAgICBTWVNURU0gImNyZWF0ZV92aWV3LnNnbWwiPgogPCFFTlRJVFkgZGVhbGxv Y2F0ZSAgICAgICAgIFNZU1RFTSAiZGVhbGxvY2F0ZS5zZ21sIj4KIDwhRU5USVRZIGRlY2xhcmUg ICAgICAgICAgICBTWVNURU0gImRlY2xhcmUuc2dtbCI+CkBAIC0xNDcsNiArMTQ5LDcgQEAgQ29t cGxldGUgbGlzdCBvZiB1c2FibGUgc2dtbCBzb3VyY2UgZmlsZXMgaW4gdGhpcyBkaXJlY3Rvcnku CiA8IUVOVElUWSBkcm9wVHlwZSAgICAgICAgICAgU1lTVEVNICJkcm9wX3R5cGUuc2dtbCI+CiA8 IUVOVElUWSBkcm9wVXNlciAgICAgICAgICAgU1lTVEVNICJkcm9wX3VzZXIuc2dtbCI+CiA8IUVO VElUWSBkcm9wVXNlck1hcHBpbmcgICAgU1lTVEVNICJkcm9wX3VzZXJfbWFwcGluZy5zZ21sIj4K KzwhRU5USVRZIGRyb3BWYXJpYWJsZSAgICAgICBTWVNURU0gImRyb3BfdmFyaWFibGUuc2dtbCI+ CiA8IUVOVElUWSBkcm9wVmlldyAgICAgICAgICAgU1lTVEVNICJkcm9wX3ZpZXcuc2dtbCI+CiA8 IUVOVElUWSBlbmQgICAgICAgICAgICAgICAgU1lTVEVNICJlbmQuc2dtbCI+CiA8IUVOVElUWSBl eGVjdXRlICAgICAgICAgICAgU1lTVEVNICJleGVjdXRlLnNnbWwiPgpkaWZmIC0tZ2l0IGEvZG9j L3NyYy9zZ21sL3JlZi9hbHRlcl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbCBiL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwKaW5kZXggODlhYWNlYzRmYWIuLmE1 ODUyZDMyNTY2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRfcHJp dmlsZWdlcy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxl Z2VzLnNnbWwKQEAgLTUxLDYgKzUxLDExIEBAIEdSQU5UIHsgeyBVU0FHRSB8IENSRUFURSB9CiAg ICAgT04gU0NIRU1BUwogICAgIFRPIHsgWyBHUk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiB8IFBVQkxJQyB9IFssIC4uLl0gWyBXSVRI IEdSQU5UIE9QVElPTiBdCiAKK0dSQU5UIHsgeyBTRUxFQ1QgfCBVUERBVEUgfQorICAgIFssIC4u Ll0gfCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIFZBUklBQkxFUworICAgIFRPIHsgWyBH Uk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2Vh YmxlPiB8IFBVQkxJQyB9IFssIC4uLl0gWyBXSVRIIEdSQU5UIE9QVElPTiBdCisKIFJFVk9LRSBb IEdSQU5UIE9QVElPTiBGT1IgXQogICAgIHsgeyBTRUxFQ1QgfCBJTlNFUlQgfCBVUERBVEUgfCBE RUxFVEUgfCBUUlVOQ0FURSB8IFJFRkVSRU5DRVMgfCBUUklHR0VSIHwgTUFJTlRBSU4gfQogICAg IFssIC4uLl0gfCBBTEwgWyBQUklWSUxFR0VTIF0gfQpAQCAtODMsNiArODgsMTIgQEAgUkVWT0tF IFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgICAgT04gU0NIRU1BUwogICAgIEZST00geyBbIEdST1VQ IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+ IHwgUFVCTElDIH0gWywgLi4uXQogICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKworUkVWT0tF IFsgR1JBTlQgT1BUSU9OIEZPUiBdCisgICAgeyB7IFNFTEVDVCB8IFVQREFURSB9IFssIC4uLl0g fCBBTEwgWyBQUklWSUxFR0VTIF0gfQorICAgIE9OIFZBUklBQkxFUworICAgIEZST00geyBbIEdS T1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFi bGU+IHwgUFVCTElDIH0gWywgLi4uXQorICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KIDwvc3lu b3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KIApAQCAtMTE3LDE0ICsxMjgsMTQgQEAgUkVWT0tF IFsgR1JBTlQgT1BUSU9OIEZPUiBdCiAgIDxwYXJhPgogICAgQ3VycmVudGx5LAogICAgb25seSB0 aGUgcHJpdmlsZWdlcyBmb3Igc2NoZW1hcywgdGFibGVzIChpbmNsdWRpbmcgdmlld3MgYW5kIGZv cmVpZ24KLSAgIHRhYmxlcyksIHNlcXVlbmNlcywgZnVuY3Rpb25zLCBhbmQgdHlwZXMgKGluY2x1 ZGluZyBkb21haW5zKSBjYW4gYmUKLSAgIGFsdGVyZWQuICBGb3IgdGhpcyBjb21tYW5kLCBmdW5j dGlvbnMgaW5jbHVkZSBhZ2dyZWdhdGVzIGFuZCBwcm9jZWR1cmVzLgotICAgVGhlIHdvcmRzIDxs aXRlcmFsPkZVTkNUSU9OUzwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFs PiBhcmUKLSAgIGVxdWl2YWxlbnQgaW4gdGhpcyBjb21tYW5kLiAgKDxsaXRlcmFsPlJPVVRJTkVT PC9saXRlcmFsPiBpcyBwcmVmZXJyZWQKLSAgIGdvaW5nIGZvcndhcmQgYXMgdGhlIHN0YW5kYXJk IHRlcm0gZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyB0YWtlbgotICAgdG9nZXRoZXIuICBJ biBlYXJsaWVyIFBvc3RncmVTUUwgcmVsZWFzZXMsIG9ubHkgdGhlCi0gICB3b3JkIDxsaXRlcmFs PkZVTkNUSU9OUzwvbGl0ZXJhbD4gd2FzIGFsbG93ZWQuICBJdCBpcyBub3QgcG9zc2libGUgdG8g c2V0Ci0gICBkZWZhdWx0IHByaXZpbGVnZXMgZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyBz ZXBhcmF0ZWx5LikKKyAgIHRhYmxlcyksIHNlcXVlbmNlcywgZnVuY3Rpb25zLCB0eXBlcyAoaW5j bHVkaW5nIGRvbWFpbnMpLCBhbmQgc2Vzc2lvbgorICAgdmFyaWFibGVzIGNhbiBiZSBhbHRlcmVk LiAgRm9yIHRoaXMgY29tbWFuZCwgZnVuY3Rpb25zIGluY2x1ZGUgYWdncmVnYXRlcworICAgYW5k IHByb2NlZHVyZXMuICBUaGUgd29yZHMgPGxpdGVyYWw+RlVOQ1RJT05TPC9saXRlcmFsPiBhbmQK KyAgIDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBhcmUgZXF1aXZhbGVudCBpbiB0aGlzIGNv bW1hbmQuCisgICAoPGxpdGVyYWw+Uk9VVElORVM8L2xpdGVyYWw+IGlzIHByZWZlcnJlZCBnb2lu ZyBmb3J3YXJkIGFzIHRoZSBzdGFuZGFyZAorICAgdGVybSBmb3IgZnVuY3Rpb25zIGFuZCBwcm9j ZWR1cmVzIHRha2VuIHRvZ2V0aGVyLiAgSW4gZWFybGllciBQb3N0Z3JlU1FMCisgICByZWxlYXNl cywgb25seSB0aGUgd29yZCA8bGl0ZXJhbD5GVU5DVElPTlM8L2xpdGVyYWw+IHdhcyBhbGxvd2Vk LiAgSXQgaXMgbm90CisgICBwb3NzaWJsZSB0byBzZXQgZGVmYXVsdCBwcml2aWxlZ2VzIGZvciBm dW5jdGlvbnMgYW5kIHByb2NlZHVyZXMgc2VwYXJhdGVseS4pCiAgIDwvcGFyYT4KIAogICA8cGFy YT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uOTZkMjU4NjQyM2UKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3ZhcmlhYmxlLnNnbWwKQEAgLTAsMCArMSwxNzggQEAKKzwhLS0KK2Rv Yy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0 aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtYWx0ZXJ2YXJpYWJsZSI+CisgPGluZGV4dGVy bSB6b25lPSJzcWwtYWx0ZXJ2YXJpYWJsZSI+CisgIDxwcmltYXJ5PkFMVEVSIFZBUklBQkxFPC9w cmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4dGVybT4KKyAgPHByaW1hcnk+c2Vzc2lv biB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFyeT5hbHRlcmluZzwvc2Vjb25kYXJ5Pgor IDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkFMVEVSIFZBUklB QkxFPC9yZWZlbnRyeXRpdGxlPgorICA8bWFudm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1p c2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0YXRlbWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0 YT4KKworIDxyZWZuYW1lZGl2PgorICA8cmVmbmFtZT5BTFRFUiBWQVJJQUJMRTwvcmVmbmFtZT4K KyAgPHJlZnB1cnBvc2U+CisgICBjaGFuZ2UgdGhlIGRlZmluaXRpb24gb2YgYSBzZXNzaW9uIHZh cmlhYmxlCisgIDwvcmVmcHVycG9zZT4KKyA8L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNk aXY+Cis8c3lub3BzaXM+CitBTFRFUiBWQVJJQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IE9XTkVSIFRPIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPm5ld19vd25lcjwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9ST0xFIHwgQ1VSUkVO VF9VU0VSIHwgU0VTU0lPTl9VU0VSIH0KK0FMVEVSIFZBUklBQkxFIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5uZXdfbmFtZTwvcmVwbGFjZWFibGU+CitBTFRFUiBWQVJJQUJMRSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFNFVCBTQ0hF TUEgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19zY2hlbWE8L3JlcGxhY2VhYmxl PgorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lzZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0 bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkFMVEVS IFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGNoYW5nZXMgdGhlIGRlZmluaXRpb24gb2YgYW4K KyAgIGV4aXN0aW5nIHNlc3Npb24gdmFyaWFibGUuIFRoZXJlIGFyZSBzZXZlcmFsIHN1YmZvcm1z OgorCisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRl cmFsPk9XTkVSPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgor ICAgICAgVGhpcyBmb3JtIGNoYW5nZXMgdGhlIG93bmVyIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxl LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisg ICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlJFTkFNRTwvbGl0ZXJhbD48L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgZm9ybSBjaGFuZ2Vz IHRoZSBuYW1lIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9s aXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0 ZXJtPjxsaXRlcmFsPlNFVCBTQ0hFTUE8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4K KyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gbW92ZXMgdGhlIHNlc3Npb24gdmFyaWFibGUg aW50byBhbm90aGVyIHNjaGVtYS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8 L3Zhcmxpc3RlbnRyeT4KKworICA8L3ZhcmlhYmxlbGlzdD4KKyAgPC9wYXJhPgorCisgIDxwYXJh PgorICAgT25seSB0aGUgb3duZXIgb3IgYSBzdXBlcnVzZXIgaXMgYWxsb3dlZCB0byBhbHRlciBh IHNlc3Npb24gdmFyaWFibGUuCisgICBJbiBvcmRlciB0byBtb3ZlIGEgc2Vzc2lvbiB2YXJpYWJs ZSBmcm9tIG9uZSBzY2hlbWEgdG8gYW5vdGhlciwgdGhlIHVzZXIKKyAgIG11c3QgYWxzbyBoYXZl IHRoZSA8bGl0ZXJhbD5DUkVBVEU8L2xpdGVyYWw+IHByaXZpbGVnZSBvbiB0aGUgbmV3IHNjaGVt YSAob3IKKyAgIGJlIGEgc3VwZXJ1c2VyKS4KKworICAgSW4gb3JkZXIgdG8gbW92ZSB0aGUgc2Vz c2lvbiB2YXJpYWJsZSBvd25lcnNoaXAgZnJvbSBvbmUgcm9sZSB0byBhbm90aGVyLAorICAgdGhl IHVzZXIgbXVzdCBhbHNvIGJlIGEgZGlyZWN0IG9yIGluZGlyZWN0IG1lbWJlciBvZiB0aGUgbmV3 CisgICBvd25pbmcgcm9sZSwgYW5kIHRoYXQgcm9sZSBtdXN0IGhhdmUgdGhlIDxsaXRlcmFsPkNS RUFURTwvbGl0ZXJhbD4gcHJpdmlsZWdlCisgICBvbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSdzIHNj aGVtYSAob3IgYmUgYSBzdXBlcnVzZXIpLiBUaGVzZSByZXN0cmljdGlvbnMKKyAgIGVuZm9yY2Ug dGhhdCBhbHRlcmluZyB0aGUgb3duZXIgZG9lc24ndCBkbyBhbnl0aGluZyB5b3UgY291bGRuJ3Qg ZG8gYnkKKyAgIGRyb3BwaW5nIGFuZCByZWNyZWF0aW5nIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgor ICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRl cnM8L3RpdGxlPgorCisgICA8cGFyYT4KKyAgICA8dmFyaWFibGVsaXN0PgorICAgICA8dmFybGlz dGVudHJ5PgorICAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8 L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAg ICAgICAgVGhlIG5hbWUgKHBvc3NpYmx5IHNjaGVtYS1xdWFsaWZpZWQpIG9mIHRoZSBleGlzdGlu ZyBzZXNzaW9uIHZhcmlhYmxlCisgICAgICAgIHRvIGFsdGVyLgorICAgICAgIDwvcGFyYT4KKyAg ICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgIDx2YXJsaXN0ZW50 cnk+CisgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmV3X293bmVy PC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+Cisg ICAgICAgIFRoZSB1c2VyIG5hbWUgb2YgdGhlIG5ldyBvd25lciBvZiB0aGUgc2Vzc2lvbiB2YXJp YWJsZS4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3Rl bnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm5ld19uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgICA8bGlz dGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBuZXcgbmFtZSBmb3IgdGhlIHNlc3Np b24gdmFyaWFibGUuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfc2NoZW1hPC9yZXBsYWNlYWJsZT48L3Rlcm0+Cisg ICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBuZXcgc2NoZW1hIGZv ciB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVt PgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICA8L3ZhcmlhYmxlbGlzdD4KKyAgIDwvcGFyYT4K KyAgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4K KworICA8cGFyYT4KKyAgIFRvIHJlbmFtZSBhIHNlc3Npb24gdmFyaWFibGU6Cis8cHJvZ3JhbWxp c3Rpbmc+CitBTFRFUiBWQVJJQUJMRSBmb28gUkVOQU1FIFRPIGJvbzsKKzwvcHJvZ3JhbWxpc3Rp bmc+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFRvIGNoYW5nZSB0aGUgb3duZXIgb2YgdGhl IHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+Ym9vPC9saXRlcmFsPiB0bworICAgPGxpdGVyYWw+ am9lPC9saXRlcmFsPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFZBUklBQkxFIGJvbyBPV05F UiBUTyBqb2U7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBU byBjaGFuZ2UgdGhlIHNjaGVtYSBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0ZXJhbD5ib288 L2xpdGVyYWw+IHRvCisgICA8bGl0ZXJhbD5wcml2YXRlPC9saXRlcmFsPjoKKzxwcm9ncmFtbGlz dGluZz4KK0FMVEVSIFZBUklBQkxFIGJvbyBTRVQgU0NIRU1BIHByaXZhdGU7Cis8L3Byb2dyYW1s aXN0aW5nPgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxl PkNvbXBhdGliaWxpdHk8L3RpdGxlPgorCisgIDxwYXJhPgorICAgU2Vzc2lvbiB2YXJpYWJsZXMg YW5kIHRoaXMgY29tbWFuZCBpbiBwYXJ0aWN1bGFyIGFyZSBhIFBvc3RncmVTUUwgZXh0ZW5zaW9u LgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MSBpZD0ic3FsLWFsdGVydmFy aWFibGUtc2VlLWFsc28iPgorICA8dGl0bGU+U2VlIEFsc288L3RpdGxlPgorCisgIDxzaW1wbGVs aXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGV2 YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtZHJvcHZh cmlhYmxlIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorPC9yZWZl bnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5zZ21sIGIvZG9jL3Ny Yy9zZ21sL3JlZi9jb21tZW50LnNnbWwKaW5kZXggNWI0M2M1NmIxMzMuLjIxY2Q4MDgxOGZiIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2NvbW1lbnQuc2dtbApAQCAtNjUsNiArNjUsNyBAQCBDT01NRU5UIE9OCiAgIFRSQU5T Rk9STSBGT1IgPHJlcGxhY2VhYmxlPnR5cGVfbmFtZTwvcmVwbGFjZWFibGU+IExBTkdVQUdFIDxy ZXBsYWNlYWJsZT5sYW5nX25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFRSSUdHRVIgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRyaWdnZXJfbmFtZTwvcmVwbGFjZWFibGU+IE9OIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gfAogICBU WVBFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5vYmplY3RfbmFtZTwvcmVwbGFjZWFi bGU+IHwKKyAgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9u YW1lPC9yZXBsYWNlYWJsZT4gfAogICBWSUVXIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5vYmplY3RfbmFtZTwvcmVwbGFjZWFibGU+CiB9IElTIHsgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnN0cmluZ19saXRlcmFsPC9yZXBsYWNlYWJsZT4gfCBOVUxMIH0KIApkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwgYi9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV9zY2hlbWEuc2dtbAppbmRleCBlZDY5Mjk4Y2NjNi4uZDJiYjI2NTIwOWIgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sCkBAIC0xMDMsOSArMTAzLDEwIEBAIENSRUFU RSBTQ0hFTUEgSUYgTk9UIEVYSVNUUyBBVVRIT1JJWkFUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5yb2xlX3NwCiAgICAgICAgIHNjaGVtYS4gQ3VycmVudGx5LCBvbmx5IDxjb21t YW5kPkNSRUFURQogICAgICAgICBUQUJMRTwvY29tbWFuZD4sIDxjb21tYW5kPkNSRUFURSBWSUVX PC9jb21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRFCiAgICAgICAgIElOREVYPC9jb21tYW5kPiwgPGNv bW1hbmQ+Q1JFQVRFIFNFUVVFTkNFPC9jb21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRFCi0gICAgICAg IFRSSUdHRVI8L2NvbW1hbmQ+IGFuZCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gYXJlIGFjY2Vw dGVkIGFzIGNsYXVzZXMKLSAgICAgICAgd2l0aGluIDxjb21tYW5kPkNSRUFURSBTQ0hFTUE8L2Nv bW1hbmQ+LiBPdGhlciBraW5kcyBvZiBvYmplY3RzIG1heQotICAgICAgICBiZSBjcmVhdGVkIGlu IHNlcGFyYXRlIGNvbW1hbmRzIGFmdGVyIHRoZSBzY2hlbWEgaXMgY3JlYXRlZC4KKyAgICAgICAg VFJJR0dFUjwvY29tbWFuZD4sIDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBhbmQgPGNvbW1hbmQ+ Q1JFQVRFCisgICAgICAgIFZBUklBQkxFPC9jb21tYW5kPiBhcmUgYWNjZXB0ZWQgYXMgY2xhdXNl cyB3aXRoaW4gPGNvbW1hbmQ+Q1JFQVRFCisgICAgICAgIFNDSEVNQTwvY29tbWFuZD4uIE90aGVy IGtpbmRzIG9mIG9iamVjdHMgbWF5IGJlIGNyZWF0ZWQgaW4gc2VwYXJhdGUKKyAgICAgICAgY29t bWFuZHMgYWZ0ZXIgdGhlIHNjaGVtYSBpcyBjcmVhdGVkLgogICAgICAgIDwvcGFyYT4KICAgICAg IDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgpAQCAtMjE0LDYgKzIxNSwxMSBAQCBD UkVBVEUgVklFVyBob2xseXdvb2Qud2lubmVycyBBUwogICAgVGhlIDxsaXRlcmFsPklGIE5PVCBF WElTVFM8L2xpdGVyYWw+IG9wdGlvbiBpcyBhCiAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwv cHJvZHVjdG5hbWU+IGV4dGVuc2lvbi4KICAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIDxj b21tYW5kPkNSRUFURSBWQVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCBpcyBhCisgICA8cHJvZHVj dG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGV4dGVuc2lvbi4KKyAgPC9wYXJhPgogIDwv cmVmc2VjdDE+CiAKICA8cmVmc2VjdDE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dt bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmU5ODhmMmU0NzIKLS0t IC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCkBA IC0wLDAgKzEsMTQ5IEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5z Z21sCitQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1j cmVhdGV2YXJpYWJsZSI+CisgPGluZGV4dGVybSB6b25lPSJzcWwtY3JlYXRldmFyaWFibGUiPgor ICA8cHJpbWFyeT5DUkVBVEUgVkFSSUFCTEU8L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8 aW5kZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNzaW9uIHZhcmlhYmxlPC9wcmltYXJ5PgorICA8c2Vj b25kYXJ5PmRlZmluaW5nPC9zZWNvbmRhcnk+CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4K KyAgPHJlZmVudHJ5dGl0bGU+Q1JFQVRFIFZBUklBQkxFPC9yZWZlbnRyeXRpdGxlPgorICA8bWFu dm9sbnVtPjc8L21hbnZvbG51bT4KKyAgPHJlZm1pc2NpbmZvPlNRTCAtIExhbmd1YWdlIFN0YXRl bWVudHM8L3JlZm1pc2NpbmZvPgorIDwvcmVmbWV0YT4KKworIDxyZWZuYW1lZGl2PgorICA8cmVm bmFtZT5DUkVBVEUgVkFSSUFCTEU8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPmRlZmluZSBhIHNl c3Npb24gdmFyaWFibGU8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9w c2lzZGl2PgorPHN5bm9wc2lzPgorQ1JFQVRFIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWyBBUyBdIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRhX3R5cGU8L3JlcGxhY2VhYmxlPiBbIENP TExBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFi bGU+IF0KKzwvc3lub3BzaXM+CisgPC9yZWZzeW5vcHNpc2Rpdj4KKyA8cmVmc2VjdDE+CisgIDx0 aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+Q1JF QVRFIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGNyZWF0ZXMgYSBzZXNzaW9uIHZhcmlhYmxl LgorICAgU2Vzc2lvbiB2YXJpYWJsZXMsIGxpa2UgcmVsYXRpb25zLCBleGlzdCB3aXRoaW4gYSBz Y2hlbWEgYW5kIHRoZWlyIGFjY2VzcyBpcworICAgY29udHJvbGxlZCB2aWEgdGhlIGNvbW1hbmRz IDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBhbmQgPGNvbW1hbmQ+UkVWT0tFPC9jb21tYW5kPi4K KyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJs ZSBpcyBsb2NhbCB0byB0aGUgY3VycmVudCBzZXNzaW9uLiAgUmV0cmlldmluZworICAgYSBzZXNz aW9uIHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBOVUxMLCB1bmxlc3MgaXRzIHZhbHVlIGlzIHNl dCB0bworICAgc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB3aXRoIGEgPGNv bW1hbmQ+TEVUPC9jb21tYW5kPiBjb21tYW5kLgorICAgVGhlIGNvbnRlbnQgb2YgYSBzZXNzaW9u IHZhcmlhYmxlIGlzIG5vdCB0cmFuc2FjdGlvbmFsLiBUaGlzIGlzIHRoZSBzYW1lIGFzCisgICBy ZWd1bGFyIHZhcmlhYmxlcyBpbiBwcm9jZWR1cmFsIGxhbmd1YWdlcy4KKyAgPC9wYXJhPgorCisg IDxwYXJhPgorICAgU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHJldHJpZXZlZCBieSB0aGUgPGNvbW1h bmQ+U0VMRUNUPC9jb21tYW5kPgorICAgY29tbWFuZC4gIFRoZWlyIHZhbHVlIGlzIHNldCB3aXRo IHRoZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuCisgIDwvcGFyYT4KKworICA8bm90 ZT4KKyAgIDxwYXJhPgorICAgIFNlc3Npb24gdmFyaWFibGVzIGNhbiBiZSA8cXVvdGU+c2hhZG93 ZWQ8L3F1b3RlPiBieSBvdGhlciBpZGVudGlmaWVycy4KKyAgICBGb3IgZGV0YWlscywgc2VlIDx4 cmVmIGxpbmtlbmQ9ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyIvPi4KKyAgIDwvcGFyYT4KKyAgPC9u b3RlPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90 aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorCisgICA8dmFybGlzdGVudHJ5ICBpZD0ic3FsLWNy ZWF0ZXZhcmlhYmxlLWlmLW5vdC1leGlzdHMiPgorICAgIDx0ZXJtPjxsaXRlcmFsPklGIE5PVCBF WElTVFM8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAg ICBEbyBub3QgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIG5hbWUgYWxyZWFkeSBleGlzdHMuIEEgbm90 aWNlIGlzIGlzc3VlZCBpbgorICAgICAgdGhpcyBjYXNlLgorICAgICA8L3BhcmE+CisgICAgPC9s aXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwt Y3JlYXRldmFyaWFibGUtbmFtZSI+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxw YXJhPgorICAgICAgVGhlIG5hbWUsIG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCwgb2YgdGhl IHNlc3Npb24gdmFyaWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92 YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1k YXRhX3R5cGUiPgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRh X3R5cGU8L3JlcGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgor ICAgICAgVGhlIG5hbWUsIG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCwgb2YgdGhlIGRhdGEg dHlwZSBvZiB0aGUgc2Vzc2lvbgorICAgICAgdmFyaWFibGUuCisgICAgIDwvcGFyYT4KKyAgICA8 L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0ZW50cnkgaWQ9InNx bC1jcmVhdGV2YXJpYWJsZS1jb2xsYXRlIj4KKyAgICA8dGVybT48bGl0ZXJhbD5DT0xMQVRFIDxy ZXBsYWNlYWJsZT5jb2xsYXRpb248L3JlcGxhY2VhYmxlPjwvbGl0ZXJhbD48L3Rlcm0+CisgICAg PGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSA8bGl0ZXJhbD5DT0xMQVRFPC9saXRl cmFsPiBjbGF1c2UgYXNzaWducyBhIGNvbGxhdGlvbiB0byB0aGUgc2Vzc2lvbgorICAgICAgdmFy aWFibGUgKHdoaWNoIG11c3QgYmUgb2YgYSBjb2xsYXRhYmxlIGRhdGEgdHlwZSkuICBJZiBub3Qg c3BlY2lmaWVkLAorICAgICAgdGhlIGRhdGEgdHlwZSdzIGRlZmF1bHQgY29sbGF0aW9uIGlzIHVz ZWQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisK KyAgPC92YXJpYWJsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxl Pk5vdGVzPC90aXRsZT4KKworICA8cGFyYT4KKyAgIFVzZSB0aGUgPGNvbW1hbmQ+RFJPUCBWQVJJ QUJMRTwvY29tbWFuZD4gY29tbWFuZCB0byByZW1vdmUgYSBzZXNzaW9uCisgICB2YXJpYWJsZS4K KyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxl czwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBDcmVhdGUgYW4gZGF0ZSBzZXNzaW9uIHZhcmlhYmxl IDxsaXRlcmFsPnZhcjE8L2xpdGVyYWw+OgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgZGF0ZTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKworIDwvcmVm c2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4KKwor ICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5DUkVBVEUgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1h bmQgaXMgYQorICAgPHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPiBleHRlbnNp b24uCisgIDwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+U2Vl IEFsc288L3RpdGxlPgorCisgIDxzaW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CisgICA8bWVtYmVy Pjx4cmVmIGxpbmtlbmQ9InNxbC1hbHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVy Pjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAgPC9zaW1wbGVs aXN0PgorIDwvcmVmc2VjdDE+CisKKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJs ZS5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41YmRiMzU2MGYw YgotLS0gL2Rldi9udWxsCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21s CkBAIC0wLDAgKzEsMTE3IEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUu c2dtbAorUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwt ZHJvcHZhcmlhYmxlIj4KKyA8aW5kZXh0ZXJtIHpvbmU9InNxbC1kcm9wdmFyaWFibGUiPgorICA8 cHJpbWFyeT5EUk9QIFZBUklBQkxFPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4 dGVybT4KKyAgPHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFy eT5yZW1vdmluZzwvc2Vjb25kYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxy ZWZlbnRyeXRpdGxlPkRST1AgVkFSSUFCTEU8L3JlZmVudHJ5dGl0bGU+CisgIDxtYW52b2xudW0+ NzwvbWFudm9sbnVtPgorICA8cmVmbWlzY2luZm8+U1FMIC0gTGFuZ3VhZ2UgU3RhdGVtZW50czwv cmVmbWlzY2luZm8+CisgPC9yZWZtZXRhPgorCisgPHJlZm5hbWVkaXY+CisgIDxyZWZuYW1lPkRS T1AgVkFSSUFCTEU8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3NlPnJlbW92ZSBhIHNlc3Npb24gdmFy aWFibGU8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2Pgor PHN5bm9wc2lzPgorRFJPUCBWQVJJQUJMRSBbIElGIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBbIENBU0NBREUgfCBSRVNU UklDVCBdCis8L3N5bm9wc2lzPgorIDwvcmVmc3lub3BzaXNkaXY+CisKKyA8cmVmc2VjdDE+Cisg IDx0aXRsZT5EZXNjcmlwdGlvbjwvdGl0bGU+CisKKyAgPHBhcmE+CisgICA8Y29tbWFuZD5EUk9Q IFZBUklBQkxFPC9jb21tYW5kPiByZW1vdmVzIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgIEEgc2Vz c2lvbiB2YXJpYWJsZSBjYW4gb25seSBiZSByZW1vdmVkIGJ5IGl0cyBvd25lciBvciBhIHN1cGVy dXNlci4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Q YXJhbWV0ZXJzPC90aXRsZT4KKworICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4K KyAgICA8dGVybT48bGl0ZXJhbD5JRiBFWElTVFM8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0 aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBEbyBub3QgdGhyb3cgYW4gZXJyb3IgaWYgdGhlIHNl c3Npb24gdmFyaWFibGUgZG9lcyBub3QgZXhpc3QuIEEgbm90aWNlIGlzCisgICAgICBpc3N1ZWQg aW4gdGhpcyBjYXNlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgor ICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lLCBvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQs IG9mIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+Cisg ICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJh bD5DQVNDQURFPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgor ICAgICAgQXV0b21hdGljYWxseSBkcm9wIG9iamVjdHMgdGhhdCBkZXBlbmQgb24gdGhlIHNlc3Np b24gdmFyaWFibGUgKHN1Y2ggYXMKKyAgICAgIHZpZXdzKSwgYW5kIGluIHR1cm4gYWxsIG9iamVj dHMgdGhhdCBkZXBlbmQgb24gdGhvc2Ugb2JqZWN0cworICAgICAgKHNlZSA8eHJlZiBsaW5rZW5k PSJkZGwtZGVwZW5kIi8+KS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zh cmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5SRVNU UklDVDwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAg IFJlZnVzZSB0byBkcm9wIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGlmIGFueSBvYmplY3RzIGRlcGVu ZCBvbiBpdC4gIFRoaXMgaXMKKyAgICAgIHRoZSBkZWZhdWx0LgorICAgICA8L3BhcmE+CisgICAg PC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3Jl ZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCisgIDxw YXJhPgorICAgVG8gcmVtb3ZlIHRoZSBzZXNzaW9uIHZhcmlhYmxlIDxsaXRlcmFsPnZhcjE8L2xp dGVyYWw+OgorCis8cHJvZ3JhbWxpc3Rpbmc+CitEUk9QIFZBUklBQkxFIHZhcjE7Cis8L3Byb2dy YW1saXN0aW5nPjwvcGFyYT4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+ Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNvbW1hbmQ+RFJPUCBW QVJJQUJMRTwvY29tbWFuZD4gY29tbWFuZCBpcyBhCisgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNR TDwvcHJvZHVjdG5hbWU+IGV4dGVuc2lvbi4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8 cmVmc2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlw ZT0iaW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUi Lz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxl Ii8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCis8L3JlZmVudHJ5 PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9ncmFudC5zZ21sCmluZGV4IDk5OWY2NTdkNWMwLi5jMTE4NjBmYTIwMCAxMDA2NDQKLS0t IGEvZG9jL3NyYy9zZ21sL3JlZi9ncmFudC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZ3Jh bnQuc2dtbApAQCAtMTAxLDYgKzEwMSwxMiBAQCBHUkFOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSBUTyA8cmVwbGFjZQogICAg IFsgV0lUSCB7IEFETUlOIHwgSU5IRVJJVCB8IFNFVCB9IHsgT1BUSU9OIHwgVFJVRSB8IEZBTFNF IH0gXQogICAgIFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9s ZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gXQogCitHUkFOVCB7IFNFTEVDVCB8IFVQREFU RSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9CisgICAgT04geyBWQVJJQUJMRSA8cmVwbGFjZWFibGU+ dmFyaWFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0KKyAgICAgICB8IEFMTCBWQVJJQUJM RVMgSU4gU0NIRU1BIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwv cmVwbGFjZWFibGU+IFssIC4uLl0gfQorICAgIFRPIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFsgV0lUSCBHUkFO VCBPUFRJT04gXQorICAgIFsgR1JBTlRFRCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gXQorCiA8cGhyYXNlPndoZXJlIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2Vh YmxlPiBjYW4gYmU6PC9waHJhc2U+CiAKICAgICBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+CkBAIC0xMTksOCArMTI1LDggQEAg R1JBTlQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFi bGU+IFssIC4uLl0gVE8gPHJlcGxhY2UKICAgIHRoYXQgZ3JhbnRzIHByaXZpbGVnZXMgb24gYSBk YXRhYmFzZSBvYmplY3QgKHRhYmxlLCBjb2x1bW4sIHZpZXcsCiAgICBmb3JlaWduIHRhYmxlLCBz ZXF1ZW5jZSwgZGF0YWJhc2UsIGZvcmVpZ24tZGF0YSB3cmFwcGVyLCBmb3JlaWduIHNlcnZlciwK ICAgIGZ1bmN0aW9uLCBwcm9jZWR1cmUsIHByb2NlZHVyYWwgbGFuZ3VhZ2UsIGxhcmdlIG9iamVj dCwgY29uZmlndXJhdGlvbgotICAgcGFyYW1ldGVyLCBzY2hlbWEsIHRhYmxlc3BhY2UsIG9yIHR5 cGUpLCBhbmQgb25lIHRoYXQgZ3JhbnRzCi0gICBtZW1iZXJzaGlwIGluIGEgcm9sZS4gIFRoZXNl IHZhcmlhbnRzIGFyZSBzaW1pbGFyIGluIG1hbnkgd2F5cywgYnV0CisgICBwYXJhbWV0ZXIsIHNj aGVtYSwgc2Vzc2lvbiB2YXJpYWJsZSwgdGFibGVzcGFjZSwgb3IgdHlwZSksIGFuZCBvbmUgdGhh dAorICAgZ3JhbnRzIG1lbWJlcnNoaXAgaW4gYSByb2xlLiAgVGhlc2UgdmFyaWFudHMgYXJlIHNp bWlsYXIgaW4gbWFueSB3YXlzLCBidXQKICAgIHRoZXkgYXJlIGRpZmZlcmVudCBlbm91Z2ggdG8g YmUgZGVzY3JpYmVkIHNlcGFyYXRlbHkuCiAgIDwvcGFyYT4KIApAQCAtMjM2LDkgKzI0Miw5IEBA IEdSQU5UIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2Vh YmxlPiBbLCAuLi5dIFRPIDxyZXBsYWNlCiAgIDxwYXJhPgogICAgVGhlcmUgaXMgYWxzbyBhbiBv cHRpb24gdG8gZ3JhbnQgcHJpdmlsZWdlcyBvbiBhbGwgb2JqZWN0cyBvZiB0aGUgc2FtZQogICAg dHlwZSB3aXRoaW4gb25lIG9yIG1vcmUgc2NoZW1hcy4gIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyBj dXJyZW50bHkgc3VwcG9ydGVkCi0gICBvbmx5IGZvciB0YWJsZXMsIHNlcXVlbmNlcywgZnVuY3Rp b25zLCBhbmQgcHJvY2VkdXJlcy4gIDxsaXRlcmFsPkFMTAotICAgVEFCTEVTPC9saXRlcmFsPiBh bHNvIGFmZmVjdHMgdmlld3MgYW5kIGZvcmVpZ24gdGFibGVzLCBqdXN0IGxpa2UgdGhlCi0gICBz cGVjaWZpYy1vYmplY3QgPGNvbW1hbmQ+R1JBTlQ8L2NvbW1hbmQ+IGNvbW1hbmQuICA8bGl0ZXJh bD5BTEwKKyAgIG9ubHkgZm9yIHRhYmxlcywgc2VxdWVuY2VzLCBmdW5jdGlvbnMsIHByb2NlZHVy ZXMgYW5kIHZhcmlhYmxlcy4KKyAgIDxsaXRlcmFsPkFMTCBUQUJMRVM8L2xpdGVyYWw+IGFsc28g YWZmZWN0cyB2aWV3cyBhbmQgZm9yZWlnbiB0YWJsZXMsIGp1c3QKKyAgIGxpa2UgdGhlIHNwZWNp ZmljLW9iamVjdCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gY29tbWFuZC4gIDxsaXRlcmFsPkFM TAogICAgRlVOQ1RJT05TPC9saXRlcmFsPiBhbHNvIGFmZmVjdHMgYWdncmVnYXRlIGFuZCB3aW5k b3cgZnVuY3Rpb25zLCBidXQgbm90CiAgICBwcm9jZWR1cmVzLCBhZ2FpbiBqdXN0IGxpa2UgdGhl IHNwZWNpZmljLW9iamVjdCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4KICAgIGNvbW1hbmQuICBV c2UgPGxpdGVyYWw+QUxMIFJPVVRJTkVTPC9saXRlcmFsPiB0byBpbmNsdWRlIHByb2NlZHVyZXMu CkBAIC01MTgsOCArNTI0LDggQEAgR1JBTlQgYWRtaW5zIFRPIGpvZTsKICAgIDwvcGFyYT4KIAog ICAgPHBhcmE+Ci0gICAgUHJpdmlsZWdlcyBvbiBkYXRhYmFzZXMsIHRhYmxlc3BhY2VzLCBzY2hl bWFzLCBsYW5ndWFnZXMsIGFuZAotICAgIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBhcmUKKyAg ICBQcml2aWxlZ2VzIG9uIGRhdGFiYXNlcywgdGFibGVzcGFjZXMsIHNjaGVtYXMsIGxhbmd1YWdl cywgc2Vzc2lvbiB2YXJpYWJsZXMKKyAgICBhbmQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGFy ZQogICAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9ucy4K ICAgIDwvcGFyYT4KICA8L3JlZnNlY3QxPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9w c3FsLXJlZi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCmluZGV4IDcyZjMz NDdlNTNkLi5hYzI2NWRiMzVlNyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJl Zi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbApAQCAtMjAzNCw2ICsy MDM0LDE5IEBAIFNFTEVDVCAkMSBccGFyc2Ugc3RtdDEKICAgICAgICAgPC9saXN0aXRlbT4KICAg ICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgICA8dmFybGlzdGVudHJ5IGlkPSJhcHAtcHNxbC1t ZXRhLWNvbW1hbmQtZHYiPgorICAgICAgICA8dGVybT48bGl0ZXJhbD5cZFZbK10gWyA8bGluayBs aW5rZW5kPSJhcHAtcHNxbC1wYXR0ZXJucyI+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnBhdHRlcm48L3JlcGxhY2VhYmxlPjwvbGluaz4gXTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAg IDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgIExpc3RzIHNlc3Npb24gdmFyaWFi bGVzLgorICAgICAgICBJZiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cGF0dGVybjwv cmVwbGFjZWFibGU+IGlzCisgICAgICAgIHNwZWNpZmllZCwgb25seSBzZXNzaW9uIHZhcmlhYmxl cyB3aG9zZSBuYW1lcyBtYXRjaCB0aGUgcGF0dGVybiBhcmUgbGlzdGVkLgorICAgICAgICBJZiB0 aGUgZm9ybSA8bGl0ZXJhbD5cZFYrPC9saXRlcmFsPiBpcyB1c2VkLCBhZGRpdGlvbmFsIGluZm9y bWF0aW9uCisgICAgICAgIGFib3V0IGVhY2ggdmFyaWFibGUgaXMgc2hvd24sIGxpa2UgIGFjY2Vz cyBwcml2aWxlZ2VzIGFuZCBkZXNjcmlwdGlvbi4KKyAgICAgICAgPC9wYXJhPgorICAgICAgICA8 L2xpc3RpdGVtPgorICAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgIDx2YXJsaXN0ZW50cnkg aWQ9ImFwcC1wc3FsLW1ldGEtY29tbWFuZC1kdSI+CiAgICAgICAgIDx0ZXJtPjxsaXRlcmFsPlxk dVtTK10gWyA8bGluayBsaW5rZW5kPSJhcHAtcHNxbC1wYXR0ZXJucyI+PHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnBhdHRlcm48L3JlcGxhY2VhYmxlPjwvbGluaz4gXTwvbGl0ZXJhbD48 L3Rlcm0+CiAgICAgICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYv cmV2b2tlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3Jldm9rZS5zZ21sCmluZGV4IDhkZjQ5MjI4 MWExLi43NjBmZGRiN2MyMCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9yZXZva2Uuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3Jldm9rZS5zZ21sCkBAIC0xMzAsNiArMTMwLDE0IEBA IFJFVk9LRSBbIHsgQURNSU4gfCBJTkhFUklUIHwgU0VUIH0gT1BUSU9OIEZPUiBdCiAgICAgWyBH UkFOVEVEIEJZIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRp b248L3JlcGxhY2VhYmxlPiBdCiAgICAgWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQogCitSRVZPS0Ug WyBHUkFOVCBPUFRJT04gRk9SIF0KKyAgICB7IHsgU0VMRUNUIHwgVVBEQVRFIH0gWywgLi4uXSB8 IEFMTCBbIFBSSVZJTEVHRVMgXSB9CisgICAgT04geyBWQVJJQUJMRSA8cmVwbGFjZWFibGU+dmFy aWFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0KKyAgICAgICB8IEFMTCBWQVJJQUJMRVMg SU4gU0NIRU1BIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVw bGFjZWFibGU+IFssIC4uLl0gfQorICAgIEZST00geyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNlYWJsZT4gfCBQVUJMSUMgfSBbLCAuLi5d CisgICAgWyBHUkFOVEVEIEJZIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3Nw ZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBdCisgICAgWyBDQVNDQURFIHwgUkVTVFJJQ1QgXQor CiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNp ZmljYXRpb248L3JlcGxhY2VhYmxlPiBjYW4gYmU6PC9waHJhc2U+CiAKICAgICBbIEdST1VQIF0g PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+CmRp ZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm ZXJlbmNlLnNnbWwKaW5kZXggZmY4NWFjZTgzZmMuLjI1NTc4ZjM5NDZjIDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5z Z21sCkBAIC03NSw2ICs3NSw3IEBACiAgICAmYWx0ZXJUeXBlOwogICAgJmFsdGVyVXNlcjsKICAg ICZhbHRlclVzZXJNYXBwaW5nOworICAgJmFsdGVyVmFyaWFibGU7CiAgICAmYWx0ZXJWaWV3Owog ICAgJmFuYWx5emU7CiAgICAmYmVnaW47CkBAIC0xMjcsNiArMTI4LDcgQEAKICAgICZjcmVhdGVU eXBlOwogICAgJmNyZWF0ZVVzZXI7CiAgICAmY3JlYXRlVXNlck1hcHBpbmc7CisgICAmY3JlYXRl VmFyaWFibGU7CiAgICAmY3JlYXRlVmlldzsKICAgICZkZWFsbG9jYXRlOwogICAgJmRlY2xhcmU7 CkBAIC0xNzUsNiArMTc3LDcgQEAKICAgICZkcm9wVHlwZTsKICAgICZkcm9wVXNlcjsKICAgICZk cm9wVXNlck1hcHBpbmc7CisgICAmZHJvcFZhcmlhYmxlOwogICAgJmRyb3BWaWV3OwogICAgJmVu ZDsKICAgICZleGVjdXRlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmls ZSBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKaW5kZXggYzA5MDA5NGVkMDguLjJjMjBk NjBkYjE5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCisrKyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKQEAgLTQ1LDYgKzQ1LDcgQEAgT0JKUyA9IFwKIAlw Z19zaGRlcGVuZC5vIFwKIAlwZ19zdWJzY3JpcHRpb24ubyBcCiAJcGdfdHlwZS5vIFwKKwlwZ192 YXJpYWJsZS5vIFwKIAlzdG9yYWdlLm8gXAogCXRvYXN0aW5nLm8KIApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY2F0YWxvZy9hY2xjaGsuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMK aW5kZXggYjE5NjI5NGZiMjkuLjMzYmEwYjdmZjJiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j YXRhbG9nL2FjbGNoay5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKQEAgLTY0 LDYgKzY0LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5k cy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V2 ZW50X3RyaWdnZXIuaCIKQEAgLTI5MSw2ICsyOTIsOSBAQCByZXN0cmljdF9hbmRfY2hlY2tfZ3Jh bnQoYm9vbCBpc19ncmFudCwgQWNsTW9kZSBhdmFpbF9nb3B0aW9ucywgYm9vbCBhbGxfcHJpdnMs CiAJCWNhc2UgT0JKRUNUX1BBUkFNRVRFUl9BQ0w6CiAJCQl3aG9sZV9tYXNrID0gQUNMX0FMTF9S SUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToK KwkJCXdob2xlX21hc2sgPSBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJCWJyZWFrOwogCQlk ZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLCBv Ymp0eXBlKTsKIAkJCS8qIG5vdCByZWFjaGVkLCBidXQga2VlcCBjb21waWxlciBxdWlldCAqLwpA QCAtNTM1LDYgKzUzOSwxMCBAQCBFeGVjdXRlR3JhbnRTdG10KEdyYW50U3RtdCAqc3RtdCkKIAkJ CWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfUEFSQU1FVEVSX0FDTDsKIAkJCWVycm9y bXNnID0gZ2V0dGV4dF9ub29wKCJpbnZhbGlkIHByaXZpbGVnZSB0eXBlICVzIGZvciBwYXJhbWV0 ZXIiKTsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCWFsbF9wcml2aWxl Z2VzID0gQUNMX0FMTF9SSUdIVFNfVkFSSUFCTEU7CisJCQllcnJvcm1zZyA9IGdldHRleHRfbm9v cCgiaW52YWxpZCBwcml2aWxlZ2UgdHlwZSAlcyBmb3Igc2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJ YnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50U3Rt dC5vYmp0eXBlOiAlZCIsCiAJCQkJIChpbnQpIHN0bXQtPm9ianR5cGUpOwpAQCAtNjQwLDYgKzY0 OCw5IEBAIEV4ZWNHcmFudFN0bXRfb2lkcyhJbnRlcm5hbEdyYW50ICppc3RtdCkKIAkJY2FzZSBP QkpFQ1RfUEFSQU1FVEVSX0FDTDoKIAkJCUV4ZWNHcmFudF9QYXJhbWV0ZXIoaXN0bXQpOwogCQkJ YnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJRXhlY0dyYW50X2NvbW1vbihpc3Rt dCwgVmFyaWFibGVSZWxhdGlvbklkLCBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRSwgTlVMTCk7CisJ CQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgR3JhbnRT dG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGludCkgaXN0bXQtPm9ianR5cGUpOwpAQCAtNzYwLDYg Kzc3MSwxOCBAQCBvYmplY3ROYW1lc1RvT2lkcyhPYmplY3RUeXBlIG9ianR5cGUsIExpc3QgKm9i am5hbWVzLCBib29sIGlzX2dyYW50KQogCQkJCQlvYmplY3RzID0gbGFwcGVuZF9vaWQob2JqZWN0 cywgcGFyYW1ldGVySWQpOwogCQkJfQogCQkJYnJlYWs7CisKKwkJY2FzZSBPQkpFQ1RfVkFSSUFC TEU6CisJCQlmb3JlYWNoX25vZGUoUmFuZ2VWYXIsIHZhcnZhciwgb2JqbmFtZXMpCisJCQl7CisJ CQkJT2lkCQkJcmVsT2lkOworCisJCQkJcmVsT2lkID0gTG9va3VwVmFyaWFibGUodmFydmFyLT5z Y2hlbWFuYW1lLAorCQkJCQkJCQkJCXZhcnZhci0+cmVsbmFtZSwKKwkJCQkJCQkJCQlmYWxzZSk7 CisJCQkJb2JqZWN0cyA9IGxhcHBlbmRfb2lkKG9iamVjdHMsIHJlbE9pZCk7CisJCQl9CisJCQli cmVhazsKIAl9CiAKIAlyZXR1cm4gb2JqZWN0czsKQEAgLTg0Niw2ICs4NjksMzIgQEAgb2JqZWN0 c0luU2NoZW1hVG9PaWRzKE9iamVjdFR5cGUgb2JqdHlwZSwgTGlzdCAqbnNwbmFtZXMpCiAJCQkJ CXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKIAkJCQl9CiAJCQkJYnJlYWs7CisJ CQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCQl7CisJCQkJCVNjYW5LZXlEYXRhIGtleTsKKwkJ CQkJUmVsYXRpb24JcmVsOworCQkJCQlUYWJsZVNjYW5EZXNjIHNjYW47CisJCQkJCUhlYXBUdXBs ZQl0dXBsZTsKKworCQkJCQlTY2FuS2V5SW5pdCgma2V5LAorCQkJCQkJCQlBbnVtX3BnX3Zhcmlh YmxlX3Zhcm5hbWVzcGFjZSwKKwkJCQkJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX09JREVR LAorCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlkKSk7CisKKwkJCQkJcmVsID0g dGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJCXNj YW4gPSB0YWJsZV9iZWdpbnNjYW5fY2F0YWxvZyhyZWwsIDEsICZrZXkpOworCisJCQkJCXdoaWxl ICgodHVwbGUgPSBoZWFwX2dldG5leHQoc2NhbiwgRm9yd2FyZFNjYW5EaXJlY3Rpb24pKSAhPSBO VUxMKQorCQkJCQl7CisJCQkJCQlPaWQJCQlvaWQgPSAoKEZvcm1fcGdfcHJvYykgR0VUU1RSVUNU KHR1cGxlKSktPm9pZDsKKworCQkJCQkJb2JqZWN0cyA9IGxhcHBlbmRfb2lkKG9iamVjdHMsIG9p ZCk7CisJCQkJCX0KKworCQkJCQl0YWJsZV9lbmRzY2FuKHNjYW4pOworCQkJCQl0YWJsZV9jbG9z ZShyZWwsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQkJfQorCQkJCWJyZWFrOwogCQkJZGVmYXVsdDoK IAkJCQkvKiBzaG91bGQgbm90IGhhcHBlbiAqLwogCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6 ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKQEAgLTEwMDUsNiArMTA1NCwxMCBAQCBFeGVjQWx0 ZXJEZWZhdWx0UHJpdmlsZWdlc1N0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlckRlZmF1bHRQ cml2aWxlZ2VzU3RtdCAqcwogCQkJYWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19TQ0hF TUE7CiAJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52YWxpZCBwcml2aWxlZ2UgdHlwZSAl cyBmb3Igc2NoZW1hIik7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlh bGxfcHJpdmlsZWdlcyA9IEFDTF9BTExfUklHSFRTX1ZBUklBQkxFOworCQkJZXJyb3Jtc2cgPSBn ZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmlsZWdlIHR5cGUgJXMgZm9yIHNlc3Npb24gdmFyaWFi bGUiKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXpl ZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAoaW50KSBhY3Rpb24tPm9ianR5cGUpOwpA QCAtMTE5Niw2ICsxMjQ5LDEyIEBAIFNldERlZmF1bHRBQ0woSW50ZXJuYWxEZWZhdWx0QUNMICpp YWNscykKIAkJCQl0aGlzX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19TQ0hFTUE7CiAJCQli cmVhazsKIAorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCW9ianR5cGUgPSBERUZBQ0xPQkpf VkFSSUFCTEU7CisJCQlpZiAoaWFjbHMtPmFsbF9wcml2cyAmJiB0aGlzX3ByaXZpbGVnZXMgPT0g QUNMX05PX1JJR0hUUykKKwkJCQl0aGlzX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19WQVJJ QUJMRTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25p emVkIG9iamVjdCB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIGlhY2xzLT5vYmp0eXBlKTsKQEAgLTE0 MzksNiArMTQ5OCw5IEBAIFJlbW92ZVJvbGVGcm9tT2JqZWN0QUNMKE9pZCByb2xlaWQsIE9pZCBj bGFzc2lkLCBPaWQgb2JqaWQpCiAJCQljYXNlIERFRkFDTE9CSl9OQU1FU1BBQ0U6CiAJCQkJaWFj bHMub2JqdHlwZSA9IE9CSkVDVF9TQ0hFTUE7CiAJCQkJYnJlYWs7CisJCQljYXNlIERFRkFDTE9C Sl9WQVJJQUJMRToKKwkJCQlpYWNscy5vYmp0eXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCWJy ZWFrOwogCQkJZGVmYXVsdDoKIAkJCQkvKiBTaG91bGRuJ3QgZ2V0IGhlcmUgKi8KIAkJCQllbG9n KEVSUk9SLCAidW5leHBlY3RlZCBkZWZhdWx0IEFDTCB0eXBlOiAlZCIsCkBAIC0xNDk5LDYgKzE1 NjEsOSBAQCBSZW1vdmVSb2xlRnJvbU9iamVjdEFDTChPaWQgcm9sZWlkLCBPaWQgY2xhc3NpZCwg T2lkIG9iamlkKQogCQkJY2FzZSBQYXJhbWV0ZXJBY2xSZWxhdGlvbklkOgogCQkJCWlzdG10Lm9i anR5cGUgPSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDsKIAkJCQlicmVhazsKKwkJCWNhc2UgVmFyaWFi bGVSZWxhdGlvbklkOgorCQkJCWlzdG10Lm9ianR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJCQkJ YnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIG9iamVjdCBj bGFzcyAldSIsIGNsYXNzaWQpOwogCQkJCWJyZWFrOwpAQCAtMjczMiw2ICsyNzk3LDkgQEAgYWNs Y2hlY2tfZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwgT2JqZWN0VHlwZSBvYmp0eXBlLAogCQkJCQlj YXNlIE9CSkVDVF9UWVBFOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwZXJtaXNzaW9uIGRl bmllZCBmb3IgdHlwZSAlcyIpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgT0JKRUNUX1ZBUklB QkxFOgorCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vz c2lvbiB2YXJpYWJsZSAlcyIpOworCQkJCQkJYnJlYWs7CiAJCQkJCWNhc2UgT0JKRUNUX1ZJRVc6 CiAJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoInBlcm1pc3Npb24gZGVuaWVkIGZvciB2aWV3ICVz Iik7CiAJCQkJCQlicmVhazsKQEAgLTI4NDMsNiArMjkxMSw5IEBAIGFjbGNoZWNrX2Vycm9yKEFj bFJlc3VsdCBhY2xlcnIsIE9iamVjdFR5cGUgb2JqdHlwZSwKIAkJCQkJY2FzZSBPQkpFQ1RfVFlQ RToKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBiZSBvd25lciBvZiB0eXBlICVzIik7 CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQkJCQltc2cgPSBn ZXR0ZXh0X25vb3AoIm11c3QgYmUgb3duZXIgb2Ygc2Vzc2lvbiB2YXJpYWJsZSAlcyIpOworCQkJ CQkJYnJlYWs7CiAJCQkJCWNhc2UgT0JKRUNUX1ZJRVc6CiAJCQkJCQltc2cgPSBnZXR0ZXh0X25v b3AoIm11c3QgYmUgb3duZXIgb2YgdmlldyAlcyIpOwogCQkJCQkJYnJlYWs7CkBAIC0yOTkxLDYg KzMwNjIsOCBAQCBwZ19hY2xtYXNrKE9iamVjdFR5cGUgb2JqdHlwZSwgT2lkIG9iamVjdF9vaWQs IEF0dHJOdW1iZXIgYXR0bnVtLCBPaWQgcm9sZWlkLAogCQkJcmV0dXJuIEFDTF9OT19SSUdIVFM7 CiAJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQlyZXR1cm4gb2JqZWN0X2FjbG1hc2soVHlwZVJlbGF0 aW9uSWQsIG9iamVjdF9vaWQsIHJvbGVpZCwgbWFzaywgaG93KTsKKwkJY2FzZSBPQkpFQ1RfVkFS SUFCTEU6CisJCQlyZXR1cm4gb2JqZWN0X2FjbG1hc2soVmFyaWFibGVSZWxhdGlvbklkLCBvYmpl Y3Rfb2lkLCByb2xlaWQsIG1hc2ssIGhvdyk7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAi dW5yZWNvZ25pemVkIG9iamVjdCB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIG9ianR5cGUpOwpAQCAt NDI1OCw2ICs0MzMxLDEwIEBAIGdldF91c2VyX2RlZmF1bHRfYWNsKE9iamVjdFR5cGUgb2JqdHlw ZSwgT2lkIG93bmVySWQsIE9pZCBuc3Bfb2lkKQogCQkJZGVmYWNsb2JqdHlwZSA9IERFRkFDTE9C Sl9OQU1FU1BBQ0U7CiAJCQlicmVhazsKIAorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCWRl ZmFjbG9ianR5cGUgPSBERUZBQ0xPQkpfVkFSSUFCTEU7CisJCQlicmVhazsKKwogCQlkZWZhdWx0 OgogCQkJcmV0dXJuIE5VTEw7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9k ZXBlbmRlbmN5LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwppbmRleCAwOTZi NjhjN2YzOS4uMWRhMDcyMGY2MWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVw ZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCkBAIC02NSwx MiArNjUsMTQgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3RlbXBsYXRlLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ191c2VyX21hcHBpbmcu aCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMv Y29tbWVudC5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2luY2x1ZGUgImNvbW1h bmRzL2V2ZW50X3RyaWdnZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9leHRlbnNpb24uaCIKICNp bmNsdWRlICJjb21tYW5kcy9wb2xpY3kuaCIKICNpbmNsdWRlICJjb21tYW5kcy9wdWJsaWNhdGlv bmNtZHMuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zY2hlbWFjbWRzLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvc2VjbGFiZWwuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXF1ZW5jZS5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKQEAgLTE0NDQsNiArMTQ0NiwxMCBAQCBkb0RlbGV0aW9u KGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgaW50IGZsYWdzKQogCQkJUmVtb3ZlUHVibGlj YXRpb25CeUlkKG9iamVjdC0+b2JqZWN0SWQpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBWYXJpYWJs ZVJlbGF0aW9uSWQ6CisJCQlEcm9wVmFyaWFibGVCeUlkKG9iamVjdC0+b2JqZWN0SWQpOworCQkJ YnJlYWs7CisKIAkJY2FzZSBDYXN0UmVsYXRpb25JZDoKIAkJY2FzZSBDb2xsYXRpb25SZWxhdGlv bklkOgogCQljYXNlIENvbnZlcnNpb25SZWxhdGlvbklkOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9tZXNvbi5idWlsZCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQK aW5kZXggMTk1OGVhOTIzOGEuLmVkNDRjODc3ZmNhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9j YXRhbG9nL21lc29uLmJ1aWxkCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbWVzb24uYnVpbGQK QEAgLTMyLDYgKzMyLDcgQEAgYmFja2VuZF9zb3VyY2VzICs9IGZpbGVzKAogICAncGdfc2hkZXBl bmQuYycsCiAgICdwZ19zdWJzY3JpcHRpb24uYycsCiAgICdwZ190eXBlLmMnLAorICAncGdfdmFy aWFibGUuYycsCiAgICdzdG9yYWdlLmMnLAogICAndG9hc3RpbmcuYycsCiApCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9u YW1lc3BhY2UuYwppbmRleCBkOTdkNjMyYTdlZi4uNDMwN2NhZDE1YzcgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9u YW1lc3BhY2UuYwpAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfcGFy c2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0ZS5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNs dWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAiY29tbW9uL2hhc2hmbl91bnN0 YWJsZS5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKQEAgLTIyNSw2ICsyMjYsNyBAQCBzdGF0aWMg Ym9vbCBUU1BhcnNlcklzVmlzaWJsZUV4dChPaWQgcHJzSWQsIGJvb2wgKmlzX21pc3NpbmcpOwog c3RhdGljIGJvb2wgVFNEaWN0aW9uYXJ5SXNWaXNpYmxlRXh0KE9pZCBkaWN0SWQsIGJvb2wgKmlz X21pc3NpbmcpOwogc3RhdGljIGJvb2wgVFNUZW1wbGF0ZUlzVmlzaWJsZUV4dChPaWQgdG1wbElk LCBib29sICppc19taXNzaW5nKTsKIHN0YXRpYyBib29sIFRTQ29uZmlnSXNWaXNpYmxlRXh0KE9p ZCBjZmdpZCwgYm9vbCAqaXNfbWlzc2luZyk7CitzdGF0aWMgYm9vbCBWYXJpYWJsZUlzVmlzaWJs ZUV4dChPaWQgdmFyaWQsIGJvb2wgKmlzX21pc3NpbmcpOwogc3RhdGljIHZvaWQgcmVjb21wdXRl TmFtZXNwYWNlUGF0aCh2b2lkKTsKIHN0YXRpYyB2b2lkIEFjY2Vzc1RlbXBUYWJsZU5hbWVzcGFj ZShib29sIGZvcmNlKTsKIHN0YXRpYyB2b2lkIEluaXRUZW1wVGFibGVOYW1lc3BhY2Uodm9pZCk7 CkBAIC05ODYsNiArOTg4LDg0IEBAIFJlbGF0aW9uSXNWaXNpYmxlRXh0KE9pZCByZWxpZCwgYm9v bCAqaXNfbWlzc2luZykKIAlyZXR1cm4gdmlzaWJsZTsKIH0KIAorLyoKKyAqIFZhcmlhYmxlSXNW aXNpYmxlCisgKgkJRGV0ZXJtaW5lIHdoZXRoZXIgYSB2YXJpYWJsZSAoaWRlbnRpZmllZCBieSBP SUQpIGlzIHZpc2libGUgaW4gdGhlCisgKgkJY3VycmVudCBzZWFyY2ggcGF0aC4gVmlzaWJsZSBt ZWFucyAid291bGQgYmUgZm91bmQgYnkgc2VhcmNoaW5nCisgKgkJZm9yIHRoZSB1bnF1YWxpZmll ZCB2YXJpYWJsZSBuYW1lIi4KKyAqLworYm9vbAorVmFyaWFibGVJc1Zpc2libGUoT2lkIHZhcmlk KQoreworCXJldHVybiBWYXJpYWJsZUlzVmlzaWJsZUV4dCh2YXJpZCwgTlVMTCk7Cit9CisKKy8q CisgKiBWYXJpYWJsZUlzVmlzaWJsZUV4dAorICoJCUFzIGFib3ZlLCBidXQgaWYgdGhlIHZhcmlh YmxlIGlzbid0IGZvdW5kIGFuZCBpc19taXNzaW5nIGlzIG5vdCBOVUxMLAorICoJCXRoZW4gc2V0 ICppc19taXNzaW5nID0gdHJ1ZSBhbmQgcmV0dXJuIGZhbHNlLCBpbnN0ZWFkIG9mIHRocm93aW5n CisgKgkJYW4gZXJyb3IuIChDYWxsZXIgbXVzdCBpbml0aWFsaXplICppc19taXNzaW5nID0gZmFs c2UuKQorICovCitzdGF0aWMgYm9vbAorVmFyaWFibGVJc1Zpc2libGVFeHQoT2lkIHZhcmlkLCBi b29sICppc19taXNzaW5nKQoreworCUhlYXBUdXBsZQl2YXJ0dXA7CisJRm9ybV9wZ192YXJpYWJs ZSB2YXJmb3JtOworCU9pZAkJCXZhcm5hbWVzcGFjZTsKKwlib29sCQl2aXNpYmxlOworCisJdmFy dHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlk KSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHZhcnR1cCkpCisJeworCQlpZiAoaXNfbWlzc2lu ZyAhPSBOVUxMKQorCQl7CisJCQkqaXNfbWlzc2luZyA9IHRydWU7CisJCQlyZXR1cm4gZmFsc2U7 CisJCX0KKworCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2 YXJpYWJsZSAldSIsIHZhcmlkKTsKKwl9CisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBH RVRTVFJVQ1QodmFydHVwKTsKKworCXJlY29tcHV0ZU5hbWVzcGFjZVBhdGgoKTsKKworCS8qCisJ ICogUXVpY2sgY2hlY2s6IGlmIGl0IGFpbid0IGluIHRoZSBwYXRoIGF0IGFsbCwgaXQgYWluJ3Qg dmlzaWJsZS4gV2UKKwkgKiBkb24ndCBleHBlY3QgdXNhZ2Ugb2Ygc2Vzc2lvbiB2YXJpYWJsZXMg aW4gdGhlIHN5c3RlbSBuYW1lc3BhY2UuCisJICovCisJdmFybmFtZXNwYWNlID0gdmFyZm9ybS0+ dmFybmFtZXNwYWNlOworCWlmICghbGlzdF9tZW1iZXJfb2lkKGFjdGl2ZVNlYXJjaFBhdGgsIHZh cm5hbWVzcGFjZSkpCisJCXZpc2libGUgPSBmYWxzZTsKKwllbHNlCisJeworCQkvKgorCQkgKiBJ ZiBpdCBpcyBpbiB0aGUgcGF0aCwgaXQgbWlnaHQgc3RpbGwgbm90IGJlIHZpc2libGU7IGl0IGNv dWxkIGJlCisJCSAqIGhpZGRlbiBieSBhbm90aGVyIHZhcmlhYmxlIG9mIHRoZSBzYW1lIG5hbWUg ZWFybGllciBpbiB0aGUgcGF0aC4gU28KKwkJICogd2UgbXVzdCBkbyBhIHNsb3cgY2hlY2sgZm9y IGNvbmZsaWN0aW5nIHJlbGF0aW9ucy4KKwkJICovCisJCWNoYXIJICAgKnZhcm5hbWUgPSBOYW1l U3RyKHZhcmZvcm0tPnZhcm5hbWUpOworCisJCXZpc2libGUgPSBmYWxzZTsKKwkJZm9yZWFjaF9v aWQobmFtZXNwYWNlSWQsIGFjdGl2ZVNlYXJjaFBhdGgpCisJCXsKKwkJCWlmIChuYW1lc3BhY2VJ ZCA9PSB2YXJuYW1lc3BhY2UpCisJCQl7CisJCQkJLyogZm91bmQgaXQgZmlyc3QgaW4gcGF0aCAq LworCQkJCXZpc2libGUgPSB0cnVlOworCQkJCWJyZWFrOworCQkJfQorCQkJaWYgKE9pZElzVmFs aWQoZ2V0X3Zhcm5hbWVfdmFyaWQodmFybmFtZSwgbmFtZXNwYWNlSWQpKSkKKwkJCXsKKwkJCQkv KiBmb3VuZCBzb21ldGhpbmcgZWxzZSBmaXJzdCBpbiBwYXRoICovCisJCQkJYnJlYWs7CisJCQl9 CisJCX0KKwl9CisKKwlSZWxlYXNlU3lzQ2FjaGUodmFydHVwKTsKKworCXJldHVybiB2aXNpYmxl OworfQogCiAvKgogICogVHlwZW5hbWVHZXRUeXBpZApAQCAtMzI4OSw2ICszMzY5LDEzMyBAQCBU U0NvbmZpZ0lzVmlzaWJsZUV4dChPaWQgY2ZnaWQsIGJvb2wgKmlzX21pc3NpbmcpCiAJcmV0dXJu IHZpc2libGU7CiB9CiAKKy8qCisgKiBSZXR1cm5zIG9pZCBvZiBzZXNzaW9uIHZhcmlhYmxlIHNw ZWNpZmllZCBieSBwb3NzaWJseSBxdWFsaWZpZWQgaWRlbnRpZmllci4KKyAqCisgKiBJZiBub3Qg Zm91bmQsIHJldHVybnMgSW52YWxpZE9pZCBpZiBtaXNzaW5nX29rLCBlbHNlIHRocm93cyBlcnJv ci4KKyAqLworT2lkCitMb29rdXBWYXJpYWJsZShjb25zdCBjaGFyICpuc3BuYW1lLAorCQkJICAg Y29uc3QgY2hhciAqdmFybmFtZSwKKwkJCSAgIGJvb2wgbWlzc2luZ19vaykKK3sKKwlPaWQJCQl2 YXJvaWQgPSBJbnZhbGlkT2lkOworCisJaWYgKG5zcG5hbWUpCisJeworCQlPaWQgbmFtZXNwYWNl SWQgPSBMb29rdXBFeHBsaWNpdE5hbWVzcGFjZShuc3BuYW1lLCBtaXNzaW5nX29rKTsKKworCQkv KiBpZiBuc3BuYW1lIGlzIGEga25vd24gbmFtZXNwYWNlLCB0aGUgdmFyaWFibGUgbXVzdCBiZSB0 aGVyZSAqLworCQlpZiAoT2lkSXNWYWxpZChuYW1lc3BhY2VJZCkpCisJCXsKKwkJCXZhcm9pZCA9 IEdldFN5c0NhY2hlT2lkMihWQVJJQUJMRU5BTUVOU1AsIEFudW1fcGdfdmFyaWFibGVfb2lkLAor CQkJCQkJCQkJIFBvaW50ZXJHZXREYXR1bSh2YXJuYW1lKSwKKwkJCQkJCQkJCSBPYmplY3RJZEdl dERhdHVtKG5hbWVzcGFjZUlkKSk7CisJCX0KKwl9CisJZWxzZQorCXsKKwkJLyogaXRlcmF0ZSBv dmVyIHRoZSBzY2hlbWFzIG9uIHRoZSBzZWFyY2hfcGF0aCAqLworCQlyZWNvbXB1dGVOYW1lc3Bh Y2VQYXRoKCk7CisKKwkJZm9yZWFjaF9vaWQobmFtZXNwYWNlSWQsIGFjdGl2ZVNlYXJjaFBhdGgp CisJCXsKKwkJCXZhcm9pZCA9IEdldFN5c0NhY2hlT2lkMihWQVJJQUJMRU5BTUVOU1AsIEFudW1f cGdfdmFyaWFibGVfb2lkLAorCQkJCQkJCQkJIFBvaW50ZXJHZXREYXR1bSh2YXJuYW1lKSwKKwkJ CQkJCQkJCSBPYmplY3RJZEdldERhdHVtKG5hbWVzcGFjZUlkKSk7CisKKwkJCWlmIChPaWRJc1Zh bGlkKHZhcm9pZCkpCisJCQkJYnJlYWs7CisJCX0KKwl9CisKKwlpZiAoIU9pZElzVmFsaWQodmFy b2lkKSAmJiAhbWlzc2luZ19vaykKKwl7CisJCWlmIChuc3BuYW1lKQorCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJIGVycm1z Zygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJCW5z cG5hbWUsIHZhcm5hbWUpKSk7CisJCWVsc2UKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJj b2RlKEVSUkNPREVfVU5ERUZJTkVEX09CSkVDVCksCisJCQkJCSBlcnJtc2coInNlc3Npb24gdmFy aWFibGUgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCQl2YXJuYW1lKSkpOworCX0KKwor CXJldHVybiB2YXJvaWQ7Cit9CisKKy8qCisgKiBSZXR1cm5zIG9pZCBvZiBzZXNzaW9uIHZhcmlh YmxlIHNwZWNpZmllZCBieSBwb3NzaWJseSBxdWFsaWZpZWQgaWRlbnRpZmllcgorICoKKyAqIElm IG5vdCBmb3VuZCwgcmV0dXJucyBJbnZhbGlkT2lkIGlmIG1pc3Npbmdfb2ssIGVsc2UgdGhyb3dz IGVycm9yLgorICovCitPaWQKK0xvb2t1cFZhcmlhYmxlRnJvbU5hbWVMaXN0KExpc3QgKm5hbWVz LAorCQkJCQkJICAgYm9vbCBtaXNzaW5nX29rKQoreworCWNoYXIJICAgKmNhdG5hbWUgPSBOVUxM OworCWNoYXIJICAgKm5zcG5hbWUgPSBOVUxMOworCWNoYXIJICAgKnZhcm5hbWUgPSBOVUxMOwor CisJc3dpdGNoIChsaXN0X2xlbmd0aChuYW1lcykpCisJeworCQljYXNlIDE6CisJCQl2YXJuYW1l ID0gc3RyVmFsKGxpbml0aWFsKG5hbWVzKSk7CisJCQlicmVhazsKKwkJY2FzZSAyOgorCQkJbnNw bmFtZSA9IHN0clZhbChsaW5pdGlhbChuYW1lcykpOworCQkJdmFybmFtZSA9IHN0clZhbChsc2Vj b25kKG5hbWVzKSk7CisJCQlicmVhazsKKwkJY2FzZSAzOgorCQkJY2F0bmFtZSA9IHN0clZhbChs aW5pdGlhbChuYW1lcykpOworCQkJbnNwbmFtZSA9IHN0clZhbChsc2Vjb25kKG5hbWVzKSk7CisJ CQl2YXJuYW1lID0gc3RyVmFsKGx0aGlyZChuYW1lcykpOworCisJCQkvKiBjaGVjayBjYXRhbG9n IG5hbWUgKi8KKwkJCWlmIChzdHJjbXAoY2F0bmFtZSwgZ2V0X2RhdGFiYXNlX25hbWUoTXlEYXRh YmFzZUlkKSkgIT0gMCkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09E RV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygiY3Jvc3MtZGF0YWJhc2Ug cmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAlcyIsCisJCQkJCQkJCU5hbWVMaXN0VG9T dHJpbmcobmFtZXMpKSkpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6CisJCQllcmVwb3J0KEVSUk9S LAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCisJCQkJCSBlcnJtc2coImlt cHJvcGVyIHNlc3Npb24gdmFyaWFibGUgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogJXMi LAorCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSkpOworCQkJYnJlYWs7CisJfQorCisJ cmV0dXJuIExvb2t1cFZhcmlhYmxlKG5zcG5hbWUsIHZhcm5hbWUsIG1pc3Npbmdfb2spOworfQor CisvKgorICogVGhlIGlucHV0IGxpc3QgY29udGFpbnMgbmFtZXMgd2l0aCBpbmRpcmVjdGlvbiBl eHByZXNzaW9ucyB1c2VkIGFzIHRoZSBsZWZ0CisgKiBwYXJ0IG9mIExFVCBzdGF0ZW1lbnQuIFRo ZSBmb2xsb3dpbmcgcm91dGluZSByZXR1cm5zIGEgbmV3IGxpc3Qgd2l0aCBvbmx5CisgKiBpbml0 aWFsIHN0cmluZ3MgKG5hbWVzKSAtIHdpdGhvdXQgaW5kaXJlY3Rpb24gZXhwcmVzc2lvbnMuCisg Ki8KK0xpc3QgKgorTmFtZXNGcm9tTGlzdChMaXN0ICpuYW1lcykKK3sKKwlMaXN0Q2VsbCAgICps OworCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKKworCWZvcmVhY2gobCwgbmFtZXMpCisJeworCQlO b2RlCSAgICpuID0gbGZpcnN0KGwpOworCisJCWlmIChJc0EobiwgU3RyaW5nKSkKKwkJeworCQkJ cmVzdWx0ID0gbGFwcGVuZChyZXN1bHQsIG4pOworCQl9CisJCWVsc2UKKwkJCWJyZWFrOworCX0K KworCXJldHVybiByZXN1bHQ7Cit9CiAKIC8qCiAgKiBEZWNvbnN0cnVjdFF1YWxpZmllZE5hbWUK QEAgLTUwODUsMyArNTI5MiwxNyBAQCBwZ19pc19vdGhlcl90ZW1wX3NjaGVtYShQR19GVU5DVElP Tl9BUkdTKQogCiAJUEdfUkVUVVJOX0JPT0woaXNPdGhlclRlbXBOYW1lc3BhY2Uob2lkKSk7CiB9 CisKK0RhdHVtCitwZ192YXJpYWJsZV9pc192aXNpYmxlKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJ T2lkCQkJb2lkID0gUEdfR0VUQVJHX09JRCgwKTsKKwlib29sCQlyZXN1bHQ7CisJYm9vbAkJaXNf bWlzc2luZyA9IGZhbHNlOworCisJcmVzdWx0ID0gVmFyaWFibGVJc1Zpc2libGVFeHQob2lkLCAm aXNfbWlzc2luZyk7CisKKwlpZiAoaXNfbWlzc2luZykKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwlQ R19SRVRVUk5fQk9PTChyZXN1bHQpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxv Zy9vYmplY3RhZGRyZXNzLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYwpp bmRleCBkOGViOGQzZGVhYS4uNGE0NjRkZmVhN2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nh dGFsb2cvb2JqZWN0YWRkcmVzcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRk cmVzcy5jCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c190ZW1wbGF0 ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf dXNlcl9tYXBwaW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1 ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIK ICNpbmNsdWRlICJjb21tYW5kcy9ldmVudF90cmlnZ2VyLmgiCkBAIC02MzYsNiArNjM3LDIwIEBA IHN0YXRpYyBjb25zdCBPYmplY3RQcm9wZXJ0eVR5cGUgT2JqZWN0UHJvcGVydHlbXSA9CiAJCU9C SkVDVF9VU0VSX01BUFBJTkcsCiAJCWZhbHNlCiAJfSwKKwl7CisJCSJzZXNzaW9uIHZhcmlhYmxl IiwKKwkJVmFyaWFibGVSZWxhdGlvbklkLAorCQlWYXJpYWJsZU9pZEluZGV4SWQsCisJCVZBUklB QkxFT0lELAorCQlWQVJJQUJMRU5BTUVOU1AsCisJCUFudW1fcGdfdmFyaWFibGVfb2lkLAorCQlB bnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWUsCisJCUFudW1fcGdfdmFyaWFibGVfdmFybmFtZXNwYWNl LAorCQlBbnVtX3BnX3ZhcmlhYmxlX3Zhcm93bmVyLAorCQlBbnVtX3BnX3ZhcmlhYmxlX3ZhcmFj bCwKKwkJT0JKRUNUX1ZBUklBQkxFLAorCQl0cnVlCisJfQogfTsKIAogLyoKQEAgLTgzMSw2ICs4 NDYsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9iamVjdF90eXBlX21hcAogCX0sCiAJewogCQki c3RhdGlzdGljcyBvYmplY3QiLCBPQkpFQ1RfU1RBVElTVElDX0VYVAorCX0sCisJeworCQkic2Vz c2lvbiB2YXJpYWJsZSIsIE9CSkVDVF9WQVJJQUJMRQogCX0KIH07CiAKQEAgLTg1Niw2ICs4NzQs NyBAQCBzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2FkZHJlc3NfYXR0cmRlZihPYmpl Y3RUeXBlIG9ianR5cGUsCiAJCQkJCQkJCQkJCQlib29sIG1pc3Npbmdfb2spOwogc3RhdGljIE9i amVjdEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX3R5cGUoT2JqZWN0VHlwZSBvYmp0eXBlLAog CQkJCQkJCQkJCQkgVHlwZU5hbWUgKnR5cGVuYW1lLCBib29sIG1pc3Npbmdfb2spOworc3RhdGlj IE9iamVjdEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX3ZhcmlhYmxlKExpc3QgKm9iamVjdCwg Ym9vbCBtaXNzaW5nX29rKTsKIHN0YXRpYyBPYmplY3RBZGRyZXNzIGdldF9vYmplY3RfYWRkcmVz c19vcGNmKE9iamVjdFR5cGUgb2JqdHlwZSwgTGlzdCAqb2JqZWN0LAogCQkJCQkJCQkJCQkgYm9v bCBtaXNzaW5nX29rKTsKIHN0YXRpYyBPYmplY3RBZGRyZXNzIGdldF9vYmplY3RfYWRkcmVzc19v cGZfbWVtYmVyKE9iamVjdFR5cGUgb2JqdHlwZSwKQEAgLTExMjcsNiArMTE0Niw5IEBAIGdldF9v YmplY3RfYWRkcmVzcyhPYmplY3RUeXBlIG9ianR5cGUsIE5vZGUgKm9iamVjdCwKIAkJCQkJCQkJ CQkJCQkJCSBtaXNzaW5nX29rKTsKIAkJCQlhZGRyZXNzLm9iamVjdFN1YklkID0gMDsKIAkJCQli cmVhazsKKwkJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCWFkZHJlc3MgPSBnZXRfb2JqZWN0 X2FkZHJlc3NfdmFyaWFibGUoY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSwgbWlzc2luZ19vayk7CisJ CQkJYnJlYWs7CiAJCQkJLyogbm8gZGVmYXVsdCwgdG8gbGV0IGNvbXBpbGVyIHdhcm4gYWJvdXQg bWlzc2luZyBjYXNlICovCiAJCX0KIApAQCAtMjAwNSwxNiArMjAyNywyMCBAQCBnZXRfb2JqZWN0 X2FkZHJlc3NfZGVmYWNsKExpc3QgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQljYXNlIERF RkFDTE9CSl9OQU1FU1BBQ0U6CiAJCQlvYmp0eXBlX3N0ciA9ICJzY2hlbWFzIjsKIAkJCWJyZWFr OworCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCW9ianR5cGVfc3RyID0gInZhcmlhYmxl cyI7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJj b2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJCQkgZXJybXNnKCJ1bnJl Y29nbml6ZWQgZGVmYXVsdCBBQ0wgb2JqZWN0IHR5cGUgXCIlY1wiIiwgb2JqdHlwZSksCi0JCQkJ CSBlcnJoaW50KCJWYWxpZCBvYmplY3QgdHlwZXMgYXJlIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIs IFwiJWNcIiwgXCIlY1wiLiIsCisJCQkJCSBlcnJoaW50KCJWYWxpZCBvYmplY3QgdHlwZXMgYXJl IFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIuIiwKIAkJCQkJ CQkgREVGQUNMT0JKX1JFTEFUSU9OLAogCQkJCQkJCSBERUZBQ0xPQkpfU0VRVUVOQ0UsCiAJCQkJ CQkJIERFRkFDTE9CSl9GVU5DVElPTiwKIAkJCQkJCQkgREVGQUNMT0JKX1RZUEUsCi0JCQkJCQkJ IERFRkFDTE9CSl9OQU1FU1BBQ0UpKSk7CisJCQkJCQkJIERFRkFDTE9CSl9OQU1FU1BBQ0UsCisJ CQkJCQkJIERFRkFDTE9CSl9WQVJJQUJMRSkpKTsKIAl9CiAKIAkvKgpAQCAtMjA5OCw2ICsyMTI0 LDI0IEBAIHRleHRhcnJheV90b19zdHJ2YWx1ZWxpc3QoQXJyYXlUeXBlICphcnIpCiAJcmV0dXJu IGxpc3Q7CiB9CiAKKy8qCisgKiBGaW5kIHRoZSBPYmplY3RBZGRyZXNzIGZvciBhIHNlc3Npb24g dmFyaWFibGUKKyAqLworc3RhdGljIE9iamVjdEFkZHJlc3MKK2dldF9vYmplY3RfYWRkcmVzc192 YXJpYWJsZShMaXN0ICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKK3sKKwlPYmplY3RBZGRyZXNz IGFkZHJlc3M7CisJY2hhcgkgICAqbnNwbmFtZSA9IE5VTEw7CisJY2hhcgkgICAqdmFybmFtZSA9 IE5VTEw7CisKKwlPYmplY3RBZGRyZXNzU2V0KGFkZHJlc3MsIFZhcmlhYmxlUmVsYXRpb25JZCwg SW52YWxpZE9pZCk7CisKKwlEZWNvbnN0cnVjdFF1YWxpZmllZE5hbWUob2JqZWN0LCAmbnNwbmFt ZSwgJnZhcm5hbWUpOworCWFkZHJlc3Mub2JqZWN0SWQgPSBMb29rdXBWYXJpYWJsZShuc3BuYW1l LCB2YXJuYW1lLCBtaXNzaW5nX29rKTsKKworCXJldHVybiBhZGRyZXNzOworfQorCiAvKgogICog U1FMLWNhbGxhYmxlIHZlcnNpb24gb2YgZ2V0X29iamVjdF9hZGRyZXNzCiAgKi8KQEAgLTIyOTIs NiArMjMzNiw3IEBAIHBnX2dldF9vYmplY3RfYWRkcmVzcyhQR19GVU5DVElPTl9BUkdTKQogCQlj YXNlIE9CSkVDVF9UQUJDT05TVFJBSU5UOgogCQljYXNlIE9CSkVDVF9PUENMQVNTOgogCQljYXNl IE9CSkVDVF9PUEZBTUlMWToKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQlvYmpub2RlID0g KE5vZGUgKikgbmFtZTsKIAkJCWJyZWFrOwogCQljYXNlIE9CSkVDVF9BQ0NFU1NfTUVUSE9EOgpA QCAtMjQ2Myw2ICsyNTA4LDcgQEAgY2hlY2tfb2JqZWN0X293bmVyc2hpcChPaWQgcm9sZWlkLCBP YmplY3RUeXBlIG9ianR5cGUsIE9iamVjdEFkZHJlc3MgYWRkcmVzcywKIAkJY2FzZSBPQkpFQ1Rf U1RBVElTVElDX0VYVDoKIAkJY2FzZSBPQkpFQ1RfVFNESUNUSU9OQVJZOgogCQljYXNlIE9CSkVD VF9UU0NPTkZJR1VSQVRJT046CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJaWYgKCFvYmpl Y3Rfb3duZXJjaGVjayhhZGRyZXNzLmNsYXNzSWQsIGFkZHJlc3Mub2JqZWN0SWQsIHJvbGVpZCkp CiAJCQkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBvYmp0eXBlLAogCQkJCQkJ CSAgIE5hbWVMaXN0VG9TdHJpbmcoY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSkpOwpAQCAtMzQ5Miw2 ICszNTM4LDMyIEBAIGdldE9iamVjdERlc2NyaXB0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9i amVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQkJCWJyZWFrOwogCQkJfQogCisJCWNhc2UgVmFyaWFi bGVSZWxhdGlvbklkOgorCQkJeworCQkJCWNoYXIJICAgKm5zcG5hbWU7CisJCQkJSGVhcFR1cGxl CXR1cDsKKwkJCQlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisKKwkJCQl0dXAgPSBTZWFyY2hT eXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0ob2JqZWN0LT5vYmplY3RJZCkp OworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQkJCQllbG9nKEVSUk9SLCAiY2Fj aGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIsCisJCQkJCQkgb2JqZWN0 LT5vYmplY3RJZCk7CisKKwkJCQl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVD VCh0dXApOworCisJCQkJaWYgKFZhcmlhYmxlSXNWaXNpYmxlKG9iamVjdC0+b2JqZWN0SWQpKQor CQkJCQluc3BuYW1lID0gTlVMTDsKKwkJCQllbHNlCisJCQkJCW5zcG5hbWUgPSBnZXRfbmFtZXNw YWNlX25hbWUodmFyZm9ybS0+dmFybmFtZXNwYWNlKTsKKworCQkJCWFwcGVuZFN0cmluZ0luZm8o JmJ1ZmZlciwgXygic2Vzc2lvbiB2YXJpYWJsZSAlcyIpLAorCQkJCQkJCQkgcXVvdGVfcXVhbGlm aWVkX2lkZW50aWZpZXIobnNwbmFtZSwKKwkJCQkJCQkJCQkJCQkJCU5hbWVTdHIodmFyZm9ybS0+ dmFybmFtZSkpKTsKKworCQkJCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCQkJCWJyZWFrOworCQkJ fQorCiAJCWNhc2UgVFNQYXJzZXJSZWxhdGlvbklkOgogCQkJewogCQkJCUhlYXBUdXBsZQl0dXA7 CkBAIC0zODQ0LDYgKzM5MTYsMTYgQEAgZ2V0T2JqZWN0RGVzY3JpcHRpb24oY29uc3QgT2JqZWN0 QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQkJCQkJCQkJIF8oImRlZmF1bHQg cHJpdmlsZWdlcyBvbiBuZXcgc2NoZW1hcyBiZWxvbmdpbmcgdG8gcm9sZSAlcyIpLAogCQkJCQkJ CQkJCSByb2xlbmFtZSk7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBERUZBQ0xPQkpfVkFSSUFC TEU6CisJCQkJCQlpZiAobnNwbmFtZSkKKwkJCQkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIs CisJCQkJCQkJCQkJCSBfKCJkZWZhdWx0IHByaXZpbGVnZXMgb24gbmV3IHNlc3Npb24gdmFyaWFi bGVzIGJlbG9uZ2luZyB0byByb2xlICVzIGluIHNjaGVtYSAlcyIpLAorCQkJCQkJCQkJCQkgcm9s ZW5hbWUsIG5zcG5hbWUpOworCQkJCQkJZWxzZQorCQkJCQkJCWFwcGVuZFN0cmluZ0luZm8oJmJ1 ZmZlciwKKwkJCQkJCQkJCQkJIF8oImRlZmF1bHQgcHJpdmlsZWdlcyBvbiBuZXcgc2Vzc2lvbiB2 YXJpYWJsZXMgYmVsb25naW5nIHRvIHJvbGUgJXMiKSwKKwkJCQkJCQkJCQkJIHJvbGVuYW1lKTsK KwkJCQkJCWJyZWFrOwogCQkJCQlkZWZhdWx0OgogCQkJCQkJLyogc2hvdWxkbid0IGdldCBoZXJl ICovCiAJCQkJCQlpZiAobnNwbmFtZSkKQEAgLTQ2NjAsNiArNDc0MiwxMCBAQCBnZXRPYmplY3RU eXBlRGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdf b2spCiAJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJ0cmFuc2Zvcm0iKTsKIAkJ CWJyZWFrOwogCisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJYXBwZW5kU3RyaW5nSW5m b1N0cmluZygmYnVmZmVyLCAic2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJYnJlYWs7CisKIAkJZGVm YXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnN1cHBvcnRlZCBvYmplY3QgY2xhc3M6ICV1Iiwgb2Jq ZWN0LT5jbGFzc0lkKTsKIAl9CkBAIC01NzY2LDYgKzU4NTIsMTAgQEAgZ2V0T2JqZWN0SWRlbnRp dHlQYXJ0cyhjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQkJCQlhcHBlbmRTdHJpbmdJ bmZvU3RyaW5nKCZidWZmZXIsCiAJCQkJCQkJCQkJCSAgICIgb24gc2NoZW1hcyIpOwogCQkJCQkJ YnJlYWs7CisJCQkJCWNhc2UgREVGQUNMT0JKX1ZBUklBQkxFOgorCQkJCQkJYXBwZW5kU3RyaW5n SW5mb1N0cmluZygmYnVmZmVyLAorCQkJCQkJCQkJCQkgICAiIG9uIHNlc3Npb24gdmFyaWFibGVz Iik7CisJCQkJCQlicmVhazsKIAkJCQl9CiAKIAkJCQlpZiAob2JqbmFtZSkKQEAgLTYwMDYsNiAr NjA5NiwzMyBAQCBnZXRPYmplY3RJZGVudGl0eVBhcnRzKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9i amVjdCwKIAkJCX0KIAkJCWJyZWFrOwogCisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJ eworCQkJCWNoYXIJICAgKnNjaGVtYTsKKwkJCQljaGFyCSAgICp2YXJuYW1lOworCQkJCUhlYXBU dXBsZQl0dXA7CisJCQkJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCisJCQkJdHVwID0gU2Vh cmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKG9iamVjdC0+b2JqZWN0 SWQpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJCQkJZWxvZyhFUlJPUiwg ImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLAorCQkJCQkJIG9i amVjdC0+b2JqZWN0SWQpOworCisJCQkJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRT VFJVQ1QodHVwKTsKKworCQkJCXNjaGVtYSA9IGdldF9uYW1lc3BhY2VfbmFtZV9vcl90ZW1wKHZh cmZvcm0tPnZhcm5hbWVzcGFjZSk7CisJCQkJdmFybmFtZSA9IE5hbWVTdHIodmFyZm9ybS0+dmFy bmFtZSk7CisKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsICIlcyIsCisJCQkJCQkJCSBx dW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihzY2hlbWEsIHZhcm5hbWUpKTsKKworCQkJCWlmIChv YmpuYW1lKQorCQkJCQkqb2JqbmFtZSA9IGxpc3RfbWFrZTIoc2NoZW1hLCBwc3RyZHVwKHZhcm5h bWUpKTsKKworCQkJCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCQkJCWJyZWFrOworCQkJfQorCiAJ CWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2JqZWN0IGNsYXNzOiAldSIs IG9iamVjdC0+Y2xhc3NJZCk7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z19zaGRlcGVuZC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jCmluZGV4IDUz NjE5MTI4NGU4Li5jNmZkMWZhMDc0ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z19zaGRlcGVuZC5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc2hkZXBlbmQuYwpAQCAt NDYsNiArNDYsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHNfZGljdC5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdXNlcl9tYXBwaW5nLmgi CisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2Fs dGVyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5oIgogI2luY2x1ZGUgImNvbW1h bmRzL2RlZnJlbS5oIgpAQCAtMTcxNCw2ICsxNzE1LDcgQEAgc2hkZXBSZWFzc2lnbk93bmVkX093 bmVyKEZvcm1fcGdfc2hkZXBlbmQgc2RlcEZvcm0sIE9pZCBuZXdyb2xlKQogCQljYXNlIERhdGFi YXNlUmVsYXRpb25JZDoKIAkJY2FzZSBUU0NvbmZpZ1JlbGF0aW9uSWQ6CiAJCWNhc2UgVFNEaWN0 aW9uYXJ5UmVsYXRpb25JZDoKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CiAJCQlBbHRlck9i amVjdE93bmVyX2ludGVybmFsKHNkZXBGb3JtLT5jbGFzc2lkLAogCQkJCQkJCQkJICBzZGVwRm9y bS0+b2JqaWQsCiAJCQkJCQkJCQkgIG5ld3JvbGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ192YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5j Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yOWQ5NjdhMmQ1YgotLS0g L2Rldi9udWxsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtMCww ICsxLDI1MSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfdmFyaWFibGUuYworICoJ CXNlc3Npb24gdmFyaWFibGVzCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIw MjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5 cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQor ICoKKyAqIElERU5USUZJQ0FUSU9OCisgKgkJc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJs ZS5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2luY2x1ZGUgInBvc3RncmVzLmgi CisKKyNpbmNsdWRlICJhY2Nlc3MvaGVhcGFtLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9kZXBlbmRl bmN5LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9pbmRleGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cv bmFtZXNwYWNlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhY2Nlc3MuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX2NvbGxhdGlvbi5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfbmFtZXNwYWNl LmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgorI2luY2x1ZGUgIm1pc2NhZG1p bi5oIgorI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCisjaW5jbHVkZSAidXRpbHMvYnVp bHRpbnMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9z eXNjYWNoZS5oIgorCitzdGF0aWMgT2JqZWN0QWRkcmVzcyBjcmVhdGVfdmFyaWFibGUoY29uc3Qg Y2hhciAqdmFyTmFtZSwKKwkJCQkJCQkJCSBPaWQgdmFyTmFtZXNwYWNlLAorCQkJCQkJCQkJIE9p ZCB2YXJUeXBlLAorCQkJCQkJCQkJIGludDMyIHZhclR5cG1vZCwKKwkJCQkJCQkJCSBPaWQgdmFy T3duZXIsCisJCQkJCQkJCQkgT2lkIHZhckNvbGxhdGlvbiwKKwkJCQkJCQkJCSBib29sIGlmX25v dF9leGlzdHMpOworCisKKy8qCisgKiBDcmVhdGVzIGVudHJ5IGluIHBnX3ZhcmlhYmxlIHRhYmxl CisgKi8KK3N0YXRpYyBPYmplY3RBZGRyZXNzCitjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAq dmFyTmFtZSwKKwkJCQlPaWQgdmFyTmFtZXNwYWNlLAorCQkJCU9pZCB2YXJUeXBlLAorCQkJCWlu dDMyIHZhclR5cG1vZCwKKwkJCQlPaWQgdmFyT3duZXIsCisJCQkJT2lkIHZhckNvbGxhdGlvbiwK KwkJCQlib29sIGlmX25vdF9leGlzdHMpCit7CisJQWNsCQkgICAqdmFyYWNsOworCU5hbWVEYXRh CXZhcm5hbWU7CisJYm9vbAkJbnVsbHNbTmF0dHNfcGdfdmFyaWFibGVdOworCURhdHVtCQl2YWx1 ZXNbTmF0dHNfcGdfdmFyaWFibGVdOworCVJlbGF0aW9uCXJlbDsKKwlIZWFwVHVwbGUJdHVwOwor CVR1cGxlRGVzYwl0dXBkZXNjOworCU9iamVjdEFkZHJlc3MgbXlzZWxmLAorCQkJCXJlZmVyZW5j ZWQ7CisJT2JqZWN0QWRkcmVzc2VzICphZGRyczsKKwlPaWQJCQl2YXJpZDsKKworCUFzc2VydCh2 YXJOYW1lKTsKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJOYW1lc3BhY2UpKTsKKwlBc3NlcnQoT2lk SXNWYWxpZCh2YXJUeXBlKSk7CisJQXNzZXJ0KE9pZElzVmFsaWQodmFyT3duZXIpKTsKKworCXJl bCA9IHRhYmxlX29wZW4oVmFyaWFibGVSZWxhdGlvbklkLCBSb3dFeGNsdXNpdmVMb2NrKTsKKwor CS8qCisJICogQ2hlY2sgZm9yIGR1cGxpY2F0ZXMuIE5vdGUgdGhhdCB0aGlzIGRvZXMgbm90IHJl YWxseSBwcmV2ZW50CisJICogZHVwbGljYXRlcywgaXQncyBoZXJlIGp1c3QgdG8gcHJvdmlkZSBu aWNlciBlcnJvciBtZXNzYWdlIGluIGNvbW1vbgorCSAqIGNhc2UuIFRoZSByZWFsIHByb3RlY3Rp b24gaXMgdGhlIHVuaXF1ZSBrZXkgb24gdGhlIGNhdGFsb2cuCisJICovCisJaWYgKFNlYXJjaFN5 c0NhY2hlRXhpc3RzMihWQVJJQUJMRU5BTUVOU1AsCisJCQkJCQkJICBQb2ludGVyR2V0RGF0dW0o dmFyTmFtZSksCisJCQkJCQkJICBPYmplY3RJZEdldERhdHVtKHZhck5hbWVzcGFjZSkpKQorCXsK KwkJaWYgKGlmX25vdF9leGlzdHMpCisJCQllcmVwb3J0KE5PVElDRSwKKwkJCQkJKGVycmNvZGUo RVJSQ09ERV9EVVBMSUNBVEVfT0JKRUNUKSwKKwkJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJs ZSBcIiVzXCIgYWxyZWFkeSBleGlzdHMsIHNraXBwaW5nIiwKKwkJCQkJCQl2YXJOYW1lKSkpOwor CQllbHNlCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FU RV9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBhbHJlYWR5 IGV4aXN0cyIsCisJCQkJCQkJdmFyTmFtZSkpKTsKKworCQl0YWJsZV9jbG9zZShyZWwsIFJvd0V4 Y2x1c2l2ZUxvY2spOworCisJCXJldHVybiBJbnZhbGlkT2JqZWN0QWRkcmVzczsKKwl9CisKKwlt ZW1zZXQodmFsdWVzLCAwLCBzaXplb2YodmFsdWVzKSk7CisJbWVtc2V0KG51bGxzLCBmYWxzZSwg c2l6ZW9mKG51bGxzKSk7CisKKwluYW1lc3RyY3B5KCZ2YXJuYW1lLCB2YXJOYW1lKTsKKworCXZh cmlkID0gR2V0TmV3T2lkV2l0aEluZGV4KHJlbCwgVmFyaWFibGVPaWRJbmRleElkLCBBbnVtX3Bn X3ZhcmlhYmxlX29pZCk7CisKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV9vaWQgLSAxXSA9IE9i amVjdElkR2V0RGF0dW0odmFyaWQpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWUg LSAxXSA9IE5hbWVHZXREYXR1bSgmdmFybmFtZSk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVf dmFybmFtZXNwYWNlIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhck5hbWVzcGFjZSk7CisJdmFs dWVzW0FudW1fcGdfdmFyaWFibGVfdmFydHlwZSAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJU eXBlKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBtb2QgLSAxXSA9IEludDMyR2V0 RGF0dW0odmFyVHlwbW9kKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJvd25lciAtIDFd ID0gT2JqZWN0SWRHZXREYXR1bSh2YXJPd25lcik7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVf dmFyY29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxhdGlvbik7CisKKwl2 YXJhY2wgPSBnZXRfdXNlcl9kZWZhdWx0X2FjbChPQkpFQ1RfVkFSSUFCTEUsIHZhck93bmVyLAor CQkJCQkJCQkgIHZhck5hbWVzcGFjZSk7CisJaWYgKHZhcmFjbCAhPSBOVUxMKQorCQl2YWx1ZXNb QW51bV9wZ192YXJpYWJsZV92YXJhY2wgLSAxXSA9IFBvaW50ZXJHZXREYXR1bSh2YXJhY2wpOwor CWVsc2UKKwkJbnVsbHNbQW51bV9wZ192YXJpYWJsZV92YXJhY2wgLSAxXSA9IHRydWU7CisKKwl0 dXBkZXNjID0gUmVsYXRpb25HZXREZXNjcihyZWwpOworCisJdHVwID0gaGVhcF9mb3JtX3R1cGxl KHR1cGRlc2MsIHZhbHVlcywgbnVsbHMpOworCUNhdGFsb2dUdXBsZUluc2VydChyZWwsIHR1cCk7 CisJQXNzZXJ0KE9pZElzVmFsaWQodmFyaWQpKTsKKworCWFkZHJzID0gbmV3X29iamVjdF9hZGRy ZXNzZXMoKTsKKworCU9iamVjdEFkZHJlc3NTZXQobXlzZWxmLCBWYXJpYWJsZVJlbGF0aW9uSWQs IHZhcmlkKTsKKworCS8qIGRlcGVuZGVuY3kgb24gbmFtZXNwYWNlICovCisJT2JqZWN0QWRkcmVz c1NldChyZWZlcmVuY2VkLCBOYW1lc3BhY2VSZWxhdGlvbklkLCB2YXJOYW1lc3BhY2UpOworCWFk ZF9leGFjdF9vYmplY3RfYWRkcmVzcygmcmVmZXJlbmNlZCwgYWRkcnMpOworCisJLyogZGVwZW5k ZW5jeSBvbiB1c2VkIHR5cGUgKi8KKwlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIFR5cGVS ZWxhdGlvbklkLCB2YXJUeXBlKTsKKwlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJlc3MoJnJlZmVyZW5j ZWQsIGFkZHJzKTsKKworCS8qIGRlcGVuZGVuY3kgb24gY29sbGF0aW9uICovCisJaWYgKE9pZElz VmFsaWQodmFyQ29sbGF0aW9uKSAmJgorCQl2YXJDb2xsYXRpb24gIT0gREVGQVVMVF9DT0xMQVRJ T05fT0lEKQorCXsKKwkJT2JqZWN0QWRkcmVzc1NldChyZWZlcmVuY2VkLCBDb2xsYXRpb25SZWxh dGlvbklkLCB2YXJDb2xsYXRpb24pOworCQlhZGRfZXhhY3Rfb2JqZWN0X2FkZHJlc3MoJnJlZmVy ZW5jZWQsIGFkZHJzKTsKKwl9CisKKwlyZWNvcmRfb2JqZWN0X2FkZHJlc3NfZGVwZW5kZW5jaWVz KCZteXNlbGYsIGFkZHJzLCBERVBFTkRFTkNZX05PUk1BTCk7CisJZnJlZV9vYmplY3RfYWRkcmVz c2VzKGFkZHJzKTsKKworCS8qIGRlcGVuZGVuY3kgb24gb3duZXIgKi8KKwlyZWNvcmREZXBlbmRl bmN5T25Pd25lcihWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCB2YXJPd25lcik7CisKKwkvKiBk ZXBlbmRlbmNpZXMgb24gcm9sZXMgbWVudGlvbmVkIGluIGRlZmF1bHQgQUNMICovCisJcmVjb3Jk RGVwZW5kZW5jeU9uTmV3QWNsKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIDAsIHZhck93bmVy LCB2YXJhY2wpOworCisJLyogZGVwZW5kZW5jeSBvbiBleHRlbnNpb24gKi8KKwlyZWNvcmREZXBl bmRlbmN5T25DdXJyZW50RXh0ZW5zaW9uKCZteXNlbGYsIGZhbHNlKTsKKworCWhlYXBfZnJlZXR1 cGxlKHR1cCk7CisKKwkvKiBwb3N0IGNyZWF0aW9uIGhvb2sgZm9yIG5ldyBmdW5jdGlvbiAqLwor CUludm9rZU9iamVjdFBvc3RDcmVhdGVIb29rKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIDAp OworCisJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKKworCXJldHVybiBteXNl bGY7Cit9CisKKy8qCisgKiBDcmVhdGVzIGEgbmV3IHZhcmlhYmxlCisgKgorICogVXNlZCBieSBD UkVBVEUgVkFSSUFCTEUgY29tbWFuZAorICovCitPYmplY3RBZGRyZXNzCitDcmVhdGVWYXJpYWJs ZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQoreworCU9p ZAkJCW5hbWVzcGFjZWlkOworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisJT2lkCQkJdHlwaWQ7CisJ aW50MzIJCXR5cG1vZDsKKwlPaWQJCQl2YXJvd25lciA9IEdldFVzZXJJZCgpOworCU9pZAkJCWNv bGxhdGlvbjsKKwlPaWQJCQl0eXBjb2xsYXRpb247CisJT2JqZWN0QWRkcmVzcyB2YXJpYWJsZTsK KworCW5hbWVzcGFjZWlkID0KKwkJUmFuZ2VWYXJHZXRBbmRDaGVja0NyZWF0aW9uTmFtZXNwYWNl KHN0bXQtPnZhcmlhYmxlLCBOb0xvY2ssIE5VTEwpOworCisJdHlwZW5hbWVUeXBlSWRBbmRNb2Qo cHN0YXRlLCBzdG10LT50eXBlTmFtZSwgJnR5cGlkLCAmdHlwbW9kKTsKKworCS8qIGRpc2FsbG93 IHBzZXVkb3R5cGVzICovCisJaWYgKGdldF90eXB0eXBlKHR5cGlkKSA9PSBUWVBUWVBFX1BTRVVE TykKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9U WVBFKSwKKwkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSBwc2V1ZG8tdHlw ZSAlcyIsCisJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkpKSk7CisKKwlhY2xyZXN1bHQgPSBv YmplY3RfYWNsY2hlY2soVHlwZVJlbGF0aW9uSWQsIHR5cGlkLCBHZXRVc2VySWQoKSwgQUNMX1VT QUdFKTsKKwlpZiAoYWNscmVzdWx0ICE9IEFDTENIRUNLX09LKQorCQlhY2xjaGVja19lcnJvcl90 eXBlKGFjbHJlc3VsdCwgdHlwaWQpOworCisJdHlwY29sbGF0aW9uID0gZ2V0X3R5cGNvbGxhdGlv bih0eXBpZCk7CisKKwlpZiAoc3RtdC0+Y29sbENsYXVzZSkKKwkJY29sbGF0aW9uID0gTG9va3Vw Q29sbGF0aW9uKHBzdGF0ZSwKKwkJCQkJCQkJCXN0bXQtPmNvbGxDbGF1c2UtPmNvbGxuYW1lLAor CQkJCQkJCQkJc3RtdC0+Y29sbENsYXVzZS0+bG9jYXRpb24pOworCWVsc2UKKwkJY29sbGF0aW9u ID0gdHlwY29sbGF0aW9uOworCisJLyogY29tcGxhaW4gaWYgQ09MTEFURSBpcyBhcHBsaWVkIHRv IGFuIHVuY29sbGF0YWJsZSB0eXBlICovCisJaWYgKE9pZElzVmFsaWQoY29sbGF0aW9uKSAmJiAh T2lkSXNWYWxpZCh0eXBjb2xsYXRpb24pKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCSBlcnJtc2coImNvbGxhdGlvbnMgYXJl IG5vdCBzdXBwb3J0ZWQgYnkgdHlwZSAlcyIsCisJCQkJCQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkp LAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10LT5jb2xsQ2xhdXNlLT5sb2Nh dGlvbikpKTsKKworCXZhcmlhYmxlID0gY3JlYXRlX3ZhcmlhYmxlKHN0bXQtPnZhcmlhYmxlLT5y ZWxuYW1lLAorCQkJCQkJCSAgIG5hbWVzcGFjZWlkLAorCQkJCQkJCSAgIHR5cGlkLAorCQkJCQkJ CSAgIHR5cG1vZCwKKwkJCQkJCQkgICB2YXJvd25lciwKKwkJCQkJCQkgICBjb2xsYXRpb24sCisJ CQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0cyk7CisKKwllbG9nKERFQlVHMSwgInJlY29yZCBm b3Igc2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgKG9pZDolZCkgd2FzIGNyZWF0ZWQgaW4gcGdfdmFy aWFibGUiLAorCQkgc3RtdC0+dmFyaWFibGUtPnJlbG5hbWUsIHZhcmlhYmxlLm9iamVjdElkKTsK KworCXJldHVybiB2YXJpYWJsZTsKK30KKworLyoKKyAqIERyb3AgdmFyaWFibGUgYnkgT0lECisg Ki8KK3ZvaWQKK0Ryb3BWYXJpYWJsZUJ5SWQoT2lkIHZhcmlkKQoreworCVJlbGF0aW9uCXJlbDsK KwlIZWFwVHVwbGUJdHVwOworCisJcmVsID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9uSWQs IFJvd0V4Y2x1c2l2ZUxvY2spOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lE LCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVw KSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHZhcmlhYmxlICV1Iiwg dmFyaWQpOworCisJQ2F0YWxvZ1R1cGxlRGVsZXRlKHJlbCwgJnR1cC0+dF9zZWxmKTsKKworCVJl bGVhc2VTeXNDYWNoZSh0dXApOworCisJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2Nr KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9hbHRlci5jCmluZGV4IDc4YzFkNGUxYjg0Li42NzE1M2NkOGI5NCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9hbHRlci5jCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190 c19kaWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c19wYXJzZXIuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX3RzX3RlbXBsYXRlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5o IgogI2luY2x1ZGUgImNvbW1hbmRzL2FsdGVyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvY29sbGF0 aW9uY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKQEAgLTE0MCw2ICsx NDEsMTAgQEAgcmVwb3J0X25hbWVzcGFjZV9jb25mbGljdChPaWQgY2xhc3NJZCwgY29uc3QgY2hh ciAqbmFtZSwgT2lkIG5zcE9pZCkKIAkJCUFzc2VydChPaWRJc1ZhbGlkKG5zcE9pZCkpOwogCQkJ bXNnZm10ID0gZ2V0dGV4dF9ub29wKCJ0ZXh0IHNlYXJjaCBjb25maWd1cmF0aW9uIFwiJXNcIiBh bHJlYWR5IGV4aXN0cyBpbiBzY2hlbWEgXCIlc1wiIik7CiAJCQlicmVhazsKKwkJY2FzZSBWYXJp YWJsZVJlbGF0aW9uSWQ6CisJCQlBc3NlcnQoT2lkSXNWYWxpZChuc3BPaWQpKTsKKwkJCW1zZ2Zt dCA9IGdldHRleHRfbm9vcCgic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgYWxyZWFkeSBleGlzdHMg aW4gc2NoZW1hIFwiJXNcIiIpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9S LCAidW5zdXBwb3J0ZWQgb2JqZWN0IGNsYXNzOiAldSIsIGNsYXNzSWQpOwogCQkJYnJlYWs7CkBA IC00MTksNiArNDI0LDcgQEAgRXhlY1JlbmFtZVN0bXQoUmVuYW1lU3RtdCAqc3RtdCkKIAkJY2Fz ZSBPQkpFQ1RfVFNURU1QTEFURToKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT046CiAJCWNhc2Ug T0JKRUNUX1NVQlNDUklQVElPTjoKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJCQl7CiAJCQkJ T2JqZWN0QWRkcmVzcyBhZGRyZXNzOwogCQkJCVJlbGF0aW9uCWNhdGFsb2c7CkBAIC01NTksNiAr NTY1LDcgQEAgRXhlY0FsdGVyT2JqZWN0U2NoZW1hU3RtdChBbHRlck9iamVjdFNjaGVtYVN0bXQg KnN0bXQsCiAJCWNhc2UgT0JKRUNUX1RTRElDVElPTkFSWToKIAkJY2FzZSBPQkpFQ1RfVFNQQVJT RVI6CiAJCWNhc2UgT0JKRUNUX1RTVEVNUExBVEU6CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgog CQkJewogCQkJCVJlbGF0aW9uCWNhdGFsb2c7CiAJCQkJT2lkCQkJY2xhc3NJZDsKQEAgLTY0MSw2 ICs2NDgsNyBAQCBBbHRlck9iamVjdE5hbWVzcGFjZV9vaWQoT2lkIGNsYXNzSWQsIE9pZCBvYmpp ZCwgT2lkIG5zcE9pZCwKIAkJY2FzZSBUU0RpY3Rpb25hcnlSZWxhdGlvbklkOgogCQljYXNlIFRT VGVtcGxhdGVSZWxhdGlvbklkOgogCQljYXNlIFRTQ29uZmlnUmVsYXRpb25JZDoKKwkJY2FzZSBW YXJpYWJsZVJlbGF0aW9uSWQ6CiAJCQl7CiAJCQkJUmVsYXRpb24JY2F0YWxvZzsKIApAQCAtODcx LDYgKzg3OSw3IEBAIEV4ZWNBbHRlck93bmVyU3RtdChBbHRlck93bmVyU3RtdCAqc3RtdCkKIAkJ Y2FzZSBPQkpFQ1RfVEFCTEVTUEFDRToKIAkJY2FzZSBPQkpFQ1RfVFNESUNUSU9OQVJZOgogCQlj YXNlIE9CSkVDVF9UU0NPTkZJR1VSQVRJT046CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgogCQkJ ewogCQkJCU9iamVjdEFkZHJlc3MgYWRkcmVzczsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvZHJvcGNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKaW5k ZXggY2ViOWEyMjliNjMuLmViYjU4NWRjNGExIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy9kcm9wY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3BjbWRzLmMKQEAg LTQ3Niw2ICs0NzYsMTAgQEAgZG9lc19ub3RfZXhpc3Rfc2tpcHBpbmcoT2JqZWN0VHlwZSBvYmp0 eXBlLCBOb2RlICpvYmplY3QpCiAJCQltc2cgPSBnZXR0ZXh0X25vb3AoInB1YmxpY2F0aW9uIFwi JXNcIiBkb2VzIG5vdCBleGlzdCwgc2tpcHBpbmciKTsKIAkJCW5hbWUgPSBzdHJWYWwob2JqZWN0 KTsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCW1zZyA9IGdldHRleHRf bm9vcCgic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nIik7 CisJCQluYW1lID0gTmFtZUxpc3RUb1N0cmluZyhjYXN0Tm9kZShMaXN0LCBvYmplY3QpKTsKKwkJ CWJyZWFrOwogCiAJCWNhc2UgT0JKRUNUX0NPTFVNTjoKIAkJY2FzZSBPQkpFQ1RfREFUQUJBU0U6 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKaW5kZXggZWRjMmM5ODhlMjkuLjE4Mzlj MWY4MmM1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCkBAIC0yMTQ5LDYgKzIx NDksOCBAQCBzdHJpbmdpZnlfZ3JhbnRfb2JqdHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCQly ZXR1cm4gIlRBQkxFU1BBQ0UiOwogCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJcmV0dXJuICJUWVBF IjsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlyZXR1cm4gIlZBUklBQkxFIjsKIAkJCS8q IHRoZXNlIGN1cnJlbnRseSBhcmVuJ3QgdXNlZCAqLwogCQljYXNlIE9CSkVDVF9BQ0NFU1NfTUVU SE9EOgogCQljYXNlIE9CSkVDVF9BR0dSRUdBVEU6CkBAIC0yMjMyLDYgKzIyMzQsOCBAQCBzdHJp bmdpZnlfYWRlZnByaXZzX29ianR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQogCQkJcmV0dXJuICJU QUJMRVNQQUNFUyI7CiAJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQlyZXR1cm4gIlRZUEVTIjsKKwkJ Y2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQlyZXR1cm4gIlZBUklBQkxFUyI7CiAJCQkvKiB0aGVz ZSBjdXJyZW50bHkgYXJlbid0IHVzZWQgKi8KIAkJY2FzZSBPQkpFQ1RfQUNDRVNTX01FVEhPRDoK IAkJY2FzZSBPQkpFQ1RfQUdHUkVHQVRFOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvc2VjbGFiZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKaW5kZXggY2Vl NWQ3YmJiOWMuLjU3YjRlNjcxOWMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZWNsYWJlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKQEAgLTkyLDYg KzkyLDcgQEAgU2VjTGFiZWxTdXBwb3J0c09iamVjdFR5cGUoT2JqZWN0VHlwZSBvYmp0eXBlKQog CQljYXNlIE9CSkVDVF9UU1BBUlNFUjoKIAkJY2FzZSBPQkpFQ1RfVFNURU1QTEFURToKIAkJY2Fz ZSBPQkpFQ1RfVVNFUl9NQVBQSU5HOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCXJldHVy biBmYWxzZTsKIAogCQkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggNDE4MWMxMTBl YjcuLjAwNWUwNzlhNmZjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNt ZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtNTIsNiArNTIs NyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZS5oIgogI2luY2x1ZGUgImNhdGFs b2cvcGdfdHJpZ2dlci5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUg ImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3N0b3JhZ2UuaCIKICNp bmNsdWRlICJjYXRhbG9nL3N0b3JhZ2VfeGxvZy5oIgogI2luY2x1ZGUgImNhdGFsb2cvdG9hc3Rp bmcuaCIKQEAgLTY3NzMsNiArNjc3NCw3IEBAIEFUVHlwZWRUYWJsZVJlY3Vyc2lvbihMaXN0ICoq d3F1ZXVlLCBSZWxhdGlvbiByZWwsIEFsdGVyVGFibGVDbWQgKmNtZCwKICAqIChwb3NzaWJseSBu ZXN0ZWQgc2V2ZXJhbCBsZXZlbHMgZGVlcCBpbiBjb21wb3NpdGUgdHlwZXMsIGFycmF5cywgZXRj ISkuCiAgKiBFdmVudHVhbGx5LCB3ZSdkIGxpa2UgdG8gcHJvcGFnYXRlIHRoZSBjaGVjayBvciBy ZXdyaXRlIG9wZXJhdGlvbgogICogaW50byBzdWNoIHRhYmxlcywgYnV0IGZvciBub3csIGp1c3Qg ZXJyb3Igb3V0IGlmIHdlIGZpbmQgYW55LgorICogQWxzbywgY2hlY2sgaWYgInR5cGVPaWQiIGlz IHVzZWQgYXMgdHlwZSBvZiBzb21lIHNlc3Npb24gdmFyaWFibGUuCiAgKgogICogQ2FsbGVyIHNo b3VsZCBwcm92aWRlIGVpdGhlciB0aGUgYXNzb2NpYXRlZCByZWxhdGlvbiBvZiBhIHJvd3R5cGUs CiAgKiBvciBhIHR5cGUgbmFtZSAobm90IGJvdGgpIGZvciB1c2UgaW4gdGhlIGVycm9yIG1lc3Nh Z2UsIGlmIGFueS4KQEAgLTY4MzYsNiArNjgzOCw0NSBAQCBmaW5kX2NvbXBvc2l0ZV90eXBlX2Rl cGVuZGVuY2llcyhPaWQgdHlwZU9pZCwgUmVsYXRpb24gb3JpZ1JlbGF0aW9uLAogCQkJY29udGlu dWU7CiAJCX0KIAorCQkvKiBjaGVjayBpZiB0aGUgdHlwZSBpcyB1c2VkIGFzIHR5cGUgb2Ygc29t ZSBzZXNzaW9uIHZhcmlhYmxlICovCisJCWlmIChwZ19kZXBlbmQtPmNsYXNzaWQgPT0gVmFyaWFi bGVSZWxhdGlvbklkKQorCQl7CisJCQlPaWQJCQl2YXJpZCA9IHBnX2RlcGVuZC0+b2JqaWQ7CisK KwkJCWlmIChvcmlnVHlwZU5hbWUpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2Rl KEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coImNhbm5vdCBh bHRlciB0eXBlIFwiJXNcIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIHVzZXMg aXQiLAorCQkJCQkJCQlvcmlnVHlwZU5hbWUsCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShn ZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZSh2YXJpZCkpKSk7CisJCQllbHNlIGlmIChvcmlnUmVsYXRpb24tPnJk X3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX0NPTVBPU0lURV9UWVBFKQorCQkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJ CQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgdHlwZSBcIiVzXCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlh YmxlIFwiJXMuJXNcIiB1c2VzIGl0IiwKKwkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUo b3JpZ1JlbGF0aW9uKSwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3Zh cmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lKHZhcmlkKSkpKTsKKwkJCWVsc2UgaWYgKG9yaWdSZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5k ID09IFJFTEtJTkRfRk9SRUlHTl9UQUJMRSkKKwkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJKGVy cmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJIGVycm1zZygiY2Fu bm90IGFsdGVyIGZvcmVpZ24gdGFibGUgXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBc IiVzLiVzXCIgdXNlcyBpdCIsCisJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKG9yaWdS ZWxhdGlvbiksCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2 YXJpZCkpKSk7CisJCQllbHNlIGlmIChvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9PSBS RUxLSU5EX1JFTEFUSU9OIHx8CisJCQkJCSBvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCA9 PSBSRUxLSU5EX01BVFZJRVcgfHwKKwkJCQkJIG9yaWdSZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5k ID09IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJ CShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2co ImNhbm5vdCBhbHRlciB0YWJsZSBcIiVzXCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMu JXNcIiB1c2VzIGl0IiwKKwkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUob3JpZ1JlbGF0 aW9uKSwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlk KSkpKTsKKworCQkJY29udGludWU7CisJCX0KKwogCQkvKiBFbHNlLCBpZ25vcmUgZGVwZW5kZWVz IHRoYXQgYXJlbid0IHJlbGF0aW9ucyAqLwogCQlpZiAocGdfZGVwZW5kLT5jbGFzc2lkICE9IFJl bGF0aW9uUmVsYXRpb25JZCkKIAkJCWNvbnRpbnVlOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvdHlwZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMKaW5k ZXggNmIxZDIzODM1MTQuLjNlMWZkZTRjZGQ2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21t YW5kcy90eXBlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMKQEAg LTUzLDYgKzUzLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX3JhbmdlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgog I2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3R5cGVj bWRzLmgiCkBAIC0zNDA0LDYgKzM0MDUsMjAgQEAgZ2V0X3JlbHNfd2l0aF9kb21haW4oT2lkIGRv bWFpbk9pZCwgTE9DS01PREUgbG9ja21vZGUpCiAJCQl9CiAJCQljb250aW51ZTsKIAkJfQorCQll bHNlIGlmIChwZ19kZXBlbmQtPmNsYXNzaWQgPT0gVmFyaWFibGVSZWxhdGlvbklkKQorCQl7CisJ CQkvKgorCQkJICogV2UgY2Fubm90IHRvIHZhbGlkYXRlIGNvbnN0cmFpbnQgaW5zaWRlIHNlc3Np b24gdmFyaWFibGVzCisJCQkgKiBmcm9tIG90aGVyIHNlc3Npb25zLCBzbyBiZXR0ZXIgdG8gZmFp bCBpZiB0aGVyZSBhcmUgYW55CisJCQkgKiBzZXNzaW9uIHZhcmlhYmxlLCB0aGF0IHVzZSB0aGlz IGRvbWFpbi4KKwkJCSAqLworCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09E RV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkgZXJybXNnKCJjYW5ub3QgYWx0ZXIgZG9t YWluIFwiJXNcIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIHVzZXMgaXQiLAor CQkJCQkJCQlkb21haW5UeXBlTmFtZSwKKwkJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9z ZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShwZ19kZXBlbmQtPm9iamlkKSksCisJCQkJCQkJCWdl dF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUocGdfZGVwZW5kLT5vYmppZCkpKSk7CisJCX0KIAogCQkv KiBFbHNlLCBpZ25vcmUgZGVwZW5kZWVzIHRoYXQgYXJlbid0IHVzZXIgY29sdW1ucyBvZiByZWxh dGlvbnMgKi8KIAkJLyogKHdlIGFzc3VtZSBzeXN0ZW0gY29sdW1ucyBhcmUgbmV2ZXIgb2YgZG9t YWluIHR5cGVzKSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYjRjMWUyYzY5ZGQuLjc5NjE0N2E1NDFhIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFj ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Ry aWdnZXIuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29t bWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUg ImdyYW1wYXJzZS5oIgpAQCAtMjgxLDggKzI4Miw4IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJz aXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7 CiAJCUNvbnN0cmFpbnRzU2V0U3RtdCBDb3B5U3RtdCBDcmVhdGVBc1N0bXQgQ3JlYXRlQ2FzdFN0 bXQKIAkJQ3JlYXRlRG9tYWluU3RtdCBDcmVhdGVFeHRlbnNpb25TdG10IENyZWF0ZUdyb3VwU3Rt dCBDcmVhdGVPcENsYXNzU3RtdAogCQlDcmVhdGVPcEZhbWlseVN0bXQgQWx0ZXJPcEZhbWlseVN0 bXQgQ3JlYXRlUExhbmdTdG10Ci0JCUNyZWF0ZVNjaGVtYVN0bXQgQ3JlYXRlU2VxU3RtdCBDcmVh dGVTdG10IENyZWF0ZVN0YXRzU3RtdCBDcmVhdGVUYWJsZVNwYWNlU3RtdAotCQlDcmVhdGVGZHdT dG10IENyZWF0ZUZvcmVpZ25TZXJ2ZXJTdG10IENyZWF0ZUZvcmVpZ25UYWJsZVN0bXQKKwkJQ3Jl YXRlU2NoZW1hU3RtdCBDcmVhdGVTZXFTdG10IENyZWF0ZVNlc3Npb25WYXJTdG10IENyZWF0ZVN0 bXQgQ3JlYXRlU3RhdHNTdG10CisJCUNyZWF0ZVRhYmxlU3BhY2VTdG10IENyZWF0ZUZkd1N0bXQg Q3JlYXRlRm9yZWlnblNlcnZlclN0bXQgQ3JlYXRlRm9yZWlnblRhYmxlU3RtdAogCQlDcmVhdGVB c3NlcnRpb25TdG10IENyZWF0ZVRyYW5zZm9ybVN0bXQgQ3JlYXRlVHJpZ1N0bXQgQ3JlYXRlRXZl bnRUcmlnU3RtdAogCQlDcmVhdGVVc2VyU3RtdCBDcmVhdGVVc2VyTWFwcGluZ1N0bXQgQ3JlYXRl Um9sZVN0bXQgQ3JlYXRlUG9saWN5U3RtdAogCQlDcmVhdGVkYlN0bXQgRGVjbGFyZUN1cnNvclN0 bXQgRGVmaW5lU3RtdCBEZWxldGVTdG10IERpc2NhcmRTdG10IERvU3RtdApAQCAtNzc1LDggKzc3 Niw4IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1l LCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJVUVTQ0FQRSBVTkJPVU5ERUQgVU5DT05E SVRJT05BTCBVTkNPTU1JVFRFRCBVTkVOQ1JZUFRFRCBVTklPTiBVTklRVUUgVU5LTk9XTgogCVVO TElTVEVOIFVOTE9HR0VEIFVOVElMIFVQREFURSBVU0VSIFVTSU5HCiAKLQlWQUNVVU0gVkFMSUQg VkFMSURBVEUgVkFMSURBVE9SIFZBTFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFESUMgVkFSWUlO RwotCVZFUkJPU0UgVkVSU0lPTl9QIFZJRVcgVklFV1MgVk9MQVRJTEUKKwlWQUNVVU0gVkFMSUQg VkFMSURBVEUgVkFMSURBVE9SIFZBTFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFCTEUgVkFSSUFC TEVTCisJVkFSSUFESUMgVkFSWUlORyBWRVJCT1NFIFZFUlNJT05fUCBWSUVXIFZJRVdTIFZPTEFU SUxFCiAKIAlXSEVOIFdIRVJFIFdISVRFU1BBQ0VfUCBXSU5ET1cgV0lUSCBXSVRISU4gV0lUSE9V VCBXT1JLIFdSQVBQRVIgV1JJVEUKIApAQCAtMTA0Miw2ICsxMDQzLDcgQEAgc3RtdDoKIAkJCXwg Q3JlYXRlUG9saWN5U3RtdAogCQkJfCBDcmVhdGVQTGFuZ1N0bXQKIAkJCXwgQ3JlYXRlU2NoZW1h U3RtdAorCQkJfCBDcmVhdGVTZXNzaW9uVmFyU3RtdAogCQkJfCBDcmVhdGVTZXFTdG10CiAJCQl8 IENyZWF0ZVN0bXQKIAkJCXwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdApAQCAtMTU4NCw2ICsxNTg2 LDcgQEAgc2NoZW1hX3N0bXQ6CiAJCQl8IENyZWF0ZVRyaWdTdG10CiAJCQl8IEdyYW50U3RtdAog CQkJfCBWaWV3U3RtdAorCQkJfCBDcmVhdGVTZXNzaW9uVmFyU3RtdAogCQk7CiAKIApAQCAtNTIx MCw2ICs1MjEzLDM0IEBAIGNyZWF0ZV9leHRlbnNpb25fb3B0X2l0ZW06CiAJCQkJfQogCQk7CiAK Ky8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgorICoKKyAqCQlRVUVSWSA6CisgKgkJCQlDUkVBVEUgVkFS SUFCTEUgdmFybmFtZSBbQVNdIHR5cGUKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK0Ny ZWF0ZVNlc3Npb25WYXJTdG10OgorCQkJQ1JFQVRFIFZBUklBQkxFIHF1YWxpZmllZF9uYW1lIG9w dF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UKKwkJCQl7CisJCQkJCUNyZWF0ZVNlc3Np b25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOworCQkJCQluLT52 YXJpYWJsZSA9ICQzOworCQkJCQluLT50eXBlTmFtZSA9ICQ1OworCQkJCQluLT5jb2xsQ2xhdXNl ID0gKENvbGxhdGVDbGF1c2UgKikgJDY7CisJCQkJCW4tPmlmX25vdF9leGlzdHMgPSBmYWxzZTsK KwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwgQ1JFQVRFIFZBUklBQkxFIElGX1Ag Tk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xh dXNlCisJCQkJeworCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0 ZVNlc3Npb25WYXJTdG10KTsKKwkJCQkJbi0+dmFyaWFibGUgPSAkNjsKKwkJCQkJbi0+dHlwZU5h bWUgPSAkODsKKwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ5OworCQkJ CQluLT5pZl9ub3RfZXhpc3RzID0gdHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0K KwkJOworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKiBBTFRFUiBFWFRFTlNJT04gbmFt ZSBVUERBVEUgWyBUTyB2ZXJzaW9uIF0KQEAgLTY5OTgsNiArNzAyOSw3IEBAIG9iamVjdF90eXBl X2FueV9uYW1lOgogCQkJfCBURVhUX1AgU0VBUkNIIERJQ1RJT05BUlkJCQkJeyAkJCA9IE9CSkVD VF9UU0RJQ1RJT05BUlk7IH0KIAkJCXwgVEVYVF9QIFNFQVJDSCBURU1QTEFURQkJCQl7ICQkID0g T0JKRUNUX1RTVEVNUExBVEU7IH0KIAkJCXwgVEVYVF9QIFNFQVJDSCBDT05GSUdVUkFUSU9OCQkJ eyAkJCA9IE9CSkVDVF9UU0NPTkZJR1VSQVRJT047IH0KKwkJCXwgVkFSSUFCTEUJCQkJCQkJCXsg JCQgPSBPQkpFQ1RfVkFSSUFCTEU7IH0KIAkJOwogCiAvKgpAQCAtNzg3NCw2ICs3OTA2LDE0IEBA IHByaXZpbGVnZV90YXJnZXQ6CiAJCQkJCW4tPm9ianMgPSAkMjsKIAkJCQkJJCQgPSBuOwogCQkJ CX0KKwkJCXwgVkFSSUFCTEUgcXVhbGlmaWVkX25hbWVfbGlzdAorCQkJCXsKKwkJCQkJUHJpdlRh cmdldCAqbiA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkpOworCQkJ CQluLT50YXJndHlwZSA9IEFDTF9UQVJHRVRfT0JKRUNUOworCQkJCQluLT5vYmp0eXBlID0gT0JK RUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmpzID0gJDI7CisJCQkJCSQkID0gbjsKKwkJCQl9CiAJ CQl8IEFMTCBUQUJMRVMgSU5fUCBTQ0hFTUEgbmFtZV9saXN0CiAJCQkJewogCQkJCQlQcml2VGFy Z2V0ICpuID0gKFByaXZUYXJnZXQgKikgcGFsbG9jKHNpemVvZihQcml2VGFyZ2V0KSk7CkBAIC03 OTE5LDYgKzc5NTksMTQgQEAgcHJpdmlsZWdlX3RhcmdldDoKIAkJCQkJbi0+b2JqcyA9ICQ1Owog CQkJCQkkJCA9IG47CiAJCQkJfQorCQkJfCBBTEwgVkFSSUFCTEVTIElOX1AgU0NIRU1BIG5hbWVf bGlzdAorCQkJCXsKKwkJCQkJUHJpdlRhcmdldCAqbiA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhz aXplb2YoUHJpdlRhcmdldCkpOworCQkJCQluLT50YXJndHlwZSA9IEFDTF9UQVJHRVRfQUxMX0lO X1NDSEVNQTsKKwkJCQkJbi0+b2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2Jq cyA9ICQ1OworCQkJCQkkJCA9IG47CisJCQkJfQogCQk7CiAKIApAQCAtODExNiw2ICs4MTY0LDcg QEAgZGVmYWNsX3ByaXZpbGVnZV90YXJnZXQ6CiAJCQl8IFNFUVVFTkNFUwkJeyAkJCA9IE9CSkVD VF9TRVFVRU5DRTsgfQogCQkJfCBUWVBFU19QCQl7ICQkID0gT0JKRUNUX1RZUEU7IH0KIAkJCXwg U0NIRU1BUwkJeyAkJCA9IE9CSkVDVF9TQ0hFTUE7IH0KKwkJCXwgVkFSSUFCTEVTCQl7ICQkID0g T0JKRUNUX1ZBUklBQkxFOyB9CiAJCTsKIAogCkBAIC05OTA0LDYgKzk5NTMsMjQgQEAgUmVuYW1l U3RtdDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVzIFJFTkFNRSBUTyBu YW1lCiAJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwog CQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUgUkVOQU1FIFRPIG5hbWUKKwkJCQl7 CisJCQkJCVJlbmFtZVN0bXQgKm4gPSBtYWtlTm9kZShSZW5hbWVTdG10KTsKKwkJCQkJbi0+cmVu YW1lVHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDM7 CisJCQkJCW4tPm5ld25hbWUgPSAkNjsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJ CQkkJCA9IChOb2RlICopbjsKKwkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIElGX1AgRVhJU1RT IGFueV9uYW1lIFJFTkFNRSBUTyBuYW1lCisJCQkJeworCQkJCQlSZW5hbWVTdG10ICpuID0gbWFr ZU5vZGUoUmVuYW1lU3RtdCk7CisJCQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7 CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQ1OworCQkJCQluLT5uZXduYW1lID0gJDg7CisJ CQkJCW4tPm1pc3Npbmdfb2sgPSB0cnVlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CiAJ CTsKIAogb3B0X2NvbHVtbjogQ09MVU1OCkBAIC0xMDI2NSw2ICsxMDMzMiwyNCBAQCBBbHRlck9i amVjdFNjaGVtYVN0bXQ6CiAJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAo Tm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUgU0VUIFNDSEVN QSBuYW1lCisJCQkJeworCQkJCQlBbHRlck9iamVjdFNjaGVtYVN0bXQgKm4gPSBtYWtlTm9kZShB bHRlck9iamVjdFNjaGVtYVN0bXQpOworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1ZBUklB QkxFOworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkMzsKKwkJCQkJbi0+bmV3c2NoZW1hID0g JDY7CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJ CQkJfQorCQkJfCBBTFRFUiBWQVJJQUJMRSBJRl9QIEVYSVNUUyBhbnlfbmFtZSBTRVQgU0NIRU1B IG5hbWUKKwkJCQl7CisJCQkJCUFsdGVyT2JqZWN0U2NoZW1hU3RtdCAqbiA9IG1ha2VOb2RlKEFs dGVyT2JqZWN0U2NoZW1hU3RtdCk7CisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfVkFSSUFC TEU7CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQ1OworCQkJCQluLT5uZXdzY2hlbWEgPSAk ODsKKwkJCQkJbi0+bWlzc2luZ19vayA9IHRydWU7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJ CX0KIAkJOwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTEwNTQ2LDYgKzEwNjMxLDE0IEBA IEFsdGVyT3duZXJTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJndHlwZXMg T1dORVIgVE8gUm9sZVNwZWMKIAkJCQkJbi0+bmV3b3duZXIgPSAkNjsKIAkJCQkJJCQgPSAoTm9k ZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUgT1dORVIgVE8gUm9s ZVNwZWMKKwkJCQl7CisJCQkJCUFsdGVyT3duZXJTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPd25l clN0bXQpOworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQluLT5v YmplY3QgPSAoTm9kZSAqKSAkMzsKKwkJCQkJbi0+bmV3b3duZXIgPSAkNjsKKwkJCQkJJCQgPSAo Tm9kZSAqKW47CisJCQkJfQogCQk7CiAKIApAQCAtMTc5MTcsNiArMTgwMTAsOCBAQCB1bnJlc2Vy dmVkX2tleXdvcmQ6CiAJCQl8IFZBTElEQVRFCiAJCQl8IFZBTElEQVRPUgogCQkJfCBWQUxVRV9Q CisJCQl8IFZBUklBQkxFCisJCQl8IFZBUklBQkxFUwogCQkJfCBWQVJZSU5HCiAJCQl8IFZFUlNJ T05fUAogCQkJfCBWSUVXCkBAIC0xODU3MCw2ICsxODY2NSw4IEBAIGJhcmVfbGFiZWxfa2V5d29y ZDoKIAkJCXwgVkFMVUVfUAogCQkJfCBWQUxVRVMKIAkJCXwgVkFSQ0hBUgorCQkJfCBWQVJJQUJM RQorCQkJfCBWQVJJQUJMRVMKIAkJCXwgVkFSSUFESUMKIAkJCXwgVkVSQk9TRQogCQkJfCBWRVJT SU9OX1AKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCmluZGV4IGQyZDgyYzljNTk2Li45ODEw MjZkZDhjMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwor KysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCkBAIC0xMDUsNiArMTA1LDcg QEAgdHlwZWRlZiBzdHJ1Y3QKIAlMaXN0CSAgICppbmRleGVzOwkJLyogQ1JFQVRFIElOREVYIGl0 ZW1zICovCiAJTGlzdAkgICAqdHJpZ2dlcnM7CQkvKiBDUkVBVEUgVFJJR0dFUiBpdGVtcyAqLwog CUxpc3QJICAgKmdyYW50czsJCQkvKiBHUkFOVCBpdGVtcyAqLworCUxpc3QJICAgKnZhcmlhYmxl czsJCS8qIENSRUFURSBWQVJJQUJMRSBpdGVtcyAqLwogfSBDcmVhdGVTY2hlbWFTdG10Q29udGV4 dDsKIAogCkBAIC00MDM5LDYgKzQwNDAsNyBAQCB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxl bWVudHMoTGlzdCAqc2NoZW1hRWx0cywgY29uc3QgY2hhciAqc2NoZW1hTmFtZSkKIAljeHQuaW5k ZXhlcyA9IE5JTDsKIAljeHQudHJpZ2dlcnMgPSBOSUw7CiAJY3h0LmdyYW50cyA9IE5JTDsKKwlj eHQudmFyaWFibGVzID0gTklMOwogCiAJLyoKIAkgKiBSdW4gdGhyb3VnaCBlYWNoIHNjaGVtYSBl bGVtZW50IGluIHRoZSBzY2hlbWEgZWxlbWVudCBsaXN0LiBTZXBhcmF0ZQpAQCAtNDEwNyw2ICs0 MTA5LDE1IEBAIHRyYW5zZm9ybUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhMaXN0ICpzY2hlbWFF bHRzLCBjb25zdCBjaGFyICpzY2hlbWFOYW1lKQogCQkJCWN4dC5ncmFudHMgPSBsYXBwZW5kKGN4 dC5ncmFudHMsIGVsZW1lbnQpOwogCQkJCWJyZWFrOwogCisJCQljYXNlIFRfQ3JlYXRlU2Vzc2lv blZhclN0bXQ6CisJCQkJeworCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqZWxwID0gKENyZWF0 ZVNlc3Npb25WYXJTdG10ICopIGVsZW1lbnQ7CisKKwkJCQkJc2V0U2NoZW1hTmFtZShjeHQuc2No ZW1hbmFtZSwgJmVscC0+dmFyaWFibGUtPnNjaGVtYW5hbWUpOworCQkJCQljeHQudmFyaWFibGVz ID0gbGFwcGVuZChjeHQudmFyaWFibGVzLCBlbGVtZW50KTsKKwkJCQl9CisJCQkJYnJlYWs7CisK IAkJCWRlZmF1bHQ6CiAJCQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVk IiwKIAkJCQkJIChpbnQpIG5vZGVUYWcoZWxlbWVudCkpOwpAQCAtNDEyMCw2ICs0MTMxLDcgQEAg dHJhbnNmb3JtQ3JlYXRlU2NoZW1hU3RtdEVsZW1lbnRzKExpc3QgKnNjaGVtYUVsdHMsIGNvbnN0 IGNoYXIgKnNjaGVtYU5hbWUpCiAJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQuaW5k ZXhlcyk7CiAJcmVzdWx0ID0gbGlzdF9jb25jYXQocmVzdWx0LCBjeHQudHJpZ2dlcnMpOwogCXJl c3VsdCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgY3h0LmdyYW50cyk7CisJcmVzdWx0ID0gbGlzdF9j b25jYXQocmVzdWx0LCBjeHQudmFyaWFibGVzKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvdXRp bGl0eS5jCmluZGV4IDI1ZmUzZDU4MDE2Li45OWE1MTg3N2QzNCAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvdGNvcC91dGlsaXR5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMKQEAg LTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfYXV0aGlkLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19pbmhlcml0cy5oIgor I2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3RvYXN0 aW5nLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYWx0ZXIuaCIKICNpbmNsdWRlICJjb21tYW5kcy9h c3luYy5oIgpAQCAtMTgyLDYgKzE4Myw3IEBAIENsYXNzaWZ5VXRpbGl0eUNvbW1hbmRBc1JlYWRP bmx5KE5vZGUgKnBhcnNldHJlZSkKIAkJY2FzZSBUX0NyZWF0ZVJhbmdlU3RtdDoKIAkJY2FzZSBU X0NyZWF0ZVJvbGVTdG10OgogCQljYXNlIFRfQ3JlYXRlU2NoZW1hU3RtdDoKKwkJY2FzZSBUX0Ny ZWF0ZVNlc3Npb25WYXJTdG10OgogCQljYXNlIFRfQ3JlYXRlU2VxU3RtdDoKIAkJY2FzZSBUX0Ny ZWF0ZVN0YXRzU3RtdDoKIAkJY2FzZSBUX0NyZWF0ZVN0bXQ6CkBAIC0xMzg5LDYgKzEzOTEsMTAg QEAgUHJvY2Vzc1V0aWxpdHlTbG93KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQl9CiAJCQkJYnJl YWs7CiAKKwkJCWNhc2UgVF9DcmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCQlhZGRyZXNzID0gQ3Jl YXRlVmFyaWFibGUocHN0YXRlLCAoQ3JlYXRlU2Vzc2lvblZhclN0bXQgKikgcGFyc2V0cmVlKTsK KwkJCQlicmVhazsKKwogCQkJCS8qCiAJCQkJICogKioqKioqKioqKioqKiBvYmplY3QgY3JlYXRp b24gLyBkZXN0cnVjdGlvbiAqKioqKioqKioqKioqKgogCQkJCSAqLwpAQCAtMjM0MSw2ICsyMzQ3 LDkgQEAgQWx0ZXJPYmplY3RUeXBlQ29tbWFuZFRhZyhPYmplY3RUeXBlIG9ianR5cGUpCiAJCWNh c2UgT0JKRUNUX1NUQVRJU1RJQ19FWFQ6CiAJCQl0YWcgPSBDTURUQUdfQUxURVJfU1RBVElTVElD UzsKIAkJCWJyZWFrOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXRhZyA9IENNRFRBR19B TFRFUl9WQVJJQUJMRTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJdGFnID0gQ01EVEFHX1VO S05PV047CiAJCQlicmVhazsKQEAgLTI2NDksNiArMjY1OCw5IEBAIENyZWF0ZUNvbW1hbmRUYWco Tm9kZSAqcGFyc2V0cmVlKQogCQkJCWNhc2UgT0JKRUNUX1NUQVRJU1RJQ19FWFQ6CiAJCQkJCXRh ZyA9IENNRFRBR19EUk9QX1NUQVRJU1RJQ1M7CiAJCQkJCWJyZWFrOworCQkJCWNhc2UgT0JKRUNU X1ZBUklBQkxFOgorCQkJCQl0YWcgPSBDTURUQUdfRFJPUF9WQVJJQUJMRTsKKwkJCQkJYnJlYWs7 CiAJCQkJZGVmYXVsdDoKIAkJCQkJdGFnID0gQ01EVEFHX1VOS05PV047CiAJCQl9CkBAIC0zMjI1 LDYgKzMyMzcsMTAgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUpCiAJCQl9CiAJ CQlicmVhazsKIAorCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6CisJCQl0YWcgPSBDTURU QUdfQ1JFQVRFX1ZBUklBQkxFOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coV0FS TklORywgInVucmVjb2duaXplZCBub2RlIHR5cGU6ICVkIiwKIAkJCQkgKGludCkgbm9kZVRhZyhw YXJzZXRyZWUpKTsKQEAgLTM3NTksNiArMzc3NSwxMCBAQCBHZXRDb21tYW5kTG9nTGV2ZWwoTm9k ZSAqcGFyc2V0cmVlKQogCQkJfQogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX0NyZWF0ZVNlc3Npb25W YXJTdG10OgorCQkJbGV2ID0gTE9HU1RNVF9EREw7CisJCQlicmVhazsKKwogCQlkZWZhdWx0Ogog CQkJZWxvZyhXQVJOSU5HLCAidW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLAogCQkJCSAoaW50 KSBub2RlVGFnKHBhcnNldHJlZSkpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2FjbC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jCmluZGV4IDZhNzY1NTBhNWUyLi4z NzdkZTBiN2M2YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUg ImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZS5oIgog I2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFi bGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvcHJvY2xhbmcuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNlLmgiCkBAIC0xMjks NiArMTMwLDggQEAgc3RhdGljIEFjbE1vZGUgY29udmVydF90eXBlX3ByaXZfc3RyaW5nKHRleHQg KnByaXZfdHlwZV90ZXh0KTsKIHN0YXRpYyBBY2xNb2RlIGNvbnZlcnRfcGFyYW1ldGVyX3ByaXZf c3RyaW5nKHRleHQgKnByaXZfdGV4dCk7CiBzdGF0aWMgQWNsTW9kZSBjb252ZXJ0X2xhcmdlb2Jq ZWN0X3ByaXZfc3RyaW5nKHRleHQgKnByaXZfdGV4dCk7CiBzdGF0aWMgQWNsTW9kZSBjb252ZXJ0 X3JvbGVfcHJpdl9zdHJpbmcodGV4dCAqcHJpdl90eXBlX3RleHQpOworc3RhdGljIE9pZAljb252 ZXJ0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh0ZXh0ICp2YXJuYW1lKTsKK3N0YXRpYyBBY2xNb2Rl IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0cmluZyh0ZXh0ICpwcml2X3R5cGVfdGV4 dCk7CiBzdGF0aWMgQWNsUmVzdWx0IHBnX3JvbGVfYWNsY2hlY2soT2lkIHJvbGVfb2lkLCBPaWQg cm9sZWlkLCBBY2xNb2RlIG1vZGUpOwogCiBzdGF0aWMgdm9pZCBSb2xlTWVtYmVyc2hpcENhY2hl Q2FsbGJhY2soRGF0dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSk7CkBAIC04 NTEsNiArODU0LDEwIEBAIGFjbGRlZmF1bHQoT2JqZWN0VHlwZSBvYmp0eXBlLCBPaWQgb3duZXJJ ZCkKIAkJCXdvcmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklHSFRTOwogCQkJb3duZXJfZGVmYXVsdCA9 IEFDTF9BTExfUklHSFRTX1BBUkFNRVRFUl9BQ0w7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1Rf VkFSSUFCTEU6CisJCQl3b3JsZF9kZWZhdWx0ID0gQUNMX05PX1JJR0hUUzsKKwkJCW93bmVyX2Rl ZmF1bHQgPSBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0Ogog CQkJZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLCAoaW50KSBvYmp0 eXBlKTsKIAkJCXdvcmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklHSFRTOwkvKiBrZWVwIGNvbXBpbGVy IHF1aWV0ICovCkBAIC05NDgsNiArOTU1LDkgQEAgYWNsZGVmYXVsdF9zcWwoUEdfRlVOQ1RJT05f QVJHUykKIAkJY2FzZSAnVCc6CiAJCQlvYmp0eXBlID0gT0JKRUNUX1RZUEU7CiAJCQlicmVhazsK KwkJY2FzZSAnVic6CisJCQlvYmp0eXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJYnJlYWs7CiAJ CWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlIGFiYnJl dmlhdGlvbjogJWMiLCBvYmp0eXBlYyk7CiAJfQpAQCAtNTAxNiw2ICs1MDI2LDIxNyBAQCBwZ19y b2xlX2FjbGNoZWNrKE9pZCByb2xlX29pZCwgT2lkIHJvbGVpZCwgQWNsTW9kZSBtb2RlKQogCXJl dHVybiBBQ0xDSEVDS19OT19QUklWOwogfQogCisvKgorICogaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlIHZhcmlhbnRzCisgKgkJVGhlc2UgYXJlIGFsbCBuYW1lZCAiaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlIiBhdCB0aGUgU1FMIGxldmVsLgorICoJCVRoZXkgdGFrZSB2YXJp b3VzIGNvbWJpbmF0aW9ucyBvZiB2YXJpYWJsZSBuYW1lLCB2YXJpYWJsZSBPSUQsCisgKgkJdXNl ciBuYW1lLCB1c2VyIE9JRCwgb3IgaW1wbGljaXQgdXNlciA9IGN1cnJlbnRfdXNlci4KKyAqCisg KgkJVGhlIHJlc3VsdCBpcyBhIGJvb2xlYW4gdmFsdWU6IHRydWUgaWYgdXNlciBoYXMgdGhlIGlu ZGljYXRlZAorICoJCXByaXZpbGVnZSwgZmFsc2UgaWYgbm90LCBvciBOVUxMIGlmIHNlc3Npb24g dmFyaWFibGUgZG9lc24ndAorICoJCWV4aXN0cy4KKyAqLworCisvKgorICogaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlX25hbWVfbmFtZQorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBv biBhIHNlc3Npb24gdmFyaWFibGUgZ2l2ZW4KKyAqCQluYW1lIHVzZXJuYW1lLCB0ZXh0IHNlc3Np b24gdmFyaWFibGUgbmFtZSwgYW5kIHRleHQgcHJpdiBuYW1lLgorICovCitEYXR1bQoraGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX25hbWVfbmFtZShQR19GVU5DVElPTl9BUkdTKQorewor CU5hbWUJCXJvbGVuYW1lID0gUEdfR0VUQVJHX05BTUUoMCk7CisJdGV4dAkgICAqdmFybmFtZSA9 IFBHX0dFVEFSR19URVhUX1BQKDEpOworCXRleHQJICAgKnByaXZfdHlwZV90ZXh0ID0gUEdfR0VU QVJHX1RFWFRfUFAoMik7CisJT2lkCQkJcm9sZWlkOworCU9pZAkJCXZhcmlkOworCUFjbE1vZGUJ CW1vZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19taXNzaW5nID0gZmFsc2U7 CisKKwlyb2xlaWQgPSBnZXRfcm9sZV9vaWRfb3JfcHVibGljKE5hbWVTdHIoKnJvbGVuYW1lKSk7 CisJbW9kZSA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0cmluZyhwcml2X3R5cGVf dGV4dCk7CisJdmFyaWQgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJuYW1lKTsK KworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFibGVSZWxhdGlvbklkLCB2 YXJpZCwKKwkJCQkJCQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZpc19taXNzaW5nKTsKKwor CWlmIChpc19taXNzaW5nKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdfUkVUVVJOX0JPT0wo YWNscmVzdWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZV9uYW1lCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgc2Vzc2lv biB2YXJpYWJsZSBnaXZlbgorICoJCXRleHQgc2Vzc2lvbiB2YXJpYWJsZSBhbmQgdGV4dCBwcml2 IG5hbWUuCisgKgkJY3VycmVudF91c2VyIGlzIGFzc3VtZWQKKyAqLworRGF0dW0KK2hhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9uYW1lKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJdGV4dAkg ICAqdmFybmFtZSA9IFBHX0dFVEFSR19URVhUX1BQKDApOworCXRleHQJICAgKnByaXZfdHlwZV90 ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAoMSk7CisJT2lkCQkJcm9sZWlkOworCU9pZAkJCXZhcmlk OworCUFjbE1vZGUJCW1vZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19taXNz aW5nID0gZmFsc2U7CisKKwlyb2xlaWQgPSBHZXRVc2VySWQoKTsKKwltb2RlID0gY29udmVydF9z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0KTsKKwl2YXJpZCA9IGNv bnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcm5hbWUpOworCisJYWNscmVzdWx0ID0gb2Jq ZWN0X2FjbGNoZWNrX2V4dChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJcm9s ZWlkLCBtb2RlLAorCQkJCQkJCQkJJmlzX21pc3NpbmcpOworCisJUEdfUkVUVVJOX0JPT0woYWNs cmVzdWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZV9uYW1lX2lkCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgc2Vzc2lv biB2YXJpYWJsZSBnaXZlbgorICoJCW5hbWUgdXNlbmFtZSwgc2Vzc2lvbiB2YXJpYWJsZSBvaWQs IGFuZCB0ZXh0IHByaXYgbmFtZS4KKyAqLworRGF0dW0KK2hhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZV9uYW1lX2lkKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJTmFtZQkJdXNlcm5hbWUgPSBQ R19HRVRBUkdfTkFNRSgwKTsKKwlPaWQJCQl2YXJpZCA9IFBHX0dFVEFSR19PSUQoMSk7CisJdGV4 dAkgICAqcHJpdl90eXBlX3RleHQgPSBQR19HRVRBUkdfVEVYVF9QUCgyKTsKKwlPaWQJCQlyb2xl aWQ7CisJQWNsTW9kZQkJbW9kZTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCWJvb2wJCWlzX21p c3NpbmcgPSBmYWxzZTsKKworCXJvbGVpZCA9IGdldF9yb2xlX29pZF9vcl9wdWJsaWMoTmFtZVN0 cigqdXNlcm5hbWUpKTsKKwltb2RlID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3Ry aW5nKHByaXZfdHlwZV90ZXh0KTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVja19leHQo VmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJ CQkJCSZpc19taXNzaW5nKTsKKworCWlmIChpc19taXNzaW5nKQorCQlQR19SRVRVUk5fTlVMTCgp OworCisJUEdfUkVUVVJOX0JPT0woYWNscmVzdWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoK KyAqIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9pZAorICoJCUNoZWNrIHVzZXIgcHJp dmlsZWdlcyBvbiBhIHNlc3Npb24gdmFyaWFibGUgZ2l2ZW4KKyAqCQlzZXNzaW9uIHZhcmlhYmxl IG9pZCwgYW5kIHRleHQgcHJpdiBuYW1lLgorICoJCWN1cnJlbnRfdXNlciBpcyBhc3N1bWVkCisg Ki8KK0RhdHVtCitoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWQoUEdfRlVOQ1RJT05f QVJHUykKK3sKKwlPaWQJCQl2YXJpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJdGV4dAkgICAqcHJp dl90eXBlX3RleHQgPSBQR19HRVRBUkdfVEVYVF9QUCgxKTsKKwlPaWQJCQlyb2xlaWQ7CisJQWNs TW9kZQkJbW9kZTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCWJvb2wJCWlzX21pc3NpbmcgPSBm YWxzZTsKKworCXJvbGVpZCA9IEdldFVzZXJJZCgpOworCW1vZGUgPSBjb252ZXJ0X3Nlc3Npb25f dmFyaWFibGVfcHJpdl9zdHJpbmcocHJpdl90eXBlX3RleHQpOworCisJYWNscmVzdWx0ID0gb2Jq ZWN0X2FjbGNoZWNrX2V4dChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJcm9s ZWlkLCBtb2RlLAorCQkJCQkJCQkJJmlzX21pc3NpbmcpOworCisJaWYgKGlzX21pc3NpbmcpCisJ CVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xyZXN1bHQgPT0gQUNMQ0hF Q0tfT0spOworfQorCisvKgorICogaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkX25h bWUKKyAqCQlDaGVjayB1c2VyIHByaXZpbGVnZXMgb24gYSBzZXNzaW9uIHZhcmlhYmxlIGdpdmVu CisgKgkJcm9sZWlkLCB0ZXh0IHNlc3Npb24gdmFyaWFibGUgbmFtZSwgYW5kIHRleHQgcHJpdiBu YW1lLgorICovCitEYXR1bQoraGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkX25hbWUo UEdfRlVOQ1RJT05fQVJHUykKK3sKKwlPaWQJCQlyb2xlaWQgPSBQR19HRVRBUkdfT0lEKDApOwor CXRleHQJICAgKnZhcm5hbWUgPSBQR19HRVRBUkdfVEVYVF9QUCgxKTsKKwl0ZXh0CSAgICpwcml2 X3R5cGVfdGV4dCA9IFBHX0dFVEFSR19URVhUX1BQKDIpOworCU9pZAkJCXZhcmlkOworCUFjbE1v ZGUJCW1vZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19taXNzaW5nID0gZmFs c2U7CisKKwltb2RlID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHByaXZf dHlwZV90ZXh0KTsKKwl2YXJpZCA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcm5h bWUpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrX2V4dChWYXJpYWJsZVJlbGF0aW9u SWQsIHZhcmlkLAorCQkJCQkJCQkJcm9sZWlkLCBtb2RlLAorCQkJCQkJCQkJJmlzX21pc3Npbmcp OworCisJaWYgKGlzX21pc3NpbmcpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5f Qk9PTChhY2xyZXN1bHQgPT0gQUNMQ0hFQ0tfT0spOworfQorCisvKgorICogaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlX2lkX2lkCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEg c2Vzc2lvbiB2YXJpYWJsZSBnaXZlbgorICoJCXJvbGVpZCwgc2Vzc2lvbiB2YXJpYWJsZSBvaWQs IGFuZCB0ZXh0IHByaXYgbmFtZS4KKyAqLworRGF0dW0KK2hhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZV9pZF9pZChQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJCXJvbGVpZCA9IFBHX0dF VEFSR19PSUQoMCk7CisJT2lkCQkJdmFyaWQgPSBQR19HRVRBUkdfT0lEKDEpOworCXRleHQJICAg KnByaXZfdHlwZV90ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAoMik7CisJQWNsTW9kZQkJbW9kZTsK KwlBY2xSZXN1bHQJYWNscmVzdWx0OworCWJvb2wJCWlzX21pc3NpbmcgPSBmYWxzZTsKKworCW1v ZGUgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmcocHJpdl90eXBlX3RleHQp OworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrX2V4dChWYXJpYWJsZVJlbGF0aW9uSWQs IHZhcmlkLAorCQkJCQkJCQkJcm9sZWlkLCBtb2RlLAorCQkJCQkJCQkJJmlzX21pc3NpbmcpOwor CisJaWYgKGlzX21pc3NpbmcpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fQk9P TChhY2xyZXN1bHQgPT0gQUNMQ0hFQ0tfT0spOworfQorCisvKgorICogR2l2ZW4gYSBzZXNzaW9u IHZhcmlhYmxlIG5hbWUgZXhwcmVzc2VkIGFzIGEgc3RyaW5nLCBsb29rIGl0IHVwIGFuZCByZXR1 cm4KKyAqIE9pZAorICovCitzdGF0aWMgT2lkCitjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfbmFt ZSh0ZXh0ICp2YXJuYW1lKQoreworCXJldHVybiBMb29rdXBWYXJpYWJsZUZyb21OYW1lTGlzdCh0 ZXh0VG9RdWFsaWZpZWROYW1lTGlzdCh2YXJuYW1lKSwgdHJ1ZSk7Cit9CisKKy8qCisgKiBjb252 ZXJ0X3ZhcmlhYmxlX3ByaXZfc3RyaW5nCisgKgkJQ29udmVydCB0ZXh0IHN0cmluZyB0byBBY2xN b2RlIHZhbHVlLgorICovCitzdGF0aWMgQWNsTW9kZQorY29udmVydF9zZXNzaW9uX3ZhcmlhYmxl X3ByaXZfc3RyaW5nKHRleHQgKnByaXZfdHlwZV90ZXh0KQoreworCXN0YXRpYyBjb25zdCBwcml2 X21hcCBzZXNzaW9uX3ZhcmlhYmxlX3ByaXZfbWFwW10gPSB7CisJCXsiU0VMRUNUIiwgQUNMX1NF TEVDVH0sCisJCXsiU0VMRUNUIFdJVEggR1JBTlQgT1BUSU9OIiwgQUNMX0dSQU5UX09QVElPTl9G T1IoQUNMX1NFTEVDVCl9LAorCQl7IlVQREFURSIsIEFDTF9VUERBVEV9LAorCQl7IlVQREFURSBX SVRIIEdSQU5UIE9QVElPTiIsIEFDTF9HUkFOVF9PUFRJT05fRk9SKEFDTF9VUERBVEUpfSwKKwkJ e05VTEwsIDB9CisJfTsKKworCXJldHVybiBjb252ZXJ0X2FueV9wcml2X3N0cmluZyhwcml2X3R5 cGVfdGV4dCwgc2Vzc2lvbl92YXJpYWJsZV9wcml2X21hcCk7Cit9CiAKIC8qCiAgKiBpbml0aWFs aXphdGlvbiBmdW5jdGlvbiAoY2FsbGVkIGJ5IEluaXRQb3N0Z3JlcykKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2Fj aGUvbHN5c2NhY2hlLmMKaW5kZXggOGNkYjU1ODI1MzYuLjRmNWM0NzJlMWE1IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9sc3lzY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9jYWNoZS9sc3lzY2FjaGUuYwpAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgImNhdGFs b2cvcGdfc3Vic2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190cmFuc2Zvcm0uaCIK ICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Zhcmlh YmxlLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNz LmgiCiAjaW5jbHVkZSAidXRpbHMvYXJyYXkuaCIKQEAgLTM3MTQsMyArMzcxNSwxMTUgQEAgZ2V0 X3N1YnNjcmlwdGlvbl9uYW1lKE9pZCBzdWJpZCwgYm9vbCBtaXNzaW5nX29rKQogCiAJcmV0dXJu IHN1Ym5hbWU7CiB9CisKKy8qCQkJCS0tLS0tLS0tLS0gUEdfVkFSSUFCTEUgQ0FDSEUgLS0tLS0t LS0tLQkJCQkgKi8KKworLyoKKyAqIGdldF92YXJuYW1lX3ZhcmlkCisgKgkJR2l2ZW4gbmFtZSBh bmQgbmFtZXNwYWNlIG9mIHZhcmlhYmxlLCBsb29rIHVwIHRoZSBPSUQuCisgKi8KK09pZAorZ2V0 X3Zhcm5hbWVfdmFyaWQoY29uc3QgY2hhciAqdmFybmFtZSwgT2lkIHZhcm5hbWVzcGFjZSkKK3sK KwlyZXR1cm4gR2V0U3lzQ2FjaGVPaWQyKFZBUklBQkxFTkFNRU5TUCwgQW51bV9wZ192YXJpYWJs ZV9vaWQsCisJCQkJCQkgICBQb2ludGVyR2V0RGF0dW0odmFybmFtZSksCisJCQkJCQkgICBPYmpl Y3RJZEdldERhdHVtKHZhcm5hbWVzcGFjZSkpOworfQorCisvKgorICogZ2V0X3Nlc3Npb25fdmFy aWFibGVfbmFtZQorICoJCVJldHVybnMgYSBwYWxsb2MnZCBjb3B5IG9mIHRoZSBuYW1lIG9mIGEg Z2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLworY2hhciAqCitnZXRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lKE9pZCB2YXJpZCkKK3sKKwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUg dmFyZm9ybTsKKwljaGFyCSAgICp2YXJuYW1lOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZB UklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlz VmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Np b24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUp IEdFVFNUUlVDVCh0dXApOworCisJdmFybmFtZSA9IHBzdHJkdXAoTmFtZVN0cih2YXJmb3JtLT52 YXJuYW1lKSk7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXJldHVybiB2YXJuYW1lOwor fQorCisvKgorICogZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlCisgKgkJUmV0dXJucyB0 aGUgcGdfbmFtZXNwYWNlIE9JRCBhc3NvY2lhdGVkIHdpdGggYSBnaXZlbiBzZXNzaW9uIHZhcmlh YmxlLgorICovCitPaWQKK2dldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZShPaWQgdmFyaWQp Cit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisJT2lkCQkJ dmFybmFtZXNwYWNlOworCisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmpl Y3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJ ZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHZhcmlhYmxlICV1IiwgdmFyaWQp OworCisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCXZh cm5hbWVzcGFjZSA9IHZhcmZvcm0tPnZhcm5hbWVzcGFjZTsKKworCVJlbGVhc2VTeXNDYWNoZSh0 dXApOworCisJcmV0dXJuIHZhcm5hbWVzcGFjZTsKK30KKworLyoKKyAqIFJldHVybnMgdGhlIHR5 cGUgb2YgdGhlIGdpdmVuIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK09pZAorZ2V0X3Nlc3Npb25f dmFyaWFibGVfdHlwZShPaWQgdmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3Zh cmlhYmxlIHZhcmZvcm07CisJT2lkCQkJdmFydHlwZTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hl MShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVw bGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBz ZXNzaW9uIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChGb3JtX3BnX3Zhcmlh YmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCXZhcnR5cGUgPSB2YXJmb3JtLT52YXJ0eXBlOworCisJ UmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4gdmFydHlwZTsKK30KKworLyoKKyAqIFJl dHVybnMgdGhlIHR5cGUsIHR5cG1vZCBhbmQgY29sbGlkIG9mIHRoZSBnaXZlbiBzZXNzaW9uIHZh cmlhYmxlLgorICovCit2b2lkCitnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xs aWQoT2lkIHZhcmlkLCBPaWQgKnR5cGlkLCBpbnQzMiAqdHlwbW9kLAorCQkJCQkJCQkJCU9pZCAq Y29sbGlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOwor CisJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZh cmlkKSk7CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNh Y2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2 YXJmb3JtID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJKnR5cGlkID0g dmFyZm9ybS0+dmFydHlwZTsKKwkqdHlwbW9kID0gdmFyZm9ybS0+dmFydHlwbW9kOworCSpjb2xs aWQgPSB2YXJmb3JtLT52YXJjb2xsYXRpb247CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKK30K ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9jb21tb24uYyBiL3NyYy9iaW4vcGdfZHVtcC9j b21tb24uYwppbmRleCA1NmI2YzM2OGFjZi4uYmE2YjE5ZGM5YWYgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC9jb21tb24uYworKysgYi9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKQEAgLTI0 Niw2ICsyNDYsOSBAQCBnZXRTY2hlbWFEYXRhKEFyY2hpdmUgKmZvdXQsIGludCAqbnVtVGFibGVz UHRyKQogCXBnX2xvZ19pbmZvKCJyZWFkaW5nIHN1YnNjcmlwdGlvbiBtZW1iZXJzaGlwIG9mIHRh YmxlcyIpOwogCWdldFN1YnNjcmlwdGlvblRhYmxlcyhmb3V0KTsKIAorCXBnX2xvZ19pbmZvKCJy ZWFkaW5nIHZhcmlhYmxlcyIpOworCWdldFZhcmlhYmxlcyhmb3V0KTsKKwogCWZyZWUoaW5oaW5m byk7CQkJCS8qIG5vdCBuZWVkZWQgYW55IGxvbmdlciAqLwogCiAJKm51bVRhYmxlc1B0ciA9IG51 bVRhYmxlczsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9kdW1wdXRpbHMuYyBiL3NyYy9i aW4vcGdfZHVtcC9kdW1wdXRpbHMuYwppbmRleCA1YWU3N2Y3NjM2Ny4uNTE2MWVlNzgwZWEgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9kdW1wdXRpbHMuYworKysgYi9zcmMvYmluL3BnX2R1 bXAvZHVtcHV0aWxzLmMKQEAgLTUxMSw2ICs1MTEsMTIgQEAgZG8geyBcCiAJCUNPTlZFUlRfUFJJ VigncicsICJTRUxFQ1QiKTsKIAkJQ09OVkVSVF9QUklWKCd3JywgIlVQREFURSIpOwogCX0KKwll bHNlIGlmIChzdHJjbXAodHlwZSwgIlZBUklBQkxFIikgPT0gMCB8fAorCQkJIHN0cmNtcCh0eXBl LCAiVkFSSUFCTEVTIikgPT0gMCkKKwl7CisJCUNPTlZFUlRfUFJJVigncicsICJTRUxFQ1QiKTsK KwkJQ09OVkVSVF9QUklWKCd3JywgIlVQREFURSIpOworCX0KIAllbHNlCiAJCWFib3J0KCk7CiAK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaCBiL3NyYy9iaW4vcGdfZHVt cC9wZ19iYWNrdXAuaAppbmRleCBmMGYxOWJiMGIyOS4uNDRlZWQwM2EyZmYgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFj a3VwLmgKQEAgLTEzMiwxMiArMTMyLDE0IEBAIHR5cGVkZWYgc3RydWN0IF9yZXN0b3JlT3B0aW9u cwogCWludAkJCXNlbEZ1bmN0aW9uOwogCWludAkJCXNlbFRyaWdnZXI7CiAJaW50CQkJc2VsVGFi bGU7CisJaW50CQkJc2VsVmFyaWFibGU7CiAJU2ltcGxlU3RyaW5nTGlzdCBpbmRleE5hbWVzOwog CVNpbXBsZVN0cmluZ0xpc3QgZnVuY3Rpb25OYW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0IHNjaGVt YU5hbWVzOwogCVNpbXBsZVN0cmluZ0xpc3Qgc2NoZW1hRXhjbHVkZU5hbWVzOwogCVNpbXBsZVN0 cmluZ0xpc3QgdHJpZ2dlck5hbWVzOwogCVNpbXBsZVN0cmluZ0xpc3QgdGFibGVOYW1lczsKKwlT aW1wbGVTdHJpbmdMaXN0IHZhcmlhYmxlTmFtZXM7CiAKIAlpbnQJCQl1c2VEQjsKIAlDb25uUGFy YW1zCWNwYXJhbXM7CQkvKiBwYXJhbWV0ZXJzIHRvIHVzZSBpZiB1c2VEQiAqLwpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jIGIvc3JjL2Jpbi9wZ19kdW1w L3BnX2JhY2t1cF9hcmNoaXZlci5jCmluZGV4IDcwN2EzZmM4NDRjLi5hZmFiZTVmZTQ5YSAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCisrKyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2ZXIuYwpAQCAtMzEwMiw2ICszMTAyLDE0IEBAIF90 b2NFbnRyeVJlcXVpcmVkKFRvY0VudHJ5ICp0ZSwgdGVTZWN0aW9uIGN1clNlY3Rpb24sIEFyY2hp dmVIYW5kbGUgKkFIKQogCQkJCQkhc2ltcGxlX3N0cmluZ19saXN0X21lbWJlcigmcm9wdC0+dHJp Z2dlck5hbWVzLCB0ZS0+dGFnKSkKIAkJCQkJcmV0dXJuIDA7CiAJCQl9CisJCQllbHNlIGlmIChz dHJjbXAodGUtPmRlc2MsICJWQVJJQUJMRSIpID09IDApCisJCQl7CisJCQkJaWYgKCFyb3B0LT5z ZWxWYXJpYWJsZSkKKwkJCQkJcmV0dXJuIDA7CisJCQkJaWYgKHJvcHQtPnZhcmlhYmxlTmFtZXMu aGVhZCAhPSBOVUxMICYmCisJCQkJCSFzaW1wbGVfc3RyaW5nX2xpc3RfbWVtYmVyKCZyb3B0LT52 YXJpYWJsZU5hbWVzLCB0ZS0+dGFnKSkKKwkJCQkJcmV0dXJuIDA7CisJCQl9CiAJCQllbHNlCiAJ CQkJcmV0dXJuIDA7CiAJCX0KQEAgLTM2NTEsNiArMzY1OSw3IEBAIF9nZXRPYmplY3REZXNjcmlw dGlvbihQUUV4cEJ1ZmZlciBidWYsIGNvbnN0IFRvY0VudHJ5ICp0ZSkKIAkJc3RyY21wKHR5cGUs ICJURVhUIFNFQVJDSCBESUNUSU9OQVJZIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIlRFWFQg U0VBUkNIIENPTkZJR1VSQVRJT04iKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiVFlQRSIpID09 IDAgfHwKKwkJc3RyY21wKHR5cGUsICJWQVJJQUJMRSIpID09IDAgfHwKIAkJc3RyY21wKHR5cGUs ICJWSUVXIikgPT0gMCB8fAogCS8qIG5vbi1zY2hlbWEtc3BlY2lmaWVkIG9iamVjdHMgKi8KIAkJ c3RyY21wKHR5cGUsICJEQVRBQkFTRSIpID09IDAgfHwKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDhmNzNhNWRm OTU2Li45ZTMyYzQ3ODQxMiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwor KysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC0zNjMsNiArMzYzLDcgQEAgc3RhdGlj IHZvaWQgZHVtcFB1YmxpY2F0aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9uSW5m byAqcHViaW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wUHVibGljYXRpb25UYWJsZShBcmNoaXZlICpm b3V0LCBjb25zdCBQdWJsaWNhdGlvblJlbEluZm8gKnB1YnJpbmZvKTsKIHN0YXRpYyB2b2lkIGR1 bXBTdWJzY3JpcHRpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgU3Vic2NyaXB0aW9uSW5mbyAqc3Vi aW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wU3Vic2NyaXB0aW9uVGFibGUoQXJjaGl2ZSAqZm91dCwg Y29uc3QgU3ViUmVsSW5mbyAqc3VicmluZm8pOworc3RhdGljIHZvaWQgZHVtcFZhcmlhYmxlKEFy Y2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbyk7CiBzdGF0aWMgdm9pZCBk dW1wRGF0YWJhc2UoQXJjaGl2ZSAqZm91dCk7CiBzdGF0aWMgdm9pZCBkdW1wRGF0YWJhc2VDb25m aWcoQXJjaGl2ZSAqQUgsIFBRRXhwQnVmZmVyIG91dGJ1ZiwKIAkJCQkJCQkgICBjb25zdCBjaGFy ICpkYm5hbWUsIE9pZCBkYm9pZCk7CkBAIC01NDE5LDYgKzU0MjAsMTkwIEBAIGdldF9uZXh0X3Bv c3NpYmxlX2ZyZWVfcGdfdHlwZV9vaWQoQXJjaGl2ZSAqZm91dCwgUFFFeHBCdWZmZXIgdXBncmFk ZV9xdWVyeSkKIAlyZXR1cm4gbmV4dF9wb3NzaWJsZV9mcmVlX29pZDsKIH0KIAorLyoKKyAqIGdl dFZhcmlhYmxlcworICoJICBnZXQgaW5mb3JtYXRpb24gYWJvdXQgdmFyaWFibGVzCisgKi8KK3Zv aWQKK2dldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQoreworCVBRRXhwQnVmZmVyIHF1ZXJ5Owor CVBHcmVzdWx0ICAgKnJlczsKKwlWYXJpYWJsZUluZm8gKnZhcmluZm87CisJaW50CQkJaV90YWJs ZW9pZDsKKwlpbnQJCQlpX29pZDsKKwlpbnQJCQlpX3Zhcm5hbWU7CisJaW50CQkJaV92YXJuYW1l c3BhY2U7CisJaW50CQkJaV92YXJ0eXBlOworCWludAkJCWlfdmFydHlwbmFtZTsKKwlpbnQJCQlp X3Zhcm93bmVyOworCWludAkJCWlfdmFyY29sbGF0aW9uOworCWludAkJCWlfdmFyYWNsOworCWlu dAkJCWlfYWNsZGVmYXVsdDsKKwlpbnQJCQlpLAorCQkJCW50dXBzOworCisJaWYgKGZvdXQtPnJl bW90ZVZlcnNpb24gPCAxODAwMDApCisJCXJldHVybjsKKworCXF1ZXJ5ID0gY3JlYXRlUFFFeHBC dWZmZXIoKTsKKworCXJlc2V0UFFFeHBCdWZmZXIocXVlcnkpOworCisJLyogZ2V0IHRoZSB2YXJp YWJsZXMgaW4gY3VycmVudCBkYXRhYmFzZSAqLworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAor CQkJCQkgICJTRUxFQ1Qgdi50YWJsZW9pZCwgdi5vaWQsIHYudmFybmFtZSxcbiIKKwkJCQkJICAi ICAgICAgIHYudmFybmFtZXNwYWNlLCB2LnZhcnR5cGUsXG4iCisJCQkJCSAgIiAgICAgICBwZ19j YXRhbG9nLmZvcm1hdF90eXBlKHYudmFydHlwZSwgdi52YXJ0eXBtb2QpIGFzIHZhcnR5cG5hbWUs XG4iCisJCQkJCSAgIiAgICAgICBDQVNFIFdIRU4gdi52YXJjb2xsYXRpb24gPD4gdC50eXBjb2xs YXRpb24gIgorCQkJCQkgICIgICAgICAgICAgICBUSEVOIHYudmFyY29sbGF0aW9uXG4iCisJCQkJ CSAgIiAgICAgICAgICAgIEVMU0UgMFxuIgorCQkJCQkgICIgICAgICAgRU5EIEFTIHZhcmNvbGxh dGlvbixcbiIKKwkJCQkJICAiICAgICAgIHYudmFyb3duZXIsIHYudmFyYWNsLFxuIgorCQkJCQkg ICIgICAgICAgYWNsZGVmYXVsdCgnVicsIHYudmFyb3duZXIpIEFTIGFjbGRlZmF1bHRcbiIKKwkJ CQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlIHZcbiIKKwkJCQkJICAiSk9JTiBwZ19j YXRhbG9nLnBnX3R5cGUgdCAiCisJCQkJCSAgIk9OICh2LnZhcnR5cGUgPSB0Lm9pZCkiKTsKKwor CXJlcyA9IEV4ZWN1dGVTcWxRdWVyeShmb3V0LCBxdWVyeS0+ZGF0YSwgUEdSRVNfVFVQTEVTX09L KTsKKworCW50dXBzID0gUFFudHVwbGVzKHJlcyk7CisKKwlpX3RhYmxlb2lkID0gUFFmbnVtYmVy KHJlcywgInRhYmxlb2lkIik7CisJaV9vaWQgPSBQUWZudW1iZXIocmVzLCAib2lkIik7CisJaV92 YXJuYW1lID0gUFFmbnVtYmVyKHJlcywgInZhcm5hbWUiKTsKKwlpX3Zhcm5hbWVzcGFjZSA9IFBR Zm51bWJlcihyZXMsICJ2YXJuYW1lc3BhY2UiKTsKKwlpX3ZhcnR5cGUgPSBQUWZudW1iZXIocmVz LCAidmFydHlwZSIpOworCWlfdmFydHlwbmFtZSA9IFBRZm51bWJlcihyZXMsICJ2YXJ0eXBuYW1l Iik7CisJaV92YXJjb2xsYXRpb24gPSBQUWZudW1iZXIocmVzLCAidmFyY29sbGF0aW9uIik7CisK KwlpX3Zhcm93bmVyID0gUFFmbnVtYmVyKHJlcywgInZhcm93bmVyIik7CisJaV92YXJhY2wgPSBQ UWZudW1iZXIocmVzLCAidmFyYWNsIik7CisJaV9hY2xkZWZhdWx0ID0gUFFmbnVtYmVyKHJlcywg ImFjbGRlZmF1bHQiKTsKKworCXZhcmluZm8gPSBwZ19tYWxsb2MobnR1cHMgKiBzaXplb2YoVmFy aWFibGVJbmZvKSk7CisKKwlmb3IgKGkgPSAwOyBpIDwgbnR1cHM7IGkrKykKKwl7CisJCVR5cGVJ bmZvICAgKnZ0eXBlOworCisJCXZhcmluZm9baV0uZG9iai5vYmpUeXBlID0gRE9fVkFSSUFCTEU7 CisJCXZhcmluZm9baV0uZG9iai5jYXRJZC50YWJsZW9pZCA9CisJCQlhdG9vaWQoUFFnZXR2YWx1 ZShyZXMsIGksIGlfdGFibGVvaWQpKTsKKwkJdmFyaW5mb1tpXS5kb2JqLmNhdElkLm9pZCA9IGF0 b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV9vaWQpKTsKKwkJQXNzaWduRHVtcElkKCZ2YXJpbmZv W2ldLmRvYmopOworCQl2YXJpbmZvW2ldLmRvYmoubmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVl KHJlcywgaSwgaV92YXJuYW1lKSk7CisJCXZhcmluZm9baV0uZG9iai5uYW1lc3BhY2UgPQorCQkJ ZmluZE5hbWVzcGFjZShhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFybmFtZXNwYWNlKSkp OworCisJCXZhcmluZm9baV0udmFydHlwZSA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV92 YXJ0eXBlKSk7CisJCXZhcmluZm9baV0udmFydHlwbmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVl KHJlcywgaSwgaV92YXJ0eXBuYW1lKSk7CisJCXZhcmluZm9baV0udmFyY29sbGF0aW9uID0gYXRv b2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmNvbGxhdGlvbikpOworCisJCXZhcmluZm9baV0u ZGFjbC5hY2wgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyYWNsKSk7CisJCXZh cmluZm9baV0uZGFjbC5hY2xkZWZhdWx0ID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBp X2FjbGRlZmF1bHQpKTsKKwkJdmFyaW5mb1tpXS5kYWNsLnByaXZ0eXBlID0gMDsKKwkJdmFyaW5m b1tpXS5kYWNsLmluaXRwcml2cyA9IE5VTEw7CisJCXZhcmluZm9baV0ucm9sbmFtZSA9IGdldFJv bGVOYW1lKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zhcm93bmVyKSk7CisKKwkJLyogZG8gbm90IHRy eSB0byBkdW1wIEFDTCBpZiBubyBBQ0wgZXhpc3RzICovCisJCWlmICghUFFnZXRpc251bGwocmVz LCBpLCBpX3ZhcmFjbCkpCisJCQl2YXJpbmZvW2ldLmRvYmouY29tcG9uZW50cyB8PSBEVU1QX0NP TVBPTkVOVF9BQ0w7CisKKwkJaWYgKHN0cmxlbih2YXJpbmZvW2ldLnJvbG5hbWUpID09IDApCisJ CQlwZ19sb2dfd2FybmluZygib3duZXIgb2YgdmFyaWFibGUgXCIlc1wiIGFwcGVhcnMgdG8gYmUg aW52YWxpZCIsCisJCQkJCQkgICB2YXJpbmZvW2ldLmRvYmoubmFtZSk7CisKKwkJLyogZGVjaWRl IHdoZXRoZXIgd2Ugd2FudCB0byBkdW1wIGl0ICovCisJCXNlbGVjdER1bXBhYmxlT2JqZWN0KCYo dmFyaW5mb1tpXS5kb2JqKSwgZm91dCk7CisKKwkJdnR5cGUgPSBmaW5kVHlwZUJ5T2lkKHZhcmlu Zm9baV0udmFydHlwZSk7CisJCWFkZE9iamVjdERlcGVuZGVuY3koJnZhcmluZm9baV0uZG9iaiwg dnR5cGUtPmRvYmouZHVtcElkKTsKKwl9CisJUFFjbGVhcihyZXMpOworCisJZGVzdHJveVBRRXhw QnVmZmVyKHF1ZXJ5KTsKK30KKworLyoKKyAqIGR1bXBWYXJpYWJsZQorICoJICBkdW1wIHRoZSBk ZWZpbml0aW9uIG9mIHRoZSBnaXZlbiBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3N0YXRpYyB2b2lk CitkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZv KQoreworCUR1bXBPcHRpb25zICpkb3B0ID0gZm91dC0+ZG9wdDsKKworCVBRRXhwQnVmZmVyIGRl bHE7CisJUFFFeHBCdWZmZXIgcXVlcnk7CisJY2hhcgkgICAqcXVhbHZhcm5hbWU7CisJY29uc3Qg Y2hhciAqdmFydHlwbmFtZTsKKwlPaWQJCQl2YXJjb2xsYXRpb247CisKKwkvKiBza2lwIGlmIG5v dCB0byBiZSBkdW1wZWQgKi8KKwlpZiAoIXZhcmluZm8tPmRvYmouZHVtcCB8fCAhZG9wdC0+ZHVt cFNjaGVtYSkKKwkJcmV0dXJuOworCisJZGVscSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisJcXVl cnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOworCisJcXVhbHZhcm5hbWUgPSBwZ19zdHJkdXAoZm10 UXVhbGlmaWVkRHVtcGFibGUodmFyaW5mbykpOworCXZhcnR5cG5hbWUgPSB2YXJpbmZvLT52YXJ0 eXBuYW1lOworCXZhcmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKKworCWFwcGVu ZFBRRXhwQnVmZmVyKGRlbHEsICJEUk9QIFZBUklBQkxFICVzO1xuIiwKKwkJCQkJICBxdWFsdmFy bmFtZSk7CisKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBWQVJJQUJMRSAlcyBB UyAlcyIsCisJCQkJCSAgcXVhbHZhcm5hbWUsIHZhcnR5cG5hbWUpOworCisJaWYgKE9pZElzVmFs aWQodmFyY29sbGF0aW9uKSkKKwl7CisJCUNvbGxJbmZvICAgKmNvbGw7CisKKwkJY29sbCA9IGZp bmRDb2xsYXRpb25CeU9pZCh2YXJjb2xsYXRpb24pOworCQlpZiAoY29sbCkKKwkJCWFwcGVuZFBR RXhwQnVmZmVyKHF1ZXJ5LCAiIENPTExBVEUgJXMiLAorCQkJCQkJCSAgZm10UXVhbGlmaWVkRHVt cGFibGUoY29sbCkpOworCX0KKworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiO1xuIik7CisK KwlpZiAodmFyaW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfREVGSU5JVElPTikKKwkJ QXJjaGl2ZUVudHJ5KGZvdXQsIHZhcmluZm8tPmRvYmouY2F0SWQsIHZhcmluZm8tPmRvYmouZHVt cElkLAorCQkJCQkgQVJDSElWRV9PUFRTKC50YWcgPSB2YXJpbmZvLT5kb2JqLm5hbWUsCisJCQkJ CQkJCSAgLm5hbWVzcGFjZSA9IHZhcmluZm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsCisJ CQkJCQkJCSAgLm93bmVyID0gdmFyaW5mby0+cm9sbmFtZSwKKwkJCQkJCQkJICAuZGVzY3JpcHRp b24gPSAiVkFSSUFCTEUiLAorCQkJCQkJCQkgIC5zZWN0aW9uID0gU0VDVElPTl9QUkVfREFUQSwK KwkJCQkJCQkJICAuY3JlYXRlU3RtdCA9IHF1ZXJ5LT5kYXRhLAorCQkJCQkJCQkgIC5kcm9wU3Rt dCA9IGRlbHEtPmRhdGEpKTsKKworCS8qIGR1bXAgY29tbWVudCBpZiBhbnkgKi8KKwlpZiAodmFy aW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfQ09NTUVOVCkKKwkJZHVtcENvbW1lbnQo Zm91dCwgIlZBUklBQkxFIiwgcXVhbHZhcm5hbWUsCisJCQkJCU5VTEwsIHZhcmluZm8tPnJvbG5h bWUsCisJCQkJCXZhcmluZm8tPmRvYmouY2F0SWQsIDAsIHZhcmluZm8tPmRvYmouZHVtcElkKTsK KworCS8qIGR1bXAgQUNMIGlmIGFueSAqLworCWlmICh2YXJpbmZvLT5kb2JqLmR1bXAgJiBEVU1Q X0NPTVBPTkVOVF9BQ0wpCisJeworCQljaGFyCSAgICpxdmFybmFtZSA9IHBnX3N0cmR1cChmbXRJ ZCh2YXJpbmZvLT5kb2JqLm5hbWUpKTsKKworCQlkdW1wQUNMKGZvdXQsIHZhcmluZm8tPmRvYmou ZHVtcElkLCBJbnZhbGlkRHVtcElkLCAiVkFSSUFCTEUiLAorCQkJCXF2YXJuYW1lLCBOVUxMLAor CQkJCXZhcmluZm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsIE5VTEwsIHZhcmluZm8tPnJv bG5hbWUsCisJCQkJJnZhcmluZm8tPmRhY2wpOworCisJCWZyZWUocXZhcm5hbWUpOworCX0KKwor CWRlc3Ryb3lQUUV4cEJ1ZmZlcihkZWxxKTsKKwlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkpOwor CisJZnJlZShxdWFsdmFybmFtZSk7Cit9CisKIHN0YXRpYyB2b2lkCiBiaW5hcnlfdXBncmFkZV9z ZXRfdHlwZV9vaWRzX2J5X3R5cGVfb2lkKEFyY2hpdmUgKmZvdXQsCiAJCQkJCQkJCQkJIFBRRXhw QnVmZmVyIHVwZ3JhZGVfYnVmZmVyLApAQCAtMTAxNDUsNyArMTAzMzAsOCBAQCBnZXRBZGRpdGlv bmFsQUNMcyhBcmNoaXZlICpmb3V0KQogCQkJCQlkb2JqLT5vYmpUeXBlID09IERPX1RBQkxFIHx8 CiAJCQkJCWRvYmotPm9ialR5cGUgPT0gRE9fUFJPQ0xBTkcgfHwKIAkJCQkJZG9iai0+b2JqVHlw ZSA9PSBET19GRFcgfHwKLQkJCQkJZG9iai0+b2JqVHlwZSA9PSBET19GT1JFSUdOX1NFUlZFUikK KwkJCQkJZG9iai0+b2JqVHlwZSA9PSBET19GT1JFSUdOX1NFUlZFUiB8fAorCQkJCQlkb2JqLT5v YmpUeXBlID09IERPX1ZBUklBQkxFKQogCQkJCXsKIAkJCQkJRHVtcGFibGVPYmplY3RXaXRoQWNs ICpkYW9iaiA9IChEdW1wYWJsZU9iamVjdFdpdGhBY2wgKikgZG9iajsKIApAQCAtMTA3NDQsNiAr MTA5MzAsOSBAQCBkdW1wRHVtcGFibGVPYmplY3QoQXJjaGl2ZSAqZm91dCwgRHVtcGFibGVPYmpl Y3QgKmRvYmopCiAJCWNhc2UgRE9fU1VCU0NSSVBUSU9OX1JFTDoKIAkJCWR1bXBTdWJzY3JpcHRp b25UYWJsZShmb3V0LCAoY29uc3QgU3ViUmVsSW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFrOworCQlj YXNlIERPX1ZBUklBQkxFOgorCQkJZHVtcFZhcmlhYmxlKGZvdXQsIChWYXJpYWJsZUluZm8gKikg ZG9iaik7CisJCQlicmVhazsKIAkJY2FzZSBET19QUkVfREFUQV9CT1VOREFSWToKIAkJY2FzZSBE T19QT1NUX0RBVEFfQk9VTkRBUlk6CiAJCQkvKiBuZXZlciBkdW1wZWQsIG5vdGhpbmcgdG8gZG8g Ki8KQEAgLTE1MTk1LDYgKzE1Mzg0LDkgQEAgZHVtcERlZmF1bHRBQ0woQXJjaGl2ZSAqZm91dCwg Y29uc3QgRGVmYXVsdEFDTEluZm8gKmRhY2xpbmZvKQogCQljYXNlIERFRkFDTE9CSl9OQU1FU1BB Q0U6CiAJCQl0eXBlID0gIlNDSEVNQVMiOwogCQkJYnJlYWs7CisJCWNhc2UgREVGQUNMT0JKX1ZB UklBQkxFOgorCQkJdHlwZSA9ICJWQVJJQUJMRVMiOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJ CQkvKiBzaG91bGRuJ3QgZ2V0IGhlcmUgKi8KIAkJCXBnX2ZhdGFsKCJ1bnJlY29nbml6ZWQgb2Jq ZWN0IHR5cGUgaW4gZGVmYXVsdCBwcml2aWxlZ2VzOiAlZCIsCkBAIC0xODkxNCw2ICsxOTEwNiw3 IEBAIGFkZEJvdW5kYXJ5RGVwZW5kZW5jaWVzKER1bXBhYmxlT2JqZWN0ICoqZG9ianMsIGludCBu dW1PYmpzLAogCQkJY2FzZSBET19DT05WRVJTSU9OOgogCQkJY2FzZSBET19UQUJMRToKIAkJCWNh c2UgRE9fVEFCTEVfQVRUQUNIOgorCQkJY2FzZSBET19WQVJJQUJMRToKIAkJCWNhc2UgRE9fQVRU UkRFRjoKIAkJCWNhc2UgRE9fUFJPQ0xBTkc6CiAJCQljYXNlIERPX0NBU1Q6CmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApp bmRleCBmNjJiNTY0ZWQxYi4uOGE2MmI1YjQxMjggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNTIsNiArNTIs NyBAQCB0eXBlZGVmIGVudW0KIAlET19UQUJMRSwKIAlET19UQUJMRV9BVFRBQ0gsCiAJRE9fQVRU UkRFRiwKKwlET19WQVJJQUJMRSwKIAlET19JTkRFWCwKIAlET19JTkRFWF9BVFRBQ0gsCiAJRE9f U1RBVFNFWFQsCkBAIC03MDcsNiArNzA4LDIzIEBAIHR5cGVkZWYgc3RydWN0IF9TdWJSZWxJbmZv CiAJY2hhcgkgICAqc3JzdWJsc247CiB9IFN1YlJlbEluZm87CiAKKy8qCisgKiBUaGUgVmFyaWFi bGVJbmZvIHN0cnVjdCBpcyB1c2VkIHRvIHJlcHJlc2VudCBzZXNzaW9uIHZhcmlhYmxlcworICov Cit0eXBlZGVmIHN0cnVjdCBfVmFyaWFibGVJbmZvCit7CisJRHVtcGFibGVPYmplY3QgZG9iajsK KwlEdW1wYWJsZUFjbCBkYWNsOworCU9pZAkJCXZhcnR5cGU7CisJY2hhcgkgICAqdmFydHlwbmFt ZTsKKwljaGFyCSAgICp2YXJhY2w7CisJY2hhcgkgICAqcnZhcmFjbDsKKwljaGFyCSAgICppbml0 dmFyYWNsOworCWNoYXIJICAgKmluaXRydmFyYWNsOworCU9pZAkJCXZhcmNvbGxhdGlvbjsKKwlj b25zdCBjaGFyICpyb2xuYW1lOwkJLyogbmFtZSBvZiBvd25lciwgb3IgZW1wdHkgc3RyaW5nICov Cit9IFZhcmlhYmxlSW5mbzsKKwogLyoKICAqCWNvbW1vbiB1dGlsaXR5IGZ1bmN0aW9ucwogICov CkBAIC03OTAsNSArODA4LDYgQEAgZXh0ZXJuIHZvaWQgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJj aGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwKIAkJCQkJCQkJIGludCBudW1UYWJsZXMp OwogZXh0ZXJuIHZvaWQgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZlICpmb3V0KTsKIGV4dGVybiB2 b2lkIGdldFN1YnNjcmlwdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0KTsKK2V4dGVybiB2b2lkIGdl dFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KTsKIAogI2VuZGlmCQkJCQkJCS8qIFBHX0RVTVBfSCAq LwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jIGIvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXBfc29ydC5jCmluZGV4IGRjOWEyODkyNGJkLi44NDI5NzNmMTEyOCAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCisrKyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wX3NvcnQuYwpAQCAtNzcsNiArNzcsNyBAQCBlbnVtIGRiT2JqZWN0VHlwZVBy aW9yaXRpZXMKIAlQUklPX0RVTU1ZX1RZUEUsCiAJUFJJT19BVFRSREVGLAogCVBSSU9fTEFSR0Vf T0JKRUNULAorCVBSSU9fVkFSSUFCTEUsCiAJUFJJT19QUkVfREFUQV9CT1VOREFSWSwJCS8qIGJv dW5kYXJ5ISAqLwogCVBSSU9fVEFCTEVfREFUQSwKIAlQUklPX1NFUVVFTkNFX1NFVCwKQEAgLTEx OCw2ICsxMTksNyBAQCBzdGF0aWMgY29uc3QgaW50IGRiT2JqZWN0VHlwZVByaW9yaXR5W10gPQog CVtET19UQUJMRV0gPSBQUklPX1RBQkxFLAogCVtET19UQUJMRV9BVFRBQ0hdID0gUFJJT19UQUJM RV9BVFRBQ0gsCiAJW0RPX0FUVFJERUZdID0gUFJJT19BVFRSREVGLAorCVtET19WQVJJQUJMRV0g PSBQUklPX1ZBUklBQkxFLAogCVtET19JTkRFWF0gPSBQUklPX0lOREVYLAogCVtET19JTkRFWF9B VFRBQ0hdID0gUFJJT19JTkRFWF9BVFRBQ0gsCiAJW0RPX1NUQVRTRVhUXSA9IFBSSU9fU1RBVFNF WFQsCkBAIC0xNTAwLDYgKzE1MDIsMTAgQEAgZGVzY3JpYmVEdW1wYWJsZU9iamVjdChEdW1wYWJs ZU9iamVjdCAqb2JqLCBjaGFyICpidWYsIGludCBidWZzaXplKQogCQkJCQkgIlBPU1QtREFUQSBC T1VOREFSWSAgKElEICVkKSIsCiAJCQkJCSBvYmotPmR1bXBJZCk7CiAJCQlyZXR1cm47CisJCWNh c2UgRE9fVkFSSUFCTEU6CisJCQlzbnByaW50ZihidWYsIGJ1ZnNpemUsCisJCQkJCSAiVkFSSUFC TEUgJXMgIChJRCAlZCBPSUQgJXUpIiwKKwkJCQkJIG9iai0+bmFtZSwgb2JqLT5kdW1wSWQsIG9i ai0+Y2F0SWQub2lkKTsKIAl9CiAJLyogc2hvdWxkbid0IGdldCBoZXJlICovCiAJc25wcmludGYo YnVmLCBidWZzaXplLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAu cGwgYi9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbAppbmRleCBiZjY1ZDQ0Yjk0Mi4u NjQyM2U3YjlkMjcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBs CisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC03ODksNiArNzg5LDE2 IEBAIG15ICV0ZXN0cyA9ICgKIAkJdW5saWtlID0+IHsgbm9fcHJpdnMgPT4gMSwgfSwKIAkgIH0s CiAKKwknQUxURVIgREVGQVVMVCBQUklWSUxFR0VTIEZPUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0 X3JvbGUgR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFUyBUTyBQVUJMSUMnCisJICA9PiB7CisJCWNy ZWF0ZV9vcmRlciA9PiA1NiwKKwkJY3JlYXRlX3NxbCAgID0+ICdBTFRFUiBERUZBVUxUIFBSSVZJ TEVHRVMgRk9SIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBHUkFOVCBTRUxFQ1QgT04gVkFS SUFCTEVTIFRPIFBVQkxJQzsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFBTFRFUiBERUZBVUxU IFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZSBHUkFOVCBTRUxFQ1Qg T04gVkFSSUFCTEVTIFRPIFBVQkxJQztcRS94bSwKKwkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNl Y3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCisJCXVubGlrZSA9PiB7IG5vX3ByaXZzID0+IDEsIH0s CisJICB9LAorCiAJJ0FMVEVSIFJPTEUgcmVncmVzc19kdW1wX3Rlc3Rfcm9sZScgPT4gewogCQly ZWdleHAgPT4gcXIvXgogCQkJXFFBTFRFUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUgV0lU SCBcRQpAQCAtMTY3NCw2ICsxNjg0LDIzIEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAogCisJ J0NPTU1FTlQgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMScgPT4geworCQljcmVhdGVf b3JkZXIgPT4gNzEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ09NTUVOVCBPTiBWQVJJQUJMRSBkdW1w X3Rlc3QudmFyaWFibGUxCisJCQkJCSAgIElTIFwnY29tbWVudCBvbiB2YXJpYWJsZVwnOycsCisJ CXJlZ2V4cCA9PgorCQkgIHFyL15cUUNPTU1FTlQgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlh YmxlMSBJUyAnY29tbWVudCBvbiB2YXJpYWJsZSc7XEUvbSwKKwkJbGlrZSA9PiB7CisJCQklZnVs bF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEg ICAgID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hl bWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisK IAknQ09QWSB0ZXN0X3RhYmxlJyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA0LAogCQljcmVhdGVf c3FsID0+ICdJTlNFUlQgSU5UTyBkdW1wX3Rlc3QudGVzdF90YWJsZSAoY29sMSkgJwpAQCAtMzk0 Miw2ICszOTY5LDI0IEBAIG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAogCisJJ0NSRUFURSBWQVJJ QUJMRSB0ZXN0X3ZhcmlhYmxlJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9h bGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJ CWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgQVMg aW50ZWdlcjsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgVkFSSUFCTEUgZHVtcF90 ZXN0LnZhcmlhYmxlMSBBUyBpbnRlZ2VyO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1 bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAx LAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEs CisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NSRUFU RSBWSUVXIHRlc3RfdmlldycgPT4gewogCQljcmVhdGVfb3JkZXIgPT4gNjEsCiAJCWNyZWF0ZV9z cWwgPT4gJ0NSRUFURSBWSUVXIGR1bXBfdGVzdC50ZXN0X3ZpZXcKQEAgLTQ0MDQsNiArNDQ0OSwy NSBAQCBteSAldGVzdHMgPSAoCiAJCWxpa2UgPT4ge30sCiAJfSwKIAorCSdHUkFOVCBTRUxFQ1Qg T04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4g NzMsCisJCWNyZWF0ZV9zcWwgPT4KKwkJICAnR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIGR1bXBf dGVzdC52YXJpYWJsZTEgVE8gcmVncmVzc19kdW1wX3Rlc3Rfcm9sZTsnLAorCQlyZWdleHAgPT4g cXIvXgorCQkJXFFHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMSBU TyByZWdyZXNzX2R1bXBfdGVzdF9yb2xlO1xFCisJCQkveG0sCisJCWxpa2UgPT4geworCQkJJWZ1 bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRh ID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEg PT4gMSwKKwkJCW5vX3ByaXZzICAgICAgICAgICAgICAgICA9PiAxLAorCQkJb25seV9kdW1wX21l YXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJfSwKKwogCSdSRUZSRVNIIE1BVEVSSUFMSVpFRCBW SUVXIG1hdHZpZXcnID0+IHsKIAkJcmVnZXhwID0+IHFyL15cUVJFRlJFU0ggTUFURVJJQUxJWkVE IFZJRVcgZHVtcF90ZXN0Lm1hdHZpZXc7XEUvbSwKIAkJbGlrZSA9PgpkaWZmIC0tZ2l0IGEvc3Jj L2Jpbi9wc3FsL2NvbW1hbmQuYyBiL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKaW5kZXggNWRkNGMy ZDI2ODcuLjNlZTE5MDg5NTk2IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvY29tbWFuZC5jCisr KyBiL3NyYy9iaW4vcHNxbC9jb21tYW5kLmMKQEAgLTEwNzcsNiArMTA3Nyw5IEBAIGV4ZWNfY29t bWFuZF9kKFBzcWxTY2FuU3RhdGUgc2Nhbl9zdGF0ZSwgYm9vbCBhY3RpdmVfYnJhbmNoLCBjb25z dCBjaGFyICpjbWQpCiAJCQkJCQlicmVhazsKIAkJCQl9CiAJCQkJYnJlYWs7CisJCQljYXNlICdW JzoJCQkvKiBWYXJpYWJsZXMgKi8KKwkJCQlzdWNjZXNzID0gbGlzdFZhcmlhYmxlcyhwYXR0ZXJu LCBzaG93X3ZlcmJvc2UpOworCQkJCWJyZWFrOwogCQkJY2FzZSAneCc6CQkJLyogRXh0ZW5zaW9u cyAqLwogCQkJCWlmIChzaG93X3ZlcmJvc2UpCiAJCQkJCXN1Y2Nlc3MgPSBsaXN0RXh0ZW5zaW9u Q29udGVudHMocGF0dGVybik7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBi L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCmluZGV4IGQ1NTQzZmQ2MmIwLi41NTQ2YmY5MWUyZSAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rl c2NyaWJlLmMKQEAgLTEyMDYsNyArMTIwNiw3IEBAIGxpc3REZWZhdWx0QUNMcyhjb25zdCBjaGFy ICpwYXR0ZXJuKQogCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsCiAJCQkJCSAgIlNFTEVDVCBwZ19j YXRhbG9nLnBnX2dldF91c2VyYnlpZChkLmRlZmFjbHJvbGUpIEFTIFwiJXNcIixcbiIKIAkJCQkJ ICAiICBuLm5zcG5hbWUgQVMgXCIlc1wiLFxuIgotCQkJCQkgICIgIENBU0UgZC5kZWZhY2xvYmp0 eXBlIFdIRU4gJyVjJyBUSEVOICclcycgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhF TiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcycgV0hFTiAnJWMnIFRIRU4gJyVzJyBFTkQgQVMgXCIl c1wiLFxuIgorCQkJCQkgICIgIENBU0UgZC5kZWZhY2xvYmp0eXBlIFdIRU4gJyVjJyBUSEVOICcl cycgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVO ICclcycgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhFTiAnJXMnIEVORCBBUyBcIiVz XCIsXG4iCiAJCQkJCSAgIiAgIiwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIiksCiAJCQkJ CSAgZ2V0dGV4dF9ub29wKCJTY2hlbWEiKSwKQEAgLTEyMjAsNiArMTIyMCw4IEBAIGxpc3REZWZh dWx0QUNMcyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCQkJCQkgIGdldHRleHRfbm9vcCgidHlwZSIp LAogCQkJCQkgIERFRkFDTE9CSl9OQU1FU1BBQ0UsCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJzY2hl bWEiKSwKKwkJCQkJICBERUZBQ0xPQkpfVkFSSUFCTEUsCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJz ZXNzaW9uIHZhcmlhYmxlIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJUeXBlIikpOwogCiAJcHJp bnRBQ0xDb2x1bW4oJmJ1ZiwgImQuZGVmYWNsYWNsIik7CkBAIC01MjM3LDYgKzUyMzksMTAyIEBA IGVycm9yX3JldHVybjoKIAlyZXR1cm4gZmFsc2U7CiB9CiAKKy8qCisgKiBcZFYKKyAqCisgKiBs aXN0VmFyaWFibGVzKCkKKyAqLworYm9vbAorbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0 ZXJuLCBib29sIHZlcmJvc2UpCit7CisJUFFFeHBCdWZmZXJEYXRhIGJ1ZjsKKwlQR3Jlc3VsdCAg ICpyZXM7CisJcHJpbnRRdWVyeU9wdCBteW9wdCA9IHBzZXQucG9wdDsKKwlzdGF0aWMgY29uc3Qg Ym9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0ge2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm YWxzZSwgZmFsc2UsIGZhbHNlfTsKKworCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTgwMDAwKQorCXsK KwkJY2hhcgkJc3ZlcmJ1ZlszMl07CisKKwkJcGdfbG9nX2Vycm9yKCJUaGUgc2VydmVyICh2ZXJz aW9uICVzKSBkb2VzIG5vdCBzdXBwb3J0IHNlc3Npb24gdmFyaWFibGVzLiIsCisJCQkJCSBmb3Jt YXRQR1ZlcnNpb25OdW1iZXIocHNldC5zdmVyc2lvbiwgZmFsc2UsCisJCQkJCQkJCQkJICAgc3Zl cmJ1Ziwgc2l6ZW9mKHN2ZXJidWYpKSk7CisJCXJldHVybiB0cnVlOworCX0KKworCWluaXRQUUV4 cEJ1ZmZlcigmYnVmKTsKKworCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsCisJCQkJCSAgIlNFTEVD VCBuLm5zcG5hbWUgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIHYudmFybmFtZSBhcyBcIiVzXCIs XG4iCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZSh2LnZhcnR5cGUsIHYudmFydHlw bW9kKSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgKFNFTEVDVCBjLmNvbGxuYW1lIEZST00gcGdf Y2F0YWxvZy5wZ19jb2xsYXRpb24gYywgcGdfY2F0YWxvZy5wZ190eXBlIGJ0XG4iCisJCQkJCSAg IiAgIFdIRVJFIGMub2lkID0gdi52YXJjb2xsYXRpb24gQU5EIGJ0Lm9pZCA9IHYudmFydHlwZSBB TkQgdi52YXJjb2xsYXRpb24gPD4gYnQudHlwY29sbGF0aW9uKSBhcyBcIiVzXCIsXG4iCisJCQkJ CSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wiXG4i LAorCQkJCQkgIGdldHRleHRfbm9vcCgiU2NoZW1hIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJO YW1lIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJUeXBlIiksCisJCQkJCSAgZ2V0dGV4dF9ub29w KCJDb2xsYXRpb24iKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIikpOworCisJaWYgKHZl cmJvc2UpCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiLFxuICAiKTsKKwkJcHJp bnRBQ0xDb2x1bW4oJmJ1ZiwgInYudmFyYWNsIik7CisJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYs CisJCQkJCQkgICIsXG4gIHBnX2NhdGFsb2cub2JqX2Rlc2NyaXB0aW9uKHYub2lkLCAncGdfdmFy aWFibGUnKSBBUyBcIiVzXCIiLAorCQkJCQkJICBnZXR0ZXh0X25vb3AoIkRlc2NyaXB0aW9uIikp OworCX0KKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsCisJCQkJCQkgIlxuRlJPTSBwZ19j YXRhbG9nLnBnX3ZhcmlhYmxlIHYiCisJCQkJCQkgIlxuICAgICBMRUZUIEpPSU4gcGdfY2F0YWxv Zy5wZ19uYW1lc3BhY2UgbiBPTiBuLm9pZCA9IHYudmFybmFtZXNwYWNlIik7CisKKwlhcHBlbmRQ UUV4cEJ1ZmZlclN0cigmYnVmLCAiXG5XSEVSRSB0cnVlXG4iKTsKKwlpZiAoIXBhdHRlcm4pCisJ CWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIgICAgICBBTkQgbi5uc3BuYW1lIDw+ICdwZ19j YXRhbG9nJ1xuIgorCQkJCQkJCSAiICAgICAgQU5EIG4ubnNwbmFtZSA8PiAnaW5mb3JtYXRpb25f c2NoZW1hJ1xuIik7CisKKwlpZiAoIXZhbGlkYXRlU1FMTmFtZVBhdHRlcm4oJmJ1ZiwgcGF0dGVy biwgdHJ1ZSwgZmFsc2UsCisJCQkJCQkJCSJuLm5zcG5hbWUiLCAidi52YXJuYW1lIiwgTlVMTCwK KwkJCQkJCQkJInBnX2NhdGFsb2cucGdfdmFyaWFibGVfaXNfdmlzaWJsZSh2Lm9pZCkiLAorCQkJ CQkJCQlOVUxMLCAzKSkKKwkJcmV0dXJuIGZhbHNlOworCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIo JmJ1ZiwgIk9SREVSIEJZIDEsMjsiKTsKKworCXJlcyA9IFBTUUxleGVjKGJ1Zi5kYXRhKTsKKwl0 ZXJtUFFFeHBCdWZmZXIoJmJ1Zik7CisJaWYgKCFyZXMpCisJCXJldHVybiBmYWxzZTsKKworCS8q CisJICogTW9zdCBmdW5jdGlvbnMgaW4gdGhpcyBmaWxlIGFyZSBjb250ZW50IHRvIHByaW50IGFu IGVtcHR5IHRhYmxlIHdoZW4KKwkgKiB0aGVyZSBhcmUgbm8gbWF0Y2hpbmcgb2JqZWN0cy4gIFdl IGludGVudGlvbmFsbHkgZGV2aWF0ZSBmcm9tIHRoYXQKKwkgKiBoZXJlLCBidXQgb25seSBpbiAh cXVpZXQgbW9kZSwgZm9yIGhpc3RvcmljYWwgcmVhc29ucy4KKwkgKi8KKwlpZiAoUFFudHVwbGVz KHJlcykgPT0gMCAmJiAhcHNldC5xdWlldCkKKwl7CisJCWlmIChwYXR0ZXJuKQorCQkJcGdfbG9n X2Vycm9yKCJEaWQgbm90IGZpbmQgYW55IHNlc3Npb24gdmFyaWFibGUgbmFtZWQgXCIlc1wiLiIs CisJCQkJCQkgcGF0dGVybik7CisJCWVsc2UKKwkJCXBnX2xvZ19lcnJvcigiRGlkIG5vdCBmaW5k IGFueSBzZXNzaW9uIHZhcmlhYmxlcy4iKTsKKwl9CisJZWxzZQorCXsKKwkJbXlvcHQubnVsbFBy aW50ID0gTlVMTDsKKwkJbXlvcHQudGl0bGUgPSBfKCJMaXN0IG9mIHZhcmlhYmxlcyIpOworCQlt eW9wdC50cmFuc2xhdGVfaGVhZGVyID0gdHJ1ZTsKKwkJbXlvcHQudHJhbnNsYXRlX2NvbHVtbnMg PSB0cmFuc2xhdGVfY29sdW1uczsKKwkJbXlvcHQubl90cmFuc2xhdGVfY29sdW1ucyA9IGxlbmd0 aG9mKHRyYW5zbGF0ZV9jb2x1bW5zKTsKKworCQlwcmludFF1ZXJ5KHJlcywgJm15b3B0LCBwc2V0 LnF1ZXJ5Rm91dCwgZmFsc2UsIHBzZXQubG9nZmlsZSk7CisJfQorCisJUFFjbGVhcihyZXMpOwor CXJldHVybiB0cnVlOworfQogCiAvKgogICogXGRGcApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3Fs L2Rlc2NyaWJlLmggYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaAppbmRleCAxOGVjYWE2MDk0OS4u NTVjZWQ0YWFiN2IgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oCisrKyBiL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5oCkBAIC0xNDksNCArMTQ5LDcgQEAgZXh0ZXJuIGJvb2wgbGlz dE9wRmFtaWx5RnVuY3Rpb25zKGNvbnN0IGNoYXIgKmFjY2Vzc19tZXRob2RfcGF0dGVybiwKIC8q IFxkbCBvciBcbG9fbGlzdCAqLwogZXh0ZXJuIGJvb2wgbGlzdExhcmdlT2JqZWN0cyhib29sIHZl cmJvc2UpOwogCisvKiBcZFYgKi8KK2V4dGVybiBib29sIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hh ciAqcGF0dGVybiwgYm9vbCB2YXJib3NlKTsKKwogI2VuZGlmCQkJCQkJCS8qIERFU0NSSUJFX0gg Ki8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9oZWxwLmMgYi9zcmMvYmluL3BzcWwvaGVscC5j CmluZGV4IGZkYTgzNDY1ZWZhLi4yYWRiZTdlZGVkYSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3Fs L2hlbHAuYworKysgYi9zcmMvYmluL3BzcWwvaGVscC5jCkBAIC0yNjYsNiArMjY2LDcgQEAgc2xh c2hVc2FnZSh1bnNpZ25lZCBzaG9ydCBpbnQgcGFnZXIpCiAJSEVMUDAoIiAgXFxkVFtTK10gW1BB VFRFUk5dICAgICAgbGlzdCBkYXRhIHR5cGVzXG4iKTsKIAlIRUxQMCgiICBcXGR1W1MrXSBbUEFU VEVSTl0gICAgICBsaXN0IHJvbGVzXG4iKTsKIAlIRUxQMCgiICBcXGR2W1MrXSBbUEFUVEVSTl0g ICAgICBsaXN0IHZpZXdzXG4iKTsKKwlIRUxQMCgiICBcXGRWICAgICBbUEFUVEVSTl0gICAgICBs aXN0IHNlc3Npb24gdmFyaWFibGVzXG4iKTsKIAlIRUxQMCgiICBcXGR4WytdICBbUEFUVEVSTl0g ICAgICBsaXN0IGV4dGVuc2lvbnNcbiIpOwogCUhFTFAwKCIgIFxcZFggICAgIFtQQVRURVJOXSAg ICAgIGxpc3QgZXh0ZW5kZWQgc3RhdGlzdGljc1xuIik7CiAJSEVMUDAoIiAgXFxkeVsrXSAgW1BB VFRFUk5dICAgICAgbGlzdCBldmVudCB0cmlnZ2Vyc1xuIik7CmRpZmYgLS1naXQgYS9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMK aW5kZXggODFjYmYxMGFhMjguLjZlZWJmYzZhNWY5IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBA IC05NzAsNiArOTcwLDEzIEBAIHN0YXRpYyBjb25zdCBTY2hlbWFRdWVyeSBRdWVyeV9mb3JfdHJp Z2dlcl9vZl90YWJsZSA9IHsKIAkucmVmbmFtZXNwYWNlID0gImMxLnJlbG5hbWVzcGFjZSIsCiB9 OwogCitzdGF0aWMgY29uc3QgU2NoZW1hUXVlcnkgUXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVz ID0geworCS5taW5fc2VydmVyX3ZlcnNpb24gPSAxODAwMDAsCisJLmNhdG5hbWUgPSAicGdfY2F0 YWxvZy5wZ192YXJpYWJsZSB2IiwKKwkudmlzY29uZGl0aW9uID0gInBnX2NhdGFsb2cucGdfdmFy aWFibGVfaXNfdmlzaWJsZSh2Lm9pZCkiLAorCS5uYW1lc3BhY2UgPSAidi52YXJuYW1lc3BhY2Ui LAorCS5yZXN1bHQgPSAidi52YXJuYW1lIiwKK307CiAKIC8qCiAgKiBRdWVyaWVzIHRvIGdldCBs aXN0cyBvZiBuYW1lcyBvZiB2YXJpb3VzIGtpbmRzIG9mIHRoaW5ncywgcG9zc2libHkKQEAgLTEz MDQsNiArMTMxMSw3IEBAIHN0YXRpYyBjb25zdCBwZ3NxbF90aGluZ190IHdvcmRzX2FmdGVyX2Ny ZWF0ZVtdID0gewogCQkJCQkJCQkJCQkJCQkJCQkJCSAqIFRBQkxFIC4uLiAqLwogCXsiVVNFUiIs IFF1ZXJ5X2Zvcl9saXN0X29mX3JvbGVzLCBOVUxMLCBOVUxMLCBLZXl3b3Jkc19mb3JfdXNlcl90 aGluZ30sCiAJeyJVU0VSIE1BUFBJTkcgRk9SIiwgTlVMTCwgTlVMTCwgTlVMTH0sCisJeyJWQVJJ QUJMRSIsIE5VTEwsIE5VTEwsICZRdWVyeV9mb3JfbGlzdF9vZl92YXJpYWJsZXN9LAogCXsiVklF VyIsIE5VTEwsIE5VTEwsICZRdWVyeV9mb3JfbGlzdF9vZl92aWV3c30sCiAJe05VTEx9CQkJCQkJ LyogZW5kIG9mIGxpc3QgKi8KIH07CkBAIC0xODY1LDcgKzE4NzMsNyBAQCBwc3FsX2NvbXBsZXRp b24oY29uc3QgY2hhciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQkiXFxkRiIsICJcXGRG ZCIsICJcXGRGcCIsICJcXGRGdCIsICJcXGRnIiwgIlxcZGkiLCAiXFxkbCIsICJcXGRMIiwKIAkJ IlxcZG0iLCAiXFxkbiIsICJcXGRvIiwgIlxcZE8iLCAiXFxkcCIsICJcXGRQIiwgIlxcZFBpIiwg IlxcZFB0IiwKIAkJIlxcZHJkcyIsICJcXGRyZyIsICJcXGRScyIsICJcXGRScCIsICJcXGRzIiwK LQkJIlxcZHQiLCAiXFxkVCIsICJcXGR2IiwgIlxcZHUiLCAiXFxkeCIsICJcXGRYIiwgIlxcZHki LAorCQkiXFxkdCIsICJcXGRUIiwgIlxcZHYiLCAiXFxkdSIsICJcXGR4IiwgIlxcZFgiLCAiXFxk eSIsICJcXGRWIiwKIAkJIlxcZWNobyIsICJcXGVkaXQiLCAiXFxlZiIsICJcXGVsaWYiLCAiXFxl bHNlIiwgIlxcZW5jb2RpbmciLAogCQkiXFxlbmRpZiIsICJcXGVycnZlcmJvc2UiLCAiXFxldiIs CiAJCSJcXGYiLApAQCAtMjU1Niw2ICsyNTY0LDkgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50 IHBhdHRlcm5faWQsCiAJCQkJCQkJCQkJICAiQUxMIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxU RVIiLCAiU1lTVEVNIiwgIlNFVCIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiVE8iKTsK KwkvKiBBTFRFUiBWQVJJQUJMRSA8bmFtZT4gKi8KKwllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIs ICJWQVJJQUJMRSIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgiT1dORVIgVE8iLCAiUkVO QU1FIFRPIiwgIlNFVCBTQ0hFTUEiKTsKIAkvKiBBTFRFUiBWSUVXIDxuYW1lPiAqLwogCWVsc2Ug aWYgKE1hdGNoZXMoIkFMVEVSIiwgIlZJRVciLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgo IkFMVEVSIENPTFVNTiIsICJPV05FUiBUTyIsICJSRU5BTUUiLCAiUkVTRVQiLCAiU0VUIik7CkBA IC0zMTM2LDcgKzMxNDcsNyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwK IAkJCQkJICAiUk9VVElORSIsICJSVUxFIiwgIlNDSEVNQSIsICJTRVFVRU5DRSIsICJTRVJWRVIi LAogCQkJCQkgICJTVEFUSVNUSUNTIiwgIlNVQlNDUklQVElPTiIsICJUQUJMRSIsCiAJCQkJCSAg IlRBQkxFU1BBQ0UiLCAiVEVYVCBTRUFSQ0giLCAiVFJBTlNGT1JNIEZPUiIsCi0JCQkJCSAgIlRS SUdHRVIiLCAiVFlQRSIsICJWSUVXIik7CisJCQkJCSAgIlRSSUdHRVIiLCAiVFlQRSIsICJWQVJJ QUJMRSIsICJWSUVXIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ09NTUVOVCIsICJPTiIsICJBQ0NF U1MiLCAiTUVUSE9EIikpCiAJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2Zf YWNjZXNzX21ldGhvZHMpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNPTU1FTlQiLCAiT04iLCAiQ09O U1RSQUlOVCIpKQpAQCAtMzk0Niw2ICszOTU3LDEzIEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGlu dCBwYXR0ZXJuX2lkLAogCQllbHNlIGlmIChUYWlsTWF0Y2hlcygiPSIsIE1hdGNoQW55RXhjZXB0 KCIqKSIpKSkKIAkJCUNPTVBMRVRFX1dJVEgoIiwiLCAiKSIpOwogCX0KKy8qIENSRUFURSBWQVJJ QUJMRSAtLS0gaXMgYWxsb3dlZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNlIFRhaWxNYXRj aGVzICovCisJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRoIEFTICovCisJ ZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJWQVJJQUJMRSIsIE1hdGNoQW55KSkKKwkJ Q09NUExFVEVfV0lUSCgiQVMiKTsKKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiVkFSSUFCTEUiLCBN YXRjaEFueSwgIkFTIikpCisJCS8qIENvbXBsZXRlIENSRUFURSBWQVJJQUJMRSA8bmFtZT4gd2l0 aCBBUyB0eXBlcyAqLworCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlz dF9vZl9kYXRhdHlwZXMpOwogCiAvKiBDUkVBVEUgVklFVyAtLS0gaXMgYWxsb3dlZCBpbnNpZGUg Q1JFQVRFIFNDSEVNQSwgc28gdXNlIFRhaWxNYXRjaGVzICovCiAJLyogQ29tcGxldGUgQ1JFQVRF IFsgT1IgUkVQTEFDRSBdIFZJRVcgPG5hbWU+IHdpdGggQVMgb3IgV0lUSCAqLwpAQCAtNDIyMyw2 ICs0MjQxLDEyIEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCWVsc2Ug aWYgKE1hdGNoZXMoIkRST1AiLCAiVFJBTlNGT1JNIiwgIkZPUiIsIE1hdGNoQW55LCAiTEFOR1VB R0UiLCBNYXRjaEFueSkpCiAJCUNPTVBMRVRFX1dJVEgoIkNBU0NBREUiLCAiUkVTVFJJQ1QiKTsK IAorCS8qIERST1AgVkFSSUFCTEUgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJEUk9QIiwgIlZBUklB QkxFIikpCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3Zh cmlhYmxlcyk7CisJZWxzZSBpZiAoTWF0Y2hlcygiRFJPUCIsICJWQVJJQUJMRSIsIE1hdGNoQW55 KSkKKwkJQ09NUExFVEVfV0lUSCgiQ0FTQ0FERSIsICJSRVNUUklDVCIpOworCiAvKiBFWEVDVVRF ICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiRVhFQ1VURSIpKQogCQlDT01QTEVURV9XSVRIX1FVRVJZ KFF1ZXJ5X2Zvcl9saXN0X29mX3ByZXBhcmVkX3N0YXRlbWVudHMpOwpAQCAtNDQyNCw3ICs0NDQ4 LDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCSAqIG9iamVjdHMg c3VwcG9ydGVkLgogCQkgKi8KIAkJaWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJERUZBVUxUIiwg IlBSSVZJTEVHRVMiKSkKLQkJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyIsICJTRVFVRU5DRVMiLCAi RlVOQ1RJT05TIiwgIlBST0NFRFVSRVMiLCAiUk9VVElORVMiLCAiVFlQRVMiLCAiU0NIRU1BUyIp OworCQkJQ09NUExFVEVfV0lUSCgiVEFCTEVTIiwgIlNFUVVFTkNFUyIsICJGVU5DVElPTlMiLCAi UFJPQ0VEVVJFUyIsICJST1VUSU5FUyIsICJUWVBFUyIsICJTQ0hFTUFTIiwgIlZBUklBQkxFUyIp OwogCQllbHNlCiAJCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWV9QTFVTKFF1ZXJ5X2Zvcl9s aXN0X29mX2dyYW50YWJsZXMsCiAJCQkJCQkJCQkJCSJBTEwgRlVOQ1RJT05TIElOIFNDSEVNQSIs CkBAIC00NDMyLDYgKzQ0NTYsNyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9p ZCwKIAkJCQkJCQkJCQkJIkFMTCBST1VUSU5FUyBJTiBTQ0hFTUEiLAogCQkJCQkJCQkJCQkiQUxM IFNFUVVFTkNFUyBJTiBTQ0hFTUEiLAogCQkJCQkJCQkJCQkiQUxMIFRBQkxFUyBJTiBTQ0hFTUEi LAorCQkJCQkJCQkJCQkiQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEiLAogCQkJCQkJCQkJCQkiREFU QUJBU0UiLAogCQkJCQkJCQkJCQkiRE9NQUlOIiwKIAkJCQkJCQkJCQkJIkZPUkVJR04gREFUQSBX UkFQUEVSIiwKQEAgLTQ0NDYsNyArNDQ3MSw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBw YXR0ZXJuX2lkLAogCQkJCQkJCQkJCQkiU0VRVUVOQ0UiLAogCQkJCQkJCQkJCQkiVEFCTEUiLAog CQkJCQkJCQkJCQkiVEFCTEVTUEFDRSIsCi0JCQkJCQkJCQkJCSJUWVBFIik7CisJCQkJCQkJCQkJ CSJUWVBFIiwKKwkJCQkJCQkJCQkJIlZBUklBQkxFIik7CiAJfQogCWVsc2UgaWYgKFRhaWxNYXRj aGVzKCJHUkFOVHxSRVZPS0UiLCBNYXRjaEFueSwgIk9OIiwgIkFMTCIpIHx8CiAJCQkgVGFpbE1h dGNoZXMoIlJFVk9LRSIsICJHUkFOVCIsICJPUFRJT04iLCAiRk9SIiwgTWF0Y2hBbnksICJPTiIs ICJBTEwiKSkKQEAgLTQ0NTQsNyArNDQ4MCw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBw YXR0ZXJuX2lkLAogCQkJCQkgICJQUk9DRURVUkVTIElOIFNDSEVNQSIsCiAJCQkJCSAgIlJPVVRJ TkVTIElOIFNDSEVNQSIsCiAJCQkJCSAgIlNFUVVFTkNFUyBJTiBTQ0hFTUEiLAotCQkJCQkgICJU QUJMRVMgSU4gU0NIRU1BIik7CisJCQkJCSAgIlRBQkxFUyBJTiBTQ0hFTUEiLAorCQkJCQkgICJW QVJJQUJMRVMgSU4gU0NIRU1BIik7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkdSQU5UfFJFVk9L RSIsIE1hdGNoQW55LCAiT04iLCAiRk9SRUlHTiIpIHx8CiAJCQkgVGFpbE1hdGNoZXMoIlJFVk9L RSIsICJHUkFOVCIsICJPUFRJT04iLCAiRk9SIiwgTWF0Y2hBbnksICJPTiIsICJGT1JFSUdOIikp CiAJCUNPTVBMRVRFX1dJVEgoIkRBVEEgV1JBUFBFUiIsICJTRVJWRVIiKTsKQEAgLTQ0OTAsNiAr NDUxNyw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJQ09NUExF VEVfV0lUSF9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXNwYWNlcyk7CiAJCWVsc2UgaWYg KFRhaWxNYXRjaGVzKCJUWVBFIikpCiAJCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVy eV9mb3JfbGlzdF9vZl9kYXRhdHlwZXMpOworCQllbHNlIGlmIChUYWlsTWF0Y2hlcygiVkFSSUFC TEUiKSkKKwkJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3Zh cmlhYmxlcyk7CiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJHUkFOVCIsIE1hdGNoQW55LCBNYXRj aEFueSwgTWF0Y2hBbnkpKQogCQkJQ09NUExFVEVfV0lUSCgiVE8iKTsKIAkJZWxzZQpAQCAtNDc5 Miw3ICs0ODIxLDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAKIC8q IFBSRVBBUkUgeHggQVMgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJQUkVQQVJFIiwgTWF0Y2hBbnks ICJBUyIpKQotCQlDT01QTEVURV9XSVRIKCJTRUxFQ1QiLCAiVVBEQVRFIiwgIklOU0VSVCBJTlRP IiwgIkRFTEVURSBGUk9NIik7CisJCUNPTVBMRVRFX1dJVEgoIlNFTEVDVCIsICJVUERBVEUiLCAi SU5TRVJUIElOVE8iLCAiREVMRVRFIEZST00iLCAiTEVUIik7CiAKIC8qCiAgKiBQUkVQQVJFIFRS QU5TQUNUSU9OIGlzIG1pc3Npbmcgb24gcHVycG9zZS4gSXQncyBpbnRlbmRlZCBmb3IgdHJhbnNh Y3Rpb24KQEAgLTUyNzQsNiArNTMwMyw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0 ZXJuX2lkLAogCQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3JvbGVzKTsK IAllbHNlIGlmIChUYWlsTWF0Y2hlc0NTKCJcXGR2KiIpKQogCQlDT01QTEVURV9XSVRIX1NDSEVN QV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl92aWV3cyk7CisJZWxzZSBpZiAoVGFpbE1hdGNoZXND UygiXFxkVioiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rf b2ZfdmFyaWFibGVzKTsKIAllbHNlIGlmIChUYWlsTWF0Y2hlc0NTKCJcXGR4KiIpKQogCQlDT01Q TEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2V4dGVuc2lvbnMpOwogCWVsc2UgaWYg KFRhaWxNYXRjaGVzQ1MoIlxcZFgqIikpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9n L01ha2VmaWxlIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZQppbmRleCAyYmJjNzgwNWZl My4uZjk4NzYwZGU2MzUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUK KysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZQpAQCAtODEsNyArODEsOCBAQCBDQVRB TE9HX0hFQURFUlMgOj0gXAogCXBnX3B1YmxpY2F0aW9uX25hbWVzcGFjZS5oIFwKIAlwZ19wdWJs aWNhdGlvbl9yZWwuaCBcCiAJcGdfc3Vic2NyaXB0aW9uLmggXAotCXBnX3N1YnNjcmlwdGlvbl9y ZWwuaAorCXBnX3N1YnNjcmlwdGlvbl9yZWwuaCBcCisJcGdfdmFyaWFibGUuaAogCiBHRU5FUkFU RURfSEVBREVSUyA6PSAkKENBVEFMT0dfSEVBREVSUzolLmg9JV9kLmgpCiAKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL21l c29uLmJ1aWxkCmluZGV4IGVjMWNmNDY3ZjZmLi44MTM5OGVmYTdjOSAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL21l c29uLmJ1aWxkCkBAIC02OSw2ICs2OSw3IEBAIGNhdGFsb2dfaGVhZGVycyA9IFsKICAgJ3BnX3B1 YmxpY2F0aW9uX3JlbC5oJywKICAgJ3BnX3N1YnNjcmlwdGlvbi5oJywKICAgJ3BnX3N1YnNjcmlw dGlvbl9yZWwuaCcsCisgICdwZ192YXJpYWJsZS5oJywKIF0KIAogIyBUaGUgLmRhdCBmaWxlcyB3 ZSBuZWVkIGNhbiBqdXN0IGJlIGxpc3RlZCBhbHBoYWJldGljYWxseS4KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVz cGFjZS5oCmluZGV4IDhjN2NjYzY5YTNjLi5iZGFjMGMxM2JlYyAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVz cGFjZS5oCkBAIC05Nyw2ICs5Nyw4IEBAIGV4dGVybiBPaWQJVHlwZW5hbWVHZXRUeXBpZChjb25z dCBjaGFyICp0eXBuYW1lKTsKIGV4dGVybiBPaWQJVHlwZW5hbWVHZXRUeXBpZEV4dGVuZGVkKGNv bnN0IGNoYXIgKnR5cG5hbWUsIGJvb2wgdGVtcF9vayk7CiBleHRlcm4gYm9vbCBUeXBlSXNWaXNp YmxlKE9pZCB0eXBpZCk7CiAKK2V4dGVybiBib29sIFZhcmlhYmxlSXNWaXNpYmxlKE9pZCB2YXJp ZCk7CisKIGV4dGVybiBGdW5jQ2FuZGlkYXRlTGlzdCBGdW5jbmFtZUdldENhbmRpZGF0ZXMoTGlz dCAqbmFtZXMsCiAJCQkJCQkJCQkJCSAgIGludCBuYXJncywgTGlzdCAqYXJnbmFtZXMsCiAJCQkJ CQkJCQkJCSAgIGJvb2wgZXhwYW5kX3ZhcmlhZGljLApAQCAtMTY5LDYgKzE3MSwxMCBAQCBleHRl cm4gU2VhcmNoUGF0aE1hdGNoZXIgKkdldFNlYXJjaFBhdGhNYXRjaGVyKE1lbW9yeUNvbnRleHQg Y29udGV4dCk7CiBleHRlcm4gU2VhcmNoUGF0aE1hdGNoZXIgKkNvcHlTZWFyY2hQYXRoTWF0Y2hl cihTZWFyY2hQYXRoTWF0Y2hlciAqcGF0aCk7CiBleHRlcm4gYm9vbCBTZWFyY2hQYXRoTWF0Y2hl c0N1cnJlbnRFbnZpcm9ubWVudChTZWFyY2hQYXRoTWF0Y2hlciAqcGF0aCk7CiAKK2V4dGVybiBM aXN0ICpOYW1lc0Zyb21MaXN0KExpc3QgKm5hbWVzKTsKK2V4dGVybiBPaWQJTG9va3VwVmFyaWFi bGUoY29uc3QgY2hhciAqbnNwbmFtZSwgY29uc3QgY2hhciAqdmFybmFtZSwgYm9vbCBtaXNzaW5n X29rKTsKK2V4dGVybiBPaWQJTG9va3VwVmFyaWFibGVGcm9tTmFtZUxpc3QoTGlzdCAqbmFtZXMs IGJvb2wgbWlzc2luZ19vayk7CisKIGV4dGVybiBPaWQJZ2V0X2NvbGxhdGlvbl9vaWQoTGlzdCAq Y29sbG5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCWdldF9jb252ZXJzaW9uX29p ZChMaXN0ICpjb25uYW1lLCBib29sIG1pc3Npbmdfb2spOwogZXh0ZXJuIE9pZAlGaW5kRGVmYXVs dENvbnZlcnNpb25Qcm9jKGludDMyIGZvcl9lbmNvZGluZywgaW50MzIgdG9fZW5jb2RpbmcpOwpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oCmluZGV4IDZlZGYzMzcyNTNmLi5mZjI4OTFj MDk4MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oCisr KyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wuaApAQCAtNjgsNiArNjgsNyBA QCBNQUtFX1NZU0NBQ0hFKERFRkFDTFJPTEVOU1BPQkosIHBnX2RlZmF1bHRfYWNsX3JvbGVfbnNw X29ial9pbmRleCwgOCk7CiAjZGVmaW5lIERFRkFDTE9CSl9GVU5DVElPTgkJJ2YnIC8qIGZ1bmN0 aW9uICovCiAjZGVmaW5lIERFRkFDTE9CSl9UWVBFCQkJJ1QnIC8qIHR5cGUgKi8KICNkZWZpbmUg REVGQUNMT0JKX05BTUVTUEFDRQkJJ24nIC8qIG5hbWVzcGFjZSAqLworI2RlZmluZSBERUZBQ0xP QkpfVkFSSUFCTEUJCSdWJyAvKiB2YXJpYWJsZSAqLwogCiAjZW5kaWYJCQkJCQkJLyogRVhQT1NF X1RPX0NMSUVOVF9DT0RFICovCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IGIzN2U4YTZm ODgyLi43MGY0MWYxOGUyZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9j LmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC01Mzk1LDYgKzUz OTUsMjYgQEAKICAgcHJvcmV0dHlwZSA9PiAnYm9vbCcsIHByb2FyZ3R5cGVzID0+ICdvaWQgb2lk IHRleHQnLAogICBwcm9zcmMgPT4gJ2hhc19sYXJnZW9iamVjdF9wcml2aWxlZ2VfaWRfaWQnIH0s CiAKK3sgb2lkID0+ICc5NjEzJywgZGVzY3IgPT4gJ3VzZXIgcHJpdmlsZWdlIG9uIHNlc3Npb24g dmFyaWFibGUgYnkgdXNlcm5hbWUsIHNlcSBuYW1lJywKKyAgcHJvbmFtZSA9PiAnaGFzX3Nlc3Np b25fdmFyaWFibGVfcHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ ICdib29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ25hbWUgdGV4dCB0ZXh0JywKKyAgcHJvc3JjID0+ ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfbmFtZV9uYW1lJyB9LAoreyBvaWQgPT4g Jzk2MTQnLCBkZXNjciA9PiAndXNlciBwcml2aWxlZ2Ugb24gc2Vzc2lvbiB2YXJpYWJsZSBieSB1 c2VybmFtZSwgc2VxIG9pZCcsCisgIHByb25hbWUgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCisgIHBy b2FyZ3R5cGVzID0+ICduYW1lIG9pZCB0ZXh0JywgcHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2VfbmFtZV9pZCcgfSwKK3sgb2lkID0+ICc5NjE1JywgZGVzY3IgPT4gJ3Vz ZXIgcHJpdmlsZWdlIG9uIHNlc3Npb24gdmFyaWFibGUgYnkgdXNlciBvaWQsIHNlcSBuYW1lJywK KyAgcHJvbmFtZSA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlJywgcHJvdm9sYXRp bGUgPT4gJ3MnLCBwcm9yZXR0eXBlID0+ICdib29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ29pZCB0 ZXh0IHRleHQnLCBwcm9zcmMgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9pZF9u YW1lJyB9LAoreyBvaWQgPT4gJzk2MTYnLCBkZXNjciA9PiAndXNlciBwcml2aWxlZ2Ugb24gc2Vz c2lvbiB2YXJpYWJsZSBieSB1c2VyIG9pZCwgc2VxIG9pZCcsCisgIHByb25hbWUgPT4gJ2hhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlw ZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICdvaWQgb2lkIHRleHQnLCBwcm9zcmMgPT4g J2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9pZF9pZCcgfSwKK3sgb2lkID0+ICc5NjE3 JywgZGVzY3IgPT4gJ2N1cnJlbnQgdXNlciBwcml2aWxlZ2Ugb24gc2Vzc2lvbiB2YXJpYWJsZSBi eSBzZXEgbmFtZScsCisgIHByb25hbWUgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZScsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5 cGVzID0+ICd0ZXh0IHRleHQnLCBwcm9zcmMgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZp bGVnZV9uYW1lJyB9LAoreyBvaWQgPT4gJzk2MTgnLCBkZXNjciA9PiAnY3VycmVudCB1c2VyIHBy aXZpbGVnZSBvbiBzZXNzaW9uIHZhcmlhYmxlIGJ5IHNlcSBvaWQnLAorICBwcm9uYW1lID0+ICdo YXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3Jl dHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0eXBlcyA9PiAnb2lkIHRleHQnLCBwcm9zcmMgPT4g J2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9pZCcgfSwKKwogeyBvaWQgPT4gJzMzNTUn LCBkZXNjciA9PiAnSS9PJywKICAgcHJvbmFtZSA9PiAncGdfbmRpc3RpbmN0X2luJywgcHJvcmV0 dHlwZSA9PiAncGdfbmRpc3RpbmN0JywKICAgcHJvYXJndHlwZXMgPT4gJ2NzdHJpbmcnLCBwcm9z cmMgPT4gJ3BnX25kaXN0aW5jdF9pbicgfSwKQEAgLTY1NzksNiArNjU5OSw5IEBACiAgIHByb25h bWUgPT4gJ3BnX2NvbGxhdGlvbl9pc192aXNpYmxlJywgcHJvY29zdCA9PiAnMTAnLCBwcm92b2xh dGlsZSA9PiAncycsCiAgIHByb3JldHR5cGUgPT4gJ2Jvb2wnLCBwcm9hcmd0eXBlcyA9PiAnb2lk JywKICAgcHJvc3JjID0+ICdwZ19jb2xsYXRpb25faXNfdmlzaWJsZScgfSwKK3sgb2lkID0+ICc5 MjIxJywgZGVzY3IgPT4gJ2lzIHNlc3Npb24gdmFyaWFibGUgdmlzaWJsZSBpbiBzZWFyY2ggcGF0 aD8nLAorICBwcm9uYW1lID0+ICdwZ192YXJpYWJsZV9pc192aXNpYmxlJywgcHJvY29zdCA9PiAn MTAnLCBwcm92b2xhdGlsZSA9PiAncycsCisgIHByb3JldHR5cGUgPT4gJ2Jvb2wnLCBwcm9hcmd0 eXBlcyA9PiAnb2lkJywgcHJvc3JjID0+ICdwZ192YXJpYWJsZV9pc192aXNpYmxlJyB9LAogCiB7 IG9pZCA9PiAnMjg1NCcsIGRlc2NyID0+ICdnZXQgT0lEIG9mIGN1cnJlbnQgc2Vzc2lvblwncyB0 ZW1wIHNjaGVtYSwgaWYgYW55JywKICAgcHJvbmFtZSA9PiAncGdfbXlfdGVtcF9zY2hlbWEnLCBw cm92b2xhdGlsZSA9PiAncycsIHByb3BhcmFsbGVsID0+ICdyJywKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFy aWFibGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2QzYzZlYjI0 YjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgK QEAgLTAsMCArMSw4MSBAQAorLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogcGdfdmFyaWFibGUu aAorICoJICBkZWZpbml0aW9uIG9mIHNlc3Npb24gdmFyaWFibGVzIHN5c3RlbSBjYXRhbG9nIChw Z192YXJpYWJsZXMpCisgKgorICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5Ni0yMDI1 LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9ydGlvbnMgQ29weXJp Z2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAq CisgKiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKKyAqCisgKiBOT1RFUworICoJ ICBUaGUgQ2F0YWxvZy5wbSBtb2R1bGUgcmVhZHMgdGhpcyBmaWxlIGFuZCBkZXJpdmVzIHNjaGVt YQorICoJICBpbmZvcm1hdGlvbi4KKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2lmbmRl ZiBQR19WQVJJQUJMRV9ICisjZGVmaW5lIFBHX1ZBUklBQkxFX0gKKworI2luY2x1ZGUgImNhdGFs b2cvZ2VuYmtpLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhZGRyZXNzLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ192YXJpYWJsZV9kLmgiCisjaW5jbHVkZSAidXRpbHMvYWNsLmgiCisKKy8q IC0tLS0tLS0tLS0tLS0tLS0KKyAqCQlwZ192YXJpYWJsZSBkZWZpbml0aW9uLiAgY3BwIHR1cm5z IHRoaXMgaW50bworICoJCXR5cGVkZWYgc3RydWN0IEZvcm1EYXRhX3BnX3ZhcmlhYmxlCisgKiAt LS0tLS0tLS0tLS0tLS0tCisgKi8KK0NBVEFMT0cocGdfdmFyaWFibGUsOTIyMixWYXJpYWJsZVJl bGF0aW9uSWQpCit7CisJT2lkCQkJb2lkOwkJCS8qIG9pZCAqLworCisJLyogT0lEIG9mIGVudHJ5 IGluIHBnX3R5cGUgZm9yIHZhcmlhYmxlJ3MgdHlwZSAqLworCU9pZAkJCXZhcnR5cGUgQktJX0xP T0tVUChwZ190eXBlKTsKKworCS8qIHZhcmlhYmxlIG5hbWUgKi8KKwlOYW1lRGF0YQl2YXJuYW1l OworCisJLyogT0lEIG9mIG5hbWVzcGFjZSBjb250YWluaW5nIHZhcmlhYmxlIGNsYXNzICovCisJ T2lkCQkJdmFybmFtZXNwYWNlIEJLSV9MT09LVVAocGdfbmFtZXNwYWNlKTsKKworCS8qIHZhcmlh YmxlIG93bmVyICovCisJT2lkCQkJdmFyb3duZXIgQktJX0xPT0tVUChwZ19hdXRoaWQpOworCisJ LyogdHlwbW9kIGZvciB2YXJpYWJsZSdzIHR5cGUgKi8KKwlpbnQzMgkJdmFydHlwbW9kIEJLSV9E RUZBVUxUKC0xKTsKKworCS8qIHZhcmlhYmxlIGNvbGxhdGlvbiAqLworCU9pZAkJCXZhcmNvbGxh dGlvbiBCS0lfREVGQVVMVCgwKSBCS0lfTE9PS1VQX09QVChwZ19jb2xsYXRpb24pOworCisKKyNp ZmRlZiBDQVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVy ZSAqLworCisJLyogYWNjZXNzIHBlcm1pc3Npb25zICovCisJYWNsaXRlbQkJdmFyYWNsWzFdIEJL SV9ERUZBVUxUKF9udWxsXyk7CisKKyNlbmRpZgorfSBGb3JtRGF0YV9wZ192YXJpYWJsZTsKKwor LyogLS0tLS0tLS0tLS0tLS0tLQorICoJCUZvcm1fcGdfdmFyaWFibGUgY29ycmVzcG9uZHMgdG8g YSBwb2ludGVyIHRvIGEgdHVwbGUgd2l0aAorICoJCXRoZSBmb3JtYXQgb2YgdGhlIHBnX3Zhcmlh YmxlIHJlbGF0aW9uLgorICogLS0tLS0tLS0tLS0tLS0tLQorICovCit0eXBlZGVmIEZvcm1EYXRh X3BnX3ZhcmlhYmxlICpGb3JtX3BnX3ZhcmlhYmxlOworCitERUNMQVJFX1RPQVNUKHBnX3Zhcmlh YmxlLCA5MjIzLCA5MjI0KTsKKworREVDTEFSRV9VTklRVUVfSU5ERVhfUEtFWShwZ192YXJpYWJs ZV9vaWRfaW5kZXgsIDkyMjUsIFZhcmlhYmxlT2lkSW5kZXhJZCwgcGdfdmFyaWFibGUsIGJ0cmVl KG9pZCBvaWRfb3BzKSk7CitERUNMQVJFX1VOSVFVRV9JTkRFWChwZ192YXJpYWJsZV92YXJuYW1l X25zcF9pbmRleCwgOTIyNiwgVmFyaWFibGVOYW1lTnNwSW5kZXhJZCwgcGdfdmFyaWFibGUsIGJ0 cmVlKHZhcm5hbWUgbmFtZV9vcHMsIHZhcm5hbWVzcGFjZSBvaWRfb3BzKSk7CisKK2V4dGVybiBP YmplY3RBZGRyZXNzIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJCQkJCQkJ CUNyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KTsKK2V4dGVybiB2b2lkIERyb3BWYXJpYWJsZUJ5 SWQoT2lkIHZhcmlkKTsKKworTUFLRV9TWVNDQUNIRShWQVJJQUJMRU5BTUVOU1AsIHBnX3Zhcmlh YmxlX3Zhcm5hbWVfbnNwX2luZGV4LCA4KTsKK01BS0VfU1lTQ0FDSEUoVkFSSUFCTEVPSUQsIHBn X3ZhcmlhYmxlX29pZF9pbmRleCwgOCk7CisKKyNlbmRpZgkJCQkJCQkvKiBQR19WQVJJQUJMRV9I ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5j bHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggMzhkNmFkN2RjYmQuLjY2YWVjNDY1NDk4IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0yMzE2LDYgKzIzMTYsNyBAQCB0eXBlZGVmIGVudW0g T2JqZWN0VHlwZQogCU9CSkVDVF9UU1RFTVBMQVRFLAogCU9CSkVDVF9UWVBFLAogCU9CSkVDVF9V U0VSX01BUFBJTkcsCisJT0JKRUNUX1ZBUklBQkxFLAogCU9CSkVDVF9WSUVXLAogfSBPYmplY3RU eXBlOwogCkBAIC0zNDQ3LDYgKzM0NDgsMjEgQEAgdHlwZWRlZiBzdHJ1Y3QgQWx0ZXJTdGF0c1N0 bXQKIAlib29sCQltaXNzaW5nX29rOwkJLyogc2tpcCBlcnJvciBpZiBzdGF0aXN0aWNzIG9iamVj dCBpcyBtaXNzaW5nICovCiB9IEFsdGVyU3RhdHNTdG10OwogCisKKy8qIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAqCQl7Q3JlYXRlfEFsdGVyfSBWQVJJQUJMRSBTdGF0ZW1lbnQKKyAqIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU2Vzc2lvblZhclN0 bXQKK3sKKwlOb2RlVGFnCQl0eXBlOworCVJhbmdlVmFyICAgKnZhcmlhYmxlOwkJLyogdGhlIHZh cmlhYmxlIHRvIGNyZWF0ZSAqLworCVR5cGVOYW1lICAgKnR5cGVOYW1lOwkJLyogdGhlIHR5cGUg b2YgdmFyaWFibGUgKi8KKwlDb2xsYXRlQ2xhdXNlICpjb2xsQ2xhdXNlOworCWJvb2wJCWlmX25v dF9leGlzdHM7CS8qIGRvIG5vdGhpbmcgaWYgaXQgYWxyZWFkeSBleGlzdHMgKi8KK30gQ3JlYXRl U2Vzc2lvblZhclN0bXQ7CisKKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJCUNyZWF0 ZSBGdW5jdGlvbiBTdGF0ZW1lbnQKICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xp c3QuaAppbmRleCAyNGMyMmE4Njk0Yi4uYzI1YWRlNjhmMTkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3BhcnNlci9rd2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKQEAg LTQ4NCw2ICs0ODQsOCBAQCBQR19LRVlXT1JEKCJ2YWxpZGF0b3IiLCBWQUxJREFUT1IsIFVOUkVT RVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhbHVlIiwgVkFMVUVfUCwg VU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFsdWVzIiwgVkFM VUVTLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFyY2hhciIs IFZBUkNIQVIsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJ2YXJp YWJsZSIsIFZBUklBQkxFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlX T1JEKCJ2YXJpYWJsZXMiLCBWQVJJQUJMRVMsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoInZhcmlhZGljIiwgVkFSSUFESUMsIFJFU0VSVkVEX0tFWVdPUkQsIEJB UkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJ5aW5nIiwgVkFSWUlORywgVU5SRVNFUlZFRF9LRVlX T1JELCBBU19MQUJFTCkKIFBHX0tFWVdPUkQoInZlcmJvc2UiLCBWRVJCT1NFLCBUWVBFX0ZVTkNf TkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdGNvcC9j bWR0YWdsaXN0LmggYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRleCBkMjUwYTcx NGQ1OS4uZWE4Njk1NGRkZWQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlz dC5oCisrKyBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC02OCw2ICs2OCw3IEBA IFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVFJBTlNGT1JNLCAiQUxURVIgVFJBTlNGT1JNIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9UUklHR0VSLCAiQUxURVIg VFJJR0dFUiIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxURVJfVFlQ RSwgIkFMVEVSIFRZUEUiLCB0cnVlLCB0cnVlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQUxU RVJfVVNFUl9NQVBQSU5HLCAiQUxURVIgVVNFUiBNQVBQSU5HIiwgdHJ1ZSwgZmFsc2UsIGZhbHNl KQorUEdfQ01EVEFHKENNRFRBR19BTFRFUl9WQVJJQUJMRSwgIkFMVEVSIFZBUklBQkxFIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9WSUVXLCAiQUxURVIgVklF VyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfQU5BTFlaRSwgIkFOQUxZ WkUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19CRUdJTiwgIkJFR0lO IiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKQEAgLTEyMyw2ICsxMjQsNyBAQCBQR19DTURUQUcoQ01E VEFHX0NSRUFURV9UUkFOU0ZPUk0sICJDUkVBVEUgVFJBTlNGT1JNIiwgdHJ1ZSwgZmFsc2UsIGZh bHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVFJJR0dFUiwgIkNSRUFURSBUUklHR0VSIiwg dHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVFlQRSwgIkNSRUFU RSBUWVBFIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVVNF Ul9NQVBQSU5HLCAiQ1JFQVRFIFVTRVIgTUFQUElORyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKK1BH X0NNRFRBRyhDTURUQUdfQ1JFQVRFX1ZBUklBQkxFLCAiQ1JFQVRFIFZBUklBQkxFIiwgdHJ1ZSwg ZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVklFVywgIkNSRUFURSBWSUVX IiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ERUFMTE9DQVRFLCAiREVB TExPQ0FURSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RFQUxMT0NB VEVfQUxMLCAiREVBTExPQ0FURSBBTEwiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpAQCAtMTc1LDYg KzE3Nyw3IEBAIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9UUkFOU0ZPUk0sICJEUk9QIFRSQU5TRk9S TSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9UUklHR0VSLCAi RFJPUCBUUklHR0VSIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9Q X1RZUEUsICJEUk9QIFRZUEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFH X0RST1BfVVNFUl9NQVBQSU5HLCAiRFJPUCBVU0VSIE1BUFBJTkciLCB0cnVlLCBmYWxzZSwgZmFs c2UpCitQR19DTURUQUcoQ01EVEFHX0RST1BfVkFSSUFCTEUsICJEUk9QIFZBUklBQkxFIiwgdHJ1 ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX1ZJRVcsICJEUk9QIFZJRVci LCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0VYRUNVVEUsICJFWEVDVVRF IiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRVhQTEFJTiwgIkVYUExB SU4iLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMv YWNsLmggYi9zcmMvaW5jbHVkZS91dGlscy9hY2wuaAppbmRleCAwMWFlNWI3MTlmZC4uNWUxYThh ODJlOTAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5oCisrKyBiL3NyYy9pbmNs dWRlL3V0aWxzL2FjbC5oCkBAIC0xNjksNiArMTY5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQXJyYXlU eXBlIEFjbDsKICNkZWZpbmUgQUNMX0FMTF9SSUdIVFNfU0NIRU1BCQkoQUNMX1VTQUdFfEFDTF9D UkVBVEUpCiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX1RBQkxFU1BBQ0UJKEFDTF9DUkVBVEUpCiAj ZGVmaW5lIEFDTF9BTExfUklHSFRTX1RZUEUJCQkoQUNMX1VTQUdFKQorI2RlZmluZSBBQ0xfQUxM X1JJR0hUU19WQVJJQUJMRQkJKEFDTF9TRUxFQ1R8QUNMX1VQREFURSkKIAogLyogb3BlcmF0aW9u IGNvZGVzIGZvciBwZ18qX2FjbG1hc2sgKi8KIHR5cGVkZWYgZW51bQpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUu aAppbmRleCBiMjNkZWI5NjYyZi4uNTNjNGQ1ODg2ZTQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L3V0aWxzL2xzeXNjYWNoZS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2xzeXNjYWNoZS5oCkBA IC0xMzQsNiArMTM0LDcgQEAgZXh0ZXJuIGNoYXIgZ2V0X2Z1bmNfcHJva2luZChPaWQgZnVuY2lk KTsKIGV4dGVybiBib29sIGdldF9mdW5jX2xlYWtwcm9vZihPaWQgZnVuY2lkKTsKIGV4dGVybiBS ZWdQcm9jZWR1cmUgZ2V0X2Z1bmNfc3VwcG9ydChPaWQgZnVuY2lkKTsKIGV4dGVybiBPaWQJZ2V0 X3JlbG5hbWVfcmVsaWQoY29uc3QgY2hhciAqcmVsbmFtZSwgT2lkIHJlbG5hbWVzcGFjZSk7Citl eHRlcm4gT2lkCWdldF92YXJuYW1lX3ZhcmlkKGNvbnN0IGNoYXIgKnZhcm5hbWUsIE9pZCB2YXJu YW1lc3BhY2UpOwogZXh0ZXJuIGNoYXIgKmdldF9yZWxfbmFtZShPaWQgcmVsaWQpOwogZXh0ZXJu IE9pZAlnZXRfcmVsX25hbWVzcGFjZShPaWQgcmVsaWQpOwogZXh0ZXJuIE9pZAlnZXRfcmVsX3R5 cGVfaWQoT2lkIHJlbGlkKTsKQEAgLTIwNiw2ICsyMDcsMTQgQEAgZXh0ZXJuIGNoYXIgKmdldF9w dWJsaWNhdGlvbl9uYW1lKE9pZCBwdWJpZCwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJ Z2V0X3N1YnNjcmlwdGlvbl9vaWQoY29uc3QgY2hhciAqc3VibmFtZSwgYm9vbCBtaXNzaW5nX29r KTsKIGV4dGVybiBjaGFyICpnZXRfc3Vic2NyaXB0aW9uX25hbWUoT2lkIHN1YmlkLCBib29sIG1p c3Npbmdfb2spOwogCitleHRlcm4gY2hhciAqZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShPaWQg dmFyaWQpOworZXh0ZXJuIE9pZAlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UoT2lkIHZh cmlkKTsKK2V4dGVybiBPaWQJZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZShPaWQgdmFyaWQpOwor ZXh0ZXJuIHZvaWQgZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKE9pZCB2 YXJpZCwKKwkJCQkJCQkJCQkJCQlPaWQgKnR5cGlkLAorCQkJCQkJCQkJCQkJCWludDMyICp0eXBt b2QsCisJCQkJCQkJCQkJCQkJT2lkICpjb2xsaWQpOworCiAjZGVmaW5lIHR5cGVfaXNfYXJyYXko dHlwaWQpICAoZ2V0X2VsZW1lbnRfdHlwZSh0eXBpZCkgIT0gSW52YWxpZE9pZCkKIC8qIHR5cGVf aXNfYXJyYXlfZG9tYWluIGFjY2VwdHMgYm90aCBwbGFpbiBhcnJheXMgYW5kIGRvbWFpbnMgb3Zl ciBhcnJheXMgKi8KICNkZWZpbmUgdHlwZV9pc19hcnJheV9kb21haW4odHlwaWQpICAoZ2V0X2Jh c2VfZWxlbWVudF90eXBlKHR5cGlkKSAhPSBJbnZhbGlkT2lkKQpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9kZXBlbmRlbmN5Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvZGVwZW5kZW5jeS5vdXQKaW5kZXggNzRkOWZmMjk5OGQuLmMzMzZmNjdhNTk2IDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2RlcGVuZGVuY3kub3V0CisrKyBiL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQKQEAgLTE1MSwzICsxNTEsMjAg QEAgb3duZXIgb2YgdHlwZSBkZXB0ZXN0X3QKIERST1AgT1dORUQgQlkgcmVncmVzc19kZXBfdXNl cjIsIHJlZ3Jlc3NfZGVwX3VzZXIwOwogRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIyOwogRFJP UCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIwOworLS0gZGVwZW5kZW5jeSBvbiB0eXBlCitDUkVBVEUg RE9NQUlOIHZhcmRvbWFpbiBBUyBpbnQ7CitDUkVBVEUgVFlQRSB2YXJ0eXBlIEFTIChhIGludCwg YiBpbnQsIGMgdmFyZG9tYWluKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnR5cGU7Cist LSBzaG91bGQgZmFpbAorRFJPUCBET01BSU4gdmFyZG9tYWluOworRVJST1I6ICBjYW5ub3QgZHJv cCB0eXBlIHZhcmRvbWFpbiBiZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRB SUw6ICBjb2x1bW4gYyBvZiBjb21wb3NpdGUgdHlwZSB2YXJ0eXBlIGRlcGVuZHMgb24gdHlwZSB2 YXJkb21haW4KK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRl bnQgb2JqZWN0cyB0b28uCitEUk9QIFRZUEUgdmFydHlwZTsKK0VSUk9SOiAgY2Fubm90IGRyb3Ag dHlwZSB2YXJ0eXBlIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDog IHNlc3Npb24gdmFyaWFibGUgdmFyMSBkZXBlbmRzIG9uIHR5cGUgdmFydHlwZQorSElOVDogIFVz ZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KKy0t IGNsZWFuIHVwCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZUEUgdmFydHlwZTsKK0RST1Ag RE9NQUlOIHZhcmRvbWFpbjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv b2lkam9pbnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRqb2lucy5vdXQKaW5k ZXggMjE1ZWI4OTliZTMuLmQ5OTUzMzIxNDAyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL29pZGpvaW5zLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29p ZGpvaW5zLm91dApAQCAtMjY2LDMgKzI2Niw3IEBAIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNj cmlwdGlvbiB7c3ViZGJpZH0gPT4gcGdfZGF0YWJhc2Uge29pZH0KIE5PVElDRTogIGNoZWNraW5n IHBnX3N1YnNjcmlwdGlvbiB7c3Vib3duZXJ9ID0+IHBnX2F1dGhpZCB7b2lkfQogTk9USUNFOiAg Y2hlY2tpbmcgcGdfc3Vic2NyaXB0aW9uX3JlbCB7c3JzdWJpZH0gPT4gcGdfc3Vic2NyaXB0aW9u IHtvaWR9CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb25fcmVsIHtzcnJlbGlkfSA9 PiBwZ19jbGFzcyB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFibGUge3ZhcnR5cGV9 ID0+IHBnX3R5cGUge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3ZhcmlhYmxlIHt2YXJuYW1l c3BhY2V9ID0+IHBnX25hbWVzcGFjZSB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFi bGUge3Zhcm93bmVyfSA9PiBwZ19hdXRoaWQge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3Zh cmlhYmxlIHt2YXJjb2xsYXRpb259ID0+IHBnX2NvbGxhdGlvbiB7b2lkfQpkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHNxbC5vdXQKaW5kZXggMzZkYzMxYzE2YzQuLjg4ZTIxMTk0NzExIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcHNxbC5vdXQKQEAgLTU5MzAsNiArNTkzMCwzMCBAQCBDT01NSVQ7CiAjIGZp bmFsIE9OX0VSUk9SX1JPTExCQUNLOiBvZmYKIERST1AgVEFCTEUgYmxhOwogRFJPUCBGVU5DVElP TiBwc3FsX2Vycm9yOworLS0gc2Vzc2lvbiB2YXJpYWJsZSB0ZXN0CitDUkVBVEUgUk9MRSByZWdy ZXNzX3ZhcmlhYmxlX293bmVyOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsK K0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXIgQ09MTEFURSAiQyI7CitcZFYrIHZhcjEK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJp YWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAg ICAgICAgIE93bmVyICAgICAgICAgIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAK Ky0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBwdWJs aWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3Zhcmlh YmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgfCAKKygxIHJvdykKKworR1JBTlQgU0VMRUNU IE9OIFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOworQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElT ICdzb21lIGRlc2NyaXB0aW9uJzsKK1xkVisgdmFyMQorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwor IFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAg T3duZXIgICAgICAgICAgfCAgICAgICAgICAgICAgICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAg ICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jl c3NfdmFyaWFibGVfb3duZXIgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFy aWFibGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCisgICAgICAgIHwgICAgICB8ICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jl c3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAgICAgICAgICAgICB8IAorKDEgcm93KQorCitE Uk9QIFZBUklBQkxFIHZhcjE7CitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBST0xFIHJlZ3Jl c3NfdmFyaWFibGVfb3duZXI7CiAtLSBjaGVjayBkZXNjcmliaW5nIGludmFsaWQgbXVsdGlwYXJ0 IG5hbWVzCiBcZEEgcmVncmVzc2lvbi5oZWFwCiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9v IG1hbnkgZG90dGVkIG5hbWVzKTogcmVncmVzc2lvbi5oZWFwCkBAIC02MTUxLDYgKzYxNzUsMTIg QEAgY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiBub25lc3Vj aC5wdWJsaWMuZnVuY19kZXBzX3N0YXQKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFu eSBkb3R0ZWQgbmFtZXMpOiByZWdyZXNzaW9uLm15ZXZ0CiBcZHkgbm9uZXN1Y2gubXlldnQKIGlt cHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiBub25lc3VjaC5t eWV2dAorXGRWIGhvc3QucmVncmVzc2lvbi5wdWJsaWMudmFyCitpbXByb3BlciBxdWFsaWZpZWQg bmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogaG9zdC5yZWdyZXNzaW9uLnB1YmxpYy52YXIK K1xkViByZWdyZXNzaW9ufG15ZGIucHVibGljLnZhcgorY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNl cyBhcmUgbm90IGltcGxlbWVudGVkOiByZWdyZXNzaW9ufG15ZGIucHVibGljLnZhcgorXGRWIG5v bmVzdWNoLnB1YmxpYy52YXIKK2Nyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBs ZW1lbnRlZDogbm9uZXN1Y2gucHVibGljLnZhcgogLS0gY2hlY2sgdGhhdCBkb3RzIHdpdGhpbiBx dW90ZWQgbmFtZSBzZWdtZW50cyBhcmUgbm90IGNvdW50ZWQKIFxkQSAibm8uc3VjaC5hY2Nlc3Mu bWV0aG9kIgogTGlzdCBvZiBhY2Nlc3MgbWV0aG9kcwpAQCAtNjM4NSw2ICs2NDE1LDEyIEBAIExp c3Qgb2Ygc2NoZW1hcwogLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0KICgwIHJvd3MpCiAKK1xkViAibm8uc3VjaC52YXJpYWJsZSIKKyAgICAgICAgICAg IExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBP d25lciAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorKDAgcm93 cykKKwogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBc ZEEgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5hY2Nlc3MubWV0aG9kIgogaW1wcm9wZXIgcXVh bGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5v LnN1Y2guYWNjZXNzLm1ldGhvZCIKQEAgLTY1NTQsNiArNjU5MCwxMiBAQCBpbXByb3BlciBxdWFs aWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8u c3VjaC5pbnN0YQogCiBcZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2Vy IgogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5z dWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKK1xkViAibm8uc3VjaC5zY2hlbWEi LiJuby5zdWNoLnZhcmlhYmxlIgorICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hl bWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAorLS0tLS0tLS0rLS0tLS0tKy0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tCisoMCByb3dzKQorCiAtLSBhZ2FpbiwgYnV0IHdpdGgg Y3VycmVudCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkdCBy ZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRpb24iCiAgICAg ICBMaXN0IG9mIHJlbGF0aW9ucwpAQCAtNjY4Nyw2ICs2NzI5LDEyIEBAIExpc3Qgb2YgdGV4dCBz ZWFyY2ggdGVtcGxhdGVzCiAtLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tKy0tLS0tCiAoMCByb3dzKQogCitcZFYgcmVncmVzc2lvbi4ibm8uc3Vj aC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgorICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJs ZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAorLS0tLS0tLS0r LS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tCisoMCByb3dzKQorCiAtLSBhZ2Fpbiwg YnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25z LgogXGR0ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxl LnJlbGF0aW9uIgogY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVk OiAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxh dGlvbiIKQEAgLTY3MzQsNiArNjc4Miw4IEBAIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJl IG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtCiBjcm9z cy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFi YXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmRhdGEudHlwZSIKIFxkWCAibm8uc3VjaC5k YXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgog Y3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAibm8uc3VjaC5k YXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgor XGRWICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxl IgorY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAibm8uc3Vj aC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKIC0tIGNoZWNr IFxkcmcgYW5kIFxkdQogQ1JFQVRFIFJPTEUgcmVncmVzc19kdV9yb2xlMDsKIENSRUFURSBST0xF IHJlZ3Jlc3NfZHVfcm9sZTE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5j MzY2NjBjZTZkMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv c2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC0wLDAgKzEsNDMzIEBACitDUkVBVEUgUk9MRSByZWdy ZXNzX3ZhcmlhYmxlX293bmVyOworU0VUIGxvZ19zdGF0ZW1lbnQgVE8gZGRsOworLS0gc2hvdWxk IGJlIG9rCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CistLSBzaG91bGQgZmFpbCwgcHNl dWRvdHlwZXMgYXJlIG5vdCBhbGxvd2VkCitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBhbnllbGVt ZW50OworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSBwc2V1ZG8tdHlwZSBhbnll bGVtZW50CistLSBzaG91bGQgYmUgb2ssIGRvIG5vdGhpbmcKK0RST1AgVkFSSUFCTEUgSUYgRVhJ U1RTIHZhcjI7CitOT1RJQ0U6ICBzZXNzaW9uIHZhcmlhYmxlICJ2YXIyIiBkb2VzIG5vdCBleGlz dCwgc2tpcHBpbmcKKy0tIGRvIG5vdGhpbmcKK0NSRUFURSBWQVJJQUJMRSBJRiBOT1QgRVhJU1RT IHZhcjEgQVMgaW50OworTk9USUNFOiAgc2Vzc2lvbiB2YXJpYWJsZSAidmFyMSIgYWxyZWFkeSBl eGlzdHMsIHNraXBwaW5nCistLSBzaG91bGQgZmFpbAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg aW50OworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJ2YXIxIiBhbHJlYWR5IGV4aXN0cworLS0g c2hvdWxkIGJlIG9rCitEUk9QIFZBUklBQkxFIElGIEVYSVNUUyB2YXIxOworLS0gdGhlIHZhcmlh YmxlIGNhbiB1c2UgY29tcG9zaXRlIHR5cGVzCitDUkVBVEUgVEFCTEUgdDEgKGEgaW50LCBiIGlu dCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0MTsKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRB QkxFIHQxOworRVJST1I6ICBjYW5ub3QgZHJvcCB0YWJsZSB0MSBiZWNhdXNlIG90aGVyIG9iamVj dHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgZGVwZW5kcyBv biB0eXBlIHQxCitISU5UOiAgVXNlIERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5k ZW50IG9iamVjdHMgdG9vLgorLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUQUJMRSB0MSBBREQgQ09M VU1OIGMgaW50OworLS0gc2hvdWxkIGZhaWwKK0FMVEVSIFRBQkxFIHQxIEFMVEVSIENPTFVNTiBi IFRZUEUgbnVtZXJpYzsKK0VSUk9SOiAgY2Fubm90IGFsdGVyIHRhYmxlICJ0MSIgYmVjYXVzZSBz ZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgdXNlcyBpdAorRFJPUCBWQVJJQUJMRSB2YXIx OworRFJPUCBUQUJMRSB0MTsKK0NSRUFURSBUWVBFIHQxIEFTIChhIGludCwgYiBpbnQpOworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgdDE7CistLSBzaG91bGQgZmFpbAorRFJPUCBUWVBFIHQxOwor RVJST1I6ICBjYW5ub3QgZHJvcCB0eXBlIHQxIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQg b24gaXQKK0RFVEFJTDogIHNlc3Npb24gdmFyaWFibGUgdmFyMSBkZXBlbmRzIG9uIHR5cGUgdDEK K0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0 cyB0b28uCistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUgdDEgQUREIEFUVFJJQlVURSBjIGlu dDsKKy0tIHNob3VsZCBmYWlsCitBTFRFUiBUWVBFIHQxIEFMVEVSIEFUVFJJQlVURSBiICBUWVBF IG51bWVyaWM7CitFUlJPUjogIGNhbm5vdCBhbHRlciB0eXBlICJ0MSIgYmVjYXVzZSBzZXNzaW9u IHZhcmlhYmxlICJwdWJsaWMudmFyMSIgdXNlcyBpdAorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJP UCBUWVBFIHQxOworU0VUIGxvZ19zdGF0ZW1lbnQgVE8gZGVmYXVsdDsKK0NSRUFURSBET01BSU4g dGVzdHZhcl9kb21haW4gQVMgaW50OworQ1JFQVRFIFRZUEUgdGVzdHZhcl90eXBlIEFTIChhIHRl c3R2YXJfZG9tYWluKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRlc3R2YXJfZG9tYWluOwor LS0gc2hvdWxkIGZhaWwKK0FMVEVSIERPTUFJTiB0ZXN0dmFyX2RvbWFpbiBBREQgQ0hFQ0sodmFs dWUgPD4gMTAwKTsKK0VSUk9SOiAgY2Fubm90IGFsdGVyIGRvbWFpbiAidGVzdHZhcl9kb21haW4i IGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIHVzZXMgaXQKK0RST1AgVkFS SUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHRlc3R2YXJfdHlwZTsKKy0tIHNo b3VsZCBmYWlsCitBTFRFUiBET01BSU4gdGVzdHZhcl9kb21haW4gQUREIENIRUNLKHZhbHVlIDw+ IDEwMCk7CitFUlJPUjogIGNhbm5vdCBhbHRlciB0eXBlICJ0ZXN0dmFyX2RvbWFpbiIgYmVjYXVz ZSBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgdXNlcyBpdAorRFJPUCBWQVJJQUJMRSB2 YXIxOworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBET01BSU4gdGVzdHZhcl9kb21haW4gQUREIENI RUNLKHZhbHVlIDw+IDEwMCk7CitEUk9QIFRZUEUgdGVzdHZhcl90eXBlOworRFJPUCBUWVBFIHRl c3R2YXJfZG9tYWluOworLS0gY2hlY2sgZXZlbnQgdHJpZ2dlciBzdXBwb3J0CitDUkVBVEUgT1Ig UkVQTEFDRSBGVU5DVElPTiBzdmFyX2V2ZW50X3RyaWdnZXJfcmVwb3J0X2Ryb3BwZWQoKQorUkVU VVJOUyBldmVudF90cmlnZ2VyCitBUyAkJAorREVDTEFSRSByIHJlY29yZDsKK0JFR0lOCisgIEZP UiByIElOIFNFTEVDVCAqIGZyb20gcGdfZXZlbnRfdHJpZ2dlcl9kcm9wcGVkX29iamVjdHMoKQor ICBMT09QCisgICAgQ09OVElOVUUgV0hFTiBOT1Qgci5ub3JtYWwgQU5EIE5PVCByLm9yaWdpbmFs OworCisgICAgUkFJU0UgTk9USUNFCisgICAgICAgJ05PUk1BTDogb3JpZz0lIG5vcm1hbD0lIGlz dGVtcD0lIHR5cGU9JSBpZGVudGl0eT0lIG5hbWU9JSBhcmdzPSUnLAorICAgICAgIHIub3JpZ2lu YWwsIHIubm9ybWFsLCByLmlzX3RlbXBvcmFyeSwgci5vYmplY3RfdHlwZSwKKyAgICAgICByLm9i amVjdF9pZGVudGl0eSwgci5hZGRyZXNzX25hbWVzLCByLmFkZHJlc3NfYXJnczsKKyAgRU5EIExP T1A7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JFQVRFIEVWRU5UIFRSSUdHRVIgc3Zh cl9yZWdyZXNzX2V2ZW50X3RyaWdnZXJfcmVwb3J0X2Ryb3BwZWQgT04gc3FsX2Ryb3AKKyAgV0hF TiBUQUcgSU4gKCdEUk9QIFZBUklBQkxFJykKKyAgRVhFQ1VURSBQUk9DRURVUkUgc3Zhcl9ldmVu dF90cmlnZ2VyX3JlcG9ydF9kcm9wcGVkKCk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7 CitEUk9QIFZBUklBQkxFIHZhcjE7CitOT1RJQ0U6ICBOT1JNQUw6IG9yaWc9dCBub3JtYWw9ZiBp c3RlbXA9ZiB0eXBlPXNlc3Npb24gdmFyaWFibGUgaWRlbnRpdHk9cHVibGljLnZhcjEgbmFtZT17 cHVibGljLHZhcjF9IGFyZ3M9e30KK0RST1AgRVZFTlQgVFJJR0dFUiBzdmFyX3JlZ3Jlc3NfZXZl bnRfdHJpZ2dlcl9yZXBvcnRfZHJvcHBlZDsKKy0tIGNoZWNrIGNvbW1lbnQgb24gdmFyaWFibGUK K0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NPTU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJ UyAnc29tZSB2YXJpYWJsZSBjb21tZW50JzsKK1NFTEVDVCBwZ19jYXRhbG9nLm9ial9kZXNjcmlw dGlvbihvaWQsICdwZ192YXJpYWJsZScpIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9 ICd2YXIxJzsKKyAgICBvYmpfZGVzY3JpcHRpb24gICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIHNvbWUgdmFyaWFibGUgY29tbWVudAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7 CistLSBjaGVjayB0aGUgb2JqZWN0IGFkZHJlc3Mgb2YgYWxsIHNlc3Npb24gdmFyaWFibGVzCitD UkVBVEUgU0NIRU1BIHZhcnRlc3QxOworQ1JFQVRFIFNDSEVNQSB2YXJ0ZXN0MjsKK0NSRUFURSBW QVJJQUJMRSB2YXJ0ZXN0MS5zdmFydGVzdF92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSB2 YXJ0ZXN0Mi5zdmFydGVzdF92YXIxIEFTIGludDsKK1NFTEVDVAorICBlLnZhcm5hbWUsCisgIHBn X2Rlc2NyaWJlX29iamVjdCgncGdfdmFyaWFibGUnOjpyZWdjbGFzcywgZS5vaWQsIDApIGFzIGRl c2NyLAorICBiLnR5cGUsIGIub2JqZWN0X25hbWVzLCBiLm9iamVjdF9hcmdzLAorICBwZ19pZGVu dGlmeV9vYmplY3QoYS5jbGFzc2lkLCBhLm9iamlkLCBhLm9ianN1YmlkKSBhcyBpZGVudAorRlJP TSBwZ192YXJpYWJsZSBhcyBlLAorICBMQVRFUkFMIHBnX2lkZW50aWZ5X29iamVjdF9hc19hZGRy ZXNzKCdwZ192YXJpYWJsZSc6OnJlZ2NsYXNzLCBlLm9pZCwgMCkgYXMgYiwKKyAgTEFURVJBTCBw Z19nZXRfb2JqZWN0X2FkZHJlc3MoYi50eXBlLCBiLm9iamVjdF9uYW1lcywgYi5vYmplY3RfYXJn cykgYXMgYQorV0hFUkUgZS52YXJuYW1lIExJS0UgJ3N2YXJ0ZXN0X3ZhciUnOworICAgIHZhcm5h bWUgICAgfCAgICAgICAgICAgICAgICAgIGRlc2NyICAgICAgICAgICAgICAgICAgfCAgICAgICB0 eXBlICAgICAgIHwgICAgICAgb2JqZWN0X25hbWVzICAgICAgIHwgb2JqZWN0X2FyZ3MgfCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZGVudCAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCistLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBzdmFydGVzdF92YXIxIHwgc2Vzc2lvbiB2YXJpYWJs ZSB2YXJ0ZXN0MS5zdmFydGVzdF92YXIxIHwgc2Vzc2lvbiB2YXJpYWJsZSB8IHt2YXJ0ZXN0MSxz dmFydGVzdF92YXIxfSB8IHt9ICAgICAgICAgIHwgKCJzZXNzaW9uIHZhcmlhYmxlIix2YXJ0ZXN0 MSxzdmFydGVzdF92YXIxLHZhcnRlc3QxLnN2YXJ0ZXN0X3ZhcjEpCisgc3ZhcnRlc3RfdmFyMSB8 IHNlc3Npb24gdmFyaWFibGUgdmFydGVzdDIuc3ZhcnRlc3RfdmFyMSB8IHNlc3Npb24gdmFyaWFi bGUgfCB7dmFydGVzdDIsc3ZhcnRlc3RfdmFyMX0gfCB7fSAgICAgICAgICB8ICgic2Vzc2lvbiB2 YXJpYWJsZSIsdmFydGVzdDIsc3ZhcnRlc3RfdmFyMSx2YXJ0ZXN0Mi5zdmFydGVzdF92YXIxKQor KDIgcm93cykKKworRFJPUCBTQ0hFTUEgdmFydGVzdDEgQ0FTQ0FERTsKK05PVElDRTogIGRyb3Ag Y2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSB2YXJ0ZXN0MS5zdmFydGVzdF92YXIxCitEUk9Q IFNDSEVNQSB2YXJ0ZXN0MiBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNz aW9uIHZhcmlhYmxlIHZhcnRlc3QyLnN2YXJ0ZXN0X3ZhcjEKKy0tIGNoZWNrIGFjY2VzcyByaWdo dHMgYW5kIHN1cHBvcnRlZCBBTFRFUgorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKK0dSQU5UIEFM TCBPTiBTQ0hFTUEgc3ZhcnRlc3QgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFURSBW QVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIGludDsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFi bGVfcmVhZGVyOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgVE8gcmVn cmVzc192YXJpYWJsZV9yZWFkZXI7CitSRVZPS0UgQUxMIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZh cjEgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKK0FMVEVSIFZBUklBQkxFIHN2YXJ0ZXN0 LnZhcjEgT1dORVIgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0FMVEVSIFZBUklBQkxFIHN2 YXJ0ZXN0LnZhcjEgUkVOQU1FIFRPIHZhcnh4OworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFy eHggU0VUIFNDSEVNQSBwdWJsaWM7CitEUk9QIFZBUklBQkxFIHB1YmxpYy52YXJ4eDsKK0FMVEVS IERFRkFVTFQgUFJJVklMRUdFUworICAgRk9SIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcgor ICAgSU4gU0NIRU1BIHN2YXJ0ZXN0CisgICBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIHJl Z3Jlc3NfdmFyaWFibGVfcmVhZGVyOworLS0gY3JlYXRpbmcgdmFyaWFibGUgd2l0aCBkZWZhdWx0 IHByaXZpbGVnZXMKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUg VkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBpbnQ7CitTRVQgUk9MRSBUTyBERUZBVUxUOworLS0g c2hvdWxkIGJlIG9rLiBzaW5jZSBBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMKKy0tIGFsbG93IHJl Z3Jlc3NfdmFyaWFibGVfcmVhZGVyIHRvIGhhdmUgU0VMRUNUIHByaXZpbGVkZ2UKK1NFTEVDVCBo YXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyJywg J3N2YXJ0ZXN0LnZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykK KworRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIxOworRFJPUCBTQ0hFTUEgc3ZhcnRlc3Q7CitE Uk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9yZWFkZXI7CistLQorLS0gYmVnaW4gb2YgY2hlY2sg R1JBTlQgV0lUSCBHUkFOVCBPUFRJT04gYW5kIFJFVk9LRSBHUkFOVEVEIEJZCistLQorQ1JFQVRF IFJPTEUgcmVncmVzc192YXJpYWJsZV9yMTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVf cjI7CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgaW50OyAgICAgIC0tdmFyMSB3aWxsIG93bmVkIGJ5IHJlZ3Jlc3NfdmFyaWFibGVf b3duZXIKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVf cjEgV0lUSCBHUkFOVCBPUFRJT047CitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IxOwor R1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMiBXSVRI IEdSQU5UIE9QVElPTjsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRUxFQ1QgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1YmxpYy52YXIxJywg J1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCAncHVibGljLnZh cjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworUkVWT0tFIEFM TCBQUklWSUxFR0VTIE9OIFZBUklBQkxFIHZhcjEgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3IxIENB U0NBREU7CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zh cmlhYmxlX3IxJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCisgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBm CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jl c3NfdmFyaWFibGVfcjInLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIGYKKygxIHJvdykKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0dS QU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CitTRUxF Q1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywg J3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisK K1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVf cjInLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJv dykKKworUkVWT0tFIEFMTCBPTiBWQVJJQUJMRSB2YXIxIEZST00gcmVncmVzc192YXJpYWJsZV9y MiBHUkFOVEVEIEJZIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitTRUxFQ1QgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1YmxpYy52YXIxJywg J1NFTEVDVCcpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCAncHVibGljLnZh cjEnLCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9vd25lcicsICdw dWJsaWMudmFyMScsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZp bGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitT RVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0KKy0tIGVuZCBvZiBj aGVjayBHUkFOVCBXSVRIIEdSQU5UIE9QVElPTiBhbmQgUkVWT0tFIEdSQU5URUQgQlkKKy0tCist LQorLS0gYmVnaW4gb2YgdGVzdDogR1JBTlR8UkVWT0tFIFNFTEVDVHxVUERBVEUgT04gQUxMIFZB UklBQkxFUyBJTiBTQ0hFTUEKKy0tCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0OworR1JBTlQgQUxM IE9OIFNDSEVNQSBzdmFydGVzdCBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworU0VUIFJPTEUg VE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIx IEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIyIEFTIGludDsKK0dSQU5UIFNF TEVDVCBPTiBBTEwgVkFSSUFCTEVTIElOIFNDSEVNQSBzdmFydGVzdCBUTyByZWdyZXNzX3Zhcmlh YmxlX3IxOworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192 YXJpYWJsZV9yMScsICdzdmFydGVzdC52YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Np b25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K KyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3Jl Z3Jlc3NfdmFyaWFibGVfcjEnLCAnc3ZhcnRlc3QudmFyMicsICdTRUxFQ1QnKTsgLS0gdAorIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgdAorKDEgcm93KQorCitSRVZPS0UgU0VMRUNUIE9OIEFMTCBWQVJJQUJMRVMgSU4g U0NIRU1BIHN2YXJ0ZXN0IEZST00gcmVncmVzc192YXJpYWJsZV9yMTsKK1NFTEVDVCBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAnc3ZhcnRlc3Qu dmFyMScsICdTRUxFQ1QnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1Qg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3N2 YXJ0ZXN0LnZhcjInLCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKwor U0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMTsKK0RST1Ag VkFSSUFCTEUgc3ZhcnRlc3QudmFyMjsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0OworLS0KKy0tIGVu ZCBvZiB0ZXN0OiBHUkFOVHxSRVZPS0UgU0VMRUNUfFVQREFURSBPTiBBTEwgVkFSSUFCTEVTIElO IFNDSEVNQQorLS0KKy0tCistLSBmdW5jdGlvbiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UgaGF2ZSB2YXJpb3VzIGtpbmQgb2Ygc2lnbmF0dXJlLgorLS0gdGhlIGZvbGxvd2luZyBhcmUg ZXh0ZW5zaXZlIHRlc3QgZm9yIGl0LgorLS0KK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI7CitDUkVBVEUgVkFSSUFCTEUgcHVibGljLnZhcjEgQVMgaW50OworU0VUIHNlYXJjaF9w YXRoIFRPIHB1YmxpYzsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBwdWJsaWMudmFyMSBUTyBy ZWdyZXNzX3ZhcmlhYmxlX3IxOworR1JBTlQgU0VMRUNULCBVUERBVEUgT04gVkFSSUFCTEUgcHVi bGljLnZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMjsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGljLnZhcjEnLCAnU0VM RUNUJyk7CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGljLm5vdGV4aXN0cycs ICdTRUxFQ1QnKSBJUyBOVUxMOworID9jb2x1bW4/IAorLS0tLS0tLS0tLQorIHQKKygxIHJvdykK KworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9yMTsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAndmFyMScsICdTRUxFQ1Qn KTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3ZhcjEnLCAnVVBEQVRFJyk7 IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsICd2YXIxJywgJ1NFTEVDVCcpOyAt LSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCAndmFyMScsICdVUERBVEUnKTsgLS0g dAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlKCd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cp CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3ZhcjEnLCAnVVBEQVRF Jyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIG9pZCBBUyB2YXJpZAor ICBGUk9NIHBnX3ZhcmlhYmxlCisgIFdIRVJFIHZhcm5hbWUgPSAndmFyMScgQU5EIHZhcm5hbWVz cGFjZSA9ICdwdWJsaWMnOjpyZWduYW1lc3BhY2UgXGdzZXQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UoJ3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQK KygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgndmFyMScs ICdVUERBVEUnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgOnZhcmlkLCAn U0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNz aW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsIDp2YXJpZCwgJ1VQ REFURScpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCA6dmFyaWQsICdTRUxF Q1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgOnZhcmlkLCAnVVBEQVRF Jyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSg6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAor KDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKDp2YXJpZCwg J1VQREFURScpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnOjpyZWdyb2xlLCAn dmFyMScsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1Qg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJzo6cmVn cm9sZSwgJ3ZhcjEnLCAnVVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKwor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9y Mic6OnJlZ3JvbGUsICd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSBy b3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFy aWFibGVfcjInOjpyZWdyb2xlLCAndmFyMScsICdVUERBVEUnKTsgLS0gdAorIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg dAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdy ZXNzX3ZhcmlhYmxlX3IxJzo6cmVncm9sZSwgOnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSgncmVncmVzc192YXJpYWJsZV9yMSc6OnJlZ3JvbGUsIDp2YXJpZCwgJ1VQREFURScpOyAtLSBm CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInOjpyZWdyb2xlLCA6dmFyaWQsICdTRUxFQ1Qn KTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJzo6cmVncm9sZSwgOnZhcmlkLCAn VVBEQVRFJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworLS0KKy0tIGVuZCBvZiBm dW5jdGlvbiBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgdGVzdHMuCistLQorU0VUIFJP TEUgVE8gREVGQVVMVDsKK1NFVCBzZWFyY2hfcGF0aCBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJM RSBwdWJsaWMudmFyMTsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IxOworRFJPUCBST0xF IHJlZ3Jlc3NfdmFyaWFibGVfcjI7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVz dC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IDFlZGQ5ZTQ1ZWJiLi43ZjRmNzRlZWVh YyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9z cmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC0xMTEsNyArMTExLDcgQEAgdGVz dDoganNvbiBqc29uYiBqc29uX2VuY29kaW5nIGpzb25wYXRoIGpzb25wYXRoX2VuY29kaW5nIGpz b25iX2pzb25wYXRoIHNxbGpzb24KICMgTkI6IHRlbXAuc3FsIGRvZXMgYSByZWNvbm5lY3Qgd2hp Y2ggdHJhbnNpZW50bHkgdXNlcyAyIGNvbm5lY3Rpb25zLAogIyBzbyBrZWVwIHRoaXMgcGFyYWxs ZWwgZ3JvdXAgdG8gYXQgbW9zdCAxOSB0ZXN0cwogIyAtLS0tLS0tLS0tCi10ZXN0OiBwbGFuY2Fj aGUgbGltaXQgcGxwZ3NxbCBjb3B5MiB0ZW1wIGRvbWFpbiByYW5nZWZ1bmNzIHByZXBhcmUgY29u dmVyc2lvbiB0cnVuY2F0ZSBhbHRlcl90YWJsZSBzZXF1ZW5jZSBwb2x5bW9ycGhpc20gcm93dHlw ZXMgcmV0dXJuaW5nIGxhcmdlb2JqZWN0IHdpdGggeG1sCit0ZXN0OiBwbGFuY2FjaGUgbGltaXQg cGxwZ3NxbCBjb3B5MiB0ZW1wIGRvbWFpbiByYW5nZWZ1bmNzIHByZXBhcmUgY29udmVyc2lvbiB0 cnVuY2F0ZSBhbHRlcl90YWJsZSBzZXF1ZW5jZSBwb2x5bW9ycGhpc20gcm93dHlwZXMgcmV0dXJu aW5nIGxhcmdlb2JqZWN0IHdpdGggeG1sIHNlc3Npb25fdmFyaWFibGVzCiAKICMgLS0tLS0tLS0t LQogIyBBbm90aGVyIGdyb3VwIG9mIHBhcmFsbGVsIHRlc3RzCmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9kZXBlbmRlbmN5LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVu ZGVuY3kuc3FsCmluZGV4IDhkNzRlZDcxMjJjLi42YzE4YjdmODQwYSAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvZGVwZW5kZW5jeS5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvZGVwZW5kZW5jeS5zcWwKQEAgLTExNCwzICsxMTQsMTcgQEAgRFJPUCBVU0VSIHJlZ3Jlc3Nf ZGVwX3VzZXIyOwogRFJPUCBPV05FRCBCWSByZWdyZXNzX2RlcF91c2VyMiwgcmVncmVzc19kZXBf dXNlcjA7CiBEUk9QIFVTRVIgcmVncmVzc19kZXBfdXNlcjI7CiBEUk9QIFVTRVIgcmVncmVzc19k ZXBfdXNlcjA7CisKKy0tIGRlcGVuZGVuY3kgb24gdHlwZQorQ1JFQVRFIERPTUFJTiB2YXJkb21h aW4gQVMgaW50OworQ1JFQVRFIFRZUEUgdmFydHlwZSBBUyAoYSBpbnQsIGIgaW50LCBjIHZhcmRv bWFpbik7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJ0eXBlOworCistLSBzaG91bGQgZmFp bAorRFJPUCBET01BSU4gdmFyZG9tYWluOworRFJPUCBUWVBFIHZhcnR5cGU7CisKKy0tIGNsZWFu IHVwCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZUEUgdmFydHlwZTsKK0RST1AgRE9NQUlO IHZhcmRvbWFpbjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcHNxbC5zcWwKaW5kZXggYzUwMjFmYzBiMTMuLjY2NmVkZGI2 MzJkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbApAQCAtMTYzMSw2ICsxNjMxLDE5IEBAIENPTU1JVDsK IERST1AgVEFCTEUgYmxhOwogRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogCistLSBzZXNzaW9u IHZhcmlhYmxlIHRlc3QKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitTRVQg Uk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg dmFyY2hhciBDT0xMQVRFICJDIjsKK1xkVisgdmFyMQorR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxF IHZhcjEgVE8gUFVCTElDOworQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIGRlc2Ny aXB0aW9uJzsKK1xkVisgdmFyMQorRFJPUCBWQVJJQUJMRSB2YXIxOworCitTRVQgUk9MRSBUTyBE RUZBVUxUOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CisKIC0tIGNoZWNrIGRl c2NyaWJpbmcgaW52YWxpZCBtdWx0aXBhcnQgbmFtZXMKIFxkQSByZWdyZXNzaW9uLmhlYXAKIFxk QSBub25lc3VjaC5oZWFwCkBAIC0xNzQyLDYgKzE3NTUsOSBAQCBEUk9QIEZVTkNUSU9OIHBzcWxf ZXJyb3I7CiBcZFggbm9uZXN1Y2gucHVibGljLmZ1bmNfZGVwc19zdGF0CiBcZHkgcmVncmVzc2lv bi5teWV2dAogXGR5IG5vbmVzdWNoLm15ZXZ0CitcZFYgaG9zdC5yZWdyZXNzaW9uLnB1YmxpYy52 YXIKK1xkViByZWdyZXNzaW9ufG15ZGIucHVibGljLnZhcgorXGRWIG5vbmVzdWNoLnB1YmxpYy52 YXIKIAogLS0gY2hlY2sgdGhhdCBkb3RzIHdpdGhpbiBxdW90ZWQgbmFtZSBzZWdtZW50cyBhcmUg bm90IGNvdW50ZWQKIFxkQSAibm8uc3VjaC5hY2Nlc3MubWV0aG9kIgpAQCAtMTc4Myw2ICsxNzk5 LDggQEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9yOwogXGR4ICJuby5zdWNoLmluc3RhbGxlZC5l eHRlbnNpb24iCiBcZFggIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKIFxkeSAibm8uc3Vj aC5ldmVudC50cmlnZ2VyIgorXGRWICJuby5zdWNoLnZhcmlhYmxlIgorCiAKIC0tIGFnYWluLCBi dXQgd2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGRBICJuby5zdWNoLnNjaGVt YSIuIm5vLnN1Y2guYWNjZXNzLm1ldGhvZCIKQEAgLTE4MjMsNiArMTg0MSw3IEBAIERST1AgRlVO Q1RJT04gcHNxbF9lcnJvcjsKIFxkeCAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmluc3RhbGxl ZC5leHRlbnNpb24iCiBcZFggIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0 aXN0aWNzIgogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKK1xk ViAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgogCiAtLSBhZ2FpbiwgYnV0IHdp dGggY3VycmVudCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxk dCByZWdyZXNzaW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRpb24iCkBA IC0xODQ3LDYgKzE4NjYsNyBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZFAgcmVncmVz c2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnBhcnRpdGlvbmVkLnJlbGF0aW9uIgogXGRU IHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5kYXRhLnR5cGUiCiBcZFggcmVn cmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCitc ZFYgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgogCiAtLSBh Z2FpbiwgYnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmlj YXRpb25zLgogXGR0ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNo LnRhYmxlLnJlbGF0aW9uIgpAQCAtMTg3Miw2ICsxODkyLDcgQEAgRFJPUCBGVU5DVElPTiBwc3Fs X2Vycm9yOwogXGRQICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNo LnBhcnRpdGlvbmVkLnJlbGF0aW9uIgogXGRUICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5z Y2hlbWEiLiJuby5zdWNoLmRhdGEudHlwZSIKIFxkWCAibm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1 Y2guc2NoZW1hIi4ibm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgorXGRWICJuby5zdWNoLmRh dGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgogCiAtLSBjaGVjayBc ZHJnIGFuZCBcZHUKIENSRUFURSBST0xFIHJlZ3Jlc3NfZHVfcm9sZTA7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAuLmVlYjBmOTRjYTNjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0wLDAgKzEsMjk3IEBACitDUkVBVEUg Uk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworCitTRVQgbG9nX3N0YXRlbWVudCBUTyBkZGw7 CisKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworCistLSBz aG91bGQgZmFpbCwgcHNldWRvdHlwZXMgYXJlIG5vdCBhbGxvd2VkCitDUkVBVEUgVkFSSUFCTEUg dmFyMiBBUyBhbnllbGVtZW50OworCistLSBzaG91bGQgYmUgb2ssIGRvIG5vdGhpbmcKK0RST1Ag VkFSSUFCTEUgSUYgRVhJU1RTIHZhcjI7CisKKy0tIGRvIG5vdGhpbmcKK0NSRUFURSBWQVJJQUJM RSBJRiBOT1QgRVhJU1RTIHZhcjEgQVMgaW50OworCistLSBzaG91bGQgZmFpbAorQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgaW50OworCistLSBzaG91bGQgYmUgb2sKK0RST1AgVkFSSUFCTEUgSUYg RVhJU1RTIHZhcjE7CisKKy0tIHRoZSB2YXJpYWJsZSBjYW4gdXNlIGNvbXBvc2l0ZSB0eXBlcwor Q1JFQVRFIFRBQkxFIHQxIChhIGludCwgYiBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg dDE7CisKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRBQkxFIHQxOworCistLSBzaG91bGQgYmUgb2sK K0FMVEVSIFRBQkxFIHQxIEFERCBDT0xVTU4gYyBpbnQ7CisKKy0tIHNob3VsZCBmYWlsCitBTFRF UiBUQUJMRSB0MSBBTFRFUiBDT0xVTU4gYiBUWVBFIG51bWVyaWM7CisKK0RST1AgVkFSSUFCTEUg dmFyMTsKK0RST1AgVEFCTEUgdDE7CisKK0NSRUFURSBUWVBFIHQxIEFTIChhIGludCwgYiBpbnQp OworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdDE7CisKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRZ UEUgdDE7CisKKy0tIHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBBREQgQVRUUklCVVRFIGMg aW50OworCistLSBzaG91bGQgZmFpbAorQUxURVIgVFlQRSB0MSBBTFRFUiBBVFRSSUJVVEUgYiAg VFlQRSBudW1lcmljOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZUEUgdDE7CisKK1NF VCBsb2dfc3RhdGVtZW50IFRPIGRlZmF1bHQ7CisKK0NSRUFURSBET01BSU4gdGVzdHZhcl9kb21h aW4gQVMgaW50OworQ1JFQVRFIFRZUEUgdGVzdHZhcl90eXBlIEFTIChhIHRlc3R2YXJfZG9tYWlu KTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGVzdHZhcl9kb21haW47CisKKy0tIHNob3Vs ZCBmYWlsCitBTFRFUiBET01BSU4gdGVzdHZhcl9kb21haW4gQUREIENIRUNLKHZhbHVlIDw+IDEw MCk7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGVz dHZhcl90eXBlOworCistLSBzaG91bGQgZmFpbAorQUxURVIgRE9NQUlOIHRlc3R2YXJfZG9tYWlu IEFERCBDSEVDSyh2YWx1ZSA8PiAxMDApOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHNo b3VsZCBiZSBvaworQUxURVIgRE9NQUlOIHRlc3R2YXJfZG9tYWluIEFERCBDSEVDSyh2YWx1ZSA8 PiAxMDApOworCitEUk9QIFRZUEUgdGVzdHZhcl90eXBlOworRFJPUCBUWVBFIHRlc3R2YXJfZG9t YWluOworCistLSBjaGVjayBldmVudCB0cmlnZ2VyIHN1cHBvcnQKK0NSRUFURSBPUiBSRVBMQUNF IEZVTkNUSU9OIHN2YXJfZXZlbnRfdHJpZ2dlcl9yZXBvcnRfZHJvcHBlZCgpCitSRVRVUk5TIGV2 ZW50X3RyaWdnZXIKK0FTICQkCitERUNMQVJFIHIgcmVjb3JkOworQkVHSU4KKyAgRk9SIHIgSU4g U0VMRUNUICogZnJvbSBwZ19ldmVudF90cmlnZ2VyX2Ryb3BwZWRfb2JqZWN0cygpCisgIExPT1AK KyAgICBDT05USU5VRSBXSEVOIE5PVCByLm5vcm1hbCBBTkQgTk9UIHIub3JpZ2luYWw7CisKKyAg ICBSQUlTRSBOT1RJQ0UKKyAgICAgICAnTk9STUFMOiBvcmlnPSUgbm9ybWFsPSUgaXN0ZW1wPSUg dHlwZT0lIGlkZW50aXR5PSUgbmFtZT0lIGFyZ3M9JScsCisgICAgICAgci5vcmlnaW5hbCwgci5u b3JtYWwsIHIuaXNfdGVtcG9yYXJ5LCByLm9iamVjdF90eXBlLAorICAgICAgIHIub2JqZWN0X2lk ZW50aXR5LCByLmFkZHJlc3NfbmFtZXMsIHIuYWRkcmVzc19hcmdzOworICBFTkQgTE9PUDsKK0VO RDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBFVkVOVCBUUklHR0VSIHN2YXJfcmVn cmVzc19ldmVudF90cmlnZ2VyX3JlcG9ydF9kcm9wcGVkIE9OIHNxbF9kcm9wCisgIFdIRU4gVEFH IElOICgnRFJPUCBWQVJJQUJMRScpCisgIEVYRUNVVEUgUFJPQ0VEVVJFIHN2YXJfZXZlbnRfdHJp Z2dlcl9yZXBvcnRfZHJvcHBlZCgpOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitE Uk9QIFZBUklBQkxFIHZhcjE7CisKK0RST1AgRVZFTlQgVFJJR0dFUiBzdmFyX3JlZ3Jlc3NfZXZl bnRfdHJpZ2dlcl9yZXBvcnRfZHJvcHBlZDsKKworLS0gY2hlY2sgY29tbWVudCBvbiB2YXJpYWJs ZQorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIx IElTICdzb21lIHZhcmlhYmxlIGNvbW1lbnQnOworU0VMRUNUIHBnX2NhdGFsb2cub2JqX2Rlc2Ny aXB0aW9uKG9pZCwgJ3BnX3ZhcmlhYmxlJykgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1l ID0gJ3ZhcjEnOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIGNoZWNrIHRoZSBvYmplY3Qg YWRkcmVzcyBvZiBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBTQ0hFTUEgdmFydGVzdDE7 CitDUkVBVEUgU0NIRU1BIHZhcnRlc3QyOworQ1JFQVRFIFZBUklBQkxFIHZhcnRlc3QxLnN2YXJ0 ZXN0X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcnRlc3QyLnN2YXJ0ZXN0X3ZhcjEg QVMgaW50OworCitTRUxFQ1QKKyAgZS52YXJuYW1lLAorICBwZ19kZXNjcmliZV9vYmplY3QoJ3Bn X3ZhcmlhYmxlJzo6cmVnY2xhc3MsIGUub2lkLCAwKSBhcyBkZXNjciwKKyAgYi50eXBlLCBiLm9i amVjdF9uYW1lcywgYi5vYmplY3RfYXJncywKKyAgcGdfaWRlbnRpZnlfb2JqZWN0KGEuY2xhc3Np ZCwgYS5vYmppZCwgYS5vYmpzdWJpZCkgYXMgaWRlbnQKK0ZST00gcGdfdmFyaWFibGUgYXMgZSwK KyAgTEFURVJBTCBwZ19pZGVudGlmeV9vYmplY3RfYXNfYWRkcmVzcygncGdfdmFyaWFibGUnOjpy ZWdjbGFzcywgZS5vaWQsIDApIGFzIGIsCisgIExBVEVSQUwgcGdfZ2V0X29iamVjdF9hZGRyZXNz KGIudHlwZSwgYi5vYmplY3RfbmFtZXMsIGIub2JqZWN0X2FyZ3MpIGFzIGEKK1dIRVJFIGUudmFy bmFtZSBMSUtFICdzdmFydGVzdF92YXIlJzsKKworRFJPUCBTQ0hFTUEgdmFydGVzdDEgQ0FTQ0FE RTsKK0RST1AgU0NIRU1BIHZhcnRlc3QyIENBU0NBREU7CisKKy0tIGNoZWNrIGFjY2VzcyByaWdo dHMgYW5kIHN1cHBvcnRlZCBBTFRFUgorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKK0dSQU5UIEFM TCBPTiBTQ0hFTUEgc3ZhcnRlc3QgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKKworQ1JFQVRF IFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50OworCitDUkVBVEUgUk9MRSByZWdyZXNzX3Zh cmlhYmxlX3JlYWRlcjsKKworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEg VE8gcmVncmVzc192YXJpYWJsZV9yZWFkZXI7CitSRVZPS0UgQUxMIE9OIFZBUklBQkxFIHN2YXJ0 ZXN0LnZhcjEgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKworQUxURVIgVkFSSUFCTEUg c3ZhcnRlc3QudmFyMSBPV05FUiBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQUxURVIgVkFS SUFCTEUgc3ZhcnRlc3QudmFyMSBSRU5BTUUgVE8gdmFyeHg7CitBTFRFUiBWQVJJQUJMRSBzdmFy dGVzdC52YXJ4eCBTRVQgU0NIRU1BIHB1YmxpYzsKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMudmFy eHg7CisKK0FMVEVSIERFRkFVTFQgUFJJVklMRUdFUworICAgRk9SIFJPTEUgcmVncmVzc192YXJp YWJsZV9vd25lcgorICAgSU4gU0NIRU1BIHN2YXJ0ZXN0CisgICBHUkFOVCBTRUxFQ1QgT04gVkFS SUFCTEVTIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworCistLSBjcmVhdGluZyB2YXJpYWJs ZSB3aXRoIGRlZmF1bHQgcHJpdmlsZWdlcworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9v d25lcjsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIGludDsKK1NFVCBST0xFIFRP IERFRkFVTFQ7CisKKy0tIHNob3VsZCBiZSBvay4gc2luY2UgQUxURVIgREVGQVVMVCBQUklWSUxF R0VTCistLSBhbGxvdyByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlciB0byBoYXZlIFNFTEVDVCBwcml2 aWxlZGdlCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zh cmlhYmxlX3JlYWRlcicsICdzdmFydGVzdC52YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisKK0RST1Ag VkFSSUFCTEUgc3ZhcnRlc3QudmFyMTsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0OworRFJPUCBST0xF IHJlZ3Jlc3NfdmFyaWFibGVfcmVhZGVyOworCistLQorLS0gYmVnaW4gb2YgY2hlY2sgR1JBTlQg V0lUSCBHUkFOVCBPUFRJT04gYW5kIFJFVk9LRSBHUkFOVEVEIEJZCistLQorQ1JFQVRFIFJPTEUg cmVncmVzc192YXJpYWJsZV9yMTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CisK K1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyBpbnQ7ICAgICAgLS12YXIxIHdpbGwgb3duZWQgYnkgcmVncmVzc192YXJpYWJsZV9vd25l cgorCitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxlX3Ix IFdJVEggR1JBTlQgT1BUSU9OOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9yMTsKK0dS QU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjIgV0lUSCBH UkFOVCBPUFRJT047CitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRUxFQ1QgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1YmxpYy52YXIxJywg J1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdy ZWdyZXNzX3ZhcmlhYmxlX3IyJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisKK1JF Vk9LRSBBTEwgUFJJVklMRUdFUyBPTiBWQVJJQUJMRSB2YXIxIEZST00gcmVncmVzc192YXJpYWJs ZV9yMSBDQVNDQURFOworCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdy ZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCitTRUxF Q1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywg J3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFy aWFibGVfb3duZXI7CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX3Zh cmlhYmxlX3IyOworCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdy ZXNzX3ZhcmlhYmxlX3IxJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCitTRUxFQ1Qg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgJ3B1 YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisKK1JFVk9LRSBBTEwgT04gVkFSSUFCTEUgdmFy MSBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVfcjIgR1JBTlRFRCBCWSByZWdyZXNzX3ZhcmlhYmxlX293 bmVyOworCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zh cmlhYmxlX3IxJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCitTRUxFQ1QgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgJ3B1YmxpYy52 YXIxJywgJ1NFTEVDVCcpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX293bmVyJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAt LSB0CitTRVQgUk9MRSBUTyBERUZBVUxUOworCitEUk9QIFZBUklBQkxFIHZhcjE7CistLQorLS0g ZW5kIG9mIGNoZWNrIEdSQU5UIFdJVEggR1JBTlQgT1BUSU9OIGFuZCBSRVZPS0UgR1JBTlRFRCBC WQorLS0KKworLS0KKy0tIGJlZ2luIG9mIHRlc3Q6IEdSQU5UfFJFVk9LRSBTRUxFQ1R8VVBEQVRF IE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BCistLQorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsK K0dSQU5UIEFMTCBPTiBTQ0hFTUEgc3ZhcnRlc3QgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsK K1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CisKK0NSRUFURSBWQVJJQUJMRSBz dmFydGVzdC52YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIyIEFTIGlu dDsKKworR1JBTlQgU0VMRUNUIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIHN2YXJ0ZXN0IFRP IHJlZ3Jlc3NfdmFyaWFibGVfcjE7CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAnc3ZhcnRlc3QudmFyMScsICdTRUxFQ1QnKTsg LS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJp YWJsZV9yMScsICdzdmFydGVzdC52YXIyJywgJ1NFTEVDVCcpOyAtLSB0CisKK1JFVk9LRSBTRUxF Q1QgT04gQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgc3ZhcnRlc3QgRlJPTSByZWdyZXNzX3Zhcmlh YmxlX3IxOworCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNz X3ZhcmlhYmxlX3IxJywgJ3N2YXJ0ZXN0LnZhcjEnLCAnU0VMRUNUJyk7IC0tIGYKK1NFTEVDVCBo YXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAnc3Zh cnRlc3QudmFyMicsICdTRUxFQ1QnKTsgLS0gZgorCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJP UCBWQVJJQUJMRSBzdmFydGVzdC52YXIxOworRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIyOwor RFJPUCBTQ0hFTUEgc3ZhcnRlc3Q7CistLQorLS0gZW5kIG9mIHRlc3Q6IEdSQU5UfFJFVk9LRSBT RUxFQ1R8VVBEQVRFIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BCistLQorCistLQorLS0gZnVu Y3Rpb24gaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIGhhdmUgdmFyaW91cyBraW5kIG9m IHNpZ25hdHVyZS4KKy0tIHRoZSBmb2xsb3dpbmcgYXJlIGV4dGVuc2l2ZSB0ZXN0IGZvciBpdC4K Ky0tCitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworCitDUkVBVEUgVkFSSUFC TEUgcHVibGljLnZhcjEgQVMgaW50OworCitTRVQgc2VhcmNoX3BhdGggVE8gcHVibGljOworCitH UkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgcHVibGljLnZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9y MTsKK0dSQU5UIFNFTEVDVCwgVVBEQVRFIE9OIFZBUklBQkxFIHB1YmxpYy52YXIxIFRPIHJlZ3Jl c3NfdmFyaWFibGVfcjI7CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Uo J3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7CitTRUxFQ1Qg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1 YmxpYy5ub3RleGlzdHMnLCAnU0VMRUNUJykgSVMgTlVMTDsKKworU0VUIFJPTEUgVE8gcmVncmVz c192YXJpYWJsZV9yMTsKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgn cmVncmVzc192YXJpYWJsZV9yMScsICd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3ZhcjEn LCAnVVBEQVRFJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Uo J3JlZ3Jlc3NfdmFyaWFibGVfcjInLCAndmFyMScsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsICd2YXIx JywgJ1VQREFURScpOyAtLSB0CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UoJ3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3ZhcjEnLCAnVVBEQVRFJyk7IC0tIGYKKworU0VMRUNUIG9pZCBBUyB2YXJpZAor ICBGUk9NIHBnX3ZhcmlhYmxlCisgIFdIRVJFIHZhcm5hbWUgPSAndmFyMScgQU5EIHZhcm5hbWVz cGFjZSA9ICdwdWJsaWMnOjpyZWduYW1lc3BhY2UgXGdzZXQKKworU0VMRUNUIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSgndmFyMScsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgndmFyMScsICdVUERBVEUnKTsgLS0gZgorCitTRUxF Q1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywg OnZhcmlkLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCA6dmFyaWQsICdVUERBVEUnKTsgLS0gZgorU0VM RUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMics IDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIHQKKwor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSg6dmFyaWQsICdTRUxFQ1QnKTsg LS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSg6dmFyaWQsICdVUERB VEUnKTsgLS0gZgorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdy ZXNzX3ZhcmlhYmxlX3IxJzo6cmVncm9sZSwgJ3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVD VCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnOjpy ZWdyb2xlLCAndmFyMScsICdVUERBVEUnKTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMic6OnJlZ3JvbGUsICd2YXIxJywgJ1NF TEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdy ZXNzX3ZhcmlhYmxlX3IyJzo6cmVncm9sZSwgJ3ZhcjEnLCAnVVBEQVRFJyk7IC0tIHQKKworU0VM RUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMSc6 OnJlZ3JvbGUsIDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJzo6cmVncm9sZSwgOnZhcmlkLCAn VVBEQVRFJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3Jl Z3Jlc3NfdmFyaWFibGVfcjInOjpyZWdyb2xlLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorU0VM RUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMic6 OnJlZ3JvbGUsIDp2YXJpZCwgJ1VQREFURScpOyAtLSB0CistLQorLS0gZW5kIG9mIGZ1bmN0aW9u IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSB0ZXN0cy4KKy0tCisKK1NFVCBST0xFIFRP IERFRkFVTFQ7CitTRVQgc2VhcmNoX3BhdGggVE8gREVGQVVMVDsKKworRFJPUCBWQVJJQUJMRSBw dWJsaWMudmFyMTsKKworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitEUk9QIFJPTEUg cmVncmVzc192YXJpYWJsZV9yMjsKKworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7 CmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IGUxYzRmOTEzZjg0Li5jYmU1OWZiMDcwOCAx MDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rv b2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTUzNiw2ICs1MzYsNyBAQCBDcmVhdGVSb2xl U3RtdAogQ3JlYXRlU2NoZW1hU3RtdAogQ3JlYXRlU2NoZW1hU3RtdENvbnRleHQKIENyZWF0ZVNl cVN0bXQKK0NyZWF0ZVNlc3Npb25WYXJTdG10CiBDcmVhdGVTdGF0c1N0bXQKIENyZWF0ZVN0bXQK IENyZWF0ZVN0bXRDb250ZXh0CkBAIC04NzYsNiArODc3LDcgQEAgRm9ybURhdGFfcGdfdHNfcGFy c2VyCiBGb3JtRGF0YV9wZ190c190ZW1wbGF0ZQogRm9ybURhdGFfcGdfdHlwZQogRm9ybURhdGFf cGdfdXNlcl9tYXBwaW5nCitGb3JtRGF0YV9wZ192YXJpYWJsZQogRm9ybUV4dHJhRGF0YV9wZ19h dHRyaWJ1dGUKIEZvcm1fcGdfYWdncmVnYXRlCiBGb3JtX3BnX2FtCkBAIC05MzUsNiArOTM3LDcg QEAgRm9ybV9wZ190c19wYXJzZXIKIEZvcm1fcGdfdHNfdGVtcGxhdGUKIEZvcm1fcGdfdHlwZQog Rm9ybV9wZ191c2VyX21hcHBpbmcKK0Zvcm1fcGdfdmFyaWFibGUKIEZvcm1hdE5vZGUKIEZyZWVC bG9ja051bWJlckFycmF5CiBGcmVlTGlzdERhdGEKQEAgLTMwODgsNiArMzA5MSw3IEBAIFZhclN0 cmluZwogVmFyU3RyaW5nU29ydFN1cHBvcnQKIFZhcmlhYmxlCiBWYXJpYWJsZUFzc2lnbkhvb2sK K1ZhcmlhYmxlSW5mbwogVmFyaWFibGVTZXRLaW5kCiBWYXJpYWJsZVNldFN0bXQKIFZhcmlhYmxl U2hvd1N0bXQKLS0gCjIuNDcuMQoK --000000000000f297a7062b2456dc--