Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vR7rf-007K0t-1g for pgsql-hackers@arkaria.postgresql.org; Thu, 04 Dec 2025 11:51:16 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vR7rd-002WO1-1h for pgsql-hackers@arkaria.postgresql.org; Thu, 04 Dec 2025 11:51:13 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vR7rc-002WNt-30 for pgsql-hackers@lists.postgresql.org; Thu, 04 Dec 2025 11:51:13 +0000 Received: from mail-oa1-x33.google.com ([2001:4860:4864:20::33]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vR7ra-0035yi-0f for pgsql-hackers@lists.postgresql.org; Thu, 04 Dec 2025 11:51:12 +0000 Received: by mail-oa1-x33.google.com with SMTP id 586e51a60fabf-3f13043e2fdso316548fac.1 for ; Thu, 04 Dec 2025 03:51:09 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764849067; x=1765453867; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=yqsPl/rslpeeTviXwerqU/OCqp6n2/xmB48QBnVKDx0=; b=ENM87tE3WEEkYlPKDVFp5rTSBMNc8EDIaCsskrxBDt43p48RoJbN6IiLeM2q0p5Vp7 B01B3JmzM6ZaRqLmGToS5wWX590KXdE1up+jSuNusaFG2GsiiaI4Ebun5f8Z+h+/wBtx tQ5+pOpqcnEPIUmGBIKN3SyLzd9F66ot/Yp0G+uFPRZMlk5q4038J1ZiPi7HJy9SYnBL ZUBzXquCRkpj/Dse9pz5orezzclTM09TZeEO4rU9lyBmmVcfmuRkrsh9dK7Z2avKNock p6JQjlJy9JOgPilkJxFbecNY3N5ry+Z8KgeMYkdq2uFAYv6LYAYIRaVklISp2XpW6+hL 7ZCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764849067; x=1765453867; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=yqsPl/rslpeeTviXwerqU/OCqp6n2/xmB48QBnVKDx0=; b=Omse9wNscWYcaYSVCWAqlTKZWpx1G22LvgHUy4PEMpGEyQsX1N/ea8EKjfHfrkwvyL VxxImUCR+LfgueEilWfh6ZxwDmRyD8bGlk5QAMv925xCEQhgmtqq5qLZQf96OKO+iRi6 zVajfZ+pvlgDzAGCeuwKqUZZEmyndvgeGHsrwpTSU3eJCqCF25nIctfn0kyGfUOo1ERY jw52EoM6DO8Dai1YHABE1L5YQJuxkiRYwqX+nKHQuKSADO2aS4Muv7xjxME53kS985uP CH22WFVR8qd6jgwm8wFarLHvjxWn8M6JxHtb/GusFZTG8rzMw9DOQUeT3Cy5Pp7oUKX/ EJFw== X-Forwarded-Encrypted: i=1; AJvYcCWIEU448vFB4W3Nkhn6xEhnQtLiEzAD2AmIzPlnyqFJwCOPwE+8V5Xzd7doIizO2aiBzBWtMxHrSuiZhUeB@lists.postgresql.org X-Gm-Message-State: AOJu0YwFiGQSBPpZMNnCF8gwSmGFJQu6w1Nyb9v7RcQvpMAf+XUsKNFY ZL42S7xR8mVuFdXPpeVtwHv+B8J/pP4nSjapxAYETJ7YLXLfldcv/cj9iRig6y8MFwJVzAieZkn RhxW415SXqCfy3GQi0X4+HxAsNSCCPiM= X-Gm-Gg: ASbGncuDFf7rJuUELCKz04kUHBzzKithtPZlhrrChovjVsXCvU42RckPYwbTPZTsqn9 0J1uSaFhrNKqC0qXNWSQXU29aCGLZ80jOG630ageeNY9TWJZ/9pwYbYdwyptGruxAJ73phSH26r 3LifzjLanSlIVUcQAwnmMJtISRIPz/sZpHTo8rhGT3sHpeGqxqpgqn22i29hz+SxrAEJwolMdYs 94Ts2D02z2NCp31tsA5hVt3lnnooBCBJt+6Hh2mylKXTPWajwUArjqvToVmC4/uomyntt/GYA== X-Google-Smtp-Source: AGHT+IFRUCphnQrj5cnmsI2n04lHC9BLe/FTyHy3l73rH6ExpsCMKBTqu8hDImWGrcVIQZlHC/aZr+Bh9iwuxFCuP98= X-Received: by 2002:a05:6871:6d0d:b0:3d9:7dc4:3c21 with SMTP id 586e51a60fabf-3f169203665mr3249145fac.2.1764849066655; Thu, 04 Dec 2025 03:51:06 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Shlok Kyal Date: Thu, 4 Dec 2025 17:20:54 +0530 X-Gm-Features: AWmQ_bnQqhIEZrNYGRDCykXXX2yrolmweFrPTBJfBTijRE_jLoJekJz4db-8G-U Message-ID: Subject: Re: Skipping schema changes in publication To: Peter Smith Cc: vignesh C , Amit Kapila , "Zhijie Hou (Fujitsu)" , YeXiu <1518981153@qq.com>, Ian Lawrence Barwick , Bharath Rupireddy , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000b3632e06451ef149" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000b3632e06451ef149 Content-Type: text/plain; charset="UTF-8" On Thu, 20 Nov 2025 at 11:54, Peter Smith wrote: > > Hi Shlok. > > Thanks for splitting the patches. > > Here are some review comments for the new patch v28-0002 (ADD ALL TABLES). > > ====== > Commit Message > > 1. > This patch adds support for using ADD ALL TABLES in ALTER PUBLICATION, > allowing an existing publication to be changed into an ALL TABLES > publication. This command is permitted only when the publication is > in its default state, meaning it has no tables or schemas added, its > ALL TABLES and ALL SEQUENCES flags are not set, and publication > options such as publish_via_root_partition, publish_generated_columns, > and publish are at their default values. > > ~ > > IMO, the restrictions for this new command are too severe: > > e.g. If I already have a FOR ALL SEQUENCES publication, then I > expected it should be possible to ADD ALL TABLES to that as well, > right? > > Likewise, why are we enforcing that the publication parameters must be > defaults? IOW, why is (i) below disallowed, but (ii) is allowed? > > (i) > ALTER PUBLICATION pub SET (publish_generated_columns=stored); > ALTER PUBLICATION pub ADD ALL TABLES; > > (ii) > ALTER PUBLICATION pub ADD ALL TABLES; > ALTER PUBLICATION pub SET (publish_generated_columns=stored); > I agree that the current restrictions were too strict. With the latest patch we avoid adding ALL TABLES only when we have an existing list of tables or schemas in a publication. > ====== > doc/src/sgml/ref/alter_publication.sgml > > Description: > > 2. > The "Description" part of this page is confusing because it was > referring to "The first three variants" and later "The fourth > variant". Now that the "ADD ALL TABLES" variant has been added, I > have lost track of what "variants" this description is talking about. > Those words should be replaced by something clearer. This could be an > ongoing issue if it is not worded differently because the same problem > will happen again, e.g. when more syntax gets added for ALL SEQUENCES, > etc. > > ~~~ > I have updated the description to avoid the wording "The first three variants". Instead I have added a list to describe each command separately. Similar to ALTER TABLE [1]. > 3. > Note also that DROP TABLES IN SCHEMA will not drop any schema tables > that were specified using FOR TABLE/ ADD TABLE. > > ~ > > That sentence (above) is from the docs. Does that also need updating > now that there is ADD ALL TABLES? > When we create a publication on a schema, we can also add specific tables using FOR TABLE/ADD TABLE. But in case of ALL TABLES publication we are not allowed to include tables using FOR TABLE/ADD TABLE. So for ALL TABLES case this wording is not required. > ====== > src/backend/commands/publicationcmds.c > > CheckPublicationDefValues: > > 4. > Is this function needed? > It is not needed. Modified the function to give proper error messages for each case. > ~~~ > > AlterPublication: > > 5. > + if (stmt->for_all_tables) > + { > + bool isdefault = CheckPublicationDefValues(tup); > + > + if (!isdefault) > + ereport(ERROR, > + errcode(ERRCODE_INVALID_OBJECT_DEFINITION), > + errmsg("adding ALL TABLES requires the publication to have default > publication parameter values"), > + errdetail("ALL TABLES or ALL SEQUENCES flag should not be set and no > tables/schemas should be associated."), > + errhint("Use ALTER PUBLICATION ... RESET to reset the publication")); > + > + AlterPublicationSetAllTables(rel, tup); > + } > + > > Why do we need this self-imposed restriction? > See reply to comment 1. > ====== > src/include/nodes/parsenodes.h > > 6. > List *pubobjects; /* Optional list of publication objects */ > + bool for_all_tables; /* Special publication for all tables in db */ > AlterPublicationAction action; /* What action to perform with the given > * objects */ > } AlterPublicationStmt; > > > There is no such "FOR" syntax like ALTER PUBLICATION ... FOR ALL > TABLES, so I felt just 'puballtables' might be a better member name. > We have the same variable name in CreatePublicationStmt. I feel keeping the name as 'for_all_tables' will keep it consistent and easier to understand. > ====== > src/test/regress/sql/publication.sql > > 7. > Don't uppercase any of the publication parameters because they never > appear in the docs/examples like that. > > ~ > > 8. > So that the last command is the one being tested, I felt that all the > test cases should be doing RESET *first* instead of last. > > ~~~ > > 9. > You don't always need to use RESET. There should also be some tests > using an "empty" publication just to be sure it works. e.g > > CREATE PUBLICATION pub_empty; > ALTER PUBLICATION pub_empty ADD ALL TABLES; > > ~~~ > > 10. > As commented earlier, I felt the rules were too restrictive. So I > think some test cases can be removed. > > ~~~ > > 11. > +-- Tests for ALTER PUBLICATION ... ADD ALL TABLES > > ~ > > I noticed there is a "-- > ======================================================" separator > between the major groups of tests. > > 11a. Should use this separator in patch 0001 for the RESET group of tests > > 11b. Should use this separator in patch 0002 for the ADD ALL TABLES > groups of tests > > ~~~ > > 12. > +-- Can't add ALL TABLES to 'ALL TABLES' publication > +ALTER PUBLICATION testpub_reset ADD ALL TABLES; > + > > This test case seems to belong earlier, near the 'FOR TABLE' and the > 'TABLES IN SCHEMA' tests. > I saw the patch needed a rebase. I have rebased it. I have also addressed the remaining comments in this email and comments in the email [2]. While addressing the comments I saw there were a couple of race conditions when we run 'ALTER PUBLICATION ... RESET and ALTER PUBLICATION ... ADD TABLE concurrently' and 'ALTER PUBLICATION ... ADD ALL TABLES and ALTER PUBLICATION ... ADD TABLE concurrently' I have addressed these in the v29 patch. Will address comments for 0003 and 0004 patch by Peter and comments by Shveta in next version. [1]: https://www.postgresql.org/docs/current/sql-altertable.html [2]: https://www.postgresql.org/message-id/CAHut%2BPv4d9EAjDQiOHiu2BrYP3ZA-oJgsgGZdygBaZnWDR7sDA%40mail.gmail.com Thanks, Shlok Kyal --000000000000b3632e06451ef149 Content-Type: application/octet-stream; name="v29-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Disposition: attachment; filename="v29-0001-Add-RESET-clause-to-Alter-Publication-which-will.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mirdh9a60 RnJvbSAyM2VmOGJmMzJiNzI5MmI1ZGY0Y2NjZmRlYmNmNDA4NTJmZGMxODhkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFRodSwgMzAgT2N0IDIwMjUgMTA6NTI6NTYgKzA1MzAKU3ViamVjdDogW1BBVENIIHYy OSAxLzRdIEFkZCBSRVNFVCBjbGF1c2UgdG8gQWx0ZXIgUHVibGljYXRpb24gd2hpY2ggd2lsbAog cmVzZXQgdGhlIHB1YmxpY2F0aW9uIHdpdGggZGVmYXVsdCB2YWx1ZXMuCgpUaGlzIHBhdGNoIGFk ZHMgYSBuZXcgUkVTRVQgY2xhdXNlIHRvIEFMVEVSIFBVQkxJQ0FUSU9OIHdoaWNoIHdpbGwgcmVz ZXQKdGhlIHB1YmxpY2F0aW9uIHRvIHRoZSBkZWZhdWx0IHN0YXRlLiBUaGlzIGluY2x1ZGVzIHJl c2V0dGluZyB0aGUgcHVibGljYXRpb24KcGFyYW1ldGVycywgc2V0dGluZyBBTEwgVEFCTEVTIGFu ZCBBTEwgU0VRVUVOQ0VTIGZsYWdzIHRvIGZhbHNlIGFuZCBkcm9wcGluZwp0aGUgcmVsYXRpb25z IGFuZCBzY2hlbWFzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24uClVz YWdlOgpBTFRFUiBQVUJMSUNBVElPTiBwdWIxIFJFU0VUOwotLS0KIGRvYy9zcmMvc2dtbC9yZWYv YWx0ZXJfcHVibGljYXRpb24uc2dtbCAgIHwgMTcwICsrKysrKysrKysrKysrLS0tLS0tLS0KIHNy Yy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jICAgIHwgMTMwICsrKysrKysrKysr KysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICB8ICAxMyAr LQogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgfCAgIDIgKy0KIHNy Yy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaCAgICAgIHwgICA4ICsKIHNyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IHwgIDU4ICsrKysrKysrCiBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwgICAgICB8ICAzNCArKysrKwogOCBmaWxlcyBjaGFuZ2Vk LCAzNDkgaW5zZXJ0aW9ucygrKSwgNjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRl cl9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IDAyODc3MGYyMTQ5Li43ZDdlNjM0MTkyMSAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbApAQCAtMjcsNiArMjcsNyBAQCBBTFRF UiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFj ZWFibGU+IERST1AgPHJlcGxhYwogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgKCA8cmVwbGFjZWFibGUgY2xhc3M9 InBhcmFtZXRlciI+cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICkK IEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9y ZXBsYWNlYWJsZT4gT1dORVIgVE8geyA8cmVwbGFjZWFibGU+bmV3X293bmVyPC9yZXBsYWNlYWJs ZT4gfCBDVVJSRU5UX1JPTEUgfCBDVVJSRU5UX1VTRVIgfCBTRVNTSU9OX1VTRVIgfQogQUxURVIg UFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2Vh YmxlPiBSRU5BTUUgVE8gPHJlcGxhY2VhYmxlPm5ld19uYW1lPC9yZXBsYWNlYWJsZT4KK0FMVEVS IFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWJsZT4gUkVTRVQKIAogPHBocmFzZT53aGVyZSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cHVibGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gaXMgb25lIG9mOjwvcGhyYXNlPgog CkBAIC00OSw0NiArNTAsMTE5IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVOQU1FIFRPIDxyCiAKICAgPHBhcmE+ CiAgICBUaGUgY29tbWFuZCA8Y29tbWFuZD5BTFRFUiBQVUJMSUNBVElPTjwvY29tbWFuZD4gY2Fu IGNoYW5nZSB0aGUgYXR0cmlidXRlcwotICAgb2YgYSBwdWJsaWNhdGlvbi4KLSAgPC9wYXJhPgor ICAgb2YgYSBwdWJsaWNhdGlvbi4gVGhlcmUgYXJlIHNldmVyYWwgc3ViZm9ybXMgZGVzY3JpYmVk IGJlbG93LgogCi0gIDxwYXJhPgotICAgVGhlIGZpcnN0IHRocmVlIHZhcmlhbnRzIGNoYW5nZSB3 aGljaCB0YWJsZXMvc2NoZW1hcyBhcmUgcGFydCBvZiB0aGUKLSAgIHB1YmxpY2F0aW9uLiAgVGhl IDxsaXRlcmFsPlNFVDwvbGl0ZXJhbD4gY2xhdXNlIHdpbGwgcmVwbGFjZSB0aGUgbGlzdCBvZgot ICAgdGFibGVzL3NjaGVtYXMgaW4gdGhlIHB1YmxpY2F0aW9uIHdpdGggdGhlIHNwZWNpZmllZCBs aXN0OyB0aGUgZXhpc3RpbmcKLSAgIHRhYmxlcy9zY2hlbWFzIHRoYXQgd2VyZSBwcmVzZW50IGlu IHRoZSBwdWJsaWNhdGlvbiB3aWxsIGJlIHJlbW92ZWQuICBUaGUKLSAgIDxsaXRlcmFsPkFERDwv bGl0ZXJhbD4gYW5kIDxsaXRlcmFsPkRST1A8L2xpdGVyYWw+IGNsYXVzZXMgd2lsbCBhZGQgYW5k Ci0gICByZW1vdmUgb25lIG9yIG1vcmUgdGFibGVzL3NjaGVtYXMgZnJvbSB0aGUgcHVibGljYXRp b24uICBOb3RlIHRoYXQgYWRkaW5nCi0gICB0YWJsZXMvc2NoZW1hcyB0byBhIHB1YmxpY2F0aW9u IHRoYXQgaXMgYWxyZWFkeSBzdWJzY3JpYmVkIHRvIHdpbGwgcmVxdWlyZSBhbgotICAgPGxpbmsg bGlua2VuZD0ic3FsLWFsdGVyc3Vic2NyaXB0aW9uLXBhcmFtcy1yZWZyZXNoLXB1YmxpY2F0aW9u Ij4KLSAgIDxsaXRlcmFsPkFMVEVSIFNVQlNDUklQVElPTiAuLi4gUkVGUkVTSCBQVUJMSUNBVElP TjwvbGl0ZXJhbD48L2xpbms+IGFjdGlvbiBvbiB0aGUKLSAgIHN1YnNjcmliaW5nIHNpZGUgaW4g b3JkZXIgdG8gYmVjb21lIGVmZmVjdGl2ZS4gTm90ZSBhbHNvIHRoYXQKLSAgIDxsaXRlcmFsPkRS T1AgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gd2lsbCBub3QgZHJvcCBhbnkgc2NoZW1hIHRh YmxlcwotICAgdGhhdCB3ZXJlIHNwZWNpZmllZCB1c2luZwotICAgPGxpbmsgbGlua2VuZD0ic3Fs LWNyZWF0ZXB1YmxpY2F0aW9uLXBhcmFtcy1mb3ItdGFibGUiPjxsaXRlcmFsPkZPUiBUQUJMRTwv bGl0ZXJhbD48L2xpbms+LwotICAgPGxpdGVyYWw+QUREIFRBQkxFPC9saXRlcmFsPi4KLSAgPC9w YXJhPgorICA8dmFyaWFibGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0 ZXJhbD5BREQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVj dDwvcmVwbGFjZWFibGU+IFssIC4uLl08L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4K KyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gYWRkcyBvbmUgb3IgbW9yZSB0YWJsZXMvc2No ZW1hcyB0byB0aGUgcHVibGljYXRpb24uCisgICAgICBOb3RlIHRoYXQgYWRkaW5nIHRhYmxlcy9z Y2hlbWFzIHRvIGEgcHVibGljYXRpb24gdGhhdCBpcyBhbHJlYWR5CisgICAgICBzdWJzY3JpYmVk IHRvIHdpbGwgcmVxdWlyZSBhbgorICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWFsdGVyc3Vic2Ny aXB0aW9uLXBhcmFtcy1yZWZyZXNoLXB1YmxpY2F0aW9uIj4KKyAgICAgIDxsaXRlcmFsPkFMVEVS IFNVQlNDUklQVElPTiAuLi4gUkVGUkVTSCBQVUJMSUNBVElPTjwvbGl0ZXJhbD48L2xpbms+Cisg ICAgICBhY3Rpb24gb24gdGhlIHN1YnNjcmliaW5nIHNpZGUgZm9yIHRoZSBjaGFuZ2VzIHRvIHRh a2UgZWZmZWN0LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVu dHJ5PgogCi0gIDxwYXJhPgotICAgVGhlIGZvdXJ0aCB2YXJpYW50IG9mIHRoaXMgY29tbWFuZCBs aXN0ZWQgaW4gdGhlIHN5bm9wc2lzIGNhbiBjaGFuZ2UKLSAgIGFsbCBvZiB0aGUgcHVibGljYXRp b24gcHJvcGVydGllcyBzcGVjaWZpZWQgaW4KLSAgIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGVw dWJsaWNhdGlvbiIvPi4gIFByb3BlcnRpZXMgbm90IG1lbnRpb25lZCBpbiB0aGUKLSAgIGNvbW1h bmQgcmV0YWluIHRoZWlyIHByZXZpb3VzIHNldHRpbmdzLgotICA8L3BhcmE+CisgICA8dmFybGlz dGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlNFVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+cHVibGljYXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uXTwvbGl0ZXJhbD48 L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgZm9ybSByZXBs YWNlcyB0aGUgbGlzdCBvZiB0YWJsZXMvc2NoZW1hcyBpbiB0aGUgcHVibGljYXRpb24gd2l0aCB0 aGUKKyAgICAgIHNwZWNpZmllZCBsaXN0OyB0aGUgZXhpc3RpbmcgdGFibGVzL3NjaGVtYXMgdGhh dCB3ZXJlIHByZXNlbnQgaW4gdGhlCisgICAgICBwdWJsaWNhdGlvbiBhcmUgcmVtb3ZlZC4KKyAg ICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KIAotICA8cGFy YT4KLSAgIFRoZSByZW1haW5pbmcgdmFyaWFudHMgY2hhbmdlIHRoZSBvd25lciBhbmQgdGhlIG5h bWUgb2YgdGhlIHB1YmxpY2F0aW9uLgorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0 ZXJhbD5EUk9QIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9vYmpl Y3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi5dPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+ CisgICAgIDxwYXJhPgorICAgICAgVGhpcyBmb3JtIHJlbW92ZXMgb25lIG9yIG1vcmUgdGFibGVz L3NjaGVtYXMgZnJvbSB0aGUgcHVibGljYXRpb24uCisgICAgICBOb3RlIGFsc28gdGhhdCA8bGl0 ZXJhbD5EUk9QIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IHdpbGwgbm90IGRyb3AgYW55Cisg ICAgICBzY2hlbWEgdGFibGVzIHRoYXQgd2VyZSBzcGVjaWZpZWQgdXNpbmcKKyAgICAgIDxsaW5r IGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9yLXRhYmxlIj48bGl0ZXJh bD5GT1IgVEFCTEU8L2xpdGVyYWw+PC9saW5rPgorICAgICAgb3IgPGxpdGVyYWw+QUREIFRBQkxF PC9saXRlcmFsPi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3Rl bnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5TRVQgKCA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNl YWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJs ZT5dIFssIC4uLiBdICk8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBh cmE+CisgICAgICBUaGlzIGZvcm0gY2FuIGNoYW5nZSBhbGwgb2YgdGhlIHB1YmxpY2F0aW9uIHBy b3BlcnRpZXMgc3BlY2lmaWVkIGluCisgICAgICA8eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRlcHVi bGljYXRpb24iLz4uIFByb3BlcnRpZXMgbm90IG1lbnRpb25lZCBpbiB0aGUKKyAgICAgIGNvbW1h bmQgcmV0YWluIHRoZWlyIHByZXZpb3VzIHNldHRpbmdzLiBJdCBpcyBub3QgYXBwbGljYWJsZSB0 bworICAgICAgc2VxdWVuY2VzLgorICAgICA8L3BhcmE+CisgICAgIDxjYXV0aW9uPgorICAgICAg PHBhcmE+CisgICAgICAgQWx0ZXJpbmcgdGhlIDxsaXRlcmFsPnB1Ymxpc2hfdmlhX3BhcnRpdGlv bl9yb290PC9saXRlcmFsPiBwYXJhbWV0ZXIgY2FuCisgICAgICAgbGVhZCB0byBkYXRhIGxvc3Mg b3IgZHVwbGljYXRpb24gYXQgdGhlIHN1YnNjcmliZXIgYmVjYXVzZSBpdCBjaGFuZ2VzCisgICAg ICAgdGhlIGlkZW50aXR5IGFuZCBzY2hlbWEgb2YgdGhlIHB1Ymxpc2hlZCB0YWJsZXMuIE5vdGUg dGhpcyBoYXBwZW5zIG9ubHkKKyAgICAgICB3aGVuIGEgcGFydGl0aW9uIHJvb3QgdGFibGUgaXMg c3BlY2lmaWVkIGFzIHRoZSByZXBsaWNhdGlvbiB0YXJnZXQuCisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBUaGlzIHByb2JsZW0gY2FuIGJlIGF2b2lkZWQgYnkgcmVmcmFpbmlu ZyBmcm9tIG1vZGlmeWluZyBwYXJ0aXRpb24gbGVhZgorICAgICAgIHRhYmxlcyBhZnRlciB0aGUg PGNvbW1hbmQ+QUxURVIgUFVCTElDQVRJT04gLi4uIFNFVDwvY29tbWFuZD4gdW50aWwgdGhlCisg ICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWFsdGVyc3Vic2NyaXB0aW9uIj48Y29tbWFuZD5BTFRF UiBTVUJTQ1JJUFRJT04gLi4uIFJFRlJFU0ggUFVCTElDQVRJT048L2NvbW1hbmQ+PC9saW5rPgor ICAgICAgIGlzIGV4ZWN1dGVkIGFuZCBieSBvbmx5IHJlZnJlc2hpbmcgdXNpbmcgdGhlIDxsaXRl cmFsPmNvcHlfZGF0YSA9IG9mZjwvbGl0ZXJhbD4KKyAgICAgICBvcHRpb24uCisgICAgICA8L3Bh cmE+CisgICAgIDwvY2F1dGlvbj4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+T1dORVIgVE8geyA8cmVw bGFjZWFibGU+bmV3X293bmVyPC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1JPTEUgfCBDVVJSRU5U X1VTRVIgfCBTRVNTSU9OX1VTRVIgfTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgor ICAgICA8cGFyYT4KKyAgICAgIFRoaXMgZm9ybSBjaGFuZ2VzIHRoZSBvd25lciBvZiB0aGUgcHVi bGljYXRpb24uCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50 cnk+CisKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxpdGVyYWw+UkVOQU1FIFRPIDxy ZXBsYWNlYWJsZT5uZXdfbmFtZTwvcmVwbGFjZWFibGU+PC9saXRlcmFsPjwvdGVybT4KKyAgICA8 bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhpcyBmb3JtIGNoYW5nZXMgdGhlIG5hbWUg b2YgdGhlIHB1YmxpY2F0aW9uLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwv dmFybGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlJF U0VUPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAg VGhpcyBmb3JtIHJlc2V0cyB0aGUgcHVibGljYXRpb24gdG8gaXRzIGRlZmF1bHQgc3RhdGUuIFRo aXMgaW5jbHVkZXMKKyAgICAgIHJlc2V0dGluZyBhbGwgcHVibGljYXRpb24gcGFyYW1ldGVycywg c2V0dGluZworICAgICAgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy1wdWJsaWNhdGlvbiI+PHN0 cnVjdG5hbWU+cGdfcHVibGljYXRpb248L3N0cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+ cHViYWxsdGFibGVzPC9zdHJ1Y3RmaWVsZD4KKyAgICAgIGFuZAorICAgICAgPGxpbmsgbGlua2Vu ZD0iY2F0YWxvZy1wZy1wdWJsaWNhdGlvbiI+PHN0cnVjdG5hbWU+cGdfcHVibGljYXRpb248L3N0 cnVjdG5hbWU+PC9saW5rPi48c3RydWN0ZmllbGQ+cHViYWxsc2VxdWVuY2VzPC9zdHJ1Y3RmaWVs ZD4KKyAgICAgIHRvIDxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPiwgYW5kIHJlbW92aW5nIGFsbCB0 YWJsZXMgYW5kIHNjaGVtYXMgdGhhdCB3ZXJlCisgICAgICBleHBsaWNpdGx5IGFkZGVkIHRvIHRo ZSBwdWJsaWNhdGlvbi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxp c3RlbnRyeT4KKworICA8L3ZhcmlhYmxlbGlzdD4KICAgPC9wYXJhPgogCiAgIDxwYXJhPgogICAg WW91IG11c3Qgb3duIHRoZSBwdWJsaWNhdGlvbiB0byB1c2UgPGNvbW1hbmQ+QUxURVIgUFVCTElD QVRJT048L2NvbW1hbmQ+LgogICAgQWRkaW5nIGEgdGFibGUgdG8gYSBwdWJsaWNhdGlvbiBhZGRp dGlvbmFsbHkgcmVxdWlyZXMgb3duaW5nIHRoYXQgdGFibGUuCi0gICBUaGUgPGxpdGVyYWw+QURE IFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+IGFuZAotICAgPGxpdGVyYWw+U0VUIFRBQkxFUyBJ TiBTQ0hFTUE8L2xpdGVyYWw+IHRvIGEgcHVibGljYXRpb24gcmVxdWlyZXMgdGhlCi0gICBpbnZv a2luZyB1c2VyIHRvIGJlIGEgc3VwZXJ1c2VyLgotICAgVG8gYWx0ZXIgdGhlIG93bmVyLCB5b3Ug bXVzdCBiZSBhYmxlIHRvIDxsaXRlcmFsPlNFVCBST0xFPC9saXRlcmFsPiB0byB0aGUKLSAgIG5l dyBvd25pbmcgcm9sZSwgYW5kIHRoYXQgcm9sZSBtdXN0IGhhdmUgPGxpdGVyYWw+Q1JFQVRFPC9s aXRlcmFsPgotICAgcHJpdmlsZWdlIG9uIHRoZSBkYXRhYmFzZS4KKyAgIFRoZSA8bGl0ZXJhbD5B REQgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4sCisgICA8bGl0ZXJhbD5TRVQgVEFCTEVTIElO IFNDSEVNQTwvbGl0ZXJhbD4gdG8gYSBwdWJsaWNhdGlvbiBhbmQKKyAgIDxsaXRlcmFsPlJFU0VU PC9saXRlcmFsPiBvZiBwdWJsaWNhdGlvbiByZXF1aXJlcyB0aGUgaW52b2tpbmcgdXNlciB0byBi ZSBhCisgICBzdXBlcnVzZXIuIFRvIGFsdGVyIHRoZSBvd25lciwgeW91IG11c3QgYmUgYWJsZSB0 bworICAgPGxpdGVyYWw+U0VUIFJPTEU8L2xpdGVyYWw+IHRvIHRoZSBuZXcgb3duaW5nIHJvbGUs IGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZlCisgICA8bGl0ZXJhbD5DUkVBVEU8L2xpdGVyYWw+IHBy aXZpbGVnZSBvbiB0aGUgZGF0YWJhc2UuCiAgICBBbHNvLCB0aGUgbmV3IG93bmVyIG9mIGEKICAg IDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9yLXRhYmxlcy1p bi1zY2hlbWEiPjxsaXRlcmFsPkZPUiBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPjwvbGluaz4K ICAgIG9yIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtZm9yLWFs bC10YWJsZXMiPjxsaXRlcmFsPkZPUiBBTEwgVEFCTEVTPC9saXRlcmFsPjwvbGluaz4KQEAgLTE1 NiwzMiArMjMwLDYgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHIKICAgICA8L2xpc3RpdGVtPgog ICAgPC92YXJsaXN0ZW50cnk+CiAKLSAgIDx2YXJsaXN0ZW50cnk+Ci0gICAgPHRlcm0+PGxpdGVy YWw+U0VUICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX3BhcmFt ZXRlcjwvcmVwbGFjZWFibGU+IFs9IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1 ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4gXSApPC9saXRlcmFsPjwvdGVybT4KLSAgICA8bGlzdGl0 ZW0+Ci0gICAgIDxwYXJhPgotICAgICAgVGhpcyBjbGF1c2UgYWx0ZXJzIHB1YmxpY2F0aW9uIHBh cmFtZXRlcnMgb3JpZ2luYWxseSBzZXQgYnkKLSAgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVh dGVwdWJsaWNhdGlvbiIvPi4gIFNlZSB0aGVyZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4KLSAgICAg IFRoaXMgY2xhdXNlIGlzIG5vdCBhcHBsaWNhYmxlIHRvIHNlcXVlbmNlcy4KLSAgICAgPC9wYXJh PgotICAgICA8Y2F1dGlvbj4KLSAgICAgIDxwYXJhPgotICAgICAgIEFsdGVyaW5nIHRoZSA8bGl0 ZXJhbD5wdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdDwvbGl0ZXJhbD4gcGFyYW1ldGVyIGNhbgot ICAgICAgIGxlYWQgdG8gZGF0YSBsb3NzIG9yIGR1cGxpY2F0aW9uIGF0IHRoZSBzdWJzY3JpYmVy IGJlY2F1c2UgaXQgY2hhbmdlcwotICAgICAgIHRoZSBpZGVudGl0eSBhbmQgc2NoZW1hIG9mIHRo ZSBwdWJsaXNoZWQgdGFibGVzLiBOb3RlIHRoaXMgaGFwcGVucyBvbmx5Ci0gICAgICAgd2hlbiBh IHBhcnRpdGlvbiByb290IHRhYmxlIGlzIHNwZWNpZmllZCBhcyB0aGUgcmVwbGljYXRpb24gdGFy Z2V0LgotICAgICAgPC9wYXJhPgotICAgICAgPHBhcmE+Ci0gICAgICAgVGhpcyBwcm9ibGVtIGNh biBiZSBhdm9pZGVkIGJ5IHJlZnJhaW5pbmcgZnJvbSBtb2RpZnlpbmcgcGFydGl0aW9uIGxlYWYK LSAgICAgICB0YWJsZXMgYWZ0ZXIgdGhlIDxjb21tYW5kPkFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBT RVQ8L2NvbW1hbmQ+IHVudGlsIHRoZQotICAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1hbHRlcnN1 YnNjcmlwdGlvbiI+PGNvbW1hbmQ+QUxURVIgU1VCU0NSSVBUSU9OIC4uLiBSRUZSRVNIIFBVQkxJ Q0FUSU9OPC9jb21tYW5kPjwvbGluaz4KLSAgICAgICBpcyBleGVjdXRlZCBhbmQgYnkgb25seSBy ZWZyZXNoaW5nIHVzaW5nIHRoZSA8bGl0ZXJhbD5jb3B5X2RhdGEgPSBvZmY8L2xpdGVyYWw+Ci0g ICAgICAgb3B0aW9uLgotICAgICAgPC9wYXJhPgotICAgICA8L2NhdXRpb24+Ci0gICAgPC9saXN0 aXRlbT4KLSAgIDwvdmFybGlzdGVudHJ5PgotCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJt PjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfb3duZXI8L3JlcGxhY2VhYmxlPjwv dGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC0yNDAsNiArMjg4LDEyIEBAIEFMVEVSIFBVQkxJQ0FU SU9OIHNhbGVzX3B1YmxpY2F0aW9uIEFERCBUQUJMRVMgSU4gU0NIRU1BIG1hcmtldGluZywgc2Fs ZXM7CiAgICA8c3RydWN0bmFtZT5wcm9kdWN0aW9uX3B1YmxpY2F0aW9uPC9zdHJ1Y3RuYW1lPjoK IDxwcm9ncmFtbGlzdGluZz4KIEFMVEVSIFBVQkxJQ0FUSU9OIHByb2R1Y3Rpb25fcHVibGljYXRp b24gQUREIFRBQkxFIHVzZXJzLCBkZXBhcnRtZW50cywgVEFCTEVTIElOIFNDSEVNQSBwcm9kdWN0 aW9uOworPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CisKKyAgPHBhcmE+CisgICBSZXNldCB0aGUg cHVibGljYXRpb24gPHN0cnVjdG5hbWU+cHJvZHVjdGlvbl9wdWJsaWNhdGlvbjwvc3RydWN0bmFt ZT46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1Ymxp Y2F0aW9uIFJFU0VUOwogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAgPC9yZWZzZWN0MT4KIApk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwppbmRleCAxZmFmM2E4YzM3Mi4uNGY4 MzQyZjcyMWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21k cy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCkBAIC05MCwx MiArOTAsMTIgQEAgcGFyc2VfcHVibGljYXRpb25fb3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUs CiAJKnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnNfZ2l2ZW4gPSBmYWxzZTsKIAogCS8qIGRlZmF1 bHRzICovCi0JcHViYWN0aW9ucy0+cHViaW5zZXJ0ID0gdHJ1ZTsKLQlwdWJhY3Rpb25zLT5wdWJ1 cGRhdGUgPSB0cnVlOwotCXB1YmFjdGlvbnMtPnB1YmRlbGV0ZSA9IHRydWU7Ci0JcHViYWN0aW9u cy0+cHVidHJ1bmNhdGUgPSB0cnVlOwotCSpwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9IGZh bHNlOwotCSpwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zID0gUFVCTElTSF9HRU5DT0xTX05PTkU7 CisJcHViYWN0aW9ucy0+cHViaW5zZXJ0ID0gUFVCX0RFRkFVTFRfQUNUSU9OX0lOU0VSVDsKKwlw dWJhY3Rpb25zLT5wdWJ1cGRhdGUgPSBQVUJfREVGQVVMVF9BQ1RJT05fVVBEQVRFOworCXB1YmFj dGlvbnMtPnB1YmRlbGV0ZSA9IFBVQl9ERUZBVUxUX0FDVElPTl9ERUxFVEU7CisJcHViYWN0aW9u cy0+cHVidHJ1bmNhdGUgPSBQVUJfREVGQVVMVF9BQ1RJT05fVFJVTkNBVEU7CisJKnB1Ymxpc2hf dmlhX3BhcnRpdGlvbl9yb290ID0gUFVCX0RFRkFVTFRfVklBX1JPT1Q7CisJKnB1Ymxpc2hfZ2Vu ZXJhdGVkX2NvbHVtbnMgPSBQVUJfREVGQVVMVF9HRU5DT0xTOwogCiAJLyogUGFyc2Ugb3B0aW9u cyAqLwogCWZvcmVhY2gobGMsIG9wdGlvbnMpCkBAIC0xMjA5LDYgKzEyMDksMTIyIEBAIEludmFs aWRhdGVQdWJsaWNhdGlvblJlbHMoTGlzdCAqcmVsaWRzKQogCQlDYWNoZUludmFsaWRhdGVSZWxj YWNoZUFsbCgpOwogfQogCisvKgorICogUmVzZXQgdGhlIHB1YmxpY2F0aW9uLgorICoKKyAqIFJl c2V0IHRoZSBwdWJsaWNhdGlvbiBwYXJhbWV0ZXJzLCBzZXR0aW5nIEFMTCBUQUJMRVMgYW5kIEFM TCBTRVFVRU5DRVMgZmxhZworICogdG8gZmFsc2UgYW5kIGRyb3AgYWxsIHJlbGF0aW9ucyBhbmQg c2NoZW1hcyB0aGF0IGFyZSBhc3NvY2lhdGVkIHdpdGggdGhlCisgKiBwdWJsaWNhdGlvbi4KKyAq Lworc3RhdGljIHZvaWQKK0FsdGVyUHVibGljYXRpb25SZXNldChQYXJzZVN0YXRlICpwc3RhdGUs IEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAorCQkJCQkgIFJlbGF0aW9uIHJlbCwgSGVhcFR1 cGxlIHR1cCkKK3sKKwlGb3JtX3BnX3B1YmxpY2F0aW9uIHB1YmZvcm0gPSAoRm9ybV9wZ19wdWJs aWNhdGlvbikgR0VUU1RSVUNUKHR1cCk7CisJT2lkCQkJcHViaWQgPSBwdWJmb3JtLT5vaWQ7CisJ TGlzdAkgICAqc2NoZW1haWRzID0gTklMOworCUxpc3QJICAgKnJlbHMgPSBOSUw7CisJTGlzdAkg ICAqcmVsaWRzID0gTklMOworCWJvb2wJCW51bGxzW05hdHRzX3BnX3B1YmxpY2F0aW9uXTsKKwli b29sCQlyZXBsYWNlc1tOYXR0c19wZ19wdWJsaWNhdGlvbl07CisJRGF0dW0JCXZhbHVlc1tOYXR0 c19wZ19wdWJsaWNhdGlvbl07CisKKwkvKiBSRVNFVCBwdWJsaWNhdGlvbiByZXF1aXJlcyBzdXBl cnVzZXIgKi8KKwlpZiAoIXN1cGVydXNlcigpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNv ZGUoRVJSQ09ERV9JTlNVRkZJQ0lFTlRfUFJJVklMRUdFKSwKKwkJCQllcnJtc2coIm11c3QgYmUg c3VwZXJ1c2VyIHRvIFJFU0VUIHB1YmxpY2F0aW9uIikpOworCisJbWVtc2V0KHZhbHVlcywgMCwg c2l6ZW9mKHZhbHVlcykpOworCW1lbXNldChudWxscywgZmFsc2UsIHNpemVvZihudWxscykpOwor CW1lbXNldChyZXBsYWNlcywgZmFsc2UsIHNpemVvZihyZXBsYWNlcykpOworCisJLyogUmVzZXQg dGhlIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMgKi8KKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlv bl9wdWJpbnNlcnQgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJfREVGQVVMVF9BQ1RJT05fSU5TRVJU KTsKKwlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1Ymluc2VydCAtIDFdID0gdHJ1ZTsK KworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YnVwZGF0ZSAtIDFdID0gQm9vbEdldERh dHVtKFBVQl9ERUZBVUxUX0FDVElPTl9VUERBVEUpOworCXJlcGxhY2VzW0FudW1fcGdfcHVibGlj YXRpb25fcHVidXBkYXRlIC0gMV0gPSB0cnVlOworCisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRp b25fcHViZGVsZXRlIC0gMV0gPSBCb29sR2V0RGF0dW0oUFVCX0RFRkFVTFRfQUNUSU9OX0RFTEVU RSk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJkZWxldGUgLSAxXSA9IHRydWU7 CisKKwl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ0cnVuY2F0ZSAtIDFdID0gQm9vbEdl dERhdHVtKFBVQl9ERUZBVUxUX0FDVElPTl9UUlVOQ0FURSk7CisJcmVwbGFjZXNbQW51bV9wZ19w dWJsaWNhdGlvbl9wdWJ0cnVuY2F0ZSAtIDFdID0gdHJ1ZTsKKworCXZhbHVlc1tBbnVtX3BnX3B1 YmxpY2F0aW9uX3B1YnZpYXJvb3QgLSAxXSA9IEJvb2xHZXREYXR1bShQVUJfREVGQVVMVF9WSUFf Uk9PVCk7CisJcmVwbGFjZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9wdWJ2aWFyb290IC0gMV0gPSB0 cnVlOworCisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25fcHViZ2VuY29scyAtIDFdID0gQ2hh ckdldERhdHVtKFBVQl9ERUZBVUxUX0dFTkNPTFMpOworCXJlcGxhY2VzW0FudW1fcGdfcHVibGlj YXRpb25fcHViZ2VuY29scyAtIDFdID0gdHJ1ZTsKKworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0 aW9uX3B1YmFsbHRhYmxlcyAtIDFdID0gQm9vbEdldERhdHVtKGZhbHNlKTsKKwlyZXBsYWNlc1tB bnVtX3BnX3B1YmxpY2F0aW9uX3B1YmFsbHRhYmxlcyAtIDFdID0gdHJ1ZTsKKworCXZhbHVlc1tB bnVtX3BnX3B1YmxpY2F0aW9uX3B1YmFsbHNlcXVlbmNlcyAtIDFdID0gQm9vbEdldERhdHVtKGZh bHNlKTsKKwlyZXBsYWNlc1tBbnVtX3BnX3B1YmxpY2F0aW9uX3B1YmFsbHNlcXVlbmNlcyAtIDFd ID0gdHJ1ZTsKKworCS8qCisJICogTG9jayB0aGUgcHVibGljYXRpb24gc28gbm9ib2R5IGVsc2Ug Y2FuIGRvIGFueXRoaW5nIHdpdGggaXQuIFRoaXMKKwkgKiBwcmV2ZW50cyBjb25jdXJyZW50IHB1 YmxpY2F0aW9uIHBhcmFtZXRlciBjaGFuZ2VzLCBhZGQvZHJvcCB0YWJsZXMocykKKwkgKiB0byB0 aGUgcHVibGljYXRpb24gYW5kIGFkZC9kcm9wIHNjaGVtYShzKSB0byB0aGUgcHVibGljYXRpb24u CisJICovCisJTG9ja0RhdGFiYXNlT2JqZWN0KFB1YmxpY2F0aW9uUmVsYXRpb25JZCwgcHViaWQs IDAsCisJCQkJCSAgIEFjY2Vzc0V4Y2x1c2l2ZUxvY2spOworCisJLyoKKwkgKiBJdCBpcyBwb3Nz aWJsZSB0aGF0IGJ5IHRoZSB0aW1lIHdlIGFjcXVpcmUgdGhlIGxvY2sgb24gcHVibGljYXRpb24s CisJICogY29uY3VycmVudCBEREwgaGFzIHJlbW92ZWQgaXQuIFdlIGNhbiB0ZXN0IHRoaXMgYnkg Y2hlY2tpbmcgdGhlCisJICogZXhpc3RlbmNlIG9mIHB1YmxpY2F0aW9uLiBXZSBnZXQgdGhlIHR1 cGxlIGFnYWluIHRvIGF2b2lkIHRoZSByaXNrIG9mCisJICogYW55IHB1YmxpY2F0aW9uIG9wdGlv biBnZXR0aW5nIGNoYW5nZWQuCisJICovCisJdHVwID0gU2VhcmNoU3lzQ2FjaGVDb3B5MShQVUJM SUNBVElPTk9JRCwgT2JqZWN0SWRHZXREYXR1bShwdWJpZCkpOworCWlmICghSGVhcFR1cGxlSXNW YWxpZCh0dXApKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklO RURfT0JKRUNUKSwKKwkJCQllcnJtc2coInB1YmxpY2F0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlz dCIsCisJCQkJCSAgIHN0bXQtPnB1Ym5hbWUpKTsKKworCWlmIChwdWJmb3JtLT5wdWJhbGx0YWJs ZXMpCisJCUNhY2hlSW52YWxpZGF0ZVJlbGNhY2hlQWxsKCk7CisKKwl0dXAgPSBoZWFwX21vZGlm eV90dXBsZSh0dXAsIFJlbGF0aW9uR2V0RGVzY3IocmVsKSwgdmFsdWVzLCBudWxscywKKwkJCQkJ CQlyZXBsYWNlcyk7CisKKwkvKiBVcGRhdGUgdGhlIGNhdGFsb2cuICovCisJQ2F0YWxvZ1R1cGxl VXBkYXRlKHJlbCwgJnR1cC0+dF9zZWxmLCB0dXApOworCisJLyogUmVtb3ZlIHRoZSBhc3NvY2lh dGVkIHNjaGVtYXMgZnJvbSB0aGUgcHVibGljYXRpb24gKi8KKwlzY2hlbWFpZHMgPSBHZXRQdWJs aWNhdGlvblNjaGVtYXMocHViaWQpOworCisJLyoKKwkgKiBTY2hlbWEgbG9jayBpcyBoZWxkIHVu dGlsIHRoZSBwdWJsaWNhdGlvbiBpcyBhbHRlcmVkIHRvIHByZXZlbnQKKwkgKiBjb25jdXJyZW50 IHNjaGVtYSBkZWxldGlvbi4KKwkgKi8KKwlMb2NrU2NoZW1hTGlzdChzY2hlbWFpZHMpOworCisJ LyogUmVtb3ZlIFNjaGVtYXMgKi8KKwlQdWJsaWNhdGlvbkRyb3BTY2hlbWFzKHB1YmlkLCBzY2hl bWFpZHMsIHRydWUpOworCisJLyogR2V0IGFsbCByZWxhdGlvbnMgYXNzb2NpYXRlZCB3aXRoIHRo ZSBwdWJsaWNhdGlvbiAqLworCXJlbGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1Ymlk LCBQVUJMSUNBVElPTl9QQVJUX1JPT1QpOworCisJZm9yZWFjaF9vaWQocmVsaWQsIHJlbGlkcykK Kwl7CisJCVB1YmxpY2F0aW9uUmVsSW5mbyAqcmVsOworCisJCXJlbCA9IHBhbGxvYyhzaXplb2Yo UHVibGljYXRpb25SZWxJbmZvKSk7CisJCXJlbC0+d2hlcmVDbGF1c2UgPSBOVUxMOworCQlyZWwt PmNvbHVtbnMgPSBOSUw7CisJCXJlbC0+cmVsYXRpb24gPSB0YWJsZV9vcGVuKHJlbGlkLCBTaGFy ZVVwZGF0ZUV4Y2x1c2l2ZUxvY2spOworCQlyZWxzID0gbGFwcGVuZChyZWxzLCByZWwpOworCX0K KworCS8qIFJlbW92ZSB0aGUgYXNzb2NpYXRlZCByZWxhdGlvbnMgZnJvbSB0aGUgcHVibGljYXRp b24gKi8KKwlQdWJsaWNhdGlvbkRyb3BUYWJsZXMocHViaWQsIHJlbHMsIHRydWUpOworCUNsb3Nl VGFibGVMaXN0KHJlbHMpOworfQorCiAvKgogICogQWRkIG9yIHJlbW92ZSB0YWJsZSB0by9mcm9t IHB1YmxpY2F0aW9uLgogICovCkBAIC0xNTUzLDYgKzE2NjksOCBAQCBBbHRlclB1YmxpY2F0aW9u KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAKIAlpZiAo c3RtdC0+b3B0aW9ucykKIAkJQWx0ZXJQdWJsaWNhdGlvbk9wdGlvbnMocHN0YXRlLCBzdG10LCBy ZWwsIHR1cCk7CisJZWxzZSBpZiAoc3RtdC0+YWN0aW9uID09IEFQX1Jlc2V0KQorCQlBbHRlclB1 YmxpY2F0aW9uUmVzZXQocHN0YXRlLCBzdG10LCByZWwsIHR1cCk7CiAJZWxzZQogCXsKIAkJTGlz dAkgICAqcmVsYXRpb25zID0gTklMOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYzNhMGEzNTRhOWMuLmE4Yjlh ZTYxODJkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTEwOTA0LDE1ICsxMDkwNCwxNyBAQCBwdWJfYWxsX29i al90eXBlX2xpc3Q6CVB1YmxpY2F0aW9uQWxsT2JqU3BlYwogICoKICAqIEFMVEVSIFBVQkxJQ0FU SU9OIG5hbWUgQUREIHB1Yl9vYmogWywgLi4uXQogICoKLSAqIEFMVEVSIFBVQkxJQ0FUSU9OIG5h bWUgRFJPUCBwdWJfb2JqIFssIC4uLl0KLSAqCiAgKiBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIFNF VCBwdWJfb2JqIFssIC4uLl0KICAqCisgKiBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIERST1AgcHVi X29iaiBbLCAuLi5dCisgKgogICogcHViX29iaiBpcyBvbmUgb2Y6CiAgKgogICoJCVRBQkxFIHRh YmxlX25hbWUgWywgLi4uXQogICoJCVRBQkxFUyBJTiBTQ0hFTUEgc2NoZW1hX25hbWUgWywgLi4u XQogICoKKyAqIEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgUkVTRVQKKyAqCiAgKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKiovCiAKIEFsdGVyUHVibGljYXRpb25TdG10OgpAQCAtMTA5NTQsNiArMTA5NTYsMTMg QEAgQWx0ZXJQdWJsaWNhdGlvblN0bXQ6CiAJCQkJCW4tPmFjdGlvbiA9IEFQX0Ryb3BPYmplY3Rz OwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQorCQkJfCBBTFRFUiBQVUJMSUNBVElPTiBu YW1lIFJFU0VUCisJCQkJeworCQkJCQlBbHRlclB1YmxpY2F0aW9uU3RtdCAqbiA9IG1ha2VOb2Rl KEFsdGVyUHVibGljYXRpb25TdG10KTsKKwkJCQkJbi0+cHVibmFtZSA9ICQzOworCQkJCQluLT5h Y3Rpb24gPSBBUF9SZXNldDsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJfQogCQk7CiAKIC8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0 ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDIwZDdhNjVjNjE0 Li44MzU5OWRlMjIyNSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j CisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMjI4OSw3ICsyMjg5LDcg QEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAKIAkvKiBBTFRFUiBQVUJM SUNBVElPTiA8bmFtZT4gKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElP TiIsIE1hdGNoQW55KSkKLQkJQ09NUExFVEVfV0lUSCgiQUREIiwgIkRST1AiLCAiT1dORVIgVE8i LCAiUkVOQU1FIFRPIiwgIlNFVCIpOworCQlDT01QTEVURV9XSVRIKCJBREQiLCAiRFJPUCIsICJP V05FUiBUTyIsICJSRU5BTUUgVE8iLCAiUkVTRVQiLCAiU0VUIik7CiAJLyogQUxURVIgUFVCTElD QVRJT04gPG5hbWU+IEFERCAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FU SU9OIiwgTWF0Y2hBbnksICJBREQiKSkKIAkJQ09NUExFVEVfV0lUSCgiVEFCTEVTIElOIFNDSEVN QSIsICJUQUJMRSIpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNh dGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCmluZGV4IDIyZjQ4 YmI4OTc1Li42NDEwMTdlOTQ5NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19w dWJsaWNhdGlvbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaApA QCAtMTUyLDYgKzE1MiwxNCBAQCBleHRlcm4gUHVibGljYXRpb24gKkdldFB1YmxpY2F0aW9uKE9p ZCBwdWJpZCk7CiBleHRlcm4gUHVibGljYXRpb24gKkdldFB1YmxpY2F0aW9uQnlOYW1lKGNvbnN0 IGNoYXIgKnB1Ym5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gTGlzdCAqR2V0UmVsYXRp b25QdWJsaWNhdGlvbnMoT2lkIHJlbGlkKTsKIAorLyogZGVmYXVsdCB2YWx1ZXMgZm9yIGZsYWdz IGFuZCBwdWJsaWNhdGlvbiBwYXJhbWV0ZXJzICovCisjZGVmaW5lIFBVQl9ERUZBVUxUX0FDVElP Tl9JTlNFUlQgdHJ1ZQorI2RlZmluZSBQVUJfREVGQVVMVF9BQ1RJT05fVVBEQVRFIHRydWUKKyNk ZWZpbmUgUFVCX0RFRkFVTFRfQUNUSU9OX0RFTEVURSB0cnVlCisjZGVmaW5lIFBVQl9ERUZBVUxU X0FDVElPTl9UUlVOQ0FURSB0cnVlCisjZGVmaW5lIFBVQl9ERUZBVUxUX1ZJQV9ST09UIGZhbHNl CisjZGVmaW5lIFBVQl9ERUZBVUxUX0dFTkNPTFMgUFVCTElTSF9HRU5DT0xTX05PTkUKKwogLyot LS0tLS0tLS0KICAqIEV4cGVjdGVkIHZhbHVlcyBmb3IgcHViX3BhcnRvcHQgcGFyYW1ldGVyIG9m IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKCksCiAgKiB3aGljaCBhbGxvd3MgY2FsbGVycyB0byBz cGVjaWZ5IHdoaWNoIHBhcnRpdGlvbnMgb2YgcGFydGl0aW9uZWQgdGFibGVzCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmgKaW5kZXggZDE0Mjk0YTRlY2UuLjhjZjc1NzI0YTdiIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oCkBAIC00MzI2LDYgKzQzMjYsNyBAQCB0eXBlZGVmIGVudW0gQWx0ZXJQdWJsaWNhdGlv bkFjdGlvbgogCUFQX0FkZE9iamVjdHMsCQkJCS8qIGFkZCBvYmplY3RzIHRvIHB1YmxpY2F0aW9u ICovCiAJQVBfRHJvcE9iamVjdHMsCQkJCS8qIHJlbW92ZSBvYmplY3RzIGZyb20gcHVibGljYXRp b24gKi8KIAlBUF9TZXRPYmplY3RzLAkJCQkvKiBzZXQgbGlzdCBvZiBvYmplY3RzICovCisJQVBf UmVzZXQsCQkJCQkvKiByZXNldCB0aGUgcHVibGljYXRpb24gKi8KIH0gQWx0ZXJQdWJsaWNhdGlv bkFjdGlvbjsKIAogdHlwZWRlZiBzdHJ1Y3QgQWx0ZXJQdWJsaWNhdGlvblN0bXQKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKaW5kZXggZTcyZDEzMDg5NjcuLmNlNWIz YjY0OWQ1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9u Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dApAQCAt MjAwOSw3ICsyMDA5LDY1IEBAIFRhYmxlczoKIERST1AgUFVCTElDQVRJT04gcHViMTsKIERST1Ag UFVCTElDQVRJT04gcHViMjsKIERST1AgVEFCTEUgZ2VuY29sczsKKy0tID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorLS0gVGVzdHMgZm9yIEFM VEVSIFBVQkxJQ0FUSU9OIC4uLiBSRVNFVAorQ1JFQVRFIFNDSEVNQSBwdWJfc2NoMTsKK0NSRUFU RSBUQUJMRSBwdWJfc2NoMS50YmwxIChhIGludCk7CitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9 ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBGT1IgQUxMIFRBQkxF UywgQUxMIFNFUVVFTkNFUzsKIFJFU0VUIGNsaWVudF9taW5fbWVzc2FnZXM7CistLSBWZXJpZnkg dGhhdCBvbmx5IHN1cGVydXNlciBjYW4gcmVzZXQgYSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOwor U0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyMjsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgUkVTRVQ7IC0tIGZhaWwgLSBtdXN0IGJlIHN1cGVydXNlcgorRVJST1I6ICBt dXN0IGJlIHN1cGVydXNlciB0byBSRVNFVCBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9yZXNldCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXI7CitTRVQgUk9M RSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXI7CistLSBWZXJpZnkgdGhhdCAnQUxMIFRBQkxFUycs ICdBTEwgU0VRVUVOQ0VTJyBmbGFncyBhcmUgcmVzZXQKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0 aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVz IHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRl cyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jl c3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCB0ICAgICAgICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBm CisoMSByb3cpCisKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJw KyB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAg ICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8 IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAgIHwgZiAg ICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgICB8IG5v bmUgICAgICAgICAgICAgIHwgZgorKDEgcm93KQorCistLSBWZXJpZnkgdGhhdCBhIHB1YmxpY2F0 aW9uIFJFU0VUIHJlbW92ZXMgdGhlIGFzc29jaWF0ZWQgdGFibGVzIGFuZAorLS0gc2NoZW1hcywg YW5kIHNldHMgZGVmYXVsdCB2YWx1ZXMgZm9yIHB1YmxpY2F0aW9uIHBhcmFtZXRlcnMgJ3B1Ymxp c2gnLAorLS0gJ3B1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290JywgYW5kICdwdWJsaXNoX2dlbmVy YXRlZF9jb2x1bW5zJy4KK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIFRBQkxF IHB1Yl9zY2gxLnRibDEsIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljOworQUxURVIgUFVCTElDQVRJ T04gdGVzdHB1Yl9yZXNldCBTRVQgKHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gJ3RydWUn KTsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChwdWJsaXNoID0gJycpOwor QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBTRVQgKHB1Ymxpc2hfZ2VuZXJhdGVkX2Nv bHVtbnMgPSBzdG9yZWQpOworXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNl dAorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2Vz IHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNv bHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91 c2VyIHwgZiAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYg ICAgICAgfCBmICAgICAgICAgfCBzdG9yZWQgICAgICAgICAgICB8IHQKK1RhYmxlczoKKyAgICAi cHViX3NjaDEudGJsMSIKK1RhYmxlcyBmcm9tIHNjaGVtYXM6CisgICAgInB1YmxpYyIKKworQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1Ymxp Y2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFi bGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5j YXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJl Z3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAg fCBmCisoMSByb3cpCisKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldDsKK0RST1AgVEFC TEUgcHViX3NjaDEudGJsMTsKK0RST1AgU0NIRU1BIHB1Yl9zY2gxOworLS0gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CiAtLSBUZXN0IHRoYXQg dGhlIElOU0VSVCBPTiBDT05GTElDVCBjb21tYW5kIGNvcnJlY3RseSBjaGVja3MgUkVQTElDQSBJ REVOVElUWQogLS0gd2hlbiB0aGUgdGFyZ2V0IHRhYmxlIGlzIHB1Ymxpc2hlZC4KIENSRUFURSBU QUJMRSB0ZXN0cHViX2luc2VydF9vbmNvbmZsX25vX3JpIChhIGludCB1bmlxdWUsIGIgaW50KTsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAppbmRleCAwMDM5MGFlY2Q0Ny4uZjA0MzJm NjdiNGEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKQEAgLTEyNjcsOSArMTI2 Nyw0MyBAQCBBTFRFUiBQVUJMSUNBVElPTiBwdWIyIFNFVCBUQUJMRSBnZW5jb2xzKGEsIGdlbjEp OwogRFJPUCBQVUJMSUNBVElPTiBwdWIxOwogRFJPUCBQVUJMSUNBVElPTiBwdWIyOwogRFJPUCBU QUJMRSBnZW5jb2xzOworLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CiAKKy0tIFRlc3RzIGZvciBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVT RVQKK0NSRUFURSBTQ0hFTUEgcHViX3NjaDE7CitDUkVBVEUgVEFCTEUgcHViX3NjaDEudGJsMSAo YSBpbnQpOworU0VUIGNsaWVudF9taW5fbWVzc2FnZXMgPSAnRVJST1InOworQ1JFQVRFIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgRk9SIEFMTCBUQUJMRVMsIEFMTCBTRVFVRU5DRVM7CiBSRVNF VCBjbGllbnRfbWluX21lc3NhZ2VzOwogCistLSBWZXJpZnkgdGhhdCBvbmx5IHN1cGVydXNlciBj YW4gcmVzZXQgYSBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBP V05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworU0VUIFJPTEUgcmVncmVzc19wdWJs aWNhdGlvbl91c2VyMjsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7IC0t IGZhaWwgLSBtdXN0IGJlIHN1cGVydXNlcgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXI7CitTRVQgUk9MRSByZWdyZXNzX3B1 YmxpY2F0aW9uX3VzZXI7CisKKy0tIFZlcmlmeSB0aGF0ICdBTEwgVEFCTEVTJywgJ0FMTCBTRVFV RU5DRVMnIGZsYWdzIGFyZSByZXNldAorXGRScCsgdGVzdHB1Yl9yZXNldAorQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKworLS0gVmVy aWZ5IHRoYXQgYSBwdWJsaWNhdGlvbiBSRVNFVCByZW1vdmVzIHRoZSBhc3NvY2lhdGVkIHRhYmxl cyBhbmQKKy0tIHNjaGVtYXMsIGFuZCBzZXRzIGRlZmF1bHQgdmFsdWVzIGZvciBwdWJsaWNhdGlv biBwYXJhbWV0ZXJzICdwdWJsaXNoJywKKy0tICdwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCcs IGFuZCAncHVibGlzaF9nZW5lcmF0ZWRfY29sdW1ucycuCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IEFERCBUQUJMRSBwdWJfc2NoMS50YmwxLCBUQUJMRVMgSU4gU0NIRU1BIHB1Ymxp YzsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChwdWJsaXNoX3ZpYV9wYXJ0 aXRpb25fcm9vdCA9ICd0cnVlJyk7CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNF VCAocHVibGlzaCA9ICcnKTsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgU0VUIChw dWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zID0gc3RvcmVkKTsKK1xkUnArIHRlc3RwdWJfcmVzZXQK K0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitcZFJwKyB0ZXN0cHViX3Jl c2V0CisKK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldDsKK0RST1AgVEFCTEUgcHViX3Nj aDEudGJsMTsKK0RST1AgU0NIRU1BIHB1Yl9zY2gxOworLS0gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisKIC0tIFRlc3QgdGhhdCB0aGUgSU5T RVJUIE9OIENPTkZMSUNUIGNvbW1hbmQgY29ycmVjdGx5IGNoZWNrcyBSRVBMSUNBIElERU5USVRZ CiAtLSB3aGVuIHRoZSB0YXJnZXQgdGFibGUgaXMgcHVibGlzaGVkLgogQ1JFQVRFIFRBQkxFIHRl c3RwdWJfaW5zZXJ0X29uY29uZmxfbm9fcmkgKGEgaW50IHVuaXF1ZSwgYiBpbnQpOwotLSAKMi4z NC4xCgo= --000000000000b3632e06451ef149 Content-Type: application/octet-stream; name="v29-0003-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Disposition: attachment; filename="v29-0003-Skip-publishing-the-tables-specified-in-EXCEPT-T.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mirdh9ap2 RnJvbSA5ODk3OWU3NzAxZjFkNTEzM2RmOTBhMDhlOGVkNWEyMGQ1ZTMwMzk4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IFRodSwgNCBEZWMgMjAyNSAxNjo1MTo0NyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjI5 IDMvNF0gU2tpcCBwdWJsaXNoaW5nIHRoZSB0YWJsZXMgc3BlY2lmaWVkIGluIEVYQ0VQVCBUQUJM RS4KCkEgbmV3ICJFWENFUFQgVEFCTEUiIGNsYXVzZSBmb3IgQ1JFQVRFL0FMVEVSIFBVQkxJQ0FU SU9OIGFsbG93cyBvbmUgb3IKbW9yZSB0YWJsZXMgdG8gYmUgZXhjbHVkZWQuIFRoZSBwdWJsaXNo ZXIgd2lsbCBub3Qgc2VuZCB0aGUgZGF0YSBvZgpleGNsdWRlZCB0YWJsZXMgdG8gdGhlIHN1YnNj cmliZXIuCgpUaGUgbmV3IHN5bnRheCBhbGxvd3Mgc3BlY2lmeWluZyBleGNsdWRlZCByZWxhdGlv bnMgd2hlbiBjcmVhdGluZyBvciBhbHRlcmluZwphIHB1YmxpY2F0aW9uLiBGb3IgZXhhbXBsZToK Q1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjEgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFICh0MSx0 Mik7Cm9yCkFMVEVSIFBVQkxJQ0FUSU9OIHB1YjEgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxF ICh0MSx0Mik7CgpBIG5ldyBjb2x1bW4gInByZXhjZXB0IiBpcyBhZGRlZCB0byB0YWJsZSAicGdf cHVibGljYXRpb25fcmVsIiwgdG8gZmxhZwp0aGUgcmVsYXRpb25zIHRoYXQgdGhlIHVzZXIgd2Fu dHMgdG8gZXhjbHVkZSBmcm9tIHRoZSBwdWJsaWNhdGlvbnMuCgpwZ19kdW1wIGlzIHVwZGF0ZWQg dG8gaWRlbnRpZnkgYW5kIGR1bXAgdGhlIGV4Y2x1ZGVkIHRhYmxlcyBvZiB0aGUgcHVibGljYXRp b25zLgoKVGhlIHBzcWwgXGQgZmFtaWx5IG9mIGNvbW1hbmRzIGNhbiBub3cgZGlzcGxheSBleGNs dWRlZCB0YWJsZXMuIGUuZy4gcHNxbApcZFJwKyB2YXJpYW50IHdpbGwgbm93IGRpc3BsYXkgYXNz b2NpYXRlZCAiZXhjZXB0IHRhYmxlcyIgaWYgYW55LgoKQnVtcCBjYXRhbG9nIHZlcnNpb24uCi0t LQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICA5ICsK IGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbCAgICAgICB8ICAyNiArKy0K IGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwgICAgICB8ICA0NyArKysr LQogZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sICAgICAgICAgICAgICAgIHwgICA1ICst CiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMgICAgICAgICAgfCAgOTkgKysr KysrKy0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMgICAgICAgIHwg MTQwICsrKysrKysrLS0tLS0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jICAgICAg ICAgICAgICB8ICAgNCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAg ICAgICAgIHwgIDM2ICsrKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0 cHV0LmMgICB8ICAyNSArLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMgICAg ICAgICAgICB8ICAxNyArLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAg ICAgICAgIHwgIDU2ICsrKysrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAg ICAgICAgICAgIHwgICAxICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyAgICAgICAg ICAgICAgICB8ICAxOCArKwogc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAg ICAgICAgIHwgIDIwICsrCiBzcmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAg ICAgICAgfCAgNTggKysrKystCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgICAgICAg ICAgICAgICAgfCAgMTAgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oICAg ICAgICAgIHwgIDEwICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5o ICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmggICAg ICAgIHwgICA1ICstCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAg ICAgfCAgIDMgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgICAg IHwgIDU5ICsrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsICAgICAg ICAgIHwgIDI0ICsrLQogc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkICAgICAgICAg ICAgIHwgICAxICsKIC4uLi90LzAzN19yZXBfY2hhbmdlc19leGNlcHRfdGFibGUucGwgICAgICAg ICB8IDE4NiArKysrKysrKysrKysrKysrKysKIDI0IGZpbGVzIGNoYW5nZWQsIDcyNSBpbnNlcnRp b25zKCspLCAxMzUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3Qvc3Vi c2NyaXB0aW9uL3QvMDM3X3JlcF9jaGFuZ2VzX2V4Y2VwdF90YWJsZS5wbAoKZGlmZiAtLWdpdCBh L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwK aW5kZXggMmZjNjM0NDI5ODAuLmE0ZDMyZGU1OGVjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtNjU4MSw2 ICs2NTgxLDE1IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291 bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICBpZiB0aGVyZSBpcyBu byBwdWJsaWNhdGlvbiBxdWFsaWZ5aW5nIGNvbmRpdGlvbi48L3BhcmE+PC9lbnRyeT4KICAgICAg PC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2Vu dHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICA8c3RydWN0ZmllbGQ+ cHJleGNlcHQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29sPC90eXBlPgorICAgICAgPC9wYXJhPgor ICAgICAgPHBhcmE+CisgICAgICAgVHJ1ZSBpZiB0aGUgcmVsYXRpb24gbXVzdCBiZSBleGNsdWRl ZAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD5wcmF0dHJzPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+aW50MnZlY3RvcjwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJf cHVibGljYXRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dt bAppbmRleCAwYWIyYTlkMDA3ZS4uMWNlYWVhZWM3NzIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvYWx0ZXJfcHVibGljYXRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVy X3B1YmxpY2F0aW9uLnNnbWwKQEAgLTI0LDcgKzI0LDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0 aW9uCiBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+IEFERCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGlj YXRpb25fb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uXQogQUxURVIgUFVCTElDQVRJT04gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+ IFssIC4uLl0KIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT4gRFJPUCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ cHVibGljYXRpb25fZHJvcF9vYmplY3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCi1BTFRFUiBQVUJM SUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+ IEFERCBBTEwgVEFCTEVTCitBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IEFERCBBTEwgVEFCTEVTIFsgRVhDRVBUIFsgVEFC TEUgXSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9leGNlcHRpb25fb2Jq ZWN0PC9yZXBsYWNlYWJsZT4gWywgLi4uIF0gKSBdCiBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFNFVCAoIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9wYXJhbWV0ZXI8L3JlcGxhY2VhYmxl PiBbPSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPl0g WywgLi4uIF0gKQogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBPV05FUiBUTyB7IDxyZXBsYWNlYWJsZT5uZXdfb3duZXI8 L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfUk9MRSB8IENVUlJFTlRfVVNFUiB8IFNFU1NJT05fVVNF UiB9CiBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFt ZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cmVwbGFjZWFibGU+bmV3X25hbWU8L3JlcGxhY2Vh YmxlPgpAQCAtNDMsNiArNDMsMTAgQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBSRVNFVAogPHBocmFzZT5hbmQgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX2FuZF9jb2x1bW5zPC9yZXBsYWNlYWJs ZT4gaXM6PC9waHJhc2U+CiAKICAgICBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgKCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0gWyBX SEVSRSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNl YWJsZT4gKSBdCisKKzxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnRhYmxlX2V4Y2VwdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KKworICAg IFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50YWJsZV9uYW1lPC9yZXBs YWNlYWJsZT4gWyAqIF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNpc2Rpdj4KIApAQCAtOTMs MTAgKzk3LDExIEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVTRVQKICAgIDwvdmFybGlzdGVudHJ5PgogCiAgICA8 dmFybGlzdGVudHJ5PgotICAgIDx0ZXJtPjxsaXRlcmFsPkFERCBBTEwgVEFCTEVTPC9saXRlcmFs PjwvdGVybT4KKyAgICA8dGVybT48bGl0ZXJhbD5BREQgQUxMIFRBQkxFUyBbIEVYQ0VQVCBbIFRB QkxFIF0gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfZXhjZXB0aW9uX29i amVjdDwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXTwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxp c3RpdGVtPgogICAgICA8cGFyYT4KLSAgICAgIFRoaXMgZm9ybSBhZGRzIGFsbCB0YWJsZXMgdG8g dGhlIHB1YmxpY2F0aW9uLiBUaGlzIHJlcXVpcmVzIHRoZQorICAgICAgVGhpcyBmb3JtIGFkZHMg YWxsIHRhYmxlcywgZXhjZXB0IHRob3NlIGxpc3RlZCBpbiB0aGUKKyAgICAgIDxsaXRlcmFsPkVY Q0VQVDwvbGl0ZXJhbD4gY2xhdXNlLCB0byB0aGUgcHVibGljYXRpb24uIFRoaXMgcmVxdWlyZXMg dGhlCiAgICAgICBwdWJsaWNhdGlvbiB0byBub3QgaGF2ZSBhbnkgZXhpc3RpbmcgdGFibGUgb3Ig c2NoZW1hIGxpc3QuCiAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgpAQCAtMTY3LDggKzE3 Miw4IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5u YW1lPC9yZXBsYWNlYWJsZT4gUkVTRVQKIAogICA8cGFyYT4KICAgIFlvdSBtdXN0IG93biB0aGUg cHVibGljYXRpb24gdG8gdXNlIDxjb21tYW5kPkFMVEVSIFBVQkxJQ0FUSU9OPC9jb21tYW5kPi4K LSAgIEFkZGluZyBhIHRhYmxlIHRvIGEgcHVibGljYXRpb24gYWRkaXRpb25hbGx5IHJlcXVpcmVz IG93bmluZyB0aGF0IHRhYmxlLgotICAgVGhlIDxsaXRlcmFsPkFERCBBTEwgVEFCTEVTPC9saXRl cmFsPiwKKyAgIEFkZGluZyBvciBleGNsdWRpbmcgYSB0YWJsZSB0byBhIHB1YmxpY2F0aW9uIGFk ZGl0aW9uYWxseSByZXF1aXJlcyBvd25pbmcKKyAgIHRoYXQgdGFibGUuIFRoZSA8bGl0ZXJhbD5B REQgQUxMIFRBQkxFUzwvbGl0ZXJhbD4sCiAgICA8bGl0ZXJhbD5BREQgVEFCTEVTIElOIFNDSEVN QTwvbGl0ZXJhbD4sCiAgICA8bGl0ZXJhbD5TRVQgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4g dG8gYSBwdWJsaWNhdGlvbiBhbmQKICAgIDxsaXRlcmFsPlJFU0VUPC9saXRlcmFsPiBvZiBwdWJs aWNhdGlvbiByZXF1aXJlcyB0aGUgaW52b2tpbmcgdXNlciB0byBiZSBhCkBAIC0yMTAsNyArMjE1 LDggQEAgQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5h bWU8L3JlcGxhY2VhYmxlPiBSRVNFVAogICAgICAgdGFibGUgbmFtZSwgb25seSB0aGF0IHRhYmxl IGlzIGFmZmVjdGVkLiAgSWYgPGxpdGVyYWw+T05MWTwvbGl0ZXJhbD4gaXMgbm90CiAgICAgICBz cGVjaWZpZWQsIHRoZSB0YWJsZSBhbmQgYWxsIGl0cyBkZXNjZW5kYW50IHRhYmxlcyAoaWYgYW55 KSBhcmUKICAgICAgIGFmZmVjdGVkLiAgT3B0aW9uYWxseSwgPGxpdGVyYWw+KjwvbGl0ZXJhbD4g Y2FuIGJlIHNwZWNpZmllZCBhZnRlciB0aGUgdGFibGUKLSAgICAgIG5hbWUgdG8gZXhwbGljaXRs eSBpbmRpY2F0ZSB0aGF0IGRlc2NlbmRhbnQgdGFibGVzIGFyZSBpbmNsdWRlZC4KKyAgICAgIG5h bWUgdG8gZXhwbGljaXRseSBpbmRpY2F0ZSB0aGF0IGRlc2NlbmRhbnQgdGFibGVzIGFyZSBhZmZl Y3RlZC4gRm9yCisgICAgICBwYXJ0aXRpb25lZCB0YWJsZXMsIDxsaXRlcmFsPk9OTFk8L2xpdGVy YWw+IGRvZXMgbm90IGhhdmUgYW55IGVmZmVjdC4KICAgICAgPC9wYXJhPgogCiAgICAgIDxwYXJh PgpAQCAtMjkzLDYgKzI5OSwxNCBAQCBBTFRFUiBQVUJMSUNBVElPTiBzYWxlc19wdWJsaWNhdGlv biBBREQgVEFCTEVTIElOIFNDSEVNQSBtYXJrZXRpbmcsIHNhbGVzOwogPC9wcm9ncmFtbGlzdGlu Zz4KICAgPC9wYXJhPgogCisgIDxwYXJhPgorICAgQWx0ZXIgcHVibGljYXRpb24gPHN0cnVjdG5h bWU+cHJvZHVjdGlvbl9wdWJsaWNhdGlvbjwvc3RydWN0bmFtZT4gdG8gcHVibGlzaAorICAgYWxs IHRhYmxlcyBleGNlcHQgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+IGFuZAorICAgPHN0 cnVjdG5hbWU+ZGVwYXJ0bWVudHM8L3N0cnVjdG5hbWU+OgorPHByb2dyYW1saXN0aW5nPgorQUxU RVIgUFVCTElDQVRJT04gcHJvZHVjdGlvbl9wdWJsaWNhdGlvbiBBREQgQUxMIFRBQkxFUyBFWENF UFQgKHVzZXJzLCBkZXBhcnRtZW50cyk7Cis8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KKwogICA8 cGFyYT4KICAgIEFkZCB0YWJsZXMgPHN0cnVjdG5hbWU+dXNlcnM8L3N0cnVjdG5hbWU+LAogICAg PHN0cnVjdG5hbWU+ZGVwYXJ0bWVudHM8L3N0cnVjdG5hbWU+IGFuZCBzY2hlbWEKZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCmluZGV4IDc1YTUwOGJlYmZhLi4xMjgwODM3 Zjk5NSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlvbi5zZ21sCkBAIC0zMiwx MiArMzIsMTYgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KIAogPHBocmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX2FsbF9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpcyBvbmUg b2Y6PC9waHJhc2U+CiAKLSAgICBBTEwgVEFCTEVTCisgICAgQUxMIFRBQkxFUyBbIEVYQ0VQVCBb IFRBQkxFIF0gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfZXhjZXB0aW9u X29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLiBdICkgXQogICAgIEFMTCBTRVFVRU5DRVMKIAog PHBocmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX2FuZF9jb2x1 bW5zPC9yZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+CiAKICAgICBbIE9OTFkgXSA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgKCA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBb LCAuLi4gXSApIF0gWyBXSEVSRSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHBy ZXNzaW9uPC9yZXBsYWNlYWJsZT4gKSBdCisKKzxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnRhYmxlX2V4Y2VwdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpczo8 L3BocmFzZT4KKworICAgIFsgT05MWSBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj50 YWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWyAqIF0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5vcHNp c2Rpdj4KIApAQCAtMTY0LDcgKzE2OCw5IEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVwbGFjZWFi bGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgPGxpc3RpdGVtPgog ICAgICA8cGFyYT4KICAgICAgIE1hcmtzIHRoZSBwdWJsaWNhdGlvbiBhcyBvbmUgdGhhdCByZXBs aWNhdGVzIGNoYW5nZXMgZm9yIGFsbCB0YWJsZXMgaW4KLSAgICAgIHRoZSBkYXRhYmFzZSwgaW5j bHVkaW5nIHRhYmxlcyBjcmVhdGVkIGluIHRoZSBmdXR1cmUuCisgICAgICB0aGUgZGF0YWJhc2Us IGluY2x1ZGluZyB0YWJsZXMgY3JlYXRlZCBpbiB0aGUgZnV0dXJlLiBJZgorICAgICAgPGxpdGVy YWw+RVhDRVBUIFRBQkxFPC9saXRlcmFsPiBpcyBzcGVjaWZpZWQsIHRoZW4gZXhjbHVkZSByZXBs aWNhdGluZworICAgICAgdGhlIGNoYW5nZXMgZm9yIHRoZSBzcGVjaWZpZWQgdGFibGVzLgogICAg ICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpAQCAtMTg0LDYg KzE5MCwzNSBAQCBDUkVBVEUgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPgogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRy eT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXB1YmxpY2F0aW9uLXBhcmFtcy1m b3ItZXhjZXB0LXRhYmxlIj4KKyAgICA8dGVybT48bGl0ZXJhbD5FWENFUFQgVEFCTEU8L2xpdGVy YWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGNsYXVz ZSBzcGVjaWZpZXMgYSBsaXN0IG9mIHRhYmxlcyB0byBiZSBleGNsdWRlZCBmcm9tIHRoZQorICAg ICAgcHVibGljYXRpb24uIEl0IGNhbiBvbmx5IGJlIHVzZWQgd2l0aCA8bGl0ZXJhbD5GT1IgQUxM IFRBQkxFUzwvbGl0ZXJhbD4uCisgICAgICBJZiA8bGl0ZXJhbD5PTkxZPC9saXRlcmFsPiBpcyBz cGVjaWZpZWQgYmVmb3JlIHRoZSB0YWJsZSBuYW1lLCBvbmx5CisgICAgICB0aGF0IHRhYmxlIGlz IGV4Y2x1ZGVkIGZyb20gdGhlIHB1YmxpY2F0aW9uLiBJZiA8bGl0ZXJhbD5PTkxZPC9saXRlcmFs PiBpcworICAgICAgbm90IHNwZWNpZmllZCwgdGhlIHRhYmxlIGFuZCBhbGwgaXRzIGRlc2NlbmRh bnQgdGFibGVzIChpZiBhbnkpIGFyZQorICAgICAgZXhjbHVkZWQuIE9wdGlvbmFsbHksIDxsaXRl cmFsPio8L2xpdGVyYWw+IGNhbiBiZSBzcGVjaWZpZWQgYWZ0ZXIgdGhlCisgICAgICB0YWJsZSBu YW1lIHRvIGV4cGxpY2l0bHkgaW5kaWNhdGUgdGhhdCBkZXNjZW5kYW50IHRhYmxlcyBhcmUgZXhj bHVkZWQuCisgICAgIDwvcGFyYT4KKyAgICAgPHBhcmE+CisgICAgICBUaGUgcGFydGl0aW9uZWQg dGFibGUgb3IgaXRzIHBhcnRpdGlvbnMgYXJlIGV4Y2x1ZGVkIGZyb20gdGhlIHB1YmxpY2F0aW9u CisgICAgICBiYXNlZCBvbiB0aGUgcGFyYW1ldGVyIDxsaXRlcmFsPnB1Ymxpc2hfdmlhX3BhcnRp dGlvbl9yb290PC9saXRlcmFsPi4KKyAgICAgIFdoZW4gPGxpdGVyYWw+cHVibGlzaF92aWFfcGFy dGl0aW9uX3Jvb3Q8L2xpdGVyYWw+IGlzIHNldCB0bworICAgICAgPGxpdGVyYWw+dHJ1ZTwvbGl0 ZXJhbD4sIHNwZWNpZnlpbmcgYSByb290IHBhcnRpdGlvbmVkIHRhYmxlIGluCisgICAgICA8bGl0 ZXJhbD5FWENFUFQgVEFCTEU8L2xpdGVyYWw+IGV4Y2x1ZGVzIGl0IGFuZCBhbGwgaXRzIHBhcnRp dGlvbnMgZnJvbQorICAgICAgcmVwbGljYXRpb24uIFNwZWNpZnlpbmcgYSBsZWFmIHBhcnRpdGlv biBoYXMgbm8gZWZmZWN0LCBhcyBpdHMgY2hhbmdlcyBhcmUKKyAgICAgIHN0aWxsIHJlcGxpY2F0 ZWQgdmlhIHRoZSByb290IHBhcnRpdGlvbmVkIHRhYmxlLiBXaGVuCisgICAgICA8bGl0ZXJhbD5w dWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdDwvbGl0ZXJhbD4gaXMgc2V0IHRvCisgICAgICA8bGl0 ZXJhbD5mYWxzZTwvbGl0ZXJhbD4sIHNwZWNpZnlpbmcgYSBwYXJ0aXRpb25lZCB0YWJsZSBvciBu b24tbGVhZgorICAgICAgcGFydGl0aW9uIGhhcyBubyBlZmZlY3QsIGFzIGNoYW5nZXMgYXJlIHJl cGxpY2F0ZWQgdmlhIHRoZSBsZWFmCisgICAgICBwYXJ0aXRpb25zLiBTcGVjaWZ5aW5nIGEgbGVh ZiBwYXJ0aXRpb24gZXhjbHVkZXMgb25seSB0aGF0IHBhcnRpdGlvbiBmcm9tCisgICAgICByZXBs aWNhdGlvbi4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRy eT4KKwogICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXB1YmxpY2F0aW9uLXBhcmFtcy13 aXRoIj4KICAgICA8dGVybT48bGl0ZXJhbD5XSVRIICggPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnB1YmxpY2F0aW9uX3BhcmFtZXRlcjwvcmVwbGFjZWFibGU+IFs9IDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+XSBbLCAuLi4gXSApPC9saXRl cmFsPjwvdGVybT4KICAgICA8bGlzdGl0ZW0+CkBAIC00NjcsNiArNTAyLDE0IEBAIENSRUFURSBQ VUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEZPUiBUQUJMRSB1c2VycywgZGVwYXJ0 bWVudHMsIFRBQkxFUyBJCiBDUkVBVEUgUFVCTElDQVRJT04gc2FsZXNfcHVibGljYXRpb24gRk9S IFRBQkxFUyBJTiBTQ0hFTUEgbWFya2V0aW5nLCBzYWxlczsKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9w YXJhPgogCisgIDxwYXJhPgorICAgQ3JlYXRlIGEgcHVibGljYXRpb24gdGhhdCBwdWJsaXNoZXMg YWxsIGNoYW5nZXMgaW4gYWxsIHRoZSB0YWJsZXMgZXhjZXB0CisgICA8c3RydWN0bmFtZT51c2Vy czwvc3RydWN0bmFtZT4gYW5kIDxzdHJ1Y3RuYW1lPmRlcGFydG1lbnRzPC9zdHJ1Y3RuYW1lPjoK Kzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBQVUJMSUNBVElPTiBteXB1YmxpY2F0aW9uIEZPUiBB TEwgVEFCTEVTIEVYQ0VQVCAodXNlcnMsIGRlcGFydG1lbnRzKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+ CisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIENyZWF0ZSBhIHB1YmxpY2F0aW9uIHRoYXQgcHVi bGlzaGVzIGFsbCBjaGFuZ2VzIGZvciB0YWJsZSA8c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFt ZT4sCiAgICBidXQgcmVwbGljYXRlcyBvbmx5IGNvbHVtbnMgPHN0cnVjdG5hbWU+dXNlcl9pZDwv c3RydWN0bmFtZT4gYW5kCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNn bWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKaW5kZXggZjU2YzcwMjYzZTAuLmYx YjNjZTM4MGI2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BzcWwtcmVmLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sCkBAIC0yMTAzLDggKzIxMDMsOSBAQCBT RUxFQ1QgJDEgXHBhcnNlIHN0bXQxCiAgICAgICAgIGxpc3RlZC4KICAgICAgICAgSWYgPGxpdGVy YWw+eDwvbGl0ZXJhbD4gaXMgYXBwZW5kZWQgdG8gdGhlIGNvbW1hbmQgbmFtZSwgdGhlIHJlc3Vs dHMKICAgICAgICAgYXJlIGRpc3BsYXllZCBpbiBleHBhbmRlZCBtb2RlLgotICAgICAgICBJZiA8 bGl0ZXJhbD4rPC9saXRlcmFsPiBpcyBhcHBlbmRlZCB0byB0aGUgY29tbWFuZCBuYW1lLCB0aGUg dGFibGVzIGFuZAotICAgICAgICBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHB1YmxpY2F0 aW9uIGFyZSBzaG93biBhcyB3ZWxsLgorICAgICAgICBJZiA8bGl0ZXJhbD4rPC9saXRlcmFsPiBp cyBhcHBlbmRlZCB0byB0aGUgY29tbWFuZCBuYW1lLCB0aGUgdGFibGVzLAorICAgICAgICBleGNs dWRlZCB0YWJsZXMsIGFuZCBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCBlYWNoIHB1YmxpY2F0aW9u IGFyZSBzaG93bgorICAgICAgICBhcyB3ZWxsLgogICAgICAgICA8L3BhcmE+CiAgICAgICAgIDwv bGlzdGl0ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfcHVibGljYXRpb24uYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVibGlj YXRpb24uYwppbmRleCAwOTk0MjIwYzUzZC4uMzljMmNjMmJmNDMgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfcHVibGljYXRpb24uYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9n L3BnX3B1YmxpY2F0aW9uLmMKQEAgLTM1NCw3ICszNTQsOCBAQCBHZXRQdWJQYXJ0aXRpb25PcHRp b25SZWxhdGlvbnMoTGlzdCAqcmVzdWx0LCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQs CiAgKiBhbmNlc3RvciBpcyBhdCB0aGUgZW5kIG9mIHRoZSBsaXN0LgogICovCiBPaWQKLUdldFRv cE1vc3RBbmNlc3RvckluUHVibGljYXRpb24oT2lkIHB1Ym9pZCwgTGlzdCAqYW5jZXN0b3JzLCBp bnQgKmFuY2VzdG9yX2xldmVsKQorR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihPaWQg cHVib2lkLCBMaXN0ICphbmNlc3RvcnMsCisJCQkJCQkJCWludCAqYW5jZXN0b3JfbGV2ZWwsIGJv b2wgcHViYWxsdGFibGVzKQogewogCUxpc3RDZWxsICAgKmxjOwogCU9pZAkJCXRvcG1vc3RfcmVs aWQgPSBJbnZhbGlkT2lkOwpAQCAtMzY2LDMyICszNjcsNDQgQEAgR2V0VG9wTW9zdEFuY2VzdG9y SW5QdWJsaWNhdGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsIGludCAqYW5jZXN0b3Jf bGV2ZWwKIAlmb3JlYWNoKGxjLCBhbmNlc3RvcnMpCiAJewogCQlPaWQJCQlhbmNlc3RvciA9IGxm aXJzdF9vaWQobGMpOwotCQlMaXN0CSAgICphcHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlv bnMoYW5jZXN0b3IpOwotCQlMaXN0CSAgICphc2NoZW1hUHViaWRzID0gTklMOworCQlMaXN0CSAg ICphcHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoYW5jZXN0b3IsIGZhbHNlKTsKKwkJ TGlzdAkgICAqYXNjaGVtYXB1YmlkcyA9IE5JTDsKKwkJTGlzdAkgICAqYWV4Y2VwdHB1YmlkcyA9 IE5JTDsKKwkJYm9vbAkJc2V0X3RvcCA9IGZhbHNlOwogCiAJCWxldmVsKys7CiAKLQkJaWYgKGxp c3RfbWVtYmVyX29pZChhcHViaWRzLCBwdWJvaWQpKQorCQkvKiBjaGVjayBpZiBtZW1iZXIgb2Yg dGFibGUgcHVibGljYXRpb25zICovCisJCXNldF90b3AgPSBsaXN0X21lbWJlcl9vaWQoYXB1Ymlk cywgcHVib2lkKTsKKwkJaWYgKCFzZXRfdG9wKQogCQl7Ci0JCQl0b3Btb3N0X3JlbGlkID0gYW5j ZXN0b3I7CisJCQlhc2NoZW1hcHViaWRzID0gR2V0U2NoZW1hUHVibGljYXRpb25zKGdldF9yZWxf bmFtZXNwYWNlKGFuY2VzdG9yKSk7CiAKLQkJCWlmIChhbmNlc3Rvcl9sZXZlbCkKLQkJCQkqYW5j ZXN0b3JfbGV2ZWwgPSBsZXZlbDsKKwkJCS8qIGNoZWNrIGlmIG1lbWJlciBvZiBzY2hlbWEgcHVi bGljYXRpb25zICovCisJCQlzZXRfdG9wID0gbGlzdF9tZW1iZXJfb2lkKGFzY2hlbWFwdWJpZHMs IHB1Ym9pZCk7CisKKwkJCS8qCisJCQkgKiBJZiB0aGUgcHVibGljYXRpb24gaXMgYWxsIHRhYmxl cyBwdWJsaWNhdGlvbiBhbmQgdGhlIHRhYmxlIGlzCisJCQkgKiBub3QgcGFydCBvZiBleGNlcHRp b24gdGFibGVzLgorCQkJICovCisJCQlpZiAoIXNldF90b3AgJiYgcHViYWxsdGFibGVzKQorCQkJ eworCQkJCWFleGNlcHRwdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNlc3Rvciwg dHJ1ZSk7CisJCQkJc2V0X3RvcCA9ICFsaXN0X21lbWJlcl9vaWQoYWV4Y2VwdHB1YmlkcywgcHVi b2lkKTsKKwkJCX0KIAkJfQotCQllbHNlCisKKwkJaWYgKHNldF90b3ApCiAJCXsKLQkJCWFzY2hl bWFQdWJpZHMgPSBHZXRTY2hlbWFQdWJsaWNhdGlvbnMoZ2V0X3JlbF9uYW1lc3BhY2UoYW5jZXN0 b3IpKTsKLQkJCWlmIChsaXN0X21lbWJlcl9vaWQoYXNjaGVtYVB1YmlkcywgcHVib2lkKSkKLQkJ CXsKLQkJCQl0b3Btb3N0X3JlbGlkID0gYW5jZXN0b3I7CisJCQl0b3Btb3N0X3JlbGlkID0gYW5j ZXN0b3I7CiAKLQkJCQlpZiAoYW5jZXN0b3JfbGV2ZWwpCi0JCQkJCSphbmNlc3Rvcl9sZXZlbCA9 IGxldmVsOwotCQkJfQorCQkJaWYgKGFuY2VzdG9yX2xldmVsKQorCQkJCSphbmNlc3Rvcl9sZXZl bCA9IGxldmVsOwogCQl9CiAKIAkJbGlzdF9mcmVlKGFwdWJpZHMpOwotCQlsaXN0X2ZyZWUoYXNj aGVtYVB1Ymlkcyk7CisJCWxpc3RfZnJlZShhc2NoZW1hcHViaWRzKTsKKwkJbGlzdF9mcmVlKGFl eGNlcHRwdWJpZHMpOwogCX0KIAogCXJldHVybiB0b3Btb3N0X3JlbGlkOwpAQCAtNDY2LDYgKzQ3 OSwxNyBAQCBwdWJsaWNhdGlvbl9hZGRfcmVsYXRpb24oT2lkIHB1YmlkLCBQdWJsaWNhdGlvblJl bEluZm8gKnByaSwKIAkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJlbCksIHB1 Yi0+bmFtZSkpKTsKIAl9CiAKKwkvKgorCSAqIENoZWNrIGZvciBwYXJ0aXRpb25zIG9mIHBhcnRp dGlvbmVkIHRhYmxlIHdoaWNoIGFyZSBzcGVjaWZpZWQgd2l0aAorCSAqIEVYQ0VQVCBjbGF1c2Ug YW5kIHBhcnRpdGlvbmVkIHRhYmxlIGlzIHB1Ymxpc2hlZCB3aXRoCisJICogcHVibGlzaF92aWFf cGFydGl0aW9uX3Jvb3QgPSB0cnVlLgorCSAqLworCWlmIChwdWItPmFsbHRhYmxlcyAmJiBwcmkt PmV4Y2VwdCAmJiB0YXJnZXRyZWwtPnJkX3JlbC0+cmVsaXNwYXJ0aXRpb24gJiYKKwkJcHViLT5w dWJ2aWFyb290KQorCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJKGVycm1zZygicGFydGl0aW9uIFwi JXNcIiB3aWxsIGJlIHJlcGxpY2F0ZWQgYXMgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgaXMg XCIlc1wiIiwKKwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhcmdldHJlbCksICJ0cnVl IikpKTsKKwogCWNoZWNrX3B1YmxpY2F0aW9uX2FkZF9yZWxhdGlvbih0YXJnZXRyZWwpOwogCiAJ LyogVmFsaWRhdGUgYW5kIHRyYW5zbGF0ZSBjb2x1bW4gbmFtZXMgaW50byBhIEJpdG1hcHNldCBv ZiBhdHRudW1zLiAqLwpAQCAtNDgyLDYgKzUwNiw4IEBAIHB1YmxpY2F0aW9uX2FkZF9yZWxhdGlv bihPaWQgcHViaWQsIFB1YmxpY2F0aW9uUmVsSW5mbyAqcHJpLAogCQlPYmplY3RJZEdldERhdHVt KHB1YmlkKTsKIAl2YWx1ZXNbQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfcHJyZWxpZCAtIDFdID0K IAkJT2JqZWN0SWRHZXREYXR1bShyZWxpZCk7CisJdmFsdWVzW0FudW1fcGdfcHVibGljYXRpb25f cmVsX3ByZXhjZXB0IC0gMV0gPQorCQlCb29sR2V0RGF0dW0ocHJpLT5leGNlcHQpOwogCiAJLyog QWRkIHF1YWxpZmljYXRpb25zLCBpZiBhdmFpbGFibGUgKi8KIAlpZiAocHJpLT53aGVyZUNsYXVz ZSAhPSBOVUxMKQpAQCAtNzQ5LDkgKzc3NSw5IEBAIHB1YmxpY2F0aW9uX2FkZF9zY2hlbWEoT2lk IHB1YmlkLCBPaWQgc2NoZW1haWQsIGJvb2wgaWZfbm90X2V4aXN0cykKIAlyZXR1cm4gbXlzZWxm OwogfQogCi0vKiBHZXRzIGxpc3Qgb2YgcHVibGljYXRpb24gb2lkcyBmb3IgYSByZWxhdGlvbiAq LworLyogR2V0cyBsaXN0IG9mIHB1YmxpY2F0aW9uIG9pZHMgZm9yIGEgcmVsYXRpb24gdGhhdCBt YXRjaGVzIHRoZSBleGNlcHRfZmxhZyAqLwogTGlzdCAqCi1HZXRSZWxhdGlvblB1YmxpY2F0aW9u cyhPaWQgcmVsaWQpCitHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhPaWQgcmVsaWQsIGJvb2wgZXhj ZXB0X2ZsYWcpCiB7CiAJTGlzdAkgICAqcmVzdWx0ID0gTklMOwogCUNhdENMaXN0ICAgKnB1YnJl bGxpc3Q7CkBAIC03NjUsNyArNzkxLDggQEAgR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJl bGlkKQogCQlIZWFwVHVwbGUJdHVwID0gJnB1YnJlbGxpc3QtPm1lbWJlcnNbaV0tPnR1cGxlOwog CQlPaWQJCQlwdWJpZCA9ICgoRm9ybV9wZ19wdWJsaWNhdGlvbl9yZWwpIEdFVFNUUlVDVCh0dXAp KS0+cHJwdWJpZDsKIAotCQlyZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1bHQsIHB1YmlkKTsKKwkJ aWYgKGV4Y2VwdF9mbGFnID09ICgoRm9ybV9wZ19wdWJsaWNhdGlvbl9yZWwpIEdFVFNUUlVDVCh0 dXApKS0+cHJleGNlcHQpCisJCQlyZXN1bHQgPSBsYXBwZW5kX29pZChyZXN1bHQsIHB1YmlkKTsK IAl9CiAKIAlSZWxlYXNlU3lzQ2FjaGVMaXN0KHB1YnJlbGxpc3QpOwpAQCAtNzc0LDEzICs4MDEs MTQgQEAgR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoT2lkIHJlbGlkKQogfQogCiAvKgotICogR2V0 cyBsaXN0IG9mIHJlbGF0aW9uIG9pZHMgZm9yIGEgcHVibGljYXRpb24uCisgKiBHZXRzIGxpc3Qg b2YgcmVsYXRpb24gb2lkcyBmb3IgYSBwdWJsaWNhdGlvbiB0aGF0IG1hdGNoZXMgdGhlIGV4Y2Vw dF9mbGFnLgogICoKICAqIFRoaXMgc2hvdWxkIG9ubHkgYmUgdXNlZCBGT1IgVEFCTEUgcHVibGlj YXRpb25zLCB0aGUgRk9SIEFMTCBUQUJMRVMvU0VRVUVOQ0VTCiAgKiBzaG91bGQgdXNlIEdldEFs bFB1YmxpY2F0aW9uUmVsYXRpb25zKCkuCiAgKi8KIExpc3QgKgotR2V0UHVibGljYXRpb25SZWxh dGlvbnMoT2lkIHB1YmlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQpCitHZXRQdWJs aWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9w dCwKKwkJCQkJCWJvb2wgZXhjZXB0X2ZsYWcpCiB7CiAJTGlzdAkgICAqcmVzdWx0OwogCVJlbGF0 aW9uCXB1YnJlbHNyZWw7CkBAIC04MDUsOCArODMzLDExIEBAIEdldFB1YmxpY2F0aW9uUmVsYXRp b25zKE9pZCBwdWJpZCwgUHVibGljYXRpb25QYXJ0T3B0IHB1Yl9wYXJ0b3B0KQogCQlGb3JtX3Bn X3B1YmxpY2F0aW9uX3JlbCBwdWJyZWw7CiAKIAkJcHVicmVsID0gKEZvcm1fcGdfcHVibGljYXRp b25fcmVsKSBHRVRTVFJVQ1QodHVwKTsKLQkJcmVzdWx0ID0gR2V0UHViUGFydGl0aW9uT3B0aW9u UmVsYXRpb25zKHJlc3VsdCwgcHViX3BhcnRvcHQsCi0JCQkJCQkJCQkJCQlwdWJyZWwtPnBycmVs aWQpOworCisJCWlmIChleGNlcHRfZmxhZyA9PSBwdWJyZWwtPnByZXhjZXB0KQorCQkJcmVzdWx0 ID0gR2V0UHViUGFydGl0aW9uT3B0aW9uUmVsYXRpb25zKHJlc3VsdCwgcHViX3BhcnRvcHQsCisJ CQkJCQkJCQkJCQkJcHVicmVsLT5wcnJlbGlkKTsKKwogCX0KIAogCXN5c3RhYmxlX2VuZHNjYW4o c2Nhbik7CkBAIC04NjYsMTMgKzg5NywxOSBAQCBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvbnModm9p ZCkKICAqIHB1YmxpY2F0aW9uLgogICovCiBMaXN0ICoKLUdldEFsbFB1YmxpY2F0aW9uUmVsYXRp b25zKGNoYXIgcmVsa2luZCwgYm9vbCBwdWJ2aWFyb290KQorR2V0QWxsUHVibGljYXRpb25SZWxh dGlvbnMoT2lkIHB1YmlkLCBjaGFyIHJlbGtpbmQsIGJvb2wgcHVidmlhcm9vdCkKIHsKIAlSZWxh dGlvbgljbGFzc1JlbDsKIAlTY2FuS2V5RGF0YSBrZXlbMV07CiAJVGFibGVTY2FuRGVzYyBzY2Fu OwogCUhlYXBUdXBsZQl0dXBsZTsKIAlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CisJTGlzdAkgICAq ZXhjZXB0bGlzdDsKKworCWV4Y2VwdGxpc3QgPSBHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhwdWJp ZCwgcHVidmlhcm9vdCA/CisJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRfQUxMIDoKKwkJCQkJ CQkJCQkgUFVCTElDQVRJT05fUEFSVF9ST09ULAorCQkJCQkJCQkJCSB0cnVlKTsKIAogCUFzc2Vy dCghKHJlbGtpbmQgPT0gUkVMS0lORF9TRVFVRU5DRSAmJiBwdWJ2aWFyb290KSk7CiAKQEAgLTg5 MSw3ICs5MjgsOCBAQCBHZXRBbGxQdWJsaWNhdGlvblJlbGF0aW9ucyhjaGFyIHJlbGtpbmQsIGJv b2wgcHVidmlhcm9vdCkKIAkJT2lkCQkJcmVsaWQgPSByZWxGb3JtLT5vaWQ7CiAKIAkJaWYgKGlz X3B1Ymxpc2hhYmxlX2NsYXNzKHJlbGlkLCByZWxGb3JtKSAmJgotCQkJIShyZWxGb3JtLT5yZWxp c3BhcnRpdGlvbiAmJiBwdWJ2aWFyb290KSkKKwkJCSEocmVsRm9ybS0+cmVsaXNwYXJ0aXRpb24g JiYgcHVidmlhcm9vdCkgJiYKKwkJCSFsaXN0X21lbWJlcl9vaWQoZXhjZXB0bGlzdCwgcmVsaWQp KQogCQkJcmVzdWx0ID0gbGFwcGVuZF9vaWQocmVzdWx0LCByZWxpZCk7CiAJfQogCkBAIC05MTIs NyArOTUwLDggQEAgR2V0QWxsUHVibGljYXRpb25SZWxhdGlvbnMoY2hhciByZWxraW5kLCBib29s IHB1YnZpYXJvb3QpCiAJCQlPaWQJCQlyZWxpZCA9IHJlbEZvcm0tPm9pZDsKIAogCQkJaWYgKGlz X3B1Ymxpc2hhYmxlX2NsYXNzKHJlbGlkLCByZWxGb3JtKSAmJgotCQkJCSFyZWxGb3JtLT5yZWxp c3BhcnRpdGlvbikKKwkJCQkhcmVsRm9ybS0+cmVsaXNwYXJ0aXRpb24gJiYKKwkJCQkhbGlzdF9t ZW1iZXJfb2lkKGV4Y2VwdGxpc3QsIHJlbGlkKSkKIAkJCQlyZXN1bHQgPSBsYXBwZW5kX29pZChy ZXN1bHQsIHJlbGlkKTsKIAkJfQogCkBAIC0xMTY4LDcgKzEyMDcsOCBAQCBwZ19nZXRfcHVibGlj YXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkgKiB0aG9zZS4gT3RoZXJ3aXNlLCBn ZXQgdGhlIHBhcnRpdGlvbmVkIHRhYmxlIGl0c2VsZi4KIAkJCSAqLwogCQkJaWYgKHB1Yl9lbGVt LT5hbGx0YWJsZXMpCi0JCQkJcHViX2VsZW1fdGFibGVzID0gR2V0QWxsUHVibGljYXRpb25SZWxh dGlvbnMoUkVMS0lORF9SRUxBVElPTiwKKwkJCQlwdWJfZWxlbV90YWJsZXMgPSBHZXRBbGxQdWJs aWNhdGlvblJlbGF0aW9ucyhwdWJfZWxlbS0+b2lkLAorCQkJCQkJCQkJCQkJCQkJIFJFTEtJTkRf UkVMQVRJT04sCiAJCQkJCQkJCQkJCQkJCQkgcHViX2VsZW0tPnB1YnZpYXJvb3QpOwogCQkJZWxz ZQogCQkJewpAQCAtMTE3OCw3ICsxMjE4LDggQEAgcGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcyhQ R19GVU5DVElPTl9BUkdTKQogCQkJCXJlbGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1 Yl9lbGVtLT5vaWQsCiAJCQkJCQkJCQkJCQkgcHViX2VsZW0tPnB1YnZpYXJvb3QgPwogCQkJCQkJ CQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCA6Ci0JCQkJCQkJCQkJCQkgUFVCTElDQVRJT05f UEFSVF9MRUFGKTsKKwkJCQkJCQkJCQkJCSBQVUJMSUNBVElPTl9QQVJUX0xFQUYsCisJCQkJCQkJ CQkJCQkgZmFsc2UpOwogCQkJCXNjaGVtYXJlbGlkcyA9IEdldEFsbFNjaGVtYVB1YmxpY2F0aW9u UmVsYXRpb25zKHB1Yl9lbGVtLT5vaWQsCiAJCQkJCQkJCQkJCQkJCQkJcHViX2VsZW0tPnB1YnZp YXJvb3QgPwogCQkJCQkJCQkJCQkJCQkJCVBVQkxJQ0FUSU9OX1BBUlRfUk9PVCA6CkBAIC0xMzY3 LDcgKzE0MDgsNyBAQCBwZ19nZXRfcHVibGljYXRpb25fc2VxdWVuY2VzKFBHX0ZVTkNUSU9OX0FS R1MpCiAJCXB1YmxpY2F0aW9uID0gR2V0UHVibGljYXRpb25CeU5hbWUocHVibmFtZSwgZmFsc2Up OwogCiAJCWlmIChwdWJsaWNhdGlvbi0+YWxsc2VxdWVuY2VzKQotCQkJc2VxdWVuY2VzID0gR2V0 QWxsUHVibGljYXRpb25SZWxhdGlvbnMoUkVMS0lORF9TRVFVRU5DRSwgZmFsc2UpOworCQkJc2Vx dWVuY2VzID0gR2V0QWxsUHVibGljYXRpb25SZWxhdGlvbnMocHVibGljYXRpb24tPm9pZCwgUkVM S0lORF9TRVFVRU5DRSwgZmFsc2UpOwogCiAJCWZ1bmNjdHgtPnVzZXJfZmN0eCA9IHNlcXVlbmNl czsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYwppbmRleCA3YTkwMjBhZDQz Zi4uOWExN2RmYzlkMzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0 aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCkBA IC0xNzAsNiArMTcwLDM5IEBAIHBhcnNlX3B1YmxpY2F0aW9uX29wdGlvbnMoUGFyc2VTdGF0ZSAq cHN0YXRlLAogCX0KIH0KIAorLyoKKyAqIENvbnZlcnQgdGhlIFB1YmxpY2F0aW9uT2JqU3BlYyBs aXN0IHdoaWNoIGlzIHBhcnQgb2YKKyAqIFB1YmxpY2F0aW9uQWxsT2JqU3BlY1R5cGUgbGlzdCBp bnRvIFB1YmxpY2F0aW9uVGFibGUgbGlzdC4KKyAqLworc3RhdGljIHZvaWQKK09iamVjdHNJbkFs bFB1YmxpY2F0aW9uVG9PaWRzKExpc3QgKnB1YmFsbG9ianNwZWNfbGlzdCwKKwkJCQkJCQkgIFBh cnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqKnJlbHMpCit7CisJaWYgKCFwdWJhbGxvYmpzcGVjX2xp c3QpCisJCXJldHVybjsKKworCWZvcmVhY2hfcHRyKFB1YmxpY2F0aW9uQWxsT2JqU3BlYywgcHVi YWxsb2JqLCBwdWJhbGxvYmpzcGVjX2xpc3QpCisJeworCQlzd2l0Y2ggKHB1YmFsbG9iai0+cHVi b2JqdHlwZSkKKwkJeworCQkJY2FzZSBQVUJMSUNBVElPTl9BTExfU0VRVUVOQ0VTOgorCQkJCWJy ZWFrOworCQkJY2FzZSBQVUJMSUNBVElPTl9BTExfVEFCTEVTOgorCQkJCWZvcmVhY2hfcHRyKFB1 YmxpY2F0aW9uT2JqU3BlYywgcHVib2JqLCBwdWJhbGxvYmotPmV4Y2VwdF9vYmplY3RzKQorCQkJ CXsKKwkJCQkJcHVib2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gdHJ1ZTsKKwkJCQkJKnJlbHMgPSBs YXBwZW5kKCpyZWxzLCBwdWJvYmotPnB1YnRhYmxlKTsKKwkJCQl9CisJCQkJYnJlYWs7CisJCQlk ZWZhdWx0OgorCQkJCS8qIHNob3VsZG4ndCBoYXBwZW4gKi8KKwkJCQllbG9nKEVSUk9SLCAiaW52 YWxpZCBwdWJsaWNhdGlvbiBvYmplY3QgdHlwZSAlZCIsCisJCQkJCSBwdWJhbGxvYmotPnB1Ym9i anR5cGUpOworCQkJCWJyZWFrOworCQl9CisJfQorfQorCiAvKgogICogQ29udmVydCB0aGUgUHVi bGljYXRpb25PYmpTcGVjVHlwZSBsaXN0IGludG8gc2NoZW1hIG9pZCBsaXN0IGFuZAogICogUHVi bGljYXRpb25UYWJsZSBsaXN0LgpAQCAtMTk0LDYgKzIyNywxMSBAQCBPYmplY3RzSW5QdWJsaWNh dGlvblRvT2lkcyhMaXN0ICpwdWJvYmpzcGVjX2xpc3QsIFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJ c3dpdGNoIChwdWJvYmotPnB1Ym9ianR5cGUpCiAJCXsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpf VEFCTEU6CisJCQkJcHVib2JqLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gZmFsc2U7CisJCQkJKnJlbHMg PSBsYXBwZW5kKCpyZWxzLCBwdWJvYmotPnB1YnRhYmxlKTsKKwkJCQlicmVhazsKKwkJCWNhc2Ug UFVCTElDQVRJT05PQkpfRVhDRVBUX1RBQkxFOgorCQkJCXB1Ym9iai0+cHVidGFibGUtPmV4Y2Vw dCA9IHRydWU7CiAJCQkJKnJlbHMgPSBsYXBwZW5kKCpyZWxzLCBwdWJvYmotPnB1YnRhYmxlKTsK IAkJCQlicmVhazsKIAkJCWNhc2UgUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX1NDSEVNQToKQEAg LTI2OCw3ICszMDYsNyBAQCBjb250YWluX2ludmFsaWRfcmZjb2x1bW5fd2Fsa2VyKE5vZGUgKm5v ZGUsIHJmX2NvbnRleHQgKmNvbnRleHQpCiAgKi8KIGJvb2wKIHB1Yl9yZl9jb250YWluc19pbnZh bGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMs Ci0JCQkJCQkJICAgYm9vbCBwdWJ2aWFyb290KQorCQkJCQkJCSAgIGJvb2wgcHVidmlhcm9vdCwg Ym9vbCBwdWJhbGx0YWJsZXMpCiB7CiAJSGVhcFR1cGxlCXJmdHVwbGU7CiAJT2lkCQkJcmVsaWQg PSBSZWxhdGlvbkdldFJlbGlkKHJlbGF0aW9uKTsKQEAgLTI5NSw3ICszMzMsOCBAQCBwdWJfcmZf Y29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxhdGlvbiwgTGlz dCAqYW5jZXN0b3JzLAogCWlmIChwdWJ2aWFyb290ICYmIHJlbGF0aW9uLT5yZF9yZWwtPnJlbGlz cGFydGl0aW9uKQogCXsKIAkJcHVibGlzaF9hc19yZWxpZAotCQkJPSBHZXRUb3BNb3N0QW5jZXN0 b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwpOworCQkJPSBHZXRUb3BNb3N0 QW5jZXN0b3JJblB1YmxpY2F0aW9uKHB1YmlkLCBhbmNlc3RvcnMsIE5VTEwsCisJCQkJCQkJCQkJ CSAgcHViYWxsdGFibGVzKTsKIAogCQlpZiAoIU9pZElzVmFsaWQocHVibGlzaF9hc19yZWxpZCkp CiAJCQlwdWJsaXNoX2FzX3JlbGlkID0gcmVsaWQ7CkBAIC0zNTUsNyArMzk0LDcgQEAgcHViX3Jm X2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sIExp c3QgKmFuY2VzdG9ycywKIGJvb2wKIHB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHVi aWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNlc3RvcnMsCiAJCQkJCQkJYm9vbCBwdWJ2 aWFyb290LCBjaGFyIHB1YmdlbmNvbHNfdHlwZSwKLQkJCQkJCQlib29sICppbnZhbGlkX2NvbHVt bl9saXN0LAorCQkJCQkJCWJvb2wgcHViYWxsdGFibGVzLCBib29sICppbnZhbGlkX2NvbHVtbl9s aXN0LAogCQkJCQkJCWJvb2wgKmludmFsaWRfZ2VuX2NvbCkKIHsKIAlPaWQJCQlyZWxpZCA9IFJl bGF0aW9uR2V0UmVsaWQocmVsYXRpb24pOwpAQCAtMzc5LDcgKzQxOCw4IEBAIHB1Yl9jb250YWlu c19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICphbmNl c3RvcnMsCiAJICovCiAJaWYgKHB1YnZpYXJvb3QgJiYgcmVsYXRpb24tPnJkX3JlbC0+cmVsaXNw YXJ0aXRpb24pCiAJewotCQlwdWJsaXNoX2FzX3JlbGlkID0gR2V0VG9wTW9zdEFuY2VzdG9ySW5Q dWJsaWNhdGlvbihwdWJpZCwgYW5jZXN0b3JzLCBOVUxMKTsKKwkJcHVibGlzaF9hc19yZWxpZCA9 IEdldFRvcE1vc3RBbmNlc3RvckluUHVibGljYXRpb24ocHViaWQsIGFuY2VzdG9ycywKKwkJCQkJ CQkJCQkJCQkJICAgTlVMTCwgcHViYWxsdGFibGVzKTsKIAogCQlpZiAoIU9pZElzVmFsaWQocHVi bGlzaF9hc19yZWxpZCkpCiAJCQlwdWJsaXNoX2FzX3JlbGlkID0gcmVsaWQ7CkBAIC01MTUsNyAr NTU1LDcgQEAgSW52YWxpZGF0ZVB1YlJlbFN5bmNDYWNoZShPaWQgcHViaWQsIGJvb2wgcHViYWxs dGFibGVzKQogCQkgKiBpdHMgbGVhdmVzLgogCQkgKi8KIAkJcmVsaWRzID0gR2V0UHVibGljYXRp b25SZWxhdGlvbnMocHViaWQsCi0JCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRfQUxMKTsKKwkJ CQkJCQkJCQkgUFVCTElDQVRJT05fUEFSVF9BTEwsIGZhbHNlKTsKIAkJc2NoZW1hcmVsaWRzID0g R2V0QWxsU2NoZW1hUHVibGljYXRpb25SZWxhdGlvbnMocHViaWQsCiAJCQkJCQkJCQkJCQkJCVBV QkxJQ0FUSU9OX1BBUlRfQUxMKTsKIApAQCAtOTIzLDU2ICs5NjMsNTQgQEAgQ3JlYXRlUHVibGlj YXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJ LyogTWFrZSB0aGUgY2hhbmdlcyB2aXNpYmxlLiAqLwogCUNvbW1hbmRDb3VudGVySW5jcmVtZW50 KCk7CiAKLQkvKiBBc3NvY2lhdGUgb2JqZWN0cyB3aXRoIHRoZSBwdWJsaWNhdGlvbi4gKi8KIAlp ZiAoc3RtdC0+Zm9yX2FsbF90YWJsZXMpCi0JewotCQkvKgotCQkgKiBJbnZhbGlkYXRlIHJlbGNh Y2hlIHNvIHRoYXQgcHVibGljYXRpb24gaW5mbyBpcyByZWJ1aWx0LiBTZXF1ZW5jZXMKLQkJICog cHVibGljYXRpb24gZG9lc24ndCByZXF1aXJlIGludmFsaWRhdGlvbiwgYXMgcmVwbGljYSBpZGVu dGl0eQotCQkgKiBjaGVja3MgZG9uJ3QgYXBwbHkgdG8gdGhlbS4KLQkJICovCi0JCUNhY2hlSW52 YWxpZGF0ZVJlbGNhY2hlQWxsKCk7Ci0JfQorCQlPYmplY3RzSW5BbGxQdWJsaWNhdGlvblRvT2lk cyhzdG10LT5wdWJvYmplY3RzLCBwc3RhdGUsICZyZWxhdGlvbnMpOworCiAJZWxzZSBpZiAoIXN0 bXQtPmZvcl9hbGxfc2VxdWVuY2VzKQotCXsKIAkJT2JqZWN0c0luUHVibGljYXRpb25Ub09pZHMo c3RtdC0+cHVib2JqZWN0cywgcHN0YXRlLCAmcmVsYXRpb25zLAogCQkJCQkJCQkgICAmc2NoZW1h aWRsaXN0KTsKIAotCQkvKiBGT1IgVEFCTEVTIElOIFNDSEVNQSByZXF1aXJlcyBzdXBlcnVzZXIg Ki8KLQkJaWYgKHNjaGVtYWlkbGlzdCAhPSBOSUwgJiYgIXN1cGVydXNlcigpKQotCQkJZXJlcG9y dChFUlJPUiwKLQkJCQkJZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0UpLAot CQkJCQllcnJtc2coIm11c3QgYmUgc3VwZXJ1c2VyIHRvIGNyZWF0ZSBGT1IgVEFCTEVTIElOIFND SEVNQSBwdWJsaWNhdGlvbiIpKTsKKwkvKiBGT1IgVEFCTEVTIElOIFNDSEVNQSByZXF1aXJlcyBz dXBlcnVzZXIgKi8KKwlpZiAoc2NoZW1haWRsaXN0ICE9IE5JTCAmJiAhc3VwZXJ1c2VyKCkpCisJ CWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxF R0UpLAorCQkJCWVycm1zZygibXVzdCBiZSBzdXBlcnVzZXIgdG8gY3JlYXRlIEZPUiBUQUJMRVMg SU4gU0NIRU1BIHB1YmxpY2F0aW9uIikpOwogCi0JCWlmIChyZWxhdGlvbnMgIT0gTklMKQotCQl7 Ci0JCQlMaXN0CSAgICpyZWxzOworCWlmIChyZWxhdGlvbnMgIT0gTklMKQorCXsKKwkJTGlzdAkg ICAqcmVsczsKIAotCQkJcmVscyA9IE9wZW5UYWJsZUxpc3QocmVsYXRpb25zKTsKLQkJCVRyYW5z Zm9ybVB1YldoZXJlQ2xhdXNlcyhyZWxzLCBwc3RhdGUtPnBfc291cmNldGV4dCwKLQkJCQkJCQkJ CSBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CisJCXJlbHMgPSBPcGVuVGFibGVMaXN0KHJl bGF0aW9ucyk7CisJCVRyYW5zZm9ybVB1YldoZXJlQ2xhdXNlcyhyZWxzLCBwc3RhdGUtPnBfc291 cmNldGV4dCwKKwkJCQkJCQkJIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290KTsKIAotCQkJQ2hl Y2tQdWJSZWxhdGlvbkNvbHVtbkxpc3Qoc3RtdC0+cHVibmFtZSwgcmVscywKLQkJCQkJCQkJCSAg IHNjaGVtYWlkbGlzdCAhPSBOSUwsCi0JCQkJCQkJCQkgICBwdWJsaXNoX3ZpYV9wYXJ0aXRpb25f cm9vdCk7CisJCUNoZWNrUHViUmVsYXRpb25Db2x1bW5MaXN0KHN0bXQtPnB1Ym5hbWUsIHJlbHMs CisJCQkJCQkJCSAgIHNjaGVtYWlkbGlzdCAhPSBOSUwsCisJCQkJCQkJCSAgIHB1Ymxpc2hfdmlh X3BhcnRpdGlvbl9yb290KTsKIAotCQkJUHVibGljYXRpb25BZGRUYWJsZXMocHVib2lkLCByZWxz LCB0cnVlLCBOVUxMKTsKLQkJCUNsb3NlVGFibGVMaXN0KHJlbHMpOwotCQl9CisJCVB1YmxpY2F0 aW9uQWRkVGFibGVzKHB1Ym9pZCwgcmVscywgdHJ1ZSwgTlVMTCk7CisJCUNsb3NlVGFibGVMaXN0 KHJlbHMpOworCX0KIAotCQlpZiAoc2NoZW1haWRsaXN0ICE9IE5JTCkKLQkJewotCQkJLyoKLQkJ CSAqIFNjaGVtYSBsb2NrIGlzIGhlbGQgdW50aWwgdGhlIHB1YmxpY2F0aW9uIGlzIGNyZWF0ZWQg dG8gcHJldmVudAotCQkJICogY29uY3VycmVudCBzY2hlbWEgZGVsZXRpb24uCi0JCQkgKi8KLQkJ CUxvY2tTY2hlbWFMaXN0KHNjaGVtYWlkbGlzdCk7Ci0JCQlQdWJsaWNhdGlvbkFkZFNjaGVtYXMo cHVib2lkLCBzY2hlbWFpZGxpc3QsIHRydWUsIE5VTEwpOwotCQl9CisJaWYgKHNjaGVtYWlkbGlz dCAhPSBOSUwpCisJeworCQkvKgorCQkgKiBTY2hlbWEgbG9jayBpcyBoZWxkIHVudGlsIHRoZSBw dWJsaWNhdGlvbiBpcyBjcmVhdGVkIHRvIHByZXZlbnQKKwkJICogY29uY3VycmVudCBzY2hlbWEg ZGVsZXRpb24uCisJCSAqLworCQlMb2NrU2NoZW1hTGlzdChzY2hlbWFpZGxpc3QpOworCQlQdWJs aWNhdGlvbkFkZFNjaGVtYXMocHVib2lkLCBzY2hlbWFpZGxpc3QsIHRydWUsIE5VTEwpOwogCX0K IAogCXRhYmxlX2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CiAKKwkvKiBBc3NvY2lhdGUg b2JqZWN0cyB3aXRoIHRoZSBwdWJsaWNhdGlvbi4gKi8KKwlpZiAoc3RtdC0+Zm9yX2FsbF90YWJs ZXMpCisJeworCQkvKiBJbnZhbGlkYXRlIHJlbGNhY2hlIHNvIHRoYXQgcHVibGljYXRpb24gaW5m byBpcyByZWJ1aWx0LiAqLworCQlDYWNoZUludmFsaWRhdGVSZWxjYWNoZUFsbCgpOworCX0KKwog CUludm9rZU9iamVjdFBvc3RDcmVhdGVIb29rKFB1YmxpY2F0aW9uUmVsYXRpb25JZCwgcHVib2lk LCAwKTsKIAogCWlmICh3YWxfbGV2ZWwgIT0gV0FMX0xFVkVMX0xPR0lDQUwpCkBAIC0xMDQxLDcg KzEwNzksNyBAQCBBbHRlclB1YmxpY2F0aW9uT3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIEFs dGVyUHVibGljYXRpb25TdG10ICpzdG10LAogCQkJCQkJICAgQWNjZXNzU2hhcmVMb2NrKTsKIAog CQlyb290X3JlbGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmZvcm0tPm9pZCwKLQkJ CQkJCQkJCQkJICBQVUJMSUNBVElPTl9QQVJUX1JPT1QpOworCQkJCQkJCQkJCQkgIFBVQkxJQ0FU SU9OX1BBUlRfUk9PVCwgZmFsc2UpOwogCiAJCWZvcmVhY2gobGMsIHJvb3RfcmVsaWRzKQogCQl7 CkBAIC0xMTYxLDcgKzExOTksNyBAQCBBbHRlclB1YmxpY2F0aW9uT3B0aW9ucyhQYXJzZVN0YXRl ICpwc3RhdGUsIEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LAogCQkgKi8KIAkJaWYgKHJvb3Rf cmVsaWRzID09IE5JTCkKIAkJCXJlbGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmZv cm0tPm9pZCwKLQkJCQkJCQkJCQkJIFBVQkxJQ0FUSU9OX1BBUlRfQUxMKTsKKwkJCQkJCQkJCQkJ IFBVQkxJQ0FUSU9OX1BBUlRfQUxMLCBmYWxzZSk7CiAJCWVsc2UKIAkJewogCQkJLyoKQEAgLTEz MDcsNyArMTM0NSwxMCBAQCBBbHRlclB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAqcHN0YXRl LCBBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAlQdWJsaWNhdGlvbkRyb3BTY2hlbWFzKHB1 YmlkLCBzY2hlbWFpZHMsIHRydWUpOwogCiAJLyogR2V0IGFsbCByZWxhdGlvbnMgYXNzb2NpYXRl ZCB3aXRoIHRoZSBwdWJsaWNhdGlvbiAqLwotCXJlbGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRp b25zKHB1YmlkLCBQVUJMSUNBVElPTl9QQVJUX1JPT1QpOworCWlmIChwdWJmb3JtLT5wdWJhbGx0 YWJsZXMpCisJCXJlbGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLCBQVUJMSUNB VElPTl9QQVJUX1JPT1QsIHRydWUpOworCWVsc2UKKwkJcmVsaWRzID0gR2V0UHVibGljYXRpb25S ZWxhdGlvbnMocHViaWQsIFBVQkxJQ0FUSU9OX1BBUlRfUk9PVCwgZmFsc2UpOwogCiAJZm9yZWFj aF9vaWQocmVsaWQsIHJlbGlkcykKIAl7CkBAIC0xMzUxLDcgKzEzOTIsNyBAQCBDaGVja0FsdGVy UHVibGljYXRpb25BbGxUYWJsZXMoSGVhcFR1cGxlIHR1cCkKIAkJCQkJICAgTmFtZVN0cihwdWJm b3JtLT5wdWJuYW1lKSksCiAJCQkJZXJyZGV0YWlsKCJBTEwgVEFCTEVTIGNhbm5vdCBiZSBhZGRl ZCB3aGVuIHNjaGVtYXMgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24uIikpOwog Ci0JcHVib2JqcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmZvcm0tPm9pZCwgUFVCTElD QVRJT05fUEFSVF9ST09UKTsKKwlwdWJvYmpzID0gR2V0UHVibGljYXRpb25SZWxhdGlvbnMocHVi Zm9ybS0+b2lkLCBQVUJMSUNBVElPTl9QQVJUX1JPT1QsIGZhbHNlKTsKIAlpZiAobGlzdF9sZW5n dGgocHVib2JqcykpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJZXJyY29kZShFUlJDT0RFX09CSkVD VF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKQEAgLTE0MzYsNyArMTQ3Nyw4IEBAIEFsdGVy UHVibGljYXRpb25UYWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0 dXAsCiAJZWxzZQkJCQkJCS8qIEFQX1NldE9iamVjdHMgKi8KIAl7CiAJCUxpc3QJICAgKm9sZHJl bGlkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmlkLAotCQkJCQkJCQkJCQkJCQlQVUJM SUNBVElPTl9QQVJUX1JPT1QpOworCQkJCQkJCQkJCQkJCQlQVUJMSUNBVElPTl9QQVJUX1JPT1Qs CisJCQkJCQkJCQkJCQkJCWZhbHNlKTsKIAkJTGlzdAkgICAqZGVscmVscyA9IE5JTDsKIAkJTGlz dENlbGwgICAqb2xkbGM7CiAKQEAgLTE1MzcsNiArMTU3OSw3IEBAIEFsdGVyUHVibGljYXRpb25U YWJsZXMoQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAsCiAJCQkJb2xk cmVsID0gcGFsbG9jKHNpemVvZihQdWJsaWNhdGlvblJlbEluZm8pKTsKIAkJCQlvbGRyZWwtPndo ZXJlQ2xhdXNlID0gTlVMTDsKIAkJCQlvbGRyZWwtPmNvbHVtbnMgPSBOSUw7CisJCQkJb2xkcmVs LT5leGNlcHQgPSBmYWxzZTsKIAkJCQlvbGRyZWwtPnJlbGF0aW9uID0gdGFibGVfb3BlbihvbGRy ZWxpZCwKIAkJCQkJCQkJCQkJICBTaGFyZVVwZGF0ZUV4Y2x1c2l2ZUxvY2spOwogCQkJCWRlbHJl bHMgPSBsYXBwZW5kKGRlbHJlbHMsIG9sZHJlbCk7CkBAIC0xNTg3LDcgKzE2MzAsOCBAQCBBbHRl clB1YmxpY2F0aW9uU2NoZW1hcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwKIAkJTGlzdENl bGwgICAqbGM7CiAJCUxpc3QJICAgKnJlbG9pZHM7CiAKLQkJcmVsb2lkcyA9IEdldFB1YmxpY2F0 aW9uUmVsYXRpb25zKHB1YmZvcm0tPm9pZCwgUFVCTElDQVRJT05fUEFSVF9ST09UKTsKKwkJcmVs b2lkcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1YmZvcm0tPm9pZCwgUFVCTElDQVRJT05f UEFSVF9ST09ULAorCQkJCQkJCQkJCSAgZmFsc2UpOwogCiAJCWZvcmVhY2gobGMsIHJlbG9pZHMp CiAJCXsKQEAgLTE5NTQsNiArMTk5OCw3IEBAIE9wZW5UYWJsZUxpc3QoTGlzdCAqdGFibGVzKQog CQlwdWJfcmVsLT5yZWxhdGlvbiA9IHJlbDsKIAkJcHViX3JlbC0+d2hlcmVDbGF1c2UgPSB0LT53 aGVyZUNsYXVzZTsKIAkJcHViX3JlbC0+Y29sdW1ucyA9IHQtPmNvbHVtbnM7CisJCXB1Yl9yZWwt PmV4Y2VwdCA9IHQtPmV4Y2VwdDsKIAkJcmVscyA9IGxhcHBlbmQocmVscywgcHViX3JlbCk7CiAJ CXJlbGlkcyA9IGxhcHBlbmRfb2lkKHJlbGlkcywgbXlyZWxpZCk7CiAKQEAgLTIwMjYsNiArMjA3 MSw3IEBAIE9wZW5UYWJsZUxpc3QoTGlzdCAqdGFibGVzKQogCiAJCQkJLyogY2hpbGQgaW5oZXJp dHMgY29sdW1uIGxpc3QgZnJvbSBwYXJlbnQgKi8KIAkJCQlwdWJfcmVsLT5jb2x1bW5zID0gdC0+ Y29sdW1uczsKKwkJCQlwdWJfcmVsLT5leGNlcHQgPSB0LT5leGNlcHQ7CiAJCQkJcmVscyA9IGxh cHBlbmQocmVscywgcHViX3JlbCk7CiAJCQkJcmVsaWRzID0gbGFwcGVuZF9vaWQocmVsaWRzLCBj aGlsZHJlbGlkKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRz LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCAwN2U1Yjk1NzgyZS4u MTRmZDc4MmQwNWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5j CisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC04NjUxLDcgKzg2NTEs NyBAQCBBVEV4ZWNTZXRFeHByZXNzaW9uKEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24g cmVsLCBjb25zdCBjaGFyICpjb2xOYW1lLAogCSAqIGV4cHJlc3Npb25zLgogCSAqLwogCWlmIChh dHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMICYmCi0JCUdldFJlbGF0 aW9uUHVibGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSkgIT0gTklMKQorCQlHZXRSZWxh dGlvblB1YmxpY2F0aW9ucyhSZWxhdGlvbkdldFJlbGlkKHJlbCksIGZhbHNlKSAhPSBOSUwpCiAJ CWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JU RUQpLAogCQkJCSBlcnJtc2coIkFMVEVSIFRBQkxFIC8gU0VUIEVYUFJFU1NJT04gaXMgbm90IHN1 cHBvcnRlZCBmb3IgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBpbiB0YWJsZXMgdGhhdCBhcmUg cGFydCBvZiBhIHB1YmxpY2F0aW9uIiksCkBAIC0xODg0Niw3ICsxODg0Niw3IEBAIEFUUHJlcENo YW5nZVBlcnNpc3RlbmNlKEFsdGVyZWRUYWJsZUluZm8gKnRhYiwgUmVsYXRpb24gcmVsLCBib29s IHRvTG9nZ2VkKQogCSAqIFVOTE9HR0VELCBhcyBVTkxPR0dFRCB0YWJsZXMgY2FuJ3QgYmUgcHVi bGlzaGVkLgogCSAqLwogCWlmICghdG9Mb2dnZWQgJiYKLQkJR2V0UmVsYXRpb25QdWJsaWNhdGlv bnMoUmVsYXRpb25HZXRSZWxpZChyZWwpKSAhPSBOSUwpCisJCWxpc3RfbGVuZ3RoKEdldFJlbGF0 aW9uUHVibGljYXRpb25zKFJlbGF0aW9uR2V0UmVsaWQocmVsKSwgZmFsc2UpKSA+IDApCiAJCWVy ZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJ U0lURV9TVEFURSksCiAJCQkJIGVycm1zZygiY2Fubm90IGNoYW5nZSB0YWJsZSBcIiVzXCIgdG8g dW5sb2dnZWQgYmVjYXVzZSBpdCBpcyBwYXJ0IG9mIGEgcHVibGljYXRpb24iLApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkK aW5kZXggOWQ2NDhjY2I0N2IuLjJhZTUxZTViZmUxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTQ1NCw2ICs0 NTQsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFt ZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCQkJCVRyaWdnZXJUcmFuc2l0aW9ucyBU cmlnZ2VyUmVmZXJlbmNpbmcKIAkJCQl2YWN1dW1fcmVsYXRpb25fbGlzdCBvcHRfdmFjdXVtX3Jl bGF0aW9uX2xpc3QKIAkJCQlkcm9wX29wdGlvbl9saXN0IHB1Yl9vYmpfbGlzdCBwdWJfYWxsX29i al90eXBlX2xpc3QKKwkJCQlleGNlcHRfcHViX29ial9saXN0IG9wdF9leGNlcHRfY2xhdXNlCiAK ICV0eXBlIDxyZXRjbGF1c2U+IHJldHVybmluZ19jbGF1c2UKICV0eXBlIDxub2RlPglyZXR1cm5p bmdfb3B0aW9uCkBAIC01OTEsNiArNTkyLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVW aWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0 eXBlIDxub2RlPgl2YXJfdmFsdWUgem9uZV92YWx1ZQogJXR5cGUgPHJvbGVzcGVjPiBhdXRoX2lk ZW50IFJvbGVTcGVjIG9wdF9ncmFudGVkX2J5CiAldHlwZSA8cHVibGljYXRpb25vYmplY3RzcGVj PiBQdWJsaWNhdGlvbk9ialNwZWMKKyV0eXBlIDxwdWJsaWNhdGlvbm9iamVjdHNwZWM+IEV4Y2Vw dFB1YmxpY2F0aW9uT2JqU3BlYwogJXR5cGUgPHB1YmxpY2F0aW9uYWxsb2JqZWN0c3BlYz4gUHVi bGljYXRpb25BbGxPYmpTcGVjCiAKICV0eXBlIDxrZXl3b3JkPiB1bnJlc2VydmVkX2tleXdvcmQg dHlwZV9mdW5jX25hbWVfa2V5d29yZApAQCAtMTA3NjEsNiArMTA3NjMsNyBAQCBDcmVhdGVQdWJs aWNhdGlvblN0bXQ6CiAJCQkJCUNyZWF0ZVB1YmxpY2F0aW9uU3RtdCAqbiA9IG1ha2VOb2RlKENy ZWF0ZVB1YmxpY2F0aW9uU3RtdCk7CiAKIAkJCQkJbi0+cHVibmFtZSA9ICQzOworCQkJCQluLT5w dWJvYmplY3RzID0gJDU7CiAJCQkJCXByZXByb2Nlc3NfcHViX2FsbF9vYmp0eXBlX2xpc3QoJDUs ICZuLT5mb3JfYWxsX3RhYmxlcywKIAkJCQkJCQkJCQkJCQkmbi0+Zm9yX2FsbF9zZXF1ZW5jZXMs CiAJCQkJCQkJCQkJCQkJeXlzY2FubmVyKTsKQEAgLTEwODAxLDYgKzEwODA0LDcgQEAgUHVibGlj YXRpb25PYmpTcGVjOgogCQkJCQkkJC0+cHVidGFibGUtPnJlbGF0aW9uID0gJDI7CiAJCQkJCSQk LT5wdWJ0YWJsZS0+Y29sdW1ucyA9ICQzOwogCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNl ID0gJDQ7CisJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOwogCQkJCX0KIAkJCXwgVEFCTEVTIElOX1Ag U0NIRU1BIENvbElkCiAJCQkJewpAQCAtMTA4NzcsMTAgKzEwODgxLDEzIEBAIHB1Yl9vYmpfbGlz dDoJUHVibGljYXRpb25PYmpTcGVjCiAJOwogCiBQdWJsaWNhdGlvbkFsbE9ialNwZWM6Ci0JCQkJ QUxMIFRBQkxFUworCQkJCUFMTCBUQUJMRVMgb3B0X2V4Y2VwdF9jbGF1c2UKIAkJCQkJewogCQkJ CQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbkFsbE9ialNwZWMpOwogCQkJCQkJJCQtPnB1Ym9i anR5cGUgPSBQVUJMSUNBVElPTl9BTExfVEFCTEVTOworCQkJCQkJJCQtPmV4Y2VwdF9vYmplY3Rz ID0gKExpc3QgKikgJDM7CisJCQkJCQlpZigkJC0+ZXhjZXB0X29iamVjdHMgIT0gTlVMTCkKKwkJ CQkJCQlwcmVwcm9jZXNzX3B1Ym9ial9saXN0KCQkLT5leGNlcHRfb2JqZWN0cywgeXlzY2FubmVy KTsKIAkJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOwogCQkJCQl9CiAJCQkJfCBBTEwgU0VRVUVOQ0VT CkBAIC0xMDg5Nyw2ICsxMDkwNCwyOCBAQCBwdWJfYWxsX29ial90eXBlX2xpc3Q6CVB1YmxpY2F0 aW9uQWxsT2JqU3BlYwogCQkJCQl7ICQkID0gbGFwcGVuZCgkMSwgJDMpOyB9CiAJOwogCitvcHRf ZXhjZXB0X2NsYXVzZToKKwkJCUVYQ0VQVCBvcHRfdGFibGUgJygnIGV4Y2VwdF9wdWJfb2JqX2xp c3QgJyknCXsgJCQgPSAkNDsgfQorCQkJfCAvKkVNUFRZKi8JCQkJCQkJCQkJeyAkJCA9IE5JTDsg fQorCQk7CisKK0V4Y2VwdFB1YmxpY2F0aW9uT2JqU3BlYzoKKwkJCSByZWxhdGlvbl9leHByCisJ CQkJeworCQkJCQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CisJCQkJCSQkLT5w dWJvYmp0eXBlID0gUFVCTElDQVRJT05PQkpfRVhDRVBUX1RBQkxFOworCQkJCQkkJC0+cHVidGFi bGUgPSBtYWtlTm9kZShQdWJsaWNhdGlvblRhYmxlKTsKKwkJCQkJJCQtPnB1YnRhYmxlLT5leGNl cHQgPSB0cnVlOworCQkJCQkkJC0+cHVidGFibGUtPnJlbGF0aW9uID0gJDE7CisJCQkJCSQkLT5s b2NhdGlvbiA9IEAxOworCQkJCX0KKwk7CisKK2V4Y2VwdF9wdWJfb2JqX2xpc3Q6IEV4Y2VwdFB1 YmxpY2F0aW9uT2JqU3BlYworCQkJCQl7ICQkID0gbGlzdF9tYWtlMSgkMSk7IH0KKwkJCXwgZXhj ZXB0X3B1Yl9vYmpfbGlzdCAnLCcgRXhjZXB0UHVibGljYXRpb25PYmpTcGVjCisJCQkJCXsgJCQg PSBsYXBwZW5kKCQxLCAkMyk7IH0KKwk7CiAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICoKQEAg LTEwOTEzLDcgKzEwOTQyLDcgQEAgcHViX2FsbF9vYmpfdHlwZV9saXN0OglQdWJsaWNhdGlvbkFs bE9ialNwZWMKICAqCQlUQUJMRSB0YWJsZV9uYW1lIFssIC4uLl0KICAqCQlUQUJMRVMgSU4gU0NI RU1BIHNjaGVtYV9uYW1lIFssIC4uLl0KICAqCi0gKiBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIEFE RCBBTEwgVEFCTEVTCisgKiBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIEFERCBBTEwgVEFCTEVTIFtF WENFUFQgW1RBQkxFXSAodGFibGVfbmFtZSBbLCAuLi5dKV0KICAqCiAgKiBBTFRFUiBQVUJMSUNB VElPTiBuYW1lIFJFU0VUCiAgKgpAQCAtMTA5NTgsMTAgKzEwOTg3LDExIEBAIEFsdGVyUHVibGlj YXRpb25TdG10OgogCQkJCQluLT5hY3Rpb24gPSBBUF9Ecm9wT2JqZWN0czsKIAkJCQkJJCQgPSAo Tm9kZSAqKSBuOwogCQkJCX0KLQkJCXwgQUxURVIgUFVCTElDQVRJT04gbmFtZSBBRERfUCBBTEwg VEFCTEVTCisJCQl8IEFMVEVSIFBVQkxJQ0FUSU9OIG5hbWUgQUREX1AgQUxMIFRBQkxFUyBvcHRf ZXhjZXB0X2NsYXVzZQogCQkJCXsKIAkJCQkJQWx0ZXJQdWJsaWNhdGlvblN0bXQgKm4gPSBtYWtl Tm9kZShBbHRlclB1YmxpY2F0aW9uU3RtdCk7CiAJCQkJCW4tPnB1Ym5hbWUgPSAkMzsKKwkJCQkJ bi0+cHVib2JqZWN0cyA9IChMaXN0ICopICQ3OwogCQkJCQluLT5mb3JfYWxsX3RhYmxlcyA9IHRy dWU7CiAJCQkJCW4tPmFjdGlvbiA9IEFQX0FkZE9iamVjdHM7CiAJCQkJCSQkID0gKE5vZGUgKilu OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQu YyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKaW5kZXggOTQy ZTFhYmRiNTguLmE5NTkzYzVkOWRhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9wZ291dHB1dC9wZ291dHB1dC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0 cHV0L3Bnb3V0cHV0LmMKQEAgLTIwODQsNyArMjA4NCw4IEBAIGdldF9yZWxfc3luY19lbnRyeShQ R091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCWlmICghZW50cnktPnJlcGxp Y2F0ZV92YWxpZCkKIAl7CiAJCU9pZAkJCXNjaGVtYUlkID0gZ2V0X3JlbF9uYW1lc3BhY2UocmVs aWQpOwotCQlMaXN0CSAgICpwdWJpZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhyZWxpZCk7 CisJCUxpc3QJICAgKnB1YmlkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlkLCBmYWxz ZSk7CisJCUxpc3QJICAgKmV4Y2VwdFRhYmxlUHViaWRzID0gR2V0UmVsYXRpb25QdWJsaWNhdGlv bnMocmVsaWQsIHRydWUpOwogCiAJCS8qCiAJCSAqIFdlIGRvbid0IGFjcXVpcmUgYSBsb2NrIG9u IHRoZSBuYW1lc3BhY2Ugc3lzdGVtIHRhYmxlIGFzIHdlIGJ1aWxkCkBAIC0yMTk1LDIyICsyMTk2 LDYgQEAgZ2V0X3JlbF9zeW5jX2VudHJ5KFBHT3V0cHV0RGF0YSAqZGF0YSwgUmVsYXRpb24gcmVs YXRpb24pCiAJCQlPaWQJCQlwdWJfcmVsaWQgPSByZWxpZDsKIAkJCWludAkJCWFuY2VzdG9yX2xl dmVsID0gMDsKIAotCQkJLyoKLQkJCSAqIElmIHRoaXMgaXMgYSBGT1IgQUxMIFRBQkxFUyBwdWJs aWNhdGlvbiwgcGljayB0aGUgcGFydGl0aW9uCi0JCQkgKiByb290IGFuZCBzZXQgdGhlIGFuY2Vz dG9yIGxldmVsIGFjY29yZGluZ2x5LgotCQkJICovCi0JCQlpZiAocHViLT5hbGx0YWJsZXMpCi0J CQl7Ci0JCQkJcHVibGlzaCA9IHRydWU7Ci0JCQkJaWYgKHB1Yi0+cHVidmlhcm9vdCAmJiBhbV9w YXJ0aXRpb24pCi0JCQkJewotCQkJCQlMaXN0CSAgICphbmNlc3RvcnMgPSBnZXRfcGFydGl0aW9u X2FuY2VzdG9ycyhyZWxpZCk7Ci0KLQkJCQkJcHViX3JlbGlkID0gbGxhc3Rfb2lkKGFuY2VzdG9y cyk7Ci0JCQkJCWFuY2VzdG9yX2xldmVsID0gbGlzdF9sZW5ndGgoYW5jZXN0b3JzKTsKLQkJCQl9 Ci0JCQl9Ci0KIAkJCWlmICghcHVibGlzaCkKIAkJCXsKIAkJCQlib29sCQlhbmNlc3Rvcl9wdWJs aXNoZWQgPSBmYWxzZTsKQEAgLTIyMjksNyArMjIxNCw4IEBAIGdldF9yZWxfc3luY19lbnRyeShQ R091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9uKQogCiAJCQkJCWFuY2VzdG9yID0g R2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihwdWItPm9pZCwKIAkJCQkJCQkJCQkJCQkJ CSAgIGFuY2VzdG9ycywKLQkJCQkJCQkJCQkJCQkJCSAgICZsZXZlbCk7CisJCQkJCQkJCQkJCQkJ CQkgICAmbGV2ZWwsCisJCQkJCQkJCQkJCQkJCQkgICBwdWItPmFsbHRhYmxlcyk7CiAKIAkJCQkJ aWYgKGFuY2VzdG9yICE9IEludmFsaWRPaWQpCiAJCQkJCXsKQEAgLTIyNDQsNiArMjIzMCw4IEBA IGdldF9yZWxfc3luY19lbnRyeShQR091dHB1dERhdGEgKmRhdGEsIFJlbGF0aW9uIHJlbGF0aW9u KQogCiAJCQkJaWYgKGxpc3RfbWVtYmVyX29pZChwdWJpZHMsIHB1Yi0+b2lkKSB8fAogCQkJCQls aXN0X21lbWJlcl9vaWQoc2NoZW1hUHViaWRzLCBwdWItPm9pZCkgfHwKKwkJCQkJKHB1Yi0+YWxs dGFibGVzICYmCisJCQkJCSAhbGlzdF9tZW1iZXJfb2lkKGV4Y2VwdFRhYmxlUHViaWRzLCBwdWIt Pm9pZCkpIHx8CiAJCQkJCWFuY2VzdG9yX3B1Ymxpc2hlZCkKIAkJCQkJcHVibGlzaCA9IHRydWU7 CiAJCQl9CkBAIC0yMzIyLDYgKzIzMTAsNyBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXRE YXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikKIAogCQlsaXN0X2ZyZWUocHViaWRzKTsKIAkJ bGlzdF9mcmVlKHNjaGVtYVB1Ymlkcyk7CisJCWxpc3RfZnJlZShleGNlcHRUYWJsZVB1Ymlkcyk7 CiAJCWxpc3RfZnJlZShyZWxfcHVibGljYXRpb25zKTsKIAogCQllbnRyeS0+cmVwbGljYXRlX3Zh bGlkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hl LmMgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCmluZGV4IDkxNWQwYmM5MDg0 Li45NmRkMGNjZjQxYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2Fj aGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCkBAIC01Nzk0LDYg KzU3OTQsOCBAQCB2b2lkCiBSZWxhdGlvbkJ1aWxkUHVibGljYXRpb25EZXNjKFJlbGF0aW9uIHJl bGF0aW9uLCBQdWJsaWNhdGlvbkRlc2MgKnB1YmRlc2MpCiB7CiAJTGlzdAkgICAqcHVib2lkczsK KwlMaXN0CSAgICphbGx0YWJsZXNwdWJvaWRzOworCUxpc3QJICAgKmV4Y2VwdHB1Ym9pZHMgPSBO SUw7CiAJTGlzdENlbGwgICAqbGM7CiAJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CiAJT2lkCQkJc2No ZW1haWQ7CkBAIC01ODMxLDkgKzU4MzMsMTAgQEAgUmVsYXRpb25CdWlsZFB1YmxpY2F0aW9uRGVz YyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJkZXNjKQogCXB1YmRlc2Mt PmdlbmNvbHNfdmFsaWRfZm9yX2RlbGV0ZSA9IHRydWU7CiAKIAkvKiBGZXRjaCB0aGUgcHVibGlj YXRpb24gbWVtYmVyc2hpcCBpbmZvLiAqLwotCXB1Ym9pZHMgPSBHZXRSZWxhdGlvblB1YmxpY2F0 aW9ucyhyZWxpZCk7CisJcHVib2lkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25zKHJlbGlkLCBm YWxzZSk7CiAJc2NoZW1haWQgPSBSZWxhdGlvbkdldE5hbWVzcGFjZShyZWxhdGlvbik7CiAJcHVi b2lkcyA9IGxpc3RfY29uY2F0X3VuaXF1ZV9vaWQocHVib2lkcywgR2V0U2NoZW1hUHVibGljYXRp b25zKHNjaGVtYWlkKSk7CisJZXhjZXB0cHVib2lkcyA9IEdldFJlbGF0aW9uUHVibGljYXRpb25z KHJlbGlkLCB0cnVlKTsKIAogCWlmIChyZWxhdGlvbi0+cmRfcmVsLT5yZWxpc3BhcnRpdGlvbikK IAl7CkBAIC01ODQ1LDE0ICs1ODQ4LDE5IEBAIFJlbGF0aW9uQnVpbGRQdWJsaWNhdGlvbkRlc2Mo UmVsYXRpb24gcmVsYXRpb24sIFB1YmxpY2F0aW9uRGVzYyAqcHViZGVzYykKIAkJCU9pZAkJCWFu Y2VzdG9yID0gbGZpcnN0X29pZChsYyk7CiAKIAkJCXB1Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlx dWVfb2lkKHB1Ym9pZHMsCi0JCQkJCQkJCQkJCSBHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhhbmNl c3RvcikpOworCQkJCQkJCQkJCQkgR2V0UmVsYXRpb25QdWJsaWNhdGlvbnMoYW5jZXN0b3IsIGZh bHNlKSk7CiAJCQlzY2hlbWFpZCA9IGdldF9yZWxfbmFtZXNwYWNlKGFuY2VzdG9yKTsKIAkJCXB1 Ym9pZHMgPSBsaXN0X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsCiAJCQkJCQkJCQkJCSBHZXRT Y2hlbWFQdWJsaWNhdGlvbnMoc2NoZW1haWQpKTsKKwkJCWV4Y2VwdHB1Ym9pZHMgPSBsaXN0X2Nv bmNhdF91bmlxdWVfb2lkKGV4Y2VwdHB1Ym9pZHMsCisJCQkJCQkJCQkJCQkgICBHZXRSZWxhdGlv blB1YmxpY2F0aW9ucyhhbmNlc3RvciwgdHJ1ZSkpOwogCQl9CiAJfQotCXB1Ym9pZHMgPSBsaXN0 X2NvbmNhdF91bmlxdWVfb2lkKHB1Ym9pZHMsIEdldEFsbFRhYmxlc1B1YmxpY2F0aW9ucygpKTsK IAorCWFsbHRhYmxlc3B1Ym9pZHMgPSBHZXRBbGxUYWJsZXNQdWJsaWNhdGlvbnMoKTsKKwlwdWJv aWRzID0gbGlzdF9jb25jYXRfdW5pcXVlX29pZChwdWJvaWRzLAorCQkJCQkJCQkJIGxpc3RfZGlm ZmVyZW5jZV9vaWQoYWxsdGFibGVzcHVib2lkcywKKwkJCQkJCQkJCQkJCQkJIGV4Y2VwdHB1Ym9p ZHMpKTsKIAlmb3JlYWNoKGxjLCBwdWJvaWRzKQogCXsKIAkJT2lkCQkJcHViaWQgPSBsZmlyc3Rf b2lkKGxjKTsKQEAgLTU4ODMsNyArNTg5MSw3IEBAIFJlbGF0aW9uQnVpbGRQdWJsaWNhdGlvbkRl c2MoUmVsYXRpb24gcmVsYXRpb24sIFB1YmxpY2F0aW9uRGVzYyAqcHViZGVzYykKIAkJaWYgKCFw dWJmb3JtLT5wdWJhbGx0YWJsZXMgJiYKIAkJCShwdWJmb3JtLT5wdWJ1cGRhdGUgfHwgcHViZm9y bS0+cHViZGVsZXRlKSAmJgogCQkJcHViX3JmX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKHB1Ymlk LCByZWxhdGlvbiwgYW5jZXN0b3JzLAotCQkJCQkJCQkJCSAgIHB1YmZvcm0tPnB1YnZpYXJvb3Qp KQorCQkJCQkJCQkJCSAgIHB1YmZvcm0tPnB1YnZpYXJvb3QsIHB1YmZvcm0tPnB1YmFsbHRhYmxl cykpCiAJCXsKIAkJCWlmIChwdWJmb3JtLT5wdWJ1cGRhdGUpCiAJCQkJcHViZGVzYy0+cmZfdmFs aWRfZm9yX3VwZGF0ZSA9IGZhbHNlOwpAQCAtNTkwMSw2ICs1OTA5LDcgQEAgUmVsYXRpb25CdWls ZFB1YmxpY2F0aW9uRGVzYyhSZWxhdGlvbiByZWxhdGlvbiwgUHVibGljYXRpb25EZXNjICpwdWJk ZXNjKQogCQkJcHViX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKHB1YmlkLCByZWxhdGlvbiwgYW5j ZXN0b3JzLAogCQkJCQkJCQkJCXB1YmZvcm0tPnB1YnZpYXJvb3QsCiAJCQkJCQkJCQkJcHViZm9y bS0+cHViZ2VuY29scywKKwkJCQkJCQkJCQlwdWJmb3JtLT5wdWJhbGx0YWJsZXMsCiAJCQkJCQkJ CQkJJmludmFsaWRfY29sdW1uX2xpc3QsCiAJCQkJCQkJCQkJJmludmFsaWRfZ2VuX2NvbCkpCiAJ CXsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1 bXAvcGdfZHVtcC5jCmluZGV4IDI0NDUwODVkYmJkLi5mODI1MGIwMDBkOCAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5j CkBAIC0xODYsNiArMTg2LDggQEAgc3RhdGljIFNpbXBsZU9pZExpc3QgZXh0ZW5zaW9uX2luY2x1 ZGVfb2lkcyA9IHtOVUxMLCBOVUxMfTsKIHN0YXRpYyBTaW1wbGVTdHJpbmdMaXN0IGV4dGVuc2lv bl9leGNsdWRlX3BhdHRlcm5zID0ge05VTEwsIE5VTEx9Owogc3RhdGljIFNpbXBsZU9pZExpc3Qg ZXh0ZW5zaW9uX2V4Y2x1ZGVfb2lkcyA9IHtOVUxMLCBOVUxMfTsKIAorc3RhdGljIFNpbXBsZVB0 ckxpc3QgZXhjZXB0aW5mbyA9IHtOVUxMLCBOVUxMfTsKKwogc3RhdGljIGNvbnN0IENhdGFsb2dJ ZCBuaWxDYXRhbG9nSWQgPSB7MCwgMH07CiAKIC8qIG92ZXJyaWRlIGZvciBzdGFuZGFyZCBleHRy YV9mbG9hdF9kaWdpdHMgc2V0dGluZyAqLwpAQCAtNDY2Miw3ICs0NjY0LDM0IEBAIGR1bXBQdWJs aWNhdGlvbihBcmNoaXZlICpmb3V0LCBjb25zdCBQdWJsaWNhdGlvbkluZm8gKnB1YmluZm8pCiAJ aWYgKHB1YmluZm8tPnB1YmFsbHRhYmxlcyAmJiBwdWJpbmZvLT5wdWJhbGxzZXF1ZW5jZXMpCiAJ CWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIEZPUiBBTEwgVEFCTEVTLCBBTEwgU0VRVUVO Q0VTIik7CiAJZWxzZSBpZiAocHViaW5mby0+cHViYWxsdGFibGVzKQorCXsKKwkJU2ltcGxlUHRy TGlzdENlbGwgKmNlbGw7CisKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksICIgRk9SIEFM TCBUQUJMRVMiKTsKKworCQkvKiBJbmNsdWRlIGV4Y2VwdGlvbiB0YWJsZXMgaWYgdGhlIHB1Ymxp Y2F0aW9uIGhhcyBleGNlcHQgdGFibGVzICovCisJCWZvciAoY2VsbCA9IGV4Y2VwdGluZm8uaGVh ZDsgY2VsbDsgY2VsbCA9IGNlbGwtPm5leHQpCisJCXsKKwkJCVB1YmxpY2F0aW9uUmVsSW5mbyAq cHVicmluZm8gPSAoUHVibGljYXRpb25SZWxJbmZvICopIGNlbGwtPnB0cjsKKwkJCVRhYmxlSW5m byAgKnRiaW5mbzsKKworCQkJaWYgKHB1YmluZm8gPT0gcHVicmluZm8tPnB1YmxpY2F0aW9uKQor CQkJeworCQkJCXRiaW5mbyA9IHB1YnJpbmZvLT5wdWJ0YWJsZTsKKworCQkJCWlmIChmaXJzdCkK KwkJCQl7CisJCQkJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiIEVYQ0VQVCBUQUJMRSAo Iik7CisJCQkJCWZpcnN0ID0gZmFsc2U7CisJCQkJfQorCQkJCWVsc2UKKwkJCQkJYXBwZW5kUFFF eHBCdWZmZXJTdHIocXVlcnksICIsICIpOworCQkJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAi T05MWSAlcyIsIGZtdFF1YWxpZmllZER1bXBhYmxlKHRiaW5mbykpOworCQkJfQorCQl9CisJCWlm ICghZmlyc3QpCisJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwgIikiKTsKKwl9CiAJZWxz ZSBpZiAocHViaW5mby0+cHViYWxsc2VxdWVuY2VzKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihx dWVyeSwgIiBGT1IgQUxMIFNFUVVFTkNFUyIpOwogCkBAIC00ODMxLDYgKzQ4NjAsNyBAQCBnZXRQ dWJsaWNhdGlvblRhYmxlcyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQg bnVtVGFibGVzKQogCWludAkJCWlfcHJyZWxpZDsKIAlpbnQJCQlpX3BycmVscXVhbDsKIAlpbnQJ CQlpX3ByYXR0cnM7CisJaW50CQkJaV9wcmV4Y2VwdDsKIAlpbnQJCQlpLAogCQkJCWosCiAJCQkJ bnR1cHM7CkBAIC00ODQyLDggKzQ4NzIsMTYgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2 ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAogCS8qIENvbGxl Y3QgYWxsIHB1YmxpY2F0aW9uIG1lbWJlcnNoaXAgaW5mby4gKi8KIAlpZiAoZm91dC0+cmVtb3Rl VmVyc2lvbiA+PSAxNTAwMDApCisJeworCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKKwkJ CQkJCQkgIlNFTEVDVCB0YWJsZW9pZCwgb2lkLCBwcnB1YmlkLCBwcnJlbGlkLFxuIik7CisKKwkJ aWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTkwMDAwKQorCQkJYXBwZW5kUFFFeHBCdWZmZXJT dHIocXVlcnksICIgcHJleGNlcHQsXG4iKTsKKwkJZWxzZQorCQkJYXBwZW5kUFFFeHBCdWZmZXJT dHIocXVlcnksICIgZmFsc2UgQVMgcHJleGNlcHQsXG4iKTsKKwogCQlhcHBlbmRQUUV4cEJ1ZmZl clN0cihxdWVyeSwKLQkJCQkJCQkgIlNFTEVDVCB0YWJsZW9pZCwgb2lkLCBwcnB1YmlkLCBwcnJl bGlkLCAiCiAJCQkJCQkJICJwZ19jYXRhbG9nLnBnX2dldF9leHByKHBycXVhbCwgcHJyZWxpZCkg QVMgcHJyZWxxdWFsLCAiCiAJCQkJCQkJICIoQ0FTRVxuIgogCQkJCQkJCSAiICBXSEVOIHByLnBy YXR0cnMgSVMgTk9UIE5VTEwgVEhFTlxuIgpAQCAtNDg1NCw2ICs0ODkyLDcgQEAgZ2V0UHVibGlj YXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRh YmxlcykKIAkJCQkJCQkgIiAgICAgIFdIRVJFIGF0dHJlbGlkID0gcHIucHJyZWxpZCBBTkQgYXR0 bnVtID0gcHJhdHRyc1tzXSlcbiIKIAkJCQkJCQkgIiAgRUxTRSBOVUxMIEVORCkgcHJhdHRycyAi CiAJCQkJCQkJICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIik7CisJfQog CWVsc2UKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCiAJCQkJCQkJICJTRUxFQ1QgdGFi bGVvaWQsIG9pZCwgcHJwdWJpZCwgcHJyZWxpZCwgIgpAQCAtNDg2OSw2ICs0OTA4LDcgQEAgZ2V0 UHVibGljYXRpb25UYWJsZXMoQXJjaGl2ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50 IG51bVRhYmxlcykKIAlpX3BycmVsaWQgPSBQUWZudW1iZXIocmVzLCAicHJyZWxpZCIpOwogCWlf cHJyZWxxdWFsID0gUFFmbnVtYmVyKHJlcywgInBycmVscXVhbCIpOwogCWlfcHJhdHRycyA9IFBR Zm51bWJlcihyZXMsICJwcmF0dHJzIik7CisJaV9wcmV4Y2VwdCA9IFBRZm51bWJlcihyZXMsICJw cmV4Y2VwdCIpOwogCiAJLyogdGhpcyBhbGxvY2F0aW9uIG1heSBiZSBtb3JlIHRoYW4gd2UgbmVl ZCAqLwogCXB1YnJpbmZvID0gcGdfbWFsbG9jKG50dXBzICogc2l6ZW9mKFB1YmxpY2F0aW9uUmVs SW5mbykpOwpAQCAtNDg4MCw2ICs0OTIwLDcgQEAgZ2V0UHVibGljYXRpb25UYWJsZXMoQXJjaGl2 ZSAqZm91dCwgVGFibGVJbmZvIHRibGluZm9bXSwgaW50IG51bVRhYmxlcykKIAkJT2lkCQkJcHJy ZWxpZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV9wcnJlbGlkKSk7CiAJCVB1YmxpY2F0 aW9uSW5mbyAqcHViaW5mbzsKIAkJVGFibGVJbmZvICAqdGJpbmZvOworCQljaGFyCSAgICpwcmV4 Y2VwdCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9wcmV4Y2VwdCkpOwogCiAJCS8q CiAJCSAqIElnbm9yZSBhbnkgZW50cmllcyBmb3Igd2hpY2ggd2UgYXJlbid0IGludGVyZXN0ZWQg aW4gZWl0aGVyIHRoZQpAQCAtNDg5Myw3ICs0OTM0LDExIEBAIGdldFB1YmxpY2F0aW9uVGFibGVz KEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJCQlj b250aW51ZTsKIAogCQkvKiBPSywgbWFrZSBhIER1bXBhYmxlT2JqZWN0IGZvciB0aGlzIHJlbGF0 aW9uc2hpcCAqLwotCQlwdWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19QVUJMSUNBVElPTl9S RUw7CisJCWlmIChzdHJjbXAocHJleGNlcHQsICJmIikgPT0gMCkKKwkJCXB1YnJpbmZvW2pdLmRv Ymoub2JqVHlwZSA9IERPX1BVQkxJQ0FUSU9OX1JFTDsKKwkJZWxzZQorCQkJcHVicmluZm9bal0u ZG9iai5vYmpUeXBlID0gRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTDsKKwogCQlwdWJyaW5mb1tq XS5kb2JqLmNhdElkLnRhYmxlb2lkID0KIAkJCWF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV90 YWJsZW9pZCkpOwogCQlwdWJyaW5mb1tqXS5kb2JqLmNhdElkLm9pZCA9IGF0b29pZChQUWdldHZh bHVlKHJlcywgaSwgaV9vaWQpKTsKQEAgLTQ5MzQsNiArNDk3OSw5IEBAIGdldFB1YmxpY2F0aW9u VGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMp CiAJCS8qIERlY2lkZSB3aGV0aGVyIHdlIHdhbnQgdG8gZHVtcCBpdCAqLwogCQlzZWxlY3REdW1w YWJsZVB1YmxpY2F0aW9uT2JqZWN0KCYocHVicmluZm9bal0uZG9iaiksIGZvdXQpOwogCisJCWlm IChzdHJjbXAocHJleGNlcHQsICJ0IikgPT0gMCkKKwkJCXNpbXBsZV9wdHJfbGlzdF9hcHBlbmQo JmV4Y2VwdGluZm8sICZwdWJyaW5mb1tqXSk7CisKIAkJaisrOwogCX0KIApAQCAtMTE4MTIsNiAr MTE4NjAsOSBAQCBkdW1wRHVtcGFibGVPYmplY3QoQXJjaGl2ZSAqZm91dCwgRHVtcGFibGVPYmpl Y3QgKmRvYmopCiAJCWNhc2UgRE9fUFVCTElDQVRJT046CiAJCQlkdW1wUHVibGljYXRpb24oZm91 dCwgKGNvbnN0IFB1YmxpY2F0aW9uSW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFrOworCQljYXNlIERP X1BVQkxJQ0FUSU9OX0VYQ0VQVF9SRUw6CisJCQkvKiB3aWxsIGJlIGR1bXBlZCBpbiBkdW1wUHVi bGljYXRpb24gKi8KKwkJCWJyZWFrOwogCQljYXNlIERPX1BVQkxJQ0FUSU9OX1JFTDoKIAkJCWR1 bXBQdWJsaWNhdGlvblRhYmxlKGZvdXQsIChjb25zdCBQdWJsaWNhdGlvblJlbEluZm8gKikgZG9i aik7CiAJCQlicmVhazsKQEAgLTIwMTgyLDYgKzIwMjMzLDcgQEAgYWRkQm91bmRhcnlEZXBlbmRl bmNpZXMoRHVtcGFibGVPYmplY3QgKipkb2JqcywgaW50IG51bU9ianMsCiAJCQljYXNlIERPX0RF RkFVTFRfQUNMOgogCQkJY2FzZSBET19QT0xJQ1k6CiAJCQljYXNlIERPX1BVQkxJQ0FUSU9OOgor CQkJY2FzZSBET19QVUJMSUNBVElPTl9FWENFUFRfUkVMOgogCQkJY2FzZSBET19QVUJMSUNBVElP Tl9SRUw6CiAJCQljYXNlIERPX1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQToKIAkJCWNhc2Ug RE9fU1VCU0NSSVBUSU9OOgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggNzJhMDBlMWJjMjAuLjcyM2I1NTc1YzUz IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmgKQEAgLTgxLDYgKzgxLDcgQEAgdHlwZWRlZiBlbnVtCiAJRE9fUkVGUkVT SF9NQVRWSUVXLAogCURPX1BPTElDWSwKIAlET19QVUJMSUNBVElPTiwKKwlET19QVUJMSUNBVElP Tl9FWENFUFRfUkVMLAogCURPX1BVQkxJQ0FUSU9OX1JFTCwKIAlET19QVUJMSUNBVElPTl9UQUJM RV9JTl9TQ0hFTUEsCiAJRE9fUkVMX1NUQVRTLApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXBfc29ydC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCmluZGV4IDE2 NGM3NmUwODY0Li5mM2MzMGYzYmUzNyAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXBfc29ydC5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwpAQCAtOTIsNiAr OTIsNyBAQCBlbnVtIGRiT2JqZWN0VHlwZVByaW9yaXRpZXMKIAlQUklPX0ZLX0NPTlNUUkFJTlQs CiAJUFJJT19QT0xJQ1ksCiAJUFJJT19QVUJMSUNBVElPTiwKKwlQUklPX1BVQkxJQ0FUSU9OX0VY Q0VQVF9SRUwsCiAJUFJJT19QVUJMSUNBVElPTl9SRUwsCiAJUFJJT19QVUJMSUNBVElPTl9UQUJM RV9JTl9TQ0hFTUEsCiAJUFJJT19TVUJTQ1JJUFRJT04sCkBAIC0xNDcsNiArMTQ4LDcgQEAgc3Rh dGljIGNvbnN0IGludCBkYk9iamVjdFR5cGVQcmlvcml0eVtdID0KIAlbRE9fUkVGUkVTSF9NQVRW SUVXXSA9IFBSSU9fUkVGUkVTSF9NQVRWSUVXLAogCVtET19QT0xJQ1ldID0gUFJJT19QT0xJQ1ks CiAJW0RPX1BVQkxJQ0FUSU9OXSA9IFBSSU9fUFVCTElDQVRJT04sCisJW0RPX1BVQkxJQ0FUSU9O X0VYQ0VQVF9SRUxdID0gUFJJT19QVUJMSUNBVElPTl9FWENFUFRfUkVMLAogCVtET19QVUJMSUNB VElPTl9SRUxdID0gUFJJT19QVUJMSUNBVElPTl9SRUwsCiAJW0RPX1BVQkxJQ0FUSU9OX1RBQkxF X0lOX1NDSEVNQV0gPSBQUklPX1BVQkxJQ0FUSU9OX1RBQkxFX0lOX1NDSEVNQSwKIAlbRE9fUkVM X1NUQVRTXSA9IFBSSU9fU1RBVElTVElDU19EQVRBX0RBVEEsCkBAIC00NDMsNiArNDQ1LDE3IEBA IERPVHlwZU5hbWVDb21wYXJlKGNvbnN0IHZvaWQgKnAxLCBjb25zdCB2b2lkICpwMikKIAkJaWYg KGNtcHZhbCAhPSAwKQogCQkJcmV0dXJuIGNtcHZhbDsKIAl9CisJZWxzZSBpZiAob2JqMS0+b2Jq VHlwZSA9PSBET19QVUJMSUNBVElPTl9FWENFUFRfUkVMKQorCXsKKwkJUHVibGljYXRpb25SZWxJ bmZvICpwcm9iajEgPSAqKFB1YmxpY2F0aW9uUmVsSW5mbyAqY29uc3QgKikgcDE7CisJCVB1Ymxp Y2F0aW9uUmVsSW5mbyAqcHJvYmoyID0gKihQdWJsaWNhdGlvblJlbEluZm8gKmNvbnN0ICopIHAy OworCisJCS8qIFNvcnQgYnkgcHVibGljYXRpb24gbmFtZSwgc2luY2UgKG5hbWVzcGFjZSwgbmFt ZSkgbWF0Y2ggdGhlIHJlbCAqLworCQljbXB2YWwgPSBzdHJjbXAocHJvYmoxLT5wdWJsaWNhdGlv bi0+ZG9iai5uYW1lLAorCQkJCQkJcHJvYmoyLT5wdWJsaWNhdGlvbi0+ZG9iai5uYW1lKTsKKwkJ aWYgKGNtcHZhbCAhPSAwKQorCQkJcmV0dXJuIGNtcHZhbDsKKwl9CiAJZWxzZSBpZiAob2JqMS0+ b2JqVHlwZSA9PSBET19QVUJMSUNBVElPTl9UQUJMRV9JTl9TQ0hFTUEpCiAJewogCQlQdWJsaWNh dGlvblNjaGVtYUluZm8gKnBzb2JqMSA9ICooUHVibGljYXRpb25TY2hlbWFJbmZvICpjb25zdCAq KSBwMTsKQEAgLTE3MTUsNiArMTcyOCwxMSBAQCBkZXNjcmliZUR1bXBhYmxlT2JqZWN0KER1bXBh YmxlT2JqZWN0ICpvYmosIGNoYXIgKmJ1ZiwgaW50IGJ1ZnNpemUpCiAJCQkJCSAiUFVCTElDQVRJ T04gKElEICVkIE9JRCAldSkiLAogCQkJCQkgb2JqLT5kdW1wSWQsIG9iai0+Y2F0SWQub2lkKTsK IAkJCXJldHVybjsKKwkJY2FzZSBET19QVUJMSUNBVElPTl9FWENFUFRfUkVMOgorCQkJc25wcmlu dGYoYnVmLCBidWZzaXplLAorCQkJCQkgIlBVQkxJQ0FUSU9OIEVYQ0VQVCBUQUJMRSAoSUQgJWQg T0lEICV1KSIsCisJCQkJCSBvYmotPmR1bXBJZCwgb2JqLT5jYXRJZC5vaWQpOworCQkJcmV0dXJu OwogCQljYXNlIERPX1BVQkxJQ0FUSU9OX1JFTDoKIAkJCXNucHJpbnRmKGJ1ZiwgYnVmc2l6ZSwK IAkJCQkJICJQVUJMSUNBVElPTiBUQUJMRSAoSUQgJWQgT0lEICV1KSIsCmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9w Z19kdW1wLnBsCmluZGV4IGUzM2FhOTVmNmZmLi4zODFiN2MzOWJiMCAxMDA2NDQKLS0tIGEvc3Jj L2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAy X3BnX2R1bXAucGwKQEAgLTMxNzAsNiArMzE3MCwyNiBAQCBteSAldGVzdHMgPSAoCiAJCWxpa2Ug PT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAogCX0sCiAKKwknQ1JF QVRFIFBVQkxJQ0FUSU9OIHB1YjgnID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDUwLAorCQljcmVh dGVfc3FsID0+CisJCSAgJ0NSRUFURSBQVUJMSUNBVElPTiBwdWI4IEZPUiBBTEwgVEFCTEVTIEVY Q0VQVCAoZHVtcF90ZXN0LnRlc3RfdGFibGUpOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNS RUFURSBQVUJMSUNBVElPTiBwdWI4IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAoT05MWSBk dW1wX3Rlc3QudGVzdF90YWJsZSkgV0lUSCAocHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZSwgZGVs ZXRlLCB0cnVuY2F0ZScpO1xFCisJCQkveG0sCisJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0 aW9uX3Bvc3RfZGF0YSA9PiAxLCB9LAorCX0sCisKKwknQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1Yjkn ID0+IHsKKwkJY3JlYXRlX29yZGVyID0+IDUwLAorCQljcmVhdGVfc3FsID0+CisJCSAgJ0NSRUFU RSBQVUJMSUNBVElPTiBwdWI5IEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRSAoZHVtcF90ZXN0 LnRlc3RfdGFibGUsIGR1bXBfdGVzdC50ZXN0X3NlY29uZF90YWJsZSk7JywKKwkJcmVnZXhwID0+ IHFyL14KKwkJCVxRQ1JFQVRFIFBVQkxJQ0FUSU9OIHB1YjkgRk9SIEFMTCBUQUJMRVMgRVhDRVBU IFRBQkxFIChPTkxZIGR1bXBfdGVzdC50ZXN0X3RhYmxlLCBPTkxZIGR1bXBfdGVzdC50ZXN0X3Nl Y29uZF90YWJsZSkgV0lUSCAocHVibGlzaCA9ICdpbnNlcnQsIHVwZGF0ZSwgZGVsZXRlLCB0cnVu Y2F0ZScpO1xFCisJCQkveG0sCisJCWxpa2UgPT4geyAlZnVsbF9ydW5zLCBzZWN0aW9uX3Bvc3Rf ZGF0YSA9PiAxLCB9LAorCX0sCisKIAknQ1JFQVRFIFNVQlNDUklQVElPTiBzdWIxJyA9PiB7CiAJ CWNyZWF0ZV9vcmRlciA9PiA1MCwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFNVQlNDUklQVElP TiBzdWIxCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4vcHNx bC9kZXNjcmliZS5jCmluZGV4IDM2ZjI0NTAyODQyLi41MGIxZDQzNTM1OSAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAg LTMwNzMsMTcgKzMwNzMsMzQgQEAgZGVzY3JpYmVPbmVUYWJsZURldGFpbHMoY29uc3QgY2hhciAq c2NoZW1hbmFtZSwKIAkJCQkJCQkJICAiICAgICAgICAgIFdIRVJFIGF0dHJlbGlkID0gcHIucHJy ZWxpZCBBTkQgYXR0bnVtID0gcHJhdHRyc1tzXSlcbiIKIAkJCQkJCQkJICAiICAgICAgICBFTFNF IE5VTEwgRU5EKSAiCiAJCQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbiBw XG4iCi0JCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uX3JlbCBw ciBPTiBwLm9pZCA9IHByLnBycHViaWRcbiIKLQkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFs b2cucGdfY2xhc3MgYyBPTiBjLm9pZCA9IHByLnBycmVsaWRcbiIKLQkJCQkJCQkJICAiV0hFUkUg cHIucHJyZWxpZCA9ICclcydcbiIKKwkJCQkJCQkJICAiCQlKT0lOIHBnX2NhdGFsb2cucGdfcHVi bGljYXRpb25fcmVsIHByIE9OIHAub2lkID0gcHIucHJwdWJpZFxuIgorCQkJCQkJCQkgICIJCUpP SU4gcGdfY2F0YWxvZy5wZ19jbGFzcyBjIE9OIGMub2lkID0gcHIucHJyZWxpZFxuIgorCQkJCQkJ CQkgICJXSEVSRSBwci5wcnJlbGlkID0gJyVzJ1xuIiwKKwkJCQkJCQkJICBvaWQsIG9pZCwgb2lk KTsKKworCQkJCWlmIChwc2V0LnN2ZXJzaW9uID49IDE5MDAwMCkKKwkJCQkJYXBwZW5kUFFFeHBC dWZmZXJTdHIoJmJ1ZiwgIiBBTkQgTk9UIHByLnByZXhjZXB0XG4iKTsKKworCQkJCWFwcGVuZFBR RXhwQnVmZmVyKCZidWYsCiAJCQkJCQkJCSAgIlVOSU9OXG4iCiAJCQkJCQkJCSAgIlNFTEVDVCBw dWJuYW1lXG4iCi0JCQkJCQkJCSAgIiAgICAgLCBOVUxMXG4iCi0JCQkJCQkJCSAgIiAgICAgLCBO VUxMXG4iCisJCQkJCQkJCSAgIgkJLCBOVUxMXG4iCisJCQkJCQkJCSAgIgkJLCBOVUxMXG4iCiAJ CQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbiBwXG4iCi0JCQkJCQkJCSAg IldIRVJFIHAucHViYWxsdGFibGVzIEFORCBwZ19jYXRhbG9nLnBnX3JlbGF0aW9uX2lzX3B1Ymxp c2hhYmxlKCclcycpXG4iCi0JCQkJCQkJCSAgIk9SREVSIEJZIDE7IiwKLQkJCQkJCQkJICBvaWQs IG9pZCwgb2lkLCBvaWQpOworCQkJCQkJCQkgICJXSEVSRSBwLnB1YmFsbHRhYmxlcyBBTkQgcGdf Y2F0YWxvZy5wZ19yZWxhdGlvbl9pc19wdWJsaXNoYWJsZSgnJXMnKVxuIiwKKwkJCQkJCQkJICBv aWQpOworCisJCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQorCQkJCQlhcHBlbmRQUUV4 cEJ1ZmZlcigmYnVmLAorCQkJCQkJCQkJICAiICAgICBBTkQgTk9UIEVYSVNUUyAoXG4iCisJCQkJ CQkJCQkgICIJCVNFTEVDVCAxXG4iCisJCQkJCQkJCQkgICIJCUZST00gcGdfY2F0YWxvZy5wZ19w dWJsaWNhdGlvbl9yZWwgcHJcbiIKKwkJCQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBnX2Ns YXNzIHBjXG4iCisJCQkJCQkJCQkgICIJCU9OIHByLnBycmVsaWQgPSBwYy5vaWRcbiIKKwkJCQkJ CQkJCSAgIgkJV0hFUkUgcHIucHJyZWxpZCA9ICclcycgQU5EIHByLnBycHViaWQgPSBwLm9pZClc biIsCisJCQkJCQkJCQkgIG9pZCk7CisKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAi T1JERVIgQlkgMTsiKTsKIAkJCX0KIAkJCWVsc2UKIAkJCXsKQEAgLTY3NTMsOCArNjc3MCwxMiBA QCBkZXNjcmliZVB1YmxpY2F0aW9ucyhjb25zdCBjaGFyICpwYXR0ZXJuKQogCQkJCQkJCSAgIiAg ICAgcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHJcbiIKIAkJCQkJCQkgICJXSEVSRSBj LnJlbG5hbWVzcGFjZSA9IG4ub2lkXG4iCiAJCQkJCQkJICAiICBBTkQgYy5vaWQgPSBwci5wcnJl bGlkXG4iCi0JCQkJCQkJICAiICBBTkQgcHIucHJwdWJpZCA9ICclcydcbiIKLQkJCQkJCQkgICJP UkRFUiBCWSAxLDIiLCBwdWJpZCk7CisJCQkJCQkJICAiICBBTkQgcHIucHJwdWJpZCA9ICclcydc biIsIHB1YmlkKTsKKworCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQorCQkJCWFwcGVu ZFBRRXhwQnVmZmVyKCZidWYsICIgIEFORCBOT1QgcHIucHJleGNlcHRcbiIpOworCisJCQlhcHBl bmRQUUV4cEJ1ZmZlcigmYnVmLCAiT1JERVIgQlkgMSwyIik7CiAJCQlpZiAoIWFkZEZvb3RlclRv UHVibGljYXRpb25EZXNjKCZidWYsIF8oIlRhYmxlczoiKSwgZmFsc2UsICZjb250KSkKIAkJCQln b3RvIGVycm9yX3JldHVybjsKIApAQCAtNjc3Miw2ICs2NzkzLDIzIEBAIGRlc2NyaWJlUHVibGlj YXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJCQkJCWdvdG8gZXJyb3JfcmV0dXJuOwogCQkJ fQogCQl9CisJCWVsc2UKKwkJeworCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQorCQkJ eworCQkJCS8qIEdldCB0aGUgZXhjbHVkZWQgdGFibGVzIGZvciB0aGUgc3BlY2lmaWVkIHB1Ymxp Y2F0aW9uICovCisJCQkJcHJpbnRmUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkJICAiU0VMRUNU IGNvbmNhdChjLnJlbG5hbWVzcGFjZTo6cmVnbmFtZXNwYWNlLCAnLicsIGMucmVsbmFtZSlcbiIK KwkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGNcbiIKKwkJCQkJCQkJICAiICAg ICBKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHByIE9OIGMub2lkID0gcHIucHJy ZWxpZFxuIgorCQkJCQkJCQkgICJXSEVSRSBwci5wcnB1YmlkID0gJyVzJ1xuIgorCQkJCQkJCQkg ICIgIEFORCBwci5wcmV4Y2VwdFxuIgorCQkJCQkJCQkgICJPUkRFUiBCWSAxIiwgcHViaWQpOwor CQkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbkRlc2MoJmJ1ZiwgXygiRXhjZXB0IHRhYmxl czoiKSwKKwkJCQkJCQkJCQkJCXRydWUsICZjb250KSkKKwkJCQkJZ290byBlcnJvcl9yZXR1cm47 CisJCQl9CisJCX0KIAogCQlwcmludFRhYmxlKCZjb250LCBwc2V0LnF1ZXJ5Rm91dCwgZmFsc2Us IHBzZXQubG9nZmlsZSk7CiAJCXByaW50VGFibGVDbGVhbnVwKCZjb250KTsKZGlmZiAtLWdpdCBh L3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxl dGUuaW4uYwppbmRleCBiMTE3NWUwYzA4Yi4uNjMwMzZlYzc2NTYgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRl LmluLmMKQEAgLTIyOTMsMTEgKzIyOTMsMTcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBh dHRlcm5faWQsCiAJLyogQUxURVIgUFVCTElDQVRJT04gPG5hbWU+IEFERCAqLwogCWVsc2UgaWYg KE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiKSkKIAkJQ09N UExFVEVfV0lUSCgiQUxMIFRBQkxFUyIsICJUQUJMRVMgSU4gU0NIRU1BIiwgIlRBQkxFIik7CisJ ZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERCIs ICJBTEwiLCAiVEFCTEVTIikpCisJCUNPTVBMRVRFX1dJVEgoIkVYQ0VQVCBUQUJMRSIpOwogCWVs c2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBRER8U0VU IiwgIlRBQkxFIikpCiAJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0 X29mX3RhYmxlcyk7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBN YXRjaEFueSwgIkFERCIsICJBTEwiLCAiVEFCTEVTIiwgIkVYQ0VQVCIsICJUQUJMRSIpKQorCQlD T01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXMpOwogCWVs c2UgaWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQURE fFNFVCIsICJUQUJMRSIpICYmCiAJCQkgZW5kc193aXRoKHByZXZfd2QsICcsJykpCiAJCUNPTVBM RVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxlcyk7CisJZWxzZSBp ZiAoSGVhZE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiLCAi QUxMIiwgIlRBQkxFUyIsICJFWENFUFQiLCAiVEFCTEUiKSAmJiBlbmRzX3dpdGgocHJldl93ZCwg JywnKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfdGFi bGVzKTsKIAogCS8qCiAJICogIkFMVEVSIFBVQkxJQ0FUSU9OIDxuYW1lPiBTRVQgVEFCTEUgPG5h bWU+IFdIRVJFICgiIC0gY29tcGxldGUgd2l0aApAQCAtMzYyMyw2ICszNjI5LDEwIEBAIG1hdGNo X3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFU RSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIkFMTCIpKQogCQlDT01QTEVURV9X SVRIKCJUQUJMRVMiLCAiU0VRVUVOQ0VTIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQ1JFQVRFIiwg IlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiQUxMIiwgIlRBQkxFUyIpKQorCQlDT01Q TEVURV9XSVRIKCJFWENFUFQgVEFCTEUiLCAiV0lUSCAoIik7CisJZWxzZSBpZiAoTWF0Y2hlcygi Q1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiQUxMIiwgIlRBQkxFUyIs ICJFWENFUFQiKSkKKwkJQ09NUExFVEVfV0lUSCgiVEFCTEUiKTsKKwllbHNlIGlmIChNYXRjaGVz KCJDUkVBVEUiLCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJBTEwiLCAiVEFCTEVT IiwgIkVYQ0VQVCIsICJUQUJMRSIsIE1hdGNoQW55KSAmJiAhZW5kc193aXRoKHByZXZfd2QsICcs JykpCiAJCUNPTVBMRVRFX1dJVEgoIldJVEggKCIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFU RSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFUyIpKQogCQlDT01QTEVU RV9XSVRIKCJJTiBTQ0hFTUEiKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf cHVibGljYXRpb24uaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb24uaAppbmRl eCA2NDEwMTdlOTQ5Ni4uYzdhNjFmMzE5NGMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHVibGljYXRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0 aW9uLmgKQEAgLTE0NiwxMSArMTQ2LDEyIEBAIHR5cGVkZWYgc3RydWN0IFB1YmxpY2F0aW9uUmVs SW5mbwogCVJlbGF0aW9uCXJlbGF0aW9uOwogCU5vZGUJICAgKndoZXJlQ2xhdXNlOwogCUxpc3QJ ICAgKmNvbHVtbnM7CisJYm9vbAkJZXhjZXB0OwogfSBQdWJsaWNhdGlvblJlbEluZm87CiAKIGV4 dGVybiBQdWJsaWNhdGlvbiAqR2V0UHVibGljYXRpb24oT2lkIHB1YmlkKTsKIGV4dGVybiBQdWJs aWNhdGlvbiAqR2V0UHVibGljYXRpb25CeU5hbWUoY29uc3QgY2hhciAqcHVibmFtZSwgYm9vbCBt aXNzaW5nX29rKTsKLWV4dGVybiBMaXN0ICpHZXRSZWxhdGlvblB1YmxpY2F0aW9ucyhPaWQgcmVs aWQpOworZXh0ZXJuIExpc3QgKkdldFJlbGF0aW9uUHVibGljYXRpb25zKE9pZCByZWxpZCwgYm9v bCBleGNlcHRfZmxhZyk7CiAKIC8qIGRlZmF1bHQgdmFsdWVzIGZvciBmbGFncyBhbmQgcHVibGlj YXRpb24gcGFyYW1ldGVycyAqLwogI2RlZmluZSBQVUJfREVGQVVMVF9BQ1RJT05fSU5TRVJUIHRy dWUKQEAgLTE3Niw5ICsxNzcsMTAgQEAgdHlwZWRlZiBlbnVtIFB1YmxpY2F0aW9uUGFydE9wdAog CVBVQkxJQ0FUSU9OX1BBUlRfQUxMLAogfSBQdWJsaWNhdGlvblBhcnRPcHQ7CiAKLWV4dGVybiBM aXN0ICpHZXRQdWJsaWNhdGlvblJlbGF0aW9ucyhPaWQgcHViaWQsIFB1YmxpY2F0aW9uUGFydE9w dCBwdWJfcGFydG9wdCk7CitleHRlcm4gTGlzdCAqR2V0UHVibGljYXRpb25SZWxhdGlvbnMoT2lk IHB1YmlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQsCisJCQkJCQkJCQkgYm9vbCBl eGNlcHRfZmxhZyk7CiBleHRlcm4gTGlzdCAqR2V0QWxsVGFibGVzUHVibGljYXRpb25zKHZvaWQp OwotZXh0ZXJuIExpc3QgKkdldEFsbFB1YmxpY2F0aW9uUmVsYXRpb25zKGNoYXIgcmVsa2luZCwg Ym9vbCBwdWJ2aWFyb290KTsKK2V4dGVybiBMaXN0ICpHZXRBbGxQdWJsaWNhdGlvblJlbGF0aW9u cyhPaWQgcHViaWQsIGNoYXIgcmVsa2luZCwgYm9vbCBwdWJ2aWFyb290KTsKIGV4dGVybiBMaXN0 ICpHZXRQdWJsaWNhdGlvblNjaGVtYXMoT2lkIHB1YmlkKTsKIGV4dGVybiBMaXN0ICpHZXRTY2hl bWFQdWJsaWNhdGlvbnMoT2lkIHNjaGVtYWlkKTsKIGV4dGVybiBMaXN0ICpHZXRTY2hlbWFQdWJs aWNhdGlvblJlbGF0aW9ucyhPaWQgc2NoZW1haWQsCkBAIC0xODksNyArMTkxLDcgQEAgZXh0ZXJu IExpc3QgKkdldFB1YlBhcnRpdGlvbk9wdGlvblJlbGF0aW9ucyhMaXN0ICpyZXN1bHQsCiAJCQkJ CQkJCQkJCVB1YmxpY2F0aW9uUGFydE9wdCBwdWJfcGFydG9wdCwKIAkJCQkJCQkJCQkJT2lkIHJl bGlkKTsKIGV4dGVybiBPaWQJR2V0VG9wTW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihPaWQgcHVi b2lkLCBMaXN0ICphbmNlc3RvcnMsCi0JCQkJCQkJCQkJCWludCAqYW5jZXN0b3JfbGV2ZWwpOwor CQkJCQkJCQkJCQlpbnQgKmFuY2VzdG9yX2xldmVsLCBib29sIHB1YmFsbHRhYmxlcyk7CiAKIGV4 dGVybiBib29sIGlzX3B1Ymxpc2hhYmxlX3JlbGF0aW9uKFJlbGF0aW9uIHJlbCk7CiBleHRlcm4g Ym9vbCBpc19zY2hlbWFfcHVibGljYXRpb24oT2lkIHB1YmlkKTsKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2NhdGFsb2cvcGdfcHVibGljYXRpb25fcmVsLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3B1YmxpY2F0aW9uX3JlbC5oCmluZGV4IDkyY2MzNmRmZGY2Li5lN2Q3ZjNiYTg1YyAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaAorKysgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oCkBAIC0zMSw2ICszMSw3IEBA IENBVEFMT0cocGdfcHVibGljYXRpb25fcmVsLDYxMDYsUHVibGljYXRpb25SZWxSZWxhdGlvbklk KQogCU9pZAkJCW9pZDsJCQkvKiBvaWQgKi8KIAlPaWQJCQlwcnB1YmlkIEJLSV9MT09LVVAocGdf cHVibGljYXRpb24pOyAvKiBPaWQgb2YgdGhlIHB1YmxpY2F0aW9uICovCiAJT2lkCQkJcHJyZWxp ZCBCS0lfTE9PS1VQKHBnX2NsYXNzKTsJLyogT2lkIG9mIHRoZSByZWxhdGlvbiAqLworCWJvb2wJ CXByZXhjZXB0IEJLSV9ERUZBVUxUKGYpOwkvKiBleGNsdWRlIHRoZSByZWxhdGlvbiAqLwogCiAj aWZkZWYJQ0FUQUxPR19WQVJMRU4JCQkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0IGhl cmUgKi8KIAlwZ19ub2RlX3RyZWUgcHJxdWFsOwkJLyogcXVhbGlmaWNhdGlvbnMgKi8KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5oIGIvc3JjL2luY2x1 ZGUvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmgKaW5kZXggZjkwY2YxZWY4OTYuLjBhZDVkMjg3 NTRkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaAor KysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaApAQCAtMzIsMTAgKzMy LDExIEBAIGV4dGVybiBPYmplY3RBZGRyZXNzIEFsdGVyUHVibGljYXRpb25Pd25lcihjb25zdCBj aGFyICpuYW1lLCBPaWQgbmV3T3duZXJJZCk7CiBleHRlcm4gdm9pZCBBbHRlclB1YmxpY2F0aW9u T3duZXJfb2lkKE9pZCBwdWJpZCwgT2lkIG5ld093bmVySWQpOwogZXh0ZXJuIHZvaWQgSW52YWxp ZGF0ZVB1YmxpY2F0aW9uUmVscyhMaXN0ICpyZWxpZHMpOwogZXh0ZXJuIGJvb2wgcHViX3JmX2Nv bnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sCi0JCQkJ CQkJCQkJICAgTGlzdCAqYW5jZXN0b3JzLCBib29sIHB1YnZpYXJvb3QpOworCQkJCQkJCQkJCSAg IExpc3QgKmFuY2VzdG9ycywgYm9vbCBwdWJ2aWFyb290LAorCQkJCQkJCQkJCSAgIGJvb2wgcHVi YWxsdGFibGVzKTsKIGV4dGVybiBib29sIHB1Yl9jb250YWluc19pbnZhbGlkX2NvbHVtbihPaWQg cHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLAogCQkJCQkJCQkJCUxpc3QgKmFuY2VzdG9ycywgYm9v bCBwdWJ2aWFyb290LAotCQkJCQkJCQkJCWNoYXIgcHViZ2VuY29sc190eXBlLAorCQkJCQkJCQkJ CWNoYXIgcHViZ2VuY29sc190eXBlLCBib29sIHB1YmFsbHRhYmxlcywKIAkJCQkJCQkJCQlib29s ICppbnZhbGlkX2NvbHVtbl9saXN0LAogCQkJCQkJCQkJCWJvb2wgKmludmFsaWRfZ2VuX2NvbCk7 CiBleHRlcm4gdm9pZCBJbnZhbGlkYXRlUHViUmVsU3luY0NhY2hlKE9pZCBwdWJpZCwgYm9vbCBw dWJhbGx0YWJsZXMpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o IGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGMyMmQ3NWU4MGEyLi5hMTRl Y2VkYjI3ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBi L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtNDI3MSw2ICs0MjcxLDcgQEAgdHlw ZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25UYWJsZQogCVJhbmdlVmFyICAgKnJlbGF0aW9uOwkJLyog cmVsYXRpb24gdG8gYmUgcHVibGlzaGVkICovCiAJTm9kZQkgICAqd2hlcmVDbGF1c2U7CS8qIHF1 YWxpZmljYXRpb25zICovCiAJTGlzdAkgICAqY29sdW1uczsJCS8qIExpc3Qgb2YgY29sdW1ucyBp biBhIHB1YmxpY2F0aW9uIHRhYmxlICovCisJYm9vbAkJZXhjZXB0OwkJCS8qIGV4Y2x1ZGUgdGhl IHJlbGF0aW9uICovCiB9IFB1YmxpY2F0aW9uVGFibGU7CiAKIC8qCkBAIC00Mjc5LDYgKzQyODAs NyBAQCB0eXBlZGVmIHN0cnVjdCBQdWJsaWNhdGlvblRhYmxlCiB0eXBlZGVmIGVudW0gUHVibGlj YXRpb25PYmpTcGVjVHlwZQogewogCVBVQkxJQ0FUSU9OT0JKX1RBQkxFLAkJLyogQSB0YWJsZSAq LworCVBVQkxJQ0FUSU9OT0JKX0VYQ0VQVF9UQUJMRSwJLyogQSB0YWJsZSB0byBiZSBleGNsdWRl ZCAqLwogCVBVQkxJQ0FUSU9OT0JKX1RBQkxFU19JTl9TQ0hFTUEsCS8qIEFsbCB0YWJsZXMgaW4g c2NoZW1hICovCiAJUFVCTElDQVRJT05PQkpfVEFCTEVTX0lOX0NVUl9TQ0hFTUEsCS8qIEFsbCB0 YWJsZXMgaW4gZmlyc3QgZWxlbWVudCBvZgogCQkJCQkJCQkJCQkgKiBzZWFyY2hfcGF0aCAqLwpA QCAtNDMwNyw2ICs0MzA5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUHVibGljYXRpb25BbGxPYmpTcGVj CiB7CiAJTm9kZVRhZwkJdHlwZTsKIAlQdWJsaWNhdGlvbkFsbE9ialR5cGUgcHVib2JqdHlwZTsJ LyogdHlwZSBvZiB0aGlzIHB1YmxpY2F0aW9uIG9iamVjdCAqLworCUxpc3QJICAgKmV4Y2VwdF9v YmplY3RzOyAvKiBMaXN0IG9mIHB1YmxpY2F0aW9uIG9iamVjdCB0byBiZSBleGNsdWRlZCAqLwog CVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24g Ki8KIH0gUHVibGljYXRpb25BbGxPYmpTcGVjOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cHVibGljYXRpb24ub3V0CmluZGV4IGVjMTJmN2NmYmFhLi4wNmI1NGQ4YzgzNCAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQKQEAgLTIxMywxMyArMjEzLDM3IEBA IE5vdC1udWxsIGNvbnN0cmFpbnRzOgogIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAg ICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCBmICAgICAgIHwgZiAg ICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCiAoMSByb3cpCiAKK1NFVCBjbGllbnRfbWlu X21lc3NhZ2VzID0gJ0VSUk9SJzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRh Ymxlc19leGNlcHR0YWJsZSBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKHRlc3RwdWJfdGJs MSwgdGVzdHB1Yl90YmwyKTsKKy0tIHNwZWNpZnkgRVhDRVBUIHdpdGhvdXQgVEFCTEUKK0NSRUFU RSBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTEgRk9SIEFMTCBU QUJMRVMgRVhDRVBUICh0ZXN0cHViX3RibDEpOworUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsK K1xkUnArIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViX2ZvcmFsbHRhYmxl c19leGNlcHR0YWJsZQorICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBB bGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwg R2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19w dWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IGYgICAgICAgICAgICAgfCB0ICAgICAgIHwg dCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKK0V4 Y2VwdCB0YWJsZXM6CisgICAgInB1YmxpYy50ZXN0cHViX3RibDEiCisgICAgInB1YmxpYy50ZXN0 cHViX3RibDIiCisKK1xkUnArIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlMQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHVi X2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTEKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBB bGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8 IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAg ICAgICAgfCBmCitFeGNlcHQgdGFibGVzOgorICAgICJwdWJsaWMudGVzdHB1Yl90YmwxIgorCiBE Uk9QIFRBQkxFIHRlc3RwdWJfdGJsMjsKLURST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0 YWJsZXMsIHRlc3RwdWJfZm9ydGFibGUsIHRlc3RwdWJfZm9yc2NoZW1hLCB0ZXN0cHViX2Zvcl90 Ymxfc2NoZW1hOworRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2ZvcmFsbHRhYmxlcywgdGVzdHB1 Yl9mb3J0YWJsZSwgdGVzdHB1Yl9mb3JzY2hlbWEsIHRlc3RwdWJfZm9yX3RibF9zY2hlbWEsIHRl c3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlLCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNl cHR0YWJsZTE7CiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwzIChhIGludCk7CiBDUkVBVEUgVEFC TEUgdGVzdHB1Yl90YmwzYSAoYiB0ZXh0KSBJTkhFUklUUyAodGVzdHB1Yl90YmwzKTsKIFNFVCBj bGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHVi MyBGT1IgVEFCTEUgdGVzdHB1Yl90YmwzOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI0IEZP UiBUQUJMRSBPTkxZIHRlc3RwdWJfdGJsMzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNSBG T1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKHRlc3RwdWJfdGJsMyk7CitDUkVBVEUgUFVCTElD QVRJT04gdGVzdHB1YjYgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIChPTkxZIHRlc3RwdWJf dGJsMyk7CiBSRVNFVCBjbGllbnRfbWluX21lc3NhZ2VzOwogXGRScCsgdGVzdHB1YjMKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0 aW9uIHRlc3RwdWIzCkBAIC0yMzgsOCArMjYyLDI1IEBAIFRhYmxlczoKIFRhYmxlczoKICAgICAi cHVibGljLnRlc3RwdWJfdGJsMyIKIAorXGRScCsgdGVzdHB1YjUKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWI1 CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMg fCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29s dW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3Vz ZXIgfCB0ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAg ICAgICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorRXhjZXB0IHRhYmxlczoK KyAgICAicHVibGljLnRlc3RwdWJfdGJsMyIKKyAgICAicHVibGljLnRlc3RwdWJfdGJsM2EiCisK K1xkUnArIHRlc3RwdWI2CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBQdWJsaWNhdGlvbiB0ZXN0cHViNgorICAgICAgICAgIE93bmVyICAgICAg ICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5zZXJ0cyB8IFVwZGF0ZXMgfCBE ZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMgfCBWaWEgcm9vdCAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwgdCAgICAgICAgICB8IGYgICAg ICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25l ICAgICAgICAgICAgICB8IGYKK0V4Y2VwdCB0YWJsZXM6CisgICAgInB1YmxpYy50ZXN0cHViX3Ri bDMiCisKIERST1AgVEFCTEUgdGVzdHB1Yl90YmwzLCB0ZXN0cHViX3RibDNhOwotRFJPUCBQVUJM SUNBVElPTiB0ZXN0cHViMywgdGVzdHB1YjQ7CitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWIzLCB0 ZXN0cHViNCwgdGVzdHB1YjUsIHRlc3RwdWI2OwogLS0tIFRlc3RzIGZvciBwdWJsaWNhdGlvbnMg d2l0aCBTRVFVRU5DRVMKIENSRUFURSBTRVFVRU5DRSByZWdyZXNzX3B1Yl9zZXEwOwogQ1JFQVRF IFNFUVVFTkNFIHB1Yl90ZXN0LnJlZ3Jlc3NfcHViX3NlcTE7CkBAIC0yMDEzLDYgKzIwNTQsNyBA QCBEUk9QIFRBQkxFIGdlbmNvbHM7CiAtLSBUZXN0cyBmb3IgQUxURVIgUFVCTElDQVRJT04gLi4u IFJFU0VUCiBDUkVBVEUgU0NIRU1BIHB1Yl9zY2gxOwogQ1JFQVRFIFRBQkxFIHB1Yl9zY2gxLnRi bDEgKGEgaW50KTsKK0NSRUFURSBUQUJMRSBwdWJfc2NoMS50YmwyIChhIGludCk7CiBTRVQgY2xp ZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9y ZXNldCBGT1IgQUxMIFRBQkxFUywgQUxMIFNFUVVFTkNFUzsKIFJFU0VUIGNsaWVudF9taW5fbWVz c2FnZXM7CkBAIC0yMTI2LDggKzIxNjgsMjEgQEAgQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9y ZXNldCBBREQgQUxMIFRBQkxFUzsKICByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAgICAg ICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAg ICAgICB8IHN0b3JlZCAgICAgICAgICAgIHwgdAogKDEgcm93KQogCistLSBWZXJpZnkgYWRkaW5n IEVYQ0VQVCBUQUJMRQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK0FM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxF IChwdWJfc2NoMS50YmwxLCBwdWJfc2NoMS50YmwyKTsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0 aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAgICAgfCBBbGwgdGFibGVz IHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRl cyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jl c3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBm CitFeGNlcHQgdGFibGVzOgorICAgICJwdWJfc2NoMS50YmwxIgorICAgICJwdWJfc2NoMS50Ymwy IgorCiBEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQ7CiBEUk9QIFRBQkxFIHB1Yl9zY2gx LnRibDE7CitEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDI7CiBEUk9QIFNDSEVNQSBwdWJfc2NoMTsK IC0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQogLS0gVGVzdCB0aGF0IHRoZSBJTlNFUlQgT04gQ09ORkxJQ1QgY29tbWFuZCBjb3JyZWN0bHkg Y2hlY2tzIFJFUExJQ0EgSURFTlRJVFkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3B1YmxpY2F0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbApp bmRleCA1MjU5MzMxMTM3Yi4uMjkyZGViNTJiOTMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wdWJsaWNh dGlvbi5zcWwKQEAgLTEwNSwyMCArMTA1LDMzIEBAIFNFTEVDVCBwdWJuYW1lLCBwdWJhbGx0YWJs ZXMgRlJPTSBwZ19wdWJsaWNhdGlvbiBXSEVSRSBwdWJuYW1lID0gJ3Rlc3RwdWJfZm9yYWxsCiBc ZCsgdGVzdHB1Yl90YmwyCiBcZFJwKyB0ZXN0cHViX2ZvcmFsbHRhYmxlcwogCitTRVQgY2xpZW50 X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3Jh bGx0YWJsZXNfZXhjZXB0dGFibGUgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFICh0ZXN0cHVi X3RibDEsIHRlc3RwdWJfdGJsMik7CistLSBzcGVjaWZ5IEVYQ0VQVCB3aXRob3V0IFRBQkxFCitD UkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxIEZPUiBB TEwgVEFCTEVTIEVYQ0VQVCAodGVzdHB1Yl90YmwxKTsKK1JFU0VUIGNsaWVudF9taW5fbWVzc2Fn ZXM7CisKK1xkUnArIHRlc3RwdWJfZm9yYWxsdGFibGVzX2V4Y2VwdHRhYmxlCitcZFJwKyB0ZXN0 cHViX2ZvcmFsbHRhYmxlc19leGNlcHR0YWJsZTEKKwogRFJPUCBUQUJMRSB0ZXN0cHViX3RibDI7 Ci1EUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZm9yYWxsdGFibGVzLCB0ZXN0cHViX2ZvcnRhYmxl LCB0ZXN0cHViX2ZvcnNjaGVtYSwgdGVzdHB1Yl9mb3JfdGJsX3NjaGVtYTsKK0RST1AgUFVCTElD QVRJT04gdGVzdHB1Yl9mb3JhbGx0YWJsZXMsIHRlc3RwdWJfZm9ydGFibGUsIHRlc3RwdWJfZm9y c2NoZW1hLCB0ZXN0cHViX2Zvcl90Ymxfc2NoZW1hLCB0ZXN0cHViX2ZvcmFsbHRhYmxlc19leGNl cHR0YWJsZSwgdGVzdHB1Yl9mb3JhbGx0YWJsZXNfZXhjZXB0dGFibGUxOwogCiBDUkVBVEUgVEFC TEUgdGVzdHB1Yl90YmwzIChhIGludCk7CiBDUkVBVEUgVEFCTEUgdGVzdHB1Yl90YmwzYSAoYiB0 ZXh0KSBJTkhFUklUUyAodGVzdHB1Yl90YmwzKTsKIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0g J0VSUk9SJzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViMyBGT1IgVEFCTEUgdGVzdHB1Yl90 YmwzOwogQ1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWI0IEZPUiBUQUJMRSBPTkxZIHRlc3RwdWJf dGJsMzsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViNSBGT1IgQUxMIFRBQkxFUyBFWENFUFQg VEFCTEUgKHRlc3RwdWJfdGJsMyk7CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1YjYgRk9SIEFM TCBUQUJMRVMgRVhDRVBUIFRBQkxFIChPTkxZIHRlc3RwdWJfdGJsMyk7CiBSRVNFVCBjbGllbnRf bWluX21lc3NhZ2VzOwogXGRScCsgdGVzdHB1YjMKIFxkUnArIHRlc3RwdWI0CitcZFJwKyB0ZXN0 cHViNQorXGRScCsgdGVzdHB1YjYKIAogRFJPUCBUQUJMRSB0ZXN0cHViX3RibDMsIHRlc3RwdWJf dGJsM2E7Ci1EUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWIzLCB0ZXN0cHViNDsKK0RST1AgUFVCTElD QVRJT04gdGVzdHB1YjMsIHRlc3RwdWI0LCB0ZXN0cHViNSwgdGVzdHB1YjY7CiAKIC0tLSBUZXN0 cyBmb3IgcHVibGljYXRpb25zIHdpdGggU0VRVUVOQ0VTCiBDUkVBVEUgU0VRVUVOQ0UgcmVncmVz c19wdWJfc2VxMDsKQEAgLTEyNzIsNiArMTI4NSw3IEBAIERST1AgVEFCTEUgZ2VuY29sczsKIC0t IFRlc3RzIGZvciBBTFRFUiBQVUJMSUNBVElPTiAuLi4gUkVTRVQKIENSRUFURSBTQ0hFTUEgcHVi X3NjaDE7CiBDUkVBVEUgVEFCTEUgcHViX3NjaDEudGJsMSAoYSBpbnQpOworQ1JFQVRFIFRBQkxF IHB1Yl9zY2gxLnRibDIgKGEgaW50KTsKIFNFVCBjbGllbnRfbWluX21lc3NhZ2VzID0gJ0VSUk9S JzsKIENSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEZPUiBBTEwgVEFCTEVTLCBBTEwg U0VRVUVOQ0VTOwogUkVTRVQgY2xpZW50X21pbl9tZXNzYWdlczsKQEAgLTEzNDEsOCArMTM1NSwx NCBAQCBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAocHVibGlzaCA9ICcnLCBw dWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCA9CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jl c2V0IEFERCBBTEwgVEFCTEVTOwogXGRScCsgdGVzdHB1Yl9yZXNldAogCistLSBWZXJpZnkgYWRk aW5nIEVYQ0VQVCBUQUJMRQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsK K0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRB QkxFIChwdWJfc2NoMS50YmwxLCBwdWJfc2NoMS50YmwyKTsKK1xkUnArIHRlc3RwdWJfcmVzZXQK KwogRFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0OwogRFJPUCBUQUJMRSBwdWJfc2NoMS50 YmwxOworRFJPUCBUQUJMRSBwdWJfc2NoMS50YmwyOwogRFJPUCBTQ0hFTUEgcHViX3NjaDE7CiAt LSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K IApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkIGIvc3JjL3Rl c3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkCmluZGV4IDg1ZDEwYTg5OTk0Li5iOGU1YzU0YzMx NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkCisrKyBiL3Ny Yy90ZXN0L3N1YnNjcmlwdGlvbi9tZXNvbi5idWlsZApAQCAtNDYsNiArNDYsNyBAQCB0ZXN0cyAr PSB7CiAgICAgICAndC8wMzRfdGVtcG9yYWwucGwnLAogICAgICAgJ3QvMDM1X2NvbmZsaWN0cy5w bCcsCiAgICAgICAndC8wMzZfc2VxdWVuY2VzLnBsJywKKyAgICAgICd0LzAzN19yZXBfY2hhbmdl c19leGNlcHRfdGFibGUucGwnLAogICAgICAgJ3QvMTAwX2J1Z3MucGwnLAogICAgIF0sCiAgIH0s CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzdfcmVwX2NoYW5nZXNfZXhj ZXB0X3RhYmxlLnBsIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM3X3JlcF9jaGFuZ2VzX2V4 Y2VwdF90YWJsZS5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDk2 ZTA2MDYzNjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzdf cmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsCkBAIC0wLDAgKzEsMTg2IEBACisKKyMgQ29weXJp Z2h0IChjKSAyMDIxLTIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisK KyMgTG9naWNhbCByZXBsaWNhdGlvbiB0ZXN0cyBmb3IgZXhjZXB0IHRhYmxlIHB1YmxpY2F0aW9u cwordXNlIHN0cmljdDsKK3VzZSB3YXJuaW5nczsKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVz dGVyOwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisKKyMg SW5pdGlhbGl6ZSBwdWJsaXNoZXIgbm9kZQorbXkgJG5vZGVfcHVibGlzaGVyID0gUG9zdGdyZVNR TDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdwdWJsaXNoZXInKTsKKyRub2RlX3B1Ymxpc2hlci0+aW5p dChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dpY2FsJyk7Ciskbm9kZV9wdWJsaXNoZXItPnN0YXJ0 OworCisjIENyZWF0ZSBzdWJzY3JpYmVyIG5vZGUKK215ICRub2RlX3N1YnNjcmliZXIgPSBQb3N0 Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3N1YnNjcmliZXInKTsKKyRub2RlX3N1YnNjcmli ZXItPmluaXQoYWxsb3dzX3N0cmVhbWluZyA9PiAnbG9naWNhbCcpOworJG5vZGVfc3Vic2NyaWJl ci0+c3RhcnQ7CisKKyMgVGVzdCByZXBsaWNhdGlvbiB3aXRoIHB1YmxpY2F0aW9ucyBjcmVhdGVk IHVzaW5nIEZPUiBBTEwgVEFCTEVTIEVYQ0VQVCBUQUJMRQorIyBjbGF1c2UuCisjIENyZWF0ZSBz Y2hlbWFzIGFuZCB0YWJsZXMgb24gcHVibGlzaGVyCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNx bCgKKwkncG9zdGdyZXMnLCBxcSgKKwlDUkVBVEUgU0NIRU1BIHNjaDE7CisJQ1JFQVRFIFRBQkxF IHNjaDEudGFiMSBBUyBTRUxFQ1QgZ2VuZXJhdGVfc2VyaWVzKDEsMTApIEFTIGE7CisJQ1JFQVRF IFRBQkxFIHB1YmxpYy50YWIxKGEgaW50KTsKKykpOworCisjIENyZWF0ZSBzY2hlbWFzIGFuZCB0 YWJsZXMgb24gc3Vic2NyaWJlcgorJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKAorCSdwb3N0 Z3JlcycsIHFxKAorCUNSRUFURSBTQ0hFTUEgc2NoMTsKKwlDUkVBVEUgVEFCTEUgc2NoMS50YWIx IChhIGludCk7CisJQ1JFQVRFIFRBQkxFIHB1YmxpYy50YWIxIChhIGludCk7CispKTsKKworIyBT ZXR1cCBsb2dpY2FsIHJlcGxpY2F0aW9uCitteSAkcHVibGlzaGVyX2Nvbm5zdHIgPSAkbm9kZV9w dWJsaXNoZXItPmNvbm5zdHIgLiAnIGRibmFtZT1wb3N0Z3Jlcyc7Ciskbm9kZV9wdWJsaXNoZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJDUkVBVEUgUFVCTElDQVRJT04gdGFwX3B1Yl9zY2hl bWEgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIChzY2gxLnRhYjEpIgorKTsKKworJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04g dGFwX3N1Yl9zY2hlbWEgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElP TiB0YXBfcHViX3NjaGVtYSIKKyk7CisKKyMgV2FpdCBmb3IgaW5pdGlhbCB0YWJsZSBzeW5jIHRv IGZpbmlzaAorJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5v ZGVfcHVibGlzaGVyLAorCSd0YXBfc3ViX3NjaGVtYScpOworCisjIENoZWNrIHRoZSB0YWJsZSBk YXRhIGRvZXMgbm90IHN5bmMgZm9yIGV4Y2x1ZGVkIHRhYmxlCitteSAkcmVzdWx0ID0gJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSwgbWlu KGEpLCBtYXgoYSkgRlJPTSBzY2gxLnRhYjEiKTsKK2lzKCRyZXN1bHQsIHFxKDB8fCksCisJJ2No ZWNrIHRoZXJlIGlzIG5vIGluaXRpYWwgZGF0YSBjb3BpZWQgZm9yIHRoZSBleGNsdWRlZCB0YWJs ZScpOworCisjIEluc2VydCBzb21lIGRhdGEgYW5kIHZlcmlmeSB0aGF0IGluc2VydGVkIGRhdGEg aXMgbm90IHJlcGxpY2F0ZWQKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs CisJIklOU0VSVCBJTlRPIHNjaDEudGFiMSBWQUxVRVMoZ2VuZXJhdGVfc2VyaWVzKDExLDIwKSki KTsKKworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX3NjaGVtYScp OworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJ IlNFTEVDVCBjb3VudCgqKSwgbWluKGEpLCBtYXgoYSkgRlJPTSBzY2gxLnRhYjEiKTsKK2lzKCRy ZXN1bHQsIHFxKDB8fCksICdjaGVjayByZXBsaWNhdGVkIGluc2VydHMgb24gc3Vic2NyaWJlcicp OworCisjIEFsdGVyIHB1YmxpY2F0aW9uIHRvIGV4Y2x1ZGUgZGF0YSBjaGFuZ2VzIGluIHB1Ymxp Yy50YWIxIGFuZCB2ZXJpZnkgdGhhdAorIyBzdWJzY3JpYmVyIGRvZXMgbm90IGdldCB0aGUgY2hh bmdlZCBkYXRhIGZvciB0aGlzIHRhYmxlLgorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJ J3Bvc3RncmVzJywgcXEoCisJQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9zY2hlbWEgUkVTRVQ7 CisJQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9zY2hlbWEgQUREIEFMTCBUQUJMRVMgRVhDRVBU IFRBQkxFIChzY2gxLnRhYjEsIHB1YmxpYy50YWIxKTsKKwlJTlNFUlQgSU5UTyBwdWJsaWMudGFi MSBWQUxVRVMoZ2VuZXJhdGVfc2VyaWVzKDEsMTApKTsKKykpOworJG5vZGVfcHVibGlzaGVyLT53 YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX3NjaGVtYScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIlNFTEVDVCBjb3VudCgqKSwgbWluKGEp LCBtYXgoYSkgRlJPTSBwdWJsaWMudGFiMSIpOworaXMoJHJlc3VsdCwgcXEoMHx8KSwgJ2NoZWNr IHJvd3Mgb24gc3Vic2NyaWJlciBjYXRjaHVwJyk7CisKKyMgY2xlYW51cAorJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgUFVCTElDQVRJT04gdGFwX3B1Yl9zY2hl bWEiKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiRFJPUCBTVUJT Q1JJUFRJT04gdGFwX3N1Yl9zY2hlbWEiKTsKKworCisjIENoZWNrIGJlaGF2aW91ciBvZiBwdWJs aXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCBhbmQgRVhDRVBUIGNsYXVzZSB3aXRoCisjIHBhcnRpdGlv bmVkIHRhYmxlIG9yIHBhcnRpaXRpb25zIG9mIHBhcnRpdGlvbmVkIHRhYmxlLgorJG5vZGVfcHVi bGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJQ1JFQVRFIFRBQkxFIHNjaDEu dDEoYSBpbnQpIFBBUlRJVElPTiBCWSBSQU5HRShhKTsKKwlDUkVBVEUgVEFCTEUgc2NoMS5wYXJ0 MSBQQVJUSVRJT04gT0Ygc2NoMS50MSBGT1IgVkFMVUVTIEZST00gKDApIFRPICg1KTsKKwlJTlNF UlQgSU5UTyBzY2gxLnQxIFZBTFVFUyAoMSk7CispKTsKKworJG5vZGVfc3Vic2NyaWJlci0+c2Fm ZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUNSRUFURSBUQUJMRSBzY2gxLnQxKGEgaW50KTsK KwlDUkVBVEUgVEFCTEUgc2NoMS5wYXJ0MShhIGludCk7CispKTsKKworIyBwdWJsaXNoX3ZpYV9w YXJ0aXRpb25fcm9vdCA9IGZhbHNlIGFuZCBFWENFUFQgc2NoMS5wYXJ0MQorJG5vZGVfcHVibGlz aGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWJf cGFydCBGT1IgQUxMIFRBQkxFUyBFWENFUFQgVEFCTEUgKHNjaDEucGFydDEpIik7Ciskbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQ1JFQVRFIFNVQlNDUklQVElPTiB0 YXBfc3ViX3BhcnQgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElPTiB0 YXBfcHViX3BhcnQiCispOworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9u X3N5bmMoJG5vZGVfcHVibGlzaGVyLCAndGFwX3N1Yl9wYXJ0Jyk7Ciskbm9kZV9wdWJsaXNoZXIt PnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiSU5TRVJUIElOVE8gc2NoMS50MSBWQUxVRVMgKDIpIik7 Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfcGFydCcpOworCisk cmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1Qg KiBGUk9NIHNjaDEudDEiKTsKK2lzKCRyZXN1bHQsIHFxKCksICdjaGVjayByb3dzIG9uIHBhcnRp dGlvbmVkIHRhYmxlJyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gc2NoMS5wYXJ0MSIpOworaXMoJHJlc3VsdCwgcXEo KSwgJ2NoZWNrIHJvd3Mgb24gcGFydGl0aW9ucycpOworCisjIHB1Ymxpc2hfdmlhX3BhcnRpdGlv bl9yb290ID0gZmFsc2UgYW5kIEVYQ0VQVCBzY2gxLnQxCiskbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgKKwkncG9zdGdyZXMnLCBxcSgKKwlBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX3BhcnQg UkVTRVQ7CisJQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IEFERCBBTEwgVEFCTEVTIEVY Q0VQVCAoc2NoMS50MSk7CispKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9wYXJ0IFJFRlJFU0ggUFVCTElDQVRJ T04iKTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2Rl X3B1Ymxpc2hlciwgJ3RhcF9zdWJfcGFydCcpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIklOU0VSVCBJTlRPIHNjaDEudDEgVkFMVUVTICgzKSIpOworJG5vZGVfcHVi bGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX3BhcnQnKTsKKworJHJlc3VsdCA9ICRu b2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSBzY2gx LnQxIik7CitpcygkcmVzdWx0LCBxcSgpLCAnY2hlY2sgcm93cyBvbiBwYXJ0aXRpb25lZCB0YWJs ZScpOworCiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICJTRUxFQ1QgKiBGUk9NIHNjaDEucGFydDEiKTsKK2lzKCAkcmVzdWx0LCBxcSgxCisyCiszKSwg J2NoZWNrIHJvd3Mgb24gcGFydGl0aW9ucycpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIlRSVU5DQVRFIHNjaDEudDEiKTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9m b3JfY2F0Y2h1cCgndGFwX3N1Yl9wYXJ0Jyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIkRST1AgU1VCU0NSSVBUSU9OIHRhcF9zdWJfcGFydCIpOworJG5vZGVfcHVi bGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRST1AgUFVCTElDQVRJT04gdGFwX3B1Yl9w YXJ0OyIpOworCisjIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290ID0gdHJ1ZSBhbmQgRVhDRVBU IHNjaDEudDEKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAor CUNSRUFURSBQVUJMSUNBVElPTiB0YXBfcHViX3BhcnQgRk9SIEFMTCBUQUJMRVMgRVhDRVBUIFRB QkxFIChzY2gxLnQxKSBXSVRIIChwdWJsaXNoX3ZpYV9wYXJ0aXRpb25fcm9vdCk7CisJSU5TRVJU IElOVE8gc2NoMS50MSBWQUxVRVMgKDEpCispKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorCSJDUkVBVEUgU1VCU0NSSVBUSU9OIHRhcF9zdWJfcGFydCBDT05ORUNU SU9OICckcHVibGlzaGVyX2Nvbm5zdHInIFBVQkxJQ0FUSU9OIHRhcF9wdWJfcGFydCIKKyk7Cisk bm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3luYygkbm9kZV9wdWJsaXNo ZXIsICd0YXBfc3ViX3BhcnQnKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICJJTlNFUlQgSU5UTyBzY2gxLnQxIFZBTFVFUyAoMikiKTsKKyRub2RlX3B1Ymxpc2hlci0+ d2FpdF9mb3JfY2F0Y2h1cCgndGFwX3N1Yl9wYXJ0Jyk7CisKKyRyZXN1bHQgPSAkbm9kZV9zdWJz Y3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gc2NoMS50MSIpOwor aXMoJHJlc3VsdCwgcXEoKSwgJ2NoZWNrIHJvd3Mgb24gcGFydGl0aW9uZWQgdGFibGUnKTsKKwor JHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNU ICogRlJPTSBzY2gxLnBhcnQxIik7CitpcygkcmVzdWx0LCBxcSgpLCAnY2hlY2sgcm93cyBvbiBw YXJ0aXRpb25zJyk7CisKKyMgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSB0cnVlIGFuZCBF WENFUFQgc2NoMS5wYXJ0MQorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVz JywgcXEoCisJQUxURVIgUFVCTElDQVRJT04gdGFwX3B1Yl9wYXJ0IFJFU0VUOworCUFMVEVSIFBV QkxJQ0FUSU9OIHRhcF9wdWJfcGFydCBBREQgQUxMIFRBQkxFUyBFWENFUFQgKHNjaDEucGFydDEp OworCUFMVEVSIFBVQkxJQ0FUSU9OIHRhcF9wdWJfcGFydCBTRVQgKHB1Ymxpc2hfdmlhX3BhcnRp dGlvbl9yb290KTsKKykpOworJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs CisJIkFMVEVSIFNVQlNDUklQVElPTiB0YXBfc3ViX3BhcnQgUkVGUkVTSCBQVUJMSUNBVElPTiIp OworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVfcHVi bGlzaGVyLCAndGFwX3N1Yl9wYXJ0Jyk7Ciskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAiSU5TRVJUIElOVE8gc2NoMS50MSBWQUxVRVMgKDMpIik7Ciskbm9kZV9wdWJsaXNo ZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfcGFydCcpOworCiskcmVzdWx0ID0gJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHNjaDEudDEi KTsKK2lzKCAkcmVzdWx0LCBxcSgxCisyCiszKSwgJ2NoZWNrIHJvd3Mgb24gcGFydGl0aW9uZWQg dGFibGUnKTsKKworJHJlc3VsdCA9ICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLCAiU0VMRUNUICogRlJPTSBzY2gxLnBhcnQxIik7CitpcygkcmVzdWx0LCBxcSgpLCAnY2hl Y2sgcm93cyBvbiBwYXJ0aXRpb25zJyk7CisKKyRub2RlX3N1YnNjcmliZXItPnN0b3AoJ2Zhc3Qn KTsKKyRub2RlX3B1Ymxpc2hlci0+c3RvcCgnZmFzdCcpOworCitkb25lX3Rlc3RpbmcoKTsKLS0g CjIuMzQuMQoK --000000000000b3632e06451ef149 Content-Type: application/octet-stream; name="v29-0002-Support-ADD-ALL-TABLES-in-ALTER-PUBLICATION.patch" Content-Disposition: attachment; filename="v29-0002-Support-ADD-ALL-TABLES-in-ALTER-PUBLICATION.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mirdh9aj1 RnJvbSBhY2I3ZGRiYjRhNTM3NzZjOTQ1MWEyMTBiZWQzZDUzNzgxYzgxZTIyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMSBEZWMgMjAyNSAxNjoxNzo1MyArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjI5 IDIvNF0gU3VwcG9ydCBBREQgQUxMIFRBQkxFUyBpbiBBTFRFUiBQVUJMSUNBVElPTgoKVGhpcyBw YXRjaCBhZGRzIHN1cHBvcnQgZm9yIHVzaW5nIEFERCBBTEwgVEFCTEVTIGluIEFMVEVSIFBVQkxJ Q0FUSU9OLAphbGxvd2luZyBhbiBleGlzdGluZyBwdWJsaWNhdGlvbiB0byBiZSBjaGFuZ2VkIGlu dG8gYW4gQUxMIFRBQkxFUwpwdWJsaWNhdGlvbi4gVGhpcyBjb21tYW5kIGlzIHBlcm1pdHRlZCBv bmx5IHdoZW4gdGhlIHB1YmxpY2F0aW9uIGhhdmUKbm8gdGFibGVzIG9yIHNjaGVtYXMgZXhwbGlj aXRseSBhZGRlZCBhbmQgaXRzIEFMTCBUQUJMRVMgZmxhZyBpcyBub3QKc2V0LgpVc2FnZToKQUxU RVIgUFVCTElDQVRJT04gcHViMSBBREQgQUxMIFRBQkxFUwotLS0KIGRvYy9zcmMvc2dtbC9sb2dp Y2FsLXJlcGxpY2F0aW9uLnNnbWwgICAgIHwgMTAgKy0tCiBkb2Mvc3JjL3NnbWwvcmVmL2FsdGVy X3B1YmxpY2F0aW9uLnNnbWwgICB8IDE0ICsrKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3B1Ymxp Y2F0aW9uY21kcy5jICAgIHwgODMgKysrKysrKysrKysrKysrKysrKysrLS0KIHNyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgIHwgMTAgKysrCiBzcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmluLmMgICAgICAgICAgICB8ICAyICstCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmggICAgICAgICAgICB8ICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVi bGljYXRpb24ub3V0IHwgNjIgKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3B1YmxpY2F0aW9uLnNxbCAgICAgIHwgNDIgKysrKysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQs IDIxNCBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVw bGljYXRpb24uc2dtbAppbmRleCBhYTAxM2YzNDhkNC4uYzQyMDQ2OWZlYWEgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21s L2xvZ2ljYWwtcmVwbGljYXRpb24uc2dtbApAQCAtMjU1MCwxMCArMjU1MCwxMiBAQCBDT05URVhU OiAgcHJvY2Vzc2luZyByZW1vdGUgZGF0YSBmb3IgcmVwbGljYXRpb24gb3JpZ2luICJwZ18xNjM5 NSIgZHVyaW5nICJJTlNFUgogICA8L3BhcmE+CiAKICAgPHBhcmE+Ci0gICBUbyBhZGQgdGFibGVz IHRvIGEgcHVibGljYXRpb24sIHRoZSB1c2VyIG11c3QgaGF2ZSBvd25lcnNoaXAgcmlnaHRzIG9u IHRoZQotICAgdGFibGUuIFRvIGFkZCBhbGwgdGFibGVzIGluIHNjaGVtYSB0byBhIHB1YmxpY2F0 aW9uLCB0aGUgdXNlciBtdXN0IGJlIGEKLSAgIHN1cGVydXNlci4gVG8gY3JlYXRlIGEgcHVibGlj YXRpb24gdGhhdCBwdWJsaXNoZXMgYWxsIHRhYmxlcywgYWxsIHRhYmxlcyBpbgotICAgc2NoZW1h LCBvciBhbGwgc2VxdWVuY2VzIGF1dG9tYXRpY2FsbHksIHRoZSB1c2VyIG11c3QgYmUgYSBzdXBl cnVzZXIuCisgICBUbyBjcmVhdGUgYSBwdWJsaWNhdGlvbiB1c2luZyA8bGl0ZXJhbD5GT1IgQUxM IFRBQkxFUzwvbGl0ZXJhbD4sCisgICA8bGl0ZXJhbD5GT1IgQUxMIFNFUVVFTkNFUzwvbGl0ZXJh bD4gb3IKKyAgIDxsaXRlcmFsPkZPUiBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiwgdGhlIHVz ZXIgbXVzdCBiZSBhIHN1cGVydXNlci4gVG8gYWRkCisgICA8bGl0ZXJhbD5BTEwgVEFCTEVTPC9s aXRlcmFsPiBvciA8bGl0ZXJhbD5UQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiB0byBhCisgICBw dWJsaWNhdGlvbiwgdGhlIHVzZXIgbXVzdCBiZSBhIHN1cGVydXNlci4gVG8gYWRkIHRhYmxlcyB0 byBhIHB1YmxpY2F0aW9uLAorICAgdGhlIHVzZXIgbXVzdCBoYXZlIG93bmVyc2hpcCByaWdodHMg b24gdGhlIHRhYmxlLgogICA8L3BhcmE+CiAKICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVy X3B1YmxpY2F0aW9uLnNnbWwKaW5kZXggN2Q3ZTYzNDE5MjEuLjBhYjJhOWQwMDdlIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3Ny Yy9zZ21sL3JlZi9hbHRlcl9wdWJsaWNhdGlvbi5zZ21sCkBAIC0yNCw2ICsyNCw3IEBAIFBvc3Rn cmVTUUwgZG9jdW1lbnRhdGlvbgogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBBREQgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnB1YmxpY2F0aW9uX29iamVjdDwvcmVwbGFjZWFibGU+IFssIC4uLl0KIEFMVEVS IFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWJsZT4gU0VUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wdWJsaWNhdGlvbl9vYmpl Y3Q8L3JlcGxhY2VhYmxlPiBbLCAuLi5dCiBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IERST1AgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnB1YmxpY2F0aW9uX2Ryb3Bfb2JqZWN0PC9yZXBsYWNlYWJsZT4gWywg Li4uXQorQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5h bWU8L3JlcGxhY2VhYmxlPiBBREQgQUxMIFRBQkxFUwogQUxURVIgUFVCTElDQVRJT04gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgKCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJs ZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5d IFssIC4uLiBdICkKIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gT1dORVIgVE8geyA8cmVwbGFjZWFibGU+bmV3X293bmVy PC9yZXBsYWNlYWJsZT4gfCBDVVJSRU5UX1JPTEUgfCBDVVJSRU5UX1VTRVIgfCBTRVNTSU9OX1VT RVIgfQogQUxURVIgUFVCTElDQVRJT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5h bWU8L3JlcGxhY2VhYmxlPiBSRU5BTUUgVE8gPHJlcGxhY2VhYmxlPm5ld19uYW1lPC9yZXBsYWNl YWJsZT4KQEAgLTkxLDYgKzkyLDE2IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVTRVQKICAgICA8L2xpc3RpdGVt PgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+CisgICAgPHRlcm0+PGxp dGVyYWw+QUREIEFMTCBUQUJMRVM8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAg ICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gYWRkcyBhbGwgdGFibGVzIHRvIHRoZSBwdWJsaWNh dGlvbi4gVGhpcyByZXF1aXJlcyB0aGUKKyAgICAgIHB1YmxpY2F0aW9uIHRvIG5vdCBoYXZlIGFu eSBleGlzdGluZyB0YWJsZSBvciBzY2hlbWEgbGlzdC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlz dGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgPHZhcmxpc3RlbnRyeT4KICAgICA8dGVy bT48bGl0ZXJhbD5TRVQgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cHVibGljYXRp b25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4gWz0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT5dIFssIC4uLiBdICk8L2xpdGVyYWw+PC90ZXJtPgogICAg IDxsaXN0aXRlbT4KQEAgLTE1Nyw3ICsxNjgsOCBAQCBBTFRFUiBQVUJMSUNBVElPTiA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFJFU0VUCiAgIDxwYXJh PgogICAgWW91IG11c3Qgb3duIHRoZSBwdWJsaWNhdGlvbiB0byB1c2UgPGNvbW1hbmQ+QUxURVIg UFVCTElDQVRJT048L2NvbW1hbmQ+LgogICAgQWRkaW5nIGEgdGFibGUgdG8gYSBwdWJsaWNhdGlv biBhZGRpdGlvbmFsbHkgcmVxdWlyZXMgb3duaW5nIHRoYXQgdGFibGUuCi0gICBUaGUgPGxpdGVy YWw+QUREIFRBQkxFUyBJTiBTQ0hFTUE8L2xpdGVyYWw+LAorICAgVGhlIDxsaXRlcmFsPkFERCBB TEwgVEFCTEVTPC9saXRlcmFsPiwKKyAgIDxsaXRlcmFsPkFERCBUQUJMRVMgSU4gU0NIRU1BPC9s aXRlcmFsPiwKICAgIDxsaXRlcmFsPlNFVCBUQUJMRVMgSU4gU0NIRU1BPC9saXRlcmFsPiB0byBh IHB1YmxpY2F0aW9uIGFuZAogICAgPGxpdGVyYWw+UkVTRVQ8L2xpdGVyYWw+IG9mIHB1YmxpY2F0 aW9uIHJlcXVpcmVzIHRoZSBpbnZva2luZyB1c2VyIHRvIGJlIGEKICAgIHN1cGVydXNlci4gVG8g YWx0ZXIgdGhlIG93bmVyLCB5b3UgbXVzdCBiZSBhYmxlIHRvCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1 YmxpY2F0aW9uY21kcy5jCmluZGV4IDRmODM0MmY3MjFjLi43YTkwMjBhZDQzZiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKKysrIGIvc3JjL2JhY2tl bmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMKQEAgLTEzMjUsNiArMTMyNSw3OSBAQCBBbHRl clB1YmxpY2F0aW9uUmVzZXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1YmxpY2F0aW9uU3Rt dCAqc3RtdCwKIAlDbG9zZVRhYmxlTGlzdChyZWxzKTsKIH0KIAorLyoKKyAqIENoZWNrIHdoZXRo ZXIgd2UgY2FuIGFsdGVyIHRoZSBwdWJsaWNhdGlvbiB0byBhZGQgQUxMIFRBQkxFUy4KKyAqCisg KiBJdCBpcyBub3QgYWxsb3dlZCBpZiB0aGUgcHVibGljYXRpb24gYWxyZWFkeSBpcyBkZWZpbmVk IGFzIEFMTCBUQUJMRVMsIG9yCisgKiBpZiB0aGVyZSBhcmUgYW55IHNjaGVtYXMgb3IgdGFibGVz IGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24uCisgKi8KK3N0YXRpYyB2b2lkCitDaGVj a0FsdGVyUHVibGljYXRpb25BbGxUYWJsZXMoSGVhcFR1cGxlIHR1cCkKK3sKKwlMaXN0CSAgICpw dWJvYmpzOworCUZvcm1fcGdfcHVibGljYXRpb24gcHViZm9ybSA9IChGb3JtX3BnX3B1YmxpY2F0 aW9uKSBHRVRTVFJVQ1QodHVwKTsKKworCWlmIChwdWJmb3JtLT5wdWJhbGx0YWJsZXMpCisJCWVy ZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlT SVRFX1NUQVRFKSwKKwkJCQllcnJtc2coInB1YmxpY2F0aW9uIFwiJXNcIiBpcyBhbHJlYWR5IGRl ZmluZWQgYXMgRk9SIEFMTCBUQUJMRVMiLAorCQkJCQkgICBOYW1lU3RyKHB1YmZvcm0tPnB1Ym5h bWUpKSk7CisKKwlwdWJvYmpzID0gR2V0UHVibGljYXRpb25TY2hlbWFzKHB1YmZvcm0tPm9pZCk7 CisJaWYgKGxpc3RfbGVuZ3RoKHB1Ym9ianMpKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCWVycmNv ZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCisJCQkJZXJybXNn KCJwdWJsaWNhdGlvbiBcIiVzXCIgaGFzIHNjaGVtYXMgYXNzb2NpYXRlZCB3aXRoIGl0IiwKKwkJ CQkJICAgTmFtZVN0cihwdWJmb3JtLT5wdWJuYW1lKSksCisJCQkJZXJyZGV0YWlsKCJBTEwgVEFC TEVTIGNhbm5vdCBiZSBhZGRlZCB3aGVuIHNjaGVtYXMgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUg cHVibGljYXRpb24uIikpOworCisJcHVib2JqcyA9IEdldFB1YmxpY2F0aW9uUmVsYXRpb25zKHB1 YmZvcm0tPm9pZCwgUFVCTElDQVRJT05fUEFSVF9ST09UKTsKKwlpZiAobGlzdF9sZW5ndGgocHVi b2JqcykpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1Rf SU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKKwkJCQllcnJtc2coInB1YmxpY2F0aW9uIFwiJXNcIiBo YXMgdGFibGVzIGFzc29jaWF0ZWQgd2l0aCBpdCIsCisJCQkJCSAgIE5hbWVTdHIocHViZm9ybS0+ cHVibmFtZSkpLAorCQkJCWVycmRldGFpbCgiQUxMIFRBQkxFUyBjYW5ub3QgYmUgYWRkZWQgd2hl biB0YWJsZXMgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcHVibGljYXRpb24uIikpOworfQorCisv KgorICogU2V0IHB1YmxpY2F0aW9uIHRvIHB1Ymxpc2ggYWxsIHRhYmxlcy4KKyAqLworc3RhdGlj IHZvaWQKK0FsdGVyUHVibGljYXRpb25TZXRBbGxUYWJsZXMoUmVsYXRpb24gcmVsLCBIZWFwVHVw bGUgdHVwKQoreworCUZvcm1fcGdfcHVibGljYXRpb24gcHViZm9ybSA9IChGb3JtX3BnX3B1Ymxp Y2F0aW9uKSBHRVRTVFJVQ1QodHVwKTsKKwlib29sCQludWxsc1tOYXR0c19wZ19wdWJsaWNhdGlv bl07CisJYm9vbAkJcmVwbGFjZXNbTmF0dHNfcGdfcHVibGljYXRpb25dOworCURhdHVtCQl2YWx1 ZXNbTmF0dHNfcGdfcHVibGljYXRpb25dOworCisJLyogQWRkIEFMTCBUQUJMRVMgdG8gdGhlIHB1 YmxpY2F0aW9uIHJlcXVpcmVzIHN1cGVydXNlciAqLworCWlmICghc3VwZXJ1c2VyKCkpCisJCWVy ZXBvcnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX0lOU1VGRklDSUVOVF9QUklWSUxFR0Up LAorCQkJCWVycm1zZygibXVzdCBiZSBzdXBlcnVzZXIgdG8gQUREIEFMTCBUQUJMRVMgdG8gdGhl IHB1YmxpY2F0aW9uIikpOworCisJLyogTG9jayB0aGUgcHVibGljYXRpb24gc28gbm9ib2R5IGVs c2UgY2FuIGRvIGFueXRoaW5nIHdpdGggaXQuICovCisJTG9ja0RhdGFiYXNlT2JqZWN0KFB1Ymxp Y2F0aW9uUmVsYXRpb25JZCwgcHViZm9ybS0+b2lkLCAwLAorCQkJCQkgICBBY2Nlc3NFeGNsdXNp dmVMb2NrKTsKKworCUNoZWNrQWx0ZXJQdWJsaWNhdGlvbkFsbFRhYmxlcyh0dXApOworCisJbWVt c2V0KHZhbHVlcywgMCwgc2l6ZW9mKHZhbHVlcykpOworCW1lbXNldChudWxscywgZmFsc2UsIHNp emVvZihudWxscykpOworCW1lbXNldChyZXBsYWNlcywgZmFsc2UsIHNpemVvZihyZXBsYWNlcykp OworCisJLyogU2V0IEFMTCBUQUJMRVMgZmxhZyAqLworCXZhbHVlc1tBbnVtX3BnX3B1YmxpY2F0 aW9uX3B1YmFsbHRhYmxlcyAtIDFdID0gQm9vbEdldERhdHVtKHRydWUpOworCXJlcGxhY2VzW0Fu dW1fcGdfcHVibGljYXRpb25fcHViYWxsdGFibGVzIC0gMV0gPSB0cnVlOworCisJdHVwID0gaGVh cF9tb2RpZnlfdHVwbGUodHVwLCBSZWxhdGlvbkdldERlc2NyKHJlbCksIHZhbHVlcywgbnVsbHMs CisJCQkJCQkJcmVwbGFjZXMpOworCisJLyogVXBkYXRlIHRoZSBjYXRhbG9nLiAqLworCUNhdGFs b2dUdXBsZVVwZGF0ZShyZWwsICZ0dXAtPnRfc2VsZiwgdHVwKTsKK30KKwogLyoKICAqIEFkZCBv ciByZW1vdmUgdGFibGUgdG8vZnJvbSBwdWJsaWNhdGlvbi4KICAqLwpAQCAtMTY2Nyw2ICsxNzQw LDkgQEAgQWx0ZXJQdWJsaWNhdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFsdGVyUHVibGljYXRp b25TdG10ICpzdG10KQogCQlhY2xjaGVja19lcnJvcihBQ0xDSEVDS19OT1RfT1dORVIsIE9CSkVD VF9QVUJMSUNBVElPTiwKIAkJCQkJICAgc3RtdC0+cHVibmFtZSk7CiAKKwlpZiAoc3RtdC0+Zm9y X2FsbF90YWJsZXMpCisJCUFsdGVyUHVibGljYXRpb25TZXRBbGxUYWJsZXMocmVsLCB0dXApOwor CiAJaWYgKHN0bXQtPm9wdGlvbnMpCiAJCUFsdGVyUHVibGljYXRpb25PcHRpb25zKHBzdGF0ZSwg c3RtdCwgcmVsLCB0dXApOwogCWVsc2UgaWYgKHN0bXQtPmFjdGlvbiA9PSBBUF9SZXNldCkKQEAg LTE2ODAsMTAgKzE3NTYsNyBAQCBBbHRlclB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwg QWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0bXQpCiAJCU9iamVjdHNJblB1YmxpY2F0aW9uVG9PaWRz KHN0bXQtPnB1Ym9iamVjdHMsIHBzdGF0ZSwgJnJlbGF0aW9ucywKIAkJCQkJCQkJICAgJnNjaGVt YWlkbGlzdCk7CiAKLQkJQ2hlY2tBbHRlclB1YmxpY2F0aW9uKHN0bXQsIHR1cCwgcmVsYXRpb25z LCBzY2hlbWFpZGxpc3QpOwotCiAJCWhlYXBfZnJlZXR1cGxlKHR1cCk7Ci0KIAkJLyogTG9jayB0 aGUgcHVibGljYXRpb24gc28gbm9ib2R5IGVsc2UgY2FuIGRvIGFueXRoaW5nIHdpdGggaXQuICov CiAJCUxvY2tEYXRhYmFzZU9iamVjdChQdWJsaWNhdGlvblJlbGF0aW9uSWQsIHB1YmlkLCAwLAog CQkJCQkJICAgQWNjZXNzRXhjbHVzaXZlTG9jayk7CkBAIC0xNjkyLDcgKzE3NjUsNyBAQCBBbHRl clB1YmxpY2F0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJQdWJsaWNhdGlvblN0bXQgKnN0 bXQpCiAJCSAqIEl0IGlzIHBvc3NpYmxlIHRoYXQgYnkgdGhlIHRpbWUgd2UgYWNxdWlyZSB0aGUg bG9jayBvbiBwdWJsaWNhdGlvbiwKIAkJICogY29uY3VycmVudCBEREwgaGFzIHJlbW92ZWQgaXQu IFdlIGNhbiB0ZXN0IHRoaXMgYnkgY2hlY2tpbmcgdGhlCiAJCSAqIGV4aXN0ZW5jZSBvZiBwdWJs aWNhdGlvbi4gV2UgZ2V0IHRoZSB0dXBsZSBhZ2FpbiB0byBhdm9pZCB0aGUgcmlzawotCQkgKiBv ZiBhbnkgcHVibGljYXRpb24gb3B0aW9uIGdldHRpbmcgY2hhbmdlZC4KKwkJICogb2YgYW55IHB1 YmxpY2F0aW9uIG9wdGlvbiBvciBBTEwgVEFCTEVTIGZsYWcgZ2V0dGluZyBjaGFuZ2VkLgogCQkg Ki8KIAkJdHVwID0gU2VhcmNoU3lzQ2FjaGVDb3B5MShQVUJMSUNBVElPTk9JRCwgT2JqZWN0SWRH ZXREYXR1bShwdWJpZCkpOwogCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKQEAgLTE3MDEs NiArMTc3NCw4IEBAIEFsdGVyUHVibGljYXRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclB1 YmxpY2F0aW9uU3RtdCAqc3RtdCkKIAkJCQkJZXJybXNnKCJwdWJsaWNhdGlvbiBcIiVzXCIgZG9l cyBub3QgZXhpc3QiLAogCQkJCQkJICAgc3RtdC0+cHVibmFtZSkpOwogCisJCUNoZWNrQWx0ZXJQ dWJsaWNhdGlvbihzdG10LCB0dXAsIHJlbGF0aW9ucywgc2NoZW1haWRsaXN0KTsKKwogCQlBbHRl clB1YmxpY2F0aW9uVGFibGVzKHN0bXQsIHR1cCwgcmVsYXRpb25zLCBwc3RhdGUtPnBfc291cmNl dGV4dCwKIAkJCQkJCQkgICBzY2hlbWFpZGxpc3QgIT0gTklMKTsKIAkJQWx0ZXJQdWJsaWNhdGlv blNjaGVtYXMoc3RtdCwgdHVwLCBzY2hlbWFpZGxpc3QpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYThiOWFl NjE4MmQuLjlkNjQ4Y2NiNDdiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTEwOTEzLDYgKzEwOTEzLDggQEAg cHViX2FsbF9vYmpfdHlwZV9saXN0OglQdWJsaWNhdGlvbkFsbE9ialNwZWMKICAqCQlUQUJMRSB0 YWJsZV9uYW1lIFssIC4uLl0KICAqCQlUQUJMRVMgSU4gU0NIRU1BIHNjaGVtYV9uYW1lIFssIC4u Ll0KICAqCisgKiBBTFRFUiBQVUJMSUNBVElPTiBuYW1lIEFERCBBTEwgVEFCTEVTCisgKgogICog QUxURVIgUFVCTElDQVRJT04gbmFtZSBSRVNFVAogICoKICAqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K QEAgLTEwOTU2LDYgKzEwOTU4LDE0IEBAIEFsdGVyUHVibGljYXRpb25TdG10OgogCQkJCQluLT5h Y3Rpb24gPSBBUF9Ecm9wT2JqZWN0czsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJCX0KKwkJ CXwgQUxURVIgUFVCTElDQVRJT04gbmFtZSBBRERfUCBBTEwgVEFCTEVTCisJCQkJeworCQkJCQlB bHRlclB1YmxpY2F0aW9uU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVyUHVibGljYXRpb25TdG10KTsK KwkJCQkJbi0+cHVibmFtZSA9ICQzOworCQkJCQluLT5mb3JfYWxsX3RhYmxlcyA9IHRydWU7CisJ CQkJCW4tPmFjdGlvbiA9IEFQX0FkZE9iamVjdHM7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJ CX0KIAkJCXwgQUxURVIgUFVCTElDQVRJT04gbmFtZSBSRVNFVAogCQkJCXsKIAkJCQkJQWx0ZXJQ dWJsaWNhdGlvblN0bXQgKm4gPSBtYWtlTm9kZShBbHRlclB1YmxpY2F0aW9uU3RtdCk7CmRpZmYg LS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmluLmMKaW5kZXggODM1OTlkZTIyMjUuLmIxMTc1ZTBjMDhiIDEwMDY0NAotLS0g YS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5pbi5jCkBAIC0yMjkyLDcgKzIyOTIsNyBAQCBtYXRjaF9wcmV2aW91c193b3Jkcyhp bnQgcGF0dGVybl9pZCwKIAkJQ09NUExFVEVfV0lUSCgiQUREIiwgIkRST1AiLCAiT1dORVIgVE8i LCAiUkVOQU1FIFRPIiwgIlJFU0VUIiwgIlNFVCIpOwogCS8qIEFMVEVSIFBVQkxJQ0FUSU9OIDxu YW1lPiBBREQgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1h dGNoQW55LCAiQUREIikpCi0JCUNPTVBMRVRFX1dJVEgoIlRBQkxFUyBJTiBTQ0hFTUEiLCAiVEFC TEUiKTsKKwkJQ09NUExFVEVfV0lUSCgiQUxMIFRBQkxFUyIsICJUQUJMRVMgSU4gU0NIRU1BIiwg IlRBQkxFIik7CiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJT04iLCBNYXRj aEFueSwgIkFERHxTRVQiLCAiVEFCTEUiKSkKIAkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlko UXVlcnlfZm9yX2xpc3Rfb2ZfdGFibGVzKTsKIAllbHNlIGlmIChIZWFkTWF0Y2hlcygiQUxURVIi LCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERHxTRVQiLCAiVEFCTEUiKSAmJgpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oCmluZGV4IDhjZjc1NzI0YTdiLi5jMjJkNzVlODBhMiAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaApAQCAtNDM0Miw2ICs0MzQyLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQWx0ZXJQdWJs aWNhdGlvblN0bXQKIAkgKiBvYmplY3RzLgogCSAqLwogCUxpc3QJICAgKnB1Ym9iamVjdHM7CQkv KiBPcHRpb25hbCBsaXN0IG9mIHB1YmxpY2F0aW9uIG9iamVjdHMgKi8KKwlib29sCQlmb3JfYWxs X3RhYmxlczsgLyogU3BlY2lhbCBwdWJsaWNhdGlvbiBmb3IgYWxsIHRhYmxlcyBpbiBkYiAqLwog CUFsdGVyUHVibGljYXRpb25BY3Rpb24gYWN0aW9uOwkvKiBXaGF0IGFjdGlvbiB0byBwZXJmb3Jt IHdpdGggdGhlIGdpdmVuCiAJCQkJCQkJCQkgKiBvYmplY3RzICovCiB9IEFsdGVyUHVibGljYXRp b25TdG10OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlv bi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAppbmRleCBj ZTViM2I2NDlkNS4uZWMxMmY3Y2ZiYWEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHVibGljYXRpb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVi bGljYXRpb24ub3V0CkBAIC0yMDY0LDYgKzIwNjQsNjggQEAgQUxURVIgUFVCTElDQVRJT04gdGVz dHB1Yl9yZXNldCBSRVNFVDsKICByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCBmICAgICAgICAg IHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg ICB8IG5vbmUgICAgICAgICAgICAgIHwgZgogKDEgcm93KQogCistLSA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKy0tIFRlc3RzIGZvciBBTFRF UiBQVUJMSUNBVElPTiAuLi4gQUREIEFMTCBUQUJMRVMKKy0tIFZlcmlmeSB0aGF0IG9ubHkgc3Vw ZXJ1c2VyIGNhbiBBREQgQUxMIFRBQkxFUworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBPV05FUiBUTyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIyOworU0VUIFJPTEUgcmVncmVzc19w dWJsaWNhdGlvbl91c2VyMjsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFM TCBUQUJMRVM7IC0tIGZhaWwgLSBtdXN0IGJlIHN1cGVydXNlcgorRVJST1I6ICBtdXN0IGJlIHN1 cGVydXNlciB0byBBREQgQUxMIFRBQkxFUyB0byB0aGUgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfcmVzZXQgT1dORVIgVE8gcmVncmVzc19wdWJsaWNhdGlvbl91c2VyOwor U0VUIFJPTEUgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyOworLS0gQ2FuIGFkZCBBTEwgVEFCTEVT IHRvIGFuIGVtcHR5IHB1YmxpY2F0aW9uCitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQ7 CitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldDsKK1dBUk5JTkc6ICAid2FsX2xldmVs IiBpcyBpbnN1ZmZpY2llbnQgdG8gcHVibGlzaCBsb2dpY2FsIGNoYW5nZXMKK0hJTlQ6ICBTZXQg IndhbF9sZXZlbCIgdG8gImxvZ2ljYWwiIGJlZm9yZSBjcmVhdGluZyBzdWJzY3JpcHRpb25zLgor QUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUzsKK1xkUnArIHRl c3RwdWJfcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfcmVzZXQKKyAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBVcGRhdGVzIHwgRGVs ZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJvb3QgCistLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IHQgICAgICAgICAgfCBmICAgICAg ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICAgIHwgbm9uZSAg ICAgICAgICAgICAgfCBmCisoMSByb3cpCisKKy0tIENhbid0IGFkZCBBTEwgVEFCTEVTIHRvICdB TEwgVEFCTEVTJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBB REQgQUxMIFRBQkxFUzsKK0VSUk9SOiAgcHVibGljYXRpb24gInRlc3RwdWJfcmVzZXQiIGlzIGFs cmVhZHkgZGVmaW5lZCBhcyBGT1IgQUxMIFRBQkxFUworLS0gQ2FuIGFkZCBBTEwgVEFCTEVTIHRv IEFMTCBTRVFVRU5DRVMgcHVibGljYXRpb24KK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dDsKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IGZvciBBTEwgU0VRVUVOQ0VTOwor V0FSTklORzogICJ3YWxfbGV2ZWwiIGlzIGluc3VmZmljaWVudCB0byBwdWJsaXNoIGxvZ2ljYWwg Y2hhbmdlcworSElOVDogIFNldCAid2FsX2xldmVsIiB0byAibG9naWNhbCIgYmVmb3JlIGNyZWF0 aW5nIHN1YnNjcmlwdGlvbnMuCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFERCBB TEwgVEFCTEVTOworXGRScCsgdGVzdHB1Yl9yZXNldAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9yZXNldAorICAg ICAgICAgIE93bmVyICAgICAgICAgICB8IEFsbCB0YWJsZXMgfCBBbGwgc2VxdWVuY2VzIHwgSW5z ZXJ0cyB8IFVwZGF0ZXMgfCBEZWxldGVzIHwgVHJ1bmNhdGVzIHwgR2VuZXJhdGVkIGNvbHVtbnMg fCBWaWEgcm9vdCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc19wdWJsaWNhdGlvbl91c2VyIHwg dCAgICAgICAgICB8IHQgICAgICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAg fCB0ICAgICAgICAgfCBub25lICAgICAgICAgICAgICB8IGYKKygxIHJvdykKKworLS0gQ2FuJ3Qg YWRkIEFMTCBUQUJMRVMgdG8gJ0ZPUiBUQUJMRScgcHVibGljYXRpb24KK0FMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0 IEFERCBUQUJMRSBwdWJfc2NoMS50YmwxOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBBREQgQUxMIFRBQkxFUzsKK0VSUk9SOiAgcHVibGljYXRpb24gInRlc3RwdWJfcmVzZXQiIGhh cyB0YWJsZXMgYXNzb2NpYXRlZCB3aXRoIGl0CitERVRBSUw6ICBBTEwgVEFCTEVTIGNhbm5vdCBi ZSBhZGRlZCB3aGVuIHRhYmxlcyBhcmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBwdWJsaWNhdGlvbi4K Ky0tIENhbid0IGFkZCBBTEwgVEFCTEVTIHRvICdUQUJMRVMgSU4gU0NIRU1BJyBwdWJsaWNhdGlv bgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK0FMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfcmVzZXQgQUREIFRBQkxFUyBJTiBTQ0hFTUEgcHVibGljOworQUxURVIgUFVC TElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUzsKK0VSUk9SOiAgcHVibGljYXRp b24gInRlc3RwdWJfcmVzZXQiIGhhcyBzY2hlbWFzIGFzc29jaWF0ZWQgd2l0aCBpdAorREVUQUlM OiAgQUxMIFRBQkxFUyBjYW5ub3QgYmUgYWRkZWQgd2hlbiBzY2hlbWFzIGFyZSBhc3NvY2lhdGVk IHdpdGggdGhlIHB1YmxpY2F0aW9uLgorLS0gQ2FuIGFkZCBBTEwgVEFCTEVTIHdoZW4gdGhlICdw dWJsaXNoJywgJ3B1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290JywKKy0tICdwdWJsaXNoX2dlbmVy YXRlZF9jb2x1bW5zJyBwYXJhbWV0ZXJzIGRvZXMgbm90IGhhdmUgZGVmYXVsdCB2YWx1ZQorQUxU RVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBSRVNFVDsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfcmVzZXQgU0VUIChwdWJsaXNoID0gJycsIHB1Ymxpc2hfdmlhX3BhcnRpdGlvbl9yb290 ID0gJ3RydWUnLCBwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zID0gc3RvcmVkKTsKK0FMVEVSIFBV QkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVM7CitcZFJwKyB0ZXN0cHViX3Jl c2V0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQ dWJsaWNhdGlvbiB0ZXN0cHViX3Jlc2V0CisgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxs IHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJbnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBU cnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1ucyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0K KyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIgfCB0ICAgICAgICAgIHwgZiAgICAgICAgICAgICB8 IGYgICAgICAgfCBmICAgICAgIHwgZiAgICAgICB8IGYgICAgICAgICB8IHN0b3JlZCAgICAgICAg ICAgIHwgdAorKDEgcm93KQorCiBEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQ7CiBEUk9Q IFRBQkxFIHB1Yl9zY2gxLnRibDE7CiBEUk9QIFNDSEVNQSBwdWJfc2NoMTsKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3B1YmxpY2F0aW9uLnNxbAppbmRleCBmMDQzMmY2N2I0YS4uNTI1OTMzMTEzN2IgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL3NxbC9wdWJsaWNhdGlvbi5zcWwKQEAgLTEyOTksNiArMTI5OSw0OCBAQCBBTFRF UiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFNFVCAocHVibGlzaF9nZW5lcmF0ZWRfY29sdW1u cyA9IHN0b3JlZCk7CiBBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOwogXGRS cCsgdGVzdHB1Yl9yZXNldAogCistLSA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KKworLS0gVGVzdHMgZm9yIEFMVEVSIFBVQkxJQ0FUSU9OIC4u LiBBREQgQUxMIFRBQkxFUworLS0gVmVyaWZ5IHRoYXQgb25seSBzdXBlcnVzZXIgY2FuIEFERCBB TEwgVEFCTEVTCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9XTkVSIFRPIHJlZ3Jl c3NfcHVibGljYXRpb25fdXNlcjI7CitTRVQgUk9MRSByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIy OworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUzsgLS0gZmFp bCAtIG11c3QgYmUgc3VwZXJ1c2VyCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IE9X TkVSIFRPIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlcjsKK1NFVCBST0xFIHJlZ3Jlc3NfcHVibGlj YXRpb25fdXNlcjsKKworLS0gQ2FuIGFkZCBBTEwgVEFCTEVTIHRvIGFuIGVtcHR5IHB1YmxpY2F0 aW9uCitEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQ7CitDUkVBVEUgUFVCTElDQVRJT04g dGVzdHB1Yl9yZXNldDsKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBU QUJMRVM7CitcZFJwKyB0ZXN0cHViX3Jlc2V0CisKKy0tIENhbid0IGFkZCBBTEwgVEFCTEVTIHRv ICdBTEwgVEFCTEVTJyBwdWJsaWNhdGlvbgorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNl dCBBREQgQUxMIFRBQkxFUzsKKworLS0gQ2FuIGFkZCBBTEwgVEFCTEVTIHRvIEFMTCBTRVFVRU5D RVMgcHVibGljYXRpb24KK0RST1AgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldDsKK0NSRUFURSBQ VUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IGZvciBBTEwgU0VRVUVOQ0VTOworQUxURVIgUFVCTElD QVRJT04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUzsKK1xkUnArIHRlc3RwdWJfcmVzZXQK KworLS0gQ2FuJ3QgYWRkIEFMTCBUQUJMRVMgdG8gJ0ZPUiBUQUJMRScgcHVibGljYXRpb24KK0FM VEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQgUkVTRVQ7CitBTFRFUiBQVUJMSUNBVElPTiB0 ZXN0cHViX3Jlc2V0IEFERCBUQUJMRSBwdWJfc2NoMS50YmwxOworQUxURVIgUFVCTElDQVRJT04g dGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUzsKKworLS0gQ2FuJ3QgYWRkIEFMTCBUQUJMRVMg dG8gJ1RBQkxFUyBJTiBTQ0hFTUEnIHB1YmxpY2F0aW9uCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0 cHViX3Jlc2V0IFJFU0VUOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9yZXNldCBBREQgVEFC TEVTIElOIFNDSEVNQSBwdWJsaWM7CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0IEFE RCBBTEwgVEFCTEVTOworCistLSBDYW4gYWRkIEFMTCBUQUJMRVMgd2hlbiB0aGUgJ3B1Ymxpc2gn LCAncHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QnLAorLS0gJ3B1Ymxpc2hfZ2VuZXJhdGVkX2Nv bHVtbnMnIHBhcmFtZXRlcnMgZG9lcyBub3QgaGF2ZSBkZWZhdWx0IHZhbHVlCitBTFRFUiBQVUJM SUNBVElPTiB0ZXN0cHViX3Jlc2V0IFJFU0VUOworQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9y ZXNldCBTRVQgKHB1Ymxpc2ggPSAnJywgcHVibGlzaF92aWFfcGFydGl0aW9uX3Jvb3QgPSAndHJ1 ZScsIHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMgPSBzdG9yZWQpOworQUxURVIgUFVCTElDQVRJ T04gdGVzdHB1Yl9yZXNldCBBREQgQUxMIFRBQkxFUzsKK1xkUnArIHRlc3RwdWJfcmVzZXQKKwog RFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX3Jlc2V0OwogRFJPUCBUQUJMRSBwdWJfc2NoMS50Ymwx OwogRFJPUCBTQ0hFTUEgcHViX3NjaDE7Ci0tIAoyLjM0LjEKCg== --000000000000b3632e06451ef149 Content-Type: application/octet-stream; name="v29-0004-Skip-publishing-the-columns-specified-in-FOR-TAB.patch" Content-Disposition: attachment; filename="v29-0004-Skip-publishing-the-columns-specified-in-FOR-TAB.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mirdh9au3 RnJvbSBmYzgyZjBmM2RjNzQyODk1OWRjZDE4NWNjZGI2ZmQ0MzZlMzIzNTVkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBTaGxvayBLeWFsIDxzaGxvay5reWFsLm9zc0BnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMSBEZWMgMjAyNSAxNzoxNjozMCArMDUzMApTdWJqZWN0OiBbUEFUQ0ggdjI5 IDQvNF0gU2tpcCBwdWJsaXNoaW5nIHRoZSBjb2x1bW5zIHNwZWNpZmllZCBpbiBGT1IgVEFCTEUK IEVYQ0VQVAoKQSBuZXcgIlRBQkxFIHRhYmxlX25hbWUgRVhDRVBUIChjb2x1bW5fbGlzdCkiIGNs YXVzZSBmb3IgQ1JFQVRFL0FMVEVSClBVQkxJQ0FUSU9OIGFsbG93cyBvbmUgb3IgbW9yZSBjb2x1 bW5zIHRvIGJlIGV4Y2x1ZGVkLiBUaGUgcHVibGlzaGVyCndpbGwgbm90IHNlbmQgdGhlIGRhdGEg b2YgZXhjbHVkZWQgY29sdW1ucyB0byB0aGUgc3Vic2NyaWJlci4KClRoZSBuZXcgc3ludGF4IGFs bG93cyBzcGVjaWZ5aW5nIGV4Y2x1ZGVkIGNvbHVtbiBsaXN0IHdoZW4gY3JlYXRpbmcgb3IKYWx0 ZXJpbmcgYSBwdWJsaWNhdGlvbi4gRm9yIGV4YW1wbGU6CkNSRUFURSBQVUJMSUNBVElPTiBwdWJu YW1lIEZPUiBUQUJMRSB0YWJuYW1lIEVYQ0VQVCAoY29sMSwgY29sMiwgY29sMykKb3IKQUxURVIg UFVCTElDQVRJT04gcHVibmFtZSBBREQgVEFCTEUgdGFibmFtZSBFWENFUFQgKGNvbDEsIGNvbDIs IGNvbDMpCgpXaGVuIGNvbHVtbiAicHJleGNlcHQiIG9mIHN5c3RlbSBjYXRhbG9nICJwZ19wdWJs aWNhdGlvbl9yZWwiIGlzIHNldAp0byAidHJ1ZSIsIGFuZCBjb2x1bW4gInByYXR0cnMiIG9mIHN5 c3RlbSBjYXRhbG9nICJwZ19wdWJsaWNhdGlvbl9yZWwiCmlzIG5vdCBOVUxMLCB0aGF0IG1lYW5z IHRoZSBwdWJsaWNhdGlvbiB3YXMgY3JlYXRlZCB3aXRoICJFWENFUFQKKGNvbHVtbi1saXN0KSIs IGFuZCB0aGUgY29sdW1ucyBpbiAicHJhdHRycyIgd2lsbCBiZSBleGNsdWRlZCBmcm9tCmJlaW5n IHB1Ymxpc2hlZC4KCnBnX2R1bXAgaXMgdXBkYXRlZCB0byBpZGVudGlmeSBhbmQgZHVtcCB0aGUg ZXhjbHVkZWQgY29sdW1uIGxpc3Qgb2YgdGhlCnB1YmxpY2F0aW9uLgoKVGhlIHBzcWwgXGQgZmFt aWx5IG9mIGNvbW1hbmRzIGNhbiBub3cgZGlzcGxheSBleGNsdWRlZCBjb2x1bW4gbGlzdC4gZS5n Lgpwc3FsIFxkUnArIHZhcmlhbnQgd2lsbCBub3cgZGlzcGxheSBhc3NvY2lhdGVkICJFWENFUFQg KGNvbHVtbl9saXN0KSIgaWYKYW55LgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAg ICAgICAgICAgICAgICAgICB8ICAgNSArLQogZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRp b24uc2dtbCAgICAgICAgIHwgMTA2ICsrKysrLS0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfcHVi bGljYXRpb24uc2dtbCAgICAgICB8ICAxMCArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVi bGljYXRpb24uc2dtbCAgICAgIHwgIDUyICsrKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfcHVi bGljYXRpb24uYyAgICAgICAgICB8ICA3NSArKysrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHVi bGljYXRpb25jbWRzLmMgICAgICAgIHwgIDUyICsrLS0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkgICAgICAgICAgICAgICAgICAgICB8ICA0NCArKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L2xvZ2ljYWwvdGFibGVzeW5jLmMgICB8ICA0MSArKy0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9u L3Bnb3V0cHV0L3Bnb3V0cHV0LmMgICB8ICA3MCArKysrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgIDQ1ICstLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5j ICAgICAgICAgICAgICAgICAgICAgICB8IDI2MiArKysrKysrKysrKy0tLS0tLS0KIHNyYy9iaW4v cHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAxMyArLQogc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oICAgICAgICAgIHwgICA2ICstCiBzcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5oICAgICAgfCAgIDUgKy0KIHNyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0ICAgICB8ICA4OCArKysrKysKIHNyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3B1YmxpY2F0aW9uLnNxbCAgICAgICAgICB8ICA1NCArKysrCiBzcmMvdGVz dC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQgICAgICAgICAgICAgfCAgIDEgKwogLi4uL3QvMDM4 X3JlcF9jaGFuZ2VzX2V4Y2VwdF9jb2xsaXN0LnBsICAgICAgIHwgMTkzICsrKysrKysrKysrKysK IDE5IGZpbGVzIGNoYW5nZWQsIDkwNiBpbnNlcnRpb25zKCspLCAyMTcgZGVsZXRpb25zKC0pCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDM4X3JlcF9jaGFuZ2Vz X2V4Y2VwdF9jb2xsaXN0LnBsCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNn bWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCBhNGQzMmRlNThlYy4uNzAxNDRi NjcyMTMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9z cmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC02NTg2LDcgKzY1ODYsMTAgQEAgU0NSQU0tU0hBLTI1 NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVw bGFjZWFibGU+JmwKICAgICAgIDxzdHJ1Y3RmaWVsZD5wcmV4Y2VwdDwvc3RydWN0ZmllbGQ+IDx0 eXBlPmJvb2w8L3R5cGU+CiAgICAgICA8L3BhcmE+CiAgICAgICA8cGFyYT4KLSAgICAgICBUcnVl IGlmIHRoZSByZWxhdGlvbiBtdXN0IGJlIGV4Y2x1ZGVkCisgICAgICAgVHJ1ZSBpZiB0aGUgY29s dW1uIGxpc3Qgb3IgcmVsYXRpb24gbXVzdCBiZSBleGNsdWRlZCBmcm9tIHB1YmxpY2F0aW9uLgor ICAgICAgIElmIGEgY29sdW1uIGxpc3QgaXMgc3BlY2lmaWVkIGluIDxsaXRlcmFsPnByYXR0cnM8 L2xpdGVyYWw+LCB0aGVuCisgICAgICAgZXhjbHVkZSBvbmx5IHRob3NlIGNvbHVtbnMuIElmIDxs aXRlcmFsPnByYXR0cnM8L2xpdGVyYWw+IGlzIG51bGwsCisgICAgICAgdGhlbiBleGNsdWRlIHRo ZSBlbnRpcmUgcmVsYXRpb24uCiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAK ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9sb2dpY2FsLXJlcGxpY2F0aW9uLnNnbWwgYi9kb2Mv c3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCmluZGV4IGM0MjA0NjlmZWFhLi4xNDk2 ZTFjMjhhZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2xvZ2ljYWwtcmVwbGljYXRpb24uc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbC1yZXBsaWNhdGlvbi5zZ21sCkBAIC0xMzc5LDEw ICsxMzc5LDEwIEBAIFB1YmxpY2F0aW9uczoKICAgPHRpdGxlPkNvbHVtbiBMaXN0czwvdGl0bGU+ CiAKICAgPHBhcmE+Ci0gICBFYWNoIHB1YmxpY2F0aW9uIGNhbiBvcHRpb25hbGx5IHNwZWNpZnkg d2hpY2ggY29sdW1ucyBvZiBlYWNoIHRhYmxlIGFyZQotICAgcmVwbGljYXRlZCB0byBzdWJzY3Jp YmVycy4gVGhlIHRhYmxlIG9uIHRoZSBzdWJzY3JpYmVyIHNpZGUgbXVzdCBoYXZlIGF0Ci0gICBs ZWFzdCBhbGwgdGhlIGNvbHVtbnMgdGhhdCBhcmUgcHVibGlzaGVkLiBJZiBubyBjb2x1bW4gbGlz dCBpcyBzcGVjaWZpZWQsCi0gICB0aGVuIGFsbCBjb2x1bW5zIG9uIHRoZSBwdWJsaXNoZXIgYXJl IHJlcGxpY2F0ZWQuCisgICBFYWNoIHB1YmxpY2F0aW9uIGNhbiBvcHRpb25hbGx5IHNwZWNpZnkg d2hpY2ggY29sdW1ucyBvZiBlYWNoIHRhYmxlIHNob3VsZCBiZQorICAgcmVwbGljYXRlZCBvciBl eGNsdWRlZCBmcm9tIHJlcGxpY2F0aW9uLiBUaGUgdGFibGUgb24gdGhlIHN1YnNjcmliZXIgc2lk ZQorICAgbXVzdCBoYXZlIGF0IGxlYXN0IGFsbCB0aGUgY29sdW1ucyB0aGF0IGFyZSBwdWJsaXNo ZWQuIElmIG5vIGNvbHVtbiBsaXN0IGlzCisgICBzcGVjaWZpZWQsIHRoZW4gYWxsIGNvbHVtbnMg b24gdGhlIHB1Ymxpc2hlciBhcmUgcmVwbGljYXRlZC4KICAgIFNlZSA8eHJlZiBsaW5rZW5kPSJz cWwtY3JlYXRlcHVibGljYXRpb24iLz4gZm9yIGRldGFpbHMgb24gdGhlIHN5bnRheC4KICAgPC9w YXJhPgogCkBAIC0xMzk2LDggKzEzOTYsMTEgQEAgUHVibGljYXRpb25zOgogCiAgIDxwYXJhPgog ICAgSWYgbm8gY29sdW1uIGxpc3QgaXMgc3BlY2lmaWVkLCBhbnkgY29sdW1ucyBhZGRlZCB0byB0 aGUgdGFibGUgbGF0ZXIgYXJlCi0gICBhdXRvbWF0aWNhbGx5IHJlcGxpY2F0ZWQuIFRoaXMgbWVh bnMgdGhhdCBoYXZpbmcgYSBjb2x1bW4gbGlzdCB3aGljaCBuYW1lcwotICAgYWxsIGNvbHVtbnMg aXMgbm90IHRoZSBzYW1lIGFzIGhhdmluZyBubyBjb2x1bW4gbGlzdCBhdCBhbGwuCisgICBhdXRv bWF0aWNhbGx5IHJlcGxpY2F0ZWQuIEhvd2V2ZXIsIGEgbm9ybWFsIGNvbHVtbiBsaXN0ICh3aXRo b3V0CisgICA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+KSBvbmx5IHJlcGxpY2F0ZXMgdGhlIHNw ZWNpZmllZCBjb2x1bW5zIGFuZCBubyBtb3JlLgorICAgVGhlcmVmb3JlLCBoYXZpbmcgYSBjb2x1 bW4gbGlzdCB0aGF0IG5hbWVzIGFsbCBjb2x1bW5zIGlzIG5vdCB0aGUgc2FtZSBhcworICAgaGF2 aW5nIG5vIGNvbHVtbiBsaXN0IGF0IGFsbCwgYXMgbW9yZSBjb2x1bW5zIG1heSBiZSBhZGRlZCB0 byB0aGUgdGFibGUKKyAgIGxhdGVyLgogICA8L3BhcmE+CiAKICAgPHBhcmE+CkBAIC0xNDA5LDYg KzE0MTIsMTQgQEAgUHVibGljYXRpb25zOgogICAgR2VuZXJhdGVkIGNvbHVtbnMgY2FuIGFsc28g YmUgc3BlY2lmaWVkIGluIGEgY29sdW1uIGxpc3QuIFRoaXMgYWxsb3dzCiAgICBnZW5lcmF0ZWQg Y29sdW1ucyB0byBiZSBwdWJsaXNoZWQsIHJlZ2FyZGxlc3Mgb2YgdGhlIHB1YmxpY2F0aW9uIHBh cmFtZXRlcgogICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXB1YmxpY2F0aW9uLXBhcmFtcy13 aXRoLXB1Ymxpc2gtZ2VuZXJhdGVkLWNvbHVtbnMiPgorICAgPGxpdGVyYWw+cHVibGlzaF9nZW5l cmF0ZWRfY29sdW1uczwvbGl0ZXJhbD48L2xpbms+LiBTcGVjaWZ5aW5nIGdlbmVyYXRlZAorICAg Y29sdW1ucyB1c2luZyB0aGUgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPiBjbGF1c2UgZXhjbHVk ZXMgdGhvc2UgY29sdW1ucworICAgZnJvbSBiZWluZyBwdWJsaXNoZWQsIHJlZ2FyZGxlc3Mgb2Yg dGhlCisgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlcHVibGljYXRpb24tcGFyYW1zLXdpdGgt cHVibGlzaC1nZW5lcmF0ZWQtY29sdW1ucyI+CisgICA8bGl0ZXJhbD5wdWJsaXNoX2dlbmVyYXRl ZF9jb2x1bW5zPC9saXRlcmFsPjwvbGluaz4gc2V0dGluZy4gSG93ZXZlciwgZm9yCisgICBnZW5l cmF0ZWQgY29sdW1ucyB0aGF0IGFyZSBub3QgbGlzdGVkIGluIHRoZSA8bGl0ZXJhbD5FWENFUFQ8 L2xpdGVyYWw+CisgICBjbGF1c2UsIHdoZXRoZXIgdGhleSBhcmUgcHVibGlzaGVkIG9yIG5vdCBz dGlsbCBkZXBlbmRzIG9uIHRoZSB2YWx1ZSBvZgorICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0 ZXB1YmxpY2F0aW9uLXBhcmFtcy13aXRoLXB1Ymxpc2gtZ2VuZXJhdGVkLWNvbHVtbnMiPgogICAg PGxpdGVyYWw+cHVibGlzaF9nZW5lcmF0ZWRfY29sdW1uczwvbGl0ZXJhbD48L2xpbms+LiBTZWUK ICAgIDx4cmVmIGxpbmtlbmQ9ImxvZ2ljYWwtcmVwbGljYXRpb24tZ2VuY29scyIvPiBmb3IgZGV0 YWlscy4KICAgPC9wYXJhPgpAQCAtMTQzMCwxMSArMTQ0MSwxNCBAQCBQdWJsaWNhdGlvbnM6CiAK ICAgPHBhcmE+CiAgICBJZiBhIHB1YmxpY2F0aW9uIHB1Ymxpc2hlcyA8Y29tbWFuZD5VUERBVEU8 L2NvbW1hbmQ+IG9yCi0gICA8Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+IG9wZXJhdGlvbnMsIGFu eSBjb2x1bW4gbGlzdCBtdXN0IGluY2x1ZGUgdGhlCi0gICB0YWJsZSdzIHJlcGxpY2EgaWRlbnRp dHkgY29sdW1ucyAoc2VlCi0gICA8eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ0YWJsZS1yZXBsaWNh LWlkZW50aXR5Ii8+KS4KKyAgIDxjb21tYW5kPkRFTEVURTwvY29tbWFuZD4gb3BlcmF0aW9ucywg YW55IGNvbHVtbiBsaXN0IG11c3QgaW5jbHVkZSB0YWJsZSdzCisgICByZXBsaWNhIGlkZW50aXR5 IGNvbHVtbnMgYW5kIGFueSBjb2x1bW4gbGlzdCBzcGVjaWZpZWQgd2l0aAorICAgPGxpdGVyYWw+ RVhDRVBUPC9saXRlcmFsPiBjbGF1c2UgbXVzdCBub3QgaW5jbHVkZSB0aGUgdGFibGUncyByZXBs aWNhCisgICBpZGVudGl0eSBjb2x1bW5zIChzZWUgPHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydGFi bGUtcmVwbGljYS1pZGVudGl0eSIvPikuCiAgICBJZiBhIHB1YmxpY2F0aW9uIHB1Ymxpc2hlcyBv bmx5IDxjb21tYW5kPklOU0VSVDwvY29tbWFuZD4gb3BlcmF0aW9ucywgdGhlbgotICAgdGhlIGNv bHVtbiBsaXN0IG1heSBvbWl0IHJlcGxpY2EgaWRlbnRpdHkgY29sdW1ucy4KKyAgIHRoZSBjb2x1 bW4gbGlzdCBtYXkgb21pdCByZXBsaWNhIGlkZW50aXR5IGNvbHVtbnMgYW5kIHRoZSBjb2x1bW4g bGlzdAorICAgc3BlY2lmaWVkIHdpdGggPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPiBjbGF1c2Ug bWF5IGluY2x1ZGUgcmVwbGljYSBpZGVudGl0eQorICAgY29sdW1ucy4KICAgPC9wYXJhPgogCiAg IDxwYXJhPgpAQCAtMTQ3OSwxOCArMTQ5MywyMSBAQCBQdWJsaWNhdGlvbnM6CiAgICA8dGl0bGU+ RXhhbXBsZXM8L3RpdGxlPgogCiAgICA8cGFyYT4KLSAgICBDcmVhdGUgYSB0YWJsZSA8c3RydWN0 bmFtZT50MTwvc3RydWN0bmFtZT4gdG8gYmUgdXNlZCBpbiB0aGUgZm9sbG93aW5nIGV4YW1wbGUu CisgICAgQ3JlYXRlIHRhYmxlcyA8c3RydWN0bmFtZT50MTwvc3RydWN0bmFtZT4gYW5kIDxzdHJ1 Y3RuYW1lPnQyPC9zdHJ1Y3RuYW1lPiB0bworICAgIGJlIHVzZWQgaW4gdGhlIGZvbGxvd2luZyBl eGFtcGxlLgogPHByb2dyYW1saXN0aW5nPgogLyogcHViICMgKi8gQ1JFQVRFIFRBQkxFIHQxKGlk IGludCwgYSB0ZXh0LCBiIHRleHQsIGMgdGV4dCwgZCB0ZXh0LCBlIHRleHQsIFBSSU1BUlkgS0VZ KGlkKSk7CisvKiBwdWIgIyAqLyBDUkVBVEUgVEFCTEUgdDIoaWQgaW50LCBhIHRleHQsIGIgdGV4 dCwgYyB0ZXh0LCBkIHRleHQsIGUgdGV4dCwgUFJJTUFSWSBLRVkoaWQpKTsKIDwvcHJvZ3JhbWxp c3Rpbmc+PC9wYXJhPgogCiAgICA8cGFyYT4KICAgICBDcmVhdGUgYSBwdWJsaWNhdGlvbiA8bGl0 ZXJhbD5wMTwvbGl0ZXJhbD4uIEEgY29sdW1uIGxpc3QgaXMgZGVmaW5lZCBmb3IKLSAgICB0YWJs ZSA8c3RydWN0bmFtZT50MTwvc3RydWN0bmFtZT4gdG8gcmVkdWNlIHRoZSBudW1iZXIgb2YgY29s dW1ucyB0aGF0IHdpbGwgYmUKLSAgICByZXBsaWNhdGVkLiBOb3RpY2UgdGhhdCB0aGUgb3JkZXIg b2YgY29sdW1uIG5hbWVzIGluIHRoZSBjb2x1bW4gbGlzdCBkb2VzCi0gICAgbm90IG1hdHRlci4K KyAgICB0YWJsZSA8c3RydWN0bmFtZT50MTwvc3RydWN0bmFtZT4sIGFuZCBhbm90aGVyIGNvbHVt biBsaXN0IGlzIGRlZmluZWQgZm9yCisgICAgdGFibGUgPHN0cnVjdG5hbWU+dDI8L3N0cnVjdG5h bWU+IHVzaW5nIHRoZSA8bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZQorICAgIHRvIHJl ZHVjZSB0aGUgbnVtYmVyIG9mIGNvbHVtbnMgdGhhdCB3aWxsIGJlIHJlcGxpY2F0ZWQuIE5vdGUg dGhhdCB0aGUgb3JkZXIKKyAgICBvZiBjb2x1bW4gbmFtZXMgaW4gdGhlIGNvbHVtbiBsaXN0cyBk b2VzIG5vdCBtYXR0ZXIuCiA8cHJvZ3JhbWxpc3Rpbmc+Ci0vKiBwdWIgIyAqLyBDUkVBVEUgUFVC TElDQVRJT04gcDEgRk9SIFRBQkxFIHQxIChpZCwgYiwgYSwgZCk7CisvKiBwdWIgIyAqLyBDUkVB VEUgUFVCTElDQVRJT04gcDEgRk9SIFRBQkxFIHQxIChpZCwgYiwgYSwgZCksIHQyIEVYQ0VQVCAo ZCwgYSk7CiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KIAogICAgIDxwYXJhPgpAQCAtMTUwNCw2 ICsxNTIxLDcgQEAgUHVibGljYXRpb25zOgogIHBvc3RncmVzIHwgZiAgICAgICAgICB8IGYgICAg ICAgICAgICAgfCB0ICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgICAgfCBub25l ICAgICAgICAgICAgICB8IGYKIFRhYmxlczoKICAgICAicHVibGljLnQxIiAoaWQsIGEsIGIsIGQp CisgICAgInB1YmxpYy50MiIgRVhDRVBUIChhLCBkKQogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+ CiAKICAgICA8cGFyYT4KQEAgLTE1MjQsMjMgKzE1NDIsNDEgQEAgSW5kZXhlczoKICAgICAidDFf cGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChpZCkKIFB1YmxpY2F0aW9uczoKICAgICAicDEiIChp ZCwgYSwgYiwgZCkKKworLyogcHViICMgKi8gXGQgdDIKKyAgICAgICAgICAgICAgICAgVGFibGUg InB1YmxpYy50MiIKKyBDb2x1bW4gfCAgVHlwZSAgIHwgQ29sbGF0aW9uIHwgTnVsbGFibGUgfCBE ZWZhdWx0CistLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0KKyBpZCAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgbm90IG51bGwgfAorIGEgICAgICB8 IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8CisgYiAgICAgIHwgdGV4dCAgICB8ICAg ICAgICAgICB8ICAgICAgICAgIHwKKyBjICAgICAgfCB0ZXh0ICAgIHwgICAgICAgICAgIHwgICAg ICAgICAgfAorIGQgICAgICB8IHRleHQgICAgfCAgICAgICAgICAgfCAgICAgICAgICB8CisgZSAg ICAgIHwgdGV4dCAgICB8ICAgICAgICAgICB8ICAgICAgICAgIHwKK0luZGV4ZXM6CisgICAgInQy X3BrZXkiIFBSSU1BUlkgS0VZLCBidHJlZSAoaWQpCitQdWJsaWNhdGlvbnM6CisgICAgInAxIiBF WENFUFQgKGEsIGQpCiA8L3Byb2dyYW1saXN0aW5nPjwvcGFyYT4KIAogICAgIDxwYXJhPgotICAg ICBPbiB0aGUgc3Vic2NyaWJlciBub2RlLCBjcmVhdGUgYSB0YWJsZSA8c3RydWN0bmFtZT50MTwv c3RydWN0bmFtZT4gd2hpY2ggbm93Ci0gICAgIG9ubHkgbmVlZHMgYSBzdWJzZXQgb2YgdGhlIGNv bHVtbnMgdGhhdCB3ZXJlIG9uIHRoZSBwdWJsaXNoZXIgdGFibGUKLSAgICAgPHN0cnVjdG5hbWU+ dDE8L3N0cnVjdG5hbWU+LCBhbmQgYWxzbyBjcmVhdGUgdGhlIHN1YnNjcmlwdGlvbgorICAgICBP biB0aGUgc3Vic2NyaWJlciBub2RlLCBjcmVhdGUgdGFibGVzIDxzdHJ1Y3RuYW1lPnQxPC9zdHJ1 Y3RuYW1lPiBhbmQKKyAgICAgPHN0cnVjdG5hbWU+dDI8L3N0cnVjdG5hbWU+IHdoaWNoIG5vdyBv bmx5IG5lZWRzIGEgc3Vic2V0IG9mIHRoZSBjb2x1bW5zCisgICAgIHRoYXQgd2VyZSBvbiB0aGUg cHVibGlzaGVyIHRhYmxlcyA8c3RydWN0bmFtZT50MTwvc3RydWN0bmFtZT4gYW5kCisgICAgIDxz dHJ1Y3RuYW1lPnQyPC9zdHJ1Y3RuYW1lPiwgYW5kIGFsc28gY3JlYXRlIHRoZSBzdWJzY3JpcHRp b24KICAgICAgPGxpdGVyYWw+czE8L2xpdGVyYWw+IHRoYXQgc3Vic2NyaWJlcyB0byB0aGUgcHVi bGljYXRpb24KICAgICAgPGxpdGVyYWw+cDE8L2xpdGVyYWw+LgogPHByb2dyYW1saXN0aW5nPgog Lyogc3ViICMgKi8gQ1JFQVRFIFRBQkxFIHQxKGlkIGludCwgYiB0ZXh0LCBhIHRleHQsIGQgdGV4 dCwgUFJJTUFSWSBLRVkoaWQpKTsKKy8qIHN1YiAjICovIENSRUFURSBUQUJMRSB0MihpZCBpbnQs IGIgdGV4dCwgYyB0ZXh0LCBlIHRleHQsIFBSSU1BUlkgS0VZKGlkKSk7CiAvKiBzdWIgIyAqLyBD UkVBVEUgU1VCU0NSSVBUSU9OIHMxCiAvKiBzdWIgLSAqLyBDT05ORUNUSU9OICdob3N0PWxvY2Fs aG9zdCBkYm5hbWU9dGVzdF9wdWIgYXBwbGljYXRpb25fbmFtZT1zMScKIC8qIHN1YiAtICovIFBV QkxJQ0FUSU9OIHAxOwogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAKICAgICA8cGFyYT4KLSAg ICAgT24gdGhlIHB1Ymxpc2hlciBub2RlLCBpbnNlcnQgc29tZSByb3dzIHRvIHRhYmxlIDxzdHJ1 Y3RuYW1lPnQxPC9zdHJ1Y3RuYW1lPi4KKyAgICAgT24gdGhlIHB1Ymxpc2hlciBub2RlLCBpbnNl cnQgc29tZSByb3dzIHRvIHRhYmxlcyA8c3RydWN0bmFtZT50MTwvc3RydWN0bmFtZT4KKyAgICAg YW5kIDxzdHJ1Y3RuYW1lPnQyPC9zdHJ1Y3RuYW1lPi4KIDxwcm9ncmFtbGlzdGluZz4KIC8qIHB1 YiAjICovIElOU0VSVCBJTlRPIHQxIFZBTFVFUygxLCAnYS0xJywgJ2ItMScsICdjLTEnLCAnZC0x JywgJ2UtMScpOwogLyogcHViICMgKi8gSU5TRVJUIElOVE8gdDEgVkFMVUVTKDIsICdhLTInLCAn Yi0yJywgJ2MtMicsICdkLTInLCAnZS0yJyk7CkBAIC0xNTUyLDExICsxNTg4LDIxIEBAIFB1Ymxp Y2F0aW9uczoKICAgMiB8IGEtMiB8IGItMiB8IGMtMiB8IGQtMiB8IGUtMgogICAzIHwgYS0zIHwg Yi0zIHwgYy0zIHwgZC0zIHwgZS0zCiAoMyByb3dzKQorLyogcHViICMgKi8gSU5TRVJUIElOVE8g dDIgVkFMVUVTKDEsICdhLTEnLCAnYi0xJywgJ2MtMScsICdkLTEnLCAnZS0xJyk7CisvKiBwdWIg IyAqLyBJTlNFUlQgSU5UTyB0MiBWQUxVRVMoMiwgJ2EtMicsICdiLTInLCAnYy0yJywgJ2QtMics ICdlLTInKTsKKy8qIHB1YiAjICovIElOU0VSVCBJTlRPIHQyIFZBTFVFUygzLCAnYS0zJywgJ2It MycsICdjLTMnLCAnZC0zJywgJ2UtMycpOworLyogcHViICMgKi8gU0VMRUNUICogRlJPTSB0MiBP UkRFUiBCWSBpZDsKKyBpZCB8ICBhICB8ICBiICB8ICBjICB8ICBkICB8ICBlCistLS0tKy0tLS0t Ky0tLS0tKy0tLS0tKy0tLS0tKy0tLS0tCisgIDEgfCBhLTEgfCBiLTEgfCBjLTEgfCBkLTEgfCBl LTEKKyAgMiB8IGEtMiB8IGItMiB8IGMtMiB8IGQtMiB8IGUtMgorICAzIHwgYS0zIHwgYi0zIHwg Yy0zIHwgZC0zIHwgZS0zCisoMyByb3dzKQogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAKICAg ICA8cGFyYT4KLSAgICAgT25seSBkYXRhIGZyb20gdGhlIGNvbHVtbiBsaXN0IG9mIHB1YmxpY2F0 aW9uIDxsaXRlcmFsPnAxPC9saXRlcmFsPiBpcwotICAgICByZXBsaWNhdGVkLgorICAgICBPbmx5 IGRhdGEgc3BlY2lmaWVkIGJ5IHRoZSBjb2x1bW4gbGlzdHMgb2YgcHVibGljYXRpb24KKyAgICAg PGxpdGVyYWw+cDE8L2xpdGVyYWw+IGlzIHJlcGxpY2F0ZWQuCiA8cHJvZ3JhbWxpc3Rpbmc+CiAv KiBzdWIgIyAqLyBTRUxFQ1QgKiBGUk9NIHQxIE9SREVSIEJZIGlkOwogIGlkIHwgIGIgIHwgIGEg IHwgIGQKQEAgLTE1NjUsNiArMTYxMSwxMyBAQCBQdWJsaWNhdGlvbnM6CiAgIDIgfCBiLTIgfCBh LTIgfCBkLTIKICAgMyB8IGItMyB8IGEtMyB8IGQtMwogKDMgcm93cykKKy8qIHN1YiAjICovIFNF TEVDVCAqIEZST00gdDIgT1JERVIgQlkgaWQ7CisgaWQgfCAgYiAgfCAgYyAgfCAgZQorLS0tLSst LS0tLSstLS0tLSstLS0tLQorICAxIHwgYi0xIHwgYy0xIHwgZS0xCisgIDIgfCBiLTIgfCBjLTIg fCBlLTIKKyAgMyB8IGItMyB8IGMtMyB8IGUtMworKDMgcm93cykKIDwvcHJvZ3JhbWxpc3Rpbmc+ PC9wYXJhPgogCiAgIDwvc2VjdDI+CkBAIC0xNjYxLDYgKzE3MTQsMTcgQEAgUHVibGljYXRpb25z OgogICAgPC9pdGVtaXplZGxpc3Q+CiAgIDwvcGFyYT4KIAorICA8cGFyYT4KKyAgIEdlbmVyYXRl ZCBjb2x1bW5zIHNwZWNpZmllZCBpbiB0aGUgY29sdW1uIGxpc3Qgd2l0aCB0aGUKKyAgIDxsaXRl cmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNlIGFyZSBub3QgcHVibGlzaGVkLCByZWdhcmRsZXNz IG9mIHRoZSB2YWx1ZQorICAgb2YgdGhlIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVwdWJsaWNh dGlvbi1wYXJhbXMtd2l0aC1wdWJsaXNoLWdlbmVyYXRlZC1jb2x1bW5zIj4KKyAgIDxsaXRlcmFs PnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+PC9saW5rPiBwYXJhbWV0ZXIuIEhv d2V2ZXIsCisgICBnZW5lcmF0ZWQgY29sdW1ucyB0aGF0IGFyZSBub3QgcGFydCBvZiB0aGUgY29s dW1uIGxpc3Qgd2l0aCB0aGUKKyAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY2xhdXNlIGFy ZSBwdWJsaXNoZWQgYWNjb3JkaW5nIHRvIHRoZSB2YWx1ZSBvZiB0aGUKKyAgIDxsaW5rIGxpbmtl bmQ9InNxbC1jcmVhdGVwdWJsaWNhdGlvbi1wYXJhbXMtd2l0aC1wdWJsaXNoLWdlbmVyYXRlZC1j b2x1bW5zIj4KKyAgIDxsaXRlcmFsPnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+ PC9saW5rPiBwYXJhbWV0ZXIuCisgIDwvcGFyYT4KKwogICA8cGFyYT4KICAgIFRoZSBmb2xsb3dp bmcgdGFibGUgc3VtbWFyaXplcyBiZWhhdmlvciB3aGVuIHRoZXJlIGFyZSBnZW5lcmF0ZWQgY29s dW1ucwogICAgaW52b2x2ZWQgaW4gdGhlIGxvZ2ljYWwgcmVwbGljYXRpb24uIFJlc3VsdHMgYXJl IHNob3duIGZvciB3aGVuCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1Ymxp Y2F0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKaW5k ZXggMWNlYWVhZWM3NzIuLjcwMWNmYTgxOTQyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVm L2FsdGVyX3B1YmxpY2F0aW9uLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wdWJs aWNhdGlvbi5zZ21sCkBAIC00Miw3ICs0Miw3IEBAIEFMVEVSIFBVQkxJQ0FUSU9OIDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4gUkVTRVQKIAogPHBocmFz ZT5hbmQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX2FuZF9jb2x1bW5zPC9y ZXBsYWNlYWJsZT4gaXM6PC9waHJhc2U+CiAKLSAgICBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+dGFibGVfbmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgKCA8cmVwbGFj ZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4g XSApIF0gWyBXSEVSRSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9u PC9yZXBsYWNlYWJsZT4gKSBdCisgICAgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiBbICogXSBbIFsgRVhDRVBUIF0gKCA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAu Li4gXSApIF0gWyBXSEVSRSAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNz aW9uPC9yZXBsYWNlYWJsZT4gKSBdCiAKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnRhYmxlX2V4Y2VwdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpczo8L3Bo cmFzZT4KIApAQCAtMzE0LDYgKzMxNCwxNCBAQCBBTFRFUiBQVUJMSUNBVElPTiBwcm9kdWN0aW9u X3B1YmxpY2F0aW9uIEFERCBBTEwgVEFCTEVTIEVYQ0VQVCAodXNlcnMsIGRlcGFydG1lbgogICAg PHN0cnVjdG5hbWU+cHJvZHVjdGlvbl9wdWJsaWNhdGlvbjwvc3RydWN0bmFtZT46CiA8cHJvZ3Jh bWxpc3Rpbmc+CiBBTFRFUiBQVUJMSUNBVElPTiBwcm9kdWN0aW9uX3B1YmxpY2F0aW9uIEFERCBU QUJMRSB1c2VycywgZGVwYXJ0bWVudHMsIFRBQkxFUyBJTiBTQ0hFTUEgcHJvZHVjdGlvbjsKKzwv cHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorCisgIDxwYXJhPgorICAgQWx0ZXIgcHVibGljYXRpb24g PHN0cnVjdG5hbWU+bXlwdWJsaWNhdGlvbjwvc3RydWN0bmFtZT4gdG8gYWRkIHRhYmxlCisgICA8 c3RydWN0bmFtZT51c2Vyczwvc3RydWN0bmFtZT4gZXhjZXB0IGNvbHVtbgorICAgPHN0cnVjdG5h bWU+c2VjdXJpdHlfcGluPC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGluZz4KK0FMVEVSIFBV QkxJQ0FUSU9OIHByb2R1Y3Rpb25fcHVibGljYXRpb24gQUREIFRBQkxFIHVzZXJzIEVYQ0VQVCAo c2VjdXJpdHlfcGluKTsKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCiAgIDxwYXJhPgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHVibGljYXRpb24uc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwKaW5kZXggMTI4MDgzN2Y5OTUuLjIx NmUzMGYwOGQyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wdWJsaWNhdGlv bi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3B1YmxpY2F0aW9uLnNnbWwKQEAg LTM3LDcgKzM3LDcgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KIAogPHBocmFzZT5hbmQgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPnRhYmxlX2FuZF9jb2x1bW5zPC9yZXBsYWNlYWJsZT4gaXM6PC9waHJh c2U+CiAKLSAgICBbIE9OTFkgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+dGFibGVf bmFtZTwvcmVwbGFjZWFibGU+IFsgKiBdIFsgKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0gWyBXSEVSRSAoIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gKSBdCisg ICAgWyBPTkxZIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX25hbWU8L3Jl cGxhY2VhYmxlPiBbICogXSBbIFsgRVhDRVBUIF0gKCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+Y29sdW1uX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi4gXSApIF0gWyBXSEVSRSAoIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gKSBd CiAKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnRhYmxlX2V4 Y2VwdGlvbl9vYmplY3Q8L3JlcGxhY2VhYmxlPiBpczo8L3BocmFzZT4KIApAQCAtMTAwLDE3ICsx MDAsMjQgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uYW1lPC9yZXBsYWNlYWJsZT4KICAgICAgPC9wYXJhPgogCiAgICAgIDxwYXJhPgotICAgICAg V2hlbiBhIGNvbHVtbiBsaXN0IGlzIHNwZWNpZmllZCwgb25seSB0aGUgbmFtZWQgY29sdW1ucyBh cmUgcmVwbGljYXRlZC4KLSAgICAgIFRoZSBjb2x1bW4gbGlzdCBjYW4gY29udGFpbiBzdG9yZWQg Z2VuZXJhdGVkIGNvbHVtbnMgYXMgd2VsbC4gSWYgdGhlCi0gICAgICBjb2x1bW4gbGlzdCBpcyBv bWl0dGVkLCB0aGUgcHVibGljYXRpb24gd2lsbCByZXBsaWNhdGUgYWxsIG5vbi1nZW5lcmF0ZWQK LSAgICAgIGNvbHVtbnMgKGluY2x1ZGluZyBhbnkgYWRkZWQgaW4gdGhlIGZ1dHVyZSkgYnkgZGVm YXVsdC4gU3RvcmVkIGdlbmVyYXRlZAotICAgICAgY29sdW1ucyBjYW4gYWxzbyBiZSByZXBsaWNh dGVkIGlmIDxsaXRlcmFsPnB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnM8L2xpdGVyYWw+Ci0gICAg ICBpcyBzZXQgdG8gPGxpdGVyYWw+c3RvcmVkPC9saXRlcmFsPi4gU3BlY2lmeWluZyBhIGNvbHVt biBsaXN0IGhhcyBubwotICAgICAgZWZmZWN0IG9uIDxsaXRlcmFsPlRSVU5DQVRFPC9saXRlcmFs PiBjb21tYW5kcy4gU2VlCisgICAgICBXaGVuIGEgY29sdW1uIGxpc3Qgd2l0aG91dCA8bGl0ZXJh bD5FWENFUFQ8L2xpdGVyYWw+IGlzIHNwZWNpZmllZCwgb25seQorICAgICAgdGhlIG5hbWVkIGNv bHVtbnMgYXJlIHJlcGxpY2F0ZWQuIFRoZSBjb2x1bW4gbGlzdCBjYW4gY29udGFpbiBzdG9yZWQK KyAgICAgIGdlbmVyYXRlZCBjb2x1bW5zIGFzIHdlbGwuIElmIHRoZSBjb2x1bW4gbGlzdCBpcyBv bWl0dGVkLCB0aGUgcHVibGljYXRpb24KKyAgICAgIHdpbGwgcmVwbGljYXRlIGFsbCBub24tZ2Vu ZXJhdGVkIGNvbHVtbnMgKGluY2x1ZGluZyBhbnkgYWRkZWQgaW4gdGhlCisgICAgICBmdXR1cmUp IGJ5IGRlZmF1bHQuIFN0b3JlZCBnZW5lcmF0ZWQgY29sdW1ucyBjYW4gYWxzbyBiZSByZXBsaWNh dGVkIGlmCisgICAgICA8bGl0ZXJhbD5wdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zPC9saXRlcmFs PiBpcyBzZXQgdG8KKyAgICAgIDxsaXRlcmFsPnN0b3JlZDwvbGl0ZXJhbD4uIFNwZWNpZnlpbmcg YSBjb2x1bW4gbGlzdCBoYXMgbm8gZWZmZWN0IG9uCisgICAgICA8bGl0ZXJhbD5UUlVOQ0FURTwv bGl0ZXJhbD4gY29tbWFuZHMuIFNlZQogICAgICAgPHhyZWYgbGlua2VuZD0ibG9naWNhbC1yZXBs aWNhdGlvbi1jb2wtbGlzdHMiLz4gZm9yIGRldGFpbHMgYWJvdXQgY29sdW1uCiAgICAgICBsaXN0 cy4KICAgICAgPC9wYXJhPgogCisgICAgIDxwYXJhPgorICAgICAgV2hlbiBhIGNvbHVtbiBsaXN0 IGlzIHNwZWNpZmllZCB3aXRoIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4sIHRoZSBuYW1lZAor ICAgICAgY29sdW1ucyBhcmUgbm90IHJlcGxpY2F0ZWQuIFNwZWNpZnlpbmcgYSBjb2x1bW4gbGlz dCBoYXMgbm8gZWZmZWN0IG9uCisgICAgICA8bGl0ZXJhbD5UUlVOQ0FURTwvbGl0ZXJhbD4gY29t bWFuZHMuCisgICAgIDwvcGFyYT4KKwogICAgICA8cGFyYT4KICAgICAgIE9ubHkgcGVyc2lzdGVu dCBiYXNlIHRhYmxlcyBhbmQgcGFydGl0aW9uZWQgdGFibGVzIGNhbiBiZSBwYXJ0IG9mIGEKICAg ICAgIHB1YmxpY2F0aW9uLiAgVGVtcG9yYXJ5IHRhYmxlcywgdW5sb2dnZWQgdGFibGVzLCBmb3Jl aWduIHRhYmxlcywKQEAgLTM3MSwxMCArMzc4LDEyIEBAIENSRUFURSBQVUJMSUNBVElPTiA8cmVw bGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+CiAgIDwvcGFyYT4K IAogICA8cGFyYT4KLSAgIEFueSBjb2x1bW4gbGlzdCBtdXN0IGluY2x1ZGUgdGhlIDxsaXRlcmFs PlJFUExJQ0EgSURFTlRJVFk8L2xpdGVyYWw+IGNvbHVtbnMKLSAgIGluIG9yZGVyIGZvciA8Y29t bWFuZD5VUERBVEU8L2NvbW1hbmQ+IG9yIDxjb21tYW5kPkRFTEVURTwvY29tbWFuZD4KLSAgIG9w ZXJhdGlvbnMgdG8gYmUgcHVibGlzaGVkLiBUaGVyZSBhcmUgbm8gY29sdW1uIGxpc3QgcmVzdHJp Y3Rpb25zIGlmIHRoZQotICAgcHVibGljYXRpb24gcHVibGlzaGVzIG9ubHkgPGNvbW1hbmQ+SU5T RVJUPC9jb21tYW5kPiBvcGVyYXRpb25zLgorICAgSW4gb3JkZXIgZm9yIDxjb21tYW5kPlVQREFU RTwvY29tbWFuZD4gb3IgPGNvbW1hbmQ+REVMRVRFPC9jb21tYW5kPgorICAgb3BlcmF0aW9ucyB0 byB3b3JrLCBhbGwgdGhlIDxsaXRlcmFsPlJFUExJQ0EgSURFTlRJVFk8L2xpdGVyYWw+IGNvbHVt bnMgbXVzdAorICAgYmUgcHVibGlzaGVkLiBTbywgYW55IGNvbHVtbiBsaXN0IG11c3QgbmFtZSBh bGwKKyAgIDxsaXRlcmFsPlJFUExJQ0EgSURFTlRJVFk8L2xpdGVyYWw+IGNvbHVtbnMsIGFuZCBh bnkKKyAgIDxsaXRlcmFsPkVYQ0VQVDwvbGl0ZXJhbD4gY29sdW1uIGxpc3QgbXVzdCBub3QgbmFt ZSBhbnkKKyAgIDxsaXRlcmFsPlJFUExJQ0EgSURFTlRJVFk8L2xpdGVyYWw+IGNvbHVtbnMuCiAg IDwvcGFyYT4KIAogICA8cGFyYT4KQEAgLTM5Nyw2ICs0MDYsMTYgQEAgQ1JFQVRFIFBVQkxJQ0FU SU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4KICAg IHRvIGJlIHB1Ymxpc2hlZC4KICAgPC9wYXJhPgogCisgIDxwYXJhPgorICAgVGhlIGdlbmVyYXRl ZCBjb2x1bW5zIHRoYXQgYXJlIHBhcnQgb2YgdGhlIGNvbHVtbiBsaXN0IHNwZWNpZmllZCB3aXRo IHRoZQorICAgPGxpdGVyYWw+RVhDRVBUPC9saXRlcmFsPiBjbGF1c2UgYXJlIG5vdCBwdWJsaXNo ZWQsIHJlZ2FyZGxlc3Mgb2YgdGhlCisgICA8bGl0ZXJhbD5wdWJsaXNoX2dlbmVyYXRlZF9jb2x1 bW5zPC9saXRlcmFsPiBvcHRpb24uIEhvd2V2ZXIsIGdlbmVyYXRlZAorICAgY29sdW1ucyB0aGF0 IGFyZSBub3QgcGFydCBvZiB0aGUgY29sdW1uIGxpc3Qgc3BlY2lmaWVkIHdpdGggdGhlCisgICA8 bGl0ZXJhbD5FWENFUFQ8L2xpdGVyYWw+IGNsYXVzZSBhcmUgcHVibGlzaGVkIGFjY29yZGluZyB0 byB0aGUgdmFsdWUgb2YgdGhlCisgICA8bGl0ZXJhbD5wdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5z PC9saXRlcmFsPiBvcHRpb24uIFNlZQorICAgPHhyZWYgbGlua2VuZD0ibG9naWNhbC1yZXBsaWNh dGlvbi1nZW5jb2xzIi8+IGZvciBkZXRhaWxzLgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBU aGUgcm93IGZpbHRlciBvbiBhIHRhYmxlIGJlY29tZXMgcmVkdW5kYW50IGlmCiAgICA8bGl0ZXJh bD5GT1IgVEFCTEVTIElOIFNDSEVNQTwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkIGFuZCB0aGUgdGFi bGUKQEAgLTUxOCw2ICs1MzcsMTUgQEAgQ1JFQVRFIFBVQkxJQ0FUSU9OIG15cHVibGljYXRpb24g Rk9SIEFMTCBUQUJMRVMgRVhDRVBUICh1c2VycywgZGVwYXJ0bWVudHMpOwogQ1JFQVRFIFBVQkxJ Q0FUSU9OIHVzZXJzX2ZpbHRlcmVkIEZPUiBUQUJMRSB1c2VycyAodXNlcl9pZCwgZmlyc3RuYW1l KTsKIDwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgogCisgIDxwYXJhPgorICAgQ3JlYXRlIGEgcHVi bGljYXRpb24gdGhhdCBwdWJsaXNoZXMgYWxsIGNoYW5nZXMgZm9yIHRhYmxlCisgICA8c3RydWN0 bmFtZT51c2Vyczwvc3RydWN0bmFtZT4gZXhjZXB0IGNoYW5nZXMgZm9yIGNvbHVtbgorICAgPHN0 cnVjdG5hbWU+c2VjdXJpdHlfcGluPC9zdHJ1Y3RuYW1lPjoKKzxwcm9ncmFtbGlzdGluZz4KK0NS RUFURSBQVUJMSUNBVElPTiB1c2Vyc19zYWZlIEZPUiBUQUJMRSB1c2VycyBFWENFUFQgKHNlY3Vy aXR5X3Bpbik7Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKICAgPHBhcmE+CiAgICBD cmVhdGUgYSBwdWJsaWNhdGlvbiB0aGF0IHB1Ymxpc2hlcyBhbGwgc2VxdWVuY2VzIGZvciBzeW5j aHJvbml6YXRpb246CiA8cHJvZ3JhbWxpc3Rpbmc+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0 aW9uLmMKaW5kZXggMzljMmNjMmJmNDMuLmExMjRiNWY2Y2VjIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z19wdWJsaWNhdGlvbi5jCkBAIC0yNjYsMTQgKzI2NiwxOSBAQCBpc19zY2hlbWFfcHVibGljYXRp b24oT2lkIHB1YmlkKQogICogSWYgYSBjb2x1bW4gbGlzdCBpcyBmb3VuZCwgdGhlIGNvcnJlc3Bv bmRpbmcgYml0bWFwIGlzIHJldHVybmVkIHRocm91Z2ggdGhlCiAgKiBjb2xzIHBhcmFtZXRlciwg aWYgcHJvdmlkZWQuIFRoZSBiaXRtYXAgaXMgY29uc3RydWN0ZWQgd2l0aGluIHRoZSBnaXZlbgog ICogbWVtb3J5IGNvbnRleHQgKG1jeHQpLgorICoKKyAqIElmIGEgY29sdW1uIGxpc3QgaXMgZm91 bmQgc3BlY2lmaWVkIHdpdGggRVhDRVBUIGNsYXVzZSwgZXhjZXB0X2NvbHVtbnMgaXMgc2V0Cisg KiB0byB0cnVlLgogICovCiBib29sCiBjaGVja19hbmRfZmV0Y2hfY29sdW1uX2xpc3QoUHVibGlj YXRpb24gKnB1YiwgT2lkIHJlbGlkLCBNZW1vcnlDb250ZXh0IG1jeHQsCi0JCQkJCQkJQml0bWFw c2V0ICoqY29scykKKwkJCQkJCQlCaXRtYXBzZXQgKipjb2xzLCBib29sICpleGNlcHRfY29sdW1u cykKIHsKIAlIZWFwVHVwbGUJY2Z0dXBsZTsKIAlib29sCQlmb3VuZCA9IGZhbHNlOwogCisJKmV4 Y2VwdF9jb2x1bW5zID0gZmFsc2U7CisKIAlpZiAocHViLT5hbGx0YWJsZXMpCiAJCXJldHVybiBm YWxzZTsKIApAQCAtMjk5LDYgKzMwNCwxNiBAQCBjaGVja19hbmRfZmV0Y2hfY29sdW1uX2xpc3Qo UHVibGljYXRpb24gKnB1YiwgT2lkIHJlbGlkLCBNZW1vcnlDb250ZXh0IG1jeHQsCiAJCQlmb3Vu ZCA9IHRydWU7CiAJCX0KIAorCQkvKiBMb29rdXAgdGhlIGV4Y2VwdCBhdHRyaWJ1dGUgKi8KKwkJ Y2ZkYXR1bSA9IFN5c0NhY2hlR2V0QXR0cihQVUJMSUNBVElPTlJFTE1BUCwgY2Z0dXBsZSwKKwkJ CQkJCQkJICBBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcmV4Y2VwdCwgJmlzbnVsbCk7CisKKwkJ aWYgKCFpc251bGwpCisJCXsKKwkJCUFzc2VydCghcHViLT5hbGx0YWJsZXMpOworCQkJKmV4Y2Vw dF9jb2x1bW5zID0gRGF0dW1HZXRCb29sKGNmZGF0dW0pOworCQl9CisKIAkJUmVsZWFzZVN5c0Nh Y2hlKGNmdHVwbGUpOwogCX0KIApAQCAtNjYwLDEwICs2NzUsMTIgQEAgcHViX2NvbGxpc3RfdG9f Yml0bWFwc2V0KEJpdG1hcHNldCAqY29sdW1ucywgRGF0dW0gcHViY29scywgTWVtb3J5Q29udGV4 dCBtY3h0KQogICogUmV0dXJucyBhIGJpdG1hcCByZXByZXNlbnRpbmcgdGhlIGNvbHVtbnMgb2Yg dGhlIHNwZWNpZmllZCB0YWJsZS4KICAqCiAgKiBHZW5lcmF0ZWQgY29sdW1ucyBhcmUgaW5jbHVk ZWQgaWYgaW5jbHVkZV9nZW5jb2xzX3R5cGUgaXMKLSAqIFBVQkxJU0hfR0VOQ09MU19TVE9SRUQu CisgKiBQVUJMSVNIX0dFTkNPTFNfU1RPUkVELiBDb2x1bW5zIHRoYXQgYXJlIGluIHRoZSBleGNl cHRfY29scyBhcmUgZXhjbHVkZWQgZnJvbQorICogdGhlIGNvbHVtbiBsaXN0LgogICovCiBCaXRt YXBzZXQgKgotcHViX2Zvcm1fY29sc19tYXAoUmVsYXRpb24gcmVsYXRpb24sIFB1Ymxpc2hHZW5j b2xzVHlwZSBpbmNsdWRlX2dlbmNvbHNfdHlwZSkKK3B1Yl9mb3JtX2NvbHNfbWFwKFJlbGF0aW9u IHJlbGF0aW9uLCBQdWJsaXNoR2VuY29sc1R5cGUgaW5jbHVkZV9nZW5jb2xzX3R5cGUsCisJCQkJ ICBCaXRtYXBzZXQgKmV4Y2VwdF9jb2xzKQogewogCUJpdG1hcHNldCAgKnJlc3VsdCA9IE5VTEw7 CiAJVHVwbGVEZXNjCWRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJlbGF0aW9uKTsKQEAgLTY4Niw2 ICs3MDMsOSBAQCBwdWJfZm9ybV9jb2xzX21hcChSZWxhdGlvbiByZWxhdGlvbiwgUHVibGlzaEdl bmNvbHNUeXBlIGluY2x1ZGVfZ2VuY29sc190eXBlKQogCQkJCWNvbnRpbnVlOwogCQl9CiAKKwkJ aWYgKGV4Y2VwdF9jb2xzICYmIGJtc19pc19tZW1iZXIoYXR0LT5hdHRudW0sIGV4Y2VwdF9jb2xz KSkKKwkJCWNvbnRpbnVlOworCiAJCXJlc3VsdCA9IGJtc19hZGRfbWVtYmVyKHJlc3VsdCwgYXR0 LT5hdHRudW0pOwogCX0KIApAQCAtNzkwLDggKzgxMCwxMCBAQCBHZXRSZWxhdGlvblB1YmxpY2F0 aW9ucyhPaWQgcmVsaWQsIGJvb2wgZXhjZXB0X2ZsYWcpCiAJewogCQlIZWFwVHVwbGUJdHVwID0g JnB1YnJlbGxpc3QtPm1lbWJlcnNbaV0tPnR1cGxlOwogCQlPaWQJCQlwdWJpZCA9ICgoRm9ybV9w Z19wdWJsaWNhdGlvbl9yZWwpIEdFVFNUUlVDVCh0dXApKS0+cHJwdWJpZDsKKwkJYm9vbAkJaXNf ZXhjZXB0X3RhYmxlID0gKChGb3JtX3BnX3B1YmxpY2F0aW9uX3JlbCkgR0VUU1RSVUNUKHR1cCkp LT5wcmV4Y2VwdCAmJgorCQkJaGVhcF9hdHRpc251bGwodHVwLCBBbnVtX3BnX3B1YmxpY2F0aW9u X3JlbF9wcmF0dHJzLCBOVUxMKTsKIAotCQlpZiAoZXhjZXB0X2ZsYWcgPT0gKChGb3JtX3BnX3B1 YmxpY2F0aW9uX3JlbCkgR0VUU1RSVUNUKHR1cCkpLT5wcmV4Y2VwdCkKKwkJaWYgKGV4Y2VwdF9m bGFnID09IGlzX2V4Y2VwdF90YWJsZSkKIAkJCXJlc3VsdCA9IGxhcHBlbmRfb2lkKHJlc3VsdCwg cHViaWQpOwogCX0KIApAQCAtODMxLDEwICs4NTMsMTIgQEAgR2V0UHVibGljYXRpb25SZWxhdGlv bnMoT2lkIHB1YmlkLCBQdWJsaWNhdGlvblBhcnRPcHQgcHViX3BhcnRvcHQsCiAJd2hpbGUgKEhl YXBUdXBsZUlzVmFsaWQodHVwID0gc3lzdGFibGVfZ2V0bmV4dChzY2FuKSkpCiAJewogCQlGb3Jt X3BnX3B1YmxpY2F0aW9uX3JlbCBwdWJyZWw7CisJCWJvb2wJCWhhc19jb2xsaXN0ID0gZmFsc2U7 CiAKIAkJcHVicmVsID0gKEZvcm1fcGdfcHVibGljYXRpb25fcmVsKSBHRVRTVFJVQ1QodHVwKTsK KwkJaGFzX2NvbGxpc3QgPSAhaGVhcF9hdHRpc251bGwodHVwLCBBbnVtX3BnX3B1YmxpY2F0aW9u X3JlbF9wcmF0dHJzLCBOVUxMKTsKIAotCQlpZiAoZXhjZXB0X2ZsYWcgPT0gcHVicmVsLT5wcmV4 Y2VwdCkKKwkJaWYgKGV4Y2VwdF9mbGFnID09IChwdWJyZWwtPnByZXhjZXB0ICYmICFoYXNfY29s bGlzdCkpCiAJCQlyZXN1bHQgPSBHZXRQdWJQYXJ0aXRpb25PcHRpb25SZWxhdGlvbnMocmVzdWx0 LCBwdWJfcGFydG9wdCwKIAkJCQkJCQkJCQkJCQlwdWJyZWwtPnBycmVsaWQpOwogCkBAIC0xMjkx LDYgKzEzMTUsNyBAQCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJCU9pZAkJCXNjaGVtYWlkID0gZ2V0X3JlbF9uYW1lc3BhY2UocmVsaWQpOwogCQlEYXR1bQkJ dmFsdWVzW05VTV9QVUJMSUNBVElPTl9UQUJMRVNfRUxFTV0gPSB7MH07CiAJCWJvb2wJCW51bGxz W05VTV9QVUJMSUNBVElPTl9UQUJMRVNfRUxFTV0gPSB7MH07CisJCUJpdG1hcHNldCAgKmV4Y2Vw dF9jb2x1bW5zID0gTlVMTDsKIAogCQkvKgogCQkgKiBGb3JtIHR1cGxlIHdpdGggYXBwcm9wcmlh dGUgZGF0YS4KQEAgLTEzMTUsMTEgKzEzNDAsMjkgQEAgcGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxl cyhQR19GVU5DVElPTl9BUkdTKQogCiAJCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHB1YnR1cGxlKSkK IAkJewotCQkJLyogTG9va3VwIHRoZSBjb2x1bW4gbGlzdCBhdHRyaWJ1dGUuICovCiAJCQl2YWx1 ZXNbMl0gPSBTeXNDYWNoZUdldEF0dHIoUFVCTElDQVRJT05SRUxNQVAsIHB1YnR1cGxlLAogCQkJ CQkJCQkJCUFudW1fcGdfcHVibGljYXRpb25fcmVsX3ByYXR0cnMsCiAJCQkJCQkJCQkJJihudWxs c1syXSkpOwogCisJCQlpZiAoIW51bGxzWzJdKQorCQkJeworCQkJCURhdHVtCQlleGNlcHREYXR1 bTsKKwkJCQlib29sCQlpc251bGw7CisKKwkJCQkvKgorCQkJCSAqIFdlIGZldGNoIHB1YnR1cGxl IGlmIHB1YmxpY2F0aW9uIGlzIG5vdCBGT1IgQUxMIFRBQkxFUyBhbmQKKwkJCQkgKiBub3QgRk9S IFRBQkxFUyBJTiBTQ0hFTUEuIFNvIGlmIHByZXhjZXB0IGlzIHRydWUsIGl0CisJCQkJICogaW5k aWNhdGVzIHRoYXQgcHJhdHRycyBjb250YWlucyBjb2x1bW5zIHRvIGJlIGV4Y2x1ZGVkIGZvcgor CQkJCSAqIHJlcGxpY2F0aW9uLgorCQkJCSAqLworCQkJCWV4Y2VwdERhdHVtID0gU3lzQ2FjaGVH ZXRBdHRyKFBVQkxJQ0FUSU9OUkVMTUFQLCBwdWJ0dXBsZSwKKwkJCQkJCQkJCQkJICBBbnVtX3Bn X3B1YmxpY2F0aW9uX3JlbF9wcmV4Y2VwdCwKKwkJCQkJCQkJCQkJICAmaXNudWxsKTsKKworCQkJ CWlmICghaXNudWxsICYmIERhdHVtR2V0Qm9vbChleGNlcHREYXR1bSkpCisJCQkJCWV4Y2VwdF9j b2x1bW5zID0gcHViX2NvbGxpc3RfdG9fYml0bWFwc2V0KE5VTEwsIHZhbHVlc1syXSwgTlVMTCk7 CisJCQl9CisKIAkJCS8qIE51bGwgaW5kaWNhdGVzIG5vIGZpbHRlci4gKi8KIAkJCXZhbHVlc1sz XSA9IFN5c0NhY2hlR2V0QXR0cihQVUJMSUNBVElPTlJFTE1BUCwgcHVidHVwbGUsCiAJCQkJCQkJ CQkJQW51bV9wZ19wdWJsaWNhdGlvbl9yZWxfcHJxdWFsLApAQCAtMTMzMSw4ICsxMzc0LDEyIEBA IHBnX2dldF9wdWJsaWNhdGlvbl90YWJsZXMoUEdfRlVOQ1RJT05fQVJHUykKIAkJCW51bGxzWzNd ID0gdHJ1ZTsKIAkJfQogCi0JCS8qIFNob3cgYWxsIGNvbHVtbnMgd2hlbiB0aGUgY29sdW1uIGxp c3QgaXMgbm90IHNwZWNpZmllZC4gKi8KLQkJaWYgKG51bGxzWzJdKQorCQkvKgorCQkgKiBDb25z dHJ1Y3QgY29sdW1uIGxpc3QgdG8gc2hvdyBhbGwgY29sdW1ucyB3aGVuIG5vIGNvbHVtbiBsaXN0 IGlzCisJCSAqIHNwZWNpZmllZCBvciB0byBzaG93IHJlbWFpbmluZyBjb2x1bW5zIHdoZW4gYSBj b2x1bW4gbGlzdCBpcworCQkgKiBwcm92aWRlZCB3aXRoIEVYQ0VQVC4KKwkJICovCisJCWlmIChl eGNlcHRfY29sdW1ucyB8fCBudWxsc1syXSkKIAkJewogCQkJUmVsYXRpb24JcmVsID0gdGFibGVf b3BlbihyZWxpZCwgQWNjZXNzU2hhcmVMb2NrKTsKIAkJCWludAkJCW5hdHRudW1zID0gMDsKQEAg LTEzNjMsNiArMTQxMCwxMyBAQCBwZ19nZXRfcHVibGljYXRpb25fdGFibGVzKFBHX0ZVTkNUSU9O X0FSR1MpCiAJCQkJCQljb250aW51ZTsKIAkJCQl9CiAKKwkJCQkvKgorCQkJCSAqIFNraXAgY29s dW1ucyB0aGF0IGFyZSBwYXJ0IG9mIGNvbHVtbiBsaXN0IHNwZWNpZmllZCB3aXRoCisJCQkJICog RVhDRVBULgorCQkJCSAqLworCQkJCWlmIChleGNlcHRfY29sdW1ucyAmJiBibXNfaXNfbWVtYmVy KGF0dC0+YXR0bnVtLCBleGNlcHRfY29sdW1ucykpCisJCQkJCWNvbnRpbnVlOworCiAJCQkJYXR0 bnVtc1tuYXR0bnVtcysrXSA9IGF0dC0+YXR0bnVtOwogCQkJfQogCkBAIC0xMzcxLDYgKzE0MjUs MTEgQEAgcGdfZ2V0X3B1YmxpY2F0aW9uX3RhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCQkJCXZh bHVlc1syXSA9IFBvaW50ZXJHZXREYXR1bShidWlsZGludDJ2ZWN0b3IoYXR0bnVtcywgbmF0dG51 bXMpKTsKIAkJCQludWxsc1syXSA9IGZhbHNlOwogCQkJfQorCQkJZWxzZQorCQkJeworCQkJCXZh bHVlc1syXSA9IChEYXR1bSkgMDsKKwkJCQludWxsc1syXSA9IHRydWU7CisJCQl9CiAKIAkJCXRh YmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKIAkJfQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvcHVibGljYXRpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9w dWJsaWNhdGlvbmNtZHMuYwppbmRleCA5YTE3ZGZjOWQzNS4uZmE1Njc5N2Q3ZjcgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3B1YmxpY2F0aW9uY21kcy5jCkBAIC0yMjcsNyArMjI3LDYgQEAgT2JqZWN0 c0luUHVibGljYXRpb25Ub09pZHMoTGlzdCAqcHVib2Jqc3BlY19saXN0LCBQYXJzZVN0YXRlICpw c3RhdGUsCiAJCXN3aXRjaCAocHVib2JqLT5wdWJvYmp0eXBlKQogCQl7CiAJCQljYXNlIFBVQkxJ Q0FUSU9OT0JKX1RBQkxFOgotCQkJCXB1Ym9iai0+cHVidGFibGUtPmV4Y2VwdCA9IGZhbHNlOwog CQkJCSpyZWxzID0gbGFwcGVuZCgqcmVscywgcHVib2JqLT5wdWJ0YWJsZSk7CiAJCQkJYnJlYWs7 CiAJCQljYXNlIFBVQkxJQ0FUSU9OT0JKX0VYQ0VQVF9UQUJMRToKQEAgLTM4MSw4ICszODAsOCBA QCBwdWJfcmZfY29udGFpbnNfaW52YWxpZF9jb2x1bW4oT2lkIHB1YmlkLCBSZWxhdGlvbiByZWxh dGlvbiwgTGlzdCAqYW5jZXN0b3JzLAogICogVGhpcyBmdW5jdGlvbiBldmFsdWF0ZXMgdHdvIGNv bmRpdGlvbnM6CiAgKgogICogMS4gRW5zdXJlcyB0aGF0IGFsbCBjb2x1bW5zIHJlZmVyZW5jZWQg aW4gdGhlIFJFUExJQ0EgSURFTlRJVFkgYXJlIGNvdmVyZWQKLSAqICAgIGJ5IHRoZSBjb2x1bW4g bGlzdC4gSWYgYW55IGNvbHVtbiBpcyBtaXNzaW5nLCAqaW52YWxpZF9jb2x1bW5fbGlzdCBpcyBz ZXQKLSAqICAgIHRvIHRydWUuCisgKiAgICBieSB0aGUgY29sdW1uIGxpc3QgYW5kIGFyZSBub3Qg cGFydCBvZiB0aGUgY29sdW1uIGxpc3Qgc3BlY2lmaWVkIHdpdGgKKyAqICAgIEVYQ0VQVC4gSWYg YW55IGNvbHVtbiBpcyBtaXNzaW5nLCAqaW52YWxpZF9jb2x1bW5fbGlzdCBpcyBzZXQgdG8gdHJ1 ZS4KICAqIDIuIEVuc3VyZXMgdGhhdCBhbGwgdGhlIGdlbmVyYXRlZCBjb2x1bW5zIHJlZmVyZW5j ZWQgaW4gdGhlIFJFUExJQ0EgSURFTlRJVFkKICAqICAgIGFyZSBwdWJsaXNoZWQsIGVpdGhlciBi eSBiZWluZyBleHBsaWNpdGx5IG5hbWVkIGluIHRoZSBjb2x1bW4gbGlzdCBvciwgaWYKICAqICAg IG5vIGNvbHVtbiBsaXN0IGlzIHNwZWNpZmllZCwgYnkgc2V0dGluZyB0aGUgb3B0aW9uCkBAIC00 MDQsNiArNDAzLDcgQEAgcHViX2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVs YXRpb24gcmVsYXRpb24sIExpc3QgKmFuY2VzdG9ycywKIAlUdXBsZURlc2MJZGVzYyA9IFJlbGF0 aW9uR2V0RGVzY3IocmVsYXRpb24pOwogCVB1YmxpY2F0aW9uICpwdWI7CiAJaW50CQkJeDsKKwli b29sCQlleGNlcHRfY29sdW1ucyA9IGZhbHNlOwogCiAJKmludmFsaWRfY29sdW1uX2xpc3QgPSBm YWxzZTsKIAkqaW52YWxpZF9nZW5fY29sID0gZmFsc2U7CkBAIC00MjcsNyArNDI3LDggQEAgcHVi X2NvbnRhaW5zX2ludmFsaWRfY29sdW1uKE9pZCBwdWJpZCwgUmVsYXRpb24gcmVsYXRpb24sIExp c3QgKmFuY2VzdG9ycywKIAogCS8qIEZldGNoIHRoZSBjb2x1bW4gbGlzdCAqLwogCXB1YiA9IEdl dFB1YmxpY2F0aW9uKHB1YmlkKTsKLQljaGVja19hbmRfZmV0Y2hfY29sdW1uX2xpc3QocHViLCBw dWJsaXNoX2FzX3JlbGlkLCBOVUxMLCAmY29sdW1ucyk7CisJY2hlY2tfYW5kX2ZldGNoX2NvbHVt bl9saXN0KHB1YiwgcHVibGlzaF9hc19yZWxpZCwgTlVMTCwgJmNvbHVtbnMsCisJCQkJCQkJCSZl eGNlcHRfY29sdW1ucyk7CiAKIAlpZiAocmVsYXRpb24tPnJkX3JlbC0+cmVscmVwbGlkZW50ID09 IFJFUExJQ0FfSURFTlRJVFlfRlVMTCkKIAl7CkBAIC01MTcsOCArNTE4LDE0IEBAIHB1Yl9jb250 YWluc19pbnZhbGlkX2NvbHVtbihPaWQgcHViaWQsIFJlbGF0aW9uIHJlbGF0aW9uLCBMaXN0ICph bmNlc3RvcnMsCiAJCQlhdHRudW0gPSBnZXRfYXR0bnVtKHB1Ymxpc2hfYXNfcmVsaWQsIGNvbG5h bWUpOwogCQl9CiAKLQkJLyogcmVwbGljYSBpZGVudGl0eSBjb2x1bW4sIG5vdCBjb3ZlcmVkIGJ5 IHRoZSBjb2x1bW4gbGlzdCAqLwotCQkqaW52YWxpZF9jb2x1bW5fbGlzdCB8PSAhYm1zX2lzX21l bWJlcihhdHRudW0sIGNvbHVtbnMpOworCQkvKgorCQkgKiBSZXBsaWNhIGlkZW50aXR5IGNvbHVt biwgbm90IGNvdmVyZWQgYnkgdGhlIGNvbHVtbiBsaXN0IG9yIGlzIHBhcnQKKwkJICogb2YgY29s dW1uIGxpc3Qgc3BlY2lmaWVkIHdpdGggRVhDRVBULgorCQkgKi8KKwkJaWYgKGV4Y2VwdF9jb2x1 bW5zKQorCQkJKmludmFsaWRfY29sdW1uX2xpc3QgfD0gYm1zX2lzX21lbWJlcihhdHRudW0sIGNv bHVtbnMpOworCQllbHNlCisJCQkqaW52YWxpZF9jb2x1bW5fbGlzdCB8PSAhYm1zX2lzX21lbWJl cihhdHRudW0sIGNvbHVtbnMpOwogCiAJCWlmICgqaW52YWxpZF9jb2x1bW5fbGlzdCAmJiAqaW52 YWxpZF9nZW5fY29sKQogCQkJYnJlYWs7CkBAIC0xNTAwLDYgKzE1MDcsNyBAQCBBbHRlclB1Ymxp Y2F0aW9uVGFibGVzKEFsdGVyUHVibGljYXRpb25TdG10ICpzdG10LCBIZWFwVHVwbGUgdHVwLAog CQkJSGVhcFR1cGxlCXJmdHVwbGU7CiAJCQlOb2RlCSAgICpvbGRyZWx3aGVyZWNsYXVzZSA9IE5V TEw7CiAJCQlCaXRtYXBzZXQgICpvbGRjb2x1bW5zID0gTlVMTDsKKwkJCWJvb2wJCW9sZGV4Y2Vw dCA9IGZhbHNlOwogCiAJCQkvKiBsb29rIHVwIHRoZSBjYWNoZSBmb3IgdGhlIG9sZCByZWxtYXAg Ki8KIAkJCXJmdHVwbGUgPSBTZWFyY2hTeXNDYWNoZTIoUFVCTElDQVRJT05SRUxNQVAsCkBAIC0x NTEzLDIzICsxNTIxLDI4IEBAIEFsdGVyUHVibGljYXRpb25UYWJsZXMoQWx0ZXJQdWJsaWNhdGlv blN0bXQgKnN0bXQsIEhlYXBUdXBsZSB0dXAsCiAJCQlpZiAoSGVhcFR1cGxlSXNWYWxpZChyZnR1 cGxlKSkKIAkJCXsKIAkJCQlib29sCQlpc251bGwgPSB0cnVlOwotCQkJCURhdHVtCQl3aGVyZUNs YXVzZURhdHVtOwotCQkJCURhdHVtCQljb2x1bW5MaXN0RGF0dW07CisJCQkJRGF0dW0JCWRhdHVt OwogCiAJCQkJLyogTG9hZCB0aGUgV0hFUkUgY2xhdXNlIGZvciB0aGlzIHRhYmxlLiAqLwotCQkJ CXdoZXJlQ2xhdXNlRGF0dW0gPSBTeXNDYWNoZUdldEF0dHIoUFVCTElDQVRJT05SRUxNQVAsIHJm dHVwbGUsCi0JCQkJCQkJCQkJCQkgICBBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcnF1YWwsCi0J CQkJCQkJCQkJCQkgICAmaXNudWxsKTsKKwkJCQlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0cihQVUJM SUNBVElPTlJFTE1BUCwgcmZ0dXBsZSwKKwkJCQkJCQkJCQlBbnVtX3BnX3B1YmxpY2F0aW9uX3Jl bF9wcnF1YWwsCisJCQkJCQkJCQkJJmlzbnVsbCk7CiAJCQkJaWYgKCFpc251bGwpCi0JCQkJCW9s ZHJlbHdoZXJlY2xhdXNlID0gc3RyaW5nVG9Ob2RlKFRleHREYXR1bUdldENTdHJpbmcod2hlcmVD bGF1c2VEYXR1bSkpOworCQkJCQlvbGRyZWx3aGVyZWNsYXVzZSA9IHN0cmluZ1RvTm9kZShUZXh0 RGF0dW1HZXRDU3RyaW5nKGRhdHVtKSk7CiAKIAkJCQkvKiBUcmFuc2Zvcm0gdGhlIGludDJ2ZWN0 b3IgY29sdW1uIGxpc3QgdG8gYSBiaXRtYXAuICovCi0JCQkJY29sdW1uTGlzdERhdHVtID0gU3lz Q2FjaGVHZXRBdHRyKFBVQkxJQ0FUSU9OUkVMTUFQLCByZnR1cGxlLAotCQkJCQkJCQkJCQkJICBB bnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcmF0dHJzLAotCQkJCQkJCQkJCQkJICAmaXNudWxsKTsK KwkJCQlkYXR1bSA9IFN5c0NhY2hlR2V0QXR0cihQVUJMSUNBVElPTlJFTE1BUCwgcmZ0dXBsZSwK KwkJCQkJCQkJCQlBbnVtX3BnX3B1YmxpY2F0aW9uX3JlbF9wcmF0dHJzLAorCQkJCQkJCQkJCSZp c251bGwpOworCQkJCWlmICghaXNudWxsKQorCQkJCQlvbGRjb2x1bW5zID0gcHViX2NvbGxpc3Rf dG9fYml0bWFwc2V0KE5VTEwsIGRhdHVtLCBOVUxMKTsKIAorCQkJCS8qIExvYWQgdGhlIHByZXhj ZXB0IGZsYWcgZm9yIHRoaXMgdGFibGUuICovCisJCQkJZGF0dW0gPSBTeXNDYWNoZUdldEF0dHIo UFVCTElDQVRJT05SRUxNQVAsIHJmdHVwbGUsCisJCQkJCQkJCQkJQW51bV9wZ19wdWJsaWNhdGlv bl9yZWxfcHJleGNlcHQsCisJCQkJCQkJCQkJJmlzbnVsbCk7CiAJCQkJaWYgKCFpc251bGwpCi0J CQkJCW9sZGNvbHVtbnMgPSBwdWJfY29sbGlzdF90b19iaXRtYXBzZXQoTlVMTCwgY29sdW1uTGlz dERhdHVtLCBOVUxMKTsKKwkJCQkJb2xkZXhjZXB0ID0gRGF0dW1HZXRCb29sKGRhdHVtKTsKIAog CQkJCVJlbGVhc2VTeXNDYWNoZShyZnR1cGxlKTsKIAkJCX0KQEAgLTE1NTYsMTMgKzE1NjksMTQg QEAgQWx0ZXJQdWJsaWNhdGlvblRhYmxlcyhBbHRlclB1YmxpY2F0aW9uU3RtdCAqc3RtdCwgSGVh cFR1cGxlIHR1cCwKIAkJCQkgKiBDaGVjayBpZiBhbnkgb2YgdGhlIG5ldyBzZXQgb2YgcmVsYXRp b25zIG1hdGNoZXMgd2l0aCB0aGUKIAkJCQkgKiBleGlzdGluZyByZWxhdGlvbnMgaW4gdGhlIHB1 YmxpY2F0aW9uLiBBZGRpdGlvbmFsbHksIGlmIHRoZQogCQkJCSAqIHJlbGF0aW9uIGhhcyBhbiBh c3NvY2lhdGVkIFdIRVJFIGNsYXVzZSwgY2hlY2sgdGhlIFdIRVJFCi0JCQkJICogZXhwcmVzc2lv bnMgYWxzbyBtYXRjaC4gU2FtZSBmb3IgdGhlIGNvbHVtbiBsaXN0LiBEcm9wIHRoZQotCQkJCSAq IHJlc3QuCisJCQkJICogZXhwcmVzc2lvbnMgYWxzbyBtYXRjaC4gU2FtZSBmb3IgdGhlIGNvbHVt biBsaXN0IGFuZCBleGNlcHQKKwkJCQkgKiBmbGFnLiBEcm9wIHRoZSByZXN0LgogCQkJCSAqLwog CQkJCWlmIChuZXdyZWxpZCA9PSBvbGRyZWxpZCkKIAkJCQl7CiAJCQkJCWlmIChlcXVhbChvbGRy ZWx3aGVyZWNsYXVzZSwgbmV3cHVicmVsLT53aGVyZUNsYXVzZSkgJiYKLQkJCQkJCWJtc19lcXVh bChvbGRjb2x1bW5zLCBuZXdjb2x1bW5zKSkKKwkJCQkJCWJtc19lcXVhbChvbGRjb2x1bW5zLCBu ZXdjb2x1bW5zKSAmJgorCQkJCQkJb2xkZXhjZXB0ID09IG5ld3B1YnJlbC0+ZXhjZXB0KQogCQkJ CQl7CiAJCQkJCQlmb3VuZCA9IHRydWU7CiAJCQkJCQlicmVhazsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDJh ZTUxZTViZmUxLi43NzRkZmViZGZhNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC01MzUsNyArNTM1LDcgQEAg c3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3Qg KmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJCQlPcHRXaGVyZUNsYXVzZSBvcGVyYXRvcl9kZWZf YXJnCiAldHlwZSA8bGlzdD4Jb3B0X2NvbHVtbl9hbmRfcGVyaW9kX2xpc3QKICV0eXBlIDxsaXN0 Pglyb3dzZnJvbV9pdGVtIHJvd3Nmcm9tX2xpc3Qgb3B0X2NvbF9kZWZfbGlzdAotJXR5cGUgPGJv b2xlYW4+IG9wdF9vcmRpbmFsaXR5IG9wdF93aXRob3V0X292ZXJsYXBzCisldHlwZSA8Ym9vbGVh bj4gb3B0X29yZGluYWxpdHkgb3B0X3dpdGhvdXRfb3ZlcmxhcHMgb3B0X2V4Y2VwdAogJXR5cGUg PGxpc3Q+CUV4Y2x1c2lvbkNvbnN0cmFpbnRMaXN0IEV4Y2x1c2lvbkNvbnN0cmFpbnRFbGVtCiAl dHlwZSA8bGlzdD4JZnVuY19hcmdfbGlzdCBmdW5jX2FyZ19saXN0X29wdAogJXR5cGUgPG5vZGU+ CWZ1bmNfYXJnX2V4cHIKQEAgLTQ0ODAsNiArNDQ4MCwxMSBAQCBvcHRfd2l0aG91dF9vdmVybGFw czoKIAkJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gZmFsc2U7IH0KIAk7CiAKK29wdF9leGNl cHQ6CisJCQlFWENFUFQJCQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCAvKkVNUFRZKi8JCQkJ CQkJCXsgJCQgPSBmYWxzZTsgfQorCQk7CisKIG9wdF9jb2x1bW5fbGlzdDoKIAkJCScoJyBjb2x1 bW5MaXN0ICcpJwkJCQkJCXsgJCQgPSAkMjsgfQogCQkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQg PSBOSUw7IH0KQEAgLTEwNzk2LDE0ICsxMDgwMSwxNSBAQCBDcmVhdGVQdWJsaWNhdGlvblN0bXQ6 CiAgKiByZWxhdGlvbl9leHByIGhlcmUuCiAgKi8KIFB1YmxpY2F0aW9uT2JqU3BlYzoKLQkJCVRB QkxFIHJlbGF0aW9uX2V4cHIgb3B0X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNlCisJCQlUQUJM RSByZWxhdGlvbl9leHByIG9wdF9leGNlcHQgb3B0X2NvbHVtbl9saXN0IE9wdFdoZXJlQ2xhdXNl CiAJCQkJewogCQkJCQkkJCA9IG1ha2VOb2RlKFB1YmxpY2F0aW9uT2JqU3BlYyk7CiAJCQkJCSQk LT5wdWJvYmp0eXBlID0gUFVCTElDQVRJT05PQkpfVEFCTEU7CiAJCQkJCSQkLT5wdWJ0YWJsZSA9 IG1ha2VOb2RlKFB1YmxpY2F0aW9uVGFibGUpOwogCQkJCQkkJC0+cHVidGFibGUtPnJlbGF0aW9u ID0gJDI7Ci0JCQkJCSQkLT5wdWJ0YWJsZS0+Y29sdW1ucyA9ICQzOwotCQkJCQkkJC0+cHVidGFi bGUtPndoZXJlQ2xhdXNlID0gJDQ7CisJCQkJCSQkLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gJDM7CisJ CQkJCSQkLT5wdWJ0YWJsZS0+Y29sdW1ucyA9ICQ0OworCQkJCQkkJC0+cHVidGFibGUtPndoZXJl Q2xhdXNlID0gJDU7CiAJCQkJCSQkLT5sb2NhdGlvbiA9IEAxOwogCQkJCX0KIAkJCXwgVEFCTEVT IElOX1AgU0NIRU1BIENvbElkCkBAIC0xMDgxOSw3ICsxMDgyNSw3IEBAIFB1YmxpY2F0aW9uT2Jq U3BlYzoKIAkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9UQUJMRVNfSU5fQ1VS X1NDSEVNQTsKIAkJCQkJJCQtPmxvY2F0aW9uID0gQDQ7CiAJCQkJfQotCQkJfCBDb2xJZCBvcHRf Y29sdW1uX2xpc3QgT3B0V2hlcmVDbGF1c2UKKwkJCXwgQ29sSWQgb3B0X2V4Y2VwdCBvcHRfY29s dW1uX2xpc3QgT3B0V2hlcmVDbGF1c2UKIAkJCQl7CiAJCQkJCSQkID0gbWFrZU5vZGUoUHVibGlj YXRpb25PYmpTcGVjKTsKIAkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNBVElPTk9CSl9DT05U SU5VQVRJT047CkBAIC0xMDgyNyw3ICsxMDgzMyw3IEBAIFB1YmxpY2F0aW9uT2JqU3BlYzoKIAkJ CQkJICogSWYgZWl0aGVyIGEgcm93IGZpbHRlciBvciBjb2x1bW4gbGlzdCBpcyBzcGVjaWZpZWQs IGNyZWF0ZQogCQkJCQkgKiBhIFB1YmxpY2F0aW9uVGFibGUgb2JqZWN0LgogCQkJCQkgKi8KLQkJ CQkJaWYgKCQyIHx8ICQzKQorCQkJCQlpZiAoJDIgfHwgJDMgfHwgJDQpCiAJCQkJCXsKIAkJCQkJ CS8qCiAJCQkJCQkgKiBUaGUgT3B0V2hlcmVDbGF1c2UgbXVzdCBiZSBzdG9yZWQgaGVyZSBidXQg aXQgaXMKQEAgLTEwODM3LDggKzEwODQzLDkgQEAgUHVibGljYXRpb25PYmpTcGVjOgogCQkJCQkJ ICovCiAJCQkJCQkkJC0+cHVidGFibGUgPSBtYWtlTm9kZShQdWJsaWNhdGlvblRhYmxlKTsKIAkJ CQkJCSQkLT5wdWJ0YWJsZS0+cmVsYXRpb24gPSBtYWtlUmFuZ2VWYXIoTlVMTCwgJDEsIEAxKTsK LQkJCQkJCSQkLT5wdWJ0YWJsZS0+Y29sdW1ucyA9ICQyOwotCQkJCQkJJCQtPnB1YnRhYmxlLT53 aGVyZUNsYXVzZSA9ICQzOworCQkJCQkJJCQtPnB1YnRhYmxlLT5leGNlcHQgPSAkMjsKKwkJCQkJ CSQkLT5wdWJ0YWJsZS0+Y29sdW1ucyA9ICQzOworCQkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNs YXVzZSA9ICQ0OwogCQkJCQl9CiAJCQkJCWVsc2UKIAkJCQkJewpAQCAtMTA4NDYsMjUgKzEwODUz LDI3IEBAIFB1YmxpY2F0aW9uT2JqU3BlYzoKIAkJCQkJfQogCQkJCQkkJC0+bG9jYXRpb24gPSBA MTsKIAkJCQl9Ci0JCQl8IENvbElkIGluZGlyZWN0aW9uIG9wdF9jb2x1bW5fbGlzdCBPcHRXaGVy ZUNsYXVzZQorCQkJfCBDb2xJZCBpbmRpcmVjdGlvbiBvcHRfZXhjZXB0IG9wdF9jb2x1bW5fbGlz dCBPcHRXaGVyZUNsYXVzZQogCQkJCXsKIAkJCQkJJCQgPSBtYWtlTm9kZShQdWJsaWNhdGlvbk9i alNwZWMpOwogCQkJCQkkJC0+cHVib2JqdHlwZSA9IFBVQkxJQ0FUSU9OT0JKX0NPTlRJTlVBVElP TjsKIAkJCQkJJCQtPnB1YnRhYmxlID0gbWFrZU5vZGUoUHVibGljYXRpb25UYWJsZSk7CiAJCQkJ CSQkLT5wdWJ0YWJsZS0+cmVsYXRpb24gPSBtYWtlUmFuZ2VWYXJGcm9tUXVhbGlmaWVkTmFtZSgk MSwgJDIsIEAxLCB5eXNjYW5uZXIpOwotCQkJCQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkMzsK LQkJCQkJJCQtPnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9ICQ0OworCQkJCQkkJC0+cHVidGFibGUt PmV4Y2VwdCA9ICQzOworCQkJCQkkJC0+cHVidGFibGUtPmNvbHVtbnMgPSAkNDsKKwkJCQkJJCQt PnB1YnRhYmxlLT53aGVyZUNsYXVzZSA9ICQ1OwogCQkJCQkkJC0+bG9jYXRpb24gPSBAMTsKIAkJ CQl9CiAJCQkvKiBncmFtbWFyIGxpa2UgdGFibGVuYW1lICogLCBPTkxZIHRhYmxlbmFtZSwgT05M WSAoIHRhYmxlbmFtZSApICovCi0JCQl8IGV4dGVuZGVkX3JlbGF0aW9uX2V4cHIgb3B0X2NvbHVt bl9saXN0IE9wdFdoZXJlQ2xhdXNlCisJCQl8IGV4dGVuZGVkX3JlbGF0aW9uX2V4cHIgb3B0X2V4 Y2VwdCBvcHRfY29sdW1uX2xpc3QgT3B0V2hlcmVDbGF1c2UKIAkJCQl7CiAJCQkJCSQkID0gbWFr ZU5vZGUoUHVibGljYXRpb25PYmpTcGVjKTsKIAkJCQkJJCQtPnB1Ym9ianR5cGUgPSBQVUJMSUNB VElPTk9CSl9DT05USU5VQVRJT047CiAJCQkJCSQkLT5wdWJ0YWJsZSA9IG1ha2VOb2RlKFB1Ymxp Y2F0aW9uVGFibGUpOwogCQkJCQkkJC0+cHVidGFibGUtPnJlbGF0aW9uID0gJDE7Ci0JCQkJCSQk LT5wdWJ0YWJsZS0+Y29sdW1ucyA9ICQyOwotCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNl ID0gJDM7CisJCQkJCSQkLT5wdWJ0YWJsZS0+ZXhjZXB0ID0gJDI7CisJCQkJCSQkLT5wdWJ0YWJs ZS0+Y29sdW1ucyA9ICQzOworCQkJCQkkJC0+cHVidGFibGUtPndoZXJlQ2xhdXNlID0gJDQ7CiAJ CQkJfQogCQkJfCBDVVJSRU5UX1NDSEVNQQogCQkJCXsKQEAgLTE5ODU2LDYgKzE5ODY1LDEzIEBA IHByZXByb2Nlc3NfcHVib2JqX2xpc3QoTGlzdCAqcHVib2Jqc3BlY19saXN0LCBjb3JlX3l5c2Nh bl90IHl5c2Nhbm5lcikKIAkJCQkJCWVycm1zZygiaW52YWxpZCB0YWJsZSBuYW1lIiksCiAJCQkJ CQlwYXJzZXJfZXJycG9zaXRpb24ocHVib2JqLT5sb2NhdGlvbikpOwogCisJCQlpZiAocHVib2Jq LT5wdWJ0YWJsZSAmJiBwdWJvYmotPnB1YnRhYmxlLT5leGNlcHQgJiYKKwkJCQlwdWJvYmotPnB1 YnRhYmxlLT5jb2x1bW5zID09IE5VTEwpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCWVycmNv ZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCQkJZXJybXNnKCJ0YWJsZSB3aXRob3V0IGNv bHVtbiBsaXN0IGNhbm5vdCB1c2UgRVhDRVBUIGNsYXVzZSIpLAorCQkJCQkJcGFyc2VyX2VycnBv c2l0aW9uKHB1Ym9iai0+bG9jYXRpb24pKTsKKwogCQkJaWYgKHB1Ym9iai0+bmFtZSkKIAkJCXsK IAkJCQkvKiBjb252ZXJ0IGl0IHRvIFB1YmxpY2F0aW9uVGFibGUgKi8KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvdGFibGVzeW5jLmMgYi9zcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jCmluZGV4IDZiYjBjYmVlZGFkLi4zMzAyNDhk MWY3ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC90YWJsZXN5 bmMuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3RhYmxlc3luYy5jCkBA IC03MjAsMTAgKzcyMCwxOCBAQCBjb3B5X3JlYWRfZGF0YSh2b2lkICpvdXRidWYsIGludCBtaW5y ZWFkLCBpbnQgbWF4cmVhZCkKICAqIFRoaXMgZnVuY3Rpb24gYWxzbyByZXR1cm5zIChhKSB0aGUg cmVsYXRpb24gcXVhbGlmaWNhdGlvbnMgdG8gYmUgdXNlZCBpbgogICogdGhlIENPUFkgY29tbWFu ZCwgYW5kIChiKSB3aGV0aGVyIHRoZSByZW1vdGUgcmVsYXRpb24gaGFzIHB1Ymxpc2hlZCBhbnkK ICAqIGdlbmVyYXRlZCBjb2x1bW4uCisgKgorICogV2l0aCB0aGUgaW50cm9kdWN0aW9uIG9mIHRo ZSBFWENFUFQgcXVhbGlmaWVyIGluIGNvbHVtbiBsaXN0cywgaXQgaXMgbm93CisgKiBwb3NzaWJs ZSB0byBkZWZpbmUgYSBwdWJsaWNhdGlvbiB0aGF0IGV4Y2x1ZGVzIGFsbCBjb2x1bW5zIG9mIGEg dGFibGUuIFdoZW4KKyAqIHRoZSBjb2x1bW4gbGlzdCBpcyBmZXRjaGVkIGZyb20gdGhlIHJlbW90 ZSBzZXJ2ZXIgYW5kIGlzIE5VTEwsIGl0IG5vcm1hbGx5CisgKiBpbmRpY2F0ZXMgdGhhdCBhbGwg Y29sdW1ucyBhcmUgaW5jbHVkZWQuIFRvIGRpc3Rpbmd1aXNoIHRoaXMgZnJvbSB0aGUgY2FzZQor ICogd2hlcmUgYWxsIGNvbHVtbnMgYXJlIGV4cGxpY2l0bHkgZXhjbHVkZWQsIHRoZSAnYWxsX2Nv bHNfZXhjbHVkZWQnIGZsYWcgaGFzCisgKiBiZWVuIGludHJvZHVjZWQuCiAgKi8KIHN0YXRpYyB2 b2lkCiBmZXRjaF9yZW1vdGVfdGFibGVfaW5mbyhjaGFyICpuc3BuYW1lLCBjaGFyICpyZWxuYW1l LCBMb2dpY2FsUmVwUmVsYXRpb24gKmxyZWwsCi0JCQkJCQlMaXN0ICoqcXVhbCwgYm9vbCAqZ2Vu Y29sX3B1Ymxpc2hlZCkKKwkJCQkJCUxpc3QgKipxdWFsLCBib29sICpnZW5jb2xfcHVibGlzaGVk LAorCQkJCQkJYm9vbCAqYWxsX2NvbHNfZXhjbHVkZWQpCiB7CiAJV2FsUmN2RXhlY1Jlc3VsdCAq cmVzOwogCVN0cmluZ0luZm9EYXRhIGNtZDsKQEAgLTczNyw2ICs3NDUsOSBAQCBmZXRjaF9yZW1v dGVfdGFibGVfaW5mbyhjaGFyICpuc3BuYW1lLCBjaGFyICpyZWxuYW1lLCBMb2dpY2FsUmVwUmVs YXRpb24gKmxyZWwsCiAJQml0bWFwc2V0ICAqaW5jbHVkZWRfY29scyA9IE5VTEw7CiAJaW50CQkJ c2VydmVyX3ZlcnNpb24gPSB3YWxyY3Zfc2VydmVyX3ZlcnNpb24oTG9nUmVwV29ya2VyV2FsUmN2 Q29ubik7CiAKKwlBc3NlcnQoKmdlbmNvbF9wdWJsaXNoZWQgPT0gZmFsc2UpOworCUFzc2VydCgq YWxsX2NvbHNfZXhjbHVkZWQgPT0gZmFsc2UpOworCiAJbHJlbC0+bnNwbmFtZSA9IG5zcG5hbWU7 CiAJbHJlbC0+cmVsbmFtZSA9IHJlbG5hbWU7CiAKQEAgLTc4Nyw3ICs3OTgsNyBAQCBmZXRjaF9y ZW1vdGVfdGFibGVfaW5mbyhjaGFyICpuc3BuYW1lLCBjaGFyICpyZWxuYW1lLCBMb2dpY2FsUmVw UmVsYXRpb24gKmxyZWwsCiAJewogCQlXYWxSY3ZFeGVjUmVzdWx0ICpwdWJyZXM7CiAJCVR1cGxl VGFibGVTbG90ICp0c2xvdDsKLQkJT2lkCQkJYXR0cnNSb3dbXSA9IHtJTlQyVkVDVE9ST0lEfTsK KwkJT2lkCQkJYXR0cnNSb3dbXSA9IHtJTlQyVkVDVE9ST0lELCBCT09MT0lEfTsKIAogCQkvKiBC dWlsZCB0aGUgcHViX25hbWVzIGNvbW1hLXNlcGFyYXRlZCBzdHJpbmcuICovCiAJCXB1Yl9uYW1l cyA9IG1ha2VTdHJpbmdJbmZvKCk7CkBAIC04MDEsNyArODEyLDE3IEBAIGZldGNoX3JlbW90ZV90 YWJsZV9pbmZvKGNoYXIgKm5zcG5hbWUsIGNoYXIgKnJlbG5hbWUsIExvZ2ljYWxSZXBSZWxhdGlv biAqbHJlbCwKIAkJYXBwZW5kU3RyaW5nSW5mbygmY21kLAogCQkJCQkJICJTRUxFQ1QgRElTVElO Q1QiCiAJCQkJCQkgIiAgKENBU0UgV0hFTiAoYXJyYXlfbGVuZ3RoKGdwdC5hdHRycywgMSkgPSBj LnJlbG5hdHRzKSIKLQkJCQkJCSAiICAgVEhFTiBOVUxMIEVMU0UgZ3B0LmF0dHJzIEVORCkiCisJ CQkJCQkgIiAgIFRIRU4gTlVMTCBFTFNFIGdwdC5hdHRycyBFTkQpIik7CisKKwkJLyoKKwkJICog V2hlbiBwdWJsaWNhdGlvbiBpcyBjcmVhdGVkIHdpdGggRVhDRVBUIChjb2x1bW4tbGlzdCkgYW5k IGFsbAorCQkgKiBjb2x1bW5zIGFyZSBzcGVjaWZpZWQsIGdwdC5hdHRycyB3aWxsIGJlIE5VTEwg YW5kIG5vIGNvbHVtbnMgYXJlCisJCSAqIHB1Ymxpc2hlZCBpbiB0aGlzIGNhc2UuCisJCSAqLwor CQlpZiAoc2VydmVyX3ZlcnNpb24gPj0gMTkwMDAwKQorCQkJYXBwZW5kU3RyaW5nSW5mbygmY21k LCAiLCBncHQuYXR0cnMgSVMgTlVMTCBBTkQgYy5yZWxuYXR0cyA+IDAiKTsKKworCQlhcHBlbmRT dHJpbmdJbmZvKCZjbWQsCiAJCQkJCQkgIiAgRlJPTSBwZ19wdWJsaWNhdGlvbiBwLCIKIAkJCQkJ CSAiICBMQVRFUkFMIHBnX2dldF9wdWJsaWNhdGlvbl90YWJsZXMocC5wdWJuYW1lKSBncHQsIgog CQkJCQkJICIgIHBnX2NsYXNzIGMiCkBAIC04MTEsNyArODMyLDcgQEAgZmV0Y2hfcmVtb3RlX3Rh YmxlX2luZm8oY2hhciAqbnNwbmFtZSwgY2hhciAqcmVsbmFtZSwgTG9naWNhbFJlcFJlbGF0aW9u ICpscmVsLAogCQkJCQkJIHB1Yl9uYW1lcy0+ZGF0YSk7CiAKIAkJcHVicmVzID0gd2FscmN2X2V4 ZWMoTG9nUmVwV29ya2VyV2FsUmN2Q29ubiwgY21kLmRhdGEsCi0JCQkJCQkJIGxlbmd0aG9mKGF0 dHJzUm93KSwgYXR0cnNSb3cpOworCQkJCQkJCSBzZXJ2ZXJfdmVyc2lvbiA+PSAxOTAwMDAgPyAy IDogMSwgYXR0cnNSb3cpOwogCiAJCWlmIChwdWJyZXMtPnN0YXR1cyAhPSBXQUxSQ1ZfT0tfVFVQ TEVTKQogCQkJZXJlcG9ydChFUlJPUiwKQEAgLTg1OCw2ICs4NzksOSBAQCBmZXRjaF9yZW1vdGVf dGFibGVfaW5mbyhjaGFyICpuc3BuYW1lLCBjaGFyICpyZWxuYW1lLCBMb2dpY2FsUmVwUmVsYXRp b24gKmxyZWwsCiAJCQkJCWluY2x1ZGVkX2NvbHMgPSBibXNfYWRkX21lbWJlcihpbmNsdWRlZF9j b2xzLCBlbGVtc1tuYXR0XSk7CiAJCQl9CiAKKwkJCWlmIChzZXJ2ZXJfdmVyc2lvbiA+PSAxOTAw MDApCisJCQkJKmFsbF9jb2xzX2V4Y2x1ZGVkID0gRGF0dW1HZXRCb29sKHNsb3RfZ2V0YXR0cih0 c2xvdCwgMiwgJmlzbnVsbCkpOworCiAJCQlFeGVjQ2xlYXJUdXBsZSh0c2xvdCk7CiAJCX0KIAkJ RXhlY0Ryb3BTaW5nbGVUdXBsZVRhYmxlU2xvdCh0c2xvdCk7CkBAIC05MjAsNyArOTQ0LDggQEAg ZmV0Y2hfcmVtb3RlX3RhYmxlX2luZm8oY2hhciAqbnNwbmFtZSwgY2hhciAqcmVsbmFtZSwgTG9n aWNhbFJlcFJlbGF0aW9uICpscmVsLAogCQlBc3NlcnQoIWlzbnVsbCk7CiAKIAkJLyogSWYgdGhl IGNvbHVtbiBpcyBub3QgaW4gdGhlIGNvbHVtbiBsaXN0LCBza2lwIGl0LiAqLwotCQlpZiAoaW5j bHVkZWRfY29scyAhPSBOVUxMICYmICFibXNfaXNfbWVtYmVyKGF0dG51bSwgaW5jbHVkZWRfY29s cykpCisJCWlmICgqYWxsX2NvbHNfZXhjbHVkZWQgfHwKKwkJCShpbmNsdWRlZF9jb2xzICE9IE5V TEwgJiYgIWJtc19pc19tZW1iZXIoYXR0bnVtLCBpbmNsdWRlZF9jb2xzKSkpCiAJCXsKIAkJCUV4 ZWNDbGVhclR1cGxlKHNsb3QpOwogCQkJY29udGludWU7CkBAIC0xMDUyLDExICsxMDc3LDE1IEBA IGNvcHlfdGFibGUoUmVsYXRpb24gcmVsKQogCVBhcnNlU3RhdGUgKnBzdGF0ZTsKIAlMaXN0CSAg ICpvcHRpb25zID0gTklMOwogCWJvb2wJCWdlbmNvbF9wdWJsaXNoZWQgPSBmYWxzZTsKKwlib29s CQlhbGxfY29sc19leGNsdWRlZCA9IGZhbHNlOwogCiAJLyogR2V0IHRoZSBwdWJsaXNoZXIgcmVs YXRpb24gaW5mby4gKi8KIAlmZXRjaF9yZW1vdGVfdGFibGVfaW5mbyhnZXRfbmFtZXNwYWNlX25h bWUoUmVsYXRpb25HZXROYW1lc3BhY2UocmVsKSksCiAJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlv bk5hbWUocmVsKSwgJmxyZWwsICZxdWFsLAotCQkJCQkJCSZnZW5jb2xfcHVibGlzaGVkKTsKKwkJ CQkJCQkmZ2VuY29sX3B1Ymxpc2hlZCwgJmFsbF9jb2xzX2V4Y2x1ZGVkKTsKKworCWlmIChhbGxf Y29sc19leGNsdWRlZCkKKwkJcmV0dXJuOwogCiAJLyogUHV0IHRoZSByZWxhdGlvbiBpbnRvIHJl bG1hcC4gKi8KIAlsb2dpY2FscmVwX3JlbG1hcF91cGRhdGUoJmxyZWwpOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vcGdvdXRwdXQvcGdvdXRwdXQuYyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMKaW5kZXggYTk1OTNjNWQ5ZGEuLjdmNTM0 NjE4Y2Y0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9wZ291dHB1dC9wZ291 dHB1dC5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Bnb3V0cHV0L3Bnb3V0cHV0LmMK QEAgLTE4NSw2ICsxODUsMTYgQEAgdHlwZWRlZiBzdHJ1Y3QgUmVsYXRpb25TeW5jRW50cnkKIAkg KiByb3cgZmlsdGVyIGV4cHJlc3Npb25zLCBjb2x1bW4gbGlzdCwgZXRjLgogCSAqLwogCU1lbW9y eUNvbnRleHQgZW50cnlfY3h0OworCisJLyoKKwkgKiBJbmRpY2F0ZXMgd2hldGhlciBubyBjb2x1 bW5zIGFyZSBwdWJsaXNoZWQgZm9yIGEgZ2l2ZW4gcmVsYXRpb24uIFdpdGgKKwkgKiB0aGUgaW50 cm9kdWN0aW9uIG9mIHRoZSBFWENFUFQgcXVhbGlmaWVyIGluIGNvbHVtbiBsaXN0cywgaXQgaXMg bm93CisJICogcG9zc2libGUgdG8gZGVmaW5lIGEgcHVibGljYXRpb24gdGhhdCBleGNsdWRlcyBh bGwgY29sdW1ucyBvZiBhIHRhYmxlLgorCSAqIEhvd2V2ZXIsIHRoZSAnY29sdW1ucycgYXR0cmli dXRlIGNhbm5vdCByZXByZXNlbnQgdGhpcyBjYXNlLCBzaW5jZSBhCisJICogTlVMTCB2YWx1ZSBp bXBsaWVzIHRoYXQgYWxsIGNvbHVtbnMgYXJlIHB1Ymxpc2hlZC4gVG8gZGlzdGluZ3Vpc2ggdGhp cworCSAqIHNjZW5hcmlvLCB0aGUgJ2FsbF9jb2xzX2V4Y2x1ZGVkJyBmbGFnIGlzIGludHJvZHVj ZWQuCisJICovCisJYm9vbAkJYWxsX2NvbHNfZXhjbHVkZWQ7CiB9IFJlbGF0aW9uU3luY0VudHJ5 OwogCiAvKgpAQCAtMTA5MSwxMiArMTEwMSwyMSBAQCBjaGVja19hbmRfaW5pdF9nZW5jb2woUEdP dXRwdXREYXRhICpkYXRhLCBMaXN0ICpwdWJsaWNhdGlvbnMsCiAJICovCiAJZm9yZWFjaF9wdHIo UHVibGljYXRpb24sIHB1YiwgcHVibGljYXRpb25zKQogCXsKKwkJYm9vbAkJaGFzX2NvbHVtbl9s aXN0ID0gZmFsc2U7CisJCWJvb2wJCWV4Y2VwdF9jb2x1bW5zID0gZmFsc2U7CisKKwkJaGFzX2Nv bHVtbl9saXN0ID0gY2hlY2tfYW5kX2ZldGNoX2NvbHVtbl9saXN0KHB1YiwKKwkJCQkJCQkJCQkJ CQkgIGVudHJ5LT5wdWJsaXNoX2FzX3JlbGlkLAorCQkJCQkJCQkJCQkJCSAgTlVMTCwgTlVMTCwK KwkJCQkJCQkJCQkJCQkgICZleGNlcHRfY29sdW1ucyk7CisKIAkJLyoKIAkJICogVGhlIGNvbHVt biBsaXN0IHRha2VzIHByZWNlZGVuY2Ugb3ZlciB0aGUKIAkJICogJ3B1Ymxpc2hfZ2VuZXJhdGVk X2NvbHVtbnMnIHBhcmFtZXRlci4gVGhvc2Ugd2lsbCBiZSBjaGVja2VkIGxhdGVyLAotCQkgKiBz ZWUgcGdvdXRwdXRfY29sdW1uX2xpc3RfaW5pdC4KKwkJICogc2VlIHBnb3V0cHV0X2NvbHVtbl9s aXN0X2luaXQuIEJ1dCB3aGVuIGEgY29sdW1uIGxpc3QgaXMgc3BlY2lmaWVkCisJCSAqIHdpdGgg RVhDRVBULCBpdCBzaG91bGQgYmUgY2hlY2tlZC4KIAkJICovCi0JCWlmIChjaGVja19hbmRfZmV0 Y2hfY29sdW1uX2xpc3QocHViLCBlbnRyeS0+cHVibGlzaF9hc19yZWxpZCwgTlVMTCwgTlVMTCkp CisJCWlmIChoYXNfY29sdW1uX2xpc3QgJiYgIWV4Y2VwdF9jb2x1bW5zKQogCQkJY29udGludWU7 CiAKIAkJaWYgKGZpcnN0KQpAQCAtMTE0NSwxOSArMTE2NCw0MSBAQCBwZ291dHB1dF9jb2x1bW5f bGlzdF9pbml0KFBHT3V0cHV0RGF0YSAqZGF0YSwgTGlzdCAqcHVibGljYXRpb25zLAogCXsKIAkJ UHVibGljYXRpb24gKnB1YiA9IGxmaXJzdChsYyk7CiAJCUJpdG1hcHNldCAgKmNvbHMgPSBOVUxM OworCQlib29sCQlleGNlcHRfY29sdW1ucyA9IGZhbHNlOworCQlib29sCQlhbGxfY29sc19leGNs dWRlZCA9IGZhbHNlOwogCiAJCS8qIFJldHJpZXZlIHRoZSBiaXRtYXAgb2YgY29sdW1ucyBmb3Ig YSBjb2x1bW4gbGlzdCBwdWJsaWNhdGlvbi4gKi8KIAkJZm91bmRfcHViX2NvbGxpc3QgfD0gY2hl Y2tfYW5kX2ZldGNoX2NvbHVtbl9saXN0KHB1YiwKIAkJCQkJCQkJCQkJCQkJIGVudHJ5LT5wdWJs aXNoX2FzX3JlbGlkLAotCQkJCQkJCQkJCQkJCQkgZW50cnktPmVudHJ5X2N4dCwgJmNvbHMpOwor CQkJCQkJCQkJCQkJCQkgZW50cnktPmVudHJ5X2N4dCwgJmNvbHMsCisJCQkJCQkJCQkJCQkJCSAm ZXhjZXB0X2NvbHVtbnMpOworCisJCS8qCisJCSAqIElmIGNvbHVtbiBsaXN0IGlzIHNwZWNpZmll ZCB3aXRoIEVYQ0VQVCByZXRyaWV2ZSBiaXRtYXAgb2YgY29sdW1ucworCQkgKiB3aGljaCBhcmUg bm90IHBhcnQgb2YgdGhpcyBjb2x1bW4gbGlzdC4KKwkJICovCisJCWlmIChleGNlcHRfY29sdW1u cykKKwkJeworCQkJTWVtb3J5Q29udGV4dCBvbGRjeHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8o ZW50cnktPmVudHJ5X2N4dCk7CisKKwkJCWNvbHMgPSBwdWJfZm9ybV9jb2xzX21hcChyZWxhdGlv biwKKwkJCQkJCQkJCSBlbnRyeS0+aW5jbHVkZV9nZW5jb2xzX3R5cGUsIGNvbHMpOworCQkJTWVt b3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7CisKKwkJCWlmICghY29scykKKwkJCQlhbGxfY29s c19leGNsdWRlZCA9IHRydWU7CisJCX0KIAogCQkvKgotCQkgKiBGb3Igbm9uLWNvbHVtbiBsaXN0 IHB1YmxpY2F0aW9ucyDigJQgZS5nLiBUQUJMRSAod2l0aG91dCBhIGNvbHVtbgotCQkgKiBsaXN0 KSwgQUxMIFRBQkxFUywgb3IgQUxMIFRBQkxFUyBJTiBTQ0hFTUEsIHdlIGNvbnNpZGVyIGFsbCBj b2x1bW5zCi0JCSAqIG9mIHRoZSB0YWJsZSAoaW5jbHVkaW5nIGdlbmVyYXRlZCBjb2x1bW5zIHdo ZW4KKwkJICogSWYgJ2NvbHMnIGlzIG51bGwsIGl0IGluZGljYXRlcyB0aGF0IHRoZSBwdWJsaWNh dGlvbiBpcyBlaXRoZXIgYQorCQkgKiBub24tY29sdW1uIGxpc3QgcHVibGljYXRpb24gb3Igb25l IHdoZXJlIGFsbCBjb2x1bW5zIGFyZSBleGNsdWRlZC4KKwkJICogV2hlbiAnYWxsX2NvbHNfZXhj bHVkZWQnIGlzIHRydWUsIGl0IGV4cGxpY2l0bHkgbWVhbnMgYWxsIGNvbHVtbnMKKwkJICogaGF2 ZSBiZWVuIGV4Y2x1ZGVkLiBGb3Igbm9uLWNvbHVtbiBsaXN0IHB1YmxpY2F0aW9ucyDigJQgZS5n LiBUQUJMRQorCQkgKiAod2l0aG91dCBhIGNvbHVtbiBsaXN0KSwgQUxMIFRBQkxFUywgb3IgQUxM IFRBQkxFUyBJTiBTQ0hFTUEsIHdlCisJCSAqIGNvbnNpZGVyIGFsbCBjb2x1bW5zIG9mIHRoZSB0 YWJsZSAoaW5jbHVkaW5nIGdlbmVyYXRlZCBjb2x1bW5zIHdoZW4KIAkJICogJ3B1Ymxpc2hfZ2Vu ZXJhdGVkX2NvbHVtbnMnIHBhcmFtZXRlciBpcyB0cnVlKS4KIAkJICovCi0JCWlmICghY29scykK KwkJaWYgKCFhbGxfY29sc19leGNsdWRlZCAmJiAhY29scykKIAkJewogCQkJLyoKIAkJCSAqIENh Y2hlIHRoZSB0YWJsZSBjb2x1bW5zIGZvciB0aGUgZmlyc3QgcHVibGljYXRpb24gd2l0aCBubwpA QCAtMTE2OSw3ICsxMjEwLDcgQEAgcGdvdXRwdXRfY29sdW1uX2xpc3RfaW5pdChQR091dHB1dERh dGEgKmRhdGEsIExpc3QgKnB1YmxpY2F0aW9ucywKIAkJCQlNZW1vcnlDb250ZXh0IG9sZGN4dCA9 IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhlbnRyeS0+ZW50cnlfY3h0KTsKIAogCQkJCXJlbGNvbHMg PSBwdWJfZm9ybV9jb2xzX21hcChyZWxhdGlvbiwKLQkJCQkJCQkJCQkJZW50cnktPmluY2x1ZGVf Z2VuY29sc190eXBlKTsKKwkJCQkJCQkJCQkJZW50cnktPmluY2x1ZGVfZ2VuY29sc190eXBlLCBO VUxMKTsKIAkJCQlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkY3h0KTsKIAkJCX0KIApAQCAtMTE3 OSw5ICsxMjIwLDExIEBAIHBnb3V0cHV0X2NvbHVtbl9saXN0X2luaXQoUEdPdXRwdXREYXRhICpk YXRhLCBMaXN0ICpwdWJsaWNhdGlvbnMsCiAJCWlmIChmaXJzdCkKIAkJewogCQkJZW50cnktPmNv bHVtbnMgPSBjb2xzOworCQkJZW50cnktPmFsbF9jb2xzX2V4Y2x1ZGVkID0gYWxsX2NvbHNfZXhj bHVkZWQ7CiAJCQlmaXJzdCA9IGZhbHNlOwogCQl9Ci0JCWVsc2UgaWYgKCFibXNfZXF1YWwoZW50 cnktPmNvbHVtbnMsIGNvbHMpKQorCQllbHNlIGlmICgoZW50cnktPmFsbF9jb2xzX2V4Y2x1ZGVk ICE9IGFsbF9jb2xzX2V4Y2x1ZGVkKSB8fAorCQkJCSAhYm1zX2VxdWFsKGVudHJ5LT5jb2x1bW5z LCBjb2xzKSkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJF X05PVF9TVVBQT1JURUQpLAogCQkJCQllcnJtc2coImNhbm5vdCB1c2UgZGlmZmVyZW50IGNvbHVt biBsaXN0cyBmb3IgdGFibGUgXCIlcy4lc1wiIGluIGRpZmZlcmVudCBwdWJsaWNhdGlvbnMiLApA QCAtMTUwNSw2ICsxNTQ4LDEzIEBAIHBnb3V0cHV0X2NoYW5nZShMb2dpY2FsRGVjb2RpbmdDb250 ZXh0ICpjdHgsIFJlb3JkZXJCdWZmZXJUWE4gKnR4biwKIAogCXJlbGVudHJ5ID0gZ2V0X3JlbF9z eW5jX2VudHJ5KGRhdGEsIHJlbGF0aW9uKTsKIAorCS8qCisJICogSWYgYWxsIGNvbHVtbnMgb2Yg YSB0YWJsZSBhcmUgcHJlc2VudCBpbiBjb2x1bW4gbGlzdCBzcGVjaWZpZWQgd2l0aAorCSAqIEVY Q0VQVCwgc2tpcCBwdWJsaXNoaW5nIHRoZSBjaGFuZ2VzLgorCSAqLworCWlmIChyZWxlbnRyeS0+ YWxsX2NvbHNfZXhjbHVkZWQpCisJCXJldHVybjsKKwogCS8qIEZpcnN0IGNoZWNrIHRoZSB0YWJs ZSBmaWx0ZXIgKi8KIAlzd2l0Y2ggKGFjdGlvbikKIAl7CkBAIC0yMDc4LDYgKzIxMjgsNyBAQCBn ZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxhdGlvbiByZWxhdGlvbikK IAkJZW50cnktPnB1Ymxpc2hfYXNfcmVsaWQgPSBJbnZhbGlkT2lkOwogCQllbnRyeS0+Y29sdW1u cyA9IE5VTEw7CiAJCWVudHJ5LT5hdHRybWFwID0gTlVMTDsKKwkJZW50cnktPmFsbF9jb2xzX2V4 Y2x1ZGVkID0gZmFsc2U7CiAJfQogCiAJLyogVmFsaWRhdGUgdGhlIGVudHJ5ICovCkBAIC0yMTI3 LDYgKzIxNzgsNyBAQCBnZXRfcmVsX3N5bmNfZW50cnkoUEdPdXRwdXREYXRhICpkYXRhLCBSZWxh dGlvbiByZWxhdGlvbikKIAkJZW50cnktPnB1YmFjdGlvbnMucHVidXBkYXRlID0gZmFsc2U7CiAJ CWVudHJ5LT5wdWJhY3Rpb25zLnB1YmRlbGV0ZSA9IGZhbHNlOwogCQllbnRyeS0+cHViYWN0aW9u cy5wdWJ0cnVuY2F0ZSA9IGZhbHNlOworCQllbnRyeS0+YWxsX2NvbHNfZXhjbHVkZWQgPSBmYWxz ZTsKIAogCQkvKgogCQkgKiBUdXBsZSBzbG90cyBjbGVhbnVwcy4gKFdpbGwgYmUgcmVidWlsdCBs YXRlciBpZiBuZWVkZWQpLgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBi L3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggZjgyNTBiMDAwZDguLjU3NDJhNmYyOWI0 IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMKQEAgLTQ5MzMsMjQgKzQ5MzMsNyBAQCBnZXRQdWJsaWNhdGlvblRhYmxl cyhBcmNoaXZlICpmb3V0LCBUYWJsZUluZm8gdGJsaW5mb1tdLCBpbnQgbnVtVGFibGVzKQogCQlp ZiAodGJpbmZvID09IE5VTEwpCiAJCQljb250aW51ZTsKIAotCQkvKiBPSywgbWFrZSBhIER1bXBh YmxlT2JqZWN0IGZvciB0aGlzIHJlbGF0aW9uc2hpcCAqLwotCQlpZiAoc3RyY21wKHByZXhjZXB0 LCAiZiIpID09IDApCi0JCQlwdWJyaW5mb1tqXS5kb2JqLm9ialR5cGUgPSBET19QVUJMSUNBVElP Tl9SRUw7Ci0JCWVsc2UKLQkJCXB1YnJpbmZvW2pdLmRvYmoub2JqVHlwZSA9IERPX1BVQkxJQ0FU SU9OX0VYQ0VQVF9SRUw7Ci0KLQkJcHVicmluZm9bal0uZG9iai5jYXRJZC50YWJsZW9pZCA9Ci0J CQlhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdGFibGVvaWQpKTsKLQkJcHVicmluZm9bal0u ZG9iai5jYXRJZC5vaWQgPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfb2lkKSk7Ci0JCUFz c2lnbkR1bXBJZCgmcHVicmluZm9bal0uZG9iaik7Ci0JCXB1YnJpbmZvW2pdLmRvYmoubmFtZXNw YWNlID0gdGJpbmZvLT5kb2JqLm5hbWVzcGFjZTsKLQkJcHVicmluZm9bal0uZG9iai5uYW1lID0g dGJpbmZvLT5kb2JqLm5hbWU7Ci0JCXB1YnJpbmZvW2pdLnB1YmxpY2F0aW9uID0gcHViaW5mbzsK LQkJcHVicmluZm9bal0ucHVidGFibGUgPSB0YmluZm87Ci0JCWlmIChQUWdldGlzbnVsbChyZXMs IGksIGlfcHJyZWxxdWFsKSkKLQkJCXB1YnJpbmZvW2pdLnB1YnJlbHF1YWwgPSBOVUxMOwotCQll bHNlCi0JCQlwdWJyaW5mb1tqXS5wdWJyZWxxdWFsID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVz LCBpLCBpX3BycmVscXVhbCkpOworCQlwdWJyaW5mb1tqXS5wdWJleGNlcHQgPSAoc3RyY21wKHBy ZXhjZXB0LCAidCIpID09IDApOwogCiAJCWlmICghUFFnZXRpc251bGwocmVzLCBpLCBpX3ByYXR0 cnMpKQogCQl7CkBAIC00OTc2LDEwICs0OTU5LDI5IEBAIGdldFB1YmxpY2F0aW9uVGFibGVzKEFy Y2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0YmxpbmZvW10sIGludCBudW1UYWJsZXMpCiAJCWVsc2UK IAkJCXB1YnJpbmZvW2pdLnB1YnJhdHRycyA9IE5VTEw7CiAKKwkJLyogT0ssIG1ha2UgYSBEdW1w YWJsZU9iamVjdCBmb3IgdGhpcyByZWxhdGlvbnNoaXAgKi8KKwkJaWYgKHB1YnJpbmZvW2pdLnB1 YmV4Y2VwdCAmJiAhcHVicmluZm9bal0ucHVicmF0dHJzKQorCQkJcHVicmluZm9bal0uZG9iai5v YmpUeXBlID0gRE9fUFVCTElDQVRJT05fRVhDRVBUX1JFTDsKKwkJZWxzZQorCQkJcHVicmluZm9b al0uZG9iai5vYmpUeXBlID0gRE9fUFVCTElDQVRJT05fUkVMOworCisJCXB1YnJpbmZvW2pdLmRv YmouY2F0SWQudGFibGVvaWQgPQorCQkJYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3RhYmxl b2lkKSk7CisJCXB1YnJpbmZvW2pdLmRvYmouY2F0SWQub2lkID0gYXRvb2lkKFBRZ2V0dmFsdWUo cmVzLCBpLCBpX29pZCkpOworCQlBc3NpZ25EdW1wSWQoJnB1YnJpbmZvW2pdLmRvYmopOworCQlw dWJyaW5mb1tqXS5kb2JqLm5hbWVzcGFjZSA9IHRiaW5mby0+ZG9iai5uYW1lc3BhY2U7CisJCXB1 YnJpbmZvW2pdLmRvYmoubmFtZSA9IHRiaW5mby0+ZG9iai5uYW1lOworCQlwdWJyaW5mb1tqXS5w dWJsaWNhdGlvbiA9IHB1YmluZm87CisJCXB1YnJpbmZvW2pdLnB1YnRhYmxlID0gdGJpbmZvOwor CQlpZiAoUFFnZXRpc251bGwocmVzLCBpLCBpX3BycmVscXVhbCkpCisJCQlwdWJyaW5mb1tqXS5w dWJyZWxxdWFsID0gTlVMTDsKKwkJZWxzZQorCQkJcHVicmluZm9bal0ucHVicmVscXVhbCA9IHBn X3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV9wcnJlbHF1YWwpKTsKKwogCQkvKiBEZWNpZGUg d2hldGhlciB3ZSB3YW50IHRvIGR1bXAgaXQgKi8KIAkJc2VsZWN0RHVtcGFibGVQdWJsaWNhdGlv bk9iamVjdCgmKHB1YnJpbmZvW2pdLmRvYmopLCBmb3V0KTsKIAotCQlpZiAoc3RyY21wKHByZXhj ZXB0LCAidCIpID09IDApCisJCWlmIChwdWJyaW5mb1tqXS5wdWJleGNlcHQgJiYgIXB1YnJpbmZv W2pdLnB1YnJhdHRycykKIAkJCXNpbXBsZV9wdHJfbGlzdF9hcHBlbmQoJmV4Y2VwdGluZm8sICZw dWJyaW5mb1tqXSk7CiAKIAkJaisrOwpAQCAtNTA1OSw3ICs1MDYxLDEyIEBAIGR1bXBQdWJsaWNh dGlvblRhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9uUmVsSW5mbyAqcHVicmlu Zm8pCiAJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUodGJpbmZvKSk7CiAKIAlpZiAocHVicmlu Zm8tPnB1YnJhdHRycykKKwl7CisJCWlmIChwdWJyaW5mby0+cHViZXhjZXB0KQorCQkJYXBwZW5k UFFFeHBCdWZmZXJTdHIocXVlcnksICIgRVhDRVBUIik7CisKIAkJYXBwZW5kUFFFeHBCdWZmZXIo cXVlcnksICIgKCVzKSIsIHB1YnJpbmZvLT5wdWJyYXR0cnMpOworCX0KIAogCWlmIChwdWJyaW5m by0+cHVicmVscXVhbCkKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5o IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCA3MjNiNTU3NWM1My4uY2EyZDM1NmY3 MmEgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaApAQCAtNjkwLDYgKzY5MCw3IEBAIHR5cGVkZWYgc3RydWN0IF9QdWJs aWNhdGlvblJlbEluZm8KIAlUYWJsZUluZm8gICpwdWJ0YWJsZTsKIAljaGFyCSAgICpwdWJyZWxx dWFsOwogCWNoYXIJICAgKnB1YnJhdHRyczsKKwlib29sCQlwdWJleGNlcHQ7CiB9IFB1YmxpY2F0 aW9uUmVsSW5mbzsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggNTBiMWQ0MzUzNTkuLjZjZWIxMDhhMzViIDEw MDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVz Y3JpYmUuYwpAQCAtMTU2MCw2ICsxNTYwLDkxIEBAIGRlc2NyaWJlVGFibGVEZXRhaWxzKGNvbnN0 IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSwgYm9vbCBzaG93U3lzdGVtKQogCXJldHVybiB0 cnVlOwogfQogCisvKgorICogQWRkIGEgZm9vdGVyIHRvIGEgcHVibGljYXRpb24gZGVzY3JpcHRp b24gb3IgYSB0YWJsZSBkZXNjcmlwdGlvbi4KKyAqCisgKiAnaXNfcHViX2Rlc2MnIC0gdHJ1ZSBm b3IgYSBwdWIgZGVzYzsgZmFsc2UgZm9yIGEgdGFibGUgZGVzYworICogJ3B1Yl9zY2hlbWFzJyAt IHRydWUgaWYgdGhlIHB1Yl9kZXNjIG9ubHkgc2hvd3Mgc2NoZW1hcywgb3RoZXJ3aXNlIGZhbHNl CisgKi8KK3N0YXRpYyBib29sCithZGRGb290ZXJUb1B1YmxpY2F0aW9uT3JUYWJsZURlc2MoUFFF eHBCdWZmZXIgYnVmLAorCQkJCQkJCQkgIHByaW50VGFibGVDb250ZW50ICpjb25zdCBjb250LAor CQkJCQkJCQkgIGNvbnN0IGNoYXIgKmZvb3Rlcm1zZywKKwkJCQkJCQkJICBib29sIGlzX3B1Yl9k ZXNjLCBib29sIHB1Yl9zY2hlbWFzKQoreworCVBHcmVzdWx0ICAgKnJlczsKKwlpbnQJCQljb3Vu dDsKKwlpbnQJCQljb2wgPSBpc19wdWJfZGVzYyA/IDEgOiAwOworCisJcmVzID0gUFNRTGV4ZWMo YnVmLT5kYXRhKTsKKwlpZiAoIXJlcykKKwkJcmV0dXJuIGZhbHNlOworCisJY291bnQgPSBQUW50 dXBsZXMocmVzKTsKKwlpZiAoY291bnQgPiAwKQorCQlwcmludFRhYmxlQWRkRm9vdGVyKGNvbnQs IGZvb3Rlcm1zZyk7CisKKwkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJICogRGVzY3JpcHRpb24gY29sdW1ucyBmb3I6CisJ ICoKKwkgKiBQVUIgICAgICBUQkwKKwkgKiBbMF0gICAgICAtICAgICAgOiBzY2hlbWEgbmFtZSAo bnNwbmFtZSkKKwkgKiBbY29sXSAgICAtICAgICAgOiB0YWJsZSBuYW1lIChyZWxuYW1lKQorCSAq IC0gICAgICAgIFtjb2xdICA6IHB1YmxpY2F0aW9uIG5hbWUgKHB1Ym5hbWUpCisJICogW2NvbCsx XSAgW2NvbCsxXTogcm93IGZpbHRlciBleHByZXNzaW9uIChwcnF1YWwpLCBtYXkgYmUgTlVMTAor CSAqIFtjb2wrMl0gIFtjb2wrMl06IGNvbHVtbiBsaXN0IChjb21tYS1zZXBhcmF0ZWQpLCBtYXkg YmUgTlVMTAorCSAqIFtjb2wrM10gIFtjb2wrM106IGV4Y2VwdCBmbGFnICgidCIgaWYgRVhDRVBU LCBlbHNlICJmIikKKwkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisJICovCisJZm9yIChpbnQgaSA9IDA7IGkgPCBjb3VudDsg aSsrKQorCXsKKwkJcHJpbnRmUFFFeHBCdWZmZXIoYnVmLCAiICAgICIpOyAvKiBpbmRlbnQgKi8K KworCQkvKgorCQkgKiBGb290ZXIgZW50cmllcyBmb3IgYSBwdWJsaWNhdGlvbiBkZXNjcmlwdGlv biBvciBhIHRhYmxlCisJCSAqIGRlc2NyaXB0aW9uCisJCSAqLworCQlpZiAoaXNfcHViX2Rlc2Mp CisJCXsKKwkJCWlmIChwdWJfc2NoZW1hcykKKwkJCXsKKwkJCQkvKiBTY2hlbWFzIG9mIHRoZSBw dWJsaWNhdGlvbi4uLiAqLworCQkJCWFwcGVuZFBRRXhwQnVmZmVyKGJ1ZiwgIlwiJXNcIiIsIFBR Z2V0dmFsdWUocmVzLCBpLCAwKSk7CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJLyogVGFibGVz IG9mIHRoZSBwdWJsaWNhdGlvbi4uLiAqLworCQkJCWFwcGVuZFBRRXhwQnVmZmVyKGJ1ZiwgIlwi JXMuJXNcIiIsIFBRZ2V0dmFsdWUocmVzLCBpLCAwKSwKKwkJCQkJCQkJICBQUWdldHZhbHVlKHJl cywgaSwgY29sKSk7CisJCQl9CisJCX0KKwkJZWxzZQorCQl7CisJCQkvKiBQdWJsaWNhdGlvbnMg b2YgdGhlIHRhYmxlLi4uICovCisJCQlhcHBlbmRQUUV4cEJ1ZmZlcihidWYsICJcIiVzXCIiLCBQ UWdldHZhbHVlKHJlcywgaSwgY29sKSk7CisJCX0KKworCQkvKiBDb21tb24gZm9vdGVyIG91dHB1 dCBmb3IgY29sdW1uIGxpc3QgYW5kL29yIHJvdyBmaWx0ZXIgKi8KKwkJaWYgKCFwdWJfc2NoZW1h cykKKwkJeworCQkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGksIGNvbCArIDIpKQorCQkJeworCQkJ CWlmIChzdHJjbXAoUFFnZXR2YWx1ZShyZXMsIGksIGNvbCArIDMpLCAidCIpID09IDApCisJCQkJ CWFwcGVuZFBRRXhwQnVmZmVyKGJ1ZiwgIiBFWENFUFQiKTsKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZl cihidWYsICIgKCVzKSIsIFBRZ2V0dmFsdWUocmVzLCBpLCBjb2wgKyAyKSk7CisJCQl9CisKKwkJ CWlmICghUFFnZXRpc251bGwocmVzLCBpLCBjb2wgKyAxKSkKKwkJCQlhcHBlbmRQUUV4cEJ1ZmZl cihidWYsICIgV0hFUkUgJXMiLCBQUWdldHZhbHVlKHJlcywgaSwgY29sICsgMSkpOworCQl9CisK KwkJcHJpbnRUYWJsZUFkZEZvb3Rlcihjb250LCBidWYtPmRhdGEpOworCX0KKworCVBRY2xlYXIo cmVzKTsKKwlyZXR1cm4gdHJ1ZTsKK30KKwogLyoKICAqIGRlc2NyaWJlT25lVGFibGVEZXRhaWxz IChmb3IgXGQpCiAgKgpAQCAtMzA1MywxNiArMzEzOCwyNyBAQCBkZXNjcmliZU9uZVRhYmxlRGV0 YWlscyhjb25zdCBjaGFyICpzY2hlbWFuYW1lLAogCQkvKiBwcmludCBhbnkgcHVibGljYXRpb25z ICovCiAJCWlmIChwc2V0LnN2ZXJzaW9uID49IDEwMDAwMCkKIAkJewotCQkJaWYgKHBzZXQuc3Zl cnNpb24gPj0gMTUwMDAwKQorCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQogCQkJewog CQkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsCisKKwkJCQkvKgorCQkJCSAqIEdldCBhbGwgcHVi bGljYXRpb25zIGZvciB0aGUgc2NoZW1hIHRoYXQgdGhpcyByZWxhdGlvbiBpcworCQkJCSAqIHBh cnQgb2YKKwkJCQkgKi8KIAkJCQkJCQkJICAiU0VMRUNUIHB1Ym5hbWVcbiIKIAkJCQkJCQkJICAi ICAgICAsIE5VTExcbiIKIAkJCQkJCQkJICAiICAgICAsIE5VTExcbiIKKwkJCQkJCQkJICAiCQks IE5VTExcbiIKIAkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX3B1YmxpY2F0aW9uIHBcbiIK IAkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fbmFtZXNwYWNl IHBuIE9OIHAub2lkID0gcG4ucG5wdWJpZFxuIgogCQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0 YWxvZy5wZ19jbGFzcyBwYyBPTiBwYy5yZWxuYW1lc3BhY2UgPSBwbi5wbm5zcGlkXG4iCiAJCQkJ CQkJCSAgIldIRVJFIHBjLm9pZCA9JyVzJyBhbmQgcGdfY2F0YWxvZy5wZ19yZWxhdGlvbl9pc19w dWJsaXNoYWJsZSgnJXMnKVxuIgorCisJCQkJLyoKKwkJCQkgKiBHZXQgYWxsIHB1YmxpY2F0aW9u cyBmb3IgdGhpcyByZWxhdGlvbiBjcmVhdGVkIHVzaW5nIEZPUgorCQkJCSAqIFRBQkxFCisJCQkJ ICovCiAJCQkJCQkJCSAgIlVOSU9OXG4iCiAJCQkJCQkJCSAgIlNFTEVDVCBwdWJuYW1lXG4iCiAJ CQkJCQkJCSAgIiAgICAgLCBwZ19nZXRfZXhwcihwci5wcnF1YWwsIGMub2lkKVxuIgpAQCAtMzA3 MiwzNSArMzE2OCw2NyBAQCBkZXNjcmliZU9uZVRhYmxlRGV0YWlscyhjb25zdCBjaGFyICpzY2hl bWFuYW1lLAogCQkJCQkJCQkgICIgICAgICAgICAgICAgICAgcGdfY2F0YWxvZy5wZ19hdHRyaWJ1 dGVcbiIKIAkJCQkJCQkJICAiICAgICAgICAgIFdIRVJFIGF0dHJlbGlkID0gcHIucHJyZWxpZCBB TkQgYXR0bnVtID0gcHJhdHRyc1tzXSlcbiIKIAkJCQkJCQkJICAiICAgICAgICBFTFNFIE5VTEwg RU5EKSAiCisJCQkJCQkJCSAgIgkJLCBwcmV4Y2VwdCAiCiAJCQkJCQkJCSAgIkZST00gcGdfY2F0 YWxvZy5wZ19wdWJsaWNhdGlvbiBwXG4iCiAJCQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBn X3B1YmxpY2F0aW9uX3JlbCBwciBPTiBwLm9pZCA9IHByLnBycHViaWRcbiIKIAkJCQkJCQkJICAi CQlKT0lOIHBnX2NhdGFsb2cucGdfY2xhc3MgYyBPTiBjLm9pZCA9IHByLnBycmVsaWRcbiIKLQkJ CQkJCQkJICAiV0hFUkUgcHIucHJyZWxpZCA9ICclcydcbiIsCi0JCQkJCQkJCSAgb2lkLCBvaWQs IG9pZCk7Ci0KLQkJCQlpZiAocHNldC5zdmVyc2lvbiA+PSAxOTAwMDApCi0JCQkJCWFwcGVuZFBR RXhwQnVmZmVyU3RyKCZidWYsICIgQU5EIE5PVCBwci5wcmV4Y2VwdFxuIik7CisJCQkJCQkJCSAg IldIRVJFIHByLnBycmVsaWQgPSAnJXMnICIKKwkJCQkJCQkJICAiQU5ECXAucHViYWxsdGFibGVz ID0gZmFsc2VcbiIKKwkJCQkJCQkJICAiQU5EICBjLnJlbG5hbWVzcGFjZSBOT1QgSU4gKFxuICIK KwkJCQkJCQkJICAiIAlTRUxFQ1QgcG5uc3BpZCBGUk9NXG4iCisJCQkJCQkJCSAgIiAJcGdfY2F0 YWxvZy5wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UpXG4iCiAKLQkJCQlhcHBlbmRQUUV4cEJ1ZmZl cigmYnVmLAorCQkJCS8qCisJCQkJICogR2V0IGFsbCBGT1IgQUxMIFRBQkxFUyBwdWJsaWNhdGlv bnMgdGhhdCBpbmNsdWRlIHRoaXMKKwkJCQkgKiByZWxhdGlvbgorCQkJCSAqLwogCQkJCQkJCQkg ICJVTklPTlxuIgogCQkJCQkJCQkgICJTRUxFQ1QgcHVibmFtZVxuIgogCQkJCQkJCQkgICIJCSwg TlVMTFxuIgogCQkJCQkJCQkgICIJCSwgTlVMTFxuIgorCQkJCQkJCQkgICIJCSwgTlVMTFxuIgog CQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgotCQkJCQkJCQkg ICJXSEVSRSBwLnB1YmFsbHRhYmxlcyBBTkQgcGdfY2F0YWxvZy5wZ19yZWxhdGlvbl9pc19wdWJs aXNoYWJsZSgnJXMnKVxuIiwKLQkJCQkJCQkJICBvaWQpOwotCi0JCQkJaWYgKHBzZXQuc3ZlcnNp b24gPj0gMTkwMDAwKQotCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAotCQkJCQkJCQkJICAi ICAgICBBTkQgTk9UIEVYSVNUUyAoXG4iCi0JCQkJCQkJCQkgICIJCVNFTEVDVCAxXG4iCi0JCQkJ CQkJCQkgICIJCUZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHJcbiIKLQkJCQkJ CQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNzIHBjXG4iCi0JCQkJCQkJCQkgICIJCU9O IHByLnBycmVsaWQgPSBwYy5vaWRcbiIKLQkJCQkJCQkJCSAgIgkJV0hFUkUgcHIucHJyZWxpZCA9 ICclcycgQU5EIHByLnBycHViaWQgPSBwLm9pZClcbiIsCi0JCQkJCQkJCQkgIG9pZCk7Ci0KLQkJ CQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiT1JERVIgQlkgMTsiKTsKKwkJCQkJCQkJICAi V0hFUkUgcC5wdWJhbGx0YWJsZXMgQU5EIHBnX2NhdGFsb2cucGdfcmVsYXRpb25faXNfcHVibGlz aGFibGUoJyVzJylcbiIKKwkJCQkJCQkJICAiICAgICBBTkQgTk9UIEVYSVNUUyAoXG4iCisJCQkJ CQkJCSAgIgkJU0VMRUNUIDFcbiIKKwkJCQkJCQkJICAiCQlGUk9NIHBnX2NhdGFsb2cucGdfcHVi bGljYXRpb25fcmVsIHByXG4iCisJCQkJCQkJCSAgIgkJSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNz IHBjXG4iCisJCQkJCQkJCSAgIgkJT04gcHIucHJyZWxpZCA9IHBjLm9pZFxuIgorCQkJCQkJCQkg ICIJCVdIRVJFIHByLnBycmVsaWQgPSAnJXMnIEFORCBwci5wcnB1YmlkID0gcC5vaWQpXG4iCisJ CQkJCQkJCSAgIk9SREVSIEJZIDE7IiwKKwkJCQkJCQkJICBvaWQsIG9pZCwgb2lkLCBvaWQsIG9p ZCk7CisJCQl9CisJCQllbHNlIGlmIChwc2V0LnN2ZXJzaW9uID49IDE1MDAwMCkKKwkJCXsKKwkJ CQlwcmludGZQUUV4cEJ1ZmZlcigmYnVmLAorCQkJCQkJCQkgICJTRUxFQ1QgcHVibmFtZVxuIgor CQkJCQkJCQkgICIgICAgICwgTlVMTFxuIgorCQkJCQkJCQkgICIgICAgICwgTlVMTFxuIgorCQkJ CQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgorCQkJCQkJCQkgICIg ICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9uYW1lc3BhY2UgcG4gT04gcC5vaWQg PSBwbi5wbnB1YmlkXG4iCisJCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRhbG9nLnBnX2NsYXNz IHBjIE9OIHBjLnJlbG5hbWVzcGFjZSA9IHBuLnBubnNwaWRcbiIKKwkJCQkJCQkJICAiV0hFUkUg cGMub2lkID0nJXMnIGFuZCBwZ19jYXRhbG9nLnBnX3JlbGF0aW9uX2lzX3B1Ymxpc2hhYmxlKCcl cycpXG4iCisJCQkJCQkJCSAgIlVOSU9OXG4iCisJCQkJCQkJCSAgIlNFTEVDVCBwdWJuYW1lXG4i CisJCQkJCQkJCSAgIiAgICAgLCBwZ19nZXRfZXhwcihwci5wcnF1YWwsIGMub2lkKVxuIgorCQkJ CQkJCQkgICIgICAgICwgKENBU0UgV0hFTiBwci5wcmF0dHJzIElTIE5PVCBOVUxMIFRIRU5cbiIK KwkJCQkJCQkJICAiICAgICAgICAgKFNFTEVDVCBzdHJpbmdfYWdnKGF0dG5hbWUsICcsICcpXG4i CisJCQkJCQkJCSAgIiAgICAgICAgICAgRlJPTSBwZ19jYXRhbG9nLmdlbmVyYXRlX3Nlcmllcygw LCBwZ19jYXRhbG9nLmFycmF5X3VwcGVyKHByLnByYXR0cnM6OnBnX2NhdGFsb2cuaW50MltdLCAx KSkgcyxcbiIKKwkJCQkJCQkJICAiICAgICAgICAgICAgICAgIHBnX2NhdGFsb2cucGdfYXR0cmli dXRlXG4iCisJCQkJCQkJCSAgIiAgICAgICAgICBXSEVSRSBhdHRyZWxpZCA9IHByLnBycmVsaWQg QU5EIGF0dG51bSA9IHByYXR0cnNbc10pXG4iCisJCQkJCQkJCSAgIiAgICAgICAgRUxTRSBOVUxM IEVORCkgIgorCQkJCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb24gcFxuIgor CQkJCQkJCQkgICIgICAgIEpPSU4gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbl9yZWwgcHIgT04g cC5vaWQgPSBwci5wcnB1YmlkXG4iCisJCQkJCQkJCSAgIiAgICAgSk9JTiBwZ19jYXRhbG9nLnBn X2NsYXNzIGMgT04gYy5vaWQgPSBwci5wcnJlbGlkXG4iCisJCQkJCQkJCSAgIldIRVJFIHByLnBy cmVsaWQgPSAnJXMnXG4iCisJCQkJCQkJCSAgIlVOSU9OXG4iCisJCQkJCQkJCSAgIlNFTEVDVCBw dWJuYW1lXG4iCisJCQkJCQkJCSAgIiAgICAgLCBOVUxMXG4iCisJCQkJCQkJCSAgIiAgICAgLCBO VUxMXG4iCisJCQkJCQkJCSAgIkZST00gcGdfY2F0YWxvZy5wZ19wdWJsaWNhdGlvbiBwXG4iCisJ CQkJCQkJCSAgIldIRVJFIHAucHViYWxsdGFibGVzIEFORCBwZ19jYXRhbG9nLnBnX3JlbGF0aW9u X2lzX3B1Ymxpc2hhYmxlKCclcycpXG4iCisJCQkJCQkJCSAgIk9SREVSIEJZIDE7IiwKKwkJCQkJ CQkJICBvaWQsIG9pZCwgb2lkLCBvaWQpOwogCQkJfQogCQkJZWxzZQogCQkJewpAQCAtMzEyMSwz NCArMzI0OSw4IEBAIGRlc2NyaWJlT25lVGFibGVEZXRhaWxzKGNvbnN0IGNoYXIgKnNjaGVtYW5h bWUsCiAJCQkJCQkJCSAgb2lkLCBvaWQpOwogCQkJfQogCi0JCQlyZXN1bHQgPSBQU1FMZXhlYyhi dWYuZGF0YSk7Ci0JCQlpZiAoIXJlc3VsdCkKKwkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlv bk9yVGFibGVEZXNjKCZidWYsICZjb250LCBfKCJQdWJsaWNhdGlvbnM6IiksIGZhbHNlLCBmYWxz ZSkpCiAJCQkJZ290byBlcnJvcl9yZXR1cm47Ci0JCQllbHNlCi0JCQkJdHVwbGVzID0gUFFudHVw bGVzKHJlc3VsdCk7Ci0KLQkJCWlmICh0dXBsZXMgPiAwKQotCQkJCXByaW50VGFibGVBZGRGb290 ZXIoJmNvbnQsIF8oIlB1YmxpY2F0aW9uczoiKSk7Ci0KLQkJCS8qIE1pZ2h0IGJlIGFuIGVtcHR5 IHNldCAtIHRoYXQncyBvayAqLwotCQkJZm9yIChpID0gMDsgaSA8IHR1cGxlczsgaSsrKQotCQkJ ewotCQkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsICIgICAgXCIlc1wiIiwKLQkJCQkJCQkJICBQ UWdldHZhbHVlKHJlc3VsdCwgaSwgMCkpOwotCi0JCQkJLyogY29sdW1uIGxpc3QgKGlmIGFueSkg Ki8KLQkJCQlpZiAoIVBRZ2V0aXNudWxsKHJlc3VsdCwgaSwgMikpCi0JCQkJCWFwcGVuZFBRRXhw QnVmZmVyKCZidWYsICIgKCVzKSIsCi0JCQkJCQkJCQkgIFBRZ2V0dmFsdWUocmVzdWx0LCBpLCAy KSk7Ci0KLQkJCQkvKiByb3cgZmlsdGVyIChpZiBhbnkpICovCi0JCQkJaWYgKCFQUWdldGlzbnVs bChyZXN1bHQsIGksIDEpKQotCQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiIFdIRVJFICVz IiwKLQkJCQkJCQkJCSAgUFFnZXR2YWx1ZShyZXN1bHQsIGksIDEpKTsKLQotCQkJCXByaW50VGFi bGVBZGRGb290ZXIoJmNvbnQsIGJ1Zi5kYXRhKTsKLQkJCX0KLQkJCVBRY2xlYXIocmVzdWx0KTsK IAkJfQogCiAJCS8qCkBAIC02NTMyLDQ5ICs2NjM0LDYgQEAgbGlzdFB1YmxpY2F0aW9ucyhjb25z dCBjaGFyICpwYXR0ZXJuKQogCXJldHVybiB0cnVlOwogfQogCi0vKgotICogQWRkIGZvb3RlciB0 byBwdWJsaWNhdGlvbiBkZXNjcmlwdGlvbi4KLSAqLwotc3RhdGljIGJvb2wKLWFkZEZvb3RlclRv UHVibGljYXRpb25EZXNjKFBRRXhwQnVmZmVyIGJ1ZiwgY29uc3QgY2hhciAqZm9vdGVybXNnLAot CQkJCQkJICAgYm9vbCBhc19zY2hlbWEsIHByaW50VGFibGVDb250ZW50ICpjb25zdCBjb250KQot ewotCVBHcmVzdWx0ICAgKnJlczsKLQlpbnQJCQljb3VudCA9IDA7Ci0JaW50CQkJaSA9IDA7Ci0K LQlyZXMgPSBQU1FMZXhlYyhidWYtPmRhdGEpOwotCWlmICghcmVzKQotCQlyZXR1cm4gZmFsc2U7 Ci0JZWxzZQotCQljb3VudCA9IFBRbnR1cGxlcyhyZXMpOwotCi0JaWYgKGNvdW50ID4gMCkKLQkJ cHJpbnRUYWJsZUFkZEZvb3Rlcihjb250LCBmb290ZXJtc2cpOwotCi0JZm9yIChpID0gMDsgaSA8 IGNvdW50OyBpKyspCi0JewotCQlpZiAoYXNfc2NoZW1hKQotCQkJcHJpbnRmUFFFeHBCdWZmZXIo YnVmLCAiICAgIFwiJXNcIiIsIFBRZ2V0dmFsdWUocmVzLCBpLCAwKSk7Ci0JCWVsc2UKLQkJewot CQkJcHJpbnRmUFFFeHBCdWZmZXIoYnVmLCAiICAgIFwiJXMuJXNcIiIsIFBRZ2V0dmFsdWUocmVz LCBpLCAwKSwKLQkJCQkJCQkgIFBRZ2V0dmFsdWUocmVzLCBpLCAxKSk7Ci0KLQkJCWlmICghUFFn ZXRpc251bGwocmVzLCBpLCAzKSkKLQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihidWYsICIgKCVzKSIs IFBRZ2V0dmFsdWUocmVzLCBpLCAzKSk7Ci0KLQkJCWlmICghUFFnZXRpc251bGwocmVzLCBpLCAy KSkKLQkJCQlhcHBlbmRQUUV4cEJ1ZmZlcihidWYsICIgV0hFUkUgJXMiLCBQUWdldHZhbHVlKHJl cywgaSwgMikpOwotCQl9Ci0KLQkJcHJpbnRUYWJsZUFkZEZvb3Rlcihjb250LCBidWYtPmRhdGEp OwotCX0KLQotCVBRY2xlYXIocmVzKTsKLQlyZXR1cm4gdHJ1ZTsKLX0KLQogLyoKICAqIFxkUnAr CiAgKiBEZXNjcmliZXMgcHVibGljYXRpb25zIGluY2x1ZGluZyB0aGUgY29udGVudHMuCkBAIC02 NzY0LDYgKzY4MjMsMTIgQEAgZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVy bikKIAkJCWVsc2UKIAkJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLAogCQkJCQkJCQkJICIs IE5VTEwsIE5VTEwiKTsKKworCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQorCQkJCWFw cGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICIsIHByZXhjZXB0Iik7CisJCQllbHNlCisJCQkJYXBw ZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIiwgTlVMTCIpOworCiAJCQlhcHBlbmRQUUV4cEJ1ZmZl cigmYnVmLAogCQkJCQkJCSAgIlxuRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGMsXG4iCiAJCQkJ CQkJICAiICAgICBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBuLFxuIgpAQCAtNjc3MiwxMSArNjgz Nyw4IEBAIGRlc2NyaWJlUHVibGljYXRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJCQkJCQkJ ICAiICBBTkQgYy5vaWQgPSBwci5wcnJlbGlkXG4iCiAJCQkJCQkJICAiICBBTkQgcHIucHJwdWJp ZCA9ICclcydcbiIsIHB1YmlkKTsKIAotCQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTkwMDAwKQot CQkJCWFwcGVuZFBRRXhwQnVmZmVyKCZidWYsICIgIEFORCBOT1QgcHIucHJleGNlcHRcbiIpOwot CiAJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLCAiT1JERVIgQlkgMSwyIik7Ci0JCQlpZiAoIWFk ZEZvb3RlclRvUHVibGljYXRpb25EZXNjKCZidWYsIF8oIlRhYmxlczoiKSwgZmFsc2UsICZjb250 KSkKKwkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbk9yVGFibGVEZXNjKCZidWYsICZjb250 LCBfKCJUYWJsZXM6IiksIHRydWUsIGZhbHNlKSkKIAkJCQlnb3RvIGVycm9yX3JldHVybjsKIAog CQkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTUwMDAwKQpAQCAtNjc4OCw4ICs2ODUwLDggQEAgZGVz Y3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJCQkJCQkJICAiICAgICBK T0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fbmFtZXNwYWNlIHBuIE9OIG4ub2lkID0gcG4u cG5uc3BpZFxuIgogCQkJCQkJCQkgICJXSEVSRSBwbi5wbnB1YmlkID0gJyVzJ1xuIgogCQkJCQkJ CQkgICJPUkRFUiBCWSAxIiwgcHViaWQpOwotCQkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlv bkRlc2MoJmJ1ZiwgXygiVGFibGVzIGZyb20gc2NoZW1hczoiKSwKLQkJCQkJCQkJCQkJCXRydWUs ICZjb250KSkKKwkJCQlpZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25PclRhYmxlRGVzYygmYnVm LCAmY29udCwKKwkJCQkJCQkJCQkJCQkgICBfKCJUYWJsZXMgZnJvbSBzY2hlbWFzOiIpLCB0cnVl LCB0cnVlKSkKIAkJCQkJZ290byBlcnJvcl9yZXR1cm47CiAJCQl9CiAJCX0KQEAgLTY3OTksMTQg KzY4NjEsMTQgQEAgZGVzY3JpYmVQdWJsaWNhdGlvbnMoY29uc3QgY2hhciAqcGF0dGVybikKIAkJ CXsKIAkJCQkvKiBHZXQgdGhlIGV4Y2x1ZGVkIHRhYmxlcyBmb3IgdGhlIHNwZWNpZmllZCBwdWJs aWNhdGlvbiAqLwogCQkJCXByaW50ZlBRRXhwQnVmZmVyKCZidWYsCi0JCQkJCQkJCSAgIlNFTEVD VCBjb25jYXQoYy5yZWxuYW1lc3BhY2U6OnJlZ25hbWVzcGFjZSwgJy4nLCBjLnJlbG5hbWUpXG4i CisJCQkJCQkJCSAgIlNFTEVDVCBjLnJlbG5hbWVzcGFjZTo6cmVnbmFtZXNwYWNlLCBjLnJlbG5h bWUsIE5VTEwsIE5VTExcbiIKIAkJCQkJCQkJICAiRlJPTSBwZ19jYXRhbG9nLnBnX2NsYXNzIGNc biIKIAkJCQkJCQkJICAiICAgICBKT0lOIHBnX2NhdGFsb2cucGdfcHVibGljYXRpb25fcmVsIHBy IE9OIGMub2lkID0gcHIucHJyZWxpZFxuIgogCQkJCQkJCQkgICJXSEVSRSBwci5wcnB1YmlkID0g JyVzJ1xuIgogCQkJCQkJCQkgICIgIEFORCBwci5wcmV4Y2VwdFxuIgogCQkJCQkJCQkgICJPUkRF UiBCWSAxIiwgcHViaWQpOwotCQkJCWlmICghYWRkRm9vdGVyVG9QdWJsaWNhdGlvbkRlc2MoJmJ1 ZiwgXygiRXhjZXB0IHRhYmxlczoiKSwKLQkJCQkJCQkJCQkJCXRydWUsICZjb250KSkKKwkJCQlp ZiAoIWFkZEZvb3RlclRvUHVibGljYXRpb25PclRhYmxlRGVzYygmYnVmLCAmY29udCwKKwkJCQkJ CQkJCQkJCQkgICBfKCJFeGNlcHQgdGFibGVzOiIpLCB0cnVlLCBmYWxzZSkpCiAJCQkJCWdvdG8g ZXJyb3JfcmV0dXJuOwogCQkJfQogCQl9CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggNjMwMzZl Yzc2NTYuLjlkOTIyMWQwNDE5IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRl LmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0yMjk1LDYgKzIy OTUsMTAgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRF X1dJVEgoIkFMTCBUQUJMRVMiLCAiVEFCTEVTIElOIFNDSEVNQSIsICJUQUJMRSIpOwogCWVsc2Ug aWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJBREQiLCAiQUxM IiwgIlRBQkxFUyIpKQogCQlDT01QTEVURV9XSVRIKCJFWENFUFQgVEFCTEUiKTsKKwllbHNlIGlm IChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJU QUJMRSIsIE1hdGNoQW55KSAmJiAhZW5kc193aXRoKHByZXZfd2QsICcsJykpCisJCUNPTVBMRVRF X1dJVEgoIkVYQ0VQVCAoIik7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiUFVCTElDQVRJ T04iLCBNYXRjaEFueSwgTWF0Y2hBbnlOLCAiRVhDRVBUIikpCisJCUNPTVBMRVRFX1dJVEgoIigi KTsKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAi QUREfFNFVCIsICJUQUJMRSIpKQogCQlDT01QTEVURV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9m b3JfbGlzdF9vZl90YWJsZXMpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkFMVEVSIiwgIlBVQkxJQ0FU SU9OIiwgTWF0Y2hBbnksICJBREQiLCAiQUxMIiwgIlRBQkxFUyIsICJFWENFUFQiLCAiVEFCTEUi KSkKQEAgLTIzMTYsMTAgKzIzMjAsMTMgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRl cm5faWQsCiAJCUNPTVBMRVRFX1dJVEgoIigiKTsKIAllbHNlIGlmIChNYXRjaGVzKCJBTFRFUiIs ICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCBNYXRjaEFueU4sICJXSEVSRSIsICIoIikpCiAJCUNP TVBMRVRFX1dJVEhfQVRUUihwcmV2M193ZCk7CisJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAi UFVCTElDQVRJT04iLCBNYXRjaEFueSwgTWF0Y2hBbnlOLCAiRVhDRVBUIiwgIigiKSkKKwkJQ09N UExFVEVfV0lUSF9BVFRSKHByZXYzX3dkKTsKIAllbHNlIGlmIChIZWFkTWF0Y2hlcygiQUxURVIi LCAiUFVCTElDQVRJT04iLCBNYXRjaEFueSwgIkFERHxTRVQiLCAiVEFCTEUiKSAmJgotCQkJICFU YWlsTWF0Y2hlcygiV0hFUkUiLCAiKCopIikpCisJCQkgIVRhaWxNYXRjaGVzKCJXSEVSRSIsICIo KikiKSAmJiAhVGFpbE1hdGNoZXMoIkVYQ0VQVCIsICIoIikpCiAJCUNPTVBMRVRFX1dJVEgoIiwi LCAiV0hFUkUgKCIpOwotCWVsc2UgaWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJQVUJMSUNBVElP TiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIpKQorCWVsc2UgaWYgKEhlYWRNYXRjaGVz KCJBTFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiQUREfFNFVCIsICJUQUJMRSIpICYm CisJCQkgIWVuZHNfd2l0aChwcmV2X3dkLCAnKCcpKQogCQlDT01QTEVURV9XSVRIKCIsIik7CiAJ LyogQUxURVIgUFVCTElDQVRJT04gPG5hbWU+IERST1AgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJB TFRFUiIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRFJPUCIpKQpAQCAtMzYzNyw3ICszNjQ0 LDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBpZiAoTWF0 Y2hlcygiQ1JFQVRFIiwgIlBVQkxJQ0FUSU9OIiwgTWF0Y2hBbnksICJGT1IiLCAiVEFCTEVTIikp CiAJCUNPTVBMRVRFX1dJVEgoIklOIFNDSEVNQSIpOwogCWVsc2UgaWYgKE1hdGNoZXMoIkNSRUFU RSIsICJQVUJMSUNBVElPTiIsIE1hdGNoQW55LCAiRk9SIiwgIlRBQkxFIiwgTWF0Y2hBbnkpICYm ICFlbmRzX3dpdGgocHJldl93ZCwgJywnKSkKLQkJQ09NUExFVEVfV0lUSCgiV0hFUkUgKCIsICJX SVRIICgiKTsKKwkJQ09NUExFVEVfV0lUSCgiRVhDRVBUICgiLCAiV0hFUkUgKCIsICJXSVRIICgi KTsKIAkvKiBDb21wbGV0ZSAiQ1JFQVRFIFBVQkxJQ0FUSU9OIDxuYW1lPiBGT1IgVEFCTEUiIHdp dGggIjx0YWJsZT4sIC4uLiIgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiUFVCTElD QVRJT04iLCBNYXRjaEFueSwgIkZPUiIsICJUQUJMRSIpKQogCQlDT01QTEVURV9XSVRIX1NDSEVN QV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl90YWJsZXMpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJs aWNhdGlvbi5oCmluZGV4IGM3YTYxZjMxOTRjLi40ODFiYjZlNWNhOSAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wdWJsaWNhdGlvbi5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHVibGljYXRpb24uaApAQCAtMTk2LDcgKzE5Niw4IEBAIGV4dGVybiBPaWQJR2V0VG9w TW9zdEFuY2VzdG9ySW5QdWJsaWNhdGlvbihPaWQgcHVib2lkLCBMaXN0ICphbmNlc3RvcnMsCiBl eHRlcm4gYm9vbCBpc19wdWJsaXNoYWJsZV9yZWxhdGlvbihSZWxhdGlvbiByZWwpOwogZXh0ZXJu IGJvb2wgaXNfc2NoZW1hX3B1YmxpY2F0aW9uKE9pZCBwdWJpZCk7CiBleHRlcm4gYm9vbCBjaGVj a19hbmRfZmV0Y2hfY29sdW1uX2xpc3QoUHVibGljYXRpb24gKnB1YiwgT2lkIHJlbGlkLAotCQkJ CQkJCQkJCU1lbW9yeUNvbnRleHQgbWN4dCwgQml0bWFwc2V0ICoqY29scyk7CisJCQkJCQkJCQkJ TWVtb3J5Q29udGV4dCBtY3h0LCBCaXRtYXBzZXQgKipjb2xzLAorCQkJCQkJCQkJCWJvb2wgKmV4 Y2VwdF9jb2x1bW5zKTsKIGV4dGVybiBPYmplY3RBZGRyZXNzIHB1YmxpY2F0aW9uX2FkZF9yZWxh dGlvbihPaWQgcHViaWQsIFB1YmxpY2F0aW9uUmVsSW5mbyAqcHJpLAogCQkJCQkJCQkJCQkgIGJv b2wgaWZfbm90X2V4aXN0cyk7CiBleHRlcm4gQml0bWFwc2V0ICpwdWJfY29sbGlzdF92YWxpZGF0 ZShSZWxhdGlvbiB0YXJnZXRyZWwsIExpc3QgKmNvbHVtbnMpOwpAQCAtMjA2LDYgKzIwNyw3IEBA IGV4dGVybiBPYmplY3RBZGRyZXNzIHB1YmxpY2F0aW9uX2FkZF9zY2hlbWEoT2lkIHB1YmlkLCBP aWQgc2NoZW1haWQsCiBleHRlcm4gQml0bWFwc2V0ICpwdWJfY29sbGlzdF90b19iaXRtYXBzZXQo Qml0bWFwc2V0ICpjb2x1bW5zLCBEYXR1bSBwdWJjb2xzLAogCQkJCQkJCQkJCSAgIE1lbW9yeUNv bnRleHQgbWN4dCk7CiBleHRlcm4gQml0bWFwc2V0ICpwdWJfZm9ybV9jb2xzX21hcChSZWxhdGlv biByZWxhdGlvbiwKLQkJCQkJCQkJCVB1Ymxpc2hHZW5jb2xzVHlwZSBpbmNsdWRlX2dlbmNvbHNf dHlwZSk7CisJCQkJCQkJCQlQdWJsaXNoR2VuY29sc1R5cGUgaW5jbHVkZV9nZW5jb2xzX3R5cGUs CisJCQkJCQkJCQlCaXRtYXBzZXQgKmV4Y2VwdF9jb2xzKTsKIAogI2VuZGlmCQkJCQkJCS8qIFBH X1BVQkxJQ0FUSU9OX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHVi bGljYXRpb25fcmVsLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3B1YmxpY2F0aW9uX3JlbC5o CmluZGV4IGU3ZDdmM2JhODVjLi42YTIxNjhmYzMyYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wdWJsaWNhdGlvbl9yZWwuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3B1YmxpY2F0aW9uX3JlbC5oCkBAIC0zMSwxMSArMzEsMTIgQEAgQ0FUQUxPRyhwZ19wdWJsaWNh dGlvbl9yZWwsNjEwNixQdWJsaWNhdGlvblJlbFJlbGF0aW9uSWQpCiAJT2lkCQkJb2lkOwkJCS8q IG9pZCAqLwogCU9pZAkJCXBycHViaWQgQktJX0xPT0tVUChwZ19wdWJsaWNhdGlvbik7IC8qIE9p ZCBvZiB0aGUgcHVibGljYXRpb24gKi8KIAlPaWQJCQlwcnJlbGlkIEJLSV9MT09LVVAocGdfY2xh c3MpOwkvKiBPaWQgb2YgdGhlIHJlbGF0aW9uICovCi0JYm9vbAkJcHJleGNlcHQgQktJX0RFRkFV TFQoZik7CS8qIGV4Y2x1ZGUgdGhlIHJlbGF0aW9uICovCisJYm9vbAkJcHJleGNlcHQgQktJX0RF RkFVTFQoZik7CS8qIGV4Y2x1ZGUgdGhlIHJlbGF0aW9uIG9yIGNvbHVtbnMgKi8KIAogI2lmZGVm CUNBVEFMT0dfVkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJlICov CiAJcGdfbm9kZV90cmVlIHBycXVhbDsJCS8qIHF1YWxpZmljYXRpb25zICovCi0JaW50MnZlY3Rv cglwcmF0dHJzOwkJLyogY29sdW1ucyB0byByZXBsaWNhdGUgKi8KKwlpbnQydmVjdG9yCXByYXR0 cnM7CQkvKiBjb2x1bW5zIHRvIHJlcGxpY2F0ZSBvciBleGNsdWRlIHRvCisJCQkJCQkJCSAqIHJl cGxpY2F0ZSAqLwogI2VuZGlmCiB9IEZvcm1EYXRhX3BnX3B1YmxpY2F0aW9uX3JlbDsKIApkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wdWJsaWNhdGlvbi5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3B1YmxpY2F0aW9uLm91dAppbmRleCAwNmI1NGQ4YzgzNC4u OGY2Y2U2NzE1OGQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGlj YXRpb24ub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHVibGljYXRpb24ub3V0 CkBAIC0yMTgzLDYgKzIxODMsOTQgQEAgRXhjZXB0IHRhYmxlczoKIERST1AgUFVCTElDQVRJT04g dGVzdHB1Yl9yZXNldDsKIERST1AgVEFCTEUgcHViX3NjaDEudGJsMTsKIERST1AgVEFCTEUgcHVi X3NjaDEudGJsMjsKKy0tID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorLS0gVGVzdCBFWENFUFQgY29sdW1ucyBmb3IgQ1JFQVRFIFBVQkxJQ0FU SU9OCitTRVQgY2xpZW50X21pbl9tZXNzYWdlcyA9ICdFUlJPUic7CitDUkVBVEUgVEFCTEUgcHVi X3Rlc3RfZXhjZXB0MSAoYSBpbnQgTk9UIE5VTEwsIGIgaW50LCBjIGludCBOT1QgTlVMTCwgZCBp bnQpOworQ1JFQVRFIFRBQkxFIHB1Yl9zY2gxLnB1Yl90ZXN0X2V4Y2VwdDIgKGEgaW50LCBiIGlu dCwgYyBpbnQsIGQgaW50KTsKKy0tIFZlcmlmeSB0aGF0IHB1YmxpY2F0aW9uIGlzIGNyZWF0ZWQg d2l0aCBFWENFUFQKK0NSRUFURSBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBGT1IgVEFCTEUg cHViX3Rlc3RfZXhjZXB0MSwgcHViX3NjaDEucHViX3Rlc3RfZXhjZXB0MiBFWENFUFQgKGIsIGMp OworU0VMRUNUICogRlJPTSBwZ19wdWJsaWNhdGlvbl90YWJsZXMgV0hFUkUgcHVibmFtZSA9ICd0 ZXN0cHViX2V4Y2VwdCc7CisgICAgcHVibmFtZSAgICAgfCBzY2hlbWFuYW1lIHwgICAgdGFibGVu YW1lICAgICB8IGF0dG5hbWVzICB8IHJvd2ZpbHRlciAKKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLQorIHRlc3Rw dWJfZXhjZXB0IHwgcHVibGljICAgICB8IHB1Yl90ZXN0X2V4Y2VwdDEgfCB7YSxiLGMsZH0gfCAK KyB0ZXN0cHViX2V4Y2VwdCB8IHB1Yl9zY2gxICAgfCBwdWJfdGVzdF9leGNlcHQyIHwge2EsZH0g ICAgIHwgCisoMiByb3dzKQorCistLSBDYW5ub3QgdXNlIEVYQ0VQVCBjb2wtbGlzdHMgY29tYmlu ZWQgd2l0aCBUQUJMRVMgSU4gU0NIRU1BCitDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNl cHQyIEZPUiBUQUJMRVMgSU4gU0NIRU1BIHB1Yl9zY2gxLCBUQUJMRSBwdWJfdGVzdF9leGNlcHQx IEVYQ0VQVCAoYiwgYyk7CitFUlJPUjogIGNhbm5vdCB1c2UgY29sdW1uIGxpc3QgZm9yIHJlbGF0 aW9uICJwdWJsaWMucHViX3Rlc3RfZXhjZXB0MSIgaW4gcHVibGljYXRpb24gInRlc3RwdWJfZXhj ZXB0MiIKK0RFVEFJTDogIENvbHVtbiBsaXN0cyBjYW5ub3QgYmUgc3BlY2lmaWVkIGluIHB1Ymxp Y2F0aW9ucyBjb250YWluaW5nIEZPUiBUQUJMRVMgSU4gU0NIRU1BIGVsZW1lbnRzLgorLS0gU3lu dGF4IGVycm9yIEVYQ0VQVCB3aXRob3V0IGEgY29sLWxpc3QKK0NSRUFURSBQVUJMSUNBVElPTiB0 ZXN0cHViX2V4Y2VwdDIgRk9SIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUOworRVJST1I6 ICB0YWJsZSB3aXRob3V0IGNvbHVtbiBsaXN0IGNhbm5vdCB1c2UgRVhDRVBUIGNsYXVzZQorTElO RSAxOiBDUkVBVEUgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQyIEZPUiBUQUJMRSBwdWJfdGVz dF9leGNlcHQuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgorLS0gVmVyaWZ5IG9rIC0gQUxURVIgUFVCTElDQVRJT04gLi4uIFNFVCAuLi4gRVhDRVBU IChjb2wtbGlzdCkKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IFNFVCBUQUJMRSBw dWJfdGVzdF9leGNlcHQxIEVYQ0VQVCAoYSwgYiksIHB1Yl9zY2gxLnB1Yl90ZXN0X2V4Y2VwdDI7 CitcZFJwKyB0ZXN0cHViX2V4Y2VwdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgUHVibGljYXRpb24gdGVzdHB1Yl9leGNlcHQKKyAgICAgICAgICBP d25lciAgICAgICAgICAgfCBBbGwgdGFibGVzIHwgQWxsIHNlcXVlbmNlcyB8IEluc2VydHMgfCBV cGRhdGVzIHwgRGVsZXRlcyB8IFRydW5jYXRlcyB8IEdlbmVyYXRlZCBjb2x1bW5zIHwgVmlhIHJv b3QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfcHVibGljYXRpb25fdXNlciB8IGYgICAgICAg ICAgfCBmICAgICAgICAgICAgIHwgdCAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICAgIHwgbm9uZSAgICAgICAgICAgICAgfCBmCitUYWJsZXM6CisgICAgInB1Yl9zY2gxLnB1Yl90 ZXN0X2V4Y2VwdDIiCisgICAgInB1YmxpYy5wdWJfdGVzdF9leGNlcHQxIiBFWENFUFQgKGEsIGIp CisKKy0tIFZlcmlmeSBmYWlscyAtIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBEUk9QIC4uLiBFWENF UFQgKGNvbC1saXN0KQorQUxURVIgUFVCTElDQVRJT04gdGVzdHB1Yl9leGNlcHQgRFJPUCBUQUJM RSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQVCAoYSwgYik7CitFUlJPUjogIGNvbHVtbiBsaXN0IG11 c3Qgbm90IGJlIHNwZWNpZmllZCBpbiBBTFRFUiBQVUJMSUNBVElPTiAuLi4gRFJPUAorLS0gVmVy aWZ5IG9rIC0gQUxURVIgUFVCTElDQVRJT04gLi4uIERST1AKK0FMVEVSIFBVQkxJQ0FUSU9OIHRl c3RwdWJfZXhjZXB0IERST1AgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MTsKKy0tIFZlcmlmeSBvayAt IEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBBREQgLi4uIEVYQ0VQVCAoY29sLWxpc3QpCitBTFRFUiBQ VUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBBREQgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBFWENF UFQgKGMsIGQpOworXGRScCsgdGVzdHB1Yl9leGNlcHQKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFB1YmxpY2F0aW9uIHRlc3RwdWJfZXhjZXB0Cisg ICAgICAgICAgT3duZXIgICAgICAgICAgIHwgQWxsIHRhYmxlcyB8IEFsbCBzZXF1ZW5jZXMgfCBJ bnNlcnRzIHwgVXBkYXRlcyB8IERlbGV0ZXMgfCBUcnVuY2F0ZXMgfCBHZW5lcmF0ZWQgY29sdW1u cyB8IFZpYSByb290IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3B1YmxpY2F0aW9uX3VzZXIg fCBmICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IHQgICAgICAgfCB0ICAgICAgIHwgdCAgICAg ICB8IHQgICAgICAgICB8IG5vbmUgICAgICAgICAgICAgIHwgZgorVGFibGVzOgorICAgICJwdWJf c2NoMS5wdWJfdGVzdF9leGNlcHQyIgorICAgICJwdWJsaWMucHViX3Rlc3RfZXhjZXB0MSIgRVhD RVBUIChjLCBkKQorCistLSBWZXJpZnkgZmFpbHMgLSBFWENFUFQgY29sLWxpc3QgY2Fubm90IGNv bnRhaW4gUkkgY29scyAod2hlbiB1c2luZyBSSSBGVUxMKQorQUxURVIgVEFCTEUgcHViX3Rlc3Rf ZXhjZXB0MSBSRVBMSUNBIElERU5USVRZIEZVTEw7CitVUERBVEUgcHViX3Rlc3RfZXhjZXB0MSBT RVQgYSA9IDMgV0hFUkUgYSA9IDE7CitFUlJPUjogIGNhbm5vdCB1cGRhdGUgdGFibGUgInB1Yl90 ZXN0X2V4Y2VwdDEiCitERVRBSUw6ICBDb2x1bW4gbGlzdCB1c2VkIGJ5IHRoZSBwdWJsaWNhdGlv biBkb2VzIG5vdCBjb3ZlciB0aGUgcmVwbGljYSBpZGVudGl0eS4KKy0tIFZlcmlmeSBmYWlscyAt IEVYQ0VQVCBjb2wtbGlzdCBjYW5ub3QgY29udGFpbiBSSSBjb2xzICh3aGVuIHVzaW5nIElOREVY KQorQ1JFQVRFIFVOSVFVRSBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FjX2lkeCBPTiBwdWJfdGVz dF9leGNlcHQxIChhLCBjKTsKK0FMVEVSIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgUkVQTElDQSBJ REVOVElUWSBVU0lORyBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FjX2lkeDsKK1VQREFURSBwdWJf dGVzdF9leGNlcHQxIFNFVCBhID0gMyBXSEVSRSBhID0gMTsKK0VSUk9SOiAgY2Fubm90IHVwZGF0 ZSB0YWJsZSAicHViX3Rlc3RfZXhjZXB0MSIKK0RFVEFJTDogIENvbHVtbiBsaXN0IHVzZWQgYnkg dGhlIHB1YmxpY2F0aW9uIGRvZXMgbm90IGNvdmVyIHRoZSByZXBsaWNhIGlkZW50aXR5LgorRFJP UCBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FjX2lkeDsKKy0tIFZlcmlmeSBvayAtIG5vIGNsYXNo IGJldHdlZW4gUkkgY29scyBhbmQgdGhlIEVYQ0VQVCBjb2wtbGlzdAorQ1JFQVRFIFVOSVFVRSBJ TkRFWCBwdWJfdGVzdF9leGNlcHQxX2FfaWR4IE9OIHB1Yl90ZXN0X2V4Y2VwdDEgKGEpOworQUxU RVIgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBSRVBMSUNBIElERU5USVRZIFVTSU5HIElOREVYIHB1 Yl90ZXN0X2V4Y2VwdDFfYV9pZHg7CitVUERBVEUgcHViX3Rlc3RfZXhjZXB0MSBTRVQgYSA9IDMg V0hFUkUgYSA9IDE7CistLSBWZXJpZnkgZGVzY3JpcHRpb24gb2YgYSB0YWJsZSB3aXRoIHB1Ymxp Y2F0aW9uIHdpdGggRVhDRVBUIGNvbC1saXN0CitcZCsgcHViX3Rlc3RfZXhjZXB0MQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnB1Yl90ZXN0X2V4Y2VwdDEiCisg Q29sdW1uIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgRGVmYXVsdCB8IFN0b3Jh Z2UgfCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLQorIGEgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCBub3QgbnVsbCB8ICAg ICAgICAgfCBwbGFpbiAgIHwgICAgICAgICAgICAgIHwgCisgYiAgICAgIHwgaW50ZWdlciB8ICAg ICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICB8IHBsYWluICAgfCAgICAgICAgICAgICAgfCAK KyBjICAgICAgfCBpbnRlZ2VyIHwgICAgICAgICAgIHwgbm90IG51bGwgfCAgICAgICAgIHwgcGxh aW4gICB8ICAgICAgICAgICAgICB8IAorIGQgICAgICB8IGludGVnZXIgfCAgICAgICAgICAgfCAg ICAgICAgICB8ICAgICAgICAgfCBwbGFpbiAgIHwgICAgICAgICAgICAgIHwgCitJbmRleGVzOgor ICAgICJwdWJfdGVzdF9leGNlcHQxX2FfaWR4IiBVTklRVUUsIGJ0cmVlIChhKSBSRVBMSUNBIElE RU5USVRZCitQdWJsaWNhdGlvbnM6CisgICAgInRlc3RwdWJfZXhjZXB0IiBFWENFUFQgKGMsIGQp CitOb3QtbnVsbCBjb25zdHJhaW50czoKKyAgICAicHViX3Rlc3RfZXhjZXB0MV9hX25vdF9udWxs IiBOT1QgTlVMTCAiYSIKKyAgICAicHViX3Rlc3RfZXhjZXB0MV9jX25vdF9udWxsIiBOT1QgTlVM TCAiYyIKKworLS0gY2xlYW51cAorRFJPUCBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FfaWR4Owor RFJPUCBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdDsKK0RST1AgVEFCTEUgcHViX3Rlc3RfZXhj ZXB0MTsKK0RST1AgVEFCTEUgcHViX3NjaDEucHViX3Rlc3RfZXhjZXB0MjsKIERST1AgU0NIRU1B IHB1Yl9zY2gxOwogLS0gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CiAtLSBUZXN0IHRoYXQgdGhlIElOU0VSVCBPTiBDT05GTElDVCBjb21tYW5k IGNvcnJlY3RseSBjaGVja3MgUkVQTElDQSBJREVOVElUWQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcHVibGlj YXRpb24uc3FsCmluZGV4IDI5MmRlYjUyYjkzLi5hN2ExMTc2NWFhOSAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvcHVibGljYXRpb24uc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3B1YmxpY2F0aW9uLnNxbApAQCAtMTM2Myw2ICsxMzYzLDYwIEBAIEFMVEVSIFBVQkxJQ0FU SU9OIHRlc3RwdWJfcmVzZXQgQUREIEFMTCBUQUJMRVMgRVhDRVBUIFRBQkxFIChwdWJfc2NoMS50 YmwxLCBwdWJfCiBEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWJfcmVzZXQ7CiBEUk9QIFRBQkxFIHB1 Yl9zY2gxLnRibDE7CiBEUk9QIFRBQkxFIHB1Yl9zY2gxLnRibDI7CistLSA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKworLS0gVGVzdCBFWENF UFQgY29sdW1ucyBmb3IgQ1JFQVRFIFBVQkxJQ0FUSU9OCitTRVQgY2xpZW50X21pbl9tZXNzYWdl cyA9ICdFUlJPUic7CitDUkVBVEUgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSAoYSBpbnQgTk9UIE5V TEwsIGIgaW50LCBjIGludCBOT1QgTlVMTCwgZCBpbnQpOworQ1JFQVRFIFRBQkxFIHB1Yl9zY2gx LnB1Yl90ZXN0X2V4Y2VwdDIgKGEgaW50LCBiIGludCwgYyBpbnQsIGQgaW50KTsKKworLS0gVmVy aWZ5IHRoYXQgcHVibGljYXRpb24gaXMgY3JlYXRlZCB3aXRoIEVYQ0VQVAorQ1JFQVRFIFBVQkxJ Q0FUSU9OIHRlc3RwdWJfZXhjZXB0IEZPUiBUQUJMRSBwdWJfdGVzdF9leGNlcHQxLCBwdWJfc2No MS5wdWJfdGVzdF9leGNlcHQyIEVYQ0VQVCAoYiwgYyk7CitTRUxFQ1QgKiBGUk9NIHBnX3B1Ymxp Y2F0aW9uX3RhYmxlcyBXSEVSRSBwdWJuYW1lID0gJ3Rlc3RwdWJfZXhjZXB0JzsKKworLS0gQ2Fu bm90IHVzZSBFWENFUFQgY29sLWxpc3RzIGNvbWJpbmVkIHdpdGggVEFCTEVTIElOIFNDSEVNQQor Q1JFQVRFIFBVQkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0MiBGT1IgVEFCTEVTIElOIFNDSEVNQSBw dWJfc2NoMSwgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBFWENFUFQgKGIsIGMpOworCistLSBTeW50 YXggZXJyb3IgRVhDRVBUIHdpdGhvdXQgYSBjb2wtbGlzdAorQ1JFQVRFIFBVQkxJQ0FUSU9OIHRl c3RwdWJfZXhjZXB0MiBGT1IgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBFWENFUFQ7CisKKy0tIFZl cmlmeSBvayAtIEFMVEVSIFBVQkxJQ0FUSU9OIC4uLiBTRVQgLi4uIEVYQ0VQVCAoY29sLWxpc3Qp CitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2VwdCBTRVQgVEFCTEUgcHViX3Rlc3RfZXhj ZXB0MSBFWENFUFQgKGEsIGIpLCBwdWJfc2NoMS5wdWJfdGVzdF9leGNlcHQyOworXGRScCsgdGVz dHB1Yl9leGNlcHQKKworLS0gVmVyaWZ5IGZhaWxzIC0gQUxURVIgUFVCTElDQVRJT04gLi4uIERS T1AgLi4uIEVYQ0VQVCAoY29sLWxpc3QpCitBTFRFUiBQVUJMSUNBVElPTiB0ZXN0cHViX2V4Y2Vw dCBEUk9QIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgRVhDRVBUIChhLCBiKTsKKworLS0gVmVyaWZ5 IG9rIC0gQUxURVIgUFVCTElDQVRJT04gLi4uIERST1AKK0FMVEVSIFBVQkxJQ0FUSU9OIHRlc3Rw dWJfZXhjZXB0IERST1AgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MTsKKworLS0gVmVyaWZ5IG9rIC0g QUxURVIgUFVCTElDQVRJT04gLi4uIEFERCAuLi4gRVhDRVBUIChjb2wtbGlzdCkKK0FMVEVSIFBV QkxJQ0FUSU9OIHRlc3RwdWJfZXhjZXB0IEFERCBUQUJMRSBwdWJfdGVzdF9leGNlcHQxIEVYQ0VQ VCAoYywgZCk7CitcZFJwKyB0ZXN0cHViX2V4Y2VwdAorCistLSBWZXJpZnkgZmFpbHMgLSBFWENF UFQgY29sLWxpc3QgY2Fubm90IGNvbnRhaW4gUkkgY29scyAod2hlbiB1c2luZyBSSSBGVUxMKQor QUxURVIgVEFCTEUgcHViX3Rlc3RfZXhjZXB0MSBSRVBMSUNBIElERU5USVRZIEZVTEw7CitVUERB VEUgcHViX3Rlc3RfZXhjZXB0MSBTRVQgYSA9IDMgV0hFUkUgYSA9IDE7CisKKy0tIFZlcmlmeSBm YWlscyAtIEVYQ0VQVCBjb2wtbGlzdCBjYW5ub3QgY29udGFpbiBSSSBjb2xzICh3aGVuIHVzaW5n IElOREVYKQorQ1JFQVRFIFVOSVFVRSBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FjX2lkeCBPTiBw dWJfdGVzdF9leGNlcHQxIChhLCBjKTsKK0FMVEVSIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDEgUkVQ TElDQSBJREVOVElUWSBVU0lORyBJTkRFWCBwdWJfdGVzdF9leGNlcHQxX2FjX2lkeDsKK1VQREFU RSBwdWJfdGVzdF9leGNlcHQxIFNFVCBhID0gMyBXSEVSRSBhID0gMTsKK0RST1AgSU5ERVggcHVi X3Rlc3RfZXhjZXB0MV9hY19pZHg7CisKKy0tIFZlcmlmeSBvayAtIG5vIGNsYXNoIGJldHdlZW4g UkkgY29scyBhbmQgdGhlIEVYQ0VQVCBjb2wtbGlzdAorQ1JFQVRFIFVOSVFVRSBJTkRFWCBwdWJf dGVzdF9leGNlcHQxX2FfaWR4IE9OIHB1Yl90ZXN0X2V4Y2VwdDEgKGEpOworQUxURVIgVEFCTEUg cHViX3Rlc3RfZXhjZXB0MSBSRVBMSUNBIElERU5USVRZIFVTSU5HIElOREVYIHB1Yl90ZXN0X2V4 Y2VwdDFfYV9pZHg7CitVUERBVEUgcHViX3Rlc3RfZXhjZXB0MSBTRVQgYSA9IDMgV0hFUkUgYSA9 IDE7CisKKy0tIFZlcmlmeSBkZXNjcmlwdGlvbiBvZiBhIHRhYmxlIHdpdGggcHVibGljYXRpb24g d2l0aCBFWENFUFQgY29sLWxpc3QKK1xkKyBwdWJfdGVzdF9leGNlcHQxCisKKy0tIGNsZWFudXAK K0RST1AgSU5ERVggcHViX3Rlc3RfZXhjZXB0MV9hX2lkeDsKK0RST1AgUFVCTElDQVRJT04gdGVz dHB1Yl9leGNlcHQ7CitEUk9QIFRBQkxFIHB1Yl90ZXN0X2V4Y2VwdDE7CitEUk9QIFRBQkxFIHB1 Yl9zY2gxLnB1Yl90ZXN0X2V4Y2VwdDI7CiBEUk9QIFNDSEVNQSBwdWJfc2NoMTsKIC0tID09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQogCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQgYi9zcmMvdGVzdC9zdWJz Y3JpcHRpb24vbWVzb24uYnVpbGQKaW5kZXggYjhlNWM1NGMzMTQuLmU4ZTY5Zjc0NDNkIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vbWVzb24uYnVpbGQKKysrIGIvc3JjL3Rlc3Qv c3Vic2NyaXB0aW9uL21lc29uLmJ1aWxkCkBAIC00Nyw2ICs0Nyw3IEBAIHRlc3RzICs9IHsKICAg ICAgICd0LzAzNV9jb25mbGljdHMucGwnLAogICAgICAgJ3QvMDM2X3NlcXVlbmNlcy5wbCcsCiAg ICAgICAndC8wMzdfcmVwX2NoYW5nZXNfZXhjZXB0X3RhYmxlLnBsJywKKyAgICAgICd0LzAzOF9y ZXBfY2hhbmdlc19leGNlcHRfY29sbGlzdC5wbCcsCiAgICAgICAndC8xMDBfYnVncy5wbCcsCiAg ICAgXSwKICAgfSwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzOF9yZXBf Y2hhbmdlc19leGNlcHRfY29sbGlzdC5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzOF9y ZXBfY2hhbmdlc19leGNlcHRfY29sbGlzdC5wbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uM2RmZDI2NmJjM2QKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9zdWJz Y3JpcHRpb24vdC8wMzhfcmVwX2NoYW5nZXNfZXhjZXB0X2NvbGxpc3QucGwKQEAgLTAsMCArMSwx OTMgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDIxLTIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVs b3BtZW50IEdyb3VwCisKKyMgTG9naWNhbCByZXBsaWNhdGlvbiB0ZXN0cyBmb3IgRVhDRVBUIChj b2x1bW4tbGlzdCkgcHVibGljYXRpb25zCit1c2Ugc3RyaWN0OwordXNlIHdhcm5pbmdzOwordXNl IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM7 Cit1c2UgVGVzdDo6TW9yZTsKKworIyBJbml0aWFsaXplIHB1Ymxpc2hlciBub2RlCitteSAkbm9k ZV9wdWJsaXNoZXIgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ3B1Ymxpc2hlcicp OworJG5vZGVfcHVibGlzaGVyLT5pbml0KGFsbG93c19zdHJlYW1pbmcgPT4gJ2xvZ2ljYWwnKTsK KyRub2RlX3B1Ymxpc2hlci0+c3RhcnQ7CisKKyMgQ3JlYXRlIHN1YnNjcmliZXIgbm9kZQorbXkg JG5vZGVfc3Vic2NyaWJlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3Vic2Ny aWJlcicpOworJG5vZGVfc3Vic2NyaWJlci0+aW5pdChhbGxvd3Nfc3RyZWFtaW5nID0+ICdsb2dp Y2FsJyk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zdGFydDsKKworIyBJbml0aWFsIHNldHVwCiskbm9k ZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSAoCisJQ1JFQVRFIFNDSEVN QSBzY2gxOworCUNSRUFURSBUQUJMRSB0YWIxIChhIGludCwgYiBpbnQgTk9UIE5VTEwsIGMgaW50 KTsKKwlDUkVBVEUgVEFCTEUgc2NoMS50YWIxIChhIGludCwgYiBpbnQsIGMgaW50KTsKKwlDUkVB VEUgVEFCTEUgdGFiMiAoYSBpbnQsIGIgaW50LCBjIGludCk7CisJQ1JFQVRFIFRBQkxFIHRhYjMg KGEgaW50LCBiZ2VuIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMikgU1RPUkVELCBjZ2Vu IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChhICogMykgU1RPUkVEKTsKKwlDUkVBVEUgVEFCTEUg dGFiNCAoYSBpbnQsIGJnZW4gaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAyKSBTVE9SRUQs IGNnZW4gaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGEgKiAzKSBTVE9SRUQpOworCUNSRUFURSBU QUJMRSB0YWI1IChhIGludCwgYiBpbnQsIGMgaW50KTsKKwlJTlNFUlQgSU5UTyB0YWIxIFZBTFVF UyAoMSwgMiwgMyk7CisJSU5TRVJUIElOVE8gc2NoMS50YWIxIFZBTFVFUyAoMSwgMiwgMyk7CisJ Q1JFQVRFIFBVQkxJQ0FUSU9OIHRhcF9wdWJfY29sIEZPUiBUQUJMRSB0YWIxIEVYQ0VQVCAoYSks IHNjaDEudGFiMSBFWENFUFQgKGIsIGMpOworKSk7CisKKyRub2RlX3N1YnNjcmliZXItPnNhZmVf cHNxbCgKKwkncG9zdGdyZXMnLCBxcSAoCisJQ1JFQVRFIFNDSEVNQSBzY2gxOworCUNSRUFURSBU QUJMRSB0YWIxIChhIGludCwgYiBpbnQgTk9UIE5VTEwsIGMgaW50KTsKKwlDUkVBVEUgVEFCTEUg c2NoMS50YWIxIChhIGludCwgYiBpbnQsIGMgaW50KTsKKwlDUkVBVEUgVEFCTEUgdGFiMiAoYSBp bnQsIGIgaW50LCBjIGludCk7CisJQ1JFQVRFIFRBQkxFIHRhYjMgKGEgaW50LCBiZ2VuIGludCwg Y2dlbiBpbnQpOworCUNSRUFURSBUQUJMRSB0YWI0IChhIGludCwgYmdlbiBpbnQsIGNnZW4gaW50 KTsKKwlDUkVBVEUgVEFCTEUgdGFiNSAoYSBpbnQsIGIgaW50LCBjIGludCwgZCBpbnQpOworKSk7 CisKKyMgU2V0dXAgbG9naWNhbCByZXBsaWNhdGlvbgorbXkgJHB1Ymxpc2hlcl9jb25uc3RyID0g JG5vZGVfcHVibGlzaGVyLT5jb25uc3RyIC4gJyBkYm5hbWU9cG9zdGdyZXMnOworJG5vZGVfc3Vi c2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkNSRUFURSBTVUJTQ1JJUFRJT04gdGFw X3N1Yl9jb2wgQ09OTkVDVElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElPTiB0YXBf cHViX2NvbCIKKyk7Ciskbm9kZV9zdWJzY3JpYmVyLT53YWl0X2Zvcl9zdWJzY3JpcHRpb25fc3lu Yygkbm9kZV9wdWJsaXNoZXIsICd0YXBfc3ViX2NvbCcpOworCisjIFRlc3QgaW5pdGlhbCBzeW5j CitteSAkcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJT RUxFQ1QgKiBGUk9NIHRhYjEiKTsKK2lzKCRyZXN1bHQsIHFxKHwyfDMpLAorCSdWZXJpZnkgaW5p dGlhbCBzeW5jIG9mIHRhYjEgaW4gYSBwdWJsaWNhdGlvbiB1c2luZyBFWENFUFQgKGNvbHVtbi1s aXN0KScKKyk7CiskcmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3Jl cycsICJTRUxFQ1QgKiBGUk9NIHNjaDEudGFiMSIpOworaXMoJHJlc3VsdCwgcXEoMXx8KSwKKwkn VmVyaWZ5IGluaXRpYWwgc3luYyBvZiBzY2gxLnRhYjEgaW4gYSBwdWJsaWNhdGlvbiB1c2luZyBF WENFUFQgKGNvbHVtbi1saXN0KScKKyk7CisKKyMgVGVzdCBpbmNyZW1lbnRhbCBjaGFuZ2VzCisk bm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9zdGdyZXMnLCBxcSAoCisJSU5TRVJUIElO VE8gdGFiMSBWQUxVRVMgKDQsIDUsIDYpOworCUlOU0VSVCBJTlRPIHNjaDEudGFiMSBWQUxVRVMg KDQsIDUsIDYpOworKSk7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9z dWJfY29sJyk7CiskcmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICJTRUxFQ1QgKiBGUk9NIHRhYjEgT1JERVIgQlkgYSIpOworaXMoICRyZXN1bHQsIHFx KHwyfDMKK3w1fDYpLAorCSdWZXJpZnkgaW5jcmVtZW50YWwgaW5zZXJ0cyBvbiB0YWIxIGluIGEg cHVibGljYXRpb24gdXNpbmcgRVhDRVBUIChjb2x1bW4tbGlzdCknCispOworJHJlc3VsdCA9ICRu b2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJTRUxFQ1QgKiBGUk9NIHNj aDEudGFiMSBPUkRFUiBCWSBhIik7CitpcyggJHJlc3VsdCwgcXEoMXx8Cis0fHwpLAorCSdWZXJp ZnkgaW5jcmVtZW50YWwgaW5zZXJ0cyBvbiBzY2gxLnRhYjEgaW4gYSBwdWJsaWNhdGlvbiB1c2lu ZyBFWENFUFQgKGNvbHVtbi1saXN0KScKKyk7CisKKyMgVGVzdCBmb3IgdXBkYXRlCiskbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoCisJJ3Bvc3RncmVzJywgcXEoCisJQ1JFQVRFIFVOSVFVRSBJ TkRFWCBiX2lkeCBPTiB0YWIxIChiKTsKKwlBTFRFUiBUQUJMRSB0YWIxIFJFUExJQ0EgSURFTlRJ VFkgVVNJTkcgSU5ERVggYl9pZHg7CispKTsKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAor CSdwb3N0Z3JlcycsIHFxKAorCUNSRUFURSBVTklRVUUgSU5ERVggYl9pZHggT04gdGFiMSAoYik7 CisJQUxURVIgVEFCTEUgdGFiMSBSRVBMSUNBIElERU5USVRZIFVTSU5HIElOREVYIGJfaWR4Owor CVVQREFURSB0YWIxIFNFVCBhID0gOTkxLCBiID0gOTkyLCBjID0gOTkzIFdIRVJFIGEgPSAxOwor KSk7Ciskbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWJfY29sJyk7Cisk cmVzdWx0ID0KKyAgJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxF Q1QgKiBGUk9NIHRhYjEgIE9SREVSIEJZIGEiKTsKK2lzKCAkcmVzdWx0LCBxcSh8NXw2Cit8OTky fDk5MyksCisJJ2NoZWNrIHVwZGF0ZSBmb3IgRVhDRVBUIChjb2x1bW4tbGlzdCkgcHVibGljYXRp b24nKTsKKworIyBUZXN0IEFMVEVSIFBVQkxJQ0FUSU9OIGZvciBFWENFUFQgKGNvbHVtbi1saXN0 KQorJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgUFVCTElD QVRJT04gdGFwX3B1Yl9jb2wgQUREIFRBQkxFIHRhYjIgRVhDRVBUKGIpIik7Ciskbm9kZV9zdWJz Y3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgU1VCU0NSSVBUSU9OIHRhcF9z dWJfY29sIFJFRlJFU0ggUFVCTElDQVRJT04iKTsKKyRub2RlX3N1YnNjcmliZXItPndhaXRfZm9y X3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwgJ3RhcF9zdWJfY29sJyk7CisKKyRu b2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJJTlNFUlQgSU5UTyB0YWIyIFZB TFVFUyAoMSwgMiwgMykiKTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgndGFw X3N1Yl9jb2wnKTsKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgIlNFTEVDVCAqIEZST00gdGFiMiIpOworaXMoJHJlc3VsdCwgcXEoMXx8MyksICdjaGVj ayBhbHRlciBwdWJsaWNhdGlvbiB3aXRoIEVYQ0VQVCAoY29sdW1uLWxpc3QpJyk7CisKKyMgVGVz dCBmb3IgcHVibGljYXRpb24gY3JlYXRlZCB3aXRoICdwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5z JyBhcyAnc3RvcmVkJyBvbgorIyB0YWJsZSAndGFiMycgYW5kIHdpdGggY29sdW1uICdiZ2VuJyBp biBjb2x1bW4gbGlzdCB3aXRoIEVYQ0VQVCBjbGF1c2UuCiskbm9kZV9wdWJsaXNoZXItPnNhZmVf cHNxbCgKKwkncG9zdGdyZXMnLCBxcShJTlNFUlQgSU5UTyB0YWIzIFZBTFVFUyAoMSk7CisJQUxU RVIgUFVCTElDQVRJT04gdGFwX3B1Yl9jb2wgU0VUIChwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5z ID0gc3RvcmVkKTsKKwlBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX2NvbCBTRVQgVEFCTEUgdGFi MyBFWENFUFQoYmdlbik7CispKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdy ZXMnLAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9jb2wgUkVGUkVTSCBQVUJMSUNBVElP TiIpOworJG5vZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVf cHVibGlzaGVyLCAndGFwX3N1Yl9jb2wnKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwo J3Bvc3RncmVzJywgIklOU0VSVCBJTlRPIHRhYjMgVkFMVUVTICgyKSIpOworJG5vZGVfcHVibGlz aGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX2NvbCcpOworJHJlc3VsdCA9CisgICRub2Rl X3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSB0YWIzIE9S REVSIEJZIGEiKTsKKworIyBjb2x1bW4gJ2JnZW4nIGlzIHNwZWNpZmllZCBpbiBFWENFUFQgKGNv bHVtbS1saXN0KS4gU28gZGF0YSBjb3JyZXNwb25kaW5nIHRvCisjICdiZ2VuJyBpcyBub3QgcmVw bGljYXRlZC4gUGFyYW1ldGVyICdwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zJyBpcyBzZXQgYXMK KyMgJ3N0b3JlZCcsIHNvIGRhdGEgY29ycmVzcG9uZGluZyB0byBjb2x1bW4gJ2NnZW4nIGlzIHJl cGxpY2F0ZWQuCitpcyggJHJlc3VsdCwgcXEoMXx8MworMnx8NiksCisJJ2NoZWNrIHB1YmxpY2F0 aW9uKHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMgYXMgc3RvcmVkKSB3aXRoIGdlbmVyYXRlZCBj b2x1bW5zIGFuZCBFWENFUFQgKGNvbHVtbi1saXN0KScKKyk7CisKKyMgVGVzdCBmb3IgcHVibGlj YXRpb24gY3JlYXRlZCB3aXRoICdwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zJyBhcyAnbm9uZScg b24KKyMgdGFibGUgd2l0aCBnZW5lcmF0ZWQgY29sdW1ucyBhbmQgY29sdW1uIGxpc3Qgc3BlY2lm aWVkIHdpdGggRVhDRVBUIGNsYXVzZS4KKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdw b3N0Z3JlcycsIHFxKAorCUlOU0VSVCBJTlRPIHRhYjQgVkFMVUVTICgxKTsKKwlBTFRFUiBQVUJM SUNBVElPTiB0YXBfcHViX2NvbCBTRVQgKHB1Ymxpc2hfZ2VuZXJhdGVkX2NvbHVtbnMgPSBub25l KTsKKwlBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX2NvbCBTRVQgVEFCTEUgdGFiNCBFWENFUFQo Ymdlbik7CispKTsKKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJB TFRFUiBTVUJTQ1JJUFRJT04gdGFwX3N1Yl9jb2wgUkVGUkVTSCBQVUJMSUNBVElPTiIpOworJG5v ZGVfc3Vic2NyaWJlci0+d2FpdF9mb3Jfc3Vic2NyaXB0aW9uX3N5bmMoJG5vZGVfcHVibGlzaGVy LCAndGFwX3N1Yl9jb2wnKTsKKworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVz JywgIklOU0VSVCBJTlRPIHRhYjQgVkFMVUVTICgyKSIpOworJG5vZGVfcHVibGlzaGVyLT53YWl0 X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX2NvbCcpOworJHJlc3VsdCA9CisgICRub2RlX3N1YnNjcmli ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAiU0VMRUNUICogRlJPTSB0YWI0IE9SREVSIEJZIGEi KTsKKworIyBjb2x1bW4gJ2JnZW4nIGlzIHNwZWNpZmllZCBpbiBFWENFUFQgKGNvbHVtbS1saXN0 KS4gU28gZGF0YSBjb3JyZXNwb25kaW5nIHRvCisjICdiZ2VuJyBpcyBub3QgcmVwbGljYXRlZC4g UGFyYW1ldGVyICdwdWJsaXNoX2dlbmVyYXRlZF9jb2x1bW5zJyBpcyBzZXQgYXMKKyMgJ25vbmUn LCBzbyBkYXRhIGNvcnJlc3BvbmRpbmcgdG8gY29sdW1uICdjZ2VuJyBpcyBub3QgcmVwbGljYXRl ZC4KK2lzKCAkcmVzdWx0LCBxcSgxfHwKKzJ8fCksCisJJ2NoZWNrIHB1YmxpY2F0aW9uKHB1Ymxp c2hfZ2VuZXJhdGVkX2NvbHVtbnMgYXMgbm9uZSkgd2l0aCBnZW5lcmF0ZWQgY29sdW1ucyBhbmQg RVhDRVBUIChjb2x1bW4tbGlzdCknCispOworCisjIEFsbCBjb2x1bW5zIGFyZSBwcmVzZW50IGlu IEVYQ0VQVCAoY29sdW1uLWxpc3QpCiskbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgKKwkncG9z dGdyZXMnLCBxcSgKKwlBTFRFUiBQVUJMSUNBVElPTiB0YXBfcHViX2NvbCBTRVQgVEFCTEUgdGFi NSBFWENFUFQoYSwgYiwgYyk7CisJSU5TRVJUIElOVE8gdGFiNSBWQUxVRVMgKDEsIDIsIDMpOwor KSk7Ciskbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgU1VC U0NSSVBUSU9OIHRhcF9zdWJfY29sIFJFRlJFU0ggUFVCTElDQVRJT04iKTsKKyRub2RlX3N1YnNj cmliZXItPndhaXRfZm9yX3N1YnNjcmlwdGlvbl9zeW5jKCRub2RlX3B1Ymxpc2hlciwgJ3RhcF9z dWJfY29sJyk7CisKKyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJJTlNF UlQgSU5UTyB0YWI1IFZBTFVFUyAoNCwgNSwgNikiKTsKKyRub2RlX3B1Ymxpc2hlci0+d2FpdF9m b3JfY2F0Y2h1cCgndGFwX3N1Yl9jb2wnKTsKKyRyZXN1bHQgPSAkbm9kZV9zdWJzY3JpYmVyLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgIlNFTEVDVCAqIEZST00gdGFiNSIpOworaXMoJHJlc3VsdCwg cXEoKSwgJ2FsbCBjb2x1bW5zIGFyZSBzcGVjaWZpZWQgaW4gRVhDRVBUIChjb2x1bW4tbGlzdCkn KTsKKworIyBBZGQgYSBuZXcgY29sdW1uIGFuZCBjaGVjayB0aGF0IGl0IGlzIHJlcGxpY2F0ZWQK KyRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKAorCSdwb3N0Z3JlcycsIHFxKAorCUFMVEVSIFRB QkxFIHRhYjUgQUREIENPTFVNTiBkIGludDsKKykpOworJG5vZGVfcHVibGlzaGVyLT5zYWZlX3Bz cWwoJ3Bvc3RncmVzJywKKwkiSU5TRVJUIElOVE8gdGFiNSBWQUxVRVMgKDcsIDgsIDksIDEwKSIp OworJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCd0YXBfc3ViX2NvbCcpOworCisk cmVzdWx0ID0gJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsICJTRUxFQ1Qg KiBGUk9NIHRhYjUiKTsKK2lzKCRyZXN1bHQsIHFxKHx8fDEwKSwgJ25ld2x5IGFkZGVkIGNvbHVt biBpcyByZXBsaWNhdGVkJyk7CisKKyRub2RlX3N1YnNjcmliZXItPnN0b3AoJ2Zhc3QnKTsKKyRu b2RlX3B1Ymxpc2hlci0+c3RvcCgnZmFzdCcpOworCitkb25lX3Rlc3RpbmcoKTsKLS0gCjIuMzQu MQoK --000000000000b3632e06451ef149--