Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vwXDk-00DF7A-1a for pgsql-hackers@arkaria.postgresql.org; Sun, 01 Mar 2026 03:11:53 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vwXDi-00CBj9-1C for pgsql-hackers@arkaria.postgresql.org; Sun, 01 Mar 2026 03:11:50 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vwXDh-00CBiu-0y for pgsql-hackers@lists.postgresql.org; Sun, 01 Mar 2026 03:11:50 +0000 Received: from mail-yx1-xb12a.google.com ([2607:f8b0:4864:20::b12a]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1vwXDd-00000001sV5-2f3B for pgsql-hackers@lists.postgresql.org; Sun, 01 Mar 2026 03:11:48 +0000 Received: by mail-yx1-xb12a.google.com with SMTP id 956f58d0204a3-64caaacb9bcso3212135d50.1 for ; Sat, 28 Feb 2026 19:11:46 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1772334705; cv=none; d=google.com; s=arc-20240605; b=hQtsOV4x7P7iu9hbQ/yYMZ12wkEVhrRK8ig9QxCsV72PTyFyGFIGO6pQofMlFk5ud6 At8QWJzB8AsfPvozhUE70KN/Pw2t1h8+CEPnRFOFIgQEFNzHs2nhngOOiuBnuUlT25C1 t5AMubztCwKk4Gtl1nm8UTUlIWlOx7z7T/D0t5iSxxQfiC53lqpEuIDh5Mv6oI/PvaOl yUC5P4FTIak9uO51J/8snrKc8s4xzdR54bVY+QNVFPUtrUETYGrAs9l0qwgNoHOGke+6 8r0KnPNsQASn3QfC57d03LluMKg5IJzL/z9WdpP/lL8ZxQam98wcyDq/1YdaA+5MY8YZ ArVw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=9LxQC819blKazNNNsfy9PuFPEMMHSghHLQzsoWJsWyw=; fh=zlOsQy3EcNuUbrxJEWMwmI1vSsE0KlqtXUw2FE11QCM=; b=JHf+qZ89fkfTXLwUzEeCx+/xVjFOA4M89s+Fp7pnqCF3fAZu7cVQp8Qk4hKmcWhZIz sUnIAnFmydJpwkuYe8ee9Bmnr8TGBejeQRNPXQbuXbc/fE1WbIGqXBALkVU71SAWB3SY GWv4ZzGB4Pdwb1FRueqKfLiXkEv12/UZKIPVMPpsv48kcPuS1qoHIpagOsTWJ756SDeD Ee6veY2xX49Cimu7PZluWuzPa/wSot/3v3bYpCDUy8kqCDSVVw3ZNvvwV1PLpD/GpVCE DYE1Of+ZM1vTYb3xtWRjGiqSzA43xkwPRYymmvNIhvT+idskVxtf+7Pv4lBGYy0cMLY8 ZLeg==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772334705; x=1772939505; 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=9LxQC819blKazNNNsfy9PuFPEMMHSghHLQzsoWJsWyw=; b=B/I5dKRvoaFS7EYX3pcMfz42C6YUKmK2ohqDoTFy5IXGQUzHkQ77Kn0F2uNi4U0pWI T4BNBdgLsElj9wapTF9hHGlh6Kv2Ne/6y7XfYo8IubCV+VNVBPcOYKim53E9xe/E2b90 bJku1PwjS0FZuz/o1csTNDrD2m7NhAC/rN9vW1g1CmPPWo7T178G5Orgu7qrr6SAql3c nPSCrzo6b77GVM5EdDQ1+Oo/aplJiompAZs+ipXr/8FNRrhRtVRSIwFWMJzMKT6hfQ+A POkCnxlbDtcqz2A0JVYPBx445b4Nhg16MXqAWUSYeA3WUF8/su2cJekKTiaPmGYcKaqT yFfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772334705; x=1772939505; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=9LxQC819blKazNNNsfy9PuFPEMMHSghHLQzsoWJsWyw=; b=ZxtozQlQ1upvwrSqOeYV7xo64Yp1/ENAj5H5Wpk0eLALa0u/O8X7q2WgHgGAJa+Nb5 cmMXZkVybFTxJxscJrS8jIlDzeOxJa3K12ohnwiKzLiLSDMQi25T4mXHBrJWkhpbEhkk 2HP4pIHuq6wujUGnwgBEcQUZA2nHwrsz0+7a2Sj9y5YkRryHp433j13pC9ixbPnwDY7D e7JzTA1kBid87BwPsgb68qbInQj+kwGxWpmRO/goV0ERJO2dlEPzwtZolPKU0iCX1a9J /gKIRR9EcIwaQuS+Tzd8n7jn3yl958nrWSlW+xVyxI54stfzyPS19VmSIB+OVhZQSVlw TL+A== X-Forwarded-Encrypted: i=1; AJvYcCVHswjeOdnp0IuBlochQZLqkAlBm434oWQa7ZMGmPdQexQUkEqCCj4Uf5v0Bis5WCptPwLu3oDEn9rpQ6BB@lists.postgresql.org X-Gm-Message-State: AOJu0YzkTAZdlAOfJx3n/LSBEmQoi9O13ozMCIQJFoSJOUigT9bw9/Gt QCRFpkLBro95ZDOCb3+JCAcBJBTWfIOv93oc3G/h9TwT49wKKWgyAt9rRixEbuSlcNCTgQzYPD7 2Z2F5Fiki3vkMVRLiD6UAJtyCAAaJ9C8= X-Gm-Gg: ATEYQzxEDML0n02F+Sp5jJKzEZD2283LocHVmOnxzY4LZnSTKvkroJSJcGjFnX2EHeV dKdr+hYVTIraUjf/zWhBifdJ22G9ywRIe1Ae2eMqUCsnUmbAZkinCZv2wjOEoUqMUFhxqrxAgy/ uCTROZWh5fBfxH97CpIK+jq+PcvJocZBH9rCcR4vzMpDqNOR7/VXgO3Xb+yBB8JRdibeDX7drfV /VWMNa3tNscrMMPH6GzzlJ9JSPvwzodKT2pxZ2v07isO/pdkuLUB8k0lJY0z4jK7+OdezYN9Mld 38xxznzm/P4oOwJUWxCM19IRloNc+js4ffXQ7gc7LQ== X-Received: by 2002:a53:84d2:0:b0:64c:cfc8:6baf with SMTP id 956f58d0204a3-64ccfc87185mr1982860d50.4.1772334705474; Sat, 28 Feb 2026 19:11:45 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: vignesh C Date: Sun, 1 Mar 2026 08:41:30 +0530 X-Gm-Features: AaiRm53xL6chXnrWPJg822emv0y9quJdeSb-uFtm2h2bX2bms7GNU6_YpNRXZFk Message-ID: Subject: Re: Skipping schema changes in publication To: Nisha Moond Cc: shveta malik , Shlok Kyal , Amit Kapila , Ashutosh Sharma , "David G. Johnston" , Dilip Kumar , Peter Smith , "Zhijie Hou (Fujitsu)" , YeXiu <1518981153@qq.com>, Ian Lawrence Barwick , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000008b313a064bedd41f" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000008b313a064bedd41f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, 27 Feb 2026 at 17:01, Nisha Moond wrote: > > On Fri, Feb 27, 2026 at 12:10=E2=80=AFPM vignesh C = wrote: > > > > Rest of the comments are addressed in the attached v51 version. > > Thanks for the patches, I am still testing the patches, but sharing a > few initial review comments. > > 1) v51-0001: Bug in testcase - /t/037_rep_changes_except_table.pl > The test_except_root_partition() is invoked twice with values true and > false. However, from the logs it appears that both executions use > publish_via_partition_root =3D 1. > LOG output: > 138 2026-02-27 12:26:51.167 IST client backend[72317] > 037_rep_changes_except_table.pl LOG: statement: CREATE PUBLICATION > tap_pub_part FOR ALL TABLES EXCEPT TABLE (sch1.t1) WITH > (publish_via_partition_root =3D 1); > ... > ... > 238 2026-02-27 12:26:51.600 IST client backend[72369] > 037_rep_changes_except_table.pl LOG: statement: CREATE PUBLICATION > tap_pub_part FOR ALL TABLES EXCEPT TABLE (sch1.t1) WITH > (publish_via_partition_root =3D 1); > > It seems $pubviaroot is assigned using the argument count instead of > the argument value, which causes both runs to behave the same. > Fix is to replace the assignment as: > 27 - my $pubviaroot =3D @_; > 27 + my ($pubviaroot) =3D @_; Fixed > 2) v51-0001: File: src/backend/commands/tablecmds.c > > + ereport(ERROR, > + errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), > + errmsg("cannot attach table \"%s\" as partition because it is > referenced in publication \"%s\" EXCEPT clause", > + RelationGetRelationName(attachrel), pubnames.data), > + errdetail("The publication EXCEPT clause cannot contain tables that > are partitions."); > + errhint("Remove the table from the publication EXCEPT clause before > attaching it.")); > + } > > In the ereport() call, there appears to be a small typo. A comma > should follow errdetail() instead of a semicolon. Fixed > 3) v51-0002: File: src/backend/commands/publicationcmds.c > + > + /* Check that user is allowed to manipulate the publication tables. */ > + if (excepttables && !pubform->puballtables) > + ereport(ERROR, > + errcode(ERRCODE_OBJECT_NOT_IN_PREREQUISITE_STATE), > + errmsg("publication \"%s\" is defined as NON FOR ALL TABLES", > + NameStr(pubform->pubname)), > + errdetail("EXCEPT Tables cannot be added to or dropped from non FOR > ALL TABLES publications.")); > } > > It seems the check is for both SET and DROP cases, but this patch is > only for SET. Also, I find it a bit confusing, could be made clearer. > Suggestion: > - errmsg("publication \"%s\" is defined as NON FOR ALL TABLES", > + errmsg("publication \"%s\" is not defined as FOR ALL TABLES", > NameStr(pubform->pubname)), > - errdetail("EXCEPT Tables cannot be added to or dropped from non FOR > ALL TABLES publications.")); > + errdetail("EXCEPT TABLE cannot be used with publications that are > not defined as FOR ALL TABLES.")); Modified with slight changes to keep it inline with other error messages th= ere. > 4) v51-0002 and v51-003: > File: doc/src/sgml/ref/alter_publication.sgml > ... > - remove one or more tables/schemas from the publication. Note that ad= ding > - tables/schemas to a publication that is already subscribed to will > require an > + except tables/tables/schemas in the publication with the specified li= st; the > + existing except tables/ tables/schemas that were present in the publi= cation > ... > 4a) After adding =E2=80=9Cexcept tables=E2=80=9D as a third option, the s= lash based > formatting may be slightly confusing. It may be clearer to write as: > ... the existing except tables, tables, or schemas that were present in .= ... > ... The DROP clauses will remove one or more except > tables, tables, or schemas from the publication.... > > If the existing slash format is retained, there is a typo in "except > tables/ tables/schemas", extra space after tables/. Existing format was used, the typo issue was fixed. > 4b) Should we add examples for SET/DROP EXCEPT TABLE as well? Added them > 5) Inconsistency in EXCEPT TABLE syntax > In CREATE PUBLICATION, the syntax requires parentheses, for example > EXCEPT TABLE (t1, t2), whereas in SET and DROP it is accepted only > without parentheses, like - EXCEPT TABLE t1, t2; > > Should we keep the syntax consistent across all commands? I=E2=80=99ll look into this separately and share my analysis soon. The attached v53 version patch has the changes for the same. Also the comments from [1] have been addressed. [1] - https://www.postgresql.org/message-id/CAA4eK1L2LDps5AdtRYySQhmqSbKeUG= 2GinOKJCn7bvLEdKOoPg%40mail.gmail.com Regards, Vignesh --0000000000008b313a064bedd41f Content-Type: application/octet-stream; name="v53-0001-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Disposition: attachment; filename="v53-0001-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm7688ke0 RnJvbSAwYjk0N2I2NDQ2N2MyZTU1OTFlNWNkYWJmNGU4ZDg0ZDQ0ZDM2MGI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNoIEMgPHZpZ25lc2gyMUBnbWFpbC5jb20+CkRhdGU6 IFRodSwgMTkgRmViIDIwMjYgMjA6MTY6MzkgKzA1MzAKU3ViamVjdDogW1BBVENIIHY1MyAxLzNd IFNraXAgcHVibGlzaGluZyB0aGUgdGFibGVzIHNwZWNpZmllZCBpbiBFWENFUFQgVEFCTEUuCgpB IG5ldyAiRVhDRVBUIFRBQkxFIiBjbGF1c2UgZm9yIENSRUFURSBQVUJMSUNBVElPTiBhbGxvd3Mg b25lIG9yIG1vcmUKdGFibGVzIHRvIGJlIGV4Y2x1ZGVkLiBUaGUgcHVibGlzaGVyIHdpbGwgbm90 IHNlbmQgdGhlIGRhdGEgb2YgZXhjbHVkZWQKdGFibGVzIHRvIHRoZSBzdWJzY3JpYmVyLgoKVGhl IG5ldyBzeW50YXggYWxsb3dzIHNwZWNpZnlpbmcgZXhjbHVkZWQgcmVsYXRpb25zIHdoZW4gY3Jl YXRpbmcgYQpwdWJsaWNhdGlvbi4gRm9yIGV4YW1wbGU6CkNSRUFURSBQVUJMSUNBVElPTiBwdWIx IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAodDEsdDIpOwoKQSBuZXcgY29sdW1uICJwcmV4 Y2VwdCIgaXMgYWRkZWQgdG8gdGFibGUgInBnX3B1YmxpY2F0aW9uX3JlbCIsIHRvIGZsYWcKdGhl IHJlbGF0aW9ucyB0aGF0IHRoZSB1c2VyIHdhbnRzIHRvIGV4Y2x1ZGUgZnJvbSB0aGUgcHVibGlj YXRpb25zLgoKT25seSByb290IHBhcnRpdGlvbmVkIHRhYmxlcyBjYW4gYmUgc3BlY2lmaWVkIGlu IHRoZSBFWENFUFQgVEFCTEUgY2xhdXNlLgpTcGVjaWZ5aW5nIGEgcm9vdCBwYXJ0aXRpb25lZCB0 YWJsZSBleGNsdWRlcyBhbGwgcGFydGl0aW9ucyBiZWxvbmdpbmcgdG8KdGhhdCBwYXJ0aXRpb24g aGllcmFyY2h5IGZyb20gcHVibGljYXRpb24uCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNn bWwgICAgICAgICAgICAgICAgICAgIHwgIDEwICsKIGRvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxp Y2F0aW9uLnNnbWwgICAgICAgICB8ICAgNiArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVi bGljYXRpb24uc2dtbCAgICAgIHwgIDU3ICsrKy0KIGRvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYu c2dtbCAgICAgICAgICAgICAgICB8ICAgNSArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wdWJs aWNhdGlvbi5jICAgICAgICAgIHwgMjI1ICsrKysrKysrKysrKy0tLQogc3JjL2JhY2tlbmQvY29t bWFuZHMvcHVibGljYXRpb25jbWRzLmMgICAgICAgIHwgIDUyICsrKy0KIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3RhYmxlY21kcy5jICAgICAgICAgICAgICB8ICA0MiArKy0KIHNyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8ICAzOSArKy0KIHNyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMgICB8ICA0NiArKy0KIHNyYy9iYWNrZW5kL3V0 aWxzL2NhY2hlL3JlbGNhY2hlLmMgICAgICAgICAgICB8ICAxOSArLQogc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgIDc1ICsrKystCiBzcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2Jpbi9wZ19kdW1w L3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgIDMwICsrCiBzcmMvYmluL3BzcWwvZGVz Y3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgOTUgKysrKysrLQogc3JjL2Jpbi9wc3Fs L3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDEyICstCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3B1YmxpY2F0aW9uLmggICAgICAgICAgfCAgMTkgKy0KIHNyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmggICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9ub2Rl cy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDUgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0ICAgICB8IDEyOSArKysrKysrKy0KIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCAgICAgICAgICB8ICA2NSArKysrLQogc3JjL3Rlc3Qv c3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkICAgICAgICAgICAgIHwgICAxICsKIC4uLi90LzAzN19y ZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwgICAgICAgICB8IDI2NyArKysrKysrKysrKysrKysr KysKIDIyIGZpbGVzIGNoYW5nZWQsIDEwODAgaW5zZXJ0aW9ucygrKSwgMTIxIGRlbGV0aW9ucygt KQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19yZXBfY2hh bmdlc19leGNlcHRfdGFibGUucGwKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGU3MDY3Yzg0ZWNlLi42OTU4 ODkzNzcxOSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9j L3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTY1NzIsNiArNjU3MiwxNiBAQCBTQ1JBTS1TSEEt MjU2JDxyZXBsYWNlYWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+Ojxy ZXBsYWNlYWJsZT4mbAogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgPHN0cnVjdGZpZWxkPnByZXhjZXB0PC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIFRydWUgaWYgdGhlIHRhYmxlIGlzIGV4Y2x1ZGVkIGZyb20gdGhlIHB1YmxpY2F0aW9u LiBTZWUKKyAgICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlcHVibGljYXRpb24tcGFyYW1z LWZvci1leGNlcHQtdGFibGUiPjxsaXRlcmFsPkVYQ0VQVCBUQUJMRTwvbGl0ZXJhbD48L2xpbms+ LgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgogICAgICAgPHN0cnVjdGZpZWxkPnBycXVhbDwvc3RydWN0ZmllbGQ+IDx0eXBl PnBnX25vZGVfdHJlZTwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJl cGxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCmlu ZGV4IDUwMjhmZTlhZjA5Li5iY2I0NzNjMDc4YiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xv Z2ljYWwtcmVwbGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNh dGlvbi5zZ21sCkBAIC0xMTYsNyArMTE2LDExIEBACiAgICA8bGl0ZXJhbD5GT1IgVEFCTEVTIElO IFNDSEVNQTwvbGl0ZXJhbD4sIDxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPiwKICAg IG9yIDxsaXRlcmFsPkZPUiBBTEwgU0VRVUVOQ0VTPC9saXRlcmFsPi4gVW5saWtlIHRhYmxlcywg c2VxdWVuY2VzIGNhbiBiZQogICAgc3luY2hyb25pemVkIGF0IGFueSB0aW1lLiBGb3IgbW9yZSBp bmZvcm1hdGlvbiwgc2VlCi0gICA8eHJlZiBsaW5rZW5kPSJsb2dpY2FsLXJlcGxpY2F0aW9uLXNl cXVlbmNlcyIvPi4KKyAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tc2VxdWVu Y2VzIi8+LiBXaGVuIGEgcHVibGljYXRpb24gaXMKKyAgIGNyZWF0ZWQgd2l0aCA8bGl0ZXJhbD5G T1IgQUxMIFRBQkxFUzwvbGl0ZXJhbD4sIGEgdGFibGUgb3Igc2V0IG9mIHRhYmxlcyBjYW4KKyAg IGJlIGV4cGxpY2l0bHkgZXhjbHVkZWQgZnJvbSBwdWJsaWNhdGlvbiB1c2luZyB0aGUKKyAgIDxs aW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9yLWV4Y2VwdC10YWJs ZSI+PGxpdGVyYWw+RVhDRVBUIFRBQkxFPC9saXRlcmFsPjwvbGluaz4KKyAgIGNsYXVzZS4KICAg PC9wYXJhPgogCiAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVf cHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNn bWwKaW5kZXggNmVmYmI5MTVjZWMuLjc3MDY2ZWY2ODBiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTMyLDEyICszMiwxNiBAQCBDUkVBVEUgUFVCTElDQVRJ T04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogCiA8 cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fYWxs X29iamVjdDwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIAotICAgIEFMTCBUQUJM RVMKKyAgICBBTEwgVEFCTEVTIFsgRVhDRVBUIFRBQkxFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmV4Y2VwdF90YWJsZV9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0K ICAgICBBTEwgU0VRVUVOQ0VTCiAKIDxwaHJhc2U+YW5kIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj50YWJsZV9hbmRfY29sdW1uczwvcmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgogCiAg ICAgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3Jl cGxhY2VhYmxlPiBbICogXSBbICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbHVt bl9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdIFsgV0hFUkUgKCA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+ICkgXQorCis8cGhyYXNl PmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZXhjZXB0X3RhYmxlX29iamVjdDwv cmVwbGFjZWFibGU+IGlzOjwvcGhyYXNlPgorCisgICAgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICogXQogPC9zeW5vcHNp cz4KICA8L3JlZnN5bm9wc2lzZGl2PgogCkBAIC0xNjQsNyArMTY4LDggQEAgQ1JFQVRFIFBVQkxJ Q0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4K ICAgICA8bGlzdGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgTWFya3MgdGhlIHB1YmxpY2F0aW9u IGFzIG9uZSB0aGF0IHJlcGxpY2F0ZXMgY2hhbmdlcyBmb3IgYWxsIHRhYmxlcyBpbgotICAgICAg dGhlIGRhdGFiYXNlLCBpbmNsdWRpbmcgdGFibGVzIGNyZWF0ZWQgaW4gdGhlIGZ1dHVyZS4KKyAg ICAgIHRoZSBkYXRhYmFzZSwgaW5jbHVkaW5nIHRhYmxlcyBjcmVhdGVkIGluIHRoZSBmdXR1cmUu IFRhYmxlcyBsaXN0ZWQgaW4KKyAgICAgIEVYQ0VQVCBUQUJMRSBhcmUgZXhjbHVkZWQgZnJvbSB0 aGUgcHVibGljYXRpb24uCiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJs aXN0ZW50cnk+CkBAIC0xODQsNiArMTg5LDM3IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgPC9saXN0aXRl bT4KICAgIDwvdmFybGlzdGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRl cHVibGljYXRpb24tcGFyYW1zLWZvci1leGNlcHQtdGFibGUiPgorICAgIDx0ZXJtPjxsaXRlcmFs PkVYQ0VQVCBUQUJMRTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFy YT4KKyAgICAgIFRoaXMgY2xhdXNlIHNwZWNpZmllcyBhIGxpc3Qgb2YgdGFibGVzIHRvIGJlIGV4 Y2x1ZGVkIGZyb20gdGhlCisgICAgICBwdWJsaWNhdGlvbi4KKyAgICAgPC9wYXJhPgorICAgICA8 cGFyYT4KKyAgICAgIEZvciBpbmhlcml0ZWQgdGFibGVzLCBpZiA8bGl0ZXJhbD5PTkxZPC9saXRl cmFsPiBpcyBzcGVjaWZpZWQgYmVmb3JlIHRoZQorICAgICAgdGFibGUgbmFtZSwgb25seSB0aGF0 IHRhYmxlIGlzIGV4Y2x1ZGVkIGZyb20gdGhlIHB1YmxpY2F0aW9uLiBJZgorICAgICAgPGxpdGVy YWw+T05MWTwvbGl0ZXJhbD4gaXMgbm90IHNwZWNpZmllZCwgdGhlIHRhYmxlIGFuZCBhbGwgaXRz IGRlc2NlbmRhbnQKKyAgICAgIHRhYmxlcyAoaWYgYW55KSBhcmUgZXhjbHVkZWQuIE9wdGlvbmFs bHksIDxsaXRlcmFsPio8L2xpdGVyYWw+IGNhbiBiZQorICAgICAgc3BlY2lmaWVkIGFmdGVyIHRo ZSB0YWJsZSBuYW1lIHRvIGV4cGxpY2l0bHkgaW5kaWNhdGUgdGhhdCBkZXNjZW5kYW50CisgICAg ICB0YWJsZXMgYXJlIGV4Y2x1ZGVkLgorICAgICA8L3BhcmE+CisgICAgIDxwYXJhPgorICAgICAg Rm9yIHBhcnRpdGlvbmVkIHRhYmxlcywgb25seSB0aGUgcm9vdCBwYXJ0aXRpb25lZCB0YWJsZSBt YXkgYmUgc3BlY2lmaWVkCisgICAgICBpbiA8bGl0ZXJhbD5FWENFUFQgVEFCTEU8L2xpdGVyYWw+ LiBEb2luZyBzbyBleGNsdWRlcyB0aGUgcm9vdCB0YWJsZSBhbmQKKyAgICAgIGFsbCBvZiBpdHMg cGFydGl0aW9ucyBmcm9tIHJlcGxpY2F0aW9uLiBUaGUgb3B0aW9uYWwKKyAgICAgIDxsaXRlcmFs Pk9OTFk8L2xpdGVyYWw+IGFuZCA8bGl0ZXJhbD4qPC9saXRlcmFsPiBoYXMgbm8gZWZmZWN0IGZv cgorICAgICAgcGFydGl0aW9uZWQgdGFibGVzLgorICAgICA8L3BhcmE+CisgICAgIDxwYXJhPgor ICAgICAgVGhlcmUgY2FuIGJlIGEgY2FzZSB3aGVyZSBhIHN1YnNjcmlwdGlvbiBpbmNsdWRlcyBt dWx0aXBsZSBwdWJsaWNhdGlvbnMuCisgICAgICBJbiBzdWNoIGEgY2FzZSwgYSB0YWJsZSBvciBw YXJ0aXRpb24gdGhhdCBpcyBpbmNsdWRlZCBpbiBvbmUgcHVibGljYXRpb24KKyAgICAgIGFuZCBs aXN0ZWQgaW4gdGhlIDxsaXRlcmFsPkVYQ0VQVCBUQUJMRTwvbGl0ZXJhbD4gY2xhdXNlIG9mIGFu b3RoZXIgaXMKKyAgICAgIGNvbnNpZGVyZWQgaW5jbHVkZWQgZm9yIHJlcGxpY2F0aW9uLgorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFy bGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRlcHVibGljYXRpb24tcGFyYW1zLXdpdGgiPgogICAgIDx0 ZXJtPjxsaXRlcmFsPldJVEggKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGlj YXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICk8L2xpdGVyYWw+PC90ZXJtPgog ICAgIDxsaXN0aXRlbT4KQEAgLTQ4OSw2ICs1MjUsMjMgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIGFs bF9zZXF1ZW5jZXMgRk9SIEFMTCBTRVFVRU5DRVM7CiAgICBhbGwgc2VxdWVuY2VzIGZvciBzeW5j aHJvbml6YXRpb246CiA8cHJvZ3JhbWxpc3Rpbmc+CiBDUkVBVEUgUFVCTElDQVRJT04gYWxsX3Rh Ymxlc19zZXF1ZW5jZXMgRk9SIEFMTCBUQUJMRVMsIEFMTCBTRVFVRU5DRVM7Cis8L3Byb2dyYW1s aXN0aW5nPgorICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBDcmVhdGUgYSBwdWJsaWNhdGlvbiB0 aGF0IHB1Ymxpc2hlcyBhbGwgY2hhbmdlcyBpbiBhbGwgdGFibGVzIGV4Y2VwdAorICAgPHN0cnVj dG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+IGFuZCA8c3RydWN0bmFtZT5kZXBhcnRtZW50czwvc3Ry dWN0bmFtZT46Cis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgUFVCTElDQVRJT04gYWxsX3RhYmxl c19leGNlcHQgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFICh1c2VycywgZGVwYXJ0bWVudHMp OworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgQ3JlYXRlIGEg cHVibGljYXRpb24gdGhhdCBwdWJsaXNoZXMgYWxsIHNlcXVlbmNlcyBmb3Igc3luY2hyb25pemF0 aW9uLCBhbmQKKyAgIGFsbCBjaGFuZ2VzIGluIGFsbCB0YWJsZXMgZXhjZXB0IDxzdHJ1Y3RuYW1l PnVzZXJzPC9zdHJ1Y3RuYW1lPiBhbmQKKyAgIDxzdHJ1Y3RuYW1lPmRlcGFydG1lbnRzPC9zdHJ1 Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBQVUJMSUNBVElPTiBhbGxfc2VxdWVu Y2VzX3RhYmxlc19leGNlcHQgRk9SIEFMTCBTRVFVRU5DRVMsIEFMTCBUQUJMRVMgRVhDRVBUIFRB QkxFICh1c2VycywgZGVwYXJ0bWVudHMpOwogPC9wcm9ncmFtbGlzdGluZz4KICAgPC9wYXJhPgog IDwvcmVmc2VjdDE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKaW5kZXggOGIxZDk0OGJhMDUuLjEwNDVi YzZhMDJjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCkBAIC0yMTAzLDggKzIxMDMsOSBAQCBTRUxF Q1QgJDEgXHBhcnNlIHN0bXQxCiAgICAgICAgIGxpc3RlZC4KICAgICAgICAgSWYgPGxpdGVyYWw+ eDwvbGl0ZXJhbD4gaXMgYXBwZW5kZWQgdG8gdGhlIGNvbW1hbmQgbmFtZSwgdGhlIHJlc3VsdHMK ICAgICAgICAgYXJlIGRpc3BsYXllZCBpbiBleHBhbmRlZCBtb2RlLgotICAgICAgICBJZiA8bGl0 ZXJhbD4rPC9saXRlcmFsPiBpcyBhcHBlbmRlZCB0byB0aGUgY29tbWFuZCBuYW1lLCB0aGUgdGFi bGVzIGFuZAotICAgICAgICBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHB1YmxpY2F0aW9u IGFyZSBzaG93biBhcyB3ZWxsLgorICAgICAgICBJZiA8bGl0ZXJhbD4rPC9saXRlcmFsPiBpcyBh cHBlbmRlZCB0byB0aGUgY29tbWFuZCBuYW1lLCB0aGUgdGFibGVzLAorICAgICAgICBleGNsdWRl ZCB0YWJsZXMsIGFuZCBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHB1YmxpY2F0aW9uIGFy ZSBzaG93bgorICAgICAgICBhcyB3ZWxsLgogICAgICAgICA8L3BhcmE+CiAgICAgICAgIDwvbGlz dGl0ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nh dGFsb2cvcGdfcHVibGljYXRpb24uYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRp b24uYwppbmRleCA5YTQ3OTFjNTczZS4uZTFiMTUzMmM0NjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3Bn X3B1YmxpY2F0aW9uLmMKQEAgLTUzLDM3ICs1Myw0OSBAQCB0eXBlZGVmIHN0cnVjdAogICogZXJy b3IgaWYgbm90LgogICovCiBzdGF0aWMgdm9pZAotY2hlY2tfcHVibGljYXRpb25fYWRkX3JlbGF0 aW9uKFJlbGF0aW9uIHRhcmdldHJlbCkKK2NoZWNrX3B1YmxpY2F0aW9uX2FkZF9yZWxhdGlvbihQ dWJsaWNhdGlvblJlbEluZm8gKnByaSkKIHsKKwlSZWxhdGlvbgl0YXJnZXRyZWwgPSBwcmktPnJl bGF0aW9uOworCWNvbnN0IGNoYXIgKmVycm9ybXNnOworCisJaWYgKHByaS0+ZXhjZXB0KQorCQll cnJvcm1zZyA9IGdldHRleHRfbm9vcCgiY2Fubm90IHVzZSBwdWJsaWNhdGlvbiBFWENFUFQgY2xh dXNlIGZvciByZWxhdGlvbiBcIiVzXCIiKTsKKwllbHNlCisJCWVycm9ybXNnID0gZ2V0dGV4dF9u b29wKCJjYW5ub3QgYWRkIHJlbGF0aW9uIFwiJXNcIiB0byBwdWJsaWNhdGlvbiIpOworCisKKwkv KiBJZiBpbiBFWENFUFQgY2xhdXNlLCBtdXN0IGJlIHJvb3QgcGFydGl0aW9uZWQgdGFibGUgKi8K KwlpZiAocHJpLT5leGNlcHQgJiYgdGFyZ2V0cmVsLT5yZF9yZWwtPnJlbGlzcGFydGl0aW9uKQor CQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJf VkFMVUUpLAorCQkJCSBlcnJtc2coZXJyb3Jtc2csIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHRh cmdldHJlbCkpLAorCQkJCSBlcnJkZXRhaWwoIlRoaXMgb3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0 ZWQgZm9yIGluZGl2aWR1YWwgcGFydGl0aW9ucy4iKSkpOworCiAJLyogTXVzdCBiZSBhIHJlZ3Vs YXIgb3IgcGFydGl0aW9uZWQgdGFibGUgKi8KIAlpZiAoUmVsYXRpb25HZXRGb3JtKHRhcmdldHJl bCktPnJlbGtpbmQgIT0gUkVMS0lORF9SRUxBVElPTiAmJgogCQlSZWxhdGlvbkdldEZvcm0odGFy Z2V0cmVsKS0+cmVsa2luZCAhPSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQogCQllcmVwb3J0 KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAot CQkJCSBlcnJtc2coImNhbm5vdCBhZGQgcmVsYXRpb24gXCIlc1wiIHRvIHB1YmxpY2F0aW9uIiwK LQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJlbCkpLAorCQkJCSBlcnJtc2co ZXJyb3Jtc2csIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJlbCkpLAogCQkJCSBlcnJk ZXRhaWxfcmVsa2luZF9ub3Rfc3VwcG9ydGVkKFJlbGF0aW9uR2V0Rm9ybSh0YXJnZXRyZWwpLT5y ZWxraW5kKSkpOwogCiAJLyogQ2FuJ3QgYmUgc3lzdGVtIHRhYmxlICovCiAJaWYgKElzQ2F0YWxv Z1JlbGF0aW9uKHRhcmdldHJlbCkpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJS Q09ERV9JTlZBTElEX1BBUkFNRVRFUl9WQUxVRSksCi0JCQkJIGVycm1zZygiY2Fubm90IGFkZCBy ZWxhdGlvbiBcIiVzXCIgdG8gcHVibGljYXRpb24iLAotCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlv bk5hbWUodGFyZ2V0cmVsKSksCisJCQkJIGVycm1zZyhlcnJvcm1zZywgUmVsYXRpb25HZXRSZWxh dGlvbk5hbWUodGFyZ2V0cmVsKSksCiAJCQkJIGVycmRldGFpbCgiVGhpcyBvcGVyYXRpb24gaXMg bm90IHN1cHBvcnRlZCBmb3Igc3lzdGVtIHRhYmxlcy4iKSkpOwogCiAJLyogVU5MT0dHRUQgYW5k IFRFTVAgcmVsYXRpb25zIGNhbm5vdCBiZSBwYXJ0IG9mIHB1YmxpY2F0aW9uLiAqLwogCWlmICh0 YXJnZXRyZWwtPnJkX3JlbC0+cmVscGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVOQ0VfVEVNUCkK IAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVS X1ZBTFVFKSwKLQkJCQkgZXJybXNnKCJjYW5ub3QgYWRkIHJlbGF0aW9uIFwiJXNcIiB0byBwdWJs aWNhdGlvbiIsCi0JCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZSh0YXJnZXRyZWwpKSwKKwkJ CQkgZXJybXNnKGVycm9ybXNnLCBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZSh0YXJnZXRyZWwpKSwK IAkJCQkgZXJyZGV0YWlsKCJUaGlzIG9wZXJhdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGZvciB0ZW1w b3JhcnkgdGFibGVzLiIpKSk7CiAJZWxzZSBpZiAodGFyZ2V0cmVsLT5yZF9yZWwtPnJlbHBlcnNp c3RlbmNlID09IFJFTFBFUlNJU1RFTkNFX1VOTE9HR0VEKQogCQllcmVwb3J0KEVSUk9SLAogCQkJ CShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAotCQkJCSBlcnJtc2co ImNhbm5vdCBhZGQgcmVsYXRpb24gXCIlc1wiIHRvIHB1YmxpY2F0aW9uIiwKLQkJCQkJCVJlbGF0 aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJlbCkpLAorCQkJCSBlcnJtc2coZXJyb3Jtc2csIFJl bGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJlbCkpLAogCQkJCSBlcnJkZXRhaWwoIlRoaXMg b3BlcmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHVubG9nZ2VkIHRhYmxlcy4iKSkpOwogfQog CkBAIC0zNjYsNyArMzc4LDcgQEAgR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihPaWQg cHVib2lkLCBMaXN0ICphbmNlc3RvcnMsIGludCAqYW5jZXN0b3JfbGV2ZWwKIAlmb3JlYWNoKGxj LCBhbmNlc3RvcnMpCiAJewogCQlPaWQJCQlhbmNlc3RvciA9IGxmaXJzdF9vaWQobGMpOwotCQlM aXN0CSAgICphcHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoYW5jZXN0b3IpOworCQlM aXN0CSAgICphcHViaWRzID0gR2V0UmVsYXRpb25JbmNsdWRlZFB1YmxpY2F0aW9ucyhhbmNlc3Rv cik7CiAJCUxpc3QJICAgKmFzY2hlbWFQdWJpZHMgPSBOSUw7CiAKIAkJbGV2ZWwrKzsKQEAgLTQ2 Niw3ICs0NzgsNyBAQCBwdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24oT2lkIHB1YmlkLCBQdWJsaWNh dGlvblJlbEluZm8gKnByaSwKIAkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJl bCksIHB1Yi0+bmFtZSkpKTsKIAl9CiAKLQljaGVja19wdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24o dGFyZ2V0cmVsKTsKKwljaGVja19wdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24ocHJpKTsKIAogCS8q IFZhbGlkYXRlIGFuZCB0cmFuc2xhdGUgY29sdW1uIG5hbWVzIGludG8gYSBCaXRtYXBzZXQgb2Yg YXR0bnVtcy4gKi8KIAlhdHRudW1zID0gcHViX2NvbGxpc3RfdmFsaWRhdGUocHJpLT5yZWxhdGlv biwgcHJpLT5jb2x1bW5zKTsKQEAgLTQ4Miw2ICs0OTQsOCBAQCBwdWJsaWNhdGlvbl9hZGRfcmVs YXRpb24oT2lkIHB1YmlkLCBQdWJsaWNhdGlvblJlbEluZm8gKnByaSwKIAkJT2JqZWN0SWRHZXRE YXR1bShwdWJpZCk7CiAJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcmVsX3BycmVsaWQgLSAx XSA9CiAJCU9iamVjdElkR2V0RGF0dW0ocmVsaWQpOworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0 aW9uX3JlbF9wcmV4Y2VwdCAtIDFdID0KKwkJQm9vbEdldERhdHVtKHByaS0+ZXhjZXB0KTsKIAog CS8qIEFkZCBxdWFsaWZpY2F0aW9ucywgaWYgYXZhaWxhYmxlICovCiAJaWYgKHByaS0+d2hlcmVD bGF1c2UgIT0gTlVMTCkKQEAgLTUzMCwxNyArNTQ0LDI2IEBAIHB1YmxpY2F0aW9uX2FkZF9yZWxh dGlvbihPaWQgcHViaWQsIFB1YmxpY2F0aW9uUmVsSW5mbyAqcHJpLAogCXRhYmxlX2Nsb3NlKHJl bCwgUm93RXhjbHVzaXZlTG9jayk7CiAKIAkvKgotCSAqIEludmFsaWRhdGUgcmVsY2FjaGUgc28g dGhhdCBwdWJsaWNhdGlvbiBpbmZvIGlzIHJlYnVpbHQuCi0JICoKLQkgKiBGb3IgdGhlIHBhcnRp dGlvbmVkIHRhYmxlcywgd2UgbXVzdCBpbnZhbGlkYXRlIGFsbCBwYXJ0aXRpb25zIGNvbnRhaW5l ZAotCSAqIGluIHRoZSByZXNwZWN0aXZlIHBhcnRpdGlvbiBoaWVyYXJjaGllcywgbm90IGp1c3Qg dGhlIG9uZSBleHBsaWNpdGx5Ci0JICogbWVudGlvbmVkIGluIHRoZSBwdWJsaWNhdGlvbi4gVGhp cyBpcyByZXF1aXJlZCBiZWNhdXNlIHdlIGltcGxpY2l0bHkKLQkgKiBwdWJsaXNoIHRoZSBjaGls ZCB0YWJsZXMgd2hlbiB0aGUgcGFyZW50IHRhYmxlIGlzIHB1Ymxpc2hlZC4KKwkgKiBSZWxhdGlv bnMgZXhjbHVkZWQgdmlhIHRoZSBFWENFUFQgY2xhdXNlIGRvIG5vdCBuZWVkIGV4cGxpY2l0CisJ ICogaW52YWxpZGF0aW9uIGFzIENyZWF0ZVB1YmxpY2F0aW9uKCkgZnVuY3Rpb24gaW52YWxpZGF0 ZXMgYWxsIHJlbGF0aW9ucworCSAqIGFzIHBhcnQgb2YgZGVmaW5pbmcgYSBGT1IgQUxMIFRBQkxF UyBwdWJsaWNhdGlvbi4KIAkgKi8KLQlyZWxpZHMgPSBHZXRQdWJQYXJ0aXRpb25PcHRpb25SZWxh dGlvbnMocmVsaWRzLCBQVUJMSUNBVElPTl9QQVJUX0FMTCwKLQkJCQkJCQkJCQkJcmVsaWQpOwor CWlmICghcHJpLT5leGNlcHQpCisJeworCQkvKgorCQkgKiBJbnZhbGlkYXRlIHJlbGNhY2hlIHNv IHRoYXQgcHVibGljYXRpb24gaW5mbyBpcyByZWJ1aWx0LgorCQkgKgorCQkgKiBGb3IgdGhlIHBh cnRpdGlvbmVkIHRhYmxlcywgd2UgbXVzdCBpbnZhbGlkYXRlIGFsbCBwYXJ0aXRpb25zCisJCSAq IGNvbnRhaW5lZCBpbiB0aGUgcmVzcGVjdGl2ZSBwYXJ0aXRpb24gaGllcmFyY2hpZXMsIG5vdCBq dXN0IHRoZSBvbmUKKwkJICogZXhwbGljaXRseSBtZW50aW9uZWQgaW4gdGhlIHB1YmxpY2F0aW9u LiBUaGlzIGlzIHJlcXVpcmVkIGJlY2F1c2UKKwkJICogd2UgaW1wbGljaXRseSBwdWJsaXNoIHRo ZSBjaGlsZCB0YWJsZXMgd2hlbiB0aGUgcGFyZW50IHRhYmxlIGlzCisJCSAqIHB1Ymxpc2hlZC4K KwkJICovCisJCXJlbGlkcyA9IEdldFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9ucyhyZWxpZHMs IFBVQkxJQ0FUSU9OX1BBUlRfQUxMLAorCQkJCQkJCQkJCQkJcmVsaWQpOwogCi0JSW52YWxpZGF0 ZVB1YmxpY2F0aW9uUmVscyhyZWxpZHMpOworCQlJbnZhbGlkYXRlUHVibGljYXRpb25SZWxzKHJl bGlkcyk7CisJfQogCiAJcmV0dXJuIG15c2VsZjsKIH0KQEAgLTc0OSwyMyArNzcyLDMwIEBAIHB1 YmxpY2F0aW9uX2FkZF9zY2hlbWEoT2lkIHB1YmlkLCBPaWQgc2NoZW1haWQsIGJvb2wgaWZfbm90 X2V4aXN0cykKIAlyZXR1cm4gbXlzZWxmOwogfQogCi0vKiBHZXRzIGxpc3Qgb2YgcHVibGljYXRp b24gb2lkcyBmb3IgYSByZWxhdGlvbiAqLwotTGlzdCAqCi1HZXRSZWxhdGlvblB1YmxpY2F0aW9u cyhPaWQgcmVsaWQpCisvKgorICogSW50ZXJuYWwgZnVuY3Rpb24gdG8gZ2V0IHRoZSBsaXN0IG9m IHB1YmxpY2F0aW9uIE9pZHMgZm9yIGEgcmVsYXRpb24uCisgKgorICogSWYgZXhjZXB0X2ZsYWcg aXMgdHJ1ZSwgcmV0dXJucyB0aGUgbGlzdCBvZiBwdWJsaWNhdGlvbiB3aGljaCBzcGVjaWZpZWQg dGhlCisgKiByZWxhdGlvbiB3aXRoIEVYQ0VQVCBjbGF1c2U7IG90aGVyd2lzZSwgcmV0dXJucyB0 aGUgbGlzdCBvZiBwdWJsaWNhdGlvbnMKKyAqIGluIHdoaWNoIHJlbGF0aW9uIGlzIGluY2x1ZGVk LgorICovCitzdGF0aWMgTGlzdCAqCitHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhPaWQgcmVsaWQs IGJvb2wgZXhjZXB0X2ZsYWcpCiB7CiAJTGlzdAkgICAqcmVzdWx0ID0gTklMOwogCUNhdENMaXN0 ICAgKnB1YnJlbGxpc3Q7Ci0JaW50CQkJaTsKIAogCS8qIEZpbmQgYWxsIHB1YmxpY2F0aW9ucyBh c3NvY2lhdGVkIHdpdGggdGhlIHJlbGF0aW9uLiAqLwogCXB1YnJlbGxpc3QgPSBTZWFyY2hTeXND YWNoZUxpc3QxKFBVQkxJQ0FUSU9OUkVMTUFQLAogCQkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0o cmVsaWQpKTsKLQlmb3IgKGkgPSAwOyBpIDwgcHVicmVsbGlzdC0+bl9tZW1iZXJzOyBpKyspCisJ Zm9yIChpbnQgaSA9IDA7IGkgPCBwdWJyZWxsaXN0LT5uX21lbWJlcnM7IGkrKykKIAl7CiAJCUhl YXBUdXBsZQl0dXAgPSAmcHVicmVsbGlzdC0+bWVtYmVyc1tpXS0+dHVwbGU7Ci0JCU9pZAkJCXB1 YmlkID0gKChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkgR0VUU1RSVUNUKHR1cCkpLT5wcnB1Ymlk OworCQlGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCBwdWJyZWwgPSAoRm9ybV9wZ19wdWJsaWNhdGlv bl9yZWwpIEdFVFNUUlVDVCh0dXApOworCQlPaWQJCQlwdWJpZCA9IHB1YnJlbC0+cHJwdWJpZDsK IAotCQlyZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1bHQsIHB1YmlkKTsKKwkJaWYgKHB1YnJlbC0+ cHJleGNlcHQgPT0gZXhjZXB0X2ZsYWcpCisJCQlyZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1bHQs IHB1YmlkKTsKIAl9CiAKIAlSZWxlYXNlU3lzQ2FjaGVMaXN0KHB1YnJlbGxpc3QpOwpAQCAtNzcz LDE0ICs4MDMsMzAgQEAgR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJlbGlkKQogCXJldHVy biByZXN1bHQ7CiB9CiAKKy8qIEdldHMgbGlzdCBvZiBwdWJsaWNhdGlvbiBvaWRzIGZvciBhIHJl bGF0aW9uICovCitMaXN0ICoKK0dldFJlbGF0aW9uSW5jbHVkZWRQdWJsaWNhdGlvbnMoT2lkIHJl bGlkKQoreworCXJldHVybiBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCwgZmFsc2UpOwor fQorCisvKiBHZXRzIGxpc3Qgb2YgcHVibGljYXRpb24gb2lkcyB3aGljaCBoYXMgcmVsYXRpb24g aW4gRVhDRVBUIGNsYXVzZSAqLworTGlzdCAqCitHZXRSZWxhdGlvbkV4Y2x1ZGVkUHVibGljYXRp b25zKE9pZCByZWxpZCkKK3sKKwlyZXR1cm4gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVsaWQs IHRydWUpOworfQorCiAvKgotICogR2V0cyBsaXN0IG9mIHJlbGF0aW9uIG9pZHMgZm9yIGEgcHVi bGljYXRpb24uCisgKiBJbnRlcm5hbCBmdW5jdGlvbiB0byBnZXQgdGhlIGxpc3Qgb2YgcmVsYXRp b24gT2lkcyBmb3IgYSBwdWJsaWNhdGlvbi4KICAqCi0gKiBUaGlzIHNob3VsZCBvbmx5IGJlIHVz ZWQgRk9SIFRBQkxFIHB1YmxpY2F0aW9ucywgdGhlIEZPUiBBTEwgVEFCTEVTL1NFUVVFTkNFUwot ICogc2hvdWxkIHVzZSBHZXRBbGxQdWJsaWNhdGlvblJlbGF0aW9ucygpLgorICogSWYgZXhjZXB0 X2ZsYWcgaXMgdHJ1ZSwgcmV0dXJucyB0aGUgbGlzdCBvZiByZWxhdGlvbnMgc3BlY2lmaWVkIGlu IHRoZQorICogRVhDRVBUIGNsYXVzZSBvZiB0aGUgcHVibGljYXRpb247IG90aGVyd2lzZSwgcmV0 dXJucyB0aGUgbGlzdCBvZiByZWxhdGlvbnMKKyAqIGluY2x1ZGVkIGluIHRoZSBwdWJsaWNhdGlv bi4KICAqLwotTGlzdCAqCi1HZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIFB1Ymxp Y2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCkKK3N0YXRpYyBMaXN0ICoKK2dldF9wdWJsaWNhdGlv bl9yZWxhdGlvbnMoT2lkIHB1YmlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQsCisJ CQkJCQkgIGJvb2wgZXhjZXB0X2ZsYWcpCiB7CiAJTGlzdAkgICAqcmVzdWx0OwogCVJlbGF0aW9u CXB1YnJlbHNyZWw7CkBAIC04MDUsOCArODUxLDEwIEBAIEdldFB1YmxpY2F0aW9uUmVsYXRpb25z KE9pZCBwdWJpZCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0KQogCQlGb3JtX3BnX3B1 YmxpY2F0aW9uX3JlbCBwdWJyZWw7CiAKIAkJcHVicmVsID0gKEZvcm1fcGdfcHVibGljYXRpb25f cmVsKSBHRVRTVFJVQ1QodHVwKTsKLQkJcmVzdWx0ID0gR2V0UHViUGFydGl0aW9uT3B0aW9uUmVs YXRpb25zKHJlc3VsdCwgcHViX3BhcnRvcHQsCi0JCQkJCQkJCQkJCQlwdWJyZWwtPnBycmVsaWQp OworCisJCWlmIChleGNlcHRfZmxhZyA9PSBwdWJyZWwtPnByZXhjZXB0KQorCQkJcmVzdWx0ID0g R2V0UHViUGFydGl0aW9uT3B0aW9uUmVsYXRpb25zKHJlc3VsdCwgcHViX3BhcnRvcHQsCisJCQkJ CQkJCQkJCQkJcHVicmVsLT5wcnJlbGlkKTsKIAl9CiAKIAlzeXN0YWJsZV9lbmRzY2FuKHNjYW4p OwpAQCAtODE5LDYgKzg2NywzNCBAQCBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQs IFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCkKIAlyZXR1cm4gcmVzdWx0OwogfQogCisv KgorICogR2V0cyBsaXN0IG9mIHJlbGF0aW9uIG9pZHMgdGhhdCBhcmUgYXNzb2NpYXRlZCB3aXRo IGEgcHVibGljYXRpb24uCisgKgorICogVGhpcyBzaG91bGQgb25seSBiZSB1c2VkIEZPUiBUQUJM RSBwdWJsaWNhdGlvbnMsIHRoZSBGT1IgQUxMIFRBQkxFUy9TRVFVRU5DRVMKKyAqIHNob3VsZCB1 c2UgR2V0QWxsUHVibGljYXRpb25SZWxhdGlvbnMoKS4KKyAqLworTGlzdCAqCitHZXRJbmNsdWRl ZFB1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9w YXJ0b3B0KQoreworCUFzc2VydCghR2V0UHVibGljYXRpb24ocHViaWQpLT5hbGx0YWJsZXMpOwor CisJcmV0dXJuIGdldF9wdWJsaWNhdGlvbl9yZWxhdGlvbnMocHViaWQsIHB1Yl9wYXJ0b3B0LCBm YWxzZSk7Cit9CisKKy8qCisgKiBHZXRzIGxpc3Qgb2YgdGFibGUgb2lkcyB0aGF0IHdlcmUgc3Bl Y2lmaWVkIGluIHRoZSBFWENFUFQgY2xhdXNlIGZvciBhCisgKiBwdWJsaWNhdGlvbi4KKyAqCisg KiBUaGlzIHNob3VsZCBvbmx5IGJlIHVzZWQgRk9SIEFMTCBUQUJMRVMgcHVibGljYXRpb25zLgor ICovCitMaXN0ICoKK0dldEV4Y2x1ZGVkUHVibGljYXRpb25UYWJsZXMoT2lkIHB1YmlkLCBQdWJs aWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQpCit7CisJQXNzZXJ0KEdldFB1YmxpY2F0aW9uKHB1 YmlkKS0+YWxsdGFibGVzKTsKKworCXJldHVybiBnZXRfcHVibGljYXRpb25fcmVsYXRpb25zKHB1 YmlkLCBwdWJfcGFydG9wdCwgdHJ1ZSk7Cit9CisKIC8qCiAgKiBHZXRzIGxpc3Qgb2YgcHVibGlj YXRpb24gb2lkcyBmb3IgcHVibGljYXRpb25zIG1hcmtlZCBhcyBGT1IgQUxMIFRBQkxFUy4KICAq LwpAQCAtODU4LDI0ICs5MzQsMzYgQEAgR2V0QWxsVGFibGVzUHVibGljYXRpb25zKHZvaWQpCiAK IC8qCiAgKiBHZXRzIGxpc3Qgb2YgYWxsIHJlbGF0aW9ucyBwdWJsaXNoZWQgYnkgRk9SIEFMTCBU QUJMRVMvU0VRVUVOQ0VTCi0gKiBwdWJsaWNhdGlvbihzKS4KKyAqIHB1YmxpY2F0aW9uLgogICoK ICAqIElmIHRoZSBwdWJsaWNhdGlvbiBwdWJsaXNoZXMgcGFydGl0aW9uIGNoYW5nZXMgdmlhIHRo ZWlyIHJlc3BlY3RpdmUgcm9vdAogICogcGFydGl0aW9uZWQgdGFibGVzLCB3ZSBtdXN0IGV4Y2x1 ZGUgcGFydGl0aW9ucyBpbiBmYXZvciBvZiBpbmNsdWRpbmcgdGhlCiAgKiByb290IHBhcnRpdGlv bmVkIHRhYmxlcy4gVGhpcyBpcyBub3QgYXBwbGljYWJsZSB0byBGT1IgQUxMIFNFUVVFTkNFUwog ICogcHVibGljYXRpb24uCisgKgorICogRm9yIGEgRk9SIEFMTCBUQUJMRVMgcHVibGljYXRpb24s IHRoZSByZXR1cm5lZCBsaXN0IGV4Y2x1ZGVzIHRhYmxlcyBtZW50aW9uZWQKKyAqIGluIEVYQ0VQ VCBUQUJMRSBjbGF1c2UuCiAgKi8KIExpc3QgKgotR2V0QWxsUHVibGljYXRpb25SZWxhdGlvbnMo Y2hhciByZWxraW5kLCBib29sIHB1YnZpYXJvb3QpCitHZXRBbGxQdWJsaWNhdGlvblJlbGF0aW9u cyhQdWJsaWNhdGlvbiAqcHViLCBjaGFyIHJlbGtpbmQpCiB7CiAJUmVsYXRpb24JY2xhc3NSZWw7 CiAJU2NhbktleURhdGEga2V5WzFdOwogCVRhYmxlU2NhbkRlc2Mgc2NhbjsKIAlIZWFwVHVwbGUJ dHVwbGU7CiAJTGlzdAkgICAqcmVzdWx0ID0gTklMOworCUxpc3QJICAgKmV4Y2VwdGxpc3QgPSBO SUw7CisJYm9vbAkJcHVidmlhcm9vdCA9IHB1Yi0+cHVidmlhcm9vdDsKKwlPaWQJCQlwdWJpZCA9 IHB1Yi0+b2lkOwogCiAJQXNzZXJ0KCEocmVsa2luZCA9PSBSRUxLSU5EX1NFUVVFTkNFICYmIHB1 YnZpYXJvb3QpKTsKIAorCS8qIEVYQ0VQVCBmaWx0ZXJpbmcgYXBwbGllcyBvbmx5IHRvIHJlbGF0 aW9ucywgbm90IHNlcXVlbmNlcyAqLworCWlmIChyZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04p CisJCWV4Y2VwdGxpc3QgPSBHZXRFeGNsdWRlZFB1YmxpY2F0aW9uVGFibGVzKHB1YmlkLCBwdWJ2 aWFyb290ID8KKwkJCQkJCQkJCQkJCSAgUFVCTElDQVRJT05fUEFSVF9ST09UIDoKKwkJCQkJCQkJ CQkJCSAgUFVCTElDQVRJT05fUEFSVF9MRUFGKTsKKwogCWNsYXNzUmVsID0gdGFibGVfb3BlbihS ZWxhdGlvblJlbGF0aW9uSWQsIEFjY2Vzc1NoYXJlTG9jayk7CiAKIAlTY2FuS2V5SW5pdCgma2V5 WzBdLApAQCAtODkxLDcgKzk3OSw4IEBAIEdldEFsbFB1YmxpY2F0aW9uUmVsYXRpb25zKGNoYXIg cmVsa2luZCwgYm9vbCBwdWJ2aWFyb290KQogCQlPaWQJCQlyZWxpZCA9IHJlbEZvcm0tPm9pZDsK IAogCQlpZiAoaXNfcHVibGlzaGFibGVfY2xhc3MocmVsaWQsIHJlbEZvcm0pICYmCi0JCQkhKHJl bEZvcm0tPnJlbGlzcGFydGl0aW9uICYmIHB1YnZpYXJvb3QpKQorCQkJIShyZWxGb3JtLT5yZWxp c3BhcnRpdGlvbiAmJiBwdWJ2aWFyb290KSAmJgorCQkJIWxpc3RfbWVtYmVyX29pZChleGNlcHRs aXN0LCByZWxpZCkpCiAJCQlyZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1bHQsIHJlbGlkKTsKIAl9 CiAKQEAgLTkxMiw3ICsxMDAxLDggQEAgR2V0QWxsUHVibGljYXRpb25SZWxhdGlvbnMoY2hhciBy ZWxraW5kLCBib29sIHB1YnZpYXJvb3QpCiAJCQlPaWQJCQlyZWxpZCA9IHJlbEZvcm0tPm9pZDsK IAogCQkJaWYgKGlzX3B1Ymxpc2hhYmxlX2NsYXNzKHJlbGlkLCByZWxGb3JtKSAmJgotCQkJCSFy ZWxGb3JtLT5yZWxpc3BhcnRpdGlvbikKKwkJCQkhcmVsRm9ybS0+cmVsaXNwYXJ0aXRpb24gJiYK KwkJCQkhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdGxpc3QsIHJlbGlkKSkKIAkJCQlyZXN1bHQgPSBs YXBwZW5kX29pZChyZXN1bHQsIHJlbGlkKTsKIAkJfQogCkBAIC0xMTE2LDYgKzEyMDYsNTEgQEAg R2V0UHVibGljYXRpb25CeU5hbWUoY29uc3QgY2hhciAqcHVibmFtZSwgYm9vbCBtaXNzaW5nX29r KQogCXJldHVybiBPaWRJc1ZhbGlkKG9pZCkgPyBHZXRQdWJsaWNhdGlvbihvaWQpIDogTlVMTDsK IH0KIAorLyoKKyAqIHB1YmxpY2F0aW9uX2hhc19hbnlfZXhjZXB0X3RhYmxlCisgKgorICogUmV0 dXJuIHRydWUgaWYgdGhlIGdpdmVuIHB1YmxpY2F0aW9uIGhhcyBhbnkgcmVsYXRpb24gZW50cnkK KyAqIGluIHBnX3B1YmxpY2F0aW9uX3JlbCB3aXRoIHByZXhjZXB0IHNldC4KKyAqLworYm9vbAor cHVibGljYXRpb25faGFzX2FueV9leGNlcHRfdGFibGUoT2lkIHB1YmlkKQoreworCVJlbGF0aW9u CXB1YnJlbHNyZWw7CisJU2NhbktleURhdGEgc2NhbmtleTsKKwlTeXNTY2FuRGVzYyBzY2FuOwor CUhlYXBUdXBsZQl0dXA7CisJYm9vbAkJZm91bmQgPSBmYWxzZTsKKworCXB1YnJlbHNyZWwgPSB0 YWJsZV9vcGVuKFB1YmxpY2F0aW9uUmVsUmVsYXRpb25JZCwgQWNjZXNzU2hhcmVMb2NrKTsKKwor CVNjYW5LZXlJbml0KCZzY2Fua2V5LAorCQkJCUFudW1fcGdfcHVibGljYXRpb25fcmVsX3BycHVi aWQsCisJCQkJQlRFcXVhbFN0cmF0ZWd5TnVtYmVyLCBGX09JREVRLAorCQkJCU9iamVjdElkR2V0 RGF0dW0ocHViaWQpKTsKKworCXNjYW4gPSBzeXN0YWJsZV9iZWdpbnNjYW4ocHVicmVsc3JlbCwK KwkJCQkJCQkgIFB1YmxpY2F0aW9uUmVsUHJwdWJpZEluZGV4SWQsCisJCQkJCQkJICB0cnVlLCBO VUxMLCAxLCAmc2NhbmtleSk7CisKKwkvKiBXZSBvbmx5IG5lZWQgdG8gZmluZCBhbnkgb2NjdXJy ZW5jZSBvZiBwcmV4Y2VwdCA9IHRydWUgKi8KKwl3aGlsZSAoSGVhcFR1cGxlSXNWYWxpZCh0dXAg PSBzeXN0YWJsZV9nZXRuZXh0KHNjYW4pKSkKKwl7CisJCUZvcm1fcGdfcHVibGljYXRpb25fcmVs IHB1YnJlbDsKKworCQlwdWJyZWwgPSAoRm9ybV9wZ19wdWJsaWNhdGlvbl9yZWwpIEdFVFNUUlVD VCh0dXApOworCQlpZiAocHVicmVsLT5wcmV4Y2VwdCkKKwkJeworCQkJZm91bmQgPSB0cnVlOwor CQkJYnJlYWs7CisJCX0KKwl9CisKKwlzeXN0YWJsZV9lbmRzY2FuKHNjYW4pOworCXRhYmxlX2Ns b3NlKHB1YnJlbHNyZWwsIEFjY2Vzc1NoYXJlTG9jayk7CisKKwlyZXR1cm4gZm91bmQ7Cit9CisK IC8qCiAgKiBHZXQgaW5mb3JtYXRpb24gb2YgdGhlIHRhYmxlcyBpbiB0aGUgZ2l2ZW4gcHVibGlj YXRpb24gYXJyYXkuCiAgKgpAQCAtMTE2OCwxNyArMTMwMywxNyBAQCBwZ19nZXRfcHVibGljYXRp b25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkgKiB0aG9zZS4gT3RoZXJ3aXNlLCBnZXQg dGhlIHBhcnRpdGlvbmVkIHRhYmxlIGl0c2VsZi4KIAkJCSAqLwogCQkJaWYgKHB1Yl9lbGVtLT5h bGx0YWJsZXMpCi0JCQkJcHViX2VsZW1fdGFibGVzID0gR2V0QWxsUHVibGljYXRpb25SZWxhdGlv bnMoUkVMS0lORF9SRUxBVElPTiwKLQkJCQkJCQkJCQkJCQkJCSBwdWJfZWxlbS0+cHVidmlhcm9v dCk7CisJCQkJcHViX2VsZW1fdGFibGVzID0gR2V0QWxsUHVibGljYXRpb25SZWxhdGlvbnMocHVi X2VsZW0sCisJCQkJCQkJCQkJCQkJCQkgUkVMS0lORF9SRUxBVElPTik7CiAJCQllbHNlCiAJCQl7 CiAJCQkJTGlzdAkgICAqcmVsaWRzLAogCQkJCQkJICAgKnNjaGVtYXJlbGlkczsKIAotCQkJCXJl bGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1Yl9lbGVtLT5vaWQsCi0JCQkJCQkJCQkJ CQkgcHViX2VsZW0tPnB1YnZpYXJvb3QgPwotCQkJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRf Uk9PVCA6Ci0JCQkJCQkJCQkJCQkgUFVCTElDQVRJT05fUEFSVF9MRUFGKTsKKwkJCQlyZWxpZHMg PSBHZXRJbmNsdWRlZFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1Yl9lbGVtLT5vaWQsCisJCQkJCQkJ CQkJCQkJCSBwdWJfZWxlbS0+cHVidmlhcm9vdCA/CisJCQkJCQkJCQkJCQkJCSBQVUJMSUNBVElP Tl9QQVJUX1JPT1QgOgorCQkJCQkJCQkJCQkJCQkgUFVCTElDQVRJT05fUEFSVF9MRUFGKTsKIAkJ CQlzY2hlbWFyZWxpZHMgPSBHZXRBbGxTY2hlbWFQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJfZWxl bS0+b2lkLAogCQkJCQkJCQkJCQkJCQkJCXB1Yl9lbGVtLT5wdWJ2aWFyb290ID8KIAkJCQkJCQkJ CQkJCQkJCQlQVUJMSUNBVElPTl9QQVJUX1JPT1QgOgpAQCAtMTM2Nyw3ICsxNTAyLDcgQEAgcGdf Z2V0X3B1YmxpY2F0aW9uX3NlcXVlbmNlcyhQR19GVU5DVElPTl9BUkdTKQogCQlwdWJsaWNhdGlv biA9IEdldFB1YmxpY2F0aW9uQnlOYW1lKHB1Ym5hbWUsIGZhbHNlKTsKIAogCQlpZiAocHVibGlj YXRpb24tPmFsbHNlcXVlbmNlcykKLQkJCXNlcXVlbmNlcyA9IEdldEFsbFB1YmxpY2F0aW9uUmVs YXRpb25zKFJFTEtJTkRfU0VRVUVOQ0UsIGZhbHNlKTsKKwkJCXNlcXVlbmNlcyA9IEdldEFsbFB1 YmxpY2F0aW9uUmVsYXRpb25zKHB1YmxpY2F0aW9uLCBSRUxLSU5EX1NFUVVFTkNFKTsKIAogCQlm dW5jY3R4LT51c2VyX2ZjdHggPSBzZXF1ZW5jZXM7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGlj YXRpb25jbWRzLmMKaW5kZXggZmMzYTRjMTllNjUuLjZhM2NhNDc1MWZhIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwpAQCAtMTgxLDcgKzE4MSw3IEBAIHBhcnNlX3B1Ymxp Y2F0aW9uX29wdGlvbnMoUGFyc2VTdGF0ZSAqcHN0YXRlLAogICovCiBzdGF0aWMgdm9pZAogT2Jq ZWN0c0luUHVibGljYXRpb25Ub09pZHMoTGlzdCAqcHVib2Jqc3BlY19saXN0LCBQYXJzZVN0YXRl ICpwc3RhdGUsCi0JCQkJCQkgICBMaXN0ICoqcmVscywgTGlzdCAqKnNjaGVtYXMpCisJCQkJCQkg ICBMaXN0ICoqcmVscywgTGlzdCAqKmV4Y2VwdHJlbHMsIExpc3QgKipzY2hlbWFzKQogewogCUxp c3RDZWxsICAgKmNlbGw7CiAJUHVibGljYXRpb25PYmpTcGVjICpwdWJvYmo7CkBAIC0xOTgsNyAr MTk4LDEyIEBAIE9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRzKExpc3QgKnB1Ym9ianNwZWNfbGlz dCwgUGFyc2VTdGF0ZSAqcHN0YXRlLAogCiAJCXN3aXRjaCAocHVib2JqLT5wdWJvYmp0eXBlKQog CQl7CisJCQljYXNlIFBVQkxJQ0FUSU9OT0JKX0VYQ0VQVF9UQUJMRToKKwkJCQlwdWJvYmotPnB1 YnRhYmxlLT5leGNlcHQgPSB0cnVlOworCQkJCSpleGNlcHRyZWxzID0gbGFwcGVuZCgqZXhjZXB0 cmVscywgcHVib2JqLT5wdWJ0YWJsZSk7CisJCQkJYnJlYWs7CiAJCQljYXNlIFBVQkxJQ0FUSU9O T0JKX1RBQkxFOgorCQkJCXB1Ym9iai0+cHVidGFibGUtPmV4Y2VwdCA9IGZhbHNlOwogCQkJCSpy ZWxzID0gbGFwcGVuZCgqcmVscywgcHVib2JqLT5wdWJ0YWJsZSk7CiAJCQkJYnJlYWs7CiAJCQlj YXNlIFBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9TQ0hFTUE6CkBAIC01MTksOCArNTI0LDggQEAg SW52YWxpZGF0ZVB1YlJlbFN5bmNDYWNoZShPaWQgcHViaWQsIGJvb2wgcHViYWxsdGFibGVzKQog CQkgKiBhIHRhcmdldC4gSG93ZXZlciwgV0FMIHJlY29yZHMgZm9yIFRSVU5DQVRFIHNwZWNpZnkg Ym90aCBhIHJvb3QgYW5kCiAJCSAqIGl0cyBsZWF2ZXMuCiAJCSAqLwotCQlyZWxpZHMgPSBHZXRQ dWJsaWNhdGlvblJlbGF0aW9ucyhwdWJpZCwKLQkJCQkJCQkJCQkgUFVCTElDQVRJT05fUEFSVF9B TEwpOworCQlyZWxpZHMgPSBHZXRJbmNsdWRlZFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLAor CQkJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRfQUxMKTsKIAkJc2NoZW1hcmVsaWRzID0gR2V0 QWxsU2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMocHViaWQsCiAJCQkJCQkJCQkJCQkJCVBVQkxJ Q0FUSU9OX1BBUlRfQUxMKTsKIApAQCAtODQ0LDYgKzg0OSw3IEBAIENyZWF0ZVB1YmxpY2F0aW9u KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlUHVibGljYXRpb25TdG10ICpzdG10KQogCWNoYXIJ CXB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM7CiAJQWNsUmVzdWx0CWFjbHJlc3VsdDsKIAlMaXN0 CSAgICpyZWxhdGlvbnMgPSBOSUw7CisJTGlzdAkgICAqZXhjZXB0cmVsYXRpb25zID0gTklMOwog CUxpc3QJICAgKnNjaGVtYWlkbGlzdCA9IE5JTDsKIAogCS8qIG11c3QgaGF2ZSBDUkVBVEUgcHJp dmlsZWdlIG9uIGRhdGFiYXNlICovCkBAIC05MjksOCArOTM1LDIxIEBAIENyZWF0ZVB1YmxpY2F0 aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlUHVibGljYXRpb25TdG10ICpzdG10KQogCUNv bW1hbmRDb3VudGVySW5jcmVtZW50KCk7CiAKIAkvKiBBc3NvY2lhdGUgb2JqZWN0cyB3aXRoIHRo ZSBwdWJsaWNhdGlvbi4gKi8KKwlPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lkcyhzdG10LT5wdWJv YmplY3RzLCBwc3RhdGUsICZyZWxhdGlvbnMsCisJCQkJCQkJICAgJmV4Y2VwdHJlbGF0aW9ucywg JnNjaGVtYWlkbGlzdCk7CisKIAlpZiAoc3RtdC0+Zm9yX2FsbF90YWJsZXMpCiAJeworCQkvKiBQ cm9jZXNzIEVYQ0VQVCB0YWJsZSBsaXN0ICovCisJCWlmIChleGNlcHRyZWxhdGlvbnMgIT0gTklM KQorCQl7CisJCQlMaXN0CSAgICpyZWxzOworCisJCQlyZWxzID0gT3BlblRhYmxlTGlzdChleGNl cHRyZWxhdGlvbnMpOworCQkJUHVibGljYXRpb25BZGRUYWJsZXMocHVib2lkLCByZWxzLCB0cnVl LCBOVUxMKTsKKwkJCUNsb3NlVGFibGVMaXN0KHJlbHMpOworCQl9CisKIAkJLyoKIAkJICogSW52 YWxpZGF0ZSByZWxjYWNoZSBzbyB0aGF0IHB1YmxpY2F0aW9uIGluZm8gaXMgcmVidWlsdC4gU2Vx dWVuY2VzCiAJCSAqIHB1YmxpY2F0aW9uIGRvZXNuJ3QgcmVxdWlyZSBpbnZhbGlkYXRpb24sIGFz IHJlcGxpY2EgaWRlbnRpdHkKQEAgLTk0MCw5ICs5NTksNiBAQCBDcmVhdGVQdWJsaWNhdGlvbihQ YXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVB1YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAl9CiAJZWxz ZSBpZiAoIXN0bXQtPmZvcl9hbGxfc2VxdWVuY2VzKQogCXsKLQkJT2JqZWN0c0luUHVibGljYXRp b25Ub09pZHMoc3RtdC0+cHVib2JqZWN0cywgcHN0YXRlLCAmcmVsYXRpb25zLAotCQkJCQkJCQkg ICAmc2NoZW1haWRsaXN0KTsKLQogCQkvKiBGT1IgVEFCTEVTIElOIFNDSEVNQSByZXF1aXJlcyBz dXBlcnVzZXIgKi8KIAkJaWYgKHNjaGVtYWlkbGlzdCAhPSBOSUwgJiYgIXN1cGVydXNlcigpKQog CQkJZXJlcG9ydChFUlJPUiwKQEAgLTEwNTAsOCArMTA2Niw4IEBAIEFsdGVyUHVibGljYXRpb25P cHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCiAJ CUxvY2tEYXRhYmFzZU9iamVjdChQdWJsaWNhdGlvblJlbGF0aW9uSWQsIHB1YmZvcm0tPm9pZCwg MCwKIAkJCQkJCSAgIEFjY2Vzc1NoYXJlTG9jayk7CiAKLQkJcm9vdF9yZWxpZHMgPSBHZXRQdWJs aWNhdGlvblJlbGF0aW9ucyhwdWJmb3JtLT5vaWQsCi0JCQkJCQkJCQkJCSAgUFVCTElDQVRJT05f UEFSVF9ST09UKTsKKwkJcm9vdF9yZWxpZHMgPSBHZXRJbmNsdWRlZFB1YmxpY2F0aW9uUmVsYXRp b25zKHB1YmZvcm0tPm9pZCwKKwkJCQkJCQkJCQkJCQkgIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCk7 CiAKIAkJZm9yZWFjaChsYywgcm9vdF9yZWxpZHMpCiAJCXsKQEAgLTExNzAsOCArMTE4Niw4IEBA IEFsdGVyUHVibGljYXRpb25PcHRpb25zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNh dGlvblN0bXQgKnN0bXQsCiAJCSAqIHRyZWVzLCBub3QganVzdCB0aG9zZSBleHBsaWNpdGx5IG1l bnRpb25lZCBpbiB0aGUgcHVibGljYXRpb24uCiAJCSAqLwogCQlpZiAocm9vdF9yZWxpZHMgPT0g TklMKQotCQkJcmVsaWRzID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMocHViZm9ybS0+b2lkLAot CQkJCQkJCQkJCQkgUFVCTElDQVRJT05fUEFSVF9BTEwpOworCQkJcmVsaWRzID0gR2V0SW5jbHVk ZWRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJmb3JtLT5vaWQsCisJCQkJCQkJCQkJCQkJIFBVQkxJ Q0FUSU9OX1BBUlRfQUxMKTsKIAkJZWxzZQogCQl7CiAJCQkvKgpAQCAtMTI1Niw4ICsxMjcyLDgg QEAgQWx0ZXJQdWJsaWNhdGlvblRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwgSGVh cFR1cGxlIHR1cCwKIAkJUHVibGljYXRpb25Ecm9wVGFibGVzKHB1YmlkLCByZWxzLCBmYWxzZSk7 CiAJZWxzZQkJCQkJCS8qIEFQX1NldE9iamVjdHMgKi8KIAl7Ci0JCUxpc3QJICAgKm9sZHJlbGlk cyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLAotCQkJCQkJCQkJCQkJCQlQVUJMSUNB VElPTl9QQVJUX1JPT1QpOworCQlMaXN0CSAgICpvbGRyZWxpZHMgPSBHZXRJbmNsdWRlZFB1Ymxp Y2F0aW9uUmVsYXRpb25zKHB1YmlkLAorCQkJCQkJCQkJCQkJCQkJCVBVQkxJQ0FUSU9OX1BBUlRf Uk9PVCk7CiAJCUxpc3QJICAgKmRlbHJlbHMgPSBOSUw7CiAJCUxpc3RDZWxsICAgKm9sZGxjOwog CkBAIC0xMzU4LDYgKzEzNzQsNyBAQCBBbHRlclB1YmxpY2F0aW9uVGFibGVzKEFsdGVyUHVibGlj YXRpb25TdG10ICpzdG10LCBIZWFwVHVwbGUgdHVwLAogCQkJCW9sZHJlbCA9IHBhbGxvY19vYmpl Y3QoUHVibGljYXRpb25SZWxJbmZvKTsKIAkJCQlvbGRyZWwtPndoZXJlQ2xhdXNlID0gTlVMTDsK IAkJCQlvbGRyZWwtPmNvbHVtbnMgPSBOSUw7CisJCQkJb2xkcmVsLT5leGNlcHQgPSBmYWxzZTsK IAkJCQlvbGRyZWwtPnJlbGF0aW9uID0gdGFibGVfb3BlbihvbGRyZWxpZCwKIAkJCQkJCQkJCQkJ ICBTaGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2spOwogCQkJCWRlbHJlbHMgPSBsYXBwZW5kKGRlbHJl bHMsIG9sZHJlbCk7CkBAIC0xNDA4LDcgKzE0MjUsOCBAQCBBbHRlclB1YmxpY2F0aW9uU2NoZW1h cyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAkJTGlzdENlbGwgICAqbGM7CiAJCUxpc3QJ ICAgKnJlbG9pZHM7CiAKLQkJcmVsb2lkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmZv cm0tPm9pZCwgUFVCTElDQVRJT05fUEFSVF9ST09UKTsKKwkJcmVsb2lkcyA9IEdldEluY2x1ZGVk UHVibGljYXRpb25SZWxhdGlvbnMocHViZm9ybS0+b2lkLAorCQkJCQkJCQkJCQkJICBQVUJMSUNB VElPTl9QQVJUX1JPT1QpOwogCiAJCWZvcmVhY2gobGMsIHJlbG9pZHMpCiAJCXsKQEAgLTE1NjYs MTEgKzE1ODQsMTUgQEAgQWx0ZXJQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVy UHVibGljYXRpb25TdG10ICpzdG10KQogCWVsc2UKIAl7CiAJCUxpc3QJICAgKnJlbGF0aW9ucyA9 IE5JTDsKKwkJTGlzdAkgICAqZXhjZXB0cmVsYXRpb25zID0gTklMOwogCQlMaXN0CSAgICpzY2hl bWFpZGxpc3QgPSBOSUw7CiAJCU9pZAkJCXB1YmlkID0gcHViZm9ybS0+b2lkOwogCiAJCU9iamVj dHNJblB1YmxpY2F0aW9uVG9PaWRzKHN0bXQtPnB1Ym9iamVjdHMsIHBzdGF0ZSwgJnJlbGF0aW9u cywKLQkJCQkJCQkJICAgJnNjaGVtYWlkbGlzdCk7CisJCQkJCQkJCSAgICZleGNlcHRyZWxhdGlv bnMsICZzY2hlbWFpZGxpc3QpOworCisJCS8qIEVYQ0VQVCBjbGF1c2UgaXMgbm90IHN1cHBvcnRl ZCB3aXRoIEFMVEVSIFBVQkxJQ0FUSU9OICovCisJCUFzc2VydChleGNlcHRyZWxhdGlvbnMgPT0g TklMKTsKIAogCQlDaGVja0FsdGVyUHVibGljYXRpb24oc3RtdCwgdHVwLCByZWxhdGlvbnMsIHNj aGVtYWlkbGlzdCk7CiAKQEAgLTE3NzEsNiArMTc5Myw3IEBAIE9wZW5UYWJsZUxpc3QoTGlzdCAq dGFibGVzKQogCQlwdWJfcmVsLT5yZWxhdGlvbiA9IHJlbDsKIAkJcHViX3JlbC0+d2hlcmVDbGF1 c2UgPSB0LT53aGVyZUNsYXVzZTsKIAkJcHViX3JlbC0+Y29sdW1ucyA9IHQtPmNvbHVtbnM7CisJ CXB1Yl9yZWwtPmV4Y2VwdCA9IHQtPmV4Y2VwdDsKIAkJcmVscyA9IGxhcHBlbmQocmVscywgcHVi X3JlbCk7CiAJCXJlbGlkcyA9IGxhcHBlbmRfb2lkKHJlbGlkcywgbXlyZWxpZCk7CiAKQEAgLTE4 NDMsNiArMTg2Niw3IEBAIE9wZW5UYWJsZUxpc3QoTGlzdCAqdGFibGVzKQogCiAJCQkJLyogY2hp bGQgaW5oZXJpdHMgY29sdW1uIGxpc3QgZnJvbSBwYXJlbnQgKi8KIAkJCQlwdWJfcmVsLT5jb2x1 bW5zID0gdC0+Y29sdW1uczsKKwkJCQlwdWJfcmVsLT5leGNlcHQgPSB0LT5leGNlcHQ7CiAJCQkJ cmVscyA9IGxhcHBlbmQocmVscywgcHViX3JlbCk7CiAJCQkJcmVsaWRzID0gbGFwcGVuZF9vaWQo cmVsaWRzLCBjaGlsZHJlbGlkKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv dGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCBiMDRi MGRiZDJhMC4uYzAxMDRmMDg0ZmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Rh YmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC04Njg2 LDcgKzg2ODYsNyBAQCBBVEV4ZWNTZXRFeHByZXNzaW9uKEFsdGVyZWRUYWJsZUluZm8gKnRhYiwg UmVsYXRpb24gcmVsLCBjb25zdCBjaGFyICpjb2xOYW1lLAogCSAqIGV4cHJlc3Npb25zLgogCSAq LwogCWlmIChhdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMICYmCi0J CUdldFJlbGF0aW9uUHVibGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSkgIT0gTklMKQor CQlHZXRSZWxhdGlvbkluY2x1ZGVkUHVibGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSkg IT0gTklMKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9O T1RfU1VQUE9SVEVEKSwKIAkJCQkgZXJybXNnKCJBTFRFUiBUQUJMRSAvIFNFVCBFWFBSRVNTSU9O IGlzIG5vdCBzdXBwb3J0ZWQgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgaW4gdGFibGVz IHRoYXQgYXJlIHBhcnQgb2YgYSBwdWJsaWNhdGlvbiIpLApAQCAtMTg4ODEsNyArMTg4ODEsNyBA QCBBVFByZXBDaGFuZ2VQZXJzaXN0ZW5jZShBbHRlcmVkVGFibGVJbmZvICp0YWIsIFJlbGF0aW9u IHJlbCwgYm9vbCB0b0xvZ2dlZCkKIAkgKiBVTkxPR0dFRCwgYXMgVU5MT0dHRUQgdGFibGVzIGNh bid0IGJlIHB1Ymxpc2hlZC4KIAkgKi8KIAlpZiAoIXRvTG9nZ2VkICYmCi0JCUdldFJlbGF0aW9u UHVibGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSkgIT0gTklMKQorCQlHZXRSZWxhdGlv bkluY2x1ZGVkUHVibGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSkgIT0gTklMKQogCQll cmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFV SVNJVEVfU1RBVEUpLAogCQkJCSBlcnJtc2coImNhbm5vdCBjaGFuZ2UgdGFibGUgXCIlc1wiIHRv IHVubG9nZ2VkIGJlY2F1c2UgaXQgaXMgcGFydCBvZiBhIHB1YmxpY2F0aW9uIiwKQEAgLTIwMzIy LDYgKzIwMzIyLDcgQEAgQVRFeGVjQXR0YWNoUGFydGl0aW9uKExpc3QgKip3cXVldWUsIFJlbGF0 aW9uIHJlbCwgUGFydGl0aW9uQ21kICpjbWQsCiAJY29uc3QgY2hhciAqdHJpZ2dlcl9uYW1lOwog CU9pZAkJCWRlZmF1bHRQYXJ0T2lkOwogCUxpc3QJICAgKnBhcnRCb3VuZENvbnN0cmFpbnQ7CisJ TGlzdAkgICAqZXhjZXB0cHVib2lkcyA9IE5JTDsKIAlQYXJzZVN0YXRlICpwc3RhdGUgPSBtYWtl X3BhcnNlc3RhdGUoTlVMTCk7CiAKIAlwc3RhdGUtPnBfc291cmNldGV4dCA9IGNvbnRleHQtPnF1 ZXJ5U3RyaW5nOwpAQCAtMjAzNjEsNiArMjAzNjIsNDMgQEAgQVRFeGVjQXR0YWNoUGFydGl0aW9u KExpc3QgKip3cXVldWUsIFJlbGF0aW9uIHJlbCwgUGFydGl0aW9uQ21kICpjbWQsCiAJCQkJKGVy cmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCiAJCQkJIGVycm1zZygiY2Fubm90IGF0 dGFjaCBhIHR5cGVkIHRhYmxlIGFzIHBhcnRpdGlvbiIpKSk7CiAKKwkvKgorCSAqIERpc2FsbG93 IGF0dGFjaGluZyBhIHBhcnRpdGlvbiBpZiB0aGUgdGFibGUgaXMgcmVmZXJlbmNlZCBpbiBhCisJ ICogcHVibGljYXRpb24gRVhDRVBUIGNsYXVzZS4gQ2hhbmdpbmcgdGhlIHBhcnRpdGlvbiBoaWVy YXJjaHkgY291bGQgYWx0ZXIKKwkgKiB0aGUgZWZmZWN0aXZlIHB1YmxpY2F0aW9uIG1lbWJlcnNo aXAuCisJICovCisJZXhjZXB0cHVib2lkcyA9IEdldFJlbGF0aW9uRXhjbHVkZWRQdWJsaWNhdGlv bnMoUmVsYXRpb25HZXRSZWxpZChhdHRhY2hyZWwpKTsKKwlpZiAoZXhjZXB0cHVib2lkcyAhPSBO SUwpCisJeworCQlib29sCQlmaXJzdCA9IHRydWU7CisJCVN0cmluZ0luZm9EYXRhIHB1Ym5hbWVz OworCisJCWluaXRTdHJpbmdJbmZvKCZwdWJuYW1lcyk7CisKKwkJZm9yZWFjaF9vaWQocHViaWQs IGV4Y2VwdHB1Ym9pZHMpCisJCXsKKwkJCWNoYXIJICAgKnB1Ym5hbWUgPSBnZXRfcHVibGljYXRp b25fbmFtZShwdWJpZCwgZmFsc2UpOworCisJCQlpZiAoIWZpcnN0KQorCQkJCWFwcGVuZFN0cmlu Z0luZm9TdHJpbmcoJnB1Ym5hbWVzLCAiLCAiKTsKKworCQkJZmlyc3QgPSBmYWxzZTsKKworCQkJ YXBwZW5kU3RyaW5nSW5mb1N0cmluZygmcHVibmFtZXMsIHF1b3RlX2xpdGVyYWxfY3N0cihwdWJu YW1lKSk7CisJCX0KKworCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9PQkpF Q1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCisJCQkJZXJybXNnX3BsdXJhbCgiY2Fubm90 IGF0dGFjaCB0YWJsZSBcIiVzXCIgYXMgcGFydGl0aW9uIGJlY2F1c2UgaXQgaXMgcmVmZXJlbmNl ZCBpbiBwdWJsaWNhdGlvbiBcIiVzXCIgRVhDRVBUIGNsYXVzZSIsCisJCQkJCQkJICAiY2Fubm90 IGF0dGFjaCB0YWJsZSBcIiVzXCIgYXMgcGFydGl0aW9uIGJlY2F1c2UgaXQgaXMgcmVmZXJlbmNl ZCBpbiBwdWJsaWNhdGlvbnMgXCIlc1wiIEVYQ0VQVCBjbGF1c2UiLAorCQkJCQkJCSAgbGlzdF9s ZW5ndGgoZXhjZXB0cHVib2lkcyksCisJCQkJCQkJICBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShh dHRhY2hyZWwpLAorCQkJCQkJCSAgcHVibmFtZXMuZGF0YSksCisJCQkJZXJyZGV0YWlsKCJUaGUg cHVibGljYXRpb24gRVhDRVBUIGNsYXVzZSBjYW5ub3QgY29udGFpbiB0YWJsZXMgdGhhdCBhcmUg cGFydGl0aW9ucy4iKSk7CisJfQorCisJbGlzdF9mcmVlKGV4Y2VwdHB1Ym9pZHMpOworCiAJLyoK IAkgKiBUYWJsZSBiZWluZyBhdHRhY2hlZCBzaG91bGQgbm90IGFscmVhZHkgYmUgcGFydCBvZiBp bmhlcml0YW5jZTsgZWl0aGVyCiAJICogYXMgYSBjaGlsZCB0YWJsZS4uLgpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5k ZXggYzU2NzI1MmFjYzQuLmY0ZDQ5YjYwMThkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTIwMyw2ICsyMDMs NyBAQCBzdGF0aWMgdm9pZCBwcm9jZXNzQ0FTYml0cyhpbnQgY2FzX2JpdHMsIGludCBsb2NhdGlv biwgY29uc3QgY2hhciAqY29uc3RyVHlwZSwKIHN0YXRpYyBQYXJ0aXRpb25TdHJhdGVneSBwYXJz ZVBhcnRpdGlvblN0cmF0ZWd5KGNoYXIgKnN0cmF0ZWd5LCBpbnQgbG9jYXRpb24sCiAJCQkJCQkJ CQkJCQljb3JlX3l5c2Nhbl90IHl5c2Nhbm5lcik7CiBzdGF0aWMgdm9pZCBwcmVwcm9jZXNzX3B1 Yl9hbGxfb2JqdHlwZV9saXN0KExpc3QgKmFsbF9vYmplY3RzX2xpc3QsCisJCQkJCQkJCQkJCUxp c3QgKipwdWJvYmplY3RzLAogCQkJCQkJCQkJCQlib29sICphbGxfdGFibGVzLAogCQkJCQkJCQkJ CQlib29sICphbGxfc2VxdWVuY2VzLAogCQkJCQkJCQkJCQljb3JlX3l5c2Nhbl90IHl5c2Nhbm5l cik7CkBAIC00NTUsNiArNDU2LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2Vs ZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJCQlUcmln Z2VyVHJhbnNpdGlvbnMgVHJpZ2dlclJlZmVyZW5jaW5nCiAJCQkJdmFjdXVtX3JlbGF0aW9uX2xp c3Qgb3B0X3ZhY3V1bV9yZWxhdGlvbl9saXN0CiAJCQkJZHJvcF9vcHRpb25fbGlzdCBwdWJfb2Jq X2xpc3QgcHViX2FsbF9vYmpfdHlwZV9saXN0CisJCQkJcHViX2V4Y2VwdF9vYmpfbGlzdCBvcHRf cHViX2V4Y2VwdF9jbGF1c2UKIAogJXR5cGUgPHJldGNsYXVzZT4gcmV0dXJuaW5nX2NsYXVzZQog JXR5cGUgPG5vZGU+CXJldHVybmluZ19vcHRpb24KQEAgLTU5Miw2ICs1OTQsNyBAQCBzdGF0aWMg Tm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNl cywgTm9kZSAqcXVlcnkpOwogJXR5cGUgPG5vZGU+CXZhcl92YWx1ZSB6b25lX3ZhbHVlCiAldHlw ZSA8cm9sZXNwZWM+IGF1dGhfaWRlbnQgUm9sZVNwZWMgb3B0X2dyYW50ZWRfYnkKICV0eXBlIDxw dWJsaWNhdGlvbm9iamVjdHNwZWM+IFB1YmxpY2F0aW9uT2JqU3BlYworJXR5cGUgPHB1YmxpY2F0 aW9ub2JqZWN0c3BlYz4gUHVibGljYXRpb25FeGNlcHRPYmpTcGVjCiAldHlwZSA8cHVibGljYXRp b25hbGxvYmplY3RzcGVjPiBQdWJsaWNhdGlvbkFsbE9ialNwZWMKIAogJXR5cGUgPGtleXdvcmQ+ IHVucmVzZXJ2ZWRfa2V5d29yZCB0eXBlX2Z1bmNfbmFtZV9rZXl3b3JkCkBAIC0xMDc5Miw3ICsx MDc5NSw3IEBAIEFsdGVyT3duZXJTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhf YXJndHlwZXMgT1dORVIgVE8gUm9sZVNwZWMKICAqCiAgKiBwdWJfYWxsX29ial90eXBlIGlzIG9u ZSBvZjoKICAqCi0gKgkJVEFCTEVTCisgKgkJVEFCTEVTIFtFWENFUFQgW1RBQkxFXSAoIHRhYmxl IFssIC4uLl0gKV0KICAqCQlTRVFVRU5DRVMKICAqCiAgKiBDUkVBVEUgUFVCTElDQVRJT04gRk9S IHB1Yl9vYmogWywgLi4uXSBbV0lUSCBvcHRpb25zXQpAQCAtMTA4MTgsNyArMTA4MjEsOCBAQCBD cmVhdGVQdWJsaWNhdGlvblN0bXQ6CiAJCQkJCUNyZWF0ZVB1YmxpY2F0aW9uU3RtdCAqbiA9IG1h a2VOb2RlKENyZWF0ZVB1YmxpY2F0aW9uU3RtdCk7CiAKIAkJCQkJbi0+cHVibmFtZSA9ICQzOwot CQkJCQlwcmVwcm9jZXNzX3B1Yl9hbGxfb2JqdHlwZV9saXN0KCQ1LCAmbi0+Zm9yX2FsbF90YWJs ZXMsCisJCQkJCXByZXByb2Nlc3NfcHViX2FsbF9vYmp0eXBlX2xpc3QoJDUsICZuLT5wdWJvYmpl Y3RzLAorCQkJCQkJCQkJCQkJCSZuLT5mb3JfYWxsX3RhYmxlcywKIAkJCQkJCQkJCQkJCQkmbi0+ Zm9yX2FsbF9zZXF1ZW5jZXMsCiAJCQkJCQkJCQkJCQkJeXlzY2FubmVyKTsKIAkJCQkJbi0+b3B0 aW9ucyA9ICQ2OwpAQCAtMTA5MzMsMTEgKzEwOTM3LDE3IEBAIHB1Yl9vYmpfbGlzdDoJUHVibGlj YXRpb25PYmpTcGVjCiAJCQkJCXsgJCQgPSBsYXBwZW5kKCQxLCAkMyk7IH0KIAk7CiAKK29wdF9w dWJfZXhjZXB0X2NsYXVzZToKKwkJCUVYQ0VQVCBUQUJMRSAnKCcgcHViX2V4Y2VwdF9vYmpfbGlz dCAnKScJeyAkJCA9ICQ0OyB9CisJCQl8IC8qRU1QVFkqLwkJCQkJCQkJCXsgJCQgPSBOSUw7IH0K KwkJOworCiBQdWJsaWNhdGlvbkFsbE9ialNwZWM6Ci0JCQkJQUxMIFRBQkxFUworCQkJCUFMTCBU QUJMRVMgb3B0X3B1Yl9leGNlcHRfY2xhdXNlCiAJCQkJCXsKIAkJCQkJCSQkID0gbWFrZU5vZGUo UHVibGljYXRpb25BbGxPYmpTcGVjKTsKIAkJCQkJCSQkLT5wdWJvYmp0eXBlID0gUFVCTElDQVRJ T05fQUxMX1RBQkxFUzsKKwkJCQkJCSQkLT5leGNlcHRfdGFibGVzID0gJDM7CiAJCQkJCQkkJC0+ bG9jYXRpb24gPSBAMTsKIAkJCQkJfQogCQkJCXwgQUxMIFNFUVVFTkNFUwpAQCAtMTA5NTQsNiAr MTA5NjQsMjMgQEAgcHViX2FsbF9vYmpfdHlwZV9saXN0OglQdWJsaWNhdGlvbkFsbE9ialNwZWMK IAkJCQkJeyAkJCA9IGxhcHBlbmQoJDEsICQzKTsgfQogCTsKIAorUHVibGljYXRpb25FeGNlcHRP YmpTcGVjOgorCQkJIHJlbGF0aW9uX2V4cHIKKwkJCQl7CisJCQkJCSQkID0gbWFrZU5vZGUoUHVi bGljYXRpb25PYmpTcGVjKTsKKwkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9F WENFUFRfVEFCTEU7CisJCQkJCSQkLT5wdWJ0YWJsZSA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uVGFi bGUpOworCQkJCQkkJC0+cHVidGFibGUtPmV4Y2VwdCA9IHRydWU7CisJCQkJCSQkLT5wdWJ0YWJs ZS0+cmVsYXRpb24gPSAkMTsKKwkJCQkJJCQtPmxvY2F0aW9uID0gQDE7CisJCQkJfQorCTsKKwor cHViX2V4Y2VwdF9vYmpfbGlzdDogUHVibGljYXRpb25FeGNlcHRPYmpTcGVjCisJCQkJCXsgJCQg PSBsaXN0X21ha2UxKCQxKTsgfQorCQkJfCBwdWJfZXhjZXB0X29ial9saXN0ICcsJyBQdWJsaWNh dGlvbkV4Y2VwdE9ialNwZWMKKwkJCQkJeyAkJCA9IGxhcHBlbmQoJDEsICQzKTsgfQorCTsKIAog LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqCiAgKgpAQCAtMTk4MTIsOCArMTk4MzksOSBAQCBwYXJzZVBh cnRpdGlvblN0cmF0ZWd5KGNoYXIgKnN0cmF0ZWd5LCBpbnQgbG9jYXRpb24sIGNvcmVfeXlzY2Fu X3QgeXlzY2FubmVyKQogICogQWxzbywgY2hlY2tzIGlmIHRoZSBwdWJfb2JqZWN0X3R5cGUgaGFz IGJlZW4gc3BlY2lmaWVkIG1vcmUgdGhhbiBvbmNlLgogICovCiBzdGF0aWMgdm9pZAotcHJlcHJv Y2Vzc19wdWJfYWxsX29ianR5cGVfbGlzdChMaXN0ICphbGxfb2JqZWN0c19saXN0LCBib29sICph bGxfdGFibGVzLAotCQkJCQkJCQlib29sICphbGxfc2VxdWVuY2VzLCBjb3JlX3l5c2Nhbl90IHl5 c2Nhbm5lcikKK3ByZXByb2Nlc3NfcHViX2FsbF9vYmp0eXBlX2xpc3QoTGlzdCAqYWxsX29iamVj dHNfbGlzdCwgTGlzdCAqKnB1Ym9iamVjdHMsCisJCQkJCQkJCWJvb2wgKmFsbF90YWJsZXMsIGJv b2wgKmFsbF9zZXF1ZW5jZXMsCisJCQkJCQkJCWNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKQogewog CWlmICghYWxsX29iamVjdHNfbGlzdCkKIAkJcmV0dXJuOwpAQCAtMTk4MzMsNiArMTk4NjEsNyBA QCBwcmVwcm9jZXNzX3B1Yl9hbGxfb2JqdHlwZV9saXN0KExpc3QgKmFsbF9vYmplY3RzX2xpc3Qs IGJvb2wgKmFsbF90YWJsZXMsCiAJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ob2JqLT5sb2NhdGlv bikpOwogCiAJCQkqYWxsX3RhYmxlcyA9IHRydWU7CisJCQkqcHVib2JqZWN0cyA9IGxpc3RfY29u Y2F0KCpwdWJvYmplY3RzLCBvYmotPmV4Y2VwdF90YWJsZXMpOwogCQl9CiAJCWVsc2UgaWYgKG9i ai0+cHVib2JqdHlwZSA9PSBQVUJMSUNBVElPTl9BTExfU0VRVUVOQ0VTKQogCQl7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwppbmRleCA3YTQ5MTg1ZDI5ZC4u NmNhYmNjZTNlM2YgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0 L3Bnb3V0cHV0LmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRw dXQuYwpAQCAtMjA4OSw3ICsyMDg5LDcgQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0 YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAJaWYgKCFlbnRyeS0+cmVwbGljYXRlX3ZhbGlk KQogCXsKIAkJT2lkCQkJc2NoZW1hSWQgPSBnZXRfcmVsX25hbWVzcGFjZShyZWxpZCk7Ci0JCUxp c3QJICAgKnB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlkKTsKKwkJTGlzdAkg ICAqcHViaWRzID0gR2V0UmVsYXRpb25JbmNsdWRlZFB1YmxpY2F0aW9ucyhyZWxpZCk7CiAKIAkJ LyoKIAkJICogV2UgZG9uJ3QgYWNxdWlyZSBhIGxvY2sgb24gdGhlIG5hbWVzcGFjZSBzeXN0ZW0g dGFibGUgYXMgd2UgYnVpbGQKQEAgLTIyMDYsMTQgKzIyMDYsNTAgQEAgZ2V0X3JlbF9zeW5jX2Vu dHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRpb24pCiAJCQkgKi8KIAkJCWlm IChwdWItPmFsbHRhYmxlcykKIAkJCXsKLQkJCQlwdWJsaXNoID0gdHJ1ZTsKLQkJCQlpZiAocHVi LT5wdWJ2aWFyb290ICYmIGFtX3BhcnRpdGlvbikKKwkJCQlMaXN0CSAgICpleGNlcHRwdWJpZHMg PSBOSUw7CisJCQkJTGlzdAkgICAqYW5jZXN0b3JleGNlcHRwdWJpZHMgPSBOSUw7CisKKwkJCQlp ZiAoYW1fcGFydGl0aW9uKQogCQkJCXsKIAkJCQkJTGlzdAkgICAqYW5jZXN0b3JzID0gZ2V0X3Bh cnRpdGlvbl9hbmNlc3RvcnMocmVsaWQpOwogCi0JCQkJCXB1Yl9yZWxpZCA9IGxsYXN0X29pZChh bmNlc3RvcnMpOwotCQkJCQlhbmNlc3Rvcl9sZXZlbCA9IGxpc3RfbGVuZ3RoKGFuY2VzdG9ycyk7 CisJCQkJCS8qCisJCQkJCSAqIE9ubHkgdGhlIHRvcC1tb3N0IGFuY2VzdG9yIG1heSBhcHBlYXIg aW4gdGhlIEVYQ0VQVAorCQkJCQkgKiBjbGF1c2UuIFRoZXJlZm9yZSwgZXhjbHVzaW9uIG11c3Qg YmUgZXZhbHVhdGVkIGF0IHRoZQorCQkJCQkgKiB0b3AtbW9zdCBhbmNlc3Rvci4KKwkJCQkJICov CisJCQkJCWlmIChwdWItPnB1YnZpYXJvb3QpCisJCQkJCXsKKwkJCQkJCXB1Yl9yZWxpZCA9IGxs YXN0X29pZChhbmNlc3RvcnMpOworCQkJCQkJYW5jZXN0b3JfbGV2ZWwgPSBsaXN0X2xlbmd0aChh bmNlc3RvcnMpOworCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJeworCQkJCQkJLyoKKwkJCQkJCSAq IFdoZW4gcHVibGlzaGluZyBwYXJ0aXRpb25zIGluZGl2aWR1YWxseSwgd2UgbXVzdAorCQkJCQkJ ICogc3RpbGwgY2hlY2sgd2hldGhlciB0aGUgdG9wLW1vc3QgYW5jZXN0b3IgaXMKKwkJCQkJCSAq IGV4Y2x1ZGVkLiBJZiB0aGUgcm9vdCBpcyBleGNsdWRlZCwgbm9uZSBvZiBpdHMKKwkJCQkJCSAq IHBhcnRpdGlvbnMgc2hvdWxkIGJlIHB1Ymxpc2hlZC4KKwkJCQkJCSAqLworCQkJCQkJYW5jZXN0 b3JleGNlcHRwdWJpZHMgPSBHZXRSZWxhdGlvbkV4Y2x1ZGVkUHVibGljYXRpb25zKGxsYXN0X29p ZChhbmNlc3RvcnMpKTsKKwkJCQkJfQogCQkJCX0KKworCQkJCS8qCisJCQkJICogQ2hlY2sgaWYg dGhlIHJlc29sdmVkIHJlbGF0aW9uICh0aGUgdGFibGUgaXRzZWxmIG9yIGl0cworCQkJCSAqIHBh cnRpdGlvbiByb290KSBpcyBleHBsaWNpdGx5IGV4Y2x1ZGVkIGZyb20gdGhpcworCQkJCSAqIHB1 YmxpY2F0aW9uLgorCQkJCSAqLworCQkJCWV4Y2VwdHB1YmlkcyA9IEdldFJlbGF0aW9uRXhjbHVk ZWRQdWJsaWNhdGlvbnMocHViX3JlbGlkKTsKKworCQkJCWlmICghbGlzdF9tZW1iZXJfb2lkKGV4 Y2VwdHB1YmlkcywgcHViLT5vaWQpICYmCisJCQkJCSFsaXN0X21lbWJlcl9vaWQoYW5jZXN0b3Jl eGNlcHRwdWJpZHMsIHB1Yi0+b2lkKSkKKwkJCQkJcHVibGlzaCA9IHRydWU7CisKKwkJCQlsaXN0 X2ZyZWUoZXhjZXB0cHViaWRzKTsKKworCQkJCWlmICghcHVibGlzaCkKKwkJCQkJY29udGludWU7 CiAJCQl9CiAKIAkJCWlmICghcHVibGlzaCkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2NhY2hlL3JlbGNhY2hlLmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCmlu ZGV4IDZiNjM0YzlmZmYxLi4xOWEyNGY0NDk0OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvY2FjaGUvcmVsY2FjaGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNo ZS5jCkBAIC01Nzg4LDcgKzU3ODgsOSBAQCBSZWxhdGlvbkdldEV4Y2x1c2lvbkluZm8oUmVsYXRp b24gaW5kZXhSZWxhdGlvbiwKIHZvaWQKIFJlbGF0aW9uQnVpbGRQdWJsaWNhdGlvbkRlc2MoUmVs YXRpb24gcmVsYXRpb24sIFB1YmxpY2F0aW9uRGVzYyAqcHViZGVzYykKIHsKLQlMaXN0CSAgICpw dWJvaWRzOworCUxpc3QJICAgKnB1Ym9pZHMgPSBOSUw7CisJTGlzdAkgICAqZXhjZXB0cHVib2lk cyA9IE5JTDsKKwlMaXN0CSAgICphbGx0YWJsZXNwdWJvaWRzOwogCUxpc3RDZWxsICAgKmxjOwog CU1lbW9yeUNvbnRleHQgb2xkY3h0OwogCU9pZAkJCXNjaGVtYWlkOwpAQCAtNTgyNiw3ICs1ODI4 LDggQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVi bGljYXRpb25EZXNjICpwdWJkZXNjKQogCXB1YmRlc2MtPmdlbmNvbHNfdmFsaWRfZm9yX2RlbGV0 ZSA9IHRydWU7CiAKIAkvKiBGZXRjaCB0aGUgcHVibGljYXRpb24gbWVtYmVyc2hpcCBpbmZvLiAq LwotCXB1Ym9pZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCk7CisJcHVib2lkcyA9 IEdldFJlbGF0aW9uSW5jbHVkZWRQdWJsaWNhdGlvbnMocmVsaWQpOworCWV4Y2VwdHB1Ym9pZHMg PSBHZXRSZWxhdGlvbkV4Y2x1ZGVkUHVibGljYXRpb25zKHJlbGlkKTsKIAlzY2hlbWFpZCA9IFJl bGF0aW9uR2V0TmFtZXNwYWNlKHJlbGF0aW9uKTsKIAlwdWJvaWRzID0gbGlzdF9jb25jYXRfdW5p cXVlX29pZChwdWJvaWRzLCBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoc2NoZW1haWQpKTsKIApAQCAt NTgzOCwxNiArNTg0MSwyMiBAQCBSZWxhdGlvbkJ1aWxkUHVibGljYXRpb25EZXNjKFJlbGF0aW9u IHJlbGF0aW9uLCBQdWJsaWNhdGlvbkRlc2MgKnB1YmRlc2MpCiAJCWZvcmVhY2gobGMsIGFuY2Vz dG9ycykKIAkJewogCQkJT2lkCQkJYW5jZXN0b3IgPSBsZmlyc3Rfb2lkKGxjKTsKKwkJCUxpc3QJ ICAgKmFuY2VzdG9yX3B1Ym9pZHMgPSBHZXRSZWxhdGlvbkluY2x1ZGVkUHVibGljYXRpb25zKGFu Y2VzdG9yKTsKKwkJCUxpc3QJICAgKmFuY2VzdG9yX2V4Y2VwdHB1Ym9pZHMgPSBHZXRSZWxhdGlv bkV4Y2x1ZGVkUHVibGljYXRpb25zKGFuY2VzdG9yKTs7CiAKLQkJCXB1Ym9pZHMgPSBsaXN0X2Nv bmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsCi0JCQkJCQkJCQkJCSBHZXRSZWxhdGlvblB1YmxpY2F0 aW9ucyhhbmNlc3RvcikpOworCQkJcHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVi b2lkcywgYW5jZXN0b3JfcHVib2lkcyk7CiAJCQlzY2hlbWFpZCA9IGdldF9yZWxfbmFtZXNwYWNl KGFuY2VzdG9yKTsKIAkJCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMs CiAJCQkJCQkJCQkJCSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoc2NoZW1haWQpKTsKKwkJCWV4Y2Vw dHB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKGV4Y2VwdHB1Ym9pZHMsCisJCQkJCQkJ CQkJCQkgICBhbmNlc3Rvcl9leGNlcHRwdWJvaWRzKTsKIAkJfQogCX0KLQlwdWJvaWRzID0gbGlz dF9jb25jYXRfdW5pcXVlX29pZChwdWJvaWRzLCBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvbnMoKSk7 CiAKKwlhbGx0YWJsZXNwdWJvaWRzID0gR2V0QWxsVGFibGVzUHVibGljYXRpb25zKCk7CisJcHVi b2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywKKwkJCQkJCQkJCSBsaXN0X2Rp ZmZlcmVuY2Vfb2lkKGFsbHRhYmxlc3B1Ym9pZHMsCisJCQkJCQkJCQkJCQkJCSBleGNlcHRwdWJv aWRzKSk7CiAJZm9yZWFjaChsYywgcHVib2lkcykKIAl7CiAJCU9pZAkJCXB1YmlkID0gbGZpcnN0 X29pZChsYyk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBkZDhhZGVmMGEzZS4uOTVlMWE1NzE0MWMgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuYwpAQCAtNDYyMyw5ICs0NjIzLDU1IEBAIGdldFB1YmxpY2F0aW9ucyhBcmNoaXZlICpm b3V0KQogCQkJKHN0cmNtcChQUWdldHZhbHVlKHJlcywgaSwgaV9wdWJ2aWFyb290KSwgInQiKSA9 PSAwKTsKIAkJcHViaW5mb1tpXS5wdWJnZW5jb2xzX3R5cGUgPQogCQkJKihQUWdldHZhbHVlKHJl cywgaSwgaV9wdWJnZW5jb2xzKSk7CisJCXB1YmluZm9baV0uZXhjZXB0X3RhYmxlcyA9IChTaW1w bGVQdHJMaXN0KQorCQl7CisJCQlOVUxMLCBOVUxMCisJCX07CiAKIAkJLyogRGVjaWRlIHdoZXRo ZXIgd2Ugd2FudCB0byBkdW1wIGl0ICovCiAJCXNlbGVjdER1bXBhYmxlT2JqZWN0KCYocHViaW5m b1tpXS5kb2JqKSwgZm91dCk7CisKKwkJLyoKKwkJICogR2V0IHRoZSBsaXN0IG9mIHRhYmxlcyBm b3IgcHVibGljYXRpb25zIHNwZWNpZmllZCB3aXRoIHRoZSBFWENFUFQKKwkJICogVEFCTEUgY2xh dXNlLiBUaGlzIGlzIGludHJvZHVjZWQgaW4gUG9zdGdyZVNRTCAxOS4KKwkJICoKKwkJICogRVhD RVBUIFRBQkxFUyBpcyBwcm9jZXNzZWQgaGVyZSBhbmQgb3V0cHV0IGRpcmVjdGx5IGJ5CisJCSAq IGR1bXBQdWJsaWNhdGlvbigpLiBUaGlzIGRpZmZlcnMgZnJvbSB0aGUgYXBwcm9hY2ggdXNlZCBp bgorCQkgKiBkdW1wUHVibGljYXRpb25UYWJsZSgpIGFuZCBkdW1wUHVibGljYXRpb25OYW1lc3Bh Y2UoKSwgc2luY2UgdGhhdAorCQkgKiBhcHByb2FjaCB3b3VsZCByZXF1aXJlIEVYQ0VQVCBUQUJM RSBzdXBwb3J0IGZvciBBTFRFUiBQVUJMSUNBVElPTiwKKwkJICogd2hpY2ggaXMgbm90IGN1cnJl bnRseSBzdXBwb3J0ZWQuCisJCSAqLworCQlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxOTAw MDApCisJCXsKKwkJCWludAkJCW50YmxzOworCQkJUEdyZXN1bHQgICAqcmVzX3RibHM7CisKKwkJ CXJlc2V0UFFFeHBCdWZmZXIocXVlcnkpOworCQkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnksCisJ CQkJCQkJICAiU0VMRUNUIHBycmVsaWRcbiIKKwkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdf cHVibGljYXRpb25fcmVsXG4iCisJCQkJCQkJICAiV0hFUkUgcHJwdWJpZCA9ICV1IGFuZCBwcmV4 Y2VwdCIsCisJCQkJCQkJICBwdWJpbmZvW2ldLmRvYmouY2F0SWQub2lkKTsKKworCQkJcmVzX3Ri bHMgPSBFeGVjdXRlU3FsUXVlcnkoZm91dCwgcXVlcnktPmRhdGEsIFBHUkVTX1RVUExFU19PSyk7 CisKKwkJCW50YmxzID0gUFFudHVwbGVzKHJlc190YmxzKTsKKworCQkJZm9yIChpbnQgaiA9IDA7 IGogPCBudGJsczsgaisrKQorCQkJeworCQkJCU9pZAkJCXBycmVsaWQ7CisJCQkJVGFibGVJbmZv ICAqdGJpbmZvOworCisJCQkJcHJyZWxpZCA9IGF0b29pZChQUWdldHZhbHVlKHJlc190YmxzLCBq LCAwKSk7CisKKwkJCQl0YmluZm8gPSBmaW5kVGFibGVCeU9pZChwcnJlbGlkKTsKKworCQkJCWlm ICh0YmluZm8gIT0gTlVMTCkKKwkJCQkJc2ltcGxlX3B0cl9saXN0X2FwcGVuZCgmcHViaW5mb1tp XS5leGNlcHRfdGFibGVzLCB0YmluZm8pOworCQkJfQorCisJCQlQUWNsZWFyKHJlc190YmxzKTsK KwkJfQogCX0KIAogY2xlYW51cDoKQEAgLTQ2NjIsMTAgKzQ3MDgsMjkgQEAgZHVtcFB1YmxpY2F0 aW9uKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9uSW5mbyAqcHViaW5mbykKIAlhcHBl bmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBQVUJMSUNBVElPTiAlcyIsCiAJCQkJCSAgcXB1 Ym5hbWUpOwogCi0JaWYgKHB1YmluZm8tPnB1YmFsbHRhYmxlcyAmJiBwdWJpbmZvLT5wdWJhbGxz ZXF1ZW5jZXMpCi0JCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIEZPUiBBTEwgVEFCTEVT LCBBTEwgU0VRVUVOQ0VTIik7Ci0JZWxzZSBpZiAocHViaW5mby0+cHViYWxsdGFibGVzKQorCWlm IChwdWJpbmZvLT5wdWJhbGx0YWJsZXMpCisJeworCQlpbnQJCQluX2V4Y2VwdCA9IDA7CisKIAkJ YXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgRk9SIEFMTCBUQUJMRVMiKTsKKworCQkvKiBJ bmNsdWRlIEVYQ0VQVCBUQUJMRSBjbGF1c2UgaWYgdGhlcmUgYXJlIGV4Y2VwdF90YWJsZXMuICov CisJCWZvciAoU2ltcGxlUHRyTGlzdENlbGwgKmNlbGwgPSBwdWJpbmZvLT5leGNlcHRfdGFibGVz LmhlYWQ7IGNlbGw7IGNlbGwgPSBjZWxsLT5uZXh0KQorCQl7CisJCQlUYWJsZUluZm8gICp0Ymlu Zm8gPSAoVGFibGVJbmZvICopIGNlbGwtPnB0cjsKKworCQkJaWYgKCsrbl9leGNlcHQgPT0gMSkK KwkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBFWENFUFQgVEFCTEUgKCIpOworCQkJ ZWxzZQorCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCAiKTsKKwkJCWFwcGVuZFBR RXhwQnVmZmVyKHF1ZXJ5LCAiT05MWSAlcyIsIGZtdFF1YWxpZmllZER1bXBhYmxlKHRiaW5mbykp OworCQl9CisJCWlmIChuX2V4Y2VwdCA+IDApCisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVy eSwgIikiKTsKKworCQlpZiAocHViaW5mby0+cHViYWxsc2VxdWVuY2VzKQorCQkJYXBwZW5kUFFF eHBCdWZmZXJTdHIocXVlcnksICIsIEFMTCBTRVFVRU5DRVMiKTsKKwl9CiAJZWxzZSBpZiAocHVi aW5mby0+cHViYWxsc2VxdWVuY2VzKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBG T1IgQUxMIFNFUVVFTkNFUyIpOwogCkBAIC00ODQ1LDYgKzQ5MTAsNyBAQCBnZXRQdWJsaWNhdGlv blRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVz KQogCiAJLyogQ29sbGVjdCBhbGwgcHVibGljYXRpb24gbWVtYmVyc2hpcCBpbmZvLiAqLwogCWlm IChmb3V0LT5yZW1vdGVWZXJzaW9uID49IDE1MDAwMCkKKwl7CiAJCWFwcGVuZFBRRXhwQnVmZmVy U3RyKHF1ZXJ5LAogCQkJCQkJCSAiU0VMRUNUIHRhYmxlb2lkLCBvaWQsIHBycHViaWQsIHBycmVs aWQsICIKIAkJCQkJCQkgInBnX2NhdGFsb2cucGdfZ2V0X2V4cHIocHJxdWFsLCBwcnJlbGlkKSBB UyBwcnJlbHF1YWwsICIKQEAgLTQ4NTcsNiArNDkyMyw5IEBAIGdldFB1YmxpY2F0aW9uVGFibGVz KEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJCQkJ CQkJICIgICAgICBXSEVSRSBhdHRyZWxpZCA9IHByLnBycmVsaWQgQU5EIGF0dG51bSA9IHByYXR0 cnNbc10pXG4iCiAJCQkJCQkJICIgIEVMU0UgTlVMTCBFTkQpIHByYXR0cnMgIgogCQkJCQkJCSAi RlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwciIpOworCQlpZiAoZm91dC0+cmVt b3RlVmVyc2lvbiA+PSAxOTAwMDApCisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBX SEVSRSBOT1QgcHIucHJleGNlcHQiKTsKKwl9CiAJZWxzZQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0 cihxdWVyeSwKIAkJCQkJCQkgIlNFTEVDVCB0YWJsZW9pZCwgb2lkLCBwcnB1YmlkLCBwcnJlbGlk LCAiCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuaAppbmRleCA2ZGVjZWVmMjNmMy4uZTEzOGVmMTI3NmMgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAu aApAQCAtNjc2LDYgKzY3Niw3IEBAIHR5cGVkZWYgc3RydWN0IF9QdWJsaWNhdGlvbkluZm8KIAli b29sCQlwdWJ0cnVuY2F0ZTsKIAlib29sCQlwdWJ2aWFyb290OwogCVB1Ymxpc2hHZW5jb2xzVHlw ZSBwdWJnZW5jb2xzX3R5cGU7CisJU2ltcGxlUHRyTGlzdCBleGNlcHRfdGFibGVzOwogfSBQdWJs aWNhdGlvbkluZm87CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdf ZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IGYxNWJkMDZh ZGNjLi41ODg4OTFhNjJiZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1 bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTMyMDIsNiAr MzIwMiwzNiBAQCBteSAldGVzdHMgPSAoCiAJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9u X3Bvc3RfZGF0YSA9PiAxLCB9LAogCX0sCiAKKwknQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjgnID0+ IHsKKwkJY3JlYXRlX29yZGVyID0+IDUwLAorCQljcmVhdGVfc3FsID0+CisJCSAgJ0NSRUFURSBQ VUJMSUNBVElPTiBwdWI4IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAoZHVtcF90ZXN0LnRl c3RfdGFibGUpOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBQVUJMSUNBVElPTiBw dWI4IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAoT05MWSBkdW1wX3Rlc3QudGVzdF90YWJs ZSkgV0lUSCAocHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScpO1xF CisJCQkveG0sCisJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAx LCB9LAorCX0sCisKKwknQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjknID0+IHsKKwkJY3JlYXRlX29y ZGVyID0+IDUwLAorCQljcmVhdGVfc3FsID0+CisJCSAgJ0NSRUFURSBQVUJMSUNBVElPTiBwdWI5 IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAoZHVtcF90ZXN0LnRlc3RfdGFibGUsIGR1bXBf dGVzdC50ZXN0X3NlY29uZF90YWJsZSk7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRF IFBVQkxJQ0FUSU9OIHB1YjkgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIChPTkxZIGR1bXBf dGVzdC50ZXN0X3RhYmxlLCBPTkxZIGR1bXBfdGVzdC50ZXN0X3NlY29uZF90YWJsZSkgV0lUSCAo cHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScpO1xFCisJCQkveG0s CisJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAorCX0s CisKKwknQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEwJyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA5 MiwKKwkJY3JlYXRlX3NxbCA9PgorCQkgICdDUkVBVEUgUFVCTElDQVRJT04gcHViMTAgRk9SIEFM TCBUQUJMRVMgRVhDRVBUIFRBQkxFIChkdW1wX3Rlc3QudGVzdF9pbmhlcml0YW5jZV9wYXJlbnQp OycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBQVUJMSUNBVElPTiBwdWIxMCBGT1Ig QUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKE9OTFkgZHVtcF90ZXN0LnRlc3RfaW5oZXJpdGFuY2Vf cGFyZW50LCBPTkxZIGR1bXBfdGVzdC50ZXN0X2luaGVyaXRhbmNlX2NoaWxkKSBXSVRIIChwdWJs aXNoID0gJ2luc2VydCwgdXBkYXRlLCBkZWxldGUsIHRydW5jYXRlJyk7XEUKKwkJCS94bSwKKwkJ bGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCisJfSwKKwog CSdDUkVBVEUgU1VCU0NSSVBUSU9OIHN1YjEnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDUwLAog CQljcmVhdGVfc3FsID0+ICdDUkVBVEUgU1VCU0NSSVBUSU9OIHN1YjEKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggNDM1 Mjk5MWU1NDEuLjUwOWU1MGJiZmI2IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUu YworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtMzA3MywxNyArMzA3Myw0MiBAQCBk ZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkJCQkJCQkg ICIgICAgICAgICAgV0hFUkUgYXR0cmVsaWQgPSBwci5wcnJlbGlkIEFORCBhdHRudW0gPSBwcmF0 dHJzW3NdKVxuIgogCQkJCQkJCQkgICIgICAgICAgIEVMU0UgTlVMTCBFTkQpICIKIAkJCQkJCQkJ ICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKLQkJCQkJCQkJICAiICAgICBK T0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIE9OIHAub2lkID0gcHIucHJwdWJp ZFxuIgotCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBjIE9OIGMub2lk ID0gcHIucHJyZWxpZFxuIgotCQkJCQkJCQkgICJXSEVSRSBwci5wcnJlbGlkID0gJyVzJ1xuIgor CQkJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIgT04gcC5v aWQgPSBwci5wcnB1YmlkXG4iCisJCQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNz IGMgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4iCisJCQkJCQkJCSAgIldIRVJFIHByLnBycmVsaWQg PSAnJXMnXG4iLAorCQkJCQkJCQkgIG9pZCwgb2lkLCBvaWQpOworCisJCQkJLyoKKwkJCQkgKiBT a2lwIGVudHJpZXMgd2hlcmUgdGhpcyByZWxhdGlvbiBhcHBlYXJzIGluIHRoZQorCQkJCSAqIHB1 YmxpY2F0aW9uJ3MgRVhDRVBUIFRBQkxFIGxpc3QuCisJCQkJICovCisJCQkJaWYgKHBzZXQuc3Zl cnNpb24gPj0gMTkwMDAwKQorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiIEFORCBO T1QgcHIucHJleGNlcHRcbiIpOworCisJCQkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKIAkJCQkJ CQkJICAiVU5JT05cbiIKIAkJCQkJCQkJICAiU0VMRUNUIHB1Ym5hbWVcbiIKLQkJCQkJCQkJICAi ICAgICAsIE5VTExcbiIKLQkJCQkJCQkJICAiICAgICAsIE5VTExcbiIKKwkJCQkJCQkJICAiCQks IE5VTExcbiIKKwkJCQkJCQkJICAiCQksIE5VTExcbiIKIAkJCQkJCQkJICAiRlJPTSBwZ19jYXRh bG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKLQkJCQkJCQkJICAiV0hFUkUgcC5wdWJhbGx0YWJsZXMg QU5EIHBnX2NhdGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlzaGFibGUoJyVzJylcbiIKLQkJCQkJ CQkJICAiT1JERVIgQlkgMTsiLAotCQkJCQkJCQkgIG9pZCwgb2lkLCBvaWQsIG9pZCk7CisJCQkJ CQkJCSAgIldIRVJFIHAucHViYWxsdGFibGVzIEFORCBwZ19jYXRhbG9nLnBnX3JlbGF0aW9uX2lz X3B1Ymxpc2hhYmxlKCclcycpXG4iLAorCQkJCQkJCQkgIG9pZCk7CisKKwkJCQkvKgorCQkJCSAq IEZvciBGT1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbnMsIHNraXAgcHVibGljYXRpb25zIHRoYXQK KwkJCQkgKiBleHBsaWNpdGx5IGV4Y2x1ZGUgdGhpcyByZWxhdGlvbiB2aWEgRVhDRVBUIFRBQkxF LgorCQkJCSAqLworCQkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAwMCkKKwkJCQkJYXBwZW5k UFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkJCSAgIiAgICAgQU5EIE5PVCBFWElTVFMgKFxuIgor CQkJCQkJCQkJICAiCQlTRUxFQ1QgMVxuIgorCQkJCQkJCQkJICAiCQlGUk9NIHBnX2NhdGFsb2cu cGdfcHVibGljYXRpb25fcmVsIHByXG4iCisJCQkJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5w Z19jbGFzcyBwY1xuIgorCQkJCQkJCQkJICAiCQlPTiBwci5wcnJlbGlkID0gcGMub2lkXG4iCisJ CQkJCQkJCQkgICIJCVdIRVJFIHByLnBycmVsaWQgPSAnJXMnIEFORCBwci5wcnB1YmlkID0gcC5v aWQpXG4iLAorCQkJCQkJCQkJICBvaWQpOworCisJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1 ZiwgIk9SREVSIEJZIDE7Iik7CiAJCQl9CiAJCQllbHNlCiAJCQl7CkBAIC0zMTM0LDYgKzMxNTks MzUgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAqc2NoZW1hbmFtZSwKIAkJ CVBRY2xlYXIocmVzdWx0KTsKIAkJfQogCisJCS8qIFByaW50IHB1YmxpY2F0aW9ucyB3aGVyZSB0 aGUgdGFibGUgaXMgaW4gdGhlIEVYQ0VQVCBjbGF1c2UgKi8KKwkJaWYgKHBzZXQuc3ZlcnNpb24g Pj0gMTkwMDAwKQorCQl7CisJCQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJCSAgIlNF TEVDVCBwdWJuYW1lXG4iCisJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9u IHBcbiIKKwkJCQkJCQkgICJKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIE9O IHAub2lkID0gcHIucHJwdWJpZFxuIgorCQkJCQkJCSAgIldIRVJFIHByLnBycmVsaWQgPSAnJXMn IEFORCBwci5wcmV4Y2VwdFxuIgorCQkJCQkJCSAgIk9SREVSIEJZIDE7Iiwgb2lkKTsKKworCQkJ cmVzdWx0ID0gUFNRTGV4ZWMoYnVmLmRhdGEpOworCQkJaWYgKCFyZXN1bHQpCisJCQkJZ290byBl cnJvcl9yZXR1cm47CisJCQllbHNlCisJCQkJdHVwbGVzID0gUFFudHVwbGVzKHJlc3VsdCk7CisK KwkJCWlmICh0dXBsZXMgPiAwKQorCQkJCXByaW50VGFibGVBZGRGb290ZXIoJmNvbnQsIF8oIkV4 Y2VwdCBQdWJsaWNhdGlvbnM6IikpOworCisJCQkvKiBNaWdodCBiZSBhbiBlbXB0eSBzZXQgLSB0 aGF0J3Mgb2sgKi8KKwkJCWZvciAoaSA9IDA7IGkgPCB0dXBsZXM7IGkrKykKKwkJCXsKKwkJCQlw cmludGZQUUV4cEJ1ZmZlcigmYnVmLCAiICAgIFwiJXNcIiIsIFBRZ2V0dmFsdWUocmVzdWx0LCBp LCAwKSk7CisKKwkJCQlwcmludFRhYmxlQWRkRm9vdGVyKCZjb250LCBidWYuZGF0YSk7CisJCQl9 CisJCQlQUWNsZWFyKHJlc3VsdCk7CisJCX0KKwogCQkvKgogCQkgKiBJZiB2ZXJib3NlLCBwcmlu dCBOT1QgTlVMTCBjb25zdHJhaW50cy4KIAkJICovCkBAIC02NzUzLDggKzY4MDcsMTIgQEAgZGVz Y3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJCQkJCQkgICIgICAgIHBn X2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByXG4iCiAJCQkJCQkJICAiV0hFUkUgYy5yZWxu YW1lc3BhY2UgPSBuLm9pZFxuIgogCQkJCQkJCSAgIiAgQU5EIGMub2lkID0gcHIucHJyZWxpZFxu IgotCQkJCQkJCSAgIiAgQU5EIHByLnBycHViaWQgPSAnJXMnXG4iCi0JCQkJCQkJICAiT1JERVIg QlkgMSwyIiwgcHViaWQpOworCQkJCQkJCSAgIiAgQU5EIHByLnBycHViaWQgPSAnJXMnXG4iLCBw dWJpZCk7CisKKwkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAwMCkKKwkJCQlhcHBlbmRQUUV4 cEJ1ZmZlcigmYnVmLCAiICBBTkQgTk9UIHByLnByZXhjZXB0XG4iKTsKKworCQkJYXBwZW5kUFFF eHBCdWZmZXIoJmJ1ZiwgIk9SREVSIEJZIDEsMiIpOwogCQkJaWYgKCFhZGRGb290ZXJUb1B1Ymxp Y2F0aW9uRGVzYygmYnVmLCBfKCJUYWJsZXM6IiksIGZhbHNlLCAmY29udCkpCiAJCQkJZ290byBl cnJvcl9yZXR1cm47CiAKQEAgLTY3NzIsNiArNjgzMCwyMyBAQCBkZXNjcmliZVB1YmxpY2F0aW9u cyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCQkJCQlnb3RvIGVycm9yX3JldHVybjsKIAkJCX0KIAkJ fQorCQllbHNlCisJCXsKKwkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAwMCkKKwkJCXsKKwkJ CQkvKiBHZXQgdGFibGVzIGluIHRoZSBFWENFUFQgY2xhdXNlIGZvciB0aGlzIHB1YmxpY2F0aW9u ICovCisJCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkJICAiU0VMRUNUIG4ubnNw bmFtZSB8fCAnLicgfHwgYy5yZWxuYW1lXG4iCisJCQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5w Z19jbGFzcyBjXG4iCisJCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX25hbWVzcGFj ZSBuIE9OIG4ub2lkID0gYy5yZWxuYW1lc3BhY2VcbiIKKwkJCQkJCQkJICAiICAgICBKT0lOIHBn X2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIE9OIGMub2lkID0gcHIucHJyZWxpZFxuIgor CQkJCQkJCQkgICJXSEVSRSBwci5wcnB1YmlkID0gJyVzJyBBTkQgcHIucHJleGNlcHRcbiIKKwkJ CQkJCQkJICAiT1JERVIgQlkgMSIsIHB1YmlkKTsKKwkJCQlpZiAoIWFkZEZvb3RlclRvUHVibGlj YXRpb25EZXNjKCZidWYsIF8oIkV4Y2VwdCB0YWJsZXM6IiksCisJCQkJCQkJCQkJCQl0cnVlLCAm Y29udCkpCisJCQkJCWdvdG8gZXJyb3JfcmV0dXJuOworCQkJfQorCQl9CiAKIAkJcHJpbnRUYWJs ZSgmY29udCwgcHNldC5xdWVyeUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOwogCQlwcmludFRh YmxlQ2xlYW51cCgmY29udCk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRl LmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggYjJkYmE2ZDEwYWIu Ljg5MjdmN2U2ZjIyIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMK KysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0zNjY5LDcgKzM2NjksMTcg QEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBpZiAoTWF0Y2hl cygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiQUxMIikpCiAJCUNP TVBMRVRFX1dJVEgoIlRBQkxFUyIsICJTRVFVRU5DRVMiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJD UkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJBTEwiLCAiVEFCTEVTIikp Ci0JCUNPTVBMRVRFX1dJVEgoIldJVEggKCIpOworCQlDT01QTEVURV9XSVRIKCJFWENFUFQgVEFC TEUgKCIsICJXSVRIICgiKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJ T04iLCBNYXRjaEFueSwgIkZPUiIsICJBTEwiLCAiVEFCTEVTIiwgIkVYQ0VQVCIpKQorCQlDT01Q TEVURV9XSVRIKCJUQUJMRSAoIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwgIlBVQkxJ Q0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiQUxMIiwgIlRBQkxFUyIsICJFWENFUFQiLCAiVEFC TEUiKSkKKwkJQ09NUExFVEVfV0lUSCgiKCIpOworCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFURSIs ICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIkFMTCIsICJUQUJMRVMiLCAiRVhDRVBU IiwgIlRBQkxFIiwgIigiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9y X2xpc3Rfb2ZfdGFibGVzKTsKKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJ T04iLCBNYXRjaEFueSwgIkZPUiIsICJBTEwiLCAiVEFCTEVTIiwgIkVYQ0VQVCIsICJUQUJMRSIs ICIoIiwgTWF0Y2hBbnlOKSAmJiBlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKKwkJQ09NUExFVEVf V0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzKTsKKwllbHNlIGlmIChN YXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJBTEwiLCAi VEFCTEVTIiwgIkVYQ0VQVCIsICJUQUJMRSIsICIoIiwgTWF0Y2hBbnlOKSAmJiAhZW5kc193aXRo KHByZXZfd2QsICcsJykpCisJCUNPTVBMRVRFX1dJVEgoIikiKTsKIAllbHNlIGlmIChNYXRjaGVz KCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRVMiKSkKIAkJ Q09NUExFVEVfV0lUSCgiSU4gU0NIRU1BIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwg IlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiVEFCTEUiLCBNYXRjaEFueSkgJiYgIWVu ZHNfd2l0aChwcmV2X3dkLCAnLCcpKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19wdWJsaWNhdGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCmlu ZGV4IDZlNWY3M2NhYTllLi5hOWY4OWU4OTAwNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wdWJsaWNhdGlvbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGlj YXRpb24uaApAQCAtMTUwLDE2ICsxNTAsMTkgQEAgdHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25S ZWxJbmZvCiAJUmVsYXRpb24JcmVsYXRpb247CiAJTm9kZQkgICAqd2hlcmVDbGF1c2U7CiAJTGlz dAkgICAqY29sdW1uczsKKwlib29sCQlleGNlcHQ7CiB9IFB1YmxpY2F0aW9uUmVsSW5mbzsKIAog ZXh0ZXJuIFB1YmxpY2F0aW9uICpHZXRQdWJsaWNhdGlvbihPaWQgcHViaWQpOwogZXh0ZXJuIFB1 YmxpY2F0aW9uICpHZXRQdWJsaWNhdGlvbkJ5TmFtZShjb25zdCBjaGFyICpwdWJuYW1lLCBib29s IG1pc3Npbmdfb2spOwotZXh0ZXJuIExpc3QgKkdldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCBy ZWxpZCk7CitleHRlcm4gTGlzdCAqR2V0UmVsYXRpb25JbmNsdWRlZFB1YmxpY2F0aW9ucyhPaWQg cmVsaWQpOworZXh0ZXJuIExpc3QgKkdldFJlbGF0aW9uRXhjbHVkZWRQdWJsaWNhdGlvbnMoT2lk IHJlbGlkKTsKIAogLyotLS0tLS0tLS0KLSAqIEV4cGVjdGVkIHZhbHVlcyBmb3IgcHViX3BhcnRv cHQgcGFyYW1ldGVyIG9mIEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKCksCi0gKiB3aGljaCBhbGxv d3MgY2FsbGVycyB0byBzcGVjaWZ5IHdoaWNoIHBhcnRpdGlvbnMgb2YgcGFydGl0aW9uZWQgdGFi bGVzCi0gKiBtZW50aW9uZWQgaW4gdGhlIHB1YmxpY2F0aW9uIHRoZXkgZXhwZWN0IHRvIHNlZS4K KyAqIEV4cGVjdGVkIHZhbHVlcyBmb3IgcHViX3BhcnRvcHQgcGFyYW1ldGVyIG9mCisgKiBHZXRJ bmNsdWRlZFB1YmxpY2F0aW9uUmVsYXRpb25zKCksIHdoaWNoIGFsbG93cyBjYWxsZXJzIHRvIHNw ZWNpZnkgd2hpY2gKKyAqIHBhcnRpdGlvbnMgb2YgcGFydGl0aW9uZWQgdGFibGVzIG1lbnRpb25l ZCBpbiB0aGUgcHVibGljYXRpb24gdGhleSBleHBlY3QgdG8KKyAqIHNlZS4KICAqCiAgKglST09U Oglvbmx5IHRoZSB0YWJsZSBleHBsaWNpdGx5IG1lbnRpb25lZCBpbiB0aGUgcHVibGljYXRpb24K ICAqCUxFQUY6CW9ubHkgbGVhZiBwYXJ0aXRpb25zIGluIGdpdmVuIHRyZWUKQEAgLTE3Miw5ICsx NzUsMTIgQEAgdHlwZWRlZiBlbnVtIFB1YmxpY2F0aW9uUGFydE9wdAogCVBVQkxJQ0FUSU9OX1BB UlRfQUxMLAogfSBQdWJsaWNhdGlvblBhcnRPcHQ7CiAKLWV4dGVybiBMaXN0ICpHZXRQdWJsaWNh dGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCk7 CitleHRlcm4gTGlzdCAqR2V0SW5jbHVkZWRQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQs CisJCQkJCQkJCQkJCSBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQpOworZXh0ZXJuIExp c3QgKkdldEV4Y2x1ZGVkUHVibGljYXRpb25UYWJsZXMoT2lkIHB1YmlkLAorCQkJCQkJCQkJCSAg UHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0KTsKIGV4dGVybiBMaXN0ICpHZXRBbGxUYWJs ZXNQdWJsaWNhdGlvbnModm9pZCk7Ci1leHRlcm4gTGlzdCAqR2V0QWxsUHVibGljYXRpb25SZWxh dGlvbnMoY2hhciByZWxraW5kLCBib29sIHB1YnZpYXJvb3QpOworZXh0ZXJuIExpc3QgKkdldEFs bFB1YmxpY2F0aW9uUmVsYXRpb25zKFB1YmxpY2F0aW9uICpwdWIsIGNoYXIgcmVsa2luZCk7CiBl eHRlcm4gTGlzdCAqR2V0UHVibGljYXRpb25TY2hlbWFzKE9pZCBwdWJpZCk7CiBleHRlcm4gTGlz dCAqR2V0U2NoZW1hUHVibGljYXRpb25zKE9pZCBzY2hlbWFpZCk7CiBleHRlcm4gTGlzdCAqR2V0 U2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHNjaGVtYWlkLApAQCAtMTg5LDYgKzE5NSw3 IEBAIGV4dGVybiBPaWQJR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihPaWQgcHVib2lk LCBMaXN0ICphbmNlc3RvcnMsCiAKIGV4dGVybiBib29sIGlzX3B1Ymxpc2hhYmxlX3JlbGF0aW9u KFJlbGF0aW9uIHJlbCk7CiBleHRlcm4gYm9vbCBpc19zY2hlbWFfcHVibGljYXRpb24oT2lkIHB1 YmlkKTsKK2V4dGVybiBib29sIHB1YmxpY2F0aW9uX2hhc19hbnlfZXhjZXB0X3RhYmxlKE9pZCBw dWJpZCk7CiBleHRlcm4gYm9vbCBjaGVja19hbmRfZmV0Y2hfY29sdW1uX2xpc3QoUHVibGljYXRp b24gKnB1YiwgT2lkIHJlbGlkLAogCQkJCQkJCQkJCU1lbW9yeUNvbnRleHQgbWN4dCwgQml0bWFw c2V0ICoqY29scyk7CiBleHRlcm4gT2JqZWN0QWRkcmVzcyBwdWJsaWNhdGlvbl9hZGRfcmVsYXRp b24oT2lkIHB1YmlkLCBQdWJsaWNhdGlvblJlbEluZm8gKnByaSwKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3B1YmxpY2F0aW9uX3JlbC5oCmluZGV4IDYzZWI3Yzc1ZjUzLi5jZWZjMzhjOWVkOCAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaAorKysgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oCkBAIC0zMyw2ICszMyw3IEBA IENBVEFMT0cocGdfcHVibGljYXRpb25fcmVsLDYxMDYsUHVibGljYXRpb25SZWxSZWxhdGlvbklk KQogCU9pZAkJCW9pZDsJCQkvKiBvaWQgKi8KIAlPaWQJCQlwcnB1YmlkIEJLSV9MT09LVVAocGdf cHVibGljYXRpb24pOyAvKiBPaWQgb2YgdGhlIHB1YmxpY2F0aW9uICovCiAJT2lkCQkJcHJyZWxp ZCBCS0lfTE9PS1VQKHBnX2NsYXNzKTsJLyogT2lkIG9mIHRoZSByZWxhdGlvbiAqLworCWJvb2wJ CXByZXhjZXB0IEJLSV9ERUZBVUxUKGYpOwkvKiByZWxhdGlvbiBpcyBub3QgcHVibGlzaGVkICov CiAKICNpZmRlZglDQVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3Rh cnQgaGVyZSAqLwogCXBnX25vZGVfdHJlZSBwcnF1YWw7CQkvKiBxdWFsaWZpY2F0aW9ucyAqLwpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGYzNzEzMTgzNWJlLi5mZjQxOTQzYTZkYiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25v ZGVzL3BhcnNlbm9kZXMuaApAQCAtNDI5OSw5ICs0Mjk5LDEwIEBAIHR5cGVkZWYgc3RydWN0IEFs dGVyVFNDb25maWd1cmF0aW9uU3RtdAogdHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25UYWJsZQog ewogCU5vZGVUYWcJCXR5cGU7Ci0JUmFuZ2VWYXIgICAqcmVsYXRpb247CQkvKiByZWxhdGlvbiB0 byBiZSBwdWJsaXNoZWQgKi8KKwlSYW5nZVZhciAgICpyZWxhdGlvbjsJCS8qIHB1YmxpY2F0aW9u IHJlbGF0aW9uICovCiAJTm9kZQkgICAqd2hlcmVDbGF1c2U7CS8qIHF1YWxpZmljYXRpb25zICov CiAJTGlzdAkgICAqY29sdW1uczsJCS8qIExpc3Qgb2YgY29sdW1ucyBpbiBhIHB1YmxpY2F0aW9u IHRhYmxlICovCisJYm9vbAkJZXhjZXB0OwkJCS8qIFRydWUgaWYgbGlzdGVkIGluIHRoZSBFWENF UFQgY2xhdXNlICovCiB9IFB1YmxpY2F0aW9uVGFibGU7CiAKIC8qCkBAIC00MzEwLDYgKzQzMTEs NyBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvblRhYmxlCiB0eXBlZGVmIGVudW0gUHVibGlj YXRpb25PYmpTcGVjVHlwZQogewogCVBVQkxJQ0FUSU9OT0JKX1RBQkxFLAkJLyogQSB0YWJsZSAq LworCVBVQkxJQ0FUSU9OT0JKX0VYQ0VQVF9UQUJMRSwJLyogQSB0YWJsZSBpbiB0aGUgRVhDRVBU IGNsYXVzZSAqLwogCVBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9TQ0hFTUEsCS8qIEFsbCB0YWJs ZXMgaW4gc2NoZW1hICovCiAJUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX0NVUl9TQ0hFTUEsCS8q IEFsbCB0YWJsZXMgaW4gZmlyc3QgZWxlbWVudCBvZgogCQkJCQkJCQkJCQkgKiBzZWFyY2hfcGF0 aCAqLwpAQCAtNDMzOCw2ICs0MzQwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25BbGxP YmpTcGVjCiB7CiAJTm9kZVRhZwkJdHlwZTsKIAlQdWJsaWNhdGlvbkFsbE9ialR5cGUgcHVib2Jq dHlwZTsJLyogdHlwZSBvZiB0aGlzIHB1YmxpY2F0aW9uIG9iamVjdCAqLworCUxpc3QJICAgKmV4 Y2VwdF90YWJsZXM7CS8qIHRhYmxlcyBzcGVjaWZpZWQgaW4gdGhlIEVYQ0VQVCBjbGF1c2UgKi8K IAlQYXJzZUxvYwlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3du ICovCiB9IFB1YmxpY2F0aW9uQWxsT2JqU3BlYzsKIApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3B1YmxpY2F0aW9uLm91dAppbmRleCA3ZmI0OWFhZjI5Yi4uODVkYTgxYTFmMjcgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0CkBAIC0yMTMsMzMgKzIxMywxNDAg QEAgTm90LW51bGwgY29uc3RyYWludHM6CiAgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAg ICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IGYgICAgICAgfCBm ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKICgxIHJvdykKIAotRFJPUCBUQUJMRSB0 ZXN0cHViX3RibDI7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzLCB0ZXN0 cHViX2ZvcnRhYmxlLCB0ZXN0cHViX2ZvcnNjaGVtYSwgdGVzdHB1Yl9mb3JfdGJsX3NjaGVtYTsK LUNSRUFURSBUQUJMRSB0ZXN0cHViX3RibDMgKGEgaW50KTsKLUNSRUFURSBUQUJMRSB0ZXN0cHVi X3RibDNhIChiIHRleHQpIElOSEVSSVRTICh0ZXN0cHViX3RibDMpOworLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCistLSBFWENFUFQgVEFCTEUgdGVzdHMgZm9y IG5vcm1hbCB0YWJsZXMKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwotQ1JFQVRFIFBVQkxJQ0FU SU9OIHRlc3RwdWIzIEZPUiBUQUJMRSB0ZXN0cHViX3RibDM7Ci1DUkVBVEUgUFVCTElDQVRJT04g dGVzdHB1YjQgRk9SIFRBQkxFIE9OTFkgdGVzdHB1Yl90YmwzOworLS0gU3BlY2lmeSB0YWJsZSBs aXN0IGluIHRoZSBFWENFUFQgY2xhdXNlIG9mIGEgRk9SIEFMTCBUQUJMRVMgcHVibGljYXRpb24g YW5kCistLSB0aGUgb3B0aW9uYWwgVEFCTEUga2V5d29yZC4KK0NSRUFURSBQVUJMSUNBVElPTiB0 ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFC TEUgKHRlc3RwdWJfdGJsMSwgdGVzdHB1Yl90YmwyKTsKK1xkUnArIHRlc3RwdWJfZm9yYWxsdGFi bGVzX2V4Y2VwdHRhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZQorICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8 IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEg cm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAg ICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKK0V4Y2VwdCB0YWJsZXM6CisgICAgInB1Ymxp Yy50ZXN0cHViX3RibDEiCisgICAgInB1YmxpYy50ZXN0cHViX3RibDIiCisKKy0tIFNwZWNpZnkg dGFibGUgaW4gdGhlIEVYQ0VQVCBjbGF1c2Ugb2YgYSBGT1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlv bgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMSBG T1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKHRlc3RwdWJfdGJsMSk7CitcZFJwKyB0ZXN0cHVi X2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUx CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMg fCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29s dW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3Vz ZXIgfCB0ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorRXhjZXB0IHRhYmxlczoK KyAgICAicHVibGljLnRlc3RwdWJfdGJsMSIKKworLS0gQ2hlY2sgdGhhdCB0aGUgdGFibGUgZGVz Y3JpcHRpb24gc2hvd3MgdGhlIHB1YmxpY2F0aW9ucyB3aGVyZSBpdCBpcyBsaXN0ZWQKKy0tIGlu IHRoZSBFWENFUFQgY2xhdXNlCitcZCB0ZXN0cHViX3RibDEKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBUYWJsZSAicHVibGljLnRlc3RwdWJfdGJsMSIKKyBDb2x1bW4gfCAgVHlwZSAgIHwg Q29sbGF0aW9uIHwgTnVsbGFibGUgfCAgICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAg ICAgICAgIAorLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgaWQgICAgIHwgaW50ZWdlciB8 ICAgICAgICAgICB8IG5vdCBudWxsIHwgbmV4dHZhbCgndGVzdHB1Yl90YmwxX2lkX3NlcSc6OnJl Z2NsYXNzKQorIGRhdGEgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8IAorSW5k ZXhlczoKKyAgICAidGVzdHB1Yl90YmwxX3BrZXkiIFBSSU1BUlkgS0VZLCBidHJlZSAoaWQpCitQ dWJsaWNhdGlvbnM6CisgICAgInRlc3RwdWJfZm9yYWxsdGFibGVzIgorRXhjZXB0IFB1YmxpY2F0 aW9uczoKKyAgICAidGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUiCisgICAgInRlc3Rw dWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMSIKKwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdl czsKK0RST1AgVEFCTEUgdGVzdHB1Yl90YmwyOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2Zv cmFsbHRhYmxlcywgdGVzdHB1Yl9mb3J0YWJsZSwgdGVzdHB1Yl9mb3JzY2hlbWEsIHRlc3RwdWJf Zm9yX3RibF9zY2hlbWEsIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlLCB0ZXN0cHVi X2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTE7CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKy0tIFRlc3RzIGZvciBpbmhlcml0ZWQgdGFibGVzLCBhbmQKKy0t IEVYQ0VQVCBUQUJMRSB0ZXN0cyBmb3IgaW5oZXJpdGVkIHRhYmxlcworLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9 ICdFUlJPUic7CitDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmxfcGFyZW50IChhIGludCk7CitDUkVB VEUgVEFCTEUgdGVzdHB1Yl90YmxfY2hpbGQgKGIgdGV4dCkgSU5IRVJJVFMgKHRlc3RwdWJfdGJs X3BhcmVudCk7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjMgRk9SIFRBQkxFIHRlc3RwdWJf dGJsX3BhcmVudDsKIFxkUnArIHRlc3RwdWIzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViMwogICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8 IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEg cm9vdCAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tCiAgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAg ICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAg ICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKIFRhYmxlczoKLSAgICAicHVibGljLnRlc3Rw dWJfdGJsMyIKLSAgICAicHVibGljLnRlc3RwdWJfdGJsM2EiCisgICAgInB1YmxpYy50ZXN0cHVi X3RibF9jaGlsZCIKKyAgICAicHVibGljLnRlc3RwdWJfdGJsX3BhcmVudCIKIAorQ1JFQVRFIFBV QkxJQ0FUSU9OIHRlc3RwdWI0IEZPUiBUQUJMRSBPTkxZIHRlc3RwdWJfdGJsX3BhcmVudDsKIFxk UnArIHRlc3RwdWI0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViNAogICAgICAgICAgIE93bmVyICAgICAgICAg ICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxl dGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tCiAgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAg ICAgICAgICAgICB8IGYKIFRhYmxlczoKLSAgICAicHVibGljLnRlc3RwdWJfdGJsMyIKKyAgICAi cHVibGljLnRlc3RwdWJfdGJsX3BhcmVudCIKKworLS0gTGlzdCB0aGUgcGFyZW50IHRhYmxlIGlu IHRoZSBFWENFUFQgY2xhdXNlICh3aXRob3V0IE9OTFkgb3IgJyonKQorQ1JFQVRFIFBVQkxJQ0FU SU9OIHRlc3RwdWI1IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAodGVzdHB1Yl90YmxfcGFy ZW50KTsKK1xkUnArIHRlc3RwdWI1CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViNQorICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0 ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAg fCBub25lICAgICAgICAgICAgICB8IGYKK0V4Y2VwdCB0YWJsZXM6CisgICAgInB1YmxpYy50ZXN0 cHViX3RibF9jaGlsZCIKKyAgICAicHVibGljLnRlc3RwdWJfdGJsX3BhcmVudCIKKworLS0gRVhD RVBUIHdpdGggJyonOiBsaXN0IHRoZSB0YWJsZSBhbmQgYWxsIGl0cyBkZXNjZW5kYW50cyBpbiB0 aGUgRVhDRVBUIGNsYXVzZQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI2IEZPUiBBTEwgVEFC TEVTIEVYQ0VQVCBUQUJMRSAodGVzdHB1Yl90YmxfcGFyZW50ICopOworXGRScCsgdGVzdHB1YjYK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1 YmxpY2F0aW9uIHRlc3RwdWI2CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxl cyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0 ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdy ZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwg ZgorRXhjZXB0IHRhYmxlczoKKyAgICAicHVibGljLnRlc3RwdWJfdGJsX2NoaWxkIgorICAgICJw dWJsaWMudGVzdHB1Yl90YmxfcGFyZW50IgorCistLSBFWENFUFQgd2l0aCBPTkxZOiBsaXN0IHRo ZSB0YWJsZSBpbiB0aGUgRVhDRVBUIGNsYXVzZSwgYnV0IG5vdCBpdHMgZGVzY2VuZGFudHMKK0NS RUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNyBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKE9O TFkgdGVzdHB1Yl90YmxfcGFyZW50KTsKK1xkUnArIHRlc3RwdWI3CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHVi NworICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2Vz IHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNv bHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91 c2VyIHwgdCAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQg ICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKK0V4Y2VwdCB0YWJsZXM6 CisgICAgInB1YmxpYy50ZXN0cHViX3RibF9wYXJlbnQiCiAKLURST1AgVEFCTEUgdGVzdHB1Yl90 YmwzLCB0ZXN0cHViX3RibDNhOwotRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViMywgdGVzdHB1YjQ7 CitSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOworRFJPUCBUQUJMRSB0ZXN0cHViX3RibF9wYXJl bnQsIHRlc3RwdWJfdGJsX2NoaWxkOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViMywgdGVzdHB1 YjQsIHRlc3RwdWI1LCB0ZXN0cHViNiwgdGVzdHB1Yjc7CistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0tIEVYQ0VQVCBUQUJMRSB0ZXN0cyBmb3IgcGFydGl0 aW9uZWQgdGFibGVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KK1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBUQUJMRSB0ZXN0 cHViX3Jvb3QoYSBpbnQpIFBBUlRJVElPTiBCWSBSQU5HRShhKTsKK0NSRUFURSBUQUJMRSB0ZXN0 cHViX3BhcnQxIFBBUlRJVElPTiBPRiB0ZXN0cHViX3Jvb3QgRk9SIFZBTFVFUyBGUk9NICgwKSBU TyAoMTAwKTsKK0NSRUFURSBUQUJMRSB0ZXN0cHViX3BhcnQyIFBBUlRJVElPTiBPRiB0ZXN0cHVi X3Jvb3QgRk9SIFZBTFVFUyBGUk9NICgxMDApIFRPICgyMDApOworQ1JFQVRFIFBVQkxJQ0FUSU9O IHRlc3RwdWI4IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAodGVzdHB1Yl9yb290KTsKK1xk UnArIHRlc3RwdWI4OworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1YjgKKyAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVs ZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCBmICAgICAg ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAg ICAgICAgICAgICAgfCBmCitFeGNlcHQgdGFibGVzOgorICAgICJwdWJsaWMudGVzdHB1Yl9yb290 IgorCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjkgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRB QkxFICh0ZXN0cHViX3BhcnQxKTsKK0VSUk9SOiAgY2Fubm90IHVzZSBwdWJsaWNhdGlvbiBFWENF UFQgY2xhdXNlIGZvciByZWxhdGlvbiAidGVzdHB1Yl9wYXJ0MSIKK0RFVEFJTDogIFRoaXMgb3Bl cmF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIGluZGl2aWR1YWwgcGFydGl0aW9ucy4KK0NSRUFU RSBUQUJMRSB0YWJfbWFpbiAoYSBpbnQpIFBBUlRJVElPTiBCWSBSQU5HRShhKTsKKy0tIEF0dGFj aGluZyBhIHBhcnRpdGlvbiBpcyBub3QgYWxsb3dlZCBpZiB0aGUgcGFydGl0aW9uZWQgdGFibGUg YXBwZWFycyBpbiBhCistLSBwdWJsaWNhdGlvbidzIEVYQ0VQVCBjbGF1c2UuCitBTFRFUiBUQUJM RSB0YWJfbWFpbiBBVFRBQ0ggUEFSVElUSU9OIHRlc3RwdWJfcm9vdCBGT1IgVkFMVUVTIEZST00g KDApIFRPICgyMDApOworRVJST1I6ICBjYW5ub3QgYXR0YWNoIHRhYmxlICJ0ZXN0cHViX3Jvb3Qi IGFzIHBhcnRpdGlvbiBiZWNhdXNlIGl0IGlzIHJlZmVyZW5jZWQgaW4gcHVibGljYXRpb24gIid0 ZXN0cHViOCciIEVYQ0VQVCBjbGF1c2UKK0RFVEFJTDogIFRoZSBwdWJsaWNhdGlvbiBFWENFUFQg Y2xhdXNlIGNhbm5vdCBjb250YWluIHRhYmxlcyB0aGF0IGFyZSBwYXJ0aXRpb25zLgorUkVTRVQg Y2xpZW50X21pbl9tZXNzYWdlczsKK0RST1AgVEFCTEUgdGVzdHB1Yl9yb290LCB0ZXN0cHViX3Bh cnQxLCB0ZXN0cHViX3BhcnQyLCB0YWJfbWFpbjsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yjg7 CiAtLS0gVGVzdHMgZm9yIHB1YmxpY2F0aW9ucyB3aXRoIFNFUVVFTkNFUwogQ1JFQVRFIFNFUVVF TkNFIHJlZ3Jlc3NfcHViX3NlcTA7CiBDUkVBVEUgU0VRVUVOQ0UgcHViX3Rlc3QucmVncmVzc19w dWJfc2VxMTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAppbmRleCA4NWIwMGJkNjdj OC4uNTA3MDI4YmVkMzIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0 aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKQEAgLTEw NSwyMCArMTA1LDY5IEBAIFNFTEVDVCBwdWJuYW1lLCBwdWJhbGx0YWJsZXMgRlJPTSBwZ19wdWJs aWNhdGlvbiBXSEVSRSBwdWJuYW1lID0gJ3Rlc3RwdWJfZm9yYWxsCiBcZCsgdGVzdHB1Yl90Ymwy CiBcZFJwKyB0ZXN0cHViX2ZvcmFsbHRhYmxlcwogCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0tIEVYQ0VQVCBUQUJMRSB0ZXN0cyBmb3Igbm9ybWFsIHRh YmxlcworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitTRVQg Y2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CistLSBTcGVjaWZ5IHRhYmxlIGxpc3QgaW4g dGhlIEVYQ0VQVCBjbGF1c2Ugb2YgYSBGT1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbiBhbmQKKy0t IHRoZSBvcHRpb25hbCBUQUJMRSBrZXl3b3JkLgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJf Zm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAodGVz dHB1Yl90YmwxLCB0ZXN0cHViX3RibDIpOworXGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhj ZXB0dGFibGUKKy0tIFNwZWNpZnkgdGFibGUgaW4gdGhlIEVYQ0VQVCBjbGF1c2Ugb2YgYSBGT1Ig QUxMIFRBQkxFUyBwdWJsaWNhdGlvbgorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxs dGFibGVzX2V4Y2VwdHRhYmxlMSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKHRlc3RwdWJf dGJsMSk7CitcZFJwKyB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTEKKy0tIENoZWNr IHRoYXQgdGhlIHRhYmxlIGRlc2NyaXB0aW9uIHNob3dzIHRoZSBwdWJsaWNhdGlvbnMgd2hlcmUg aXQgaXMgbGlzdGVkCistLSBpbiB0aGUgRVhDRVBUIGNsYXVzZQorXGQgdGVzdHB1Yl90YmwxCisK K1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CiBEUk9QIFRBQkxFIHRlc3RwdWJfdGJsMjsKLURS T1AgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9ydGFibGUsIHRl c3RwdWJfZm9yc2NoZW1hLCB0ZXN0cHViX2Zvcl90Ymxfc2NoZW1hOworRFJPUCBQVUJMSUNBVElP TiB0ZXN0cHViX2ZvcmFsbHRhYmxlcywgdGVzdHB1Yl9mb3J0YWJsZSwgdGVzdHB1Yl9mb3JzY2hl bWEsIHRlc3RwdWJfZm9yX3RibF9zY2hlbWEsIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRh YmxlLCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTE7CiAKLUNSRUFURSBUQUJMRSB0 ZXN0cHViX3RibDMgKGEgaW50KTsKLUNSRUFURSBUQUJMRSB0ZXN0cHViX3RibDNhIChiIHRleHQp IElOSEVSSVRTICh0ZXN0cHViX3RibDMpOworLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCistLSBUZXN0cyBmb3IgaW5oZXJpdGVkIHRhYmxlcywgYW5kCistLSBF WENFUFQgVEFCTEUgdGVzdHMgZm9yIGluaGVyaXRlZCB0YWJsZXMKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAn RVJST1InOwotQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWIzIEZPUiBUQUJMRSB0ZXN0cHViX3Ri bDM7Ci1DUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjQgRk9SIFRBQkxFIE9OTFkgdGVzdHB1Yl90 YmwzOwotUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKK0NSRUFURSBUQUJMRSB0ZXN0cHViX3Ri bF9wYXJlbnQgKGEgaW50KTsKK0NSRUFURSBUQUJMRSB0ZXN0cHViX3RibF9jaGlsZCAoYiB0ZXh0 KSBJTkhFUklUUyAodGVzdHB1Yl90YmxfcGFyZW50KTsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0 cHViMyBGT1IgVEFCTEUgdGVzdHB1Yl90YmxfcGFyZW50OwogXGRScCsgdGVzdHB1YjMKK0NSRUFU RSBQVUJMSUNBVElPTiB0ZXN0cHViNCBGT1IgVEFCTEUgT05MWSB0ZXN0cHViX3RibF9wYXJlbnQ7 CiBcZFJwKyB0ZXN0cHViNAorLS0gTGlzdCB0aGUgcGFyZW50IHRhYmxlIGluIHRoZSBFWENFUFQg Y2xhdXNlICh3aXRob3V0IE9OTFkgb3IgJyonKQorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI1 IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAodGVzdHB1Yl90YmxfcGFyZW50KTsKK1xkUnAr IHRlc3RwdWI1CistLSBFWENFUFQgd2l0aCAnKic6IGxpc3QgdGhlIHRhYmxlIGFuZCBhbGwgaXRz IGRlc2NlbmRhbnRzIGluIHRoZSBFWENFUFQgY2xhdXNlCitDUkVBVEUgUFVCTElDQVRJT04gdGVz dHB1YjYgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFICh0ZXN0cHViX3RibF9wYXJlbnQgKik7 CitcZFJwKyB0ZXN0cHViNgorLS0gRVhDRVBUIHdpdGggT05MWTogbGlzdCB0aGUgdGFibGUgaW4g dGhlIEVYQ0VQVCBjbGF1c2UsIGJ1dCBub3QgaXRzIGRlc2NlbmRhbnRzCitDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1YjcgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIChPTkxZIHRlc3RwdWJf dGJsX3BhcmVudCk7CitcZFJwKyB0ZXN0cHViNwogCi1EUk9QIFRBQkxFIHRlc3RwdWJfdGJsMywg dGVzdHB1Yl90YmwzYTsKLURST1AgUFVCTElDQVRJT04gdGVzdHB1YjMsIHRlc3RwdWI0OworUkVT RVQgY2xpZW50X21pbl9tZXNzYWdlczsKK0RST1AgVEFCTEUgdGVzdHB1Yl90YmxfcGFyZW50LCB0 ZXN0cHViX3RibF9jaGlsZDsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1YjMsIHRlc3RwdWI0LCB0 ZXN0cHViNSwgdGVzdHB1YjYsIHRlc3RwdWI3OworCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KKy0tIEVYQ0VQVCBUQUJMRSB0ZXN0cyBmb3IgcGFydGl0aW9u ZWQgdGFibGVzCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K K1NFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBUQUJMRSB0ZXN0cHVi X3Jvb3QoYSBpbnQpIFBBUlRJVElPTiBCWSBSQU5HRShhKTsKK0NSRUFURSBUQUJMRSB0ZXN0cHVi X3BhcnQxIFBBUlRJVElPTiBPRiB0ZXN0cHViX3Jvb3QgRk9SIFZBTFVFUyBGUk9NICgwKSBUTyAo MTAwKTsKK0NSRUFURSBUQUJMRSB0ZXN0cHViX3BhcnQyIFBBUlRJVElPTiBPRiB0ZXN0cHViX3Jv b3QgRk9SIFZBTFVFUyBGUk9NICgxMDApIFRPICgyMDApOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRl c3RwdWI4IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAodGVzdHB1Yl9yb290KTsKK1xkUnAr IHRlc3RwdWI4OworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI5IEZPUiBBTEwgVEFCTEVTIEVY Q0VQVCBUQUJMRSAodGVzdHB1Yl9wYXJ0MSk7CisKK0NSRUFURSBUQUJMRSB0YWJfbWFpbiAoYSBp bnQpIFBBUlRJVElPTiBCWSBSQU5HRShhKTsKKy0tIEF0dGFjaGluZyBhIHBhcnRpdGlvbiBpcyBu b3QgYWxsb3dlZCBpZiB0aGUgcGFydGl0aW9uZWQgdGFibGUgYXBwZWFycyBpbiBhCistLSBwdWJs aWNhdGlvbidzIEVYQ0VQVCBjbGF1c2UuCitBTFRFUiBUQUJMRSB0YWJfbWFpbiBBVFRBQ0ggUEFS VElUSU9OIHRlc3RwdWJfcm9vdCBGT1IgVkFMVUVTIEZST00gKDApIFRPICgyMDApOworCitSRVNF VCBjbGllbnRfbWluX21lc3NhZ2VzOworRFJPUCBUQUJMRSB0ZXN0cHViX3Jvb3QsIHRlc3RwdWJf cGFydDEsIHRlc3RwdWJfcGFydDIsIHRhYl9tYWluOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHVi ODsKIAogLS0tIFRlc3RzIGZvciBwdWJsaWNhdGlvbnMgd2l0aCBTRVFVRU5DRVMKIENSRUFURSBT RVFVRU5DRSByZWdyZXNzX3B1Yl9zZXEwOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0 aW9uL21lc29uLmJ1aWxkIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkCmluZGV4 IGE0YzdkYmFmZjU5Li4wNzI4MmFhM2MxOCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0 aW9uL21lc29uLmJ1aWxkCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZApA QCAtNDYsNiArNDYsNyBAQCB0ZXN0cyArPSB7CiAgICAgICAndC8wMzRfdGVtcG9yYWwucGwnLAog ICAgICAgJ3QvMDM1X2NvbmZsaWN0cy5wbCcsCiAgICAgICAndC8wMzZfc2VxdWVuY2VzLnBsJywK KyAgICAgICd0LzAzN19yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwnLAogICAgICAgJ3QvMTAw X2J1Z3MucGwnLAogICAgIF0sCiAgIH0sCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRp b24vdC8wMzdfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0 aW9uL3QvMDM3X3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMC4uNzg2Nzk5ZWQyNjAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMv dGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsCkBAIC0w LDAgKzEsMjY3IEBACisKKyMgQ29weXJpZ2h0IChjKSAyMDI2LCBQb3N0Z3JlU1FMIEdsb2JhbCBE ZXZlbG9wbWVudCBHcm91cAorCisjIExvZ2ljYWwgcmVwbGljYXRpb24gdGVzdHMgZm9yIEVYQ0VQ VCBUQUJMRSBwdWJsaWNhdGlvbnMKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7Cit1c2UgUG9z dGdyZVNRTDo6VGVzdDo6Q2x1c3RlcjsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczsKK3Vz ZSBUZXN0OjpNb3JlOworCisjIEluaXRpYWxpemUgcHVibGlzaGVyIG5vZGUKK215ICRub2RlX3B1 Ymxpc2hlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygncHVibGlzaGVyJyk7Cisk bm9kZV9wdWJsaXNoZXItPmluaXQoYWxsb3dzX3N0cmVhbWluZyA9PiAnbG9naWNhbCcpOworJG5v ZGVfcHVibGlzaGVyLT5zdGFydDsKKworbXkgJHB1Ymxpc2hlcl9jb25uc3RyID0gJG5vZGVfcHVi bGlzaGVyLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOworCisjIEluaXRpYWxpemUgc3Vi c2NyaWJlciBub2RlCitteSAkbm9kZV9zdWJzY3JpYmVyID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1 c3Rlci0+bmV3KCdzdWJzY3JpYmVyJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5pbml0KGFsbG93c19z dHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsKKyRub2RlX3N1YnNjcmliZXItPnN0YXJ0OworCitteSAk cmVzdWx0OworCitzdWIgdGVzdF9leGNlcHRfcm9vdF9wYXJ0aXRpb24KK3sKKwlteSAoJHB1YnZp YXJvb3QpID0gQF87CisKKwkjIElmIHRoZSByb290IHBhcnRpdGlvbmVkIHRhYmxlIGlzIGluIHRo ZSBFWENFUFQgY2xhdXNlLCBhbGwgaXRzIHBhcnRpdGlvbnMKKwkjIGFyZSBleGNsdWRlZCBmcm9t IHB1YmxpY2F0aW9uLCByZWdhcmRsZXNzIG9mIHRoZQorCSMgcHVibGlzaF92aWFfcGFydGl0aW9u X3Jvb3Qgc2V0dGluZy4KKwkkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkJJ3Bvc3RncmVz JywgcXEoCisJCUNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViX3BhcnQgRk9SIEFMTCBUQUJMRVMg RVhDRVBUIFRBQkxFIChzY2gxLnQxKSBXSVRIIChwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9 ICRwdWJ2aWFyb290KTsKKwkJSU5TRVJUIElOVE8gc2NoMS50MSBWQUxVRVMgKDEpLCAoMTAxKSwg KDE1MSk7CisJKSk7CisJJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ CSJDUkVBVEUgU1VCU0NSSVBUSU9OIHRhcF9zdWJfcGFydCBDT05ORUNUSU9OICckcHVibGlzaGVy X2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9wdWJfcGFydCIKKwkpOworCSRub2RlX3N1YnNjcmli ZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwKKwkJJ3RhcF9z dWJfcGFydCcpOworCisJIyBBZHZhbmNlIHRoZSByZXBsaWNhdGlvbiBzbG90IHRvIGlnbm9yZSBj aGFuZ2VzIGdlbmVyYXRlZCBiZWZvcmUgdGhpcyBwb2ludC4KKwkkbm9kZV9wdWJsaXNoZXItPnNh ZmVfcHNxbCgncG9zdGdyZXMnLAorCQkiU0VMRUNUIHNsb3RfbmFtZSBGUk9NIHBnX3JlcGxpY2F0 aW9uX3Nsb3RfYWR2YW5jZSgndGVzdF9zbG90JywgcGdfY3VycmVudF93YWxfbHNuKCkpOyIKKwkp OworCSRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJCSJJTlNFUlQgSU5U TyBzY2gxLnQxIFZBTFVFUyAoMiksICgxMDIpLCAoMTUyKSIpOworCisJIyBWZXJpZnkgdGhhdCBk YXRhIGluc2VydGVkIGludG8gdGhlIHBhcnRpdGlvbmVkIHRhYmxlIGlzIG5vdCBwdWJsaXNoZWQg d2hlbgorCSMgaXQgaXMgaW4gdGhlIEVYQ0VQVCBjbGF1c2UuCisJJHJlc3VsdCA9ICRub2RlX3B1 Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJCSJTRUxFQ1QgY291bnQoKikgPSAwIEZS T00gcGdfbG9naWNhbF9zbG90X2dldF9iaW5hcnlfY2hhbmdlcygndGVzdF9zbG90JywgTlVMTCwg TlVMTCwgJ3Byb3RvX3ZlcnNpb24nLCAnMScsICdwdWJsaWNhdGlvbl9uYW1lcycsICd0YXBfcHVi X3BhcnQnKSIKKwkpOworCSRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1 Yl9wYXJ0Jyk7CisKKwkjIENoZWNrIHRoYXQgbm8gcm93cyBhcmUgcmVwbGljYXRlZCB0byBzdWJz Y3JpYmVyCisJJHJlc3VsdCA9CisJICAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgIlNFTEVDVCAqIEZST00gc2NoMS50MSIpOworCWlzKCRyZXN1bHQsIHFxKCksICdjaGVj ayByb3dzIG9uIHJvb3QgdGFibGUnKTsKKworCSRyZXN1bHQgPQorCSAgJG5vZGVfc3Vic2NyaWJl ci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHNjaDEucGFydDEiKTsKKwlp cygkcmVzdWx0LCBxcSgpLCAnY2hlY2sgcm93cyBvbiB0YWJsZSBzY2gxLnBhcnQxJyk7CisKKwkk cmVzdWx0ID0KKwkgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VM RUNUICogRlJPTSBzY2gxLnBhcnQyIik7CisJaXMoJHJlc3VsdCwgcXEoKSwgJ2NoZWNrIHJvd3Mg b24gdGFibGUgc2NoMS5wYXJ0MicpOworCisJJHJlc3VsdCA9CisJICAkbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gc2NoMS5wYXJ0Ml8xIik7CisJ aXMoJHJlc3VsdCwgcXEoKSwgJ2NoZWNrIHJvd3Mgb24gdGFibGUgc2NoMS5wYXJ0Ml8xJyk7CisK KwkkcmVzdWx0ID0KKwkgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAi U0VMRUNUICogRlJPTSBzY2gxLnBhcnQyXzIiKTsKKwlpcygkcmVzdWx0LCBxcSgpLCAnY2hlY2sg cm93cyBvbiB0YWJsZSBzY2gxLnBhcnQyXzInKTsKKworCSRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgncG9zdGdyZXMnLCAiRFJPUCBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9wYXJ0Iik7CisJJG5v ZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgUFVCTElDQVRJT04gdGFw X3B1Yl9wYXJ0OyIpOworfQorCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CisjIEVYQ0VQVCBUQUJMRSB0ZXN0IGNhc2VzIGZvciBub3JtYWwgdGFibGVzCisj ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisjIENyZWF0ZSBz Y2hlbWFzIGFuZCB0YWJsZXMgb24gcHVibGlzaGVyCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgKKwkncG9zdGdyZXMnLCBxcSgKKwlDUkVBVEUgU0NIRU1BIHNjaDE7CisJQ1JFQVRFIFRBQkxF IHNjaDEudGFiMSBBUyBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsMTApIEFTIGE7CisJQ1JFQVRF IFRBQkxFIHNjaDEucGFyZW50IChhIGludCk7CisJQ1JFQVRFIFRBQkxFIHNjaDEuY2hpbGQgKGIg aW50KSBJTkhFUklUUyAoc2NoMS5wYXJlbnQpOworCUNSRUFURSBUQUJMRSBzY2gxLnBhcmVudDEg KGEgaW50KTsKKwlDUkVBVEUgVEFCTEUgc2NoMS5jaGlsZDEgKGIgaW50KSBJTkhFUklUUyAoc2No MS5wYXJlbnQxKTsKKykpOworCisjIENyZWF0ZSBzY2hlbWFzIGFuZCB0YWJsZXMgb24gc3Vic2Ny aWJlcgorJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUNS RUFURSBTQ0hFTUEgc2NoMTsKKwlDUkVBVEUgVEFCTEUgc2NoMS50YWIxIChhIGludCk7CisJQ1JF QVRFIFRBQkxFIHNjaDEucGFyZW50IChhIGludCk7CisJQ1JFQVRFIFRBQkxFIHNjaDEuY2hpbGQg KGIgaW50KSBJTkhFUklUUyAoc2NoMS5wYXJlbnQpOworCUNSRUFURSBUQUJMRSBzY2gxLnBhcmVu dDEgKGEgaW50KTsKKwlDUkVBVEUgVEFCTEUgc2NoMS5jaGlsZDEgKGIgaW50KSBJTkhFUklUUyAo c2NoMS5wYXJlbnQxKTsKKykpOworCisjIEV4Y2x1ZGUgc2NoMS50YWIxIGFuZCB0aGUgcGFyZW50 IHRhYmxlcyBzY2gxLnBhcmVudCBhbmQgT05MWSBzY2gxLnBhcmVudDEgdG8KKyMgdmVyaWZ5IGV4 Y2x1c2lvbiBiZWhhdmlvciBmb3IgaW5oZXJpdGVkIHRhYmxlcyBhbmQgdGhlIGVmZmVjdCBvZiBP TkxZIGluIHRoZQorIyBFWENFUFQgbGlzdC4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsCisJIkNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViX3NjaGVtYSBGT1IgQUxMIFRB QkxFUyBFWENFUFQgVEFCTEUgKHNjaDEudGFiMSwgc2NoMS5wYXJlbnQsIG9ubHkgc2NoMS5wYXJl bnQxKSIKKyk7CisKKyMgQ3JlYXRlIGEgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90IHRvIGhlbHAg d2l0aCBsYXRlciB0ZXN0cy4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs CisJIlNFTEVDVCBwZ19jcmVhdGVfbG9naWNhbF9yZXBsaWNhdGlvbl9zbG90KCd0ZXN0X3Nsb3Qn LCAncGdvdXRwdXQnKSIpOworCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiB0YXBfc3ViX3NjaGVtYSBDT05ORUNUSU9OICckcHVi bGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9wdWJfc2NoZW1hIgorKTsKKworIyBXYWl0 IGZvciBpbml0aWFsIHRhYmxlIHN5bmMgdG8gZmluaXNoCiskbm9kZV9zdWJzY3JpYmVyLT53YWl0 X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsCisJJ3RhcF9zdWJfc2NoZW1h Jyk7CisKKyMgQ2hlY2sgdGhlIHRhYmxlIGRhdGEgZG9lcyBub3Qgc3luYyBmb3IgdGhlIHRhYmxl cyBzcGVjaWZpZWQgaW4gRVhDRVBUIGNsYXVzZQorJHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmli ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIEZST00gc2NoMS50YWIx Iik7CitpcygkcmVzdWx0LCBxcSgwKSwKKwknY2hlY2sgdGhlcmUgaXMgbm8gaW5pdGlhbCBkYXRh IGNvcGllZCBmb3IgdGhlIHRhYmxlcyBzcGVjaWZpZWQgaW4gdGhlIGV4Y2VwdCBjbGF1c2UnCisp OworCisjIEluc2VydCBzb21lIGRhdGEgaW50byB0aGUgdGFibGUgbGlzdGVkIGluIHRoZSBFWENF UFQgY2xhdXNlCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgK KwlJTlNFUlQgSU5UTyBzY2gxLnRhYjEgVkFMVUVTKGdlbmVyYXRlX3NlcmllcygxMSwyMCkpOwor CUlOU0VSVCBJTlRPIHNjaDEuY2hpbGQgVkFMVUVTKGdlbmVyYXRlX3NlcmllcygxMSwyMCksIGdl bmVyYXRlX3NlcmllcygxMSwyMCkpOworKSk7CisKKyMgVmVyaWZ5IHRoYXQgZGF0YSBpbnNlcnRl ZCBpbnRvIGEgdGFibGUgbGlzdGVkIGluIHRoZSBFWENFUFQgY2xhdXNlIGlzIG5vdAorIyBwdWJs aXNoZWQuCiskcmVzdWx0ID0gJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywK KwkiU0VMRUNUIGNvdW50KCopID0gMCBGUk9NIHBnX2xvZ2ljYWxfc2xvdF9nZXRfYmluYXJ5X2No YW5nZXMoJ3Rlc3Rfc2xvdCcsIE5VTEwsIE5VTEwsICdwcm90b192ZXJzaW9uJywgJzEnLCAncHVi bGljYXRpb25fbmFtZXMnLCAndGFwX3N1Yl9zY2hlbWEnKSIKKyk7CitpcygkcmVzdWx0LCBxcSh0 KSwKKwkndmVyaWZ5IG5vIGNoYW5nZXMgZm9yIHRhYmxlIGxpc3RlZCBpbiB0aGUgRVhDRVBUIGNs YXVzZSBhcmUgcHJlc2VudCBpbiB0aGUgcmVwbGljYXRpb24gc2xvdCcKKyk7CisKKyMgVGhpcyBz aG91bGQgYmUgcHVibGlzaGVkIGJlY2F1c2UgT05MWSBzY2gxLnBhcmVudDEgd2FzIHNwZWNpZmll ZCBpbiB0aGUKKyMgRVhDRVBUIGNsYXVzZSwgc28gdGhlIGV4Y2x1c2lvbiBhcHBsaWVzIG9ubHkg dG8gdGhlIHBhcmVudCB0YWJsZSBhbmQgbm90IHRvCisjIGl0cyBjaGlsZC4KKyRub2RlX3B1Ymxp c2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIklOU0VSVCBJTlRPIHNjaDEuY2hpbGQxIFZB TFVFUyhnZW5lcmF0ZV9zZXJpZXMoMTEsMjApLCBnZW5lcmF0ZV9zZXJpZXMoMTEsMjApKSIKKyk7 CisKKyMgVmVyaWZ5IHRoYXQgZGF0YSBpbnNlcnRlZCBpbnRvIGEgdGFibGUgbGlzdGVkIGluIHRo ZSBFWENFUFQgY2xhdXNlIGlzIG5vdAorIyByZXBsaWNhdGVkLgorJG5vZGVfcHVibGlzaGVyLT53 YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX3NjaGVtYScpOworJHJlc3VsdCA9CisgICRub2RlX3N1 YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIEZST00gc2No MS50YWIxIik7CitpcygkcmVzdWx0LCBxcSgwKSwgJ2NoZWNrIHJlcGxpY2F0ZWQgaW5zZXJ0cyBv biBzdWJzY3JpYmVyJyk7CiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3Fs KCdwb3N0Z3JlcycsICJTRUxFQ1QgY291bnQoKikgRlJPTSBzY2gxLmNoaWxkIik7CitpcygkcmVz dWx0LCBxcSgwKSwgJ2NoZWNrIHJlcGxpY2F0ZWQgaW5zZXJ0cyBvbiBzdWJzY3JpYmVyJyk7Cisk cmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxF Q1QgY291bnQoKikgRlJPTSBzY2gxLmNoaWxkMSIpOworaXMoJHJlc3VsdCwgcXEoMTApLCAnY2hl Y2sgcmVwbGljYXRlZCBpbnNlcnRzIG9uIHN1YnNjcmliZXInKTsKKworIyBjbGVhbnVwCiskbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgU1VCU0NSSVBUSU9OIHRh cF9zdWJfc2NoZW1hIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMn LCBxcSgKKwlEUk9QIFBVQkxJQ0FUSU9OIHRhcF9wdWJfc2NoZW1hOworCVRSVU5DQVRFIFRBQkxF IHNjaDEudGFiMTsKKykpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICJUUlVOQ0FURSBUQUJMRSBzY2gxLnRhYjEiKTsKKworIyA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorIyBFWENFUFQgVEFCTEUgdGVzdCBjYXNlcyBmb3IgcGFy dGl0aW9uZWQgdGFibGVzCisjIENoZWNrIGJlaGF2aW9yIG9mIEVYQ0VQVCBUQUJMRSB3aXRoIHB1 Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290IG9uIGEKKyMgcGFydGl0aW9uZWQgdGFibGUgYW5kIGl0 cyBwYXJ0aXRpb25zLgorIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQorIyBTZXR1cCBwYXJ0aXRpb25lZCB0YWJsZSBhbmQgcGFydGl0aW9ucyBvbiB0aGUgcHVi bGlzaGVyIHRoYXQgbWFwIHRvIG5vcm1hbAorIyB0YWJsZXMgb24gdGhlIHN1YnNjcmliZXIKKyRu b2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUNSRUFURSBUQUJM RSBzY2gxLnQxKGEgaW50KSBQQVJUSVRJT04gQlkgUkFOR0UoYSk7CisJQ1JFQVRFIFRBQkxFIHNj aDEucGFydDEgUEFSVElUSU9OIE9GIHNjaDEudDEgRk9SIFZBTFVFUyBGUk9NICgwKSBUTyAoMTAw KTsKKwlDUkVBVEUgVEFCTEUgc2NoMS5wYXJ0MiBQQVJUSVRJT04gT0Ygc2NoMS50MSBGT1IgVkFM VUVTIEZST00gKDEwMCkgVE8gKDIwMCkgUEFSVElUSU9OIEJZIFJBTkdFKGEpOzsKKwlDUkVBVEUg VEFCTEUgc2NoMS5wYXJ0Ml8xIFBBUlRJVElPTiBPRiBzY2gxLnBhcnQyIEZPUiBWQUxVRVMgRlJP TSAoMTAwKSBUTyAoMTUwKTsKKwlDUkVBVEUgVEFCTEUgc2NoMS5wYXJ0Ml8yIFBBUlRJVElPTiBP RiBzY2gxLnBhcnQyIEZPUiBWQUxVRVMgRlJPTSAoMTUwKSBUTyAoMjAwKTsKKykpOworCiskbm9k ZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJQ1JFQVRFIFRBQkxF IHNjaDEudDEoYSBpbnQpOworCUNSRUFURSBUQUJMRSBzY2gxLnBhcnQxKGEgaW50KTsKKwlDUkVB VEUgVEFCTEUgc2NoMS5wYXJ0MihhIGludCk7CisJQ1JFQVRFIFRBQkxFIHNjaDEucGFydDJfMShh IGludCk7CisJQ1JFQVRFIFRBQkxFIHNjaDEucGFydDJfMihhIGludCk7CispKTsKKwordGVzdF9l eGNlcHRfcm9vdF9wYXJ0aXRpb24oJ2ZhbHNlJyk7Cit0ZXN0X2V4Y2VwdF9yb290X3BhcnRpdGlv bigndHJ1ZScpOworCisjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CisjIFRlc3Qgd2hlbiBhIHN1YnNjcmlwdGlvbiBpcyBzdWJzY3JpYmluZyB0byBtdWx0aXBs ZSBwdWJsaWNhdGlvbnMKKyMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKworIyBPSyB3aGVuIGEgdGFibGUgaXMgZXhjbHVkZWQgYnkgcHViMSBFWENFUFQgVEFC TEUsIGJ1dCBpdCBpcyBpbmNsdWRlZCBieSBwdWIyCisjIEZPUiBUQUJMRQorJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJQ1JFQVRFIFBVQkxJQ0FUSU9OIHRh cF9wdWIxIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAoc2NoMS50YWIxKTsKKwlDUkVBVEUg UFVCTElDQVRJT04gdGFwX3B1YjIgRk9SIFRBQkxFIHNjaDEudGFiMTsKKwlJTlNFUlQgSU5UTyBz Y2gxLnRhYjEgVkFMVUVTKDEpOworKSk7Ciskbm9kZV9zdWJzY3JpYmVyLT5wc3FsKCdwb3N0Z3Jl cycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04gdGFwX3N1YiBDT05ORUNUSU9OICckcHVibGlzaGVy X2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9wdWIxLCB0YXBfcHViMiIKKyk7Ciskbm9kZV9zdWJz Y3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICd0YXBf c3ViJyk7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxKElOU0VS VCBJTlRPIHNjaDEudGFiMSBWQUxVRVMoMikpKTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3Jf Y2F0Y2h1cCgndGFwX3N1YicpOworCiskcmVzdWx0ID0gJG5vZGVfcHVibGlzaGVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUICogRlJPTSBzY2gxLnRhYjEgT1JERVIgQlkgYSIpOwor aXMoICRyZXN1bHQsIHFxKDEKKzIpLAorCSJjaGVjayByZXBsaWNhdGlvbiBvZiBhIHRhYmxlIGlu IHRoZSBFWENFUFQgY2xhdXNlIG9mIG9uZSBwdWJsaWNhdGlvbiBidXQgaW5jbHVkZWQgYnkgYW5v dGhlciIKKyk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSgK KwlEUk9QIFBVQkxJQ0FUSU9OIHRhcF9wdWIyOworCVRSVU5DQVRFIHNjaDEudGFiMTsKKykpOwor JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxKFRSVU5DQVRFIHNjaDEu dGFiMSkpOworCisjIE9LIHdoZW4gYSB0YWJsZSBpcyBleGNsdWRlZCBieSBwdWIxIEVYQ0VQVCBU QUJMRSwgYnV0IGl0IGlzIGluY2x1ZGVkIGJ5IHB1YjIKKyMgRk9SIEFMTCBUQUJMRVMKKyRub2Rl X3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUNSRUFURSBQVUJMSUNB VElPTiB0YXBfcHViMiBGT1IgQUxMIFRBQkxFUzsKKwlJTlNFUlQgSU5UTyBzY2gxLnRhYjEgVkFM VUVTKDEpOworKSk7Ciskbm9kZV9zdWJzY3JpYmVyLT5wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFU RSBTVUJTQ1JJUFRJT04gdGFwX3N1YiBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBV QkxJQ0FUSU9OIHRhcF9wdWIxLCB0YXBfcHViMiIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0 X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNoZXIsICd0YXBfc3ViJyk7CisKKyRu b2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsIHFxKElOU0VSVCBJTlRPIHNjaDEu dGFiMSBWQUxVRVMoMikpKTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFw X3N1YicpOworCiskcmVzdWx0ID0gJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywKKwkiU0VMRUNUICogRlJPTSBzY2gxLnRhYjEgT1JERVIgQlkgYSIpOworaXMoICRyZXN1bHQs IHFxKDEKKzIpLAorCSJjaGVjayByZXBsaWNhdGlvbiBvZiBhIHRhYmxlIGluIHRoZSBFWENFUFQg Y2xhdXNlIG9mIG9uZSBwdWJsaWNhdGlvbiBidXQgaW5jbHVkZWQgYnkgYW5vdGhlciIKKyk7CisK KyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnRFJPUCBTVUJTQ1JJUFRJ T04gdGFwX3N1YicpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0RS T1AgUFVCTElDQVRJT04gdGFwX3B1YjEnKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdw b3N0Z3JlcycsICdEUk9QIFBVQkxJQ0FUSU9OIHRhcF9wdWIyJyk7CisKKyRub2RlX3B1Ymxpc2hl ci0+c3RvcCgnZmFzdCcpOworCitkb25lX3Rlc3RpbmcoKTsKLS0gCjIuNDMuMAoK --0000000000008b313a064bedd41f Content-Type: application/octet-stream; name="v53-0003-Support-DROP-EXCEPT-TABLE-in-ALTER-PUBLICATION.patch" Content-Disposition: attachment; filename="v53-0003-Support-DROP-EXCEPT-TABLE-in-ALTER-PUBLICATION.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm7688kx2 RnJvbSA0Y2ViZjQwNTlhNzQ2MmI5NGUwYWU4ZDBhZWViNjU3ZTM5NmQwMzYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNoIEMgPHZpZ25lc2gyMUBnbWFpbC5jb20+CkRhdGU6 IFNhdCwgMjggRmViIDIwMjYgMjM6MDU6MDkgKzA1MzAKU3ViamVjdDogW1BBVENIIHY1MyAzLzNd IFN1cHBvcnQgRFJPUCBFWENFUFQgVEFCTEUgaW4gQUxURVIgUFVCTElDQVRJT04KCkV4dGVuZCBB TFRFUiBQVUJMSUNBVElPTiB0byBzdXBwb3J0IERST1AgRVhDRVBUIFRBQkxFIGZvcgpwdWJsaWNh dGlvbnMgZGVmaW5lZCB3aXRoIEZPUiBBTEwgVEFCTEVTLgotLS0KIGRvYy9zcmMvc2dtbC9yZWYv YWx0ZXJfcHVibGljYXRpb24uc2dtbCAgICAgICB8IDE3ICsrKysrKystLS0tCiBzcmMvYmFja2Vu ZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQv Y29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8IDExICsrLS0tLS0KIHNyYy9iaW4vcHNx bC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICA2ICsrLS0KIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0ICAgICB8IDI4ICsrKysrKysrKysrLS0tLS0t LQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsICAgICAgICAgIHwgIDMgKy0K IC4uLi90LzAzN19yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwgICAgICAgICB8IDI5ICsrKysr KysrKysrKysrKysrKysKIDggZmlsZXMgY2hhbmdlZCwgNjkgaW5zZXJ0aW9ucygrKSwgMjkgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlv bi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IDdj MjgzOTEwMzNlLi5kYTA0NmJlNDc0YiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRl cl9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRp b24uc2dtbApAQCAtNDEsNyArNDEsNyBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cgogCiA8cGhy YXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fZHJvcF9v YmplY3Q8L3JlcGxhY2VhYmxlPiBpcyBvbmUgb2Y6PC9waHJhc2U+CiAKLSAgICBUQUJMRSBbIE9O TFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFi bGU+IFsgKiBdIFssIC4uLiBdCisgICAgWyBFWENFUFQgXSBUQUJMRSBbIE9OTFkgXSA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFss IC4uLiBdCiAgICAgVEFCTEVTIElOIFNDSEVNQSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9TQ0hFTUEgfSBbLCAuLi4g XQogCiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfYW5k X2NvbHVtbnM8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KQEAgLTYzLDEwICs2MywxMSBAQCBB TFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVw bGFjZWFibGU+IFJFTkFNRSBUTyA8cgogICAgcHVibGljYXRpb24uICBUaGUgPGxpdGVyYWw+U0VU PC9saXRlcmFsPiBjbGF1c2Ugd2lsbCByZXBsYWNlIHRoZSBsaXN0IG9mCiAgICBleGNlcHQgdGFi bGVzL3RhYmxlcy9zY2hlbWFzIGluIHRoZSBwdWJsaWNhdGlvbiB3aXRoIHRoZSBzcGVjaWZpZWQg bGlzdDsgdGhlCiAgICBleGlzdGluZyBleGNlcHQgdGFibGVzL3RhYmxlcy9zY2hlbWFzIHRoYXQg d2VyZSBwcmVzZW50IGluIHRoZSBwdWJsaWNhdGlvbgotICAgd2lsbCBiZSByZW1vdmVkLiAgVGhl IDxsaXRlcmFsPkFERDwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFsPkRST1A8L2xpdGVyYWw+Ci0gICBj bGF1c2VzIHdpbGwgYWRkIGFuZCByZW1vdmUgb25lIG9yIG1vcmUgdGFibGVzL3NjaGVtYXMgZnJv bSB0aGUgcHVibGljYXRpb24uCi0gICBOb3RlIHRoYXQgYWRkaW5nIHRhYmxlcy9zY2hlbWFzIHRv IGEgcHVibGljYXRpb24gdGhhdCBpcyBhbHJlYWR5IHN1YnNjcmliZWQKLSAgIHRvIHdpbGwgcmVx dWlyZSBhbgorICAgd2lsbCBiZSByZW1vdmVkLiAgVGhlIDxsaXRlcmFsPkFERDwvbGl0ZXJhbD4g Y2xhdXNlcyB3aWxsIGFkZCBvbmUgb3IgbW9yZQorICAgdGFibGVzL3NjaGVtYXMgdG8gdGhlIHB1 YmxpY2F0aW9uLiAgVGhlIDxsaXRlcmFsPkRST1A8L2xpdGVyYWw+IGNsYXVzZXMKKyAgIHdpbGwg cmVtb3ZlIG9uZSBvciBtb3JlIGV4Y2VwdCB0YWJsZXMvdGFibGVzL3NjaGVtYXMgZnJvbSB0aGUg cHVibGljYXRpb24uCisgICBOb3RlIHRoYXQgYWRkaW5nIHRhYmxlcy9zY2hlbWFzIG9yIGRyb3Bw aW5nIGV4Y2VwdCB0YWJsZXMgdG8gYSBwdWJsaWNhdGlvbgorICAgdGhhdCBpcyBhbHJlYWR5IHN1 YnNjcmliZWQgdG8gd2lsbCByZXF1aXJlIGFuCiAgICA8bGluayBsaW5rZW5kPSJzcWwtYWx0ZXJz dWJzY3JpcHRpb24tcGFyYW1zLXJlZnJlc2gtcHVibGljYXRpb24iPgogICAgPGxpdGVyYWw+QUxU RVIgU1VCU0NSSVBUSU9OIC4uLiBSRUZSRVNIIFBVQkxJQ0FUSU9OPC9saXRlcmFsPjwvbGluaz4g YWN0aW9uIG9uIHRoZQogICAgc3Vic2NyaWJpbmcgc2lkZSBpbiBvcmRlciB0byBiZWNvbWUgZWZm ZWN0aXZlLiBOb3RlIGFsc28gdGhhdApAQCAtMjM1LDYgKzIzNiwxMiBAQCBBTFRFUiBQVUJMSUNB VElPTiBteXB1YmxpY2F0aW9uIFNFVCBUQUJMRSB1c2VycyAodXNlcl9pZCwgZmlyc3RuYW1lLCBs YXN0bmFtZSksCiAgICBSZXBsYWNlIHRoZSBwdWJsaWNhdGlvbidzIEVYQ0VQVCB0YWJsZSBsaXN0 OgogPHByb2dyYW1saXN0aW5nPgogQUxURVIgUFVCTElDQVRJT04gbXlwdWJsaWNhdGlvbiBTRVQg RVhDRVBUIFRBQkxFIHVzZXJzLCBkZXBhcnRtZW50czsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJh PgorCisgIDxwYXJhPgorICAgUmVtb3ZlIHRhYmxlcyBmcm9tIHRoZSBwdWJsaWNhdGlvbidzIEVY Q0VQVCB0YWJsZSBsaXN0OgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgUFVCTElDQVRJT04gbXlw dWJsaWNhdGlvbiBEUk9QIEVYQ0VQVCBUQUJMRSB1c2VycywgZGVwYXJ0bWVudHM7CiA8L3Byb2dy YW1saXN0aW5nPjwvcGFyYT4KIAogICA8cGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRp b25jbWRzLmMKaW5kZXggMTY2ZmUzYjBjM2QuLmY0M2VkZDMzMDk4IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9wdWJsaWNhdGlvbmNtZHMuYwpAQCAtMTU2Miw3ICsxNTYyLDcgQEAgQ2hlY2tBbHRlclB1 YmxpY2F0aW9uKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LCBIZWFwVHVwbGUgdHVwLAogCQkJ CWVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCiAJCQkJ ZXJybXNnKCJwdWJsaWNhdGlvbiBcIiVzXCIgaXMgbm90IGRlZmluZWQgYXMgRk9SIEFMTCBUQUJM RVMiLAogCQkJCQkgICBOYW1lU3RyKHB1YmZvcm0tPnB1Ym5hbWUpKSwKLQkJCQllcnJkZXRhaWwo IkVYQ0VQVCBUYWJsZXMgY2Fubm90IGJlIGFkZGVkIHRvIHB1YmxpY2F0aW9ucyB0aGF0IGFyZSBu b3QgZGVmaW5lZCBhcyBGT1IgQUxMIFRBQkxFUy4iKSk7CisJCQkJZXJyZGV0YWlsKCJFWENFUFQg VGFibGVzIGNhbm5vdCBiZSBhZGRlZCB0byBvciBkcm9wcGVkIGZyb20gcHVibGljYXRpb25zIHRo YXQgYXJlIG5vdCBkZWZpbmVkIGFzIEZPUiBBTEwgVEFCTEVTLiIpKTsKIH0KIAogLyoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29t bWFuZHMvdGFibGVjbWRzLmMKaW5kZXggY2VkYmRkMzg1NzAuLjEyZTBkMWEyNTc0IDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMjAzOTUsNyArMjAzOTUsNyBAQCBBVEV4ZWNBdHRhY2hQ YXJ0aXRpb24oTGlzdCAqKndxdWV1ZSwgUmVsYXRpb24gcmVsLCBQYXJ0aXRpb25DbWQgKmNtZCwK IAkJCQkJCQkgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGF0dGFjaHJlbCksCiAJCQkJCQkJICBw dWJuYW1lcy5kYXRhKSwKIAkJCQllcnJkZXRhaWwoIlRoZSBwdWJsaWNhdGlvbiBFWENFUFQgY2xh dXNlIGNhbm5vdCBjb250YWluIHRhYmxlcyB0aGF0IGFyZSBwYXJ0aXRpb25zLiIpLAotCQkJCWVy cmhpbnQoIk1vZGlmeSB0aGUgcHVibGljYXRpb24ncyBFWENFUFQgY2xhdXNlIHVzaW5nIEFMVEVS IFBVQkxJQ0FUSU9OIC4uLiBTRVQgRVhDRVBUIFRBQkxFIGJlZm9yZSBhdHRhY2hpbmcgdGhlIHRh YmxlLiIpKTsKKwkJCQllcnJoaW50KCJNb2RpZnkgdGhlIHB1YmxpY2F0aW9uJ3MgRVhDRVBUIGNs YXVzZSB1c2luZyBBTFRFUiBQVUJMSUNBVElPTiAuLi4gU0VUIEVYQ0VQVCBUQUJMRSBvciBEUk9Q IEVYQ0VQVCBUQUJMRSBiZWZvcmUgYXR0YWNoaW5nIHRoZSB0YWJsZS4iKSk7CiAJfQogCiAJbGlz dF9mcmVlKGV4Y2VwdHB1Ym9pZHMpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggMDU0NDkwOGZjYjkuLjM3ZGVj ZTVlZDk4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTExMDMyLDcgKzExMDMyLDcgQEAgQWx0ZXJQdWJsaWNh dGlvblN0bXQ6CiAJCQkJCWlmIChoYXNfZXhjZXB0X3RhYmxlKQogCQkJCQkJZXJlcG9ydChFUlJP UiwKIAkJCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJPUiksCi0JCQkJCQkJCWVycm1z ZygiRVhDRVBUIFRBQkxFIGNsYXVzZSBhbGxvd2VkIG9ubHkgZm9yIFNFVCBjbGF1c2UiKSk7CisJ CQkJCQkJCWVycm1zZygiRVhDRVBUIFRBQkxFIGNsYXVzZSBhbGxvd2VkIG9ubHkgZm9yIFNFVC9E Uk9QIGNsYXVzZSIpKTsKIAogCQkJCQluLT5hY3Rpb24gPSBBUF9BZGRPYmplY3RzOwogCQkJCQkk JCA9IChOb2RlICopIG47CkBAIC0xMTA0OSwxOCArMTEwNDksMTEgQEAgQWx0ZXJQdWJsaWNhdGlv blN0bXQ6CiAJCQkJfQogCQkJfCBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIERST1AgcHViX29ial9s aXN0CiAJCQkJewotCQkJCQlib29sIGhhc19leGNlcHRfdGFibGUgPSBmYWxzZTsKIAkJCQkJQWx0 ZXJQdWJsaWNhdGlvblN0bXQgKm4gPSBtYWtlTm9kZShBbHRlclB1YmxpY2F0aW9uU3RtdCk7CiAK IAkJCQkJbi0+cHVibmFtZSA9ICQzOwogCQkJCQluLT5wdWJvYmplY3RzID0gJDU7Ci0JCQkJCWhh c19leGNlcHRfdGFibGUgPSBwcmVwcm9jZXNzX3B1Ym9ial9saXN0KG4tPnB1Ym9iamVjdHMsCi0J CQkJCQkJCQkJCQkJCQkgIHl5c2Nhbm5lcik7Ci0JCQkJCWlmIChoYXNfZXhjZXB0X3RhYmxlKQot CQkJCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRBWF9FUlJP UiksCi0JCQkJCQkJCWVycm1zZygiRVhDRVBUIFRBQkxFIGNsYXVzZSBhbGxvd2VkIG9ubHkgZm9y IFNFVCBjbGF1c2UiKSk7Ci0KKwkJCQkJcHJlcHJvY2Vzc19wdWJvYmpfbGlzdChuLT5wdWJvYmpl Y3RzLCB5eXNjYW5uZXIpOwogCQkJCQluLT5hY3Rpb24gPSBBUF9Ecm9wT2JqZWN0czsKIAkJCQkJ JCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29t cGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCBmNDVmM2I3 NjUyMy4uOWFiMTE5NzFjMWQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUu aW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTIzMTcsOCArMjMx NywxMCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJQ09NUExFVEVf V0lUSCgiLCIpOwogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxuYW1lPiBEUk9QICovCiAJZWxzZSBp ZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkRST1AiKSkKLQkJ Q09NUExFVEVfV0lUSCgiVEFCTEVTIElOIFNDSEVNQSIsICJUQUJMRSIpOwotCQkvKiBBTFRFUiBQ VUJMSUNBVElPTiA8bmFtZT4gU0VUICovCisJCUNPTVBMRVRFX1dJVEgoIkVYQ0VQVCIsICJUQUJM RVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVC TElDQVRJT04iLCBNYXRjaEFueSwgIkRST1AiLCAiRVhDRVBUIikpCisJCUNPTVBMRVRFX1dJVEgo IlRBQkxFIik7CisJLyogQUxURVIgUFVCTElDQVRJT04gPG5hbWU+IFNFVCAqLwogCWVsc2UgaWYg KE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJTRVQiKSkKIAkJQ09N UExFVEVfV0lUSCgiKCIsICJFWENFUFQiLCAiVEFCTEVTIElOIFNDSEVNQSIsICJUQUJMRSIpOwog CWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJTRVQi LCAiRVhDRVBUIikpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1Ymxp Y2F0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0Cmlu ZGV4IDNjNzBjNTFkZGVjLi4xYjIzMTE2ZGIyOCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTEyOCwxNCArMTI4LDE1IEBAIFRhYmxlcyBmcm9tIHNjaGVt YXM6CiAKIC0tIGZhaWwgLSBjYW4ndCBhZGQgYW4gRVhDRVBUIFRBQkxFIHRvICdGT1IgVEFCTEUn IHB1YmxpY2F0aW9uCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnRhYmxlIEFERCBFWENF UFQgVEFCTEUgdGVzdHB1Yl90YmwxOwotRVJST1I6ICBFWENFUFQgVEFCTEUgY2xhdXNlIGFsbG93 ZWQgb25seSBmb3IgU0VUIGNsYXVzZQorRVJST1I6ICBFWENFUFQgVEFCTEUgY2xhdXNlIGFsbG93 ZWQgb25seSBmb3IgU0VUL0RST1AgY2xhdXNlCiAtLSBmYWlsIC0gY2FuJ3QgZHJvcCBhbiBFWENF UFQgVEFCTEUgZnJvbSAnRk9SIFRBQkxFJyBwdWJsaWNhdGlvbgogQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9mb3J0YWJsZSBEUk9QIEVYQ0VQVCBUQUJMRSB0ZXN0cHViX3RibDE7Ci1FUlJPUjog IEVYQ0VQVCBUQUJMRSBjbGF1c2UgYWxsb3dlZCBvbmx5IGZvciBTRVQgY2xhdXNlCitFUlJPUjog IHB1YmxpY2F0aW9uICJ0ZXN0cHViX2ZvcnRhYmxlIiBpcyBub3QgZGVmaW5lZCBhcyBGT1IgQUxM IFRBQkxFUworREVUQUlMOiAgRVhDRVBUIFRhYmxlcyBjYW5ub3QgYmUgYWRkZWQgdG8gb3IgZHJv cHBlZCBmcm9tIHB1YmxpY2F0aW9ucyB0aGF0IGFyZSBub3QgZGVmaW5lZCBhcyBGT1IgQUxMIFRB QkxFUy4KIC0tIGZhaWwgLSBjYW4ndCBzZXQgYW4gRVhDRVBUIFRBQkxFIHRvICdGT1IgVEFCTEUn IHB1YmxpY2F0aW9uCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnRhYmxlIFNFVCBFWENF UFQgVEFCTEUgdGVzdHB1Yl90YmwxOwogRVJST1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1Yl9mb3J0 YWJsZSIgaXMgbm90IGRlZmluZWQgYXMgRk9SIEFMTCBUQUJMRVMKLURFVEFJTDogIEVYQ0VQVCBU YWJsZXMgY2Fubm90IGJlIGFkZGVkIHRvIHB1YmxpY2F0aW9ucyB0aGF0IGFyZSBub3QgZGVmaW5l ZCBhcyBGT1IgQUxMIFRBQkxFUy4KK0RFVEFJTDogIEVYQ0VQVCBUYWJsZXMgY2Fubm90IGJlIGFk ZGVkIHRvIG9yIGRyb3BwZWQgZnJvbSBwdWJsaWNhdGlvbnMgdGhhdCBhcmUgbm90IGRlZmluZWQg YXMgRk9SIEFMTCBUQUJMRVMuCiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBD UkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JzY2hlbWEgRk9SIFRBQkxFUyBJTiBTQ0hFTUEg cHViX3Rlc3Q7CiAtLSBzaG91bGQgYmUgYWJsZSB0byBjcmVhdGUgcHVibGljYXRpb24gd2l0aCBz Y2hlbWEgYW5kIHRhYmxlIG9mIHRoZSBzYW1lCkBAIC0yMjUsMTQgKzIyNiwxNSBAQCBOb3QtbnVs bCBjb25zdHJhaW50czoKIAogLS0gZmFpbCAtIGNhbid0IGFkZCBhbiBFWENFUFQgVEFCTEUgdG8g c2NoZW1hIHB1YmxpY2F0aW9uCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNjaGVtYSBB REQgRVhDRVBUIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfbm9wazsKLUVSUk9SOiAgRVhDRVBUIFRB QkxFIGNsYXVzZSBhbGxvd2VkIG9ubHkgZm9yIFNFVCBjbGF1c2UKK0VSUk9SOiAgRVhDRVBUIFRB QkxFIGNsYXVzZSBhbGxvd2VkIG9ubHkgZm9yIFNFVC9EUk9QIGNsYXVzZQogLS0gZmFpbCAtIGNh bid0IGRyb3AgYW4gRVhDRVBUIFRBQkxFIGZyb20gc2NoZW1hIHB1YmxpY2F0aW9uCiBBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNjaGVtYSBEUk9QIEVYQ0VQVCBUQUJMRSBwdWJfdGVzdC50 ZXN0cHViX25vcGs7Ci1FUlJPUjogIEVYQ0VQVCBUQUJMRSBjbGF1c2UgYWxsb3dlZCBvbmx5IGZv ciBTRVQgY2xhdXNlCitFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViX2ZvcnNjaGVtYSIgaXMg bm90IGRlZmluZWQgYXMgRk9SIEFMTCBUQUJMRVMKK0RFVEFJTDogIEVYQ0VQVCBUYWJsZXMgY2Fu bm90IGJlIGFkZGVkIHRvIG9yIGRyb3BwZWQgZnJvbSBwdWJsaWNhdGlvbnMgdGhhdCBhcmUgbm90 IGRlZmluZWQgYXMgRk9SIEFMTCBUQUJMRVMuCiAtLSBmYWlsIC0gY2FuJ3Qgc2V0IGFuIEVYQ0VQ VCBUQUJMRSB0byBzY2hlbWEgcHVibGljYXRpb24KIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf Zm9yc2NoZW1hIFNFVCBFWENFUFQgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9ub3BrOwogRVJST1I6 ICBwdWJsaWNhdGlvbiAidGVzdHB1Yl9mb3JzY2hlbWEiIGlzIG5vdCBkZWZpbmVkIGFzIEZPUiBB TEwgVEFCTEVTCi1ERVRBSUw6ICBFWENFUFQgVGFibGVzIGNhbm5vdCBiZSBhZGRlZCB0byBwdWJs aWNhdGlvbnMgdGhhdCBhcmUgbm90IGRlZmluZWQgYXMgRk9SIEFMTCBUQUJMRVMuCitERVRBSUw6 ICBFWENFUFQgVGFibGVzIGNhbm5vdCBiZSBhZGRlZCB0byBvciBkcm9wcGVkIGZyb20gcHVibGlj YXRpb25zIHRoYXQgYXJlIG5vdCBkZWZpbmVkIGFzIEZPUiBBTEwgVEFCTEVTLgogLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAtLSBFWENFUFQgVEFCTEUgdGVz dHMgZm9yIG5vcm1hbCB0YWJsZXMKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpAQCAtMjg1LDEyICsyODcsMTggQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1 Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUgU0VUIEVYQ0VQVCBUQUJMRSB0ZXN0cHViX3RibDEK IEV4Y2VwdCB0YWJsZXM6CiAgICAgInB1YmxpYy50ZXN0cHViX3RibDEiCiAKLS0tIGZhaWwgLSBE cm9wcGluZyBFWENFUFQgdGFibGUgaXMgbm90IHN1cHBvcnRlZC4KKy0tIERyb3AgdGFibGUgZnJv bSB0aGUgRVhDRVBUIGxpc3Qgb2YgYSBGT1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlvbi4KIEFMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlIERST1AgRVhDRVBU IFRBQkxFIHRlc3RwdWJfdGJsMTsKLUVSUk9SOiAgRVhDRVBUIFRBQkxFIGNsYXVzZSBhbGxvd2Vk IG9ubHkgZm9yIFNFVCBjbGF1c2UKK1xkUnArIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRh YmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlv biB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZQorICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBE ZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IGYgICAg ICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25l ICAgICAgICAgICAgICB8IGYKKygxIHJvdykKKwogLS0gZmFpbCAtIEFkZGluZyBFWENFUFQgdGFi bGUgaXMgbm90IHN1cHBvcnRlZC4KIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFi bGVzX2V4Y2VwdHRhYmxlIEFERCBFWENFUFQgVEFCTEUgdGVzdHB1Yl90YmwxOwotRVJST1I6ICBF WENFUFQgVEFCTEUgY2xhdXNlIGFsbG93ZWQgb25seSBmb3IgU0VUIGNsYXVzZQorRVJST1I6ICBF WENFUFQgVEFCTEUgY2xhdXNlIGFsbG93ZWQgb25seSBmb3IgU0VUL0RST1AgY2xhdXNlCiBSRVNF VCBjbGllbnRfbWluX21lc3NhZ2VzOwogRFJPUCBUQUJMRSB0ZXN0cHViX3RibDI7CiBEUk9QIFBV QkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzLCB0ZXN0cHViX2ZvcnRhYmxlLCB0ZXN0cHVi X2ZvcnNjaGVtYSwgdGVzdHB1Yl9mb3JfdGJsX3NjaGVtYSwgdGVzdHB1Yl9mb3JhbGx0YWJsZXNf ZXhjZXB0dGFibGUsIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMTsKQEAgLTM4MCw3 ICszODgsNyBAQCBDUkVBVEUgVEFCTEUgdGFiX21haW4gKGEgaW50KSBQQVJUSVRJT04gQlkgUkFO R0UoYSk7CiBBTFRFUiBUQUJMRSB0YWJfbWFpbiBBVFRBQ0ggUEFSVElUSU9OIHRlc3RwdWJfcm9v dCBGT1IgVkFMVUVTIEZST00gKDApIFRPICgyMDApOwogRVJST1I6ICBjYW5ub3QgYXR0YWNoIHRh YmxlICJ0ZXN0cHViX3Jvb3QiIGFzIHBhcnRpdGlvbiBiZWNhdXNlIGl0IGlzIHJlZmVyZW5jZWQg aW4gcHVibGljYXRpb24gIid0ZXN0cHViOCciIEVYQ0VQVCBjbGF1c2UKIERFVEFJTDogIFRoZSBw dWJsaWNhdGlvbiBFWENFUFQgY2xhdXNlIGNhbm5vdCBjb250YWluIHRhYmxlcyB0aGF0IGFyZSBw YXJ0aXRpb25zLgotSElOVDogIE1vZGlmeSB0aGUgcHVibGljYXRpb24ncyBFWENFUFQgY2xhdXNl IHVzaW5nIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBTRVQgRVhDRVBUIFRBQkxFIGJlZm9yZSBhdHRh Y2hpbmcgdGhlIHRhYmxlLgorSElOVDogIE1vZGlmeSB0aGUgcHVibGljYXRpb24ncyBFWENFUFQg Y2xhdXNlIHVzaW5nIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBTRVQgRVhDRVBUIFRBQkxFIG9yIERS T1AgRVhDRVBUIFRBQkxFIGJlZm9yZSBhdHRhY2hpbmcgdGhlIHRhYmxlLgogUkVTRVQgY2xpZW50 X21pbl9tZXNzYWdlczsKIERST1AgVEFCTEUgdGVzdHB1Yl9yb290LCB0ZXN0cHViX3BhcnQxLCB0 ZXN0cHViX3BhcnQyLCB0YWJfbWFpbjsKIERST1AgUFVCTElDQVRJT04gdGVzdHB1Yjg7CmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKaW5kZXggOTU3YjJkMTgzZjkuLmE2MmZhMGFjODRk IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCkBAIC0xMzgsOCArMTM4LDkgQEAg Q1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMSBGT1Ig QUxMIFRBQkxFUyBFWENFUFQgVEFCTEUKIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxs dGFibGVzX2V4Y2VwdHRhYmxlIFNFVCBFWENFUFQgVEFCTEUgdGVzdHB1Yl90YmwxOwogXGRScCsg dGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUKIAotLS0gZmFpbCAtIERyb3BwaW5nIEVY Q0VQVCB0YWJsZSBpcyBub3Qgc3VwcG9ydGVkLgorLS0gRHJvcCB0YWJsZSBmcm9tIHRoZSBFWENF UFQgbGlzdCBvZiBhIEZPUiBBTEwgVEFCTEVTIHB1YmxpY2F0aW9uLgogQUxURVIgUFVCTElDQVRJ T04gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUgRFJPUCBFWENFUFQgVEFCTEUgdGVz dHB1Yl90YmwxOworXGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUKIAogLS0g ZmFpbCAtIEFkZGluZyBFWENFUFQgdGFibGUgaXMgbm90IHN1cHBvcnRlZC4KIEFMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlIEFERCBFWENFUFQgVEFCTEUg dGVzdHB1Yl90YmwxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X3Jl cF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19y ZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwKaW5kZXggNzg2Nzk5ZWQyNjAuLmEwYzE1MTg0YmQz IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfcmVwX2NoYW5nZXNfZXhj ZXB0X3RhYmxlLnBsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzN19yZXBfY2hhbmdl c19leGNlcHRfdGFibGUucGwKQEAgLTE2Niw2ICsxNjYsMzUgQEAgJHJlc3VsdCA9CiAgICRub2Rl X3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIEZST00g c2NoMS5jaGlsZDEiKTsKIGlzKCRyZXN1bHQsIHFxKDEwKSwgJ2NoZWNrIHJlcGxpY2F0ZWQgaW5z ZXJ0cyBvbiBzdWJzY3JpYmVyJyk7CiAKKyMgUmVtb3ZlIHNjaDEudGFiMSBmcm9tIHRoZSBwdWJs aWNhdGlvbidzIEVYQ0VQVCBsaXN0IHNvIHRoYXQgaXQgYmVjb21lcyBwYXJ0CisjIG9mIHRoZSBB TEwgVEFCTEVTIHB1YmxpY2F0aW9uLgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKwkiQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9zY2hlbWEgRFJPUCBFWENFUFQgVEFC TEUgc2NoMS50YWIxLCBzY2gxLnBhcmVudCwgb25seSBzY2gxLnBhcmVudDEiKTsKKworIyBSZWZy ZXNoIHRoZSBzdWJzY3JpcHRpb24gc28gdGhlIHN1YnNjcmliZXIgcGlja3MgdXAgdGhlIHVwZGF0 ZWQKKyMgcHVibGljYXRpb24gZGVmaW5pdGlvbiBhbmQgaW5pdGlhdGVzIHRhYmxlIHN5bmNocm9u aXphdGlvbi4KKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRF UiBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9zY2hlbWEgUkVGUkVTSCBQVUJMSUNBVElPTiIpOworCisj IFdhaXQgZm9yIGluaXRpYWwgdGFibGUgc3luYyB0byBmaW5pc2gKKyRub2RlX3N1YnNjcmliZXIt PndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwKKwkndGFwX3N1Yl9z Y2hlbWEnKTsKKworJHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAiU0VMRUNUIGNvdW50KCopIEZST00gc2NoMS50YWIxIik7CitpcygkcmVzdWx0LCBx cSgyMCksICdjaGVjayByZXBsaWNhdGVkIGluc2VydHMgb24gc3Vic2NyaWJlcicpOworCisjIElu c2VydCBhZGRpdGlvbmFsIHJvd3Mgb24gdGhlIHB1Ymxpc2hlciBhZnRlciBzeW5jaHJvbml6YXRp b24uCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJJTlNFUlQgSU5U TyBzY2gxLnRhYjEgVkFMVUVTKGdlbmVyYXRlX3NlcmllcygyMSwzMCkpIik7CisKKyRub2RlX3B1 Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9zY2hlbWEnKTsKKworIyBWZXJpZnkg dGhhdCB0aGUgbmV3IGluc2VydHMgYXJlIGFsc28gcmVwbGljYXRlZC4KKyRyZXN1bHQgPQorICAk bm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCBjb3VudCgqKSBG Uk9NIHNjaDEudGFiMSIpOworaXMoJHJlc3VsdCwgcXEoMzApLCAnY2hlY2sgcmVwbGljYXRlZCBp bnNlcnRzIG9uIHN1YnNjcmliZXInKTsKKwogIyBjbGVhbnVwCiAkbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgU1VCU0NSSVBUSU9OIHRhcF9zdWJfc2NoZW1hIik7 CiAkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKLS0gCjIuNDMuMAoK --0000000000008b313a064bedd41f Content-Type: application/octet-stream; name="v53-0002-Support-SET-EXCEPT-TABLE-in-ALTER-PUBLICATION.patch" Content-Disposition: attachment; filename="v53-0002-Support-SET-EXCEPT-TABLE-in-ALTER-PUBLICATION.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mm7688kp1 RnJvbSA3ZGY2YWE4MTU4MzEzZGU3MWZkZGU0MDlkNDFlZjcwNGU1ZTg4YjM3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNoIEMgPHZpZ25lc2gyMUBnbWFpbC5jb20+CkRhdGU6 IFNhdCwgMjggRmViIDIwMjYgMTI6MTI6MzggKzA1MzAKU3ViamVjdDogW1BBVENIIHY1MyAyLzNd IFN1cHBvcnQgU0VUIEVYQ0VQVCBUQUJMRSBpbiBBTFRFUiBQVUJMSUNBVElPTgoKRXh0ZW5kIEFM VEVSIFBVQkxJQ0FUSU9OIHRvIHN1cHBvcnQgU0VUIEVYQ0VQVCBUQUJMRSBmb3IKcHVibGljYXRp b25zIGRlZmluZWQgd2l0aCBGT1IgQUxMIFRBQkxFUy4KLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL2Fs dGVyX3B1YmxpY2F0aW9uLnNnbWwgICB8IDI5ICsrKysrKy0tLQogc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ19wdWJsaWNhdGlvbi5jICAgICAgfCAxMCArLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3B1 YmxpY2F0aW9uY21kcy5jICAgIHwgMzkgKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9jb21tYW5k cy90YWJsZWNtZHMuYyAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 ICAgICAgICAgICAgICAgICB8IDc3ICsrKysrKysrKysrKysrKysrKystLS0tCiBzcmMvYmluL3Bz cWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAgICAgICB8ICA2ICstCiBzcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3B1YmxpY2F0aW9uLmggICAgICB8ICAzICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3B1YmxpY2F0aW9uLm91dCB8IDM3ICsrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9wdWJsaWNhdGlvbi5zcWwgICAgICB8IDI0ICsrKysrKysKIDkgZmlsZXMgY2hhbmdlZCwgMTg4 IGluc2VydGlvbnMoKyksIDQwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVi bGljYXRpb24uc2dtbAppbmRleCAwMjg3NzBmMjE0OS4uN2MyODM5MTAzM2UgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKQEAgLTIxLDE4ICsyMSwyNCBAQCBQb3N0Z3Jl U1FMIGRvY3VtZW50YXRpb24KIAogIDxyZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNpcz4KLUFMVEVS IFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWJsZT4gQUREIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9vYmpl Y3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCi1BTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFNFVCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uXQor QUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPiBBREQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9u X2FkZF9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCitBTFRFUiBQVUJMSUNBVElPTiA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFNFVCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fc2V0X29iamVjdDwvcmVwbGFjZWFi bGU+IFssIC4uLl0KIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gRFJPUCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cHVibGljYXRpb25fZHJvcF9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCiBBTFRFUiBQ VUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFi bGU+IFNFVCAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9wYXJh bWV0ZXI8L3JlcGxhY2VhYmxlPiBbPSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFs dWU8L3JlcGxhY2VhYmxlPl0gWywgLi4uIF0gKQogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBPV05FUiBUTyB7IDxyZXBs YWNlYWJsZT5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfUk9MRSB8IENVUlJFTlRf VVNFUiB8IFNFU1NJT05fVVNFUiB9CiBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cmVwbGFjZWFibGU+ bmV3X25hbWU8L3JlcGxhY2VhYmxlPgogCi08cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpcyBvbmUgb2Y6 PC9waHJhc2U+Cis8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5w dWJsaWNhdGlvbl9hZGRfb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXMgb25lIG9mOjwvcGhyYXNlPgog CiAgICAgVEFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX2FuZF9jb2x1 bW5zPC9yZXBsYWNlYWJsZT4gWywgLi4uIF0KICAgICBUQUJMRVMgSU4gU0NIRU1BIHsgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gfCBDVVJS RU5UX1NDSEVNQSB9IFssIC4uLiBdCiAKKzxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX3NldF9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpcyBvbmUg b2Y6PC9waHJhc2U+CisKKyAgICBFWENFUFQgVEFCTEUgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXQorICAgIFRB QkxFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9hbmRfY29sdW1uczwvcmVw bGFjZWFibGU+IFssIC4uLiBdCisgICAgVEFCTEVTIElOIFNDSEVNQSB7IDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9TQ0hF TUEgfSBbLCAuLi4gXQorCiA8cGhyYXNlPmFuZCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cHVibGljYXRpb25fZHJvcF9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpcyBvbmUgb2Y6PC9waHJh c2U+CiAKICAgICBUQUJMRSBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFssIC4uLiBdCkBAIC01NSwxMSArNjEsMTIg QEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8 L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKICAgPHBhcmE+CiAgICBUaGUgZmlyc3QgdGhyZWUg dmFyaWFudHMgY2hhbmdlIHdoaWNoIHRhYmxlcy9zY2hlbWFzIGFyZSBwYXJ0IG9mIHRoZQogICAg cHVibGljYXRpb24uICBUaGUgPGxpdGVyYWw+U0VUPC9saXRlcmFsPiBjbGF1c2Ugd2lsbCByZXBs YWNlIHRoZSBsaXN0IG9mCi0gICB0YWJsZXMvc2NoZW1hcyBpbiB0aGUgcHVibGljYXRpb24gd2l0 aCB0aGUgc3BlY2lmaWVkIGxpc3Q7IHRoZSBleGlzdGluZwotICAgdGFibGVzL3NjaGVtYXMgdGhh dCB3ZXJlIHByZXNlbnQgaW4gdGhlIHB1YmxpY2F0aW9uIHdpbGwgYmUgcmVtb3ZlZC4gIFRoZQot ICAgPGxpdGVyYWw+QUREPC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+RFJPUDwvbGl0ZXJhbD4gY2xh dXNlcyB3aWxsIGFkZCBhbmQKLSAgIHJlbW92ZSBvbmUgb3IgbW9yZSB0YWJsZXMvc2NoZW1hcyBm cm9tIHRoZSBwdWJsaWNhdGlvbi4gIE5vdGUgdGhhdCBhZGRpbmcKLSAgIHRhYmxlcy9zY2hlbWFz IHRvIGEgcHVibGljYXRpb24gdGhhdCBpcyBhbHJlYWR5IHN1YnNjcmliZWQgdG8gd2lsbCByZXF1 aXJlIGFuCisgICBleGNlcHQgdGFibGVzL3RhYmxlcy9zY2hlbWFzIGluIHRoZSBwdWJsaWNhdGlv biB3aXRoIHRoZSBzcGVjaWZpZWQgbGlzdDsgdGhlCisgICBleGlzdGluZyBleGNlcHQgdGFibGVz L3RhYmxlcy9zY2hlbWFzIHRoYXQgd2VyZSBwcmVzZW50IGluIHRoZSBwdWJsaWNhdGlvbgorICAg d2lsbCBiZSByZW1vdmVkLiAgVGhlIDxsaXRlcmFsPkFERDwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFs PkRST1A8L2xpdGVyYWw+CisgICBjbGF1c2VzIHdpbGwgYWRkIGFuZCByZW1vdmUgb25lIG9yIG1v cmUgdGFibGVzL3NjaGVtYXMgZnJvbSB0aGUgcHVibGljYXRpb24uCisgICBOb3RlIHRoYXQgYWRk aW5nIHRhYmxlcy9zY2hlbWFzIHRvIGEgcHVibGljYXRpb24gdGhhdCBpcyBhbHJlYWR5IHN1YnNj cmliZWQKKyAgIHRvIHdpbGwgcmVxdWlyZSBhbgogICAgPGxpbmsgbGlua2VuZD0ic3FsLWFsdGVy c3Vic2NyaXB0aW9uLXBhcmFtcy1yZWZyZXNoLXB1YmxpY2F0aW9uIj4KICAgIDxsaXRlcmFsPkFM VEVSIFNVQlNDUklQVElPTiAuLi4gUkVGUkVTSCBQVUJMSUNBVElPTjwvbGl0ZXJhbD48L2xpbms+ IGFjdGlvbiBvbiB0aGUKICAgIHN1YnNjcmliaW5nIHNpZGUgaW4gb3JkZXIgdG8gYmVjb21lIGVm ZmVjdGl2ZS4gTm90ZSBhbHNvIHRoYXQKQEAgLTIyMiw2ICsyMjksMTIgQEAgQUxURVIgUFVCTElD QVRJT04gbXlwdWJsaWNhdGlvbiBBREQgVEFCTEUgdXNlcnMgKHVzZXJfaWQsIGZpcnN0bmFtZSks IGRlcGFydG1lbnQKICAgIENoYW5nZSB0aGUgc2V0IG9mIGNvbHVtbnMgcHVibGlzaGVkIGZvciBh IHRhYmxlOgogPHByb2dyYW1saXN0aW5nPgogQUxURVIgUFVCTElDQVRJT04gbXlwdWJsaWNhdGlv biBTRVQgVEFCTEUgdXNlcnMgKHVzZXJfaWQsIGZpcnN0bmFtZSwgbGFzdG5hbWUpLCBUQUJMRSBk ZXBhcnRtZW50czsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorCisgIDxwYXJhPgorICAgUmVw bGFjZSB0aGUgcHVibGljYXRpb24ncyBFWENFUFQgdGFibGUgbGlzdDoKKzxwcm9ncmFtbGlzdGlu Zz4KK0FMVEVSIFBVQkxJQ0FUSU9OIG15cHVibGljYXRpb24gU0VUIEVYQ0VQVCBUQUJMRSB1c2Vy cywgZGVwYXJ0bWVudHM7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KIAogICA8cGFyYT4KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYyBiL3NyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYwppbmRleCBlMWIxNTMyYzQ2NC4uNDg1NzBmY2Zm ODIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYworKysg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKQEAgLTQ0MSw3ICs0NDEsNyBA QCBhdHRudW1zdG9pbnQydmVjdG9yKEJpdG1hcHNldCAqYXR0cnMpCiAgKi8KIE9iamVjdEFkZHJl c3MKIHB1YmxpY2F0aW9uX2FkZF9yZWxhdGlvbihPaWQgcHViaWQsIFB1YmxpY2F0aW9uUmVsSW5m byAqcHJpLAotCQkJCQkJIGJvb2wgaWZfbm90X2V4aXN0cykKKwkJCQkJCSBib29sIGlmX25vdF9l eGlzdHMsIGJvb2wgaXNfYWx0ZXIpCiB7CiAJUmVsYXRpb24JcmVsOwogCUhlYXBUdXBsZQl0dXA7 CkBAIC01NDUsMTAgKzU0NSwxMiBAQCBwdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24oT2lkIHB1Ymlk LCBQdWJsaWNhdGlvblJlbEluZm8gKnByaSwKIAogCS8qCiAJICogUmVsYXRpb25zIGV4Y2x1ZGVk IHZpYSB0aGUgRVhDRVBUIGNsYXVzZSBkbyBub3QgbmVlZCBleHBsaWNpdAotCSAqIGludmFsaWRh dGlvbiBhcyBDcmVhdGVQdWJsaWNhdGlvbigpIGZ1bmN0aW9uIGludmFsaWRhdGVzIGFsbCByZWxh dGlvbnMKLQkgKiBhcyBwYXJ0IG9mIGRlZmluaW5nIGEgRk9SIEFMTCBUQUJMRVMgcHVibGljYXRp b24uCisJICogaW52YWxpZGF0aW9uIGR1cmluZyBDUkVBVEUgUFVCTElDQVRJT04sIGFzIENyZWF0 ZVB1YmxpY2F0aW9uKCkgZnVuY3Rpb24KKwkgKiBpbnZhbGlkYXRlcyBhbGwgcmVsYXRpb25zIGFz IHBhcnQgb2YgZGVmaW5pbmcgYSBGT1IgQUxMIFRBQkxFUworCSAqIHB1YmxpY2F0aW9uLiBGb3Ig QUxURVIgUFVCTElDQVRJT04sIGV4cGxpY2l0IGludmFsaWRhdGlvbiBpcyBzdGlsbAorCSAqIHJl cXVpcmVkLgogCSAqLwotCWlmICghcHJpLT5leGNlcHQpCisJaWYgKCFwcmktPmV4Y2VwdCB8fCBp c19hbHRlcikKIAl7CiAJCS8qCiAJCSAqIEludmFsaWRhdGUgcmVsY2FjaGUgc28gdGhhdCBwdWJs aWNhdGlvbiBpbmZvIGlzIHJlYnVpbHQuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy9wdWJsaWNhdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21k cy5jCmluZGV4IDZhM2NhNDc1MWZhLi4xNjZmZTNiMGMzZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv cHVibGljYXRpb25jbWRzLmMKQEAgLTEyNzIsMTUgKzEyNzIsMjQgQEAgQWx0ZXJQdWJsaWNhdGlv blRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwgSGVhcFR1cGxlIHR1cCwKIAkJUHVi bGljYXRpb25Ecm9wVGFibGVzKHB1YmlkLCByZWxzLCBmYWxzZSk7CiAJZWxzZQkJCQkJCS8qIEFQ X1NldE9iamVjdHMgKi8KIAl7Ci0JCUxpc3QJICAgKm9sZHJlbGlkcyA9IEdldEluY2x1ZGVkUHVi bGljYXRpb25SZWxhdGlvbnMocHViaWQsCi0JCQkJCQkJCQkJCQkJCQkJUFVCTElDQVRJT05fUEFS VF9ST09UKTsKKwkJYm9vbAkJaXNleGNlcHQgPSBwdWJmb3JtLT5wdWJhbGx0YWJsZXM7CisJCUxp c3QJICAgKm9sZHJlbGlkczsKIAkJTGlzdAkgICAqZGVscmVscyA9IE5JTDsKIAkJTGlzdENlbGwg ICAqb2xkbGM7CiAKLQkJVHJhbnNmb3JtUHViV2hlcmVDbGF1c2VzKHJlbHMsIHF1ZXJ5U3RyaW5n LCBwdWJmb3JtLT5wdWJ2aWFyb290KTsKKwkJaWYgKGlzZXhjZXB0KQorCQkJb2xkcmVsaWRzID0g R2V0RXhjbHVkZWRQdWJsaWNhdGlvblRhYmxlcyhwdWJpZCwKKwkJCQkJCQkJCQkJCQkgUFVCTElD QVRJT05fUEFSVF9ST09UKTsKKwkJZWxzZQorCQl7CisJCQlvbGRyZWxpZHMgPSBHZXRJbmNsdWRl ZFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLAorCQkJCQkJCQkJCQkJCQlQVUJMSUNBVElPTl9Q QVJUX1JPT1QpOwogCi0JCUNoZWNrUHViUmVsYXRpb25Db2x1bW5MaXN0KHN0bXQtPnB1Ym5hbWUs IHJlbHMsIHB1Ymxpc2hfc2NoZW1hLAotCQkJCQkJCQkgICBwdWJmb3JtLT5wdWJ2aWFyb290KTsK KwkJCVRyYW5zZm9ybVB1YldoZXJlQ2xhdXNlcyhyZWxzLCBxdWVyeVN0cmluZywgcHViZm9ybS0+ cHVidmlhcm9vdCk7CisKKwkJCUNoZWNrUHViUmVsYXRpb25Db2x1bW5MaXN0KHN0bXQtPnB1Ym5h bWUsIHJlbHMsIHB1Ymxpc2hfc2NoZW1hLAorCQkJCQkJCQkJICAgcHViZm9ybS0+cHVidmlhcm9v dCk7CisJCX0KIAogCQkvKgogCQkgKiBUbyByZWNyZWF0ZSB0aGUgcmVsYXRpb24gbGlzdCBmb3Ig dGhlIHB1YmxpY2F0aW9uLCBsb29rIGZvcgpAQCAtMTQ4OCw3ICsxNDk3LDcgQEAgQWx0ZXJQdWJs aWNhdGlvblNjaGVtYXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsCiAgKi8KIHN0YXRpYyB2 b2lkCiBDaGVja0FsdGVyUHVibGljYXRpb24oQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsIEhl YXBUdXBsZSB0dXAsCi0JCQkJCSAgTGlzdCAqdGFibGVzLCBMaXN0ICpzY2hlbWFpZGxpc3QpCisJ CQkJCSAgTGlzdCAqdGFibGVzLCBMaXN0ICpleGNlcHR0YWJsZXMsIExpc3QgKnNjaGVtYWlkbGlz dCkKIHsKIAlGb3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0gPSAoRm9ybV9wZ19wdWJsaWNhdGlv bikgR0VUU1RSVUNUKHR1cCk7CiAKQEAgLTE1NDYsNiArMTU1NSwxNCBAQCBDaGVja0FsdGVyUHVi bGljYXRpb24oQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAsCiAJCQkJ CQkgICBOYW1lU3RyKHB1YmZvcm0tPnB1Ym5hbWUpKSwKIAkJCQkJZXJyZGV0YWlsKCJUYWJsZXMg b3Igc2VxdWVuY2VzIGNhbm5vdCBiZSBhZGRlZCB0byBvciBkcm9wcGVkIGZyb20gRk9SIEFMTCBT RVFVRU5DRVMgcHVibGljYXRpb25zLiIpKTsKIAl9CisKKwkvKiBDaGVjayB0aGF0IHVzZXIgaXMg YWxsb3dlZCB0byBtYW5pcHVsYXRlIHRoZSBwdWJsaWNhdGlvbiB0YWJsZXMuICovCisJaWYgKGV4 Y2VwdHRhYmxlcyAmJiAhcHViZm9ybS0+cHViYWxsdGFibGVzKQorCQllcmVwb3J0KEVSUk9SLAor CQkJCWVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCisJ CQkJZXJybXNnKCJwdWJsaWNhdGlvbiBcIiVzXCIgaXMgbm90IGRlZmluZWQgYXMgRk9SIEFMTCBU QUJMRVMiLAorCQkJCQkgICBOYW1lU3RyKHB1YmZvcm0tPnB1Ym5hbWUpKSwKKwkJCQllcnJkZXRh aWwoIkVYQ0VQVCBUYWJsZXMgY2Fubm90IGJlIGFkZGVkIHRvIHB1YmxpY2F0aW9ucyB0aGF0IGFy ZSBub3QgZGVmaW5lZCBhcyBGT1IgQUxMIFRBQkxFUy4iKSk7CiB9CiAKIC8qCkBAIC0xNTkxLDEw ICsxNjA4LDggQEAgQWx0ZXJQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVi bGljYXRpb25TdG10ICpzdG10KQogCQlPYmplY3RzSW5QdWJsaWNhdGlvblRvT2lkcyhzdG10LT5w dWJvYmplY3RzLCBwc3RhdGUsICZyZWxhdGlvbnMsCiAJCQkJCQkJCSAgICZleGNlcHRyZWxhdGlv bnMsICZzY2hlbWFpZGxpc3QpOwogCi0JCS8qIEVYQ0VQVCBjbGF1c2UgaXMgbm90IHN1cHBvcnRl ZCB3aXRoIEFMVEVSIFBVQkxJQ0FUSU9OICovCi0JCUFzc2VydChleGNlcHRyZWxhdGlvbnMgPT0g TklMKTsKLQotCQlDaGVja0FsdGVyUHVibGljYXRpb24oc3RtdCwgdHVwLCByZWxhdGlvbnMsIHNj aGVtYWlkbGlzdCk7CisJCUNoZWNrQWx0ZXJQdWJsaWNhdGlvbihzdG10LCB0dXAsIHJlbGF0aW9u cywgZXhjZXB0cmVsYXRpb25zLAorCQkJCQkJCSAgc2NoZW1haWRsaXN0KTsKIAogCQloZWFwX2Zy ZWV0dXBsZSh0dXApOwogCkBAIC0xNjE1LDYgKzE2MzAsNyBAQCBBbHRlclB1YmxpY2F0aW9uKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJCQkJCWVycm1z ZygicHVibGljYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKIAkJCQkJCSAgIHN0bXQtPnB1 Ym5hbWUpKTsKIAorCQlyZWxhdGlvbnMgPSBsaXN0X2NvbmNhdChyZWxhdGlvbnMsIGV4Y2VwdHJl bGF0aW9ucyk7CiAJCUFsdGVyUHVibGljYXRpb25UYWJsZXMoc3RtdCwgdHVwLCByZWxhdGlvbnMs IHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAogCQkJCQkJCSAgIHNjaGVtYWlkbGlzdCAhPSBOSUwpOwog CQlBbHRlclB1YmxpY2F0aW9uU2NoZW1hcyhzdG10LCB0dXAsIHNjaGVtYWlkbGlzdCk7CkBAIC0x OTUzLDcgKzE5NjksOCBAQCBQdWJsaWNhdGlvbkFkZFRhYmxlcyhPaWQgcHViaWQsIExpc3QgKnJl bHMsIGJvb2wgaWZfbm90X2V4aXN0cywKIAkJCWFjbGNoZWNrX2Vycm9yKEFDTENIRUNLX05PVF9P V05FUiwgZ2V0X3JlbGtpbmRfb2JqdHlwZShyZWwtPnJkX3JlbC0+cmVsa2luZCksCiAJCQkJCQkg ICBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKTsKIAotCQlvYmogPSBwdWJsaWNhdGlvbl9h ZGRfcmVsYXRpb24ocHViaWQsIHB1Yl9yZWwsIGlmX25vdF9leGlzdHMpOworCQlvYmogPSBwdWJs aWNhdGlvbl9hZGRfcmVsYXRpb24ocHViaWQsIHB1Yl9yZWwsIGlmX25vdF9leGlzdHMsCisJCQkJ CQkJCQkgICAoc3RtdCAhPSBOVUxMKSk7CiAJCWlmIChzdG10KQogCQl7CiAJCQlFdmVudFRyaWdn ZXJDb2xsZWN0U2ltcGxlQ29tbWFuZChvYmosIEludmFsaWRPYmplY3RBZGRyZXNzLApkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21t YW5kcy90YWJsZWNtZHMuYwppbmRleCBjMDEwNGYwODRmYi4uY2VkYmRkMzg1NzAgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3RhYmxlY21kcy5jCkBAIC0yMDM5NCw3ICsyMDM5NCw4IEBAIEFURXhlY0F0dGFjaFBh cnRpdGlvbihMaXN0ICoqd3F1ZXVlLCBSZWxhdGlvbiByZWwsIFBhcnRpdGlvbkNtZCAqY21kLAog CQkJCQkJCSAgbGlzdF9sZW5ndGgoZXhjZXB0cHVib2lkcyksCiAJCQkJCQkJICBSZWxhdGlvbkdl dFJlbGF0aW9uTmFtZShhdHRhY2hyZWwpLAogCQkJCQkJCSAgcHVibmFtZXMuZGF0YSksCi0JCQkJ ZXJyZGV0YWlsKCJUaGUgcHVibGljYXRpb24gRVhDRVBUIGNsYXVzZSBjYW5ub3QgY29udGFpbiB0 YWJsZXMgdGhhdCBhcmUgcGFydGl0aW9ucy4iKSk7CisJCQkJZXJyZGV0YWlsKCJUaGUgcHVibGlj YXRpb24gRVhDRVBUIGNsYXVzZSBjYW5ub3QgY29udGFpbiB0YWJsZXMgdGhhdCBhcmUgcGFydGl0 aW9ucy4iKSwKKwkJCQllcnJoaW50KCJNb2RpZnkgdGhlIHB1YmxpY2F0aW9uJ3MgRVhDRVBUIGNs YXVzZSB1c2luZyBBTFRFUiBQVUJMSUNBVElPTiAuLi4gU0VUIEVYQ0VQVCBUQUJMRSBiZWZvcmUg YXR0YWNoaW5nIHRoZSB0YWJsZS4iKSk7CiAJfQogCiAJbGlzdF9mcmVlKGV4Y2VwdHB1Ym9pZHMp OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKaW5kZXggZjRkNDliNjAxOGQuLjA1NDQ5MDhmY2I5IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkK QEAgLTIwNyw3ICsyMDcsNyBAQCBzdGF0aWMgdm9pZCBwcmVwcm9jZXNzX3B1Yl9hbGxfb2JqdHlw ZV9saXN0KExpc3QgKmFsbF9vYmplY3RzX2xpc3QsCiAJCQkJCQkJCQkJCWJvb2wgKmFsbF90YWJs ZXMsCiAJCQkJCQkJCQkJCWJvb2wgKmFsbF9zZXF1ZW5jZXMsCiAJCQkJCQkJCQkJCWNvcmVfeXlz Y2FuX3QgeXlzY2FubmVyKTsKLXN0YXRpYyB2b2lkIHByZXByb2Nlc3NfcHVib2JqX2xpc3QoTGlz dCAqcHVib2Jqc3BlY19saXN0LAorc3RhdGljIGJvb2wgcHJlcHJvY2Vzc19wdWJvYmpfbGlzdChM aXN0ICpwdWJvYmpzcGVjX2xpc3QsCiAJCQkJCQkJCSAgIGNvcmVfeXlzY2FuX3QgeXlzY2FubmVy KTsKIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBM aXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAKQEAgLTU4MSw3ICs1ODEsNyBAQCBzdGF0aWMg Tm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNl cywgTm9kZSAqcXVlcnkpOwogCQkJCUJpdCBDb25zdEJpdCBCaXRXaXRoTGVuZ3RoIEJpdFdpdGhv dXRMZW5ndGgKICV0eXBlIDxzdHI+CQljaGFyYWN0ZXIKICV0eXBlIDxzdHI+CQlleHRyYWN0X2Fy ZwotJXR5cGUgPGJvb2xlYW4+IG9wdF92YXJ5aW5nIG9wdF90aW1lem9uZSBvcHRfbm9faW5oZXJp dAorJXR5cGUgPGJvb2xlYW4+IG9wdF92YXJ5aW5nIG9wdF90aW1lem9uZSBvcHRfbm9faW5oZXJp dCBvcHRfZXhjZXB0CiAKICV0eXBlIDxpdmFsPglJY29uc3QgU2lnbmVkSWNvbnN0CiAldHlwZSA8 c3RyPgkJU2NvbnN0IGNvbW1lbnRfdGV4dCBub3RpZnlfcGF5bG9hZApAQCAtMTA4MzAsMTYgKzEw ODMwLDI4IEBAIENyZWF0ZVB1YmxpY2F0aW9uU3RtdDoKIAkJCQl9CiAJCQl8IENSRUFURSBQVUJM SUNBVElPTiBuYW1lIEZPUiBwdWJfb2JqX2xpc3Qgb3B0X2RlZmluaXRpb24KIAkJCQl7CisJCQkJ CWJvb2wgaGFzX2V4Y2VwdF90YWJsZTsKIAkJCQkJQ3JlYXRlUHVibGljYXRpb25TdG10ICpuID0g bWFrZU5vZGUoQ3JlYXRlUHVibGljYXRpb25TdG10KTsKIAogCQkJCQluLT5wdWJuYW1lID0gJDM7 CiAJCQkJCW4tPm9wdGlvbnMgPSAkNjsKIAkJCQkJbi0+cHVib2JqZWN0cyA9IChMaXN0ICopICQ1 OwotCQkJCQlwcmVwcm9jZXNzX3B1Ym9ial9saXN0KG4tPnB1Ym9iamVjdHMsIHl5c2Nhbm5lcik7 CisJCQkJCWhhc19leGNlcHRfdGFibGUgPSBwcmVwcm9jZXNzX3B1Ym9ial9saXN0KG4tPnB1Ym9i amVjdHMsCisJCQkJCQkJCQkJCQkJCQkgIHl5c2Nhbm5lcik7CisJCQkJCWlmIChoYXNfZXhjZXB0 X3RhYmxlKQorCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZ TlRBWF9FUlJPUiksCisJCQkJCQkJCWVycm1zZygiRVhDRVBUIFRBQkxFIGNsYXVzZSBhbGxvd2Vk IG9ubHkgZm9yIEFMTCBUQUJMRVMgUFVCTElDQVRJT04iKSk7CisKIAkJCQkJJCQgPSAoTm9kZSAq KSBuOwogCQkJCX0KIAkJOwogCitvcHRfZXhjZXB0OgorCQkJRVhDRVBUCQkJCQkJCQkJeyAkJCA9 IHRydWU7IH0KKwkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gZmFsc2U7IH0KKwkJOworCiAv KgogICogRk9SIFRBQkxFIGFuZCBGT1IgVEFCTEVTIElOIFNDSEVNQSBzcGVjaWZpY2F0aW9ucwog ICoKQEAgLTEwODU0LDE0ICsxMDg2NiwxNCBAQCBDcmVhdGVQdWJsaWNhdGlvblN0bXQ6CiAgKiBy ZWxhdGlvbl9leHByIGhlcmUuCiAgKi8KIFB1YmxpY2F0aW9uT2JqU3BlYzoKLQkJCVRBQkxFIHJl bGF0aW9uX2V4cHIgb3B0X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCisJCQlvcHRfZXhjZXB0 IFRBQkxFIHJlbGF0aW9uX2V4cHIgb3B0X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCiAJCQkJ ewogCQkJCQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7Ci0JCQkJCSQkLT5wdWJv Ymp0eXBlID0gUFVCTElDQVRJT05PQkpfVEFCTEU7CisJCQkJCSQkLT5wdWJvYmp0eXBlID0gKCQx KSA/IFBVQkxJQ0FUSU9OT0JKX0VYQ0VQVF9UQUJMRSA6IFBVQkxJQ0FUSU9OT0JKX1RBQkxFOwog CQkJCQkkJC0+cHVidGFibGUgPSBtYWtlTm9kZShQdWJsaWNhdGlvblRhYmxlKTsKLQkJCQkJJCQt PnB1YnRhYmxlLT5yZWxhdGlvbiA9ICQyOwotCQkJCQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAk MzsKLQkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9ICQ0OworCQkJCQkkJC0+cHVidGFi bGUtPnJlbGF0aW9uID0gJDM7CisJCQkJCSQkLT5wdWJ0YWJsZS0+Y29sdW1ucyA9ICQ0OworCQkJ CQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDU7CiAJCQkJfQogCQkJfCBUQUJMRVMgSU5f UCBTQ0hFTUEgQ29sSWQKIAkJCQl7CkBAIC0xMTAxMCwxMSArMTEwMjIsMTggQEAgQWx0ZXJQdWJs aWNhdGlvblN0bXQ6CiAJCQkJfQogCQkJfCBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIEFERF9QIHB1 Yl9vYmpfbGlzdAogCQkJCXsKKwkJCQkJYm9vbCBoYXNfZXhjZXB0X3RhYmxlID0gZmFsc2U7CiAJ CQkJCUFsdGVyUHVibGljYXRpb25TdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJQdWJsaWNhdGlvblN0 bXQpOwogCiAJCQkJCW4tPnB1Ym5hbWUgPSAkMzsKIAkJCQkJbi0+cHVib2JqZWN0cyA9ICQ1Owot CQkJCQlwcmVwcm9jZXNzX3B1Ym9ial9saXN0KG4tPnB1Ym9iamVjdHMsIHl5c2Nhbm5lcik7CisJ CQkJCWhhc19leGNlcHRfdGFibGUgPSBwcmVwcm9jZXNzX3B1Ym9ial9saXN0KG4tPnB1Ym9iamVj dHMsCisJCQkJCQkJCQkJCQkJCQkgIHl5c2Nhbm5lcik7CisJCQkJCWlmIChoYXNfZXhjZXB0X3Rh YmxlKQorCQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQkJZXJyY29kZShFUlJDT0RFX1NZTlRB WF9FUlJPUiksCisJCQkJCQkJCWVycm1zZygiRVhDRVBUIFRBQkxFIGNsYXVzZSBhbGxvd2VkIG9u bHkgZm9yIFNFVCBjbGF1c2UiKSk7CisKIAkJCQkJbi0+YWN0aW9uID0gQVBfQWRkT2JqZWN0czsK IAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KQEAgLTExMDMwLDExICsxMTA0OSwxOCBAQCBB bHRlclB1YmxpY2F0aW9uU3RtdDoKIAkJCQl9CiAJCQl8IEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUg RFJPUCBwdWJfb2JqX2xpc3QKIAkJCQl7CisJCQkJCWJvb2wgaGFzX2V4Y2VwdF90YWJsZSA9IGZh bHNlOwogCQkJCQlBbHRlclB1YmxpY2F0aW9uU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyUHVibGlj YXRpb25TdG10KTsKIAogCQkJCQluLT5wdWJuYW1lID0gJDM7CiAJCQkJCW4tPnB1Ym9iamVjdHMg PSAkNTsKLQkJCQkJcHJlcHJvY2Vzc19wdWJvYmpfbGlzdChuLT5wdWJvYmplY3RzLCB5eXNjYW5u ZXIpOworCQkJCQloYXNfZXhjZXB0X3RhYmxlID0gcHJlcHJvY2Vzc19wdWJvYmpfbGlzdChuLT5w dWJvYmplY3RzLAorCQkJCQkJCQkJCQkJCQkJICB5eXNjYW5uZXIpOworCQkJCQlpZiAoaGFzX2V4 Y2VwdF90YWJsZSkKKwkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJCWVycmNvZGUoRVJSQ09E RV9TWU5UQVhfRVJST1IpLAorCQkJCQkJCQllcnJtc2coIkVYQ0VQVCBUQUJMRSBjbGF1c2UgYWxs b3dlZCBvbmx5IGZvciBTRVQgY2xhdXNlIikpOworCiAJCQkJCW4tPmFjdGlvbiA9IEFQX0Ryb3BP YmplY3RzOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQpAQCAtMTk4ODAsMTYgKzE5OTA2 LDE5IEBAIHByZXByb2Nlc3NfcHViX2FsbF9vYmp0eXBlX2xpc3QoTGlzdCAqYWxsX29iamVjdHNf bGlzdCwgTGlzdCAqKnB1Ym9iamVjdHMsCiAvKgogICogUHJvY2VzcyBwdWJvYmpzcGVjX2xpc3Qg dG8gY2hlY2sgZm9yIGVycm9ycyBpbiBhbnkgb2YgdGhlIG9iamVjdHMgYW5kCiAgKiBjb252ZXJ0 IFBVQkxJQ0FUSU9OT0JKX0NPTlRJTlVBVElPTiBpbnRvIGFwcHJvcHJpYXRlIFB1YmxpY2F0aW9u T2JqU3BlY1R5cGUuCisgKgorICogUmV0dXJuIHRydWUgaWYgYW4gRVhDRVBUIHRhYmxlIGlzIGZv dW5kLgogICovCi1zdGF0aWMgdm9pZAorc3RhdGljIGJvb2wKIHByZXByb2Nlc3NfcHVib2JqX2xp c3QoTGlzdCAqcHVib2Jqc3BlY19saXN0LCBjb3JlX3l5c2Nhbl90IHl5c2Nhbm5lcikKIHsKIAlM aXN0Q2VsbCAgICpjZWxsOwogCVB1YmxpY2F0aW9uT2JqU3BlYyAqcHVib2JqOwogCVB1YmxpY2F0 aW9uT2JqU3BlY1R5cGUgcHJldm9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9DT05USU5VQVRJT047 CisJYm9vbAkJZm91bmRleGNlcHR0YWJsZSA9IGZhbHNlOwogCiAJaWYgKCFwdWJvYmpzcGVjX2xp c3QpCi0JCXJldHVybjsKKwkJcmV0dXJuIGZhbHNlOwogCiAJcHVib2JqID0gKFB1YmxpY2F0aW9u T2JqU3BlYyAqKSBsaW5pdGlhbChwdWJvYmpzcGVjX2xpc3QpOwogCWlmIChwdWJvYmotPnB1Ym9i anR5cGUgPT0gUFVCTElDQVRJT05PQkpfQ09OVElOVUFUSU9OKQpAQCAtMTk5MDYsNyArMTk5MzUs OCBAQCBwcmVwcm9jZXNzX3B1Ym9ial9saXN0KExpc3QgKnB1Ym9ianNwZWNfbGlzdCwgY29yZV95 eXNjYW5fdCB5eXNjYW5uZXIpCiAJCWlmIChwdWJvYmotPnB1Ym9ianR5cGUgPT0gUFVCTElDQVRJ T05PQkpfQ09OVElOVUFUSU9OKQogCQkJcHVib2JqLT5wdWJvYmp0eXBlID0gcHJldm9ianR5cGU7 CiAKLQkJaWYgKHB1Ym9iai0+cHVib2JqdHlwZSA9PSBQVUJMSUNBVElPTk9CSl9UQUJMRSkKKwkJ aWYgKHB1Ym9iai0+cHVib2JqdHlwZSA9PSBQVUJMSUNBVElPTk9CSl9UQUJMRSB8fAorCQkJcHVi b2JqLT5wdWJvYmp0eXBlID09IFBVQkxJQ0FUSU9OT0JKX0VYQ0VQVF9UQUJMRSkKIAkJewogCQkJ LyogcmVsYXRpb24gbmFtZSBvciBwdWJ0YWJsZSBtdXN0IGJlIHNldCBmb3IgdGhpcyB0eXBlIG9m IG9iamVjdCAqLwogCQkJaWYgKCFwdWJvYmotPm5hbWUgJiYgIXB1Ym9iai0+cHVidGFibGUpCkBA IC0xOTkyNSw2ICsxOTk1NSwyNSBAQCBwcmVwcm9jZXNzX3B1Ym9ial9saXN0KExpc3QgKnB1Ym9i anNwZWNfbGlzdCwgY29yZV95eXNjYW5fdCB5eXNjYW5uZXIpCiAJCQkJcHVib2JqLT5wdWJ0YWJs ZSA9IHB1YnRhYmxlOwogCQkJCXB1Ym9iai0+bmFtZSA9IE5VTEw7CiAJCQl9CisKKwkJCWlmIChw dWJvYmotPnB1Ym9ianR5cGUgPT0gUFVCTElDQVRJT05PQkpfRVhDRVBUX1RBQkxFKQorCQkJewor CQkJCWZvdW5kZXhjZXB0dGFibGUgPSB0cnVlOworCisJCQkJLyogV0hFUkUgY2xhdXNlIGlzIG5v dCBhbGxvd2VkIG9uIGFuIGV4Y2VwdCB0YWJsZSAqLworCQkJCWlmIChwdWJvYmotPnB1YnRhYmxl LT53aGVyZUNsYXVzZSkKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQllcnJjb2RlKEVSUkNP REVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCQllcnJtc2coIldIRVJFIGNsYXVzZSBub3QgYWxsb3dl ZCBmb3IgZXhjZXB0IHRhYmxlIiksCisJCQkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHB1Ym9iai0+ bG9jYXRpb24pKTsKKworCQkJCS8qIENvbHVtbiBsaXN0IGlzIG5vdCBhbGxvd2VkIG9uIGEgZXhj ZXB0IHRhYmxlICovCisJCQkJaWYgKHB1Ym9iai0+cHVidGFibGUgJiYgcHVib2JqLT5wdWJ0YWJs ZS0+Y29sdW1ucykKKwkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCQllcnJjb2RlKEVSUkNPREVf U1lOVEFYX0VSUk9SKSwKKwkJCQkJCQllcnJtc2coImNvbHVtbiBzcGVjaWZpY2F0aW9uIG5vdCBh bGxvd2VkIGZvciBleGNlcHQgdGFibGUiKSwKKwkJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHVi b2JqLT5sb2NhdGlvbikpOworCQkJfQogCQl9CiAJCWVsc2UgaWYgKHB1Ym9iai0+cHVib2JqdHlw ZSA9PSBQVUJMSUNBVElPTk9CSl9UQUJMRVNfSU5fU0NIRU1BIHx8CiAJCQkJIHB1Ym9iai0+cHVi b2JqdHlwZSA9PSBQVUJMSUNBVElPTk9CSl9UQUJMRVNfSU5fQ1VSX1NDSEVNQSkKQEAgLTE5OTYw LDYgKzIwMDA5LDggQEAgcHJlcHJvY2Vzc19wdWJvYmpfbGlzdChMaXN0ICpwdWJvYmpzcGVjX2xp c3QsIGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKQogCiAJCXByZXZvYmp0eXBlID0gcHVib2JqLT5w dWJvYmp0eXBlOwogCX0KKworCXJldHVybiBmb3VuZGV4Y2VwdHRhYmxlOwogfQogCiAvKi0tLS0t LS0tLS0KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9i aW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCA4OTI3ZjdlNmYyMi4uZjQ1ZjNiNzY1MjMg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTIzMTgsOSArMjMxOCwxMSBAQCBtYXRjaF9wcmV2 aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkvKiBBTFRFUiBQVUJMSUNBVElPTiA8bmFtZT4g RFJPUCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hB bnksICJEUk9QIikpCiAJCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyBJTiBTQ0hFTUEiLCAiVEFCTEUi KTsKLQkvKiBBTFRFUiBQVUJMSUNBVElPTiA8bmFtZT4gU0VUICovCisJCS8qIEFMVEVSIFBVQkxJ Q0FUSU9OIDxuYW1lPiBTRVQgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNB VElPTiIsIE1hdGNoQW55LCAiU0VUIikpCi0JCUNPTVBMRVRFX1dJVEgoIigiLCAiVEFCTEVTIElO IFNDSEVNQSIsICJUQUJMRSIpOworCQlDT01QTEVURV9XSVRIKCIoIiwgIkVYQ0VQVCIsICJUQUJM RVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVC TElDQVRJT04iLCBNYXRjaEFueSwgIlNFVCIsICJFWENFUFQiKSkKKwkJQ09NUExFVEVfV0lUSCgi VEFCTEUiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNo QW55LCAiQUREfERST1B8U0VUIiwgIlRBQkxFUyIsICJJTiIsICJTQ0hFTUEiKSkKIAkJQ09NUExF VEVfV0lUSF9RVUVSWV9QTFVTKFF1ZXJ5X2Zvcl9saXN0X29mX3NjaGVtYXMKIAkJCQkJCQkJICIg QU5EIG5zcG5hbWUgTk9UIExJS0UgRSdwZ1xcXFxfJSUnIiwKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVi bGljYXRpb24uaAppbmRleCBhOWY4OWU4OTAwNi4uYjAxMmU3NTNiNjQgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3B1YmxpY2F0aW9uLmgKQEAgLTE5OSw3ICsxOTksOCBAQCBleHRlcm4gYm9vbCBwdWJs aWNhdGlvbl9oYXNfYW55X2V4Y2VwdF90YWJsZShPaWQgcHViaWQpOwogZXh0ZXJuIGJvb2wgY2hl Y2tfYW5kX2ZldGNoX2NvbHVtbl9saXN0KFB1YmxpY2F0aW9uICpwdWIsIE9pZCByZWxpZCwKIAkJ CQkJCQkJCQlNZW1vcnlDb250ZXh0IG1jeHQsIEJpdG1hcHNldCAqKmNvbHMpOwogZXh0ZXJuIE9i amVjdEFkZHJlc3MgcHVibGljYXRpb25fYWRkX3JlbGF0aW9uKE9pZCBwdWJpZCwgUHVibGljYXRp b25SZWxJbmZvICpwcmksCi0JCQkJCQkJCQkJCSAgYm9vbCBpZl9ub3RfZXhpc3RzKTsKKwkJCQkJ CQkJCQkJICBib29sIGlmX25vdF9leGlzdHMsCisJCQkJCQkJCQkJCSAgYm9vbCBpc19hbHRlcik7 CiBleHRlcm4gQml0bWFwc2V0ICpwdWJfY29sbGlzdF92YWxpZGF0ZShSZWxhdGlvbiB0YXJnZXRy ZWwsIExpc3QgKmNvbHVtbnMpOwogZXh0ZXJuIE9iamVjdEFkZHJlc3MgcHVibGljYXRpb25fYWRk X3NjaGVtYShPaWQgcHViaWQsIE9pZCBzY2hlbWFpZCwKIAkJCQkJCQkJCQkJYm9vbCBpZl9ub3Rf ZXhpc3RzKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRp b24ub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKaW5kZXgg ODVkYTgxYTFmMjcuLjNjNzBjNTFkZGVjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1 YmxpY2F0aW9uLm91dApAQCAtMTI2LDYgKzEyNiwxNiBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX2ZvcnRhYmxlIFNFVCBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OwogVGFibGVzIGZyb20g c2NoZW1hczoKICAgICAicHViX3Rlc3QiCiAKKy0tIGZhaWwgLSBjYW4ndCBhZGQgYW4gRVhDRVBU IFRBQkxFIHRvICdGT1IgVEFCTEUnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX2ZvcnRhYmxlIEFERCBFWENFUFQgVEFCTEUgdGVzdHB1Yl90YmwxOworRVJST1I6ICBFWENF UFQgVEFCTEUgY2xhdXNlIGFsbG93ZWQgb25seSBmb3IgU0VUIGNsYXVzZQorLS0gZmFpbCAtIGNh bid0IGRyb3AgYW4gRVhDRVBUIFRBQkxFIGZyb20gJ0ZPUiBUQUJMRScgcHVibGljYXRpb24KK0FM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9ydGFibGUgRFJPUCBFWENFUFQgVEFCTEUgdGVzdHB1 Yl90YmwxOworRVJST1I6ICBFWENFUFQgVEFCTEUgY2xhdXNlIGFsbG93ZWQgb25seSBmb3IgU0VU IGNsYXVzZQorLS0gZmFpbCAtIGNhbid0IHNldCBhbiBFWENFUFQgVEFCTEUgdG8gJ0ZPUiBUQUJM RScgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9ydGFibGUgU0VUIEVY Q0VQVCBUQUJMRSB0ZXN0cHViX3RibDE7CitFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViX2Zv cnRhYmxlIiBpcyBub3QgZGVmaW5lZCBhcyBGT1IgQUxMIFRBQkxFUworREVUQUlMOiAgRVhDRVBU IFRhYmxlcyBjYW5ub3QgYmUgYWRkZWQgdG8gcHVibGljYXRpb25zIHRoYXQgYXJlIG5vdCBkZWZp bmVkIGFzIEZPUiBBTEwgVEFCTEVTLgogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1In OwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yc2NoZW1hIEZPUiBUQUJMRVMgSU4gU0NI RU1BIHB1Yl90ZXN0OwogLS0gc2hvdWxkIGJlIGFibGUgdG8gY3JlYXRlIHB1YmxpY2F0aW9uIHdp dGggc2NoZW1hIGFuZCB0YWJsZSBvZiB0aGUgc2FtZQpAQCAtMjEzLDYgKzIyMywxNiBAQCBOb3Qt bnVsbCBjb25zdHJhaW50czoKICByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgZiAgICAgICB8IGYgICAgICAg ICB8IG5vbmUgICAgICAgICAgICAgIHwgZgogKDEgcm93KQogCistLSBmYWlsIC0gY2FuJ3QgYWRk IGFuIEVYQ0VQVCBUQUJMRSB0byBzY2hlbWEgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfZm9yc2NoZW1hIEFERCBFWENFUFQgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9ub3Br OworRVJST1I6ICBFWENFUFQgVEFCTEUgY2xhdXNlIGFsbG93ZWQgb25seSBmb3IgU0VUIGNsYXVz ZQorLS0gZmFpbCAtIGNhbid0IGRyb3AgYW4gRVhDRVBUIFRBQkxFIGZyb20gc2NoZW1hIHB1Ymxp Y2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNjaGVtYSBEUk9QIEVYQ0VQVCBU QUJMRSBwdWJfdGVzdC50ZXN0cHViX25vcGs7CitFUlJPUjogIEVYQ0VQVCBUQUJMRSBjbGF1c2Ug YWxsb3dlZCBvbmx5IGZvciBTRVQgY2xhdXNlCistLSBmYWlsIC0gY2FuJ3Qgc2V0IGFuIEVYQ0VQ VCBUQUJMRSB0byBzY2hlbWEgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf Zm9yc2NoZW1hIFNFVCBFWENFUFQgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9ub3BrOworRVJST1I6 ICBwdWJsaWNhdGlvbiAidGVzdHB1Yl9mb3JzY2hlbWEiIGlzIG5vdCBkZWZpbmVkIGFzIEZPUiBB TEwgVEFCTEVTCitERVRBSUw6ICBFWENFUFQgVGFibGVzIGNhbm5vdCBiZSBhZGRlZCB0byBwdWJs aWNhdGlvbnMgdGhhdCBhcmUgbm90IGRlZmluZWQgYXMgRk9SIEFMTCBUQUJMRVMuCiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIC0tIEVYQ0VQVCBUQUJMRSB0 ZXN0cyBmb3Igbm9ybWFsIHRhYmxlcwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCkBAIC0yNTUsNiArMjc1LDIyIEBAIEV4Y2VwdCBQdWJsaWNhdGlvbnM6CiAg ICAgInRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlIgogICAgICJ0ZXN0cHViX2ZvcmFs bHRhYmxlc19leGNlcHR0YWJsZTEiCiAKKy0tIFJlcGxhY2UgdGhlIHB1YmxpY2F0aW9uIEVYQ0VQ VCB0YWJsZSBsaXN0IHdpdGggYSBzcGVjaWZpYyBFWENFUFQgdGFibGUuCitBTFRFUiBQVUJMSUNB VElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZSBTRVQgRVhDRVBUIFRBQkxFIHRl c3RwdWJfdGJsMTsKK1xkUnArIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHVi X2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFs bCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwg VHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t CisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IGYgICAgICAgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAg ICAgICB8IGYKK0V4Y2VwdCB0YWJsZXM6CisgICAgInB1YmxpYy50ZXN0cHViX3RibDEiCisKKy0t IGZhaWwgLSBEcm9wcGluZyBFWENFUFQgdGFibGUgaXMgbm90IHN1cHBvcnRlZC4KK0FMVEVSIFBV QkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlIERST1AgRVhDRVBUIFRB QkxFIHRlc3RwdWJfdGJsMTsKK0VSUk9SOiAgRVhDRVBUIFRBQkxFIGNsYXVzZSBhbGxvd2VkIG9u bHkgZm9yIFNFVCBjbGF1c2UKKy0tIGZhaWwgLSBBZGRpbmcgRVhDRVBUIHRhYmxlIGlzIG5vdCBz dXBwb3J0ZWQuCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0 YWJsZSBBREQgRVhDRVBUIFRBQkxFIHRlc3RwdWJfdGJsMTsKK0VSUk9SOiAgRVhDRVBUIFRBQkxF IGNsYXVzZSBhbGxvd2VkIG9ubHkgZm9yIFNFVCBjbGF1c2UKIFJFU0VUIGNsaWVudF9taW5fbWVz c2FnZXM7CiBEUk9QIFRBQkxFIHRlc3RwdWJfdGJsMjsKIERST1AgUFVCTElDQVRJT04gdGVzdHB1 Yl9mb3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9ydGFibGUsIHRlc3RwdWJfZm9yc2NoZW1hLCB0ZXN0 cHViX2Zvcl90Ymxfc2NoZW1hLCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZSwgdGVz dHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxOwpAQCAtMzQ0LDYgKzM4MCw3IEBAIENSRUFU RSBUQUJMRSB0YWJfbWFpbiAoYSBpbnQpIFBBUlRJVElPTiBCWSBSQU5HRShhKTsKIEFMVEVSIFRB QkxFIHRhYl9tYWluIEFUVEFDSCBQQVJUSVRJT04gdGVzdHB1Yl9yb290IEZPUiBWQUxVRVMgRlJP TSAoMCkgVE8gKDIwMCk7CiBFUlJPUjogIGNhbm5vdCBhdHRhY2ggdGFibGUgInRlc3RwdWJfcm9v dCIgYXMgcGFydGl0aW9uIGJlY2F1c2UgaXQgaXMgcmVmZXJlbmNlZCBpbiBwdWJsaWNhdGlvbiAi J3Rlc3RwdWI4JyIgRVhDRVBUIGNsYXVzZQogREVUQUlMOiAgVGhlIHB1YmxpY2F0aW9uIEVYQ0VQ VCBjbGF1c2UgY2Fubm90IGNvbnRhaW4gdGFibGVzIHRoYXQgYXJlIHBhcnRpdGlvbnMuCitISU5U OiAgTW9kaWZ5IHRoZSBwdWJsaWNhdGlvbidzIEVYQ0VQVCBjbGF1c2UgdXNpbmcgQUxURVIgUFVC TElDQVRJT04gLi4uIFNFVCBFWENFUFQgVEFCTEUgYmVmb3JlIGF0dGFjaGluZyB0aGUgdGFibGUu CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogRFJPUCBUQUJMRSB0ZXN0cHViX3Jvb3QsIHRl c3RwdWJfcGFydDEsIHRlc3RwdWJfcGFydDIsIHRhYl9tYWluOwogRFJPUCBQVUJMSUNBVElPTiB0 ZXN0cHViODsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAppbmRleCA1MDcwMjhiZWQz Mi4uOTU3YjJkMTgzZjkgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0 aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKQEAgLTc0 LDYgKzc0LDEzIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9ydGFibGUgRFJPUCBUQUJM RVMgSU4gU0NIRU1BIHB1Yl90ZXN0OwogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3J0YWJs ZSBTRVQgVEFCTEVTIElOIFNDSEVNQSBwdWJfdGVzdDsKIFxkUnArIHRlc3RwdWJfZm9ydGFibGUK IAorLS0gZmFpbCAtIGNhbid0IGFkZCBhbiBFWENFUFQgVEFCTEUgdG8gJ0ZPUiBUQUJMRScgcHVi bGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9ydGFibGUgQUREIEVYQ0VQVCBU QUJMRSB0ZXN0cHViX3RibDE7CistLSBmYWlsIC0gY2FuJ3QgZHJvcCBhbiBFWENFUFQgVEFCTEUg ZnJvbSAnRk9SIFRBQkxFJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9m b3J0YWJsZSBEUk9QIEVYQ0VQVCBUQUJMRSB0ZXN0cHViX3RibDE7CistLSBmYWlsIC0gY2FuJ3Qg c2V0IGFuIEVYQ0VQVCBUQUJMRSB0byAnRk9SIFRBQkxFJyBwdWJsaWNhdGlvbgorQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9mb3J0YWJsZSBTRVQgRVhDRVBUIFRBQkxFIHRlc3RwdWJfdGJsMTsK KwogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwogQ1JFQVRFIFBVQkxJQ0FUSU9O IHRlc3RwdWJfZm9yc2NoZW1hIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl90ZXN0OwogLS0gc2hv dWxkIGJlIGFibGUgdG8gY3JlYXRlIHB1YmxpY2F0aW9uIHdpdGggc2NoZW1hIGFuZCB0YWJsZSBv ZiB0aGUgc2FtZQpAQCAtMTA1LDYgKzExMiwxMyBAQCBTRUxFQ1QgcHVibmFtZSwgcHViYWxsdGFi bGVzIEZST00gcGdfcHVibGljYXRpb24gV0hFUkUgcHVibmFtZSA9ICd0ZXN0cHViX2ZvcmFsbAog XGQrIHRlc3RwdWJfdGJsMgogXGRScCsgdGVzdHB1Yl9mb3JhbGx0YWJsZXMKIAorLS0gZmFpbCAt IGNhbid0IGFkZCBhbiBFWENFUFQgVEFCTEUgdG8gc2NoZW1hIHB1YmxpY2F0aW9uCitBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX2ZvcnNjaGVtYSBBREQgRVhDRVBUIFRBQkxFIHB1Yl90ZXN0LnRl c3RwdWJfbm9wazsKKy0tIGZhaWwgLSBjYW4ndCBkcm9wIGFuIEVYQ0VQVCBUQUJMRSBmcm9tIHNj aGVtYSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JzY2hlbWEgRFJP UCBFWENFUFQgVEFCTEUgcHViX3Rlc3QudGVzdHB1Yl9ub3BrOworLS0gZmFpbCAtIGNhbid0IHNl dCBhbiBFWENFUFQgVEFCTEUgdG8gc2NoZW1hIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElP TiB0ZXN0cHViX2ZvcnNjaGVtYSBTRVQgRVhDRVBUIFRBQkxFIHB1Yl90ZXN0LnRlc3RwdWJfbm9w azsKKwogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAtLSBF WENFUFQgVEFCTEUgdGVzdHMgZm9yIG5vcm1hbCB0YWJsZXMKIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTIwLDYgKzEzNCwxNiBAQCBDUkVBVEUgUFVC TElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxIEZPUiBBTEwgVEFCTEVT IEVYQ0VQVCBUQUJMRQogLS0gaW4gdGhlIEVYQ0VQVCBjbGF1c2UKIFxkIHRlc3RwdWJfdGJsMQog CistLSBSZXBsYWNlIHRoZSBwdWJsaWNhdGlvbiBFWENFUFQgdGFibGUgbGlzdCB3aXRoIGEgc3Bl Y2lmaWMgRVhDRVBUIHRhYmxlLgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJs ZXNfZXhjZXB0dGFibGUgU0VUIEVYQ0VQVCBUQUJMRSB0ZXN0cHViX3RibDE7CitcZFJwKyB0ZXN0 cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZQorCistLSBmYWlsIC0gRHJvcHBpbmcgRVhDRVBU IHRhYmxlIGlzIG5vdCBzdXBwb3J0ZWQuCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFs bHRhYmxlc19leGNlcHR0YWJsZSBEUk9QIEVYQ0VQVCBUQUJMRSB0ZXN0cHViX3RibDE7CisKKy0t IGZhaWwgLSBBZGRpbmcgRVhDRVBUIHRhYmxlIGlzIG5vdCBzdXBwb3J0ZWQuCitBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZSBBREQgRVhDRVBUIFRBQkxF IHRlc3RwdWJfdGJsMTsKKwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIERST1AgVEFCTEUg dGVzdHB1Yl90YmwyOwogRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcywgdGVz dHB1Yl9mb3J0YWJsZSwgdGVzdHB1Yl9mb3JzY2hlbWEsIHRlc3RwdWJfZm9yX3RibF9zY2hlbWEs IHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlLCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19l eGNlcHR0YWJsZTE7Ci0tIAoyLjQzLjAKCg== --0000000000008b313a064bedd41f--