Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nrNjp-00067v-Tg for pgsql-hackers@arkaria.postgresql.org; Wed, 18 May 2022 17:45:34 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nrNjm-0004J3-IZ for pgsql-hackers@arkaria.postgresql.org; Wed, 18 May 2022 17:45:30 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nrNjm-0004Iu-2V for pgsql-hackers@lists.postgresql.org; Wed, 18 May 2022 17:45:30 +0000 Received: from mail-ed1-x531.google.com ([2a00:1450:4864:20::531]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1nrNje-0005uZ-0Q for pgsql-hackers@lists.postgresql.org; Wed, 18 May 2022 17:45:29 +0000 Received: by mail-ed1-x531.google.com with SMTP id fd25so3977022edb.3 for ; Wed, 18 May 2022 10:45:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=uj3CNEd8PusJm/QWv9cp6Qo70ZlRXufp/m/wQ21jPGc=; b=JJbCV2gYoB7LXTxSTzcHtmJ9WsUlqnlyfA+6u8GzbRLJN94CYgqnuKC9rxLelv2Omq u0ARtdu1NcCR+ywrxDnslZNhq0e70Lp8Jtj1XMaGLm7Nx24b6NRa1siCtJMM3Ib9FfuH eaP7eW3bDyT+yPNWf92o3MUS1PPPdiU6Qb6RNHjnNHH5+E89kpvhvgbQFzzVFCM5Ziul lmQa62lWunohTetqLL6uJ/eQWEzggEfpkBz4Q/2yysPa+8PbUbilV+sNCH/T2kMRUDF3 fqcIeiD5vctdECXYIQnrNMXhxc/wKtO/4gOjnfPMaqdOHt7KNnPPqAAb9+X39YJCvbI3 eX0w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=uj3CNEd8PusJm/QWv9cp6Qo70ZlRXufp/m/wQ21jPGc=; b=IKGsxnTpcRaUY5L7zOjHbERhc+vxVjbabvPIAojeRTNcgeyE2zLe28lSL95trNzZFa fQ1UHLQR98sR5xhuaCBK8MQI9ls8Rq+El0eL+GH4Yku7p+GXwqaufStRK2dSLIPbLF2j EbwJtPqryX8KAi2/ixcCcHWpeVHisRu7Zwc2ykpROh1fZLJboth9sqPC9TDfyAG0cfr4 M6nMTtT62BEXN94bzDTtjz9+lX4/Cb//AFCY8fnI9UeYXmxnRQEG6F3/IWypMZ+OMQBY GebYPVdkj0tkwtK9LMYtGiql7YjC5x8f1SWwxF2wmtOIBRZfSJ406WaNzYtbp4j34yc2 iePw== X-Gm-Message-State: AOAM532fSJWJvGPftlz+er8F0mKrw2+Al6ZrRx9slDqChrx0U27B95N0 SHuk4gGOmw081pXKdwxvWzbhifjZ5rFEQU/0aeA= X-Google-Smtp-Source: ABdhPJwhTrFL9N6sRDicpY2Aw4FbOLc2mm0FriVBQOeqWLomCCpgWzjj2Jv5h7SaC72m9nQvvqWqWbEfi3YotgiOGs8= X-Received: by 2002:a05:6402:354a:b0:42a:f46c:e80b with SMTP id f10-20020a056402354a00b0042af46ce80bmr597597edd.183.1652895919657; Wed, 18 May 2022 10:45:19 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: vignesh C Date: Wed, 18 May 2022 23:15:08 +0530 Message-ID: Subject: Re: Skipping schema changes in publication To: "osumi.takamichi@fujitsu.com" Cc: Peter Smith , Amit Kapila , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000002476e605df4cd257" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000002476e605df4cd257 Content-Type: text/plain; charset="UTF-8" On Mon, May 16, 2022 at 8:32 AM osumi.takamichi@fujitsu.com wrote: > > On Saturday, May 14, 2022 10:33 PM vignesh C wrote: > > Thanks for the comments, the attached v5 patch has the changes for the same. > > Also I have made the changes for SKIP Table based on the new syntax, the > > changes for the same are available in > > v5-0002-Skip-publishing-the-tables-specified-in-EXCEPT-TA.patch. > Hi, > > > Thank you for updating the patch. > I'll share few minor review comments on v5-0001. > > > (1) doc/src/sgml/ref/alter_publication.sgml > > @@ -73,12 +85,13 @@ ALTER PUBLICATION name RENAME TO Adding a table to a publication additionally requires owning that table. > The ADD ALL TABLES IN SCHEMA and > SET ALL TABLES IN SCHEMA to a publication requires the > - invoking user to be a superuser. To alter the owner, you must also be a > - direct or indirect member of the new owning role. The new owner must have > - CREATE privilege on the database. Also, the new owner > - of a FOR ALL TABLES or FOR ALL TABLES IN > - SCHEMA publication must be a superuser. However, a superuser can > - change the ownership of a publication regardless of these restrictions. > + invoking user to be a superuser. RESET of publication > + requires the invoking user to be a superuser. To alter the owner, you must > ... > > > I suggest to combine the first part of your change with one existing sentence > before your change, to make our description concise. > > FROM: > "The ADD ALL TABLES IN SCHEMA and > SET ALL TABLES IN SCHEMA to a publication requires the > invoking user to be a superuser. RESET of publication > requires the invoking user to be a superuser." > > TO: > "The ADD ALL TABLES IN SCHEMA, > SET ALL TABLES IN SCHEMA to a publication and > RESET of publication requires the invoking user to be a superuser." Modified > > (2) typo > > +++ b/src/backend/commands/publicationcmds.c > @@ -53,6 +53,13 @@ > #include "utils/syscache.h" > #include "utils/varlena.h" > > +#define PUB_ATION_INSERT_DEFAULT true > +#define PUB_ACTION_UPDATE_DEFAULT true > > > Kindly change > FROM: > "PUB_ATION_INSERT_DEFAULT" > TO: > "PUB_ACTION_INSERT_DEFAULT" Modified > > (3) src/test/regress/expected/publication.out > > +-- Verify that only superuser can reset a publication > +ALTER PUBLICATION testpub_reset OWNER TO regress_publication_user2; > +SET ROLE regress_publication_user2; > +ALTER PUBLICATION testpub_reset RESET; -- fail > > > We have "-- fail" for one case in this patch. > On the other hand, isn't better to add "-- ok" (or "-- success") for > other successful statements, > when we consider the entire tests description consistency ? We generally do not mention success comments for all the success cases as that might be an overkill. I felt it is better to keep it as it is. Thoughts? The attached v6 patch has the changes for the same. Regards, Vignesh --0000000000002476e605df4cd257 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0001-Add-RESET-clause-to-Alter-Publication-which-will-.patch" Content-Disposition: attachment; filename="v6-0001-Add-RESET-clause-to-Alter-Publication-which-will-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l3bvgqxb0 RnJvbSA3MmY4MWE3YzU2ZWY3NjRmMTM5NDk3MjFlMjI3NTQxYWNmNmI3MTljIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNod2FyYW4gQyA8dmlnbmVzaDIxQGdtYWlsLmNvbT4K RGF0ZTogU2F0LCAxNCBNYXkgMjAyMiAxMzoxMzo0NiArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjYg MS8yXSBBZGQgUkVTRVQgY2xhdXNlIHRvIEFsdGVyIFB1YmxpY2F0aW9uIHdoaWNoIHdpbGwgcmVz ZXQKIHRoZSBwdWJsaWNhdGlvbiB3aXRoIGRlZmF1bHQgdmFsdWVzLgoKVGhpcyBwYXRjaCBhZGRz IGEgbmV3IFJFU0VUIGNsYXVzZSB0byBBTFRFUiBQVUJMSUNBVElPTiB3aGljaCB3aWxsIHJlc2V0 CnRoZSBwdWJsaWNhdGlvbiB0byB0aGUgZGVmYXVsdCBzdGF0ZSB3aGljaCBpbmNsdWRlcyByZXNl dHRpbmcgdGhlIHB1YmxpY2F0aW9uCm9wdGlvbnMsIHNldHRpbmcgQUxMIFRBQkxFUyBmbGFnIHRv IGZhbHNlIGFuZCBkcm9wcGluZyB0aGUgcmVsYXRpb25zIGFuZApzY2hlbWFzIHRoYXQgYXJlIGFz c29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24uClVzYWdlOgpBTFRFUiBQVUJMSUNBVElPTiBw dWIxIFJFU0VUOwotLS0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCAg IHwgMzggKysrKysrLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyAg ICB8IDk5ICsrKysrKysrKysrKysrKysrKysrKy0tCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 ICAgICAgICAgICAgICAgICB8ICA5ICsrKwogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jICAg ICAgICAgICAgICAgfCAgMiArLQogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAg ICAgICAgfCAgMyArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQg fCA2OSArKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5z cWwgICAgICB8IDM3ICsrKysrKysrKwogNyBmaWxlcyBjaGFuZ2VkLCAyNDEgaW5zZXJ0aW9ucygr KSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9w dWJsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21s CmluZGV4IGUyY2NlNDk0NzEuLjQ3YmQxNWYxZmEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9y ZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1 YmxpY2F0aW9uLnNnbWwKQEAgLTI3LDYgKzI3LDcgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBEUk9QIDxyZXBsYWMK IEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9y ZXBsYWNlYWJsZT4gU0VUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0 aW9uX3BhcmFtZXRlcjwvcmVwbGFjZWFibGU+IFs9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4gXSApCiBBTFRFUiBQVUJMSUNBVElPTiA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IE9XTkVSIFRP IHsgPHJlcGxhY2VhYmxlPm5ld19vd25lcjwvcmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9ST0xFIHwg Q1VSUkVOVF9VU0VSIHwgU0VTU0lPTl9VU0VSIH0KIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyZXBs YWNlYWJsZT5uZXdfbmFtZTwvcmVwbGFjZWFibGU+CitBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFU0VUCiAKIDxwaHJh c2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVj dDwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIApAQCAtNjUsMjAgKzY2LDMzIEBA IEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9y ZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KLSAgIFRoZSBy ZW1haW5pbmcgdmFyaWFudHMgY2hhbmdlIHRoZSBvd25lciBhbmQgdGhlIG5hbWUgb2YgdGhlIHB1 YmxpY2F0aW9uLgorICAgVGhlIDxsaXRlcmFsPk9XTkVSPC9saXRlcmFsPiBjbGF1c2Ugd2lsbCBj aGFuZ2UgdGhlIG93bmVyIG9mIHRoZSBwdWJsaWNhdGlvbi4KKyAgPC9wYXJhPgorCisgIDxwYXJh PgorICAgVGhlIDxsaXRlcmFsPlJFTkFNRTwvbGl0ZXJhbD4gY2xhdXNlIHdpbGwgY2hhbmdlIHRo ZSBuYW1lIG9mIHRoZSBwdWJsaWNhdGlvbi4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhl IDxsaXRlcmFsPlJFU0VUPC9saXRlcmFsPiBjbGF1c2Ugd2lsbCByZXNldCB0aGUgcHVibGljYXRp b24gdG8gdGhlCisgICBkZWZhdWx0IHN0YXRlIHdoaWNoIGluY2x1ZGVzIHJlc2V0dGluZyB0aGUg cHVibGljYXRpb24gb3B0aW9ucywgc2V0dGluZworICAgPGxpdGVyYWw+QUxMIFRBQkxFUzwvbGl0 ZXJhbD4gZmxhZyB0byA8bGl0ZXJhbD5mYWxzZTwvbGl0ZXJhbD4gYW5kCisgICBkcm9wcGluZyBh bGwgcmVsYXRpb25zIGFuZCBzY2hlbWFzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVi bGljYXRpb24uCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KICAgIFlvdSBtdXN0IG93biB0aGUgcHVi bGljYXRpb24gdG8gdXNlIDxjb21tYW5kPkFMVEVSIFBVQkxJQ0FUSU9OPC9jb21tYW5kPi4KICAg IEFkZGluZyBhIHRhYmxlIHRvIGEgcHVibGljYXRpb24gYWRkaXRpb25hbGx5IHJlcXVpcmVzIG93 bmluZyB0aGF0IHRhYmxlLgotICAgVGhlIDxsaXRlcmFsPkFERCBBTEwgVEFCTEVTIElOIFNDSEVN QTwvbGl0ZXJhbD4gYW5kCi0gICA8bGl0ZXJhbD5TRVQgQUxMIFRBQkxFUyBJTiBTQ0hFTUE8L2xp dGVyYWw+IHRvIGEgcHVibGljYXRpb24gcmVxdWlyZXMgdGhlCi0gICBpbnZva2luZyB1c2VyIHRv IGJlIGEgc3VwZXJ1c2VyLiAgVG8gYWx0ZXIgdGhlIG93bmVyLCB5b3UgbXVzdCBhbHNvIGJlIGEK LSAgIGRpcmVjdCBvciBpbmRpcmVjdCBtZW1iZXIgb2YgdGhlIG5ldyBvd25pbmcgcm9sZS4gVGhl IG5ldyBvd25lciBtdXN0IGhhdmUKLSAgIDxsaXRlcmFsPkNSRUFURTwvbGl0ZXJhbD4gcHJpdmls ZWdlIG9uIHRoZSBkYXRhYmFzZS4gIEFsc28sIHRoZSBuZXcgb3duZXIKLSAgIG9mIGEgPGxpdGVy YWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTIElO Ci0gICBTQ0hFTUE8L2xpdGVyYWw+IHB1YmxpY2F0aW9uIG11c3QgYmUgYSBzdXBlcnVzZXIuIEhv d2V2ZXIsIGEgc3VwZXJ1c2VyIGNhbgotICAgY2hhbmdlIHRoZSBvd25lcnNoaXAgb2YgYSBwdWJs aWNhdGlvbiByZWdhcmRsZXNzIG9mIHRoZXNlIHJlc3RyaWN0aW9ucy4KKyAgIFRoZSA8bGl0ZXJh bD5BREQgQUxMIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+LAorICAgPGxpdGVyYWw+U0VUIEFM TCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiB0byBhIHB1YmxpY2F0aW9uIGFuZAorICAgPGxp dGVyYWw+UkVTRVQ8L2xpdGVyYWw+IG9mIHB1YmxpY2F0aW9uIHJlcXVpcmVzIHRoZSBpbnZva2lu ZyB1c2VyIHRvIGJlIGEKKyAgIHN1cGVydXNlci4gVG8gYWx0ZXIgdGhlIG93bmVyLCB5b3UgbXVz dCBhbHNvIGJlIGEgZGlyZWN0IG9yIGluZGlyZWN0IG1lbWJlcgorICAgb2YgdGhlIG5ldyBvd25p bmcgcm9sZS4gVGhlIG5ldyBvd25lciBtdXN0IGhhdmUgPGxpdGVyYWw+Q1JFQVRFPC9saXRlcmFs PgorICAgcHJpdmlsZWdlIG9uIHRoZSBkYXRhYmFzZS4gIEFsc28sIHRoZSBuZXcgb3duZXIgb2Yg YQorICAgPGxpdGVyYWw+Rk9SIEFMTCBUQUJMRVM8L2xpdGVyYWw+IG9yCisgICA8bGl0ZXJhbD5G T1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IHB1YmxpY2F0aW9uIG11c3QgYmUgYSBz dXBlcnVzZXIuCisgICBIb3dldmVyLCBhIHN1cGVydXNlciBjYW4gY2hhbmdlIHRoZSBvd25lcnNo aXAgb2YgYSBwdWJsaWNhdGlvbiByZWdhcmRsZXNzIG9mCisgICB0aGVzZSByZXN0cmljdGlvbnMu CiAgIDwvcGFyYT4KIAogICA8cGFyYT4KQEAgLTIwNyw2ICsyMjEsMTIgQEAgQUxURVIgUFVCTElD QVRJT04gc2FsZXNfcHVibGljYXRpb24gQUREIEFMTCBUQUJMRVMgSU4gU0NIRU1BIG1hcmtldGlu Zywgc2FsZXM7CiAgICA8c3RydWN0bmFtZT5wcm9kdWN0aW9uX3B1YmxpY2F0aW9uPC9zdHJ1Y3Ru YW1lPjoKIDxwcm9ncmFtbGlzdGluZz4KIEFMVEVSIFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25fcHVi bGljYXRpb24gQUREIFRBQkxFIHVzZXJzLCBkZXBhcnRtZW50cywgQUxMIFRBQkxFUyBJTiBTQ0hF TUEgcHJvZHVjdGlvbjsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorCisgIDxwYXJhPgorICAg UmVzZXQgdGhlIHB1YmxpY2F0aW9uIDxzdHJ1Y3RuYW1lPnByb2R1Y3Rpb25fcHVibGljYXRpb248 L3N0cnVjdG5hbWU+OgorPHByb2dyYW1saXN0aW5nPgorQUxURVIgUFVCTElDQVRJT04gcHJvZHVj dGlvbl9wdWJsaWNhdGlvbiBSRVNFVDsKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogIDwvcmVm c2VjdDE+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21k cy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKaW5kZXggOGU2NDU3 NDFlNC4uYTM5NzUyMTI3MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGlj YXRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMK QEAgLTUzLDYgKzUzLDE0IEBACiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKICNpbmNsdWRl ICJ1dGlscy92YXJsZW5hLmgiCiAKKy8qIENSRUFURSBQVUJMSUNBVElPTiBkZWZhdWx0IHZhbHVl cyBmb3IgZmxhZ3MgYW5kIG9wdGlvbnMgKi8KKyNkZWZpbmUgUFVCX0RFRkFVTFRfQUNUSU9OX0lO U0VSVCB0cnVlCisjZGVmaW5lIFBVQl9ERUZBVUxUX0FDVElPTl9VUERBVEUgdHJ1ZQorI2RlZmlu ZSBQVUJfREVGQVVMVF9BQ1RJT05fREVMRVRFIHRydWUKKyNkZWZpbmUgUFVCX0RFRkFVTFRfQUNU SU9OX1RSVU5DQVRFIHRydWUKKyNkZWZpbmUgUFVCX0RFRkFVTFRfVklBX1JPT1QgZmFsc2UKKyNk ZWZpbmUgUFVCX0RFRkFVTFRfQUxMX1RBQkxFUyBmYWxzZQorCiAvKgogICogSW5mb3JtYXRpb24g dXNlZCB0byB2YWxpZGF0ZSB0aGUgY29sdW1ucyBpbiB0aGUgcm93IGZpbHRlciBleHByZXNzaW9u LiBTZWUKICAqIGNvbnRhaW5faW52YWxpZF9yZmNvbHVtbl93YWxrZXIgZm9yIGRldGFpbHMuCkBA IC05MSwxMSArOTksMTEgQEAgcGFyc2VfcHVibGljYXRpb25fb3B0aW9ucyhQYXJzZVN0YXRlICpw c3RhdGUsCiAJKnB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290X2dpdmVuID0gZmFsc2U7CiAKIAkv KiBkZWZhdWx0cyAqLwotCXB1YmFjdGlvbnMtPnB1Ymluc2VydCA9IHRydWU7Ci0JcHViYWN0aW9u cy0+cHVidXBkYXRlID0gdHJ1ZTsKLQlwdWJhY3Rpb25zLT5wdWJkZWxldGUgPSB0cnVlOwotCXB1 YmFjdGlvbnMtPnB1YnRydW5jYXRlID0gdHJ1ZTsKLQkqcHVibGlzaF92aWFfcGFydGl0aW9uX3Jv b3QgPSBmYWxzZTsKKwlwdWJhY3Rpb25zLT5wdWJpbnNlcnQgPSBQVUJfREVGQVVMVF9BQ1RJT05f SU5TRVJUOworCXB1YmFjdGlvbnMtPnB1YnVwZGF0ZSA9IFBVQl9ERUZBVUxUX0FDVElPTl9VUERB VEU7CisJcHViYWN0aW9ucy0+cHViZGVsZXRlID0gUFVCX0RFRkFVTFRfQUNUSU9OX0RFTEVURTsK KwlwdWJhY3Rpb25zLT5wdWJ0cnVuY2F0ZSA9IFBVQl9ERUZBVUxUX0FDVElPTl9UUlVOQ0FURTsK KwkqcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSBQVUJfREVGQVVMVF9WSUFfUk9PVDsKIAog CS8qIFBhcnNlIG9wdGlvbnMgKi8KIAlmb3JlYWNoKGxjLCBvcHRpb25zKQpAQCAtMTEwNSw2ICsx MTEzLDg1IEBAIEludmFsaWRhdGVQdWJsaWNhdGlvblJlbHMoTGlzdCAqcmVsaWRzKQogCQlDYWNo ZUludmFsaWRhdGVSZWxjYWNoZUFsbCgpOwogfQogCisvKgorICogUmVzZXQgdGhlIHB1YmxpY2F0 aW9uLgorICoKKyAqIFJlc2V0IHRoZSBwdWJsaWNhdGlvbiBvcHRpb25zLCBwdWJsaWNhdGlvbiBy ZWxhdGlvbnMgYW5kIHB1YmxpY2F0aW9uIHNjaGVtYXMuCisgKi8KK3N0YXRpYyB2b2lkCitBbHRl clB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3Rt dCAqc3RtdCwKKwkJCQkJCVJlbGF0aW9uIHJlbCwgSGVhcFR1cGxlIHR1cCkKK3sKKwlGb3JtX3Bn X3B1YmxpY2F0aW9uIHB1YmZvcm0gPSAoRm9ybV9wZ19wdWJsaWNhdGlvbikgR0VUU1RSVUNUKHR1 cCk7CisJT2lkCQkJcHViaWQgPSBwdWJmb3JtLT5vaWQ7CisJTGlzdAkgICAqc2NoZW1hcyA9IE5J TDsKKwlMaXN0CSAgICpyZWxzID0gTklMOworCWJvb2wJCW51bGxzW05hdHRzX3BnX3B1YmxpY2F0 aW9uXTsKKwlib29sCQlyZXBsYWNlc1tOYXR0c19wZ19wdWJsaWNhdGlvbl07CisJRGF0dW0JCXZh bHVlc1tOYXR0c19wZ19wdWJsaWNhdGlvbl07CisJT2JqZWN0QWRkcmVzcyBvYmo7CisJTGlzdENl bGwgICAqbGM7CisJT2lkCQkJcHJpZDsKKworCS8qIFJFU0VUIHB1YmxpY2F0aW9uIHJlcXVpcmVz IHN1cGVydXNlciAqLworCWlmICghc3VwZXJ1c2VyKCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJ ZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAorCQkJCWVycm1zZygibXVz dCBiZSBzdXBlcnVzZXIgdG8gUkVTRVQgcHVibGljYXRpb24iKSk7CisKKwltZW1zZXQodmFsdWVz LCAwLCBzaXplb2YodmFsdWVzKSk7CisJbWVtc2V0KG51bGxzLCBmYWxzZSwgc2l6ZW9mKG51bGxz KSk7CisJbWVtc2V0KHJlcGxhY2VzLCBmYWxzZSwgc2l6ZW9mKHJlcGxhY2VzKSk7CisKKwkvKiBS ZXNldCB0aGUgcHVibGljYXRpb24gb3B0aW9ucyAqLworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0 aW9uX3B1Ymluc2VydCAtIDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZBVUxUX0FDVElPTl9JTlNF UlQpOworCXJlcGxhY2VzW0FudW1fcGdfcHVibGljYXRpb25fcHViaW5zZXJ0IC0gMV0gPSB0cnVl OworCisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHVidXBkYXRlIC0gMV0gPSBCb29sR2V0 RGF0dW0oUFVCX0RFRkFVTFRfQUNUSU9OX1VQREFURSk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJs aWNhdGlvbl9wdWJ1cGRhdGUgLSAxXSA9IHRydWU7CisKKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNh dGlvbl9wdWJkZWxldGUgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJfREVGQVVMVF9BQ1RJT05fREVM RVRFKTsKKwlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YmRlbGV0ZSAtIDFdID0gdHJ1 ZTsKKworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnRydW5jYXRlIC0gMV0gPSBCb29s R2V0RGF0dW0oUFVCX0RFRkFVTFRfQUNUSU9OX1RSVU5DQVRFKTsKKwlyZXBsYWNlc1tBbnVtX3Bn X3B1YmxpY2F0aW9uX3B1YnRydW5jYXRlIC0gMV0gPSB0cnVlOworCisJdmFsdWVzW0FudW1fcGdf cHVibGljYXRpb25fcHVidmlhcm9vdCAtIDFdID0gQm9vbEdldERhdHVtKFBVQl9ERUZBVUxUX1ZJ QV9ST09UKTsKKwlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnZpYXJvb3QgLSAxXSA9 IHRydWU7CisKKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJhbGx0YWJsZXMgLSAxXSA9 IEJvb2xHZXREYXR1bShQVUJfREVGQVVMVF9BTExfVEFCTEVTKTsKKwlyZXBsYWNlc1tBbnVtX3Bn X3B1YmxpY2F0aW9uX3B1YmFsbHRhYmxlcyAtIDFdID0gdHJ1ZTsKKworCXR1cCA9IGhlYXBfbW9k aWZ5X3R1cGxlKHR1cCwgUmVsYXRpb25HZXREZXNjcihyZWwpLCB2YWx1ZXMsIG51bGxzLAorCQkJ CQkJCXJlcGxhY2VzKTsKKworCS8qIFVwZGF0ZSB0aGUgY2F0YWxvZy4gKi8KKwlDYXRhbG9nVHVw bGVVcGRhdGUocmVsLCAmdHVwLT50X3NlbGYsIHR1cCk7CisKKwkvKiBEcm9wIHRoZSBzY2hlbWFz IGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24gKi8KKwlzY2hlbWFzID0gR2V0UHVibGlj YXRpb25TY2hlbWFzKHB1YmlkKTsKKwlQdWJsaWNhdGlvbkRyb3BTY2hlbWFzKHB1YmlkLCBzY2hl bWFzLCBmYWxzZSk7CisKKwkvKiBEcm9wIHRoZSByZWxhdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRo ZSBwdWJsaWNhdGlvbiAqLworCXJlbHMgPSBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJpZCwg UFVCTElDQVRJT05fUEFSVF9ST09UKTsKKwlmb3JlYWNoKGxjLCByZWxzKQorCXsKKwkJT2lkCQkJ cmVsaWQgPSBsZmlyc3Rfb2lkKGxjKTsKKworCQlwcmlkID0gR2V0U3lzQ2FjaGVPaWQyKFBVQkxJ Q0FUSU9OUkVMTUFQLCBBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9vaWQsCisJCQkJCQkJICAgT2Jq ZWN0SWRHZXREYXR1bShyZWxpZCksCisJCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1bShwdWJpZCkp OworCQlpZiAoIU9pZElzVmFsaWQocHJpZCkpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJy Y29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJyZWxhdGlvbiBc IiVzXCIgaXMgbm90IHBhcnQgb2YgdGhlIHB1YmxpY2F0aW9uIiwKKwkJCQkJCQlnZXRfcmVsX25h bWUocmVsaWQpKSkpOworCisJCU9iamVjdEFkZHJlc3NTZXQob2JqLCBQdWJsaWNhdGlvblJlbFJl bGF0aW9uSWQsIHByaWQpOworCQlwZXJmb3JtRGVsZXRpb24oJm9iaiwgRFJPUF9DQVNDQURFLCAw KTsKKwl9Cit9CisKIC8qCiAgKiBBZGQgb3IgcmVtb3ZlIHRhYmxlIHRvL2Zyb20gcHVibGljYXRp b24uCiAgKi8KQEAgLTE0MTYsNiArMTUwMyw4IEBAIEFsdGVyUHVibGljYXRpb24oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAogCWlmIChzdG10LT5vcHRp b25zKQogCQlBbHRlclB1YmxpY2F0aW9uT3B0aW9ucyhwc3RhdGUsIHN0bXQsIHJlbCwgdHVwKTsK KwllbHNlIGlmIChzdG10LT5hY3Rpb24gPT0gQVBfUmVzZXRQdWJsaWNhdGlvbikKKwkJQWx0ZXJQ dWJsaWNhdGlvblJlc2V0KHBzdGF0ZSwgc3RtdCwgcmVsLCB0dXApOwogCWVsc2UKIAl7CiAJCUxp c3QJICAgKnJlbGF0aW9ucyA9IE5JTDsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDk4OWRiMGRiZWMuLmQ3ZTEz NjY2YTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMTA1NTgsNiArMTA1NTgsOCBAQCBwdWJfb2JqX2xpc3Q6 CVB1YmxpY2F0aW9uT2JqU3BlYwogICoKICAqIEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgU0VUIHB1 Yl9vYmogWywgLi4uXQogICoKKyAqIEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgUkVTRVQKKyAqCiAg KiBwdWJfb2JqIGlzIG9uZSBvZjoKICAqCiAgKgkJVEFCTEUgdGFibGVfbmFtZSBbLCAuLi5dCkBA IC0xMDYwNCw2ICsxMDYwNiwxMyBAQCBBbHRlclB1YmxpY2F0aW9uU3RtdDoKIAkJCQkJbi0+YWN0 aW9uID0gQVBfRHJvcE9iamVjdHM7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CisJCQl8 IEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgUkVTRVQKKwkJCQl7CisJCQkJCUFsdGVyUHVibGljYXRp b25TdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJQdWJsaWNhdGlvblN0bXQpOworCQkJCQluLT5wdWJu YW1lID0gJDM7CisJCQkJCW4tPmFjdGlvbiA9IEFQX1Jlc2V0UHVibGljYXRpb247CisJCQkJCSQk ID0gKE5vZGUgKiluOworCQkJCX0KIAkJOwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYyBiL3NyYy9iaW4vcHNxbC90YWItY29t cGxldGUuYwppbmRleCA1NWFmOWViMDRlLi42MmVjYzNjZGFiIDEwMDY0NAotLS0gYS9zcmMvYmlu L3BzcWwvdGFiLWNvbXBsZXRlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCkBA IC0xODE5LDcgKzE4MTksNyBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hhciAqdGV4dCwgaW50 IHN0YXJ0LCBpbnQgZW5kKQogCiAJLyogQUxURVIgUFVCTElDQVRJT04gPG5hbWU+ICovCiAJZWxz ZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSkpCi0JCUNPTVBM RVRFX1dJVEgoIkFERCIsICJEUk9QIiwgIk9XTkVSIFRPIiwgIlJFTkFNRSBUTyIsICJTRVQiKTsK KwkJQ09NUExFVEVfV0lUSCgiQUREIiwgIkRST1AiLCAiT1dORVIgVE8iLCAiUkVOQU1FIFRPIiwg IlJFU0VUIiwgIlNFVCIpOwogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxuYW1lPiBBREQgKi8KIAll bHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREIikp CiAJCUNPTVBMRVRFX1dJVEgoIkFMTCBUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7CmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rl cy9wYXJzZW5vZGVzLmgKaW5kZXggNzNmNjM1YjQ1NS4uOTcyNmZkYWU1OCAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaApAQCAtNDAzNSw3ICs0MDM1LDggQEAgdHlwZWRlZiBlbnVtIEFsdGVyUHVibGlj YXRpb25BY3Rpb24KIHsKIAlBUF9BZGRPYmplY3RzLAkJCQkvKiBhZGQgb2JqZWN0cyB0byBwdWJs aWNhdGlvbiAqLwogCUFQX0Ryb3BPYmplY3RzLAkJCQkvKiByZW1vdmUgb2JqZWN0cyBmcm9tIHB1 YmxpY2F0aW9uICovCi0JQVBfU2V0T2JqZWN0cwkJCQkvKiBzZXQgbGlzdCBvZiBvYmplY3RzICov CisJQVBfU2V0T2JqZWN0cywJCQkJLyogc2V0IGxpc3Qgb2Ygb2JqZWN0cyAqLworCUFQX1Jlc2V0 UHVibGljYXRpb24JCQkvKiByZXNldCB0aGUgcHVibGljYXRpb24gKi8KIH0gQWx0ZXJQdWJsaWNh dGlvbkFjdGlvbjsKIAogdHlwZWRlZiBzdHJ1Y3QgQWx0ZXJQdWJsaWNhdGlvblN0bXQKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKaW5kZXggMzk4YzBmMzhmNi4uZjg1 MjdkYWUwMiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlv bi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAg LTE2NTMsNiArMTY1Myw3NSBAQCBEUk9QIFBVQkxJQ0FUSU9OIHB1YjsKIERST1AgVEFCTEUgc2No MS50YmwxOwogRFJPUCBTQ0hFTUEgc2NoMSBjYXNjYWRlOwogRFJPUCBTQ0hFTUEgc2NoMiBjYXNj YWRlOworLS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVAorQ1JFQVRFIFND SEVNQSBwdWJfc2NoMTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwxIChhIGludCk7CitTRVQg Y2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1 Yl9yZXNldCBGT1IgQUxMIFRBQkxFUzsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CistLSBW ZXJpZnkgdGhhdCAnQUxMIFRBQkxFUycgZmxhZyBpcyByZXNldAorXGRScCsgdGVzdHB1Yl9yZXNl dAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9y ZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwg VXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKKygxIHJv dykKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3Rw dWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRl c3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5z ZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8 IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBm CisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIFRBQkxFIHB1 Yl9zY2gxLnRibDEsIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpYzsKKy0tIFZlcmlmeSB0aGF0 IHRhYmxlcyBhbmQgc2NoZW1hcyBhc3NvY2lhdGVkIHdpdGggdGhlIHB1YmxpY2F0aW9uIGFyZSBk cm9wcGVkCistLSBhZnRlciBSRVNFVAorXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0 ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKK1RhYmxlczoKKyAgICAicHViX3Nj aDEudGJsMSIKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1YmxpYyIKKworQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAg ICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMg fCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisoMSByb3cpCisKK0FM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIID0gJycsIFBVQkxJU0hf VklBX1BBUlRJVElPTl9ST09UID0gJ3RydWUnKTsKKy0tIFZlcmlmeSB0aGF0IHB1Ymxpc2ggb3B0 aW9ucyBhbmQgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Qgb3B0aW9uIGFyZSByZXNldAorXGRS cCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGlj YXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJs ZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlv bl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAg ICAgICB8IHQKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNF VDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBB bGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlh IHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVi bGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCB0ICAgICAgICAgfCBmCisoMSByb3cpCisKKy0tIFZlcmlmeSB0aGF0IG9ubHkgc3VwZXJ1c2Vy IGNhbiByZXNldCBhIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7CitTRVQgUk9MRSByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIyOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsg LS0gZmFpbAorRVJST1I6ICBtdXN0IGJlIHN1cGVydXNlciB0byBSRVNFVCBwdWJsaWNhdGlvbgor U0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0OworRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwxOworRFJPUCBTQ0hFTUEgcHViX3Nj aDE7CiBSRVNFVCBTRVNTSU9OIEFVVEhPUklaQVRJT047CiBEUk9QIFJPTEUgcmVncmVzc19wdWJs aWNhdGlvbl91c2VyLCByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwogRFJPUCBST0xFIHJlZ3Jl c3NfcHVibGljYXRpb25fdXNlcl9kdW1teTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3B1YmxpY2F0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNx bAppbmRleCA5ZWI4NmZkNTRmLi44NjhmMWM1MWIxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGlj YXRpb24uc3FsCkBAIC0xMDU3LDYgKzEwNTcsNDMgQEAgRFJPUCBUQUJMRSBzY2gxLnRibDE7CiBE Uk9QIFNDSEVNQSBzY2gxIGNhc2NhZGU7CiBEUk9QIFNDSEVNQSBzY2gyIGNhc2NhZGU7CiAKKy0t IFRlc3RzIGZvciBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQKK0NSRUFURSBTQ0hFTUEgcHVi X3NjaDE7CitDUkVBVEUgVEFCTEUgcHViX3NjaDEudGJsMSAoYSBpbnQpOworU0VUIGNsaWVudF9t aW5fbWVzc2FnZXMgPSAnRVJST1InOworQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQg Rk9SIEFMTCBUQUJMRVM7CitSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOworCistLSBWZXJpZnkg dGhhdCAnQUxMIFRBQkxFUycgZmxhZyBpcyByZXNldAorXGRScCsgdGVzdHB1Yl9yZXNldAorQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQK KworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgVEFCTEUgcHViX3NjaDEudGJs MSwgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljOworCistLSBWZXJpZnkgdGhhdCB0YWJsZXMg YW5kIHNjaGVtYXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBhcmUgZHJvcHBlZAor LS0gYWZ0ZXIgUkVTRVQKK1xkUnArIHRlc3RwdWJfcmVzZXQKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisKK0FMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIID0gJycsIFBVQkxJU0hfVklBX1BBUlRJVElP Tl9ST09UID0gJ3RydWUnKTsKKworLS0gVmVyaWZ5IHRoYXQgcHVibGlzaCBvcHRpb25zIGFuZCBw dWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCBvcHRpb24gYXJlIHJlc2V0CitcZFJwKyB0ZXN0cHVi X3Jlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworXGRScCsgdGVz dHB1Yl9yZXNldAorCistLSBWZXJpZnkgdGhhdCBvbmx5IHN1cGVydXNlciBjYW4gcmVzZXQgYSBw dWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBPV05FUiBUTyByZWdy ZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2Vy MjsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7IC0tIGZhaWwgLSBtdXN0 IGJlIHN1cGVydXNlcgorU0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyOworCitEUk9Q IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQ7CitEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDE7CitE Uk9QIFNDSEVNQSBwdWJfc2NoMTsKKwogUkVTRVQgU0VTU0lPTiBBVVRIT1JJWkFUSU9OOwogRFJP UCBST0xFIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciwgcmVncmVzc19wdWJsaWNhdGlvbl91c2Vy MjsKIERST1AgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXJfZHVtbXk7Ci0tIAoyLjMyLjAK Cg== --0000000000002476e605df4cd257 Content-Type: text/x-patch; charset="US-ASCII"; name="v6-0002-Skip-publishing-the-tables-specified-in-EXCEPT-TA.patch" Content-Disposition: attachment; filename="v6-0002-Skip-publishing-the-tables-specified-in-EXCEPT-TA.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l3bvgr1r1 RnJvbSA2MmNjYjJmMTcyZGEwZmEwYjhjM2FhODNhOGY1NWZhZWEwY2NhYzZiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBWaWduZXNod2FyYW4gQyA8dmlnbmVzaDIxQGdtYWlsLmNvbT4K RGF0ZTogVHVlLCAxNyBNYXkgMjAyMiAxMTo1MDowMCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjYg Mi8yXSBTa2lwIHB1Ymxpc2hpbmcgdGhlIHRhYmxlcyBzcGVjaWZpZWQgaW4gRVhDRVBUIFRBQkxF LgoKQSBuZXcgIkVYQ0VQVCBUQUJMRSIgY2xhdXNlIGZvciBDUkVBVEUvQUxURVIgUFVCTElDQVRJ T04gYWxsb3dzIG9uZSBvcgptb3JlIHRhYmxlcyB0byBiZSBleGNsdWRlZC4gVGhlIHB1Ymxpc2hl ciB3aWxsIG5vdCBzZW5kIHRoZSBkYXRhIG9mCmV4Y2x1ZGVkIHRhYmxlcyB0byB0aGUgc3Vic2Ny aWJlci4KClRoZSBuZXcgc3ludGF4IGFsbG93cyBzcGVjaWZ5aW5nIGV4Y2x1ZGVkIHJlbGF0aW9u cyB3aGVuIGNyZWF0aW5nIG9yIGFsdGVyaW5nCmEgcHVibGljYXRpb24uIEZvciBleGFtcGxlOgpD UkVBVEUgUFVCTElDQVRJT04gcHViMSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgdDEsdDI7 Cm9yCkFMVEVSIFBVQkxJQ0FUSU9OIHB1YjEgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHQx LHQyOwoKQSBuZXcgY29sdW1uICJwcmV4Y2VwdCIgaXMgYWRkZWQgdG8gdGFibGUgInBnX3B1Ymxp Y2F0aW9uX3JlbCIsIHRvIG1haW50YWluCnRoZSByZWxhdGlvbnMgdGhhdCB0aGUgdXNlciB3YW50 cyB0byBleGNsdWRlIGZyb20gdGhlIHB1YmxpY2F0aW9ucy4KCnBnX2R1bXAgaXMgdXBkYXRlZCB0 byBpZGVudGlmeSBhbmQgZHVtcCB0aGUgZXhjbHVkZWQgdGFibGVzIG9mIHRoZSBwdWJsaWNhdGlv bnMuCgpUaGUgcHNxbCBcZCBmYW1pbHkgb2YgY29tbWFuZHMgdG8gZGlzcGxheSBleGNsdWRlZCB0 YWJsZXMuIGUuZy4gcHNxbApcZFJwKyB2YXJpYW50IHdpbGwgbm93IGRpc3BsYXkgYXNzb2NpYXRl ZCAiZXhjZXB0IHRhYmxlcyIgaWYgYW55LgoKQnVtcCBjYXRhbG9nIHZlcnNpb24uCi0tLQogZG9j L3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICA5ICsKIGRvYy9z cmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwgICAgICAgICB8ICAgNSArLQogZG9jL3Ny Yy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sICAgICAgIHwgIDE4ICstCiBkb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sICAgICAgfCAgMjggKystCiBkb2Mvc3Jj L3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwgICAgICAgICAgICAgICAgfCAgIDUgKy0KIHNyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYyAgICAgICAgICB8ICA0MiArKystLQogc3JjL2Jh Y2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMgICAgICAgIHwgMTc4ICsrKysrKysrKysr KystLS0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwg ICA0ICstCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAg MzkgKysrLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyAgIHwg IDI1ICstLQogc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYyAgICAgICAgICAgIHwg IDE3ICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgICAgfCAg NTcgKysrKystCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAg fCAgIDEgKwogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jICAgICAgICAgICAgICAgIHwg ICA3ICsKIHNyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8ICAx MiArKwogc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDYy ICsrKysrLQogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jICAgICAgICAgICAgICAgICAgIHwg IDEwICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmggICAgICAgICAgfCAg IDcgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmggICAgICB8ICAg MSArCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaCAgICAgICAgfCAgIDcg Ky0KIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgMiAr CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCAgICAgfCAxMTcgKysr KysrKysrKystCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgICAgICAgICAg fCAgNjIgKysrKystCiAuLi4vdC8wMzJfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsICAgICAg ICAgfCAgODUgKysrKysrKysrCiAyNCBmaWxlcyBjaGFuZ2VkLCA2NzEgaW5zZXJ0aW9ucygrKSwg MTI5IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3N1YnNjcmlwdGlv bi90LzAzMl9yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwKCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGE1 MzNhMjE1M2UuLmRiOWU2ZDc1MDEgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC02NDI2LDYgKzY0MjYsMTUg QEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3Jl cGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIGlmIHRoZXJlIGlzIG5vIHB1YmxpY2F0 aW9uIHF1YWxpZnlpbmcgY29uZGl0aW9uLjwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAor ICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJh IHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgIDxzdHJ1Y3RmaWVsZD5wcmV4Y2VwdDwv c3RydWN0ZmllbGQ+IDx0eXBlPmJvb2w8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBUcnVlIGlmIHRoZSByZWxhdGlvbiBtdXN0IGJlIGV4Y2x1ZGVkCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CiAgICAgICAgPHN0cnVjdGZpZWxkPnByYXR0cnM8L3N0cnVjdGZpZWxkPiA8dHlwZT5pbnQydmVj dG9yPC90eXBlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24u c2dtbCBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKaW5kZXggMTQ1ZWE3 MWQ2MS4uZDdkNmJhMDUyOSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGlj YXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCkBA IC0xMTY3LDggKzExNjcsOSBAQCBDT05URVhUOiAgcHJvY2Vzc2luZyByZW1vdGUgZGF0YSBmb3Ig cmVwbGljYXRpb24gb3JpZ2luICJwZ18xNjM5NSIgZHVyaW5nICJJTlNFUgogICA8cGFyYT4KICAg IFRvIGFkZCB0YWJsZXMgdG8gYSBwdWJsaWNhdGlvbiwgdGhlIHVzZXIgbXVzdCBoYXZlIG93bmVy c2hpcCByaWdodHMgb24gdGhlCiAgICB0YWJsZS4gVG8gYWRkIGFsbCB0YWJsZXMgaW4gc2NoZW1h IHRvIGEgcHVibGljYXRpb24sIHRoZSB1c2VyIG11c3QgYmUgYQotICAgc3VwZXJ1c2VyLiBUbyBj cmVhdGUgYSBwdWJsaWNhdGlvbiB0aGF0IHB1Ymxpc2hlcyBhbGwgdGFibGVzIG9yIGFsbCB0YWJs ZXMgaW4KLSAgIHNjaGVtYSBhdXRvbWF0aWNhbGx5LCB0aGUgdXNlciBtdXN0IGJlIGEgc3VwZXJ1 c2VyLgorICAgc3VwZXJ1c2VyLiBUbyBhZGQgYWxsIHRhYmxlcyB0byBhIHB1YmxpY2F0aW9uLCB0 aGUgdXNlciBtdXN0IGJlIGEgc3VwZXJ1c2VyLgorICAgVG8gY3JlYXRlIGEgcHVibGljYXRpb24g dGhhdCBwdWJsaXNoZXMgYWxsIHRhYmxlcyBvciBhbGwgdGFibGVzIGluIHNjaGVtYQorICAgYXV0 b21hdGljYWxseSwgdGhlIHVzZXIgbXVzdCBiZSBhIHN1cGVydXNlci4KICAgPC9wYXJhPgogCiAg IDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5z Z21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IDQ3YmQx NWYxZmEuLjgxYTllODcxNzAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVi bGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNn bWwKQEAgLTIyLDYgKzIyLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9w c2lzZGl2PgogPHN5bm9wc2lzPgogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBBREQgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLl0KK0FMVEVS IFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWJsZT4gQUREIEFMTCBUQUJMRVMgWyBFWENFUFQgWyBUQUJMRSBdIGV4Y2VwdGlvbl9vYmplY3Qg WywgLi4uIF0gXQogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLl0KIEFMVEVSIFBVQkxJQ0FU SU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gRFJP UCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fb2JqZWN0PC9yZXBs YWNlYWJsZT4gWywgLi4uXQogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkKQEAg LTMzLDYgKzM0LDExIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVTRVQKIAogICAgIFRBQkxFIFsgT05MWSBdIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAq IF0gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFj ZWFibGU+IFssIC4uLiBdICkgXSBbIFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIF0gWywgLi4uIF0KICAgICBBTEwgVEFCTEVT IElOIFNDSEVNQSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwv cmVwbGFjZWFibGU+IHwgQ1VSUkVOVF9TQ0hFTUEgfSBbLCAuLi4gXQorCis8cGhyYXNlPndoZXJl IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leGNlcHRpb25fb2JqZWN0PC9yZXBsYWNl YWJsZT4gaXM6PC9waHJhc2U+CisKKyAgICBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdCisKIDwvc3lub3BzaXM+CiAg PC9yZWZzeW5vcHNpc2Rpdj4KIApAQCAtODIsOCArODgsOCBAQCBBTFRFUiBQVUJMSUNBVElPTiA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFU0VUCiAK ICAgPHBhcmE+CiAgICBZb3UgbXVzdCBvd24gdGhlIHB1YmxpY2F0aW9uIHRvIHVzZSA8Y29tbWFu ZD5BTFRFUiBQVUJMSUNBVElPTjwvY29tbWFuZD4uCi0gICBBZGRpbmcgYSB0YWJsZSB0byBhIHB1 YmxpY2F0aW9uIGFkZGl0aW9uYWxseSByZXF1aXJlcyBvd25pbmcgdGhhdCB0YWJsZS4KLSAgIFRo ZSA8bGl0ZXJhbD5BREQgQUxMIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+LAorICAgQWRkaW5n IGEgdGFibGUgdG8gb3IgZXhjbHVkaW5nIGEgdGFibGUgZnJvbSBhIHB1YmxpY2F0aW9uIGFkZGl0 aW9uYWxseQorICAgcmVxdWlyZXMgb3duaW5nIHRoYXQgdGFibGUuIFRoZSA8bGl0ZXJhbD5BREQg QUxMIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+LAogICAgPGxpdGVyYWw+U0VUIEFMTCBUQUJM RVMgSU4gU0NIRU1BPC9saXRlcmFsPiB0byBhIHB1YmxpY2F0aW9uIGFuZAogICAgPGxpdGVyYWw+ UkVTRVQ8L2xpdGVyYWw+IG9mIHB1YmxpY2F0aW9uIHJlcXVpcmVzIHRoZSBpbnZva2luZyB1c2Vy IHRvIGJlIGEKICAgIHN1cGVydXNlci4gVG8gYWx0ZXIgdGhlIG93bmVyLCB5b3UgbXVzdCBhbHNv IGJlIGEgZGlyZWN0IG9yIGluZGlyZWN0IG1lbWJlcgpAQCAtMjE0LDYgKzIyMCwxNCBAQCBBTFRF UiBQVUJMSUNBVElPTiBzYWxlc19wdWJsaWNhdGlvbiBBREQgQUxMIFRBQkxFUyBJTiBTQ0hFTUEg bWFya2V0aW5nLCBzYWxlczsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgIDwvcGFyYT4KIAorICA8cGFy YT4KKyAgIEFsdGVyIHB1YmxpY2F0aW9uIDxzdHJ1Y3RuYW1lPnByb2R1Y3Rpb25fcHVibGljYXRp b248L3N0cnVjdG5hbWU+IHRvIHB1Ymxpc2gKKyAgIGFsbCB0YWJsZXMgZXhjZXB0IDxzdHJ1Y3Ru YW1lPnVzZXJzPC9zdHJ1Y3RuYW1lPiBhbmQKKyAgIDxzdHJ1Y3RuYW1lPmRlcGFydG1lbnRzPC9z dHJ1Y3RuYW1lPiB0YWJsZXM6Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBQVUJMSUNBVElPTiBw cm9kdWN0aW9uX3B1YmxpY2F0aW9uIEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSB1c2Vycywg ZGVwYXJ0bWVudHM7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKwogICA8cGFyYT4KICAgIEFk ZCB0YWJsZXMgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+LAogICAgPHN0cnVjdG5hbWU+ ZGVwYXJ0bWVudHM8L3N0cnVjdG5hbWU+IGFuZCBzY2hlbWEKZGlmZiAtLWdpdCBhL2RvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IDFhODI4ZThkMmYuLjBmNWVhY2M3MTEgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbApAQCAtMjIsNyArMjIsNyBAQCBQb3N0 Z3JlU1FMIGRvY3VtZW50YXRpb24KICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+CiBDUkVB VEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxh Y2VhYmxlPgotICAgIFsgRk9SIEFMTCBUQUJMRVMKKyAgICBbIEZPUiBBTEwgVEFCTEVTIFsgRVhD RVBUIFsgVEFCTEUgXSBleGNlcHRpb25fb2JqZWN0IFssIC4uLiBdIF0KICAgICAgIHwgRk9SIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9vYmplY3Q8L3JlcGxhY2Vh YmxlPiBbLCAuLi4gXSBdCiAgICAgWyBXSVRIICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnB1YmxpY2F0aW9uX3BhcmFtZXRlcjwvcmVwbGFjZWFibGU+IFs9IDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4gXSApIF0KIApAQCAt MzAsNiArMzAsMTAgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KIAogICAgIFRBQkxFIFsgT05MWSBdIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0gWyAo IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2x1bW5fbmFtZTwvcmVwbGFjZWFibGU+ IFssIC4uLiBdICkgXSBbIFdIRVJFICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmV4 cHJlc3Npb248L3JlcGxhY2VhYmxlPiApIF0gWywgLi4uIF0KICAgICBBTEwgVEFCTEVTIElOIFND SEVNQSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFj ZWFibGU+IHwgQ1VSUkVOVF9TQ0hFTUEgfSBbLCAuLi4gXQorCis8cGhyYXNlPndoZXJlIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leGNlcHRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4g aXM6PC9waHJhc2U+CisKKyAgICBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lu b3BzaXNkaXY+CiAKQEAgLTEyMCw3ICsxMjQsOSBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICAgIDxsaXN0aXRl bT4KICAgICAgPHBhcmE+CiAgICAgICBNYXJrcyB0aGUgcHVibGljYXRpb24gYXMgb25lIHRoYXQg cmVwbGljYXRlcyBjaGFuZ2VzIGZvciBhbGwgdGFibGVzIGluCi0gICAgICB0aGUgZGF0YWJhc2Us IGluY2x1ZGluZyB0YWJsZXMgY3JlYXRlZCBpbiB0aGUgZnV0dXJlLgorICAgICAgdGhlIGRhdGFi YXNlLCBpbmNsdWRpbmcgdGFibGVzIGNyZWF0ZWQgaW4gdGhlIGZ1dHVyZS4gSWYKKyAgICAgIDxs aXRlcmFsPkVYQ0VQVCBUQUJMRTwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkLCB0aGVuIGV4Y2x1ZGUg cmVwbGljYXRpbmcKKyAgICAgIHRoZSBjaGFuZ2VzIGZvciB0aGUgc3BlY2lmaWVkIHRhYmxlcy4K ICAgICAgPC9wYXJhPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KQEAgLTE1 Niw2ICsxNjIsMTUgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0 ZW50cnk+CiAKKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHBhcmE+CisgICAgICA8bGl0ZXJh bD5FWENFUFQgVEFCTEU8L2xpdGVyYWw+IGNhbiBiZSBzcGVjaWZpZWQgb25seSBmb3IKKyAgICAg IDxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPiBwdWJsaWNhdGlvbi4KKyAgICAgPC9w YXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3Rl bnRyeT4KICAgICA8dGVybT48bGl0ZXJhbD5XSVRIICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnB1YmxpY2F0aW9uX3BhcmFtZXRlcjwvcmVwbGFjZWFibGU+IFs9IDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4gXSApPC9saXRl cmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC0zNTEsNiArMzY2LDE1IEBAIENSRUFURSBQ VUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEZPUiBUQUJMRSB1c2VycywgZGVwYXJ0 bWVudHMsIEFMTCBUQUJMCiBDUkVBVEUgUFVCTElDQVRJT04gc2FsZXNfcHVibGljYXRpb24gRk9S IEFMTCBUQUJMRVMgSU4gU0NIRU1BIG1hcmtldGluZywgc2FsZXM7CiA8L3Byb2dyYW1saXN0aW5n PjwvcGFyYT4KIAorICA8cGFyYT4KKyAgIENyZWF0ZSBhIHB1YmxpY2F0aW9uIHRoYXQgcHVibGlz aGVzIGFsbCBjaGFuZ2VzIGluIGFsbCB0aGUgdGFibGVzIGV4Y2VwdCBmb3IKKyAgIHRoZSBjaGFu Z2VzIG9mIDxzdHJ1Y3RuYW1lPnVzZXJzPC9zdHJ1Y3RuYW1lPiBhbmQKKyAgIDxzdHJ1Y3RuYW1l PmRlcGFydG1lbnRzPC9zdHJ1Y3RuYW1lPiB0YWJsZToKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFU RSBQVUJMSUNBVElPTiBteXB1YmxpY2F0aW9uIEZPUiBBTEwgVEFCTEUgRVhDRVBUIFRBQkxFIHVz ZXJzLCBkZXBhcnRtZW50czsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgIDwvcGFyYT4KKwogICA8cGFy YT4KICAgIENyZWF0ZSBhIHB1YmxpY2F0aW9uIHRoYXQgcHVibGlzaGVzIGFsbCBjaGFuZ2VzIGZv ciB0YWJsZSA8c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4sCiAgICBidXQgcmVwbGljYXRl cyBvbmx5IGNvbHVtbnMgPHN0cnVjdG5hbWU+dXNlcl9pZDwvc3RydWN0bmFtZT4gYW5kCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L3BzcWwtcmVmLnNnbWwKaW5kZXggNWZjNmIxMDM0YS4uMzg4OTc5NmIzZiAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcHNx bC1yZWYuc2dtbApAQCAtMTg2OCw4ICsxODY4LDkgQEAgdGVzdGRiPSZndDsKICAgICAgICAgSWYg PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdHRlcm48L3JlcGxhY2VhYmxlPiBpcwog ICAgICAgICBzcGVjaWZpZWQsIG9ubHkgdGhvc2UgcHVibGljYXRpb25zIHdob3NlIG5hbWVzIG1h dGNoIHRoZSBwYXR0ZXJuIGFyZQogICAgICAgICBsaXN0ZWQuCi0gICAgICAgIElmIDxsaXRlcmFs Pis8L2xpdGVyYWw+IGlzIGFwcGVuZGVkIHRvIHRoZSBjb21tYW5kIG5hbWUsIHRoZSB0YWJsZXMg YW5kCi0gICAgICAgIHNjaGVtYXMgYXNzb2NpYXRlZCB3aXRoIGVhY2ggcHVibGljYXRpb24gYXJl IHNob3duIGFzIHdlbGwuCisgICAgICAgIElmIDxsaXRlcmFsPis8L2xpdGVyYWw+IGlzIGFwcGVu ZGVkIHRvIHRoZSBjb21tYW5kIG5hbWUsIHRoZSB0YWJsZXMsCisgICAgICAgIGV4Y2x1ZGVkIHRh YmxlcyBhbmQgc2NoZW1hcyBhc3NvY2lhdGVkIHdpdGggZWFjaCBwdWJsaWNhdGlvbiBhcmUgc2hv d24gYXMKKyAgICAgICAgd2VsbC4KICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVt PgogICAgICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9n L3BnX3B1YmxpY2F0aW9uLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMK aW5kZXggZTJjOGJjYjI3OS4uZWFhZmMzOGMwNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ19wdWJsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGlj YXRpb24uYwpAQCAtMjkwLDcgKzI5MCw4IEBAIEdldFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9u cyhMaXN0ICpyZXN1bHQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCwKICAqIGFuY2Vz dG9yIGlzIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QuCiAgKi8KIE9pZAotR2V0VG9wTW9zdEFuY2Vz dG9ySW5QdWJsaWNhdGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsIGludCAqYW5jZXN0 b3JfbGV2ZWwpCitHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9pZCBwdWJvaWQsIExp c3QgKmFuY2VzdG9ycywKKwkJCQkJCQkJaW50ICphbmNlc3Rvcl9sZXZlbCwgYm9vbCBwdWJhbGx0 YWJsZXMpCiB7CiAJTGlzdENlbGwgICAqbGM7CiAJT2lkCQkJdG9wbW9zdF9yZWxpZCA9IEludmFs aWRPaWQ7CkBAIC0zMDIsOCArMzAzLDcgQEAgR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlv bihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsIGludCAqYW5jZXN0b3JfbGV2ZWwKIAlmb3Jl YWNoKGxjLCBhbmNlc3RvcnMpCiAJewogCQlPaWQJCQlhbmNlc3RvciA9IGxmaXJzdF9vaWQobGMp OwotCQlMaXN0CSAgICphcHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoYW5jZXN0b3Ip OwotCQlMaXN0CSAgICphc2NoZW1hUHViaWRzID0gTklMOworCQlMaXN0CSAgICphcHViaWRzID0g R2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoYW5jZXN0b3IsIGZhbHNlKTsKIAogCQlsZXZlbCsrOwog CkBAIC0zMTYsMTggKzMxNiwyNSBAQCBHZXRUb3BNb3N0QW5jZXN0b3JJblB1YmxpY2F0aW9uKE9p ZCBwdWJvaWQsIExpc3QgKmFuY2VzdG9ycywgaW50ICphbmNlc3Rvcl9sZXZlbAogCQl9CiAJCWVs c2UKIAkJewotCQkJYXNjaGVtYVB1YmlkcyA9IEdldFNjaGVtYVB1YmxpY2F0aW9ucyhnZXRfcmVs X25hbWVzcGFjZShhbmNlc3RvcikpOwotCQkJaWYgKGxpc3RfbWVtYmVyX29pZChhc2NoZW1hUHVi aWRzLCBwdWJvaWQpKQorCQkJTGlzdAkgICAqYXNjaGVtYXB1YmlkcyA9IE5JTDsKKwkJCUxpc3QJ ICAgKmFleGNlcHRwdWJpZHMgPSBOSUw7CisKKwkJCWFzY2hlbWFwdWJpZHMgPSBHZXRTY2hlbWFQ dWJsaWNhdGlvbnMoZ2V0X3JlbF9uYW1lc3BhY2UoYW5jZXN0b3IpKTsKKwkJCWFleGNlcHRwdWJp ZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNlc3RvciwgdHJ1ZSk7CisJCQlpZiAobGlz dF9tZW1iZXJfb2lkKGFzY2hlbWFwdWJpZHMsIHB1Ym9pZCkgfHwKKwkJCQkocHViYWxsdGFibGVz ICYmICFsaXN0X21lbWJlcl9vaWQoYWV4Y2VwdHB1YmlkcywgcHVib2lkKSkpCiAJCQl7CiAJCQkJ dG9wbW9zdF9yZWxpZCA9IGFuY2VzdG9yOwogCiAJCQkJaWYgKGFuY2VzdG9yX2xldmVsKQogCQkJ CQkqYW5jZXN0b3JfbGV2ZWwgPSBsZXZlbDsKIAkJCX0KKworCQkJbGlzdF9mcmVlKGFzY2hlbWFw dWJpZHMpOworCQkJbGlzdF9mcmVlKGFleGNlcHRwdWJpZHMpOwogCQl9CiAKIAkJbGlzdF9mcmVl KGFwdWJpZHMpOwotCQlsaXN0X2ZyZWUoYXNjaGVtYVB1Ymlkcyk7CiAJfQogCiAJcmV0dXJuIHRv cG1vc3RfcmVsaWQ7CkBAIC0zOTYsNiArNDAzLDggQEAgcHVibGljYXRpb25fYWRkX3JlbGF0aW9u KE9pZCBwdWJpZCwgUHVibGljYXRpb25SZWxJbmZvICpwcmksCiAJCU9iamVjdElkR2V0RGF0dW0o cHViaWQpOwogCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcnJlbGlkIC0gMV0gPQog CQlPYmplY3RJZEdldERhdHVtKHJlbGlkKTsKKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9y ZWxfcHJleGNlcHQgLSAxXSA9CisJCUJvb2xHZXREYXR1bShwcmktPmV4Y2VwdCk7CiAKIAkvKiBB ZGQgcXVhbGlmaWNhdGlvbnMsIGlmIGF2YWlsYWJsZSAqLwogCWlmIChwcmktPndoZXJlQ2xhdXNl ICE9IE5VTEwpCkBAIC02NjQsOSArNjczLDkgQEAgcHVibGljYXRpb25fYWRkX3NjaGVtYShPaWQg cHViaWQsIE9pZCBzY2hlbWFpZCwgYm9vbCBpZl9ub3RfZXhpc3RzKQogCXJldHVybiBteXNlbGY7 CiB9CiAKLS8qIEdldHMgbGlzdCBvZiBwdWJsaWNhdGlvbiBvaWRzIGZvciBhIHJlbGF0aW9uICov CisvKiBHZXRzIGxpc3Qgb2YgcHVibGljYXRpb24gb2lkcyBmb3IgYSByZWxhdGlvbiB0aGF0IG1h dGNoZXMgdGhlIGV4Y2VwdF9mbGFnICovCiBMaXN0ICoKLUdldFJlbGF0aW9uUHVibGljYXRpb25z KE9pZCByZWxpZCkKK0dldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCwgYm9vbCBleGNl cHRfZmxhZykKIHsKIAlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CiAJQ2F0Q0xpc3QgICAqcHVicmVs bGlzdDsKQEAgLTY4MCw3ICs2ODksOCBAQCBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhPaWQgcmVs aWQpCiAJCUhlYXBUdXBsZQl0dXAgPSAmcHVicmVsbGlzdC0+bWVtYmVyc1tpXS0+dHVwbGU7CiAJ CU9pZAkJCXB1YmlkID0gKChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkgR0VUU1RSVUNUKHR1cCkp LT5wcnB1YmlkOwogCi0JCXJlc3VsdCA9IGxhcHBlbmRfb2lkKHJlc3VsdCwgcHViaWQpOworCQlp ZiAoZXhjZXB0X2ZsYWcgPT0gKChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkgR0VUU1RSVUNUKHR1 cCkpLT5wcmV4Y2VwdCkKKwkJCXJlc3VsdCA9IGxhcHBlbmRfb2lkKHJlc3VsdCwgcHViaWQpOwog CX0KIAogCVJlbGVhc2VTeXNDYWNoZUxpc3QocHVicmVsbGlzdCk7CkBAIC03NzksMTMgKzc4OSwx NiBAQCBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvbnModm9pZCkKICAqIHJvb3QgcGFydGl0aW9uZWQg dGFibGVzLgogICovCiBMaXN0ICoKLUdldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKGJv b2wgcHVidmlhcm9vdCkKK0dldEFsbFRhYmxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJp ZCwgYm9vbCBwdWJ2aWFyb290KQogewogCVJlbGF0aW9uCWNsYXNzUmVsOwogCVNjYW5LZXlEYXRh IGtleVsxXTsKIAlUYWJsZVNjYW5EZXNjIHNjYW47CiAJSGVhcFR1cGxlCXR1cGxlOwogCUxpc3QJ ICAgKnJlc3VsdCA9IE5JTDsKKwlMaXN0CSAgICpleGNlcHRsaXN0OworCisJZXhjZXB0bGlzdCA9 IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLCBQVUJMSUNBVElPTl9QQVJUX0FMTCk7CiAK IAljbGFzc1JlbCA9IHRhYmxlX29wZW4oUmVsYXRpb25SZWxhdGlvbklkLCBBY2Nlc3NTaGFyZUxv Y2spOwogCkBAIC04MDIsNyArODE1LDggQEAgR2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlv bnMoYm9vbCBwdWJ2aWFyb290KQogCQlPaWQJCQlyZWxpZCA9IHJlbEZvcm0tPm9pZDsKIAogCQlp ZiAoaXNfcHVibGlzaGFibGVfY2xhc3MocmVsaWQsIHJlbEZvcm0pICYmCi0JCQkhKHJlbEZvcm0t PnJlbGlzcGFydGl0aW9uICYmIHB1YnZpYXJvb3QpKQorCQkJIShyZWxGb3JtLT5yZWxpc3BhcnRp dGlvbiAmJiBwdWJ2aWFyb290KSAmJgorCQkJIWxpc3RfbWVtYmVyX29pZChleGNlcHRsaXN0LCBy ZWxpZCkpCiAJCQlyZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1bHQsIHJlbGlkKTsKIAl9CiAKQEAg LTgyMyw3ICs4MzcsOCBAQCBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvblJlbGF0aW9ucyhib29sIHB1 YnZpYXJvb3QpCiAJCQlPaWQJCQlyZWxpZCA9IHJlbEZvcm0tPm9pZDsKIAogCQkJaWYgKGlzX3B1 Ymxpc2hhYmxlX2NsYXNzKHJlbGlkLCByZWxGb3JtKSAmJgotCQkJCSFyZWxGb3JtLT5yZWxpc3Bh cnRpdGlvbikKKwkJCQkhcmVsRm9ybS0+cmVsaXNwYXJ0aXRpb24gJiYKKwkJCQkhbGlzdF9tZW1i ZXJfb2lkKGV4Y2VwdGxpc3QsIHJlbGlkKSkKIAkJCQlyZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1 bHQsIHJlbGlkKTsKIAkJfQogCkBAIC0xMTA3LDcgKzExMjIsOCBAQCBwZ19nZXRfcHVibGljYXRp b25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCSAqLwogCQlpZiAocHVibGljYXRpb24tPmFs bHRhYmxlcykKIAkJewotCQkJdGFibGVzID0gR2V0QWxsVGFibGVzUHVibGljYXRpb25SZWxhdGlv bnMocHVibGljYXRpb24tPnB1YnZpYXJvb3QpOworCQkJdGFibGVzID0gR2V0QWxsVGFibGVzUHVi bGljYXRpb25SZWxhdGlvbnMocHVibGljYXRpb24tPm9pZCwKKwkJCQkJCQkJCQkJCQkgIHB1Ymxp Y2F0aW9uLT5wdWJ2aWFyb290KTsKIAkJfQogCQllbHNlCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv cHVibGljYXRpb25jbWRzLmMKaW5kZXggYTM5NzUyMTI3MC4uOGZlODFkMTcwNyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKQEAgLTE5Myw2ICsxOTMsMTEgQEAgT2JqZWN0 c0luUHVibGljYXRpb25Ub09pZHMoTGlzdCAqcHVib2Jqc3BlY19saXN0LCBQYXJzZVN0YXRlICpw c3RhdGUsCiAJCXN3aXRjaCAocHVib2JqLT5wdWJvYmp0eXBlKQogCQl7CiAJCQljYXNlIFBVQkxJ Q0FUSU9OT0JKX1RBQkxFOgorCQkJCXB1Ym9iai0+cHVidGFibGUtPmV4Y2VwdCA9IGZhbHNlOwor CQkJCSpyZWxzID0gbGFwcGVuZCgqcmVscywgcHVib2JqLT5wdWJ0YWJsZSk7CisJCQkJYnJlYWs7 CisJCQljYXNlIFBVQkxJQ0FUSU9OT0JKX0VYQ0VQVF9UQUJMRToKKwkJCQlwdWJvYmotPnB1YnRh YmxlLT5leGNlcHQgPSB0cnVlOwogCQkJCSpyZWxzID0gbGFwcGVuZCgqcmVscywgcHVib2JqLT5w dWJ0YWJsZSk7CiAJCQkJYnJlYWs7CiAJCQljYXNlIFBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9T Q0hFTUE6CkBAIC0zMDUsNyArMzEwLDcgQEAgY29udGFpbl9pbnZhbGlkX3JmY29sdW1uX3dhbGtl cihOb2RlICpub2RlLCByZl9jb250ZXh0ICpjb250ZXh0KQogICovCiBib29sCiBwdWJfcmZfY29u dGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlzdCAq YW5jZXN0b3JzLAotCQkJCQkJCSAgIGJvb2wgcHVidmlhcm9vdCkKKwkJCQkJCQkgICBib29sIHB1 YnZpYXJvb3QsIGJvb2wgcHViYWxsdGFibGVzKQogewogCUhlYXBUdXBsZQlyZnR1cGxlOwogCU9p ZAkJCXJlbGlkID0gUmVsYXRpb25HZXRSZWxpZChyZWxhdGlvbik7CkBAIC0zMzIsNyArMzM3LDgg QEAgcHViX3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVs YXRpb24sIExpc3QgKmFuY2VzdG9ycywKIAlpZiAocHVidmlhcm9vdCAmJiByZWxhdGlvbi0+cmRf cmVsLT5yZWxpc3BhcnRpdGlvbikKIAl7CiAJCXB1Ymxpc2hfYXNfcmVsaWQKLQkJCT0gR2V0VG9w TW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMKTsKKwkJCT0g R2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMLAor CQkJCQkJCQkJCQkgIHB1YmFsbHRhYmxlcyk7CiAKIAkJaWYgKCFPaWRJc1ZhbGlkKHB1Ymxpc2hf YXNfcmVsaWQpKQogCQkJcHVibGlzaF9hc19yZWxpZCA9IHJlbGlkOwpAQCAtMzgxLDcgKzM4Nyw3 IEBAIHB1Yl9yZl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJl bGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAgKi8KIGJvb2wKIHB1Yl9jb2xsaXN0X2NvbnRhaW5z X2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sIExpc3QgKmFuY2Vz dG9ycywKLQkJCQkJCQkJCWJvb2wgcHVidmlhcm9vdCkKKwkJCQkJCQkJCWJvb2wgcHVidmlhcm9v dCwgYm9vbCBwdWJhbGx0YWJsZXMpCiB7CiAJSGVhcFR1cGxlCXR1cGxlOwogCU9pZAkJCXJlbGlk ID0gUmVsYXRpb25HZXRSZWxpZChyZWxhdGlvbik7CkBAIC00MDAsNyArNDA2LDggQEAgcHViX2Nv bGxpc3RfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlv biwgTGlzdCAqYW5jZXN0b3IKIAkgKi8KIAlpZiAocHVidmlhcm9vdCAmJiByZWxhdGlvbi0+cmRf cmVsLT5yZWxpc3BhcnRpdGlvbikKIAl7Ci0JCXB1Ymxpc2hfYXNfcmVsaWQgPSBHZXRUb3BNb3N0 QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwpOworCQlwdWJsaXNo X2FzX3JlbGlkID0gR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihwdWJpZCwgYW5jZXN0 b3JzLAorCQkJCQkJCQkJCQkJCQkgICBOVUxMLCBwdWJhbGx0YWJsZXMpOwogCiAJCWlmICghT2lk SXNWYWxpZChwdWJsaXNoX2FzX3JlbGlkKSkKIAkJCXB1Ymxpc2hfYXNfcmVsaWQgPSByZWxpZDsK QEAgLTg0NCw1NCArODUxLDUyIEBAIENyZWF0ZVB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgQ3JlYXRlUHVibGljYXRpb25TdG10ICpzdG10KQogCS8qIE1ha2UgdGhlIGNoYW5nZXMgdmlz aWJsZS4gKi8KIAlDb21tYW5kQ291bnRlckluY3JlbWVudCgpOwogCi0JLyogQXNzb2NpYXRlIG9i amVjdHMgd2l0aCB0aGUgcHVibGljYXRpb24uICovCi0JaWYgKHN0bXQtPmZvcl9hbGxfdGFibGVz KQotCXsKLQkJLyogSW52YWxpZGF0ZSByZWxjYWNoZSBzbyB0aGF0IHB1YmxpY2F0aW9uIGluZm8g aXMgcmVidWlsdC4gKi8KLQkJQ2FjaGVJbnZhbGlkYXRlUmVsY2FjaGVBbGwoKTsKLQl9Ci0JZWxz ZQotCXsKLQkJT2JqZWN0c0luUHVibGljYXRpb25Ub09pZHMoc3RtdC0+cHVib2JqZWN0cywgcHN0 YXRlLCAmcmVsYXRpb25zLAotCQkJCQkJCQkgICAmc2NoZW1haWRsaXN0KTsKKwlPYmplY3RzSW5Q dWJsaWNhdGlvblRvT2lkcyhzdG10LT5wdWJvYmplY3RzLCBwc3RhdGUsICZyZWxhdGlvbnMsCisJ CQkJCQkJCSZzY2hlbWFpZGxpc3QpOwogCi0JCS8qIEZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQSBy ZXF1aXJlcyBzdXBlcnVzZXIgKi8KLQkJaWYgKGxpc3RfbGVuZ3RoKHNjaGVtYWlkbGlzdCkgPiAw ICYmICFzdXBlcnVzZXIoKSkKLQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCWVycmNvZGUoRVJSQ09E RV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKLQkJCQkJZXJybXNnKCJtdXN0IGJlIHN1cGVydXNl ciB0byBjcmVhdGUgRk9SIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1YmxpY2F0aW9uIikpOworCS8q IEZPUiBBTEwgVEFCTEVTIElOIFNDSEVNQSByZXF1aXJlcyBzdXBlcnVzZXIgKi8KKwlpZiAobGlz dF9sZW5ndGgoc2NoZW1haWRsaXN0KSA+IDAgJiYgIXN1cGVydXNlcigpKQorCQllcmVwb3J0KEVS Uk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQll cnJtc2coIm11c3QgYmUgc3VwZXJ1c2VyIHRvIGNyZWF0ZSBGT1IgQUxMIFRBQkxFUyBJTiBTQ0hF TUEgcHVibGljYXRpb24iKSk7CiAKLQkJaWYgKGxpc3RfbGVuZ3RoKHJlbGF0aW9ucykgPiAwKQot CQl7Ci0JCQlMaXN0CSAgICpyZWxzOworCWlmIChsaXN0X2xlbmd0aChyZWxhdGlvbnMpID4gMCkK Kwl7CisJCUxpc3QJICAgKnJlbHM7CiAKLQkJCXJlbHMgPSBPcGVuVGFibGVMaXN0KHJlbGF0aW9u cyk7Ci0JCQlDaGVja09ialNjaGVtYU5vdEFscmVhZHlJblB1YmxpY2F0aW9uKHJlbHMsIHNjaGVt YWlkbGlzdCwKLQkJCQkJCQkJCQkJCSAgUFVCTElDQVRJT05PQkpfVEFCTEUpOworCQlyZWxzID0g T3BlblRhYmxlTGlzdChyZWxhdGlvbnMpOworCQlDaGVja09ialNjaGVtYU5vdEFscmVhZHlJblB1 YmxpY2F0aW9uKHJlbHMsIHNjaGVtYWlkbGlzdCwKKwkJCQkJCQkJCQkJCVBVQkxJQ0FUSU9OT0JK X1RBQkxFKTsKIAotCQkJVHJhbnNmb3JtUHViV2hlcmVDbGF1c2VzKHJlbHMsIHBzdGF0ZS0+cF9z b3VyY2V0ZXh0LAotCQkJCQkJCQkJIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290KTsKKwkJVHJh bnNmb3JtUHViV2hlcmVDbGF1c2VzKHJlbHMsIHBzdGF0ZS0+cF9zb3VyY2V0ZXh0LAorCQkJCQkJ CQkJcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QpOwogCi0JCQlDaGVja1B1YlJlbGF0aW9uQ29s dW1uTGlzdChyZWxzLCBwc3RhdGUtPnBfc291cmNldGV4dCwKLQkJCQkJCQkJCSAgIHB1Ymxpc2hf dmlhX3BhcnRpdGlvbl9yb290KTsKKwkJQ2hlY2tQdWJSZWxhdGlvbkNvbHVtbkxpc3QocmVscywg cHN0YXRlLT5wX3NvdXJjZXRleHQsCisJCQkJCQkJCXB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290 KTsKIAotCQkJUHVibGljYXRpb25BZGRUYWJsZXMocHVib2lkLCByZWxzLCB0cnVlLCBOVUxMKTsK LQkJCUNsb3NlVGFibGVMaXN0KHJlbHMpOwotCQl9CisJCVB1YmxpY2F0aW9uQWRkVGFibGVzKHB1 Ym9pZCwgcmVscywgdHJ1ZSwgTlVMTCk7CisJCUNsb3NlVGFibGVMaXN0KHJlbHMpOworCX0KIAot CQlpZiAobGlzdF9sZW5ndGgoc2NoZW1haWRsaXN0KSA+IDApCi0JCXsKLQkJCS8qCi0JCQkgKiBT Y2hlbWEgbG9jayBpcyBoZWxkIHVudGlsIHRoZSBwdWJsaWNhdGlvbiBpcyBjcmVhdGVkIHRvIHBy ZXZlbnQKLQkJCSAqIGNvbmN1cnJlbnQgc2NoZW1hIGRlbGV0aW9uLgotCQkJICovCi0JCQlMb2Nr U2NoZW1hTGlzdChzY2hlbWFpZGxpc3QpOwotCQkJUHVibGljYXRpb25BZGRTY2hlbWFzKHB1Ym9p ZCwgc2NoZW1haWRsaXN0LCB0cnVlLCBOVUxMKTsKLQkJfQorCWlmIChsaXN0X2xlbmd0aChzY2hl bWFpZGxpc3QpID4gMCkKKwl7CisJCS8qCisJCSAqIFNjaGVtYSBsb2NrIGlzIGhlbGQgdW50aWwg dGhlIHB1YmxpY2F0aW9uIGlzIGNyZWF0ZWQgdG8gcHJldmVudAorCQkgKiBjb25jdXJyZW50IHNj aGVtYSBkZWxldGlvbi4KKwkJICovCisJCUxvY2tTY2hlbWFMaXN0KHNjaGVtYWlkbGlzdCk7CisJ CVB1YmxpY2F0aW9uQWRkU2NoZW1hcyhwdWJvaWQsIHNjaGVtYWlkbGlzdCwgdHJ1ZSwgTlVMTCk7 CiAJfQogCiAJdGFibGVfY2xvc2UocmVsLCBSb3dFeGNsdXNpdmVMb2NrKTsKIAorCS8qIEFzc29j aWF0ZSBvYmplY3RzIHdpdGggdGhlIHB1YmxpY2F0aW9uLiAqLworCWlmIChzdG10LT5mb3JfYWxs X3RhYmxlcykKKwl7CisJCS8qIEludmFsaWRhdGUgcmVsY2FjaGUgc28gdGhhdCBwdWJsaWNhdGlv biBpbmZvIGlzIHJlYnVpbHQuICovCisJCUNhY2hlSW52YWxpZGF0ZVJlbGNhY2hlQWxsKCk7CisJ fQorCiAJSW52b2tlT2JqZWN0UG9zdENyZWF0ZUhvb2soUHVibGljYXRpb25SZWxhdGlvbklkLCBw dWJvaWQsIDApOwogCiAJaWYgKHdhbF9sZXZlbCAhPSBXQUxfTEVWRUxfTE9HSUNBTCkKQEAgLTEx OTIsNiArMTE5Nyw3OSBAQCBBbHRlclB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAqcHN0YXRl LCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAl9CiB9CiAKKy8qCisgKiBDaGVjayBpZiB0 aGUgcHVibGljYXRpb24gaGFzIGRlZmF1bHQgdmFsdWVzCisgKgorICogQ2hlY2sgdGhlIGZvbGxv d2luZzoKKyAqIAlQdWJsaWNhdGlvbiBpcyBoYXZpbmcgZGVmYXVsdCBvcHRpb25zCisgKiAgUHVi bGljYXRpb24gaXMgbm90IGFzc29jaWF0ZWQgd2l0aCByZWxhdGlvbnMKKyAqICBQdWJsaWNhdGlv biBpcyBub3QgYXNzb2NpYXRlZCB3aXRoIHNjaGVtYXMKKyAqICBQdWJsaWNhdGlvbiBpcyBub3Qg c2V0IHdpdGggIkZPUiBBTEwgVEFCTEVTIgorICovCitzdGF0aWMgYm9vbAorQ2hlY2tQdWJsaWNh dGlvbkRlZlZhbHVlcyhIZWFwVHVwbGUgdHVwKQoreworCUZvcm1fcGdfcHVibGljYXRpb24gcHVi Zm9ybSA9IChGb3JtX3BnX3B1YmxpY2F0aW9uKSBHRVRTVFJVQ1QodHVwKTsKKwlPaWQJCQlwdWJp ZCA9IHB1YmZvcm0tPm9pZDsKKwlMaXN0CSAgICpwdWJvYmpzID0gTklMOworCisJaWYgKHB1YmZv cm0tPnB1YmFsbHRhYmxlcyAhPSBQVUJfREVGQVVMVF9BTExfVEFCTEVTKQorCQlyZXR1cm4gZmFs c2U7CisKKwlpZiAocHViZm9ybS0+cHViaW5zZXJ0ICE9IFBVQl9ERUZBVUxUX0FDVElPTl9JTlNF UlQgfHwKKwkJcHViZm9ybS0+cHVidXBkYXRlICE9IFBVQl9ERUZBVUxUX0FDVElPTl9VUERBVEUg fHwKKwkJcHViZm9ybS0+cHViZGVsZXRlICE9IFBVQl9ERUZBVUxUX0FDVElPTl9ERUxFVEUgfHwK KwkJcHViZm9ybS0+cHVidHJ1bmNhdGUgIT0gUFVCX0RFRkFVTFRfQUNUSU9OX1RSVU5DQVRFIHx8 CisJCXB1YmZvcm0tPnB1YnZpYXJvb3QgIT0gUFVCX0RFRkFVTFRfVklBX1JPT1QpCisJCXJldHVy biBmYWxzZTsKKworCXB1Ym9ianMgPSBHZXRQdWJsaWNhdGlvblNjaGVtYXMocHViaWQpOworCWlm IChsaXN0X2xlbmd0aChwdWJvYmpzKSkKKwkJcmV0dXJuIGZhbHNlOworCisJcHVib2JqcyA9IEdl dFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLCBQVUJMSUNBVElPTl9QQVJUX1JPT1QpOworCWlm IChsaXN0X2xlbmd0aChwdWJvYmpzKSkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIHRydWU7 Cit9CisKKy8qCisgKiBSZXNldCB0aGUgcHVibGljYXRpb24uCisgKgorICogUmVzZXQgdGhlIHB1 YmxpY2F0aW9uIG9wdGlvbnMsIHB1YmxpY2F0aW9uIHJlbGF0aW9ucyBhbmQgcHVibGljYXRpb24g c2NoZW1hcy4KKyAqLworc3RhdGljIHZvaWQKK0FsdGVyUHVibGljYXRpb25TZXRBbGxUYWJsZXMo UmVsYXRpb24gcmVsLCBIZWFwVHVwbGUgdHVwKQoreworCUZvcm1fcGdfcHVibGljYXRpb24gcHVi Zm9ybSA9IChGb3JtX3BnX3B1YmxpY2F0aW9uKSBHRVRTVFJVQ1QodHVwKTsKKwlib29sCQludWxs c1tOYXR0c19wZ19wdWJsaWNhdGlvbl07CisJYm9vbAkJcmVwbGFjZXNbTmF0dHNfcGdfcHVibGlj YXRpb25dOworCURhdHVtCQl2YWx1ZXNbTmF0dHNfcGdfcHVibGljYXRpb25dOworCisJQXNzZXJ0 KCFwdWJmb3JtLT5wdWJhbGx0YWJsZXMpOworCisJLyogUkVTRVQgcHVibGljYXRpb24gcmVxdWly ZXMgc3VwZXJ1c2VyICovCisJaWYgKCFzdXBlcnVzZXIoKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJ CQllcnJjb2RlKEVSUkNPREVfSU5TVUZGSUNJRU5UX1BSSVZJTEVHRSksCisJCQkJZXJybXNnKCJt dXN0IGJlIHN1cGVydXNlciB0byBSRVNFVCBwdWJsaWNhdGlvbiIpKTsKKworCW1lbXNldCh2YWx1 ZXMsIDAsIHNpemVvZih2YWx1ZXMpKTsKKwltZW1zZXQobnVsbHMsIGZhbHNlLCBzaXplb2YobnVs bHMpKTsKKwltZW1zZXQocmVwbGFjZXMsIGZhbHNlLCBzaXplb2YocmVwbGFjZXMpKTsKKworCS8q IHNldCBhbGwgdGFibGVzIG9wdGlvbiAqLworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1 YmFsbHRhYmxlcyAtIDFdID0gQm9vbEdldERhdHVtKHRydWUpOworCXJlcGxhY2VzW0FudW1fcGdf cHVibGljYXRpb25fcHViYWxsdGFibGVzIC0gMV0gPSB0cnVlOworCisJdHVwID0gaGVhcF9tb2Rp ZnlfdHVwbGUodHVwLCBSZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVlcywgbnVsbHMsCisJCQkJ CQkJcmVwbGFjZXMpOworCisJLyogVXBkYXRlIHRoZSBjYXRhbG9nLiAqLworCUNhdGFsb2dUdXBs ZVVwZGF0ZShyZWwsICZ0dXAtPnRfc2VsZiwgdHVwKTsKK30KKwogLyoKICAqIEFkZCBvciByZW1v dmUgdGFibGUgdG8vZnJvbSBwdWJsaWNhdGlvbi4KICAqLwpAQCAtMTUwMSw2ICsxNTc5LDIwIEBA IEFsdGVyUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3Rt dCAqc3RtdCkKIAkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBPQkpFQ1RfUFVC TElDQVRJT04sCiAJCQkJCSAgIHN0bXQtPnB1Ym5hbWUpOwogCisJaWYgKHN0bXQtPmZvcl9hbGxf dGFibGVzKQorCXsKKwkJYm9vbCBpc2RlZmF1bHQgPSBDaGVja1B1YmxpY2F0aW9uRGVmVmFsdWVz KHR1cCk7CisKKwkJaWYgKCFpc2RlZmF1bHQpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJj b2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCisJCQkJCWVycm1zZygiU2V0 dGluZyBBTEwgVEFCTEVTIHJlcXVpcmVzIHB1YmxpY2F0aW9uIFwiJXNcIiB0byBoYXZlIGRlZmF1 bHQgdmFsdWVzIiwKKwkJCQkJCSAgIHN0bXQtPnB1Ym5hbWUpLAorCQkJCQllcnJoaW50KCJVc2Ug QUxURVIgUFVCTElDQVRJT04gLi4uIFJFU0VUIHRvIHJlc2V0IHRoZSBwdWJsaWNhdGlvbiIpKTsK KworCQlBbHRlclB1YmxpY2F0aW9uU2V0QWxsVGFibGVzKHJlbCwgdHVwKTsKKwl9CisKIAlpZiAo c3RtdC0+b3B0aW9ucykKIAkJQWx0ZXJQdWJsaWNhdGlvbk9wdGlvbnMocHN0YXRlLCBzdG10LCBy ZWwsIHR1cCk7CiAJZWxzZSBpZiAoc3RtdC0+YWN0aW9uID09IEFQX1Jlc2V0UHVibGljYXRpb24p CkBAIC0xNzQ2LDYgKzE4MzgsNyBAQCBPcGVuVGFibGVMaXN0KExpc3QgKnRhYmxlcykKIAkJcHVi X3JlbC0+cmVsYXRpb24gPSByZWw7CiAJCXB1Yl9yZWwtPndoZXJlQ2xhdXNlID0gdC0+d2hlcmVD bGF1c2U7CiAJCXB1Yl9yZWwtPmNvbHVtbnMgPSB0LT5jb2x1bW5zOworCQlwdWJfcmVsLT5leGNl cHQgPSB0LT5leGNlcHQ7CiAJCXJlbHMgPSBsYXBwZW5kKHJlbHMsIHB1Yl9yZWwpOwogCQlyZWxp ZHMgPSBsYXBwZW5kX29pZChyZWxpZHMsIG15cmVsaWQpOwogCkBAIC0xODE4LDYgKzE5MTEsNyBA QCBPcGVuVGFibGVMaXN0KExpc3QgKnRhYmxlcykKIAogCQkJCS8qIGNoaWxkIGluaGVyaXRzIGNv bHVtbiBsaXN0IGZyb20gcGFyZW50ICovCiAJCQkJcHViX3JlbC0+Y29sdW1ucyA9IHQtPmNvbHVt bnM7CisJCQkJcHViX3JlbC0+ZXhjZXB0ID0gdC0+ZXhjZXB0OwogCQkJCXJlbHMgPSBsYXBwZW5k KHJlbHMsIHB1Yl9yZWwpOwogCQkJCXJlbGlkcyA9IGxhcHBlbmRfb2lkKHJlbGlkcywgY2hpbGRy ZWxpZCk7CiAKQEAgLTE4OTMsOCArMTk4Nyw2IEBAIFB1YmxpY2F0aW9uQWRkVGFibGVzKE9pZCBw dWJpZCwgTGlzdCAqcmVscywgYm9vbCBpZl9ub3RfZXhpc3RzLAogewogCUxpc3RDZWxsICAgKmxj OwogCi0JQXNzZXJ0KCFzdG10IHx8ICFzdG10LT5mb3JfYWxsX3RhYmxlcyk7Ci0KIAlmb3JlYWNo KGxjLCByZWxzKQogCXsKIAkJUHVibGljYXRpb25SZWxJbmZvICpwdWJfcmVsID0gKFB1YmxpY2F0 aW9uUmVsSW5mbyAqKSBsZmlyc3QobGMpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCAy ZGUwZWJhY2VjLi41ZDk3ZWFkZjU0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMTYy NzYsNyArMTYyNzYsNyBAQCBBVFByZXBDaGFuZ2VQZXJzaXN0ZW5jZShSZWxhdGlvbiByZWwsIGJv b2wgdG9Mb2dnZWQpCiAJICogVU5MT0dHRUQgYXMgVU5MT0dHRUQgdGFibGVzIGNhbid0IGJlIHB1 Ymxpc2hlZC4KIAkgKi8KIAlpZiAoIXRvTG9nZ2VkICYmCi0JCWxpc3RfbGVuZ3RoKEdldFJlbGF0 aW9uUHVibGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSkpID4gMCkKKwkJbGlzdF9sZW5n dGgoR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBmYWxzZSkp ID4gMCkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1Rf SU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKIAkJCQkgZXJybXNnKCJjYW5ub3QgY2hhbmdlIHRhYmxl IFwiJXNcIiB0byB1bmxvZ2dlZCBiZWNhdXNlIGl0IGlzIHBhcnQgb2YgYSBwdWJsaWNhdGlvbiIs CkBAIC0xNjQxMyw3ICsxNjQxMyw3IEBAIEFsdGVyVGFibGVOYW1lc3BhY2UoQWx0ZXJPYmplY3RT Y2hlbWFTdG10ICpzdG10LCBPaWQgKm9sZHNjaGVtYSkKIAl7CiAJCUxpc3RDZWxsICAgKmxjOwog CQlMaXN0CSAgICpzY2hlbWFQdWJpZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMobnNwT2lkKTsK LQkJTGlzdAkgICAqcmVsUHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoUmVsYXRpb25H ZXRSZWxpZChyZWwpKTsKKwkJTGlzdAkgICAqcmVsUHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNh dGlvbnMoUmVsYXRpb25HZXRSZWxpZChyZWwpLCBmYWxzZSk7CiAKIAkJZm9yZWFjaChsYywgcmVs UHViaWRzKQogCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBkN2UxMzY2NmEyLi5lMjE5ODVkNGNiIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKQEAgLTQ1NSw3ICs0NTUsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZp ZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQkJ CXRyYW5zZm9ybV9lbGVtZW50X2xpc3QgdHJhbnNmb3JtX3R5cGVfbGlzdAogCQkJCVRyaWdnZXJU cmFuc2l0aW9ucyBUcmlnZ2VyUmVmZXJlbmNpbmcKIAkJCQl2YWN1dW1fcmVsYXRpb25fbGlzdCBv cHRfdmFjdXVtX3JlbGF0aW9uX2xpc3QKLQkJCQlkcm9wX29wdGlvbl9saXN0IHB1Yl9vYmpfbGlz dAorCQkJCWRyb3Bfb3B0aW9uX2xpc3QgcHViX29ial9saXN0IGV4Y2VwdF9wdWJfb2JqX2xpc3QK IAogJXR5cGUgPG5vZGU+CW9wdF9yb3V0aW5lX2JvZHkKICV0eXBlIDxncm91cGNsYXVzZT4gZ3Jv dXBfY2xhdXNlCkBAIC01ODgsNiArNTg4LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVW aWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0 eXBlIDxub2RlPgl2YXJfdmFsdWUgem9uZV92YWx1ZQogJXR5cGUgPHJvbGVzcGVjPiBhdXRoX2lk ZW50IFJvbGVTcGVjIG9wdF9ncmFudGVkX2J5CiAldHlwZSA8cHVibGljYXRpb25vYmplY3RzcGVj PiBQdWJsaWNhdGlvbk9ialNwZWMKKyV0eXBlIDxwdWJsaWNhdGlvbm9iamVjdHNwZWM+IEV4Y2Vw dFB1YmxpY2F0aW9uT2JqU3BlYwogCiAldHlwZSA8a2V5d29yZD4gdW5yZXNlcnZlZF9rZXl3b3Jk IHR5cGVfZnVuY19uYW1lX2tleXdvcmQKICV0eXBlIDxrZXl3b3JkPiBjb2xfbmFtZV9rZXl3b3Jk IHJlc2VydmVkX2tleXdvcmQKQEAgLTEwNDEwLDcgKzEwNDExLDcgQEAgQWx0ZXJPd25lclN0bXQ6 IEFMVEVSIEFHR1JFR0FURSBhZ2dyZWdhdGVfd2l0aF9hcmd0eXBlcyBPV05FUiBUTyBSb2xlU3Bl YwogICoKICAqIENSRUFURSBQVUJMSUNBVElPTiBuYW1lIFtXSVRIIG9wdGlvbnNdCiAgKgotICog Q1JFQVRFIFBVQkxJQ0FUSU9OIEZPUiBBTEwgVEFCTEVTIFtXSVRIIG9wdGlvbnNdCisgKiBDUkVB VEUgUFVCTElDQVRJT04gRk9SIEFMTCBUQUJMRVMgW0VYQ0VQVCBUQUJMRSB0YWJsZSBbLCAuLi5d XSBbV0lUSCBvcHRpb25zXQogICoKICAqIENSRUFURSBQVUJMSUNBVElPTiBGT1IgcHViX29iaiBb LCAuLi5dIFtXSVRIIG9wdGlvbnNdCiAgKgpAQCAtMTA0MzAsMTIgKzEwNDMxLDEzIEBAIENyZWF0 ZVB1YmxpY2F0aW9uU3RtdDoKIAkJCQkJbi0+b3B0aW9ucyA9ICQ0OwogCQkJCQkkJCA9IChOb2Rl ICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgUFVCTElDQVRJT04gbmFtZSBGT1IgQUxMIFRBQkxF UyBvcHRfZGVmaW5pdGlvbgorCQkJfCBDUkVBVEUgUFVCTElDQVRJT04gbmFtZSBGT1IgQUxMIFRB QkxFUyBleGNlcHRfcHViX29ial9saXN0IG9wdF9kZWZpbml0aW9uCiAJCQkJewogCQkJCQlDcmVh dGVQdWJsaWNhdGlvblN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVQdWJsaWNhdGlvblN0bXQpOwog CiAJCQkJCW4tPnB1Ym5hbWUgPSAkMzsKLQkJCQkJbi0+b3B0aW9ucyA9ICQ3OworCQkJCQluLT5v cHRpb25zID0gJDg7CisJCQkJCW4tPnB1Ym9iamVjdHMgPSAoTGlzdCAqKSQ3OwogCQkJCQluLT5m b3JfYWxsX3RhYmxlcyA9IHRydWU7CiAJCQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CkBAIC0x MDQ3Myw2ICsxMDQ3NSw3IEBAIFB1YmxpY2F0aW9uT2JqU3BlYzoKIAkJCQkJJCQtPnB1YnRhYmxl LT5yZWxhdGlvbiA9ICQyOwogCQkJCQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkMzsKIAkJCQkJ JCQtPnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9ICQ0OworCQkJCQkkJC0+bG9jYXRpb24gPSBAMTsK IAkJCQl9CiAJCQl8IEFMTCBUQUJMRVMgSU5fUCBTQ0hFTUEgQ29sSWQKIAkJCQl7CkBAIC0xMDU0 OCw2ICsxMDU1MSwyNSBAQCBwdWJfb2JqX2xpc3Q6CVB1YmxpY2F0aW9uT2JqU3BlYwogCQkJCQl7 ICQkID0gbGFwcGVuZCgkMSwgJDMpOyB9CiAJOwogCitFeGNlcHRQdWJsaWNhdGlvbk9ialNwZWM6 CisJCQkgcmVsYXRpb25fZXhwcgorCQkJCXsKKwkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlv bk9ialNwZWMpOworCQkJCQkkJC0+cHVib2JqdHlwZSA9IFBVQkxJQ0FUSU9OT0JKX0VYQ0VQVF9U QUJMRTsKKwkJCQkJJCQtPnB1YnRhYmxlID0gbWFrZU5vZGUoUHVibGljYXRpb25UYWJsZSk7CisJ CQkJCSQkLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gdHJ1ZTsKKwkJCQkJJCQtPnB1YnRhYmxlLT5yZWxh dGlvbiA9ICQxOworCQkJCQkkJC0+bG9jYXRpb24gPSBAMTsKKwkJCQl9CisJOworCitleGNlcHRf cHViX29ial9saXN0OglFWENFUFQgb3B0X3RhYmxlIEV4Y2VwdFB1YmxpY2F0aW9uT2JqU3BlYwor CQkJCQl7ICQkID0gbGlzdF9tYWtlMSgkMyk7IH0KKwkJCXwgZXhjZXB0X3B1Yl9vYmpfbGlzdCAn LCcgRXhjZXB0UHVibGljYXRpb25PYmpTcGVjCisJCQkJCXsgJCQgPSBsYXBwZW5kKCQxLCAkMyk7 IH0KKwkJCXwgIC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IE5VTEw7IH0KKwk7CisKIC8qKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKgogICoKICAqIEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgU0VUICggb3B0aW9u cyApCkBAIC0xMDU4Niw2ICsxMDYwOCwxNSBAQCBBbHRlclB1YmxpY2F0aW9uU3RtdDoKIAkJCQkJ bi0+YWN0aW9uID0gQVBfQWRkT2JqZWN0czsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0K KwkJCXwgQUxURVIgUFVCTElDQVRJT04gbmFtZSBBRERfUCBBTEwgVEFCTEVTIGV4Y2VwdF9wdWJf b2JqX2xpc3QKKwkJCQl7CisJCQkJCUFsdGVyUHVibGljYXRpb25TdG10ICpuID0gbWFrZU5vZGUo QWx0ZXJQdWJsaWNhdGlvblN0bXQpOworCQkJCQluLT5wdWJuYW1lID0gJDM7CisJCQkJCW4tPnB1 Ym9iamVjdHMgPSAkNzsKKwkJCQkJbi0+Zm9yX2FsbF90YWJsZXMgPSB0cnVlOworCQkJCQluLT5h Y3Rpb24gPSBBUF9BZGRPYmplY3RzOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CiAJCQl8 IEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgU0VUIHB1Yl9vYmpfbGlzdAogCQkJCXsKIAkJCQkJQWx0 ZXJQdWJsaWNhdGlvblN0bXQgKm4gPSBtYWtlTm9kZShBbHRlclB1YmxpY2F0aW9uU3RtdCk7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291dHB1dC5jIGIv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYwppbmRleCA0MmMwNmFm MjM5Li42Mzk0NDY2ZGFiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291 dHB1dC9wZ291dHB1dC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bn b3V0cHV0LmMKQEAgLTE5OTYsNyArMTk5Niw4IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1 dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCWlmICghZW50cnktPnJlcGxpY2F0ZV92 YWxpZCkKIAl7CiAJCU9pZAkJCXNjaGVtYUlkID0gZ2V0X3JlbF9uYW1lc3BhY2UocmVsaWQpOwot CQlMaXN0CSAgICpwdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCk7CisJCUxp c3QJICAgKnB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlkLCBmYWxzZSk7CisJ CUxpc3QJICAgKmV4Y2VwdFRhYmxlUHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMocmVs aWQsIHRydWUpOwogCiAJCS8qCiAJCSAqIFdlIGRvbid0IGFjcXVpcmUgYSBsb2NrIG9uIHRoZSBu YW1lc3BhY2Ugc3lzdGVtIHRhYmxlIGFzIHdlIGJ1aWxkCkBAIC0yMDg1LDIyICsyMDg2LDYgQEAg Z2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVsYXRpb24p CiAJCQlPaWQJCQlwdWJfcmVsaWQgPSByZWxpZDsKIAkJCWludAkJCWFuY2VzdG9yX2xldmVsID0g MDsKIAotCQkJLyoKLQkJCSAqIElmIHRoaXMgaXMgYSBGT1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlv biwgcGljayB0aGUgcGFydGl0aW9uCi0JCQkgKiByb290IGFuZCBzZXQgdGhlIGFuY2VzdG9yIGxl dmVsIGFjY29yZGluZ2x5LgotCQkJICovCi0JCQlpZiAocHViLT5hbGx0YWJsZXMpCi0JCQl7Ci0J CQkJcHVibGlzaCA9IHRydWU7Ci0JCQkJaWYgKHB1Yi0+cHVidmlhcm9vdCAmJiBhbV9wYXJ0aXRp b24pCi0JCQkJewotCQkJCQlMaXN0CSAgICphbmNlc3RvcnMgPSBnZXRfcGFydGl0aW9uX2FuY2Vz dG9ycyhyZWxpZCk7Ci0KLQkJCQkJcHViX3JlbGlkID0gbGxhc3Rfb2lkKGFuY2VzdG9ycyk7Ci0J CQkJCWFuY2VzdG9yX2xldmVsID0gbGlzdF9sZW5ndGgoYW5jZXN0b3JzKTsKLQkJCQl9Ci0JCQl9 Ci0KIAkJCWlmICghcHVibGlzaCkKIAkJCXsKIAkJCQlib29sCQlhbmNlc3Rvcl9wdWJsaXNoZWQg PSBmYWxzZTsKQEAgLTIxMTksNyArMjEwNCw4IEBAIGdldF9yZWxfc3luY19lbnRyeShQR091dHB1 dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCiAJCQkJCWFuY2VzdG9yID0gR2V0VG9w TW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihwdWItPm9pZCwKIAkJCQkJCQkJCQkJCQkJCSAgIGFu Y2VzdG9ycywKLQkJCQkJCQkJCQkJCQkJCSAgICZsZXZlbCk7CisJCQkJCQkJCQkJCQkJCQkgICAm bGV2ZWwsCisJCQkJCQkJCQkJCQkJCQkgICBwdWItPmFsbHRhYmxlcyk7CiAKIAkJCQkJaWYgKGFu Y2VzdG9yICE9IEludmFsaWRPaWQpCiAJCQkJCXsKQEAgLTIxMzQsNiArMjEyMCw4IEBAIGdldF9y ZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCiAJ CQkJaWYgKGxpc3RfbWVtYmVyX29pZChwdWJpZHMsIHB1Yi0+b2lkKSB8fAogCQkJCQlsaXN0X21l bWJlcl9vaWQoc2NoZW1hUHViaWRzLCBwdWItPm9pZCkgfHwKKwkJCQkJKHB1Yi0+YWxsdGFibGVz ICYmCisJCQkJCSAhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdFRhYmxlUHViaWRzLCBwdWItPm9pZCkp IHx8CiAJCQkJCWFuY2VzdG9yX3B1Ymxpc2hlZCkKIAkJCQkJcHVibGlzaCA9IHRydWU7CiAJCQl9 CkBAIC0yMjA5LDYgKzIxOTcsNyBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpk YXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAogCQlsaXN0X2ZyZWUocHViaWRzKTsKIAkJbGlzdF9m cmVlKHNjaGVtYVB1Ymlkcyk7CisJCWxpc3RfZnJlZShleGNlcHRUYWJsZVB1Ymlkcyk7CiAJCWxp c3RfZnJlZShyZWxfcHVibGljYXRpb25zKTsKIAogCQllbnRyeS0+cmVwbGljYXRlX3ZhbGlkID0g dHJ1ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMgYi9z cmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCmluZGV4IDYwZTcyZjllOGIuLjQ2NTlj NzY2ZGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYwpAQCAtNTU2MSw2ICs1NTYxLDgg QEAgdm9pZAogUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwg UHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogewogCUxpc3QJICAgKnB1Ym9pZHM7CisJTGlzdAkg ICAqYWxsdGFibGVzcHVib2lkczsKKwlMaXN0CSAgICpleGNlcHRwdWJvaWRzID0gTklMOwogCUxp c3RDZWxsICAgKmxjOwogCU1lbW9yeUNvbnRleHQgb2xkY3h0OwogCU9pZAkJCXNjaGVtYWlkOwpA QCAtNTU5NCw3ICs1NTk2LDcgQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlv biByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogCXB1YmRlc2MtPmNvbHNfdmFs aWRfZm9yX2RlbGV0ZSA9IHRydWU7CiAKIAkvKiBGZXRjaCB0aGUgcHVibGljYXRpb24gbWVtYmVy c2hpcCBpbmZvLiAqLwotCXB1Ym9pZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCk7 CisJcHVib2lkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlkLCBmYWxzZSk7CiAJc2No ZW1haWQgPSBSZWxhdGlvbkdldE5hbWVzcGFjZShyZWxhdGlvbik7CiAJcHVib2lkcyA9IGxpc3Rf Y29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywgR2V0U2NoZW1hUHVibGljYXRpb25zKHNjaGVtYWlk KSk7CiAKQEAgLTU2MDgsMTQgKzU2MTAsMTkgQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVz YyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogCQkJT2lkCQkJ YW5jZXN0b3IgPSBsZmlyc3Rfb2lkKGxjKTsKIAogCQkJcHVib2lkcyA9IGxpc3RfY29uY2F0X3Vu aXF1ZV9vaWQocHVib2lkcywKLQkJCQkJCQkJCQkJIEdldFJlbGF0aW9uUHVibGljYXRpb25zKGFu Y2VzdG9yKSk7CisJCQkJCQkJCQkJCSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNlc3Rvciwg ZmFsc2UpKTsKIAkJCXNjaGVtYWlkID0gZ2V0X3JlbF9uYW1lc3BhY2UoYW5jZXN0b3IpOwogCQkJ cHVib2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywKIAkJCQkJCQkJCQkJIEdl dFNjaGVtYVB1YmxpY2F0aW9ucyhzY2hlbWFpZCkpOworCQkJZXhjZXB0cHVib2lkcyA9IGxpc3Rf Y29uY2F0X3VuaXF1ZV9vaWQoZXhjZXB0cHVib2lkcywKKwkJCQkJCQkJCQkJCSAgIEdldFJlbGF0 aW9uUHVibGljYXRpb25zKGFuY2VzdG9yLCB0cnVlKSk7CiAJCX0KIAl9Ci0JcHVib2lkcyA9IGxp c3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywgR2V0QWxsVGFibGVzUHVibGljYXRpb25zKCkp OwogCisJYWxsdGFibGVzcHVib2lkcyA9IEdldEFsbFRhYmxlc1B1YmxpY2F0aW9ucygpOworCXB1 Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsCisJCQkJCQkJCQkgbGlzdF9k aWZmZXJlbmNlX29pZChhbGx0YWJsZXNwdWJvaWRzLAorCQkJCQkJCQkJCQkJCQkgZXhjZXB0cHVi b2lkcykpOwogCWZvcmVhY2gobGMsIHB1Ym9pZHMpCiAJewogCQlPaWQJCQlwdWJpZCA9IGxmaXJz dF9vaWQobGMpOwpAQCAtNTY0NCw3ICs1NjUxLDcgQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9u RGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogCQlpZiAo IXB1YmZvcm0tPnB1YmFsbHRhYmxlcyAmJgogCQkJKHB1YmZvcm0tPnB1YnVwZGF0ZSB8fCBwdWJm b3JtLT5wdWJkZWxldGUpICYmCiAJCQlwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4ocHVi aWQsIHJlbGF0aW9uLCBhbmNlc3RvcnMsCi0JCQkJCQkJCQkJICAgcHViZm9ybS0+cHVidmlhcm9v dCkpCisJCQkJCQkJCQkJICAgcHViZm9ybS0+cHVidmlhcm9vdCwgcHViZm9ybS0+cHViYWxsdGFi bGVzKSkKIAkJewogCQkJaWYgKHB1YmZvcm0tPnB1YnVwZGF0ZSkKIAkJCQlwdWJkZXNjLT5yZl92 YWxpZF9mb3JfdXBkYXRlID0gZmFsc2U7CkBAIC01NjYxLDcgKzU2NjgsNyBAQCBSZWxhdGlvbkJ1 aWxkUHVibGljYXRpb25EZXNjKFJlbGF0aW9uIHJlbGF0aW9uLCBQdWJsaWNhdGlvbkRlc2MgKnB1 YmRlc2MpCiAJCWlmICghcHViZm9ybS0+cHViYWxsdGFibGVzICYmCiAJCQkocHViZm9ybS0+cHVi dXBkYXRlIHx8IHB1YmZvcm0tPnB1YmRlbGV0ZSkgJiYKIAkJCXB1Yl9jb2xsaXN0X2NvbnRhaW5z X2ludmFsaWRfY29sdW1uKHB1YmlkLCByZWxhdGlvbiwgYW5jZXN0b3JzLAotCQkJCQkJCQkJCQkJ cHViZm9ybS0+cHVidmlhcm9vdCkpCisJCQkJCQkJCQkJCQlwdWJmb3JtLT5wdWJ2aWFyb290LCBw dWJmb3JtLT5wdWJhbGx0YWJsZXMpKQogCQl7CiAJCQlpZiAocHViZm9ybS0+cHVidXBkYXRlKQog CQkJCXB1YmRlc2MtPmNvbHNfdmFsaWRfZm9yX3VwZGF0ZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5k ZXggN2NjOWM3MmU0OS4uNzVhOTNmMGRlMiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3Bn X2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCkBAIC0xMjcsNiArMTI3LDgg QEAgc3RhdGljIFNpbXBsZU9pZExpc3QgZm9yZWlnbl9zZXJ2ZXJzX2luY2x1ZGVfb2lkcyA9IHtO VUxMLCBOVUxMfTsKIHN0YXRpYyBTaW1wbGVTdHJpbmdMaXN0IGV4dGVuc2lvbl9pbmNsdWRlX3Bh dHRlcm5zID0ge05VTEwsIE5VTEx9Owogc3RhdGljIFNpbXBsZU9pZExpc3QgZXh0ZW5zaW9uX2lu Y2x1ZGVfb2lkcyA9IHtOVUxMLCBOVUxMfTsKIAorc3RhdGljIFNpbXBsZVB0ckxpc3QgZXhjZXB0 aW5mbyA9IHtOVUxMLCBOVUxMfTsKKwogc3RhdGljIGNvbnN0IENhdGFsb2dJZCBuaWxDYXRhbG9n SWQgPSB7MCwgMH07CiAKIC8qIG92ZXJyaWRlIGZvciBzdGFuZGFyZCBleHRyYV9mbG9hdF9kaWdp dHMgc2V0dGluZyAqLwpAQCAtMzk4MCw4ICszOTgyLDM0IEBAIGR1bXBQdWJsaWNhdGlvbihBcmNo aXZlICpmb3V0LCBjb25zdCBQdWJsaWNhdGlvbkluZm8gKnB1YmluZm8pCiAJCQkJCSAgcXB1Ym5h bWUpOwogCiAJaWYgKHB1YmluZm8tPnB1YmFsbHRhYmxlcykKKwl7CisJCVNpbXBsZVB0ckxpc3RD ZWxsICpjZWxsOworCQlib29sIGZpcnN0ID0gdHJ1ZTsKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIo cXVlcnksICIgRk9SIEFMTCBUQUJMRVMiKTsKIAorCQkvKiBJbmNsdWRlIGV4Y2VwdGlvbiB0YWJs ZXMgaWYgdGhlIHB1YmxpY2F0aW9uIGhhcyBleGNlcHQgdGFibGVzICovCisJCWZvciAoY2VsbCA9 IGV4Y2VwdGluZm8uaGVhZDsgY2VsbDsgY2VsbCA9IGNlbGwtPm5leHQpCisJCXsKKwkJCVB1Ymxp Y2F0aW9uUmVsSW5mbyAqcHVicmluZm8gPSAoUHVibGljYXRpb25SZWxJbmZvICopIGNlbGwtPnB0 cjsKKwkJCVB1YmxpY2F0aW9uSW5mbyAqcmVscHViaW5mbyA9IHB1YnJpbmZvLT5wdWJsaWNhdGlv bjsKKwkJCVRhYmxlSW5mbyAgKnRiaW5mbzsKKworCQkJaWYgKHB1YmluZm8gPT0gcmVscHViaW5m bykKKwkJCXsKKwkJCQl0YmluZm8gPSBwdWJyaW5mby0+cHVidGFibGU7CisKKwkJCQlpZiAoZmly c3QpCisJCQkJeworCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIiBFWENFUFQgVEFC TEUiKTsKKwkJCQkJZmlyc3QgPSBmYWxzZTsKKwkJCQl9CisJCQkJZWxzZQorCQkJCQlhcHBlbmRQ UUV4cEJ1ZmZlclN0cihxdWVyeSwgIiwgIik7CisJCQkJYXBwZW5kUFFFeHBCdWZmZXIocXVlcnks ICIgT05MWSAlcyIsIGZtdFF1YWxpZmllZER1bXBhYmxlKHRiaW5mbykpOworCQkJfQorCQl9CisJ fQorCiAJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgV0lUSCAocHVibGlzaCA9ICciKTsK IAlpZiAocHViaW5mby0+cHViaW5zZXJ0KQogCXsKQEAgLTQxNTEsNiArNDE3OSw3IEBAIGdldFB1 YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBu dW1UYWJsZXMpCiAJaW50CQkJaV9wcnJlbGlkOwogCWludAkJCWlfcHJyZWxxdWFsOwogCWludAkJ CWlfcHJhdHRyczsKKwlpbnQJCQlpX3ByZXhjZXB0OwogCWludAkJCWksCiAJCQkJaiwKIAkJCQlu dHVwczsKQEAgLTQxNjIsOCArNDE5MSwxNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZl ICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCiAJLyogQ29sbGVj dCBhbGwgcHVibGljYXRpb24gbWVtYmVyc2hpcCBpbmZvLiAqLwogCWlmIChmb3V0LT5yZW1vdGVW ZXJzaW9uID49IDE1MDAwMCkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAorCQkJ CQkJCSJTRUxFQ1QgdGFibGVvaWQsIG9pZCwgcHJwdWJpZCwgcHJyZWxpZCxcbiIpOworCisJCS8q IEZJWE1FOiAxNTAwMDAgc2hvdWxkIGJlIGNoYW5nZWQgdG8gMTYwMDAwIGxhdGVyIGZvciBQRzE2 LiAqLworCQlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNTAwMDApCisJCQlhcHBlbmRQUUV4 cEJ1ZmZlclN0cihxdWVyeSwgIiBwcmV4Y2VwdCxcbiIpOworCQllbHNlCisJCQlhcHBlbmRQUUV4 cEJ1ZmZlclN0cihxdWVyeSwgIiBmYWxzZSBBUyBwcmV4Y2VwdCxcbiIpOworCiAJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKHF1ZXJ5LAotCQkJCQkJCSAiU0VMRUNUIHRhYmxlb2lkLCBvaWQsIHBycHVi aWQsIHBycmVsaWQsICIKIAkJCQkJCQkgInBnX2NhdGFsb2cucGdfZ2V0X2V4cHIocHJxdWFsLCBw cnJlbGlkKSBBUyBwcnJlbHF1YWwsICIKIAkJCQkJCQkgIihDQVNFXG4iCiAJCQkJCQkJICIgIFdI RU4gcHIucHJhdHRycyBJUyBOT1QgTlVMTCBUSEVOXG4iCkBAIC00MTc0LDYgKzQyMTIsNyBAQCBn ZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBp bnQgbnVtVGFibGVzKQogCQkJCQkJCSAiICAgICAgV0hFUkUgYXR0cmVsaWQgPSBwci5wcnJlbGlk IEFORCBhdHRudW0gPSBwcmF0dHJzW3NdKVxuIgogCQkJCQkJCSAiICBFTFNFIE5VTEwgRU5EKSBw cmF0dHJzICIKIAkJCQkJCQkgIkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIi KTsKKwl9CiAJZWxzZQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKIAkJCQkJCQkgIlNF TEVDVCB0YWJsZW9pZCwgb2lkLCBwcnB1YmlkLCBwcnJlbGlkLCAiCkBAIC00MTg5LDYgKzQyMjgs NyBAQCBnZXRQdWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5m b1tdLCBpbnQgbnVtVGFibGVzKQogCWlfcHJyZWxpZCA9IFBRZm51bWJlcihyZXMsICJwcnJlbGlk Iik7CiAJaV9wcnJlbHF1YWwgPSBQUWZudW1iZXIocmVzLCAicHJyZWxxdWFsIik7CiAJaV9wcmF0 dHJzID0gUFFmbnVtYmVyKHJlcywgInByYXR0cnMiKTsKKwlpX3ByZXhjZXB0ID0gUFFmbnVtYmVy KHJlcywgInByZXhjZXB0Iik7CiAKIAkvKiB0aGlzIGFsbG9jYXRpb24gbWF5IGJlIG1vcmUgdGhh biB3ZSBuZWVkICovCiAJcHVicmluZm8gPSBwZ19tYWxsb2MobnR1cHMgKiBzaXplb2YoUHVibGlj YXRpb25SZWxJbmZvKSk7CkBAIC00MjAwLDYgKzQyNDAsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxl cyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCQlP aWQJCQlwcnJlbGlkID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3BycmVsaWQpKTsKIAkJ UHVibGljYXRpb25JbmZvICpwdWJpbmZvOwogCQlUYWJsZUluZm8gICp0YmluZm87CisJCWNoYXIg ICAgICAgKnByZXhjZXB0ID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ByZXhjZXB0 KSk7CiAKIAkJLyoKIAkJICogSWdub3JlIGFueSBlbnRyaWVzIGZvciB3aGljaCB3ZSBhcmVuJ3Qg aW50ZXJlc3RlZCBpbiBlaXRoZXIgdGhlCkBAIC00MjIwLDcgKzQyNjEsMTEgQEAgZ2V0UHVibGlj YXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRh YmxlcykKIAkJCWNvbnRpbnVlOwogCiAJCS8qIE9LLCBtYWtlIGEgRHVtcGFibGVPYmplY3QgZm9y IHRoaXMgcmVsYXRpb25zaGlwICovCi0JCXB1YnJpbmZvW2pdLmRvYmoub2JqVHlwZSA9IERPX1BV QkxJQ0FUSU9OX1JFTDsKKwkJaWYgKHN0cmNtcChwcmV4Y2VwdCwgImYiKSA9PSAwKQorCQkJcHVi cmluZm9bal0uZG9iai5vYmpUeXBlID0gRE9fUFVCTElDQVRJT05fUkVMOworCQllbHNlCisJCQlw dWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19QVUJMSUNBVElPTl9FWENFUFRfUkVMOworCiAJ CXB1YnJpbmZvW2pdLmRvYmouY2F0SWQudGFibGVvaWQgPQogCQkJYXRvb2lkKFBRZ2V0dmFsdWUo cmVzLCBpLCBpX3RhYmxlb2lkKSk7CiAJCXB1YnJpbmZvW2pdLmRvYmouY2F0SWQub2lkID0gYXRv b2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX29pZCkpOwpAQCAtNDI1OSw2ICs0MzA0LDkgQEAgZ2V0 UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50 IG51bVRhYmxlcykKIAkJLyogRGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0byBkdW1wIGl0ICovCiAJ CXNlbGVjdER1bXBhYmxlUHVibGljYXRpb25PYmplY3QoJihwdWJyaW5mb1tqXS5kb2JqKSwgZm91 dCk7CiAKKwkJaWYgKHN0cmNtcChwcmV4Y2VwdCwgInQiKSA9PSAwKQorCQkJc2ltcGxlX3B0cl9s aXN0X2FwcGVuZCgmZXhjZXB0aW5mbywgJnB1YnJpbmZvW2pdKTsKKwogCQlqKys7CiAJfQogCkBA IC00MzMyLDYgKzQzODAsNyBAQCBkdW1wUHVibGljYXRpb25UYWJsZShBcmNoaXZlICpmb3V0LCBj b25zdCBQdWJsaWNhdGlvblJlbEluZm8gKnB1YnJpbmZvKQogCiAJYXBwZW5kUFFFeHBCdWZmZXIo cXVlcnksICJBTFRFUiBQVUJMSUNBVElPTiAlcyBBREQgVEFCTEUgT05MWSIsCiAJCQkJCSAgZm10 SWQocHViaW5mby0+ZG9iai5uYW1lKSk7CisKIAlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiAl cyIsCiAJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUodGJpbmZvKSk7CiAKQEAgLTk5MzYsNiAr OTk4NSw5IEBAIGR1bXBEdW1wYWJsZU9iamVjdChBcmNoaXZlICpmb3V0LCBEdW1wYWJsZU9iamVj dCAqZG9iaikKIAkJY2FzZSBET19QVUJMSUNBVElPTjoKIAkJCWR1bXBQdWJsaWNhdGlvbihmb3V0 LCAoY29uc3QgUHVibGljYXRpb25JbmZvICopIGRvYmopOwogCQkJYnJlYWs7CisJCWNhc2UgRE9f UFVCTElDQVRJT05fRVhDRVBUX1JFTDoKKwkJCS8qIHdpbGwgYmUgZHVtcGVkIGluIGR1bXBQdWJs aWNhdGlvbiAqLworCQkJYnJlYWs7CiAJCWNhc2UgRE9fUFVCTElDQVRJT05fUkVMOgogCQkJZHVt cFB1YmxpY2F0aW9uVGFibGUoZm91dCwgKGNvbnN0IFB1YmxpY2F0aW9uUmVsSW5mbyAqKSBkb2Jq KTsKIAkJCWJyZWFrOwpAQCAtMTc4NjksNiArMTc5MjEsNyBAQCBhZGRCb3VuZGFyeURlcGVuZGVu Y2llcyhEdW1wYWJsZU9iamVjdCAqKmRvYmpzLCBpbnQgbnVtT2JqcywKIAkJCWNhc2UgRE9fREVG QVVMVF9BQ0w6CiAJCQljYXNlIERPX1BPTElDWToKIAkJCWNhc2UgRE9fUFVCTElDQVRJT046CisJ CQljYXNlIERPX1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUw6CiAJCQljYXNlIERPX1BVQkxJQ0FUSU9O X1JFTDoKIAkJCWNhc2UgRE9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NIRU1BOgogCQkJY2FzZSBE T19TVUJTQ1JJUFRJT046CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oIGIv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCAxZDIxYzI5MDZmLi4wN2E1MGVjZTY4IDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmgKQEAgLTgwLDYgKzgwLDcgQEAgdHlwZWRlZiBlbnVtCiAJRE9fUkVGUkVTSF9N QVRWSUVXLAogCURPX1BPTElDWSwKIAlET19QVUJMSUNBVElPTiwKKwlET19QVUJMSUNBVElPTl9F WENFUFRfUkVMLAogCURPX1BVQkxJQ0FUSU9OX1JFTCwKIAlET19QVUJMSUNBVElPTl9UQUJMRV9J Tl9TQ0hFTUEsCiAJRE9fU1VCU0NSSVBUSU9OCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcF9zb3J0LmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcF9zb3J0LmMKaW5kZXggNWRl MzI0MWViNC4uYTY1OTVmMjVhNiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBf c29ydC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwpAQCAtOTAsNiArOTAs NyBAQCBlbnVtIGRiT2JqZWN0VHlwZVByaW9yaXRpZXMKIAlQUklPX0ZLX0NPTlNUUkFJTlQsCiAJ UFJJT19QT0xJQ1ksCiAJUFJJT19QVUJMSUNBVElPTiwKKwlQUklPX1BVQkxJQ0FUSU9OX0VYQ0VQ VF9SRUwsCiAJUFJJT19QVUJMSUNBVElPTl9SRUwsCiAJUFJJT19QVUJMSUNBVElPTl9UQUJMRV9J Tl9TQ0hFTUEsCiAJUFJJT19TVUJTQ1JJUFRJT04sCkBAIC0xNDQsNiArMTQ1LDcgQEAgc3RhdGlj IGNvbnN0IGludCBkYk9iamVjdFR5cGVQcmlvcml0eVtdID0KIAlQUklPX1JFRlJFU0hfTUFUVklF VywJCS8qIERPX1JFRlJFU0hfTUFUVklFVyAqLwogCVBSSU9fUE9MSUNZLAkJCQkvKiBET19QT0xJ Q1kgKi8KIAlQUklPX1BVQkxJQ0FUSU9OLAkJCS8qIERPX1BVQkxJQ0FUSU9OICovCisJUFJJT19Q VUJMSUNBVElPTl9FWENFUFRfUkVMLAkvKiBET19QVUJMSUNBVElPTl9FWENFUFRfUkVMICovCiAJ UFJJT19QVUJMSUNBVElPTl9SRUwsCQkvKiBET19QVUJMSUNBVElPTl9SRUwgKi8KIAlQUklPX1BV QkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQSwJLyogRE9fUFVCTElDQVRJT05fVEFCTEVfSU5fU0NI RU1BICovCiAJUFJJT19TVUJTQ1JJUFRJT04JCQkvKiBET19TVUJTQ1JJUFRJT04gKi8KQEAgLTE0 ODMsNiArMTQ4NSwxMSBAQCBkZXNjcmliZUR1bXBhYmxlT2JqZWN0KER1bXBhYmxlT2JqZWN0ICpv YmosIGNoYXIgKmJ1ZiwgaW50IGJ1ZnNpemUpCiAJCQkJCSAiUFVCTElDQVRJT04gKElEICVkIE9J RCAldSkiLAogCQkJCQkgb2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsKIAkJCXJldHVybjsK KwkJY2FzZSBET19QVUJMSUNBVElPTl9FWENFUFRfUkVMOgorCQkJc25wcmludGYoYnVmLCBidWZz aXplLAorCQkJCQkgIlBVQkxJQ0FUSU9OIEVYQ0VQVCBUQUJMRSAoSUQgJWQgT0lEICV1KSIsCisJ CQkJCSBvYmotPmR1bXBJZCwgb2JqLT5jYXRJZC5vaWQpOworCQkJcmV0dXJuOwogCQljYXNlIERP X1BVQkxJQ0FUSU9OX1JFTDoKIAkJCXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwKIAkJCQkJICJQVUJM SUNBVElPTiBUQUJMRSAoSUQgJWQgT0lEICV1KSIsCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1 bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmlu ZGV4IDFmMDg3MTZmNjkuLjEzYTNiM2Y4NzUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90 LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBA IC0yNDU0LDYgKzI0NTQsMTggQEAgbXkgJXRlc3RzID0gKAogCQlsaWtlID0+IHsgJWZ1bGxfcnVu cywgc2VjdGlvbl9wb3N0X2RhdGEgPT4gMSwgfSwKIAl9LAogCisJJ0NSRUFURSBQVUJMSUNBVElP TiBwdWI1JyA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA1MCwKKwkJY3JlYXRlX3NxbCAgID0+ICdD UkVBVEUgUFVCTElDQVRJT04gcHViNSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgZHVtcF90 ZXN0LnRlc3RfdGFibGU7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFBVQkxJQ0FU SU9OIHB1YjUgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIE9OTFkgZHVtcF90ZXN0LnRlc3Rf dGFibGUgV0lUSCAocHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVuY2F0ZScp O1xFCisJCQkveG0sCisJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9 PiAxLCB9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEs CisJCQlleGNsdWRlX3Rlc3RfdGFibGUgICAgICAgPT4gMSwKKwkJfSwKKwl9LAogCSdDUkVBVEUg U1VCU0NSSVBUSU9OIHN1YjEnID0+IHsKIAkJY3JlYXRlX29yZGVyID0+IDUwLAogCQljcmVhdGVf c3FsICAgPT4gJ0NSRUFURSBTVUJTQ1JJUFRJT04gc3ViMQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCAxYTVkOTI0YTIz Li5iZTJmNTU5YzhiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9z cmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtMjk1MCwxNyArMjk1MCwzNiBAQCBkZXNjcmliZU9u ZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkJCQkJCQkgICIgICAgICAg ICAgV0hFUkUgYXR0cmVsaWQgPSBwci5wcnJlbGlkIEFORCBhdHRudW0gPSBwcmF0dHJzW3NdKVxu IgogCQkJCQkJCQkgICIgICAgICAgIEVMU0UgTlVMTCBFTkQpICIKIAkJCQkJCQkJICAiRlJPTSBw Z19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIKLQkJCQkJCQkJICAiICAgICBKT0lOIHBnX2Nh dGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIE9OIHAub2lkID0gcHIucHJwdWJpZFxuIgotCQkJ CQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBjIE9OIGMub2lkID0gcHIucHJy ZWxpZFxuIgotCQkJCQkJCQkgICJXSEVSRSBwci5wcnJlbGlkID0gJyVzJ1xuIgorCQkJCQkJCQkg ICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIgT04gcC5vaWQgPSBwci5w cnB1YmlkXG4iCisJCQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNzIGMgT04gYy5v aWQgPSBwci5wcnJlbGlkXG4iCisJCQkJCQkJCSAgIldIRVJFIHByLnBycmVsaWQgPSAnJXMnXG4i LAorCQkJCQkJCQkgIG9pZCwgb2lkLCBvaWQpOworCisJCQkJLyogRklYTUU6IDE1MDAwMCBzaG91 bGQgYmUgY2hhbmdlZCB0byAxNjAwMDAgbGF0ZXIgZm9yIFBHMTYuICovCisJCQkJaWYgKHBzZXQu c3ZlcnNpb24gPj0gMTUwMDAwKQorCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiIEFO RCBwci5wcmV4Y2VwdCA9ICdmJ1xuIik7CisKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAog CQkJCQkJCQkgICJVTklPTlxuIgogCQkJCQkJCQkgICJTRUxFQ1QgcHVibmFtZVxuIgotCQkJCQkJ CQkgICIgICAgICwgTlVMTFxuIgotCQkJCQkJCQkgICIgICAgICwgTlVMTFxuIgorCQkJCQkJCQkg ICIJCSwgTlVMTFxuIgorCQkJCQkJCQkgICIJCSwgTlVMTFxuIgogCQkJCQkJCQkgICJGUk9NIHBn X2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgotCQkJCQkJCQkgICJXSEVSRSBwLnB1YmFsbHRh YmxlcyBBTkQgcGdfY2F0YWxvZy5wZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSgnJXMnKVxuIgot CQkJCQkJCQkgICJPUkRFUiBCWSAxOyIsCi0JCQkJCQkJCSAgb2lkLCBvaWQsIG9pZCwgb2lkKTsK KwkJCQkJCQkJICAiV0hFUkUgcC5wdWJhbGx0YWJsZXMgQU5EIHBnX2NhdGFsb2cucGdfcmVsYXRp b25faXNfcHVibGlzaGFibGUoJyVzJylcbiIsCisJCQkJCQkJCSAgb2lkKTsKKworCQkJCS8qIEZJ WE1FOiAxNTAwMDAgc2hvdWxkIGJlIGNoYW5nZWQgdG8gMTYwMDAwIGxhdGVyIGZvciBQRzE2LiAq LworCQkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE1MDAwMCkKKwkJCQkJYXBwZW5kUFFFeHBCdWZm ZXIoJmJ1ZiwKKwkJCQkJCQkJCSAgIiAgICAgQU5EIE5PVCBFWElTVFMgKFxuIgorCQkJCQkJCQkJ ICAiCQlTRUxFQ1QgMVxuIgorCQkJCQkJCQkJICAiCQlGUk9NIHBnX2NhdGFsb2cucGdfcHVibGlj YXRpb25fcmVsIHByXG4iCisJCQkJCQkJCQkgICIJCUpPSU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBw Y1xuIgorCQkJCQkJCQkJICAiCQlPTiBwci5wcnJlbGlkID0gcGMub2lkXG4iCisJCQkJCQkJCQkg ICIJCVdIRVJFIHByLnBycmVsaWQgPSAnJXMnIEFORCBwci5wcnB1YmlkID0gcC5vaWQpXG4iLAor CQkJCQkJCQkJICBvaWQpOworCisJCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIk9SREVS IEJZIDE7Iik7CiAJCQl9CiAJCQllbHNlCiAJCQl7CkBAIC02MzAyLDggKzYzMjEsMTMgQEAgZGVz Y3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJCQkJCQkgICIgICAgIHBn X2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByXG4iCiAJCQkJCQkJICAiV0hFUkUgYy5yZWxu YW1lc3BhY2UgPSBuLm9pZFxuIgogCQkJCQkJCSAgIiAgQU5EIGMub2lkID0gcHIucHJyZWxpZFxu IgotCQkJCQkJCSAgIiAgQU5EIHByLnBycHViaWQgPSAnJXMnXG4iCi0JCQkJCQkJICAiT1JERVIg QlkgMSwyIiwgcHViaWQpOworCQkJCQkJCSAgIiAgQU5EIHByLnBycHViaWQgPSAnJXMnXG4iLCBw dWJpZCk7CisKKwkJCS8qIEZJWE1FOiAxNTAwMDAgc2hvdWxkIGJlIGNoYW5nZWQgdG8gMTYwMDAw IGxhdGVyIGZvciBQRzE2LiAqLworCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQorCQkJ CWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICIgIEFORCBwci5wcmV4Y2VwdCA9ICdmJ1xuIik7CisK KwkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICJPUkRFUiBCWSAxLDIiKTsKIAkJCWlmICghYWRk Rm9vdGVyVG9QdWJsaWNhdGlvbkRlc2MoJmJ1ZiwgXygiVGFibGVzOiIpLCBmYWxzZSwgJmNvbnQp KQogCQkJCWdvdG8gZXJyb3JfcmV0dXJuOwogCkBAIC02MzIxLDYgKzYzNDUsMjQgQEAgZGVzY3Jp YmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJCQkJZ290byBlcnJvcl9yZXR1 cm47CiAJCQl9CiAJCX0KKwkJZWxzZQorCQl7CisJCQkvKiBGSVhNRTogMTUwMDAwIHNob3VsZCBi ZSBjaGFuZ2VkIHRvIDE2MDAwMCBsYXRlciBmb3IgUEcxNi4gKi8KKwkJCWlmIChwc2V0LnN2ZXJz aW9uID49IDE1MDAwMCkKKwkJCXsKKwkJCQkvKiBHZXQgdGhlIGV4Y2x1ZGVkIHRhYmxlcyBmb3Ig dGhlIHNwZWNpZmllZCBwdWJsaWNhdGlvbiAqLworCQkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYs CisJCQkJCQkJCSJTRUxFQ1QgY29uY2F0KGMucmVsbmFtZXNwYWNlOjpyZWduYW1lc3BhY2UsICcu JywgYy5yZWxuYW1lKVxuIgorCQkJCQkJCQkiRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGNcbiIK KwkJCQkJCQkJIiAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBwciBPTiBj Lm9pZCA9IHByLnBycmVsaWRcbiIKKwkJCQkJCQkJIldIRVJFIHByLnBycHViaWQgPSAnJXMnXG4i CisJCQkJCQkJCSIgIEFORCBwci5wcmV4Y2VwdCA9ICd0J1xuIgorCQkJCQkJCQkiT1JERVIgQlkg MSIsIHB1YmlkKTsKKwkJCQlpZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25EZXNjKCZidWYsIF8o IkV4Y2VwdCB0YWJsZXM6IiksCisJCQkJCQkJCQkJCQl0cnVlLCAmY29udCkpCisJCQkJCWdvdG8g ZXJyb3JfcmV0dXJuOworCQkJfQorCQl9CiAKIAkJcHJpbnRUYWJsZSgmY29udCwgcHNldC5xdWVy eUZvdXQsIGZhbHNlLCBwc2V0LmxvZ2ZpbGUpOwogCQlwcmludFRhYmxlQ2xlYW51cCgmY29udCk7 CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmMgYi9zcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmMKaW5kZXggNjJlY2MzY2RhYi4uODNjNDdjNDhlZCAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuYwpAQCAtMTgyMiw5ICsxODIyLDEzIEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0 ZXh0LCBpbnQgc3RhcnQsIGludCBlbmQpCiAJCUNPTVBMRVRFX1dJVEgoIkFERCIsICJEUk9QIiwg Ik9XTkVSIFRPIiwgIlJFTkFNRSBUTyIsICJSRVNFVCIsICJTRVQiKTsKIAkvKiBBTFRFUiBQVUJM SUNBVElPTiA8bmFtZT4gQUREICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElD QVRJT04iLCBNYXRjaEFueSwgIkFERCIpKQotCQlDT01QTEVURV9XSVRIKCJBTEwgVEFCTEVTIElO IFNDSEVNQSIsICJUQUJMRSIpOworCQlDT01QTEVURV9XSVRIKCJBTEwgVEFCTEVTIElOIFNDSEVN QSIsICJBTEwgVEFCTEVTIiwgIlRBQkxFIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAi UFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIsICJBTEwiLCAiVEFCTEVTIikpCisJCUNPTVBM RVRFX1dJVEgoIkVYQ0VQVCBUQUJMRSIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBV QkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxFIikgfHwKLQkJCSAoSGVhZE1h dGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VUIiwgIlRBQkxF IikgJiYKKwkJCSBNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQURE IiwgIkFMTCIsICJUQUJMRVMiLCAiRVhDRVBUIiwgIlRBQkxFIikgfHwKKwkJCSAoKEhlYWRNYXRj aGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIp IHx8CisJCQkgIEhlYWRNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAi QUREIiwgIkFMTCIsICJUQUJMRVMiLCAiRVhDRVBUIiwgIlRBQkxFIikpICYmCiAJCQkgIGVuZHNf d2l0aChwcmV2X3dkLCAnLCcpKSkKIAkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlf Zm9yX2xpc3Rfb2ZfdGFibGVzKTsKIApAQCAtMjk4Niw3ICsyOTkwLDcgQEAgcHNxbF9jb21wbGV0 aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAllbHNlIGlmIChNYXRj aGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJBTEwiKSkKIAkJ Q09NUExFVEVfV0lUSCgiVEFCTEVTIiwgIlRBQkxFUyBJTiBTQ0hFTUEiKTsKIAllbHNlIGlmIChN YXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJBTEwiLCAi VEFCTEVTIikpCi0JCUNPTVBMRVRFX1dJVEgoIklOIFNDSEVNQSIsICJXSVRIICgiKTsKKwkJQ09N UExFVEVfV0lUSCgiSU4gU0NIRU1BIiwgIldJVEggKCIsICJFWENFUFQgVEFCTEUiKTsKIAllbHNl IGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJU QUJMRSIsIE1hdGNoQW55KSAmJiAhZW5kc193aXRoKHByZXZfd2QsICcsJykpCiAJCUNPTVBMRVRF X1dJVEgoIldIRVJFICgiLCAiV0lUSCAoIik7CiAJLyogQ29tcGxldGUgIkNSRUFURSBQVUJMSUNB VElPTiA8bmFtZT4gRk9SIFRBQkxFIiB3aXRoICI8dGFibGU+LCAuLi4iICovCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmggYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3B1YmxpY2F0aW9uLmgKaW5kZXggNDgyMDViYTQyOS4uYzkyZGQ0MGExNyAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCisrKyBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaApAQCAtMTA4LDExICsxMDgsMTIgQEAgdHlwZWRl ZiBzdHJ1Y3QgUHVibGljYXRpb25SZWxJbmZvCiAJUmVsYXRpb24JcmVsYXRpb247CiAJTm9kZQkg ICAqd2hlcmVDbGF1c2U7CiAJTGlzdAkgICAqY29sdW1uczsKKwlib29sCQlleGNlcHQ7CiB9IFB1 YmxpY2F0aW9uUmVsSW5mbzsKIAogZXh0ZXJuIFB1YmxpY2F0aW9uICpHZXRQdWJsaWNhdGlvbihP aWQgcHViaWQpOwogZXh0ZXJuIFB1YmxpY2F0aW9uICpHZXRQdWJsaWNhdGlvbkJ5TmFtZShjb25z dCBjaGFyICpwdWJuYW1lLCBib29sIG1pc3Npbmdfb2spOwotZXh0ZXJuIExpc3QgKkdldFJlbGF0 aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCk7CitleHRlcm4gTGlzdCAqR2V0UmVsYXRpb25QdWJs aWNhdGlvbnMoT2lkIHJlbGlkLCBib29sIGV4Y2VwdF9mbGFnKTsKIAogLyotLS0tLS0tLS0KICAq IEV4cGVjdGVkIHZhbHVlcyBmb3IgcHViX3BhcnRvcHQgcGFyYW1ldGVyIG9mIEdldFJlbGF0aW9u UHVibGljYXRpb25zKCksCkBAIC0xMzIsNyArMTMzLDcgQEAgdHlwZWRlZiBlbnVtIFB1YmxpY2F0 aW9uUGFydE9wdAogCiBleHRlcm4gTGlzdCAqR2V0UHVibGljYXRpb25SZWxhdGlvbnMoT2lkIHB1 YmlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQpOwogZXh0ZXJuIExpc3QgKkdldEFs bFRhYmxlc1B1YmxpY2F0aW9ucyh2b2lkKTsKLWV4dGVybiBMaXN0ICpHZXRBbGxUYWJsZXNQdWJs aWNhdGlvblJlbGF0aW9ucyhib29sIHB1YnZpYXJvb3QpOworZXh0ZXJuIExpc3QgKkdldEFsbFRh Ymxlc1B1YmxpY2F0aW9uUmVsYXRpb25zKE9pZCBwdWJpZCwgYm9vbCBwdWJ2aWFyb290KTsKIGV4 dGVybiBMaXN0ICpHZXRQdWJsaWNhdGlvblNjaGVtYXMoT2lkIHB1YmlkKTsKIGV4dGVybiBMaXN0 ICpHZXRTY2hlbWFQdWJsaWNhdGlvbnMoT2lkIHNjaGVtYWlkKTsKIGV4dGVybiBMaXN0ICpHZXRT Y2hlbWFQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgc2NoZW1haWQsCkBAIC0xNDMsNyArMTQ0LDcg QEAgZXh0ZXJuIExpc3QgKkdldFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9ucyhMaXN0ICpyZXN1 bHQsCiAJCQkJCQkJCQkJCVB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCwKIAkJCQkJCQkJ CQkJT2lkIHJlbGlkKTsKIGV4dGVybiBPaWQJR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlv bihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsCi0JCQkJCQkJCQkJCWludCAqYW5jZXN0b3Jf bGV2ZWwpOworCQkJCQkJCQkJCQlpbnQgKmFuY2VzdG9yX2xldmVsLCBib29sIHB1YmFsbHRhYmxl cyk7CiAKIGV4dGVybiBib29sIGlzX3B1Ymxpc2hhYmxlX3JlbGF0aW9uKFJlbGF0aW9uIHJlbCk7 CiBleHRlcm4gYm9vbCBpc19zY2hlbWFfcHVibGljYXRpb24oT2lkIHB1YmlkKTsKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmggYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oCmluZGV4IGVjZDM3MzlmMWEuLjI4YTMzZmYx N2EgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmgK KysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaApAQCAtMzEsNiAr MzEsNyBAQCBDQVRBTE9HKHBnX3B1YmxpY2F0aW9uX3JlbCw2MTA2LFB1YmxpY2F0aW9uUmVsUmVs YXRpb25JZCkKIAlPaWQJCQlvaWQ7CQkJLyogb2lkICovCiAJT2lkCQkJcHJwdWJpZCBCS0lfTE9P S1VQKHBnX3B1YmxpY2F0aW9uKTsgLyogT2lkIG9mIHRoZSBwdWJsaWNhdGlvbiAqLwogCU9pZAkJ CXBycmVsaWQgQktJX0xPT0tVUChwZ19jbGFzcyk7CS8qIE9pZCBvZiB0aGUgcmVsYXRpb24gKi8K Kwlib29sCQlwcmV4Y2VwdCBCS0lfREVGQVVMVChmKTsJLyogZXhjbHVkZSB0aGUgcmVsYXRpb24g Ki8KIAogI2lmZGVmCUNBVEFMT0dfVkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBz dGFydCBoZXJlICovCiAJcGdfbm9kZV90cmVlIHBycXVhbDsJCS8qIHF1YWxpZmljYXRpb25zICov CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaCBiL3Ny Yy9pbmNsdWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oCmluZGV4IDU3ZGYzZmMxZTMuLmU0 ZTRlZDE3YWIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21k cy5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oCkBAIC0zMiw4 ICszMiwxMSBAQCBleHRlcm4gT2JqZWN0QWRkcmVzcyBBbHRlclB1YmxpY2F0aW9uT3duZXIoY29u c3QgY2hhciAqbmFtZSwgT2lkIG5ld093bmVySWQpOwogZXh0ZXJuIHZvaWQgQWx0ZXJQdWJsaWNh dGlvbk93bmVyX29pZChPaWQgcHViaWQsIE9pZCBuZXdPd25lcklkKTsKIGV4dGVybiB2b2lkIElu dmFsaWRhdGVQdWJsaWNhdGlvblJlbHMoTGlzdCAqcmVsaWRzKTsKIGV4dGVybiBib29sIHB1Yl9y Zl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLAot CQkJCQkJCQkJCSAgIExpc3QgKmFuY2VzdG9ycywgYm9vbCBwdWJ2aWFyb290KTsKKwkJCQkJCQkJ CQkgICBMaXN0ICphbmNlc3RvcnMsIGJvb2wgcHVidmlhcm9vdCwKKwkJCQkJCQkJCQkgICBib29s IHB1YmFsbHRhYmxlcyk7CiBleHRlcm4gYm9vbCBwdWJfY29sbGlzdF9jb250YWluc19pbnZhbGlk X2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLAotCQkJCQkJCQkJCQkJTGlzdCAq YW5jZXN0b3JzLCBib29sIHB1YnZpYXJvb3QpOworCQkJCQkJCQkJCQkJTGlzdCAqYW5jZXN0b3Jz LAorCQkJCQkJCQkJCQkJYm9vbCBwdWJ2aWFyb290LAorCQkJCQkJCQkJCQkJYm9vbCBwdWJhbGx0 YWJsZXMpOwogCiAjZW5kaWYJCQkJCQkJLyogUFVCTElDQVRJT05DTURTX0ggKi8KZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaAppbmRleCA5NzI2ZmRhZTU4Li4xMzRhZDA1OTM2IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oCkBAIC0zOTk5LDYgKzM5OTksNyBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvblRh YmxlCiAJUmFuZ2VWYXIgICAqcmVsYXRpb247CQkvKiByZWxhdGlvbiB0byBiZSBwdWJsaXNoZWQg Ki8KIAlOb2RlCSAgICp3aGVyZUNsYXVzZTsJLyogcXVhbGlmaWNhdGlvbnMgKi8KIAlMaXN0CSAg ICpjb2x1bW5zOwkJLyogTGlzdCBvZiBjb2x1bW5zIGluIGEgcHVibGljYXRpb24gdGFibGUgKi8K Kwlib29sCQlleGNlcHQ7CQkJLyogZXhjZXB0IHJlbGF0aW9uICovCiB9IFB1YmxpY2F0aW9uVGFi bGU7CiAKIC8qCkBAIC00MDA3LDYgKzQwMDgsNyBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlv blRhYmxlCiB0eXBlZGVmIGVudW0gUHVibGljYXRpb25PYmpTcGVjVHlwZQogewogCVBVQkxJQ0FU SU9OT0JKX1RBQkxFLAkJLyogQSB0YWJsZSAqLworCVBVQkxJQ0FUSU9OT0JKX0VYQ0VQVF9UQUJM RSwJCS8qIEFuIEV4Y2VwdCB0YWJsZSAqLwogCVBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9TQ0hF TUEsCS8qIEFsbCB0YWJsZXMgaW4gc2NoZW1hICovCiAJUFVCTElDQVRJT05PQkpfVEFCTEVTX0lO X0NVUl9TQ0hFTUEsCS8qIEFsbCB0YWJsZXMgaW4gZmlyc3QgZWxlbWVudCBvZgogCQkJCQkJCQkJ CQkgKiBzZWFyY2hfcGF0aCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wdWJsaWNhdGlvbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9u Lm91dAppbmRleCBmODUyN2RhZTAyLi43MDVlMmY0N2ZjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3B1YmxpY2F0aW9uLm91dApAQCAtMTY1LDEzICsxNjUsMjcgQEAgUHVibGljYXRpb25z OgogIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCBmCiAoMSByb3cpCiAKK1NFVCBjbGllbnRfbWlu X21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRh Ymxlc19leGNlcHR0YWJsZSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgdGVzdHB1Yl90Ymwx LCB0ZXN0cHViX3RibDI7CitSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOworXGRScCsgdGVzdHB1 Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgIFB1Ymxp Y2F0aW9uIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlCisgICAgICAgICAgT3duZXIg ICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRy dW5jYXRlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K KyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAgICAgICAgIHwgdCAgICAgICB8IHQgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgZgorRXhjZXB0IHRhYmxlczoKKyAgICAicHVibGlj LnRlc3RwdWJfdGJsMSIKKyAgICAicHVibGljLnRlc3RwdWJfdGJsMiIKKwogRFJPUCBUQUJMRSB0 ZXN0cHViX3RibDI7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzLCB0ZXN0 cHViX2ZvcnRhYmxlLCB0ZXN0cHViX2ZvcnNjaGVtYTsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1 Yl9mb3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9ydGFibGUsIHRlc3RwdWJfZm9yc2NoZW1hLCB0ZXN0 cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTsKIENSRUFURSBUQUJMRSB0ZXN0cHViX3RibDMg KGEgaW50KTsKIENSRUFURSBUQUJMRSB0ZXN0cHViX3RibDNhIChiIHRleHQpIElOSEVSSVRTICh0 ZXN0cHViX3RibDMpOwogU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwogQ1JFQVRF IFBVQkxJQ0FUSU9OIHRlc3RwdWIzIEZPUiBUQUJMRSB0ZXN0cHViX3RibDM7CiBDUkVBVEUgUFVC TElDQVRJT04gdGVzdHB1YjQgRk9SIFRBQkxFIE9OTFkgdGVzdHB1Yl90YmwzOworQ1JFQVRFIFBV QkxJQ0FUSU9OIHRlc3RwdWI1IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSB0ZXN0cHViX3Ri bDM7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjYgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRB QkxFIE9OTFkgdGVzdHB1Yl90YmwzOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKIFxkUnAr IHRlc3RwdWIzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlv biB0ZXN0cHViMwpAQCAtMTkwLDggKzIwNCwyNSBAQCBUYWJsZXM6CiBUYWJsZXM6CiAgICAgInB1 YmxpYy50ZXN0cHViX3RibDMiCiAKK1xkUnArIHRlc3RwdWI1CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViNQorICAgICAgICAgIE93bmVyICAg ICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVu Y2F0ZXMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKK0V4Y2VwdCB0YWJsZXM6CisgICAgInB1YmxpYy50 ZXN0cHViX3RibDMiCisgICAgInB1YmxpYy50ZXN0cHViX3RibDNhIgorCitcZFJwKyB0ZXN0cHVi NgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1 YjYKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVw ZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAg ICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCitFeGNlcHQg dGFibGVzOgorICAgICJwdWJsaWMudGVzdHB1Yl90YmwzIgorCiBEUk9QIFRBQkxFIHRlc3RwdWJf dGJsMywgdGVzdHB1Yl90YmwzYTsKLURST1AgUFVCTElDQVRJT04gdGVzdHB1YjMsIHRlc3RwdWI0 OworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViMywgdGVzdHB1YjQsIHRlc3RwdWI1LCB0ZXN0cHVi NjsKIC0tIFRlc3RzIGZvciBwYXJ0aXRpb25lZCB0YWJsZXMKIFNFVCBjbGllbnRfbWluX21lc3Nh Z2VzID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcnBhcnRlZDsKQEAg LTE2NTYsOSArMTY4NywxNCBAQCBEUk9QIFNDSEVNQSBzY2gyIGNhc2NhZGU7CiAtLSBUZXN0cyBm b3IgQUxURVIgUFVCTElDQVRJT04gLi4uIFJFU0VUCiBDUkVBVEUgU0NIRU1BIHB1Yl9zY2gxOwog Q1JFQVRFIFRBQkxFIHB1Yl9zY2gxLnRibDEgKGEgaW50KTsKK0NSRUFURSBUQUJMRSBwdWJfc2No MS50YmwyIChhIGludCk7CiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVB VEUgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBGT1IgQUxMIFRBQkxFUzsKIFJFU0VUIGNsaWVu dF9taW5fbWVzc2FnZXM7CistLSBjYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHRvICdGT1IgQUxMIFRB QkxFUycgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFM TCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7CitFUlJPUjogIFNldHRpbmcgQUxM IFRBQkxFUyByZXF1aXJlcyBwdWJsaWNhdGlvbiAidGVzdHB1Yl9yZXNldCIgdG8gaGF2ZSBkZWZh dWx0IHZhbHVlcworSElOVDogIFVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQgdG8gcmVz ZXQgdGhlIHB1YmxpY2F0aW9uCiAtLSBWZXJpZnkgdGhhdCAnQUxMIFRBQkxFUycgZmxhZyBpcyBy ZXNldAogXGRScCsgdGVzdHB1Yl9yZXNldAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldApAQCAtMTY3NSw5ICsxNzExLDI0IEBAIEFMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CiAgcmVncmVzc19wdWJsaWNhdGlvbl91 c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg ICB8IGYKICgxIHJvdykKIAotQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgVEFC TEUgcHViX3NjaDEudGJsMSwgQUxMIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljOwotLS0gVmVyaWZ5 IHRoYXQgdGFibGVzIGFuZCBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24g YXJlIGRyb3BwZWQKLS0tIGFmdGVyIFJFU0VUCistLSBzaG91bGQgd29yayBub3cgYWZ0ZXIgcmVz ZXR0aW5nIHRoZSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBB REQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMSwgcHViX3NjaDEudGJsMjsK K1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1 YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwg dGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJv b3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGlj YXRpb25fdXNlciB8IHQgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0 ICAgICAgICAgfCBmCitFeGNlcHQgdGFibGVzOgorICAgICJwdWJfc2NoMS50YmwxIgorICAgICJw dWJfc2NoMS50YmwyIgorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwor QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgVEFCTEUgcHViX3NjaDEudGJsMTsK Ky0tIGNhbid0IGFkZCBFWENFUFQgVEFCTEUgdG8gJ0ZPUiBUQUJMRScgcHVibGljYXRpb24KK0FM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxF IHB1Yl9zY2gxLnRibDE7CitFUlJPUjogIFNldHRpbmcgQUxMIFRBQkxFUyByZXF1aXJlcyBwdWJs aWNhdGlvbiAidGVzdHB1Yl9yZXNldCIgdG8gaGF2ZSBkZWZhdWx0IHZhbHVlcworSElOVDogIFVz ZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQgdG8gcmVzZXQgdGhlIHB1YmxpY2F0aW9uCist LSBWZXJpZnkgdGhhdCB0YWJsZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiBhcmUg ZHJvcHBlZCBhZnRlciBSRVNFVAogXGRScCsgdGVzdHB1Yl9yZXNldAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAogICAgICAgICAgIE93 bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMg fCBUcnVuY2F0ZXMgfCBWaWEgcm9vdCAKQEAgLTE2ODUsNiArMTczNiwyNiBAQCBBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBUQUJMRSBwdWJfc2NoMS50YmwxLCBBTEwgVEFCTEVT IElOIFNDSEVNQSBwdQogIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0 ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBmCiBUYWJsZXM6CiAgICAg InB1Yl9zY2gxLnRibDEiCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7 CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ dWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxs IHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IFZpYSBy b290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1Ymxp Y2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICAgIHwgZgorKDEgcm93KQorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 IEFERCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWM7CistLSBjYW4ndCBhZGQgRVhDRVBUIFRB QkxFIHRvICdGT1IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBwdWJfc2No MS50YmwxOworRVJST1I6ICBTZXR0aW5nIEFMTCBUQUJMRVMgcmVxdWlyZXMgcHVibGljYXRpb24g InRlc3RwdWJfcmVzZXQiIHRvIGhhdmUgZGVmYXVsdCB2YWx1ZXMKK0hJTlQ6ICBVc2UgQUxURVIg UFVCTElDQVRJT04gLi4uIFJFU0VUIHRvIHJlc2V0IHRoZSBwdWJsaWNhdGlvbgorLS0gVmVyaWZ5 IHRoYXQgc2NoZW1hcyBhc3NvY2lhdGVkIHdpdGggdGhlIHB1YmxpY2F0aW9uIGFyZSBkcm9wcGVk IGFmdGVyIFJFU0VUCitcZFJwKyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgQWxsIHRhYmxlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5j YXRlcyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyBy ZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCB0ICAgICAgIHwgdCAgICAgICAgIHwgZgogVGFibGVzIGZyb20gc2NoZW1hczoKICAgICAicHVi bGljIgogCkBAIC0xNjk2LDEzICsxNzY3LDQwIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJf cmVzZXQgUkVTRVQ7CiAgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQg ICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IGYKICgxIHJvdykKIAotQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJU0ggPSAnJywgUFVCTElTSF9W SUFfUEFSVElUSU9OX1JPT1QgPSAndHJ1ZScpOwotLS0gVmVyaWZ5IHRoYXQgcHVibGlzaCBvcHRp b25zIGFuZCBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCBvcHRpb24gYXJlIHJlc2V0CitBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAoUFVCTElTSCA9ICcnKTsKKy0tIGNhbid0 IGFkZCBFWENFUFQgVEFCTEUgd2hlbiB0aGUgcHVibGljYXRpb24gb3B0aW9ucyBhcmUgbm90IHRo ZSBkZWZhdWx0CistLSB2YWx1ZXMKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQURE IEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7CitFUlJPUjogIFNldHRpbmcg QUxMIFRBQkxFUyByZXF1aXJlcyBwdWJsaWNhdGlvbiAidGVzdHB1Yl9yZXNldCIgdG8gaGF2ZSBk ZWZhdWx0IHZhbHVlcworSElOVDogIFVzZSBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQgdG8g cmVzZXQgdGhlIHB1YmxpY2F0aW9uCistLSBWZXJpZnkgdGhhdCBwdWJsaXNoIG9wdGlvbiBpcyBy ZXNldAorXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8 IEFsbCB0YWJsZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBW aWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19w dWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgfCBmICAgICAgIHwgZiAgICAg ICB8IGYgICAgICAgICB8IGYKKygxIHJvdykKKworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9y ZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNh dGVzIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJl Z3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8 IHQgICAgICAgfCB0ICAgICAgICAgfCBmCisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgU0VUIChQVUJMSVNIX1ZJQV9QQVJUSVRJT05fUk9PVCA9ICd0cnVlJyk7Cist LSBjYW4ndCBhZGQgRVhDRVBUIFRBQkxFIHdoZW4gcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3Qg b3B0aW9uIGRvZXMgbm90CistLSBoYXZlIGRlZmF1bHQgdmFsdWUKK0FMVEVSIFBVQkxJQ0FUSU9O IHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1Yl9zY2gxLnRibDE7 CitFUlJPUjogIFNldHRpbmcgQUxMIFRBQkxFUyByZXF1aXJlcyBwdWJsaWNhdGlvbiAidGVzdHB1 Yl9yZXNldCIgdG8gaGF2ZSBkZWZhdWx0IHZhbHVlcworSElOVDogIFVzZSBBTFRFUiBQVUJMSUNB VElPTiAuLi4gUkVTRVQgdG8gcmVzZXQgdGhlIHB1YmxpY2F0aW9uCistLSBWZXJpZnkgdGhhdCBw dWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCBvcHRpb24gaXMgcmVzZXQKIFxkUnArIHRlc3RwdWJf cmVzZXQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3Rw dWJfcmVzZXQKICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgSW5zZXJ0 cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgVmlhIHJvb3QgCiAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYg ICAgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgfCBmICAgICAgICAgfCB0Cisg cmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgZiAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgICB8IHQKICgxIHJvdykKIAogQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9yZXNldCBSRVNFVDsKQEAgLTE3MTYsMTEgKzE4MTQsMTIgQEAgQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKIC0tIFZlcmlmeSB0aGF0IG9ubHkgc3VwZXJ1c2Vy IGNhbiByZXNldCBhIHB1YmxpY2F0aW9uCiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 IE9XTkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjI7CiBTRVQgUk9MRSByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXIyOwotQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsg LS0gZmFpbAorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsgLS0gZmFpbCAt IG11c3QgYmUgc3VwZXJ1c2VyCiBFUlJPUjogIG11c3QgYmUgc3VwZXJ1c2VyIHRvIFJFU0VUIHB1 YmxpY2F0aW9uCiBTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXI7CiBEUk9QIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQ7CiBEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDE7CitEUk9QIFRB QkxFIHB1Yl9zY2gxLnRibDI7CiBEUk9QIFNDSEVNQSBwdWJfc2NoMTsKIFJFU0VUIFNFU1NJT04g QVVUSE9SSVpBVElPTjsKIERST1AgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIsIHJlZ3Jl c3NfcHVibGljYXRpb25fdXNlcjI7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9w dWJsaWNhdGlvbi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKaW5k ZXggODY4ZjFjNTFiMS4uNWQ2MzllZWE2MiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvcHVibGljYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9u LnNxbApAQCAtODksMjAgKzg5LDMwIEBAIFNFTEVDVCBwdWJuYW1lLCBwdWJhbGx0YWJsZXMgRlJP TSBwZ19wdWJsaWNhdGlvbiBXSEVSRSBwdWJuYW1lID0gJ3Rlc3RwdWJfZm9yYWxsCiBcZCsgdGVz dHB1Yl90YmwyCiBcZFJwKyB0ZXN0cHViX2ZvcmFsbHRhYmxlcwogCitTRVQgY2xpZW50X21pbl9t ZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJs ZXNfZXhjZXB0dGFibGUgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHRlc3RwdWJfdGJsMSwg dGVzdHB1Yl90YmwyOworUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKKworXGRScCsgdGVzdHB1 Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUKKwogRFJPUCBUQUJMRSB0ZXN0cHViX3RibDI7Ci1E Uk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzLCB0ZXN0cHViX2ZvcnRhYmxlLCB0 ZXN0cHViX2ZvcnNjaGVtYTsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMs IHRlc3RwdWJfZm9ydGFibGUsIHRlc3RwdWJfZm9yc2NoZW1hLCB0ZXN0cHViX2ZvcmFsbHRhYmxl c19leGNlcHR0YWJsZTsKIAogQ1JFQVRFIFRBQkxFIHRlc3RwdWJfdGJsMyAoYSBpbnQpOwogQ1JF QVRFIFRBQkxFIHRlc3RwdWJfdGJsM2EgKGIgdGV4dCkgSU5IRVJJVFMgKHRlc3RwdWJfdGJsMyk7 CiBTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04g dGVzdHB1YjMgRk9SIFRBQkxFIHRlc3RwdWJfdGJsMzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0 cHViNCBGT1IgVEFCTEUgT05MWSB0ZXN0cHViX3RibDM7CitDUkVBVEUgUFVCTElDQVRJT04gdGVz dHB1YjUgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHRlc3RwdWJfdGJsMzsKK0NSRUFURSBQ VUJMSUNBVElPTiB0ZXN0cHViNiBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgT05MWSB0ZXN0 cHViX3RibDM7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogXGRScCsgdGVzdHB1YjMKIFxk UnArIHRlc3RwdWI0CitcZFJwKyB0ZXN0cHViNQorXGRScCsgdGVzdHB1YjYKIAogRFJPUCBUQUJM RSB0ZXN0cHViX3RibDMsIHRlc3RwdWJfdGJsM2E7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWIz LCB0ZXN0cHViNDsKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1YjMsIHRlc3RwdWI0LCB0ZXN0cHVi NSwgdGVzdHB1YjY7CiAKIC0tIFRlc3RzIGZvciBwYXJ0aXRpb25lZCB0YWJsZXMKIFNFVCBjbGll bnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKQEAgLTEwNjAsMjYgKzEwNzAsNjMgQEAgRFJPUCBT Q0hFTUEgc2NoMiBjYXNjYWRlOwogLS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBS RVNFVAogQ1JFQVRFIFNDSEVNQSBwdWJfc2NoMTsKIENSRUFURSBUQUJMRSBwdWJfc2NoMS50Ymwx IChhIGludCk7CitDUkVBVEUgVEFCTEUgcHViX3NjaDEudGJsMiAoYSBpbnQpOwogU0VUIGNsaWVu dF9taW5fbWVzc2FnZXMgPSAnRVJST1InOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVz ZXQgRk9SIEFMTCBUQUJMRVM7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogCistLSBjYW4n dCBhZGQgRVhDRVBUIFRBQkxFIHRvICdGT1IgQUxMIFRBQkxFUycgcHVibGljYXRpb24KK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHB1 Yl9zY2gxLnRibDE7CisKIC0tIFZlcmlmeSB0aGF0ICdBTEwgVEFCTEVTJyBmbGFnIGlzIHJlc2V0 CiBcZFJwKyB0ZXN0cHViX3Jlc2V0CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJF U0VUOwogXGRScCsgdGVzdHB1Yl9yZXNldAogCi1BTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0IEFERCBUQUJMRSBwdWJfc2NoMS50YmwxLCBBTEwgVEFCTEVTIElOIFNDSEVNQSBwdWJsaWM7 CistLSBzaG91bGQgd29yayBub3cgYWZ0ZXIgcmVzZXR0aW5nIHRoZSBwdWJsaWNhdGlvbgorQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUg cHViX3NjaDEudGJsMSwgcHViX3NjaDEudGJsMjsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKworQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKKworQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9yZXNldCBBREQgVEFCTEUgcHViX3NjaDEudGJsMTsKKworLS0gY2FuJ3QgYWRkIEVY Q0VQVCBUQUJMRSB0byAnRk9SIFRBQkxFJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsK KworLS0gVmVyaWZ5IHRoYXQgdGFibGVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24g YXJlIGRyb3BwZWQgYWZ0ZXIgUkVTRVQKK1xkUnArIHRlc3RwdWJfcmVzZXQKK0FMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisKK0FMVEVS IFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgSU4gU0NIRU1BIHB1Ymxp YzsKKworLS0gY2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB0byAnRk9SIEFMTCBUQUJMRVMgSU4gU0NI RU1BJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxM IFRBQkxFUyBFWENFUFQgVEFCTEUgcHViX3NjaDEudGJsMTsKKworLS0gVmVyaWZ5IHRoYXQgc2No ZW1hcyBhc3NvY2lhdGVkIHdpdGggdGhlIHB1YmxpY2F0aW9uIGFyZSBkcm9wcGVkIGFmdGVyIFJF U0VUCitcZFJwKyB0ZXN0cHViX3Jlc2V0CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 IFJFU0VUOworXGRScCsgdGVzdHB1Yl9yZXNldAorCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHVi X3Jlc2V0IFNFVCAoUFVCTElTSCA9ICcnKTsKKworLS0gY2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB3 aGVuIHRoZSBwdWJsaWNhdGlvbiBvcHRpb25zIGFyZSBub3QgdGhlIGRlZmF1bHQKKy0tIHZhbHVl cworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUyBFWENFUFQg VEFCTEUgcHViX3NjaDEudGJsMTsKIAotLS0gVmVyaWZ5IHRoYXQgdGFibGVzIGFuZCBzY2hlbWFz IGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24gYXJlIGRyb3BwZWQKLS0tIGFmdGVyIFJF U0VUCistLSBWZXJpZnkgdGhhdCBwdWJsaXNoIG9wdGlvbiBpcyByZXNldAogXGRScCsgdGVzdHB1 Yl9yZXNldAogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKIFxkUnArIHRl c3RwdWJfcmVzZXQKIAotQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJ U0ggPSAnJywgUFVCTElTSF9WSUFfUEFSVElUSU9OX1JPT1QgPSAndHJ1ZScpOworQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKFBVQkxJU0hfVklBX1BBUlRJVElPTl9ST09UID0g J3RydWUnKTsKKworLS0gY2FuJ3QgYWRkIEVYQ0VQVCBUQUJMRSB3aGVuIHB1Ymxpc2hfdmlhX3Bh cnRpdGlvbl9yb290IG9wdGlvbiBkb2VzIG5vdAorLS0gaGF2ZSBkZWZhdWx0IHZhbHVlCitBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSBw dWJfc2NoMS50YmwxOwogCi0tLSBWZXJpZnkgdGhhdCBwdWJsaXNoIG9wdGlvbnMgYW5kIHB1Ymxp c2hfdmlhX3BhcnRpdGlvbl9yb290IG9wdGlvbiBhcmUgcmVzZXQKKy0tIFZlcmlmeSB0aGF0IHB1 Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290IG9wdGlvbiBpcyByZXNldAogXGRScCsgdGVzdHB1Yl9y ZXNldAogQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKIFxkUnArIHRlc3Rw dWJfcmVzZXQKQEAgLTEwOTIsNiArMTEzOSw3IEBAIFNFVCBST0xFIHJlZ3Jlc3NfcHVibGljYXRp b25fdXNlcjsKIAogRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0OwogRFJPUCBUQUJMRSBw dWJfc2NoMS50YmwxOworRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwyOwogRFJPUCBTQ0hFTUEgcHVi X3NjaDE7CiAKIFJFU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTjsKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3N1YnNjcmlwdGlvbi90LzAzMl9yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwgYi9zcmMv dGVzdC9zdWJzY3JpcHRpb24vdC8wMzJfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmNkNzZmNWJjM2QKLS0tIC9kZXYvbnVs bAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzJfcmVwX2NoYW5nZXNfZXhjZXB0X3Rh YmxlLnBsCkBAIC0wLDAgKzEsODUgQEAKKworIyBDb3B5cmlnaHQgKGMpIDIwMjEtMjAyMiwgUG9z dGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKworIyBMb2dpY2FsIHJlcGxpY2F0aW9u IHRlc3RzIGZvciBleGNlcHQgdGFibGUgcHVibGljYXRpb25zCit1c2Ugc3RyaWN0OwordXNlIHdh cm5pbmdzOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6 VGVzdDo6VXRpbHM7Cit1c2UgVGVzdDo6TW9yZTsKKworIyBJbml0aWFsaXplIHB1Ymxpc2hlciBu b2RlCitteSAkbm9kZV9wdWJsaXNoZXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXco J3B1Ymxpc2hlcicpOworJG5vZGVfcHVibGlzaGVyLT5pbml0KGFsbG93c19zdHJlYW1pbmcgPT4g J2xvZ2ljYWwnKTsKKyRub2RlX3B1Ymxpc2hlci0+c3RhcnQ7CisKKyMgQ3JlYXRlIHN1YnNjcmli ZXIgbm9kZQorbXkgJG5vZGVfc3Vic2NyaWJlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXIt Pm5ldygnc3Vic2NyaWJlcicpOworJG5vZGVfc3Vic2NyaWJlci0+aW5pdChhbGxvd3Nfc3RyZWFt aW5nID0+ICdsb2dpY2FsJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zdGFydDsKKworIyBUZXN0IHJl cGxpY2F0aW9uIHdpdGggcHVibGljYXRpb25zIGNyZWF0ZWQgdXNpbmcgRk9SIEFMTCBUQUJMRVMg RVhDRVBUIFRBQkxFCisjIG9wdGlvbi4KKyMgQ3JlYXRlIHNjaGVtYXMgYW5kIHRhYmxlcyBvbiBw dWJsaXNoZXIKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJDUkVBVEUg U0NIRU1BIHNjaDEiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IkNSRUFURSBUQUJMRSBzY2gxLnRhYjEgQVMgU0VMRUNUIGdlbmVyYXRlX3NlcmllcygxLDEwKSBB UyBhIik7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUg VEFCTEUgcHVibGljLnRhYjEoYSBpbnQpIik7CisKKyMgQ3JlYXRlIHNjaGVtYXMgYW5kIHRhYmxl cyBvbiBzdWJzY3JpYmVyCiskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywg IkNSRUFURSBTQ0hFTUEgc2NoMSIpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICJDUkVBVEUgVEFCTEUgc2NoMS50YWIxIChhIGludCkiKTsKKyRub2RlX3N1YnNjcmli ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiQ1JFQVRFIFRBQkxFIHB1YmxpYy50YWIxIChhIGlu dCkiKTsKKworIyBTZXR1cCBsb2dpY2FsIHJlcGxpY2F0aW9uCitteSAkcHVibGlzaGVyX2Nvbm5z dHIgPSAkbm9kZV9wdWJsaXNoZXItPmNvbm5zdHIgLiAnIGRibmFtZT1wb3N0Z3Jlcyc7Ciskbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgUFVCTElDQVRJT04g dGFwX3B1Yl9zY2hlbWEgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHNjaDEudGFiMSIpOwor Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlND UklQVElPTiB0YXBfc3ViX3NjaGVtYSBDT05ORUNUSU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBV QkxJQ0FUSU9OIHRhcF9wdWJfc2NoZW1hIgorKTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zv cl9jYXRjaHVwKCd0YXBfc3ViX3NjaGVtYScpOworCisjIEFsc28gd2FpdCBmb3IgaW5pdGlhbCB0 YWJsZSBzeW5jIHRvIGZpbmlzaAorbXkgJHN5bmNlZF9xdWVyeSA9CisgICJTRUxFQ1QgY291bnQo MSkgPSAwIEZST00gcGdfc3Vic2NyaXB0aW9uX3JlbCBXSEVSRSBzcnN1YnN0YXRlIE5PVCBJTiAo J3InLCAncycpOyI7Ciskbm9kZV9zdWJzY3JpYmVyLT5wb2xsX3F1ZXJ5X3VudGlsKCdwb3N0Z3Jl cycsICRzeW5jZWRfcXVlcnkpCisgIG9yIGRpZSAiVGltZWQgb3V0IHdoaWxlIHdhaXRpbmcgZm9y IHN1YnNjcmliZXIgdG8gc3luY2hyb25pemUgZGF0YSI7CisKKyMgQ2hlY2sgdGhlIHRhYmxlIGRh dGEgZG9lcyBub3Qgc3luYyBmb3IgZXhjbHVkZWQgdGFibGUKK215ICRyZXN1bHQgPSAkbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopLCBtaW4o YSksIG1heChhKSBGUk9NIHNjaDEudGFiMSIpOworaXMoJHJlc3VsdCwgcXEoMHx8KSwgJ2NoZWNr IHRoZXJlIGlzIG5vIGluaXRpYWwgZGF0YSBjb3BpZWQgZm9yIHRoZSBleGNsdWRlZCB0YWJsZScp OworCisjIEluc2VydCBzb21lIGRhdGEgYW5kIHZlcmlmeSB0aGF0IGluc2VydGVkIGRhdGEgaXMg bm90IHJlcGxpY2F0ZWQKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IklOU0VSVCBJTlRPIHNjaDEudGFiMSBWQUxVRVMoZ2VuZXJhdGVfc2VyaWVzKDExLDIwKSkiKTsK KworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX3NjaGVtYScpOwor CiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNF TEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJPTSBzY2gxLnRhYjEiKTsKK2lzKCRyZXN1 bHQsIHFxKDB8fCksICdjaGVjayByZXBsaWNhdGVkIGluc2VydHMgb24gc3Vic2NyaWJlcicpOwor CisjIEFsdGVyIHB1YmxpY2F0aW9uIHRvIGV4Y2x1ZGUgZGF0YSBjaGFuZ2VzIGluIHB1YmxpYy50 YWIxIGFuZCB2ZXJpZnkgdGhhdAorIyBzdWJzY3JpYmVyIGRvZXMgbm90IGdldCB0aGUgY2hhbmdl ZCBkYXRhIGZvciB0aGlzIHRhYmxlLgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywKKyAgICAgICAgIkFMVEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJfc2NoZW1hIFJFU0VUIik7 Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorICAgICAgICAiQUxURVIg UFVCTElDQVRJT04gdGFwX3B1Yl9zY2hlbWEgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIHNj aDEudGFiMSwgcHVibGljLnRhYjEiKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsCisgICAgICAgICJJTlNFUlQgSU5UTyBwdWJsaWMudGFiMSBWQUxVRVMoZ2VuZXJhdGVf c2VyaWVzKDEsMTApKSIpOworCiskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3Rh cF9zdWJfc2NoZW1hJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywKKwkiU0VMRUNUIGNvdW50KCopLCBtaW4oYSksIG1heChhKSBGUk9NIHB1Ymxp Yy50YWIxIik7CitpcygkcmVzdWx0LCBxcSgwfHwpLCAnY2hlY2sgcm93cyBvbiBzdWJzY3JpYmVy IGNhdGNodXAnKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c3RvcCgnZmFzdCcpOworJG5vZGVfcHVi bGlzaGVyLT5zdG9wKCdmYXN0Jyk7CisKK2RvbmVfdGVzdGluZygpOwotLSAKMi4zMi4wCgo= --0000000000002476e605df4cd257--