Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jNzYP-0005V0-Ey for pgsql-hackers@arkaria.postgresql.org; Mon, 13 Apr 2020 13:55:14 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1jNzYO-0001Wk-A3 for pgsql-hackers@arkaria.postgresql.org; Mon, 13 Apr 2020 13:55:12 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jNzYN-0001Wd-3O for pgsql-hackers@lists.postgresql.org; Mon, 13 Apr 2020 13:55:12 +0000 Received: from [66.111.4.25] (helo=out1-smtp.messagingengine.com) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jNzYH-000642-HC for pgsql-hackers@postgresql.org; Mon, 13 Apr 2020 13:55:10 +0000 Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id CA9A95C00EE for ; Mon, 13 Apr 2020 09:54:53 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute1.internal (MEProxy); Mon, 13 Apr 2020 09:54:53 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm2; bh=3kpDhPgxIOZ90/u8W2yyDgSeQNE7y sKxwz0/XMWMPxQ=; b=L9h3alqkGNal6RoQeKSEtSPDaXzxMoi8z19NAXAr/BeHP WR1jtvzzEUOCU7AKaOD+ykOFGzNGPcm/71ln662eZQ5Tb/UwqcvZI8zPc19qLwtJ 2jPhwOsCQp2GyYdicLnWzVnAvolC7tjIPCUcJevZzkOw7NfFlLvUYZl/6C5fWMoQ OQSt5CEIm/BQMp3e52HmDiiNt5MWJiusJBkTux1g68XXogTblcXeGgogBodogLkH vysoborW7YHnK4W1T5jIquLPDUcg90lwZShtoJkLpqPak2WM+jlvSrvuzpctZxIu 5ne6SGYaIMTwlRTJ+jEJxkINLw2qn/vOmweVFfytw== X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduhedrvdelgdejfecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurhephffuvfhokffffgggtgesmhdtreertd efjeenucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhdrvghi shgvnhhtrhgruhhtsedvnhguqhhurggurhgrnhhtrdgtohhmqeenucffohhmrghinhepph hoshhtghhrvghsqhhlrdhorhhgpddvnhguqhhurggurhgrnhhtrdgtohhmnecukfhppeel fedrvdegvddrvddufedrvdegudenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmh epmhgrihhlfhhrohhmpehpvghtvghrrdgvihhsvghnthhrrghuthesvdhnughquhgrughr rghnthdrtghomh X-ME-Proxy: Received: from april.pezone.net (p5df2d5f1.dip0.t-ipconnect.de [93.242.213.241]) by mail.messagingengine.com (Postfix) with ESMTPA id 5BF823280059 for ; Mon, 13 Apr 2020 09:54:50 -0400 (EDT) From: Peter Eisentraut Subject: wrong relkind error messages To: pgsql-hackers Organization: 2ndQuadrant Message-ID: Date: Mon, 13 Apr 2020 15:54:48 +0200 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------7A65589ACF38A7A98503C5EE" Content-Language: en-US X-Host-Lookup-Failed: Reverse DNS lookup failed for 66.111.4.25 (deferred) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------7A65589ACF38A7A98503C5EE Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit I'm not a fan of error messages like relation "%s" is not a table, foreign table, or materialized view It doesn't tell me what's wrong, it only tells me what else could have worked. It's also tedious to maintain and the number of combinations grows over time. This was discussed many years ago in [0], with the same arguments, and there appeared to have been general agreement to change this, but then the thread stalled somehow on some technical details. Attached is another attempt to improve this. I have rewritten the primary error messages using the principle of "cannot do this with that" and then added a detail message to show what relkind the object has. For example: -ERROR: relation "ti" is not a table, foreign table, or materialized view +ERROR: cannot define statistics for relation "ti" +DETAIL: "ti" is an index. and -ERROR: "test_foreign_table" is not a table, materialized view, or TOAST table +ERROR: relation "test_foreign_table" does not have a visibility map +DETAIL: "test_foreign_table" is a foreign table. You can see more instances of this in the test diffs in the attached patch. In passing, I also changed a few places to use the RELKIND_HAS_STORAGE() macro. This is related because it allows writing more helpful error messages, such as in pgstatindex.c. One question on a detail arose: check_relation_relkind() in pg_visibility.c accepts RELKIND_RELATION, RELKIND_MATVIEW, and RELKIND_TOASTVALUE, but pgstatapprox.c only accepts RELKIND_RELATION and RELKIND_MATVIEW, even though they both look for a visibility map. Is that an intentional omission? If so, it should be commented better. [0]: https://www.postgresql.org/message-id/flat/AANLkTimR_sZ_wKd1cgqVG1PEvTvdr9j7zD%2B3_NPvfaa_%40mail.gmail.com -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --------------7A65589ACF38A7A98503C5EE Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="0001-Improve-error-messages-about-mismatching-relkind.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename*0="0001-Improve-error-messages-about-mismatching-relkind.patch" RnJvbSAyZTMyZGNlMzZjZDM0ZTZkNThjOTkwNjc5NjlmOThkZTFiYjEyNjRiIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogTW9uLCAxMyBBcHIgMjAyMCAxNToyOTo0NiArMDIwMApTdWJqZWN0 OiBbUEFUQ0hdIEltcHJvdmUgZXJyb3IgbWVzc2FnZXMgYWJvdXQgbWlzbWF0Y2hpbmcgcmVs a2luZAoKTW9zdCBlcnJvciBtZXNzYWdlcyBhYm91dCBhIHJlbGtpbmQgdGhhdCB3YXMgbm90 IHN1cHBvcnRlZCBvcgphcHByb3ByaWF0ZSBmb3IgdGhlIGNvbW1hbmQgd2FzIG9mIHRoZSBw YXR0ZXJuCgogICAgInJlbGF0aW9uIFwiJXNcIiBpcyBub3QgYSB0YWJsZSwgZm9yZWlnbiB0 YWJsZSwgb3IgbWF0ZXJpYWxpemVkIHZpZXciCgpUaGlzIHN0eWxlIGNhbiBiZWNvbWUgdmVy Ym9zZSBhbmQgdGVkaW91cyB0byBtYWludGFpbi4gIE1vcmVvdmVyLCBpdCdzCm5vdCB2ZXJ5 IGhlbHBmdWw6IElmIEknbSB0cnlpbmcgdG8gY3JlYXRlIGEgY29tbWVudCBvbiBhIFRPQVNU IHRhYmxlLAp3aGljaCBpcyBub3Qgc3VwcG9ydGVkLCB0aGVuIHRoZSBpbmZvcm1hdGlvbiB0 aGF0IEkgY291bGQgaGF2ZSBjcmVhdGVkCmEgY29tbWVudCBvbiBhIG1hdGVyaWFsaXplZCB2 aWV3IGlzIHBvaW50bGVzcy4KCkluc3RlYWQsIHdyaXRlIHRoZSBwcmltYXJ5IGVycm9yIG1l c3NhZ2Ugc2hvcnRlciBhbmQgc2F5aW5nIG1vcmUKZGlyZWN0bHkgdGhhdCB3aGF0IHdhcyBh dHRlbXB0ZWQgaXMgbm90IHN1cHBvcnRlZCBvciBwb3NzaWJsZS4gIFRoZW4sCmluIHRoZSBk ZXRhaWwgbWVzc2FnZSBzaG93IHNob3cgcmVsa2luZCB0aGUgb2JqZWN0IHdhcy4gIFRvIHNp bXBsaWZ5CnRoYXQsIGFkZCBhIG5ldyBmdW5jdGlvbiBlcnJkZXRhaWxfcmVsa2luZCgpIHRo YXQgZG9lcyB0aGlzLgoKSW4gcGFzc2luZywgbWFrZSB1c2Ugb2YgUkVMS0lORF9IQVNfU1RP UkFHRSgpIHdoZXJlIGFwcHJvcHJpYXRlLAppbnN0ZWFkIG9mIGxpc3Rpbmcgb3V0IHRoZSBy ZWxraW5kcyBpbmRpdmlkdWFsbHkuCi0tLQogLi4uL3BnX3Zpc2liaWxpdHkvZXhwZWN0ZWQv cGdfdmlzaWJpbGl0eS5vdXQgIHwgNzUgKysrKysrKysrKy0tLS0tLQogY29udHJpYi9wZ192 aXNpYmlsaXR5L3BnX3Zpc2liaWxpdHkuYyAgICAgICAgIHwgIDUgKy0KIGNvbnRyaWIvcGdz dGF0dHVwbGUvZXhwZWN0ZWQvcGdzdGF0dHVwbGUub3V0ICB8IDE4ICsrLS0KIGNvbnRyaWIv cGdzdGF0dHVwbGUvcGdzdGF0YXBwcm94LmMgICAgICAgICAgICB8ICA1ICstCiBjb250cmli L3Bnc3RhdHR1cGxlL3Bnc3RhdGluZGV4LmMgICAgICAgICAgICAgfCAxMSArLS0KIHNyYy9i YWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9i YWNrZW5kL2NhdGFsb2cvaGVhcC5jICAgICAgICAgICAgICAgICAgICB8ICA3ICstCiBzcmMv YmFja2VuZC9jYXRhbG9nL3BnX2NsYXNzLmMgICAgICAgICAgICAgICAgfCA1MSArKysrKysr KysrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy90b2FzdGluZy5jICAgICAgICAgICAgICAgIHwg IDYgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbW1lbnQuYyAgICAgICAgICAgICAgICB8 ICA1ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYyAgICAgICAgICAgICAg fCAxNiArLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9sb2NrY21kcy5jICAgICAgICAgICAg ICAgfCAgNSArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYyAgICAgICAgICAg ICAgIHwgIDUgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3NlcXVlbmNlLmMgICAgICAgICAg ICAgICB8ICA1ICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zdGF0c2NtZHMuYyAgICAgICAg ICAgICAgfCAgNSArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAg ICAgICAgIHwgODggKysrKy0tLS0tLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv dHJpZ2dlci5jICAgICAgICAgICAgICAgIHwgMTUgKystLQogc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3V0aWxjbWQuYyAgICAgICAgICAgIHwgIDUgKy0KIHNyYy9iYWNrZW5kL3Bvc3Rt YXN0ZXIvcGdzdGF0LmMgICAgICAgICAgICAgICB8ICA2ICstCiBzcmMvYmFja2VuZC9yZXdy aXRlL3Jld3JpdGVEZWZpbmUuYyAgICAgICAgICAgfCAgOCArLQogc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2Ric2l6ZS5jICAgICAgICAgICAgICAgIHwgNzMgKysrKysrLS0tLS0tLS0tCiBz cmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NsYXNzLmggICAgICAgICAgICAgICAgfCAgMSArCiBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dCAgICAgfCAgOSArLQog Li4uL3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3RhYmxlX2xpa2Uub3V0ICAgIHwgIDMgKy0K IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yZWlnbl9kYXRhLm91dCAgICB8ICA2ICst CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2luZGV4aW5nLm91dCAgICAgICAgfCAgMyAr LQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXF1ZW5jZS5vdXQgICAgICAgIHwgIDMg Ky0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3RhdHNfZXh0Lm91dCAgICAgICB8IDEy ICsrLQogMjggZmlsZXMgY2hhbmdlZCwgMjM1IGluc2VydGlvbnMoKyksIDIxNyBkZWxldGlv bnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX2NsYXNz LmMKCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3Zpc2liaWxpdHkvZXhwZWN0ZWQvcGdfdmlz aWJpbGl0eS5vdXQgYi9jb250cmliL3BnX3Zpc2liaWxpdHkvZXhwZWN0ZWQvcGdfdmlzaWJp bGl0eS5vdXQKaW5kZXggMmFiYzFiNTEwNy4uMDFmZjEzNjFkNCAxMDA2NDQKLS0tIGEvY29u dHJpYi9wZ192aXNpYmlsaXR5L2V4cGVjdGVkL3BnX3Zpc2liaWxpdHkub3V0CisrKyBiL2Nv bnRyaWIvcGdfdmlzaWJpbGl0eS9leHBlY3RlZC9wZ192aXNpYmlsaXR5Lm91dApAQCAtNDEs NjYgKzQxLDkxIEBAIFJPTExCQUNLOwogY3JlYXRlIHRhYmxlIHRlc3RfcGFydGl0aW9uZWQg KGEgaW50KSBwYXJ0aXRpb24gYnkgbGlzdCAoYSk7CiAtLSB0aGVzZSBzaG91bGQgYWxsIGZh aWwKIHNlbGVjdCBwZ192aXNpYmlsaXR5KCd0ZXN0X3BhcnRpdGlvbmVkJywgMCk7Ci1FUlJP UjogICJ0ZXN0X3BhcnRpdGlvbmVkIiBpcyBub3QgYSB0YWJsZSwgbWF0ZXJpYWxpemVkIHZp ZXcsIG9yIFRPQVNUIHRhYmxlCitFUlJPUjogIHJlbGF0aW9uICJ0ZXN0X3BhcnRpdGlvbmVk IiBkb2VzIG5vdCBoYXZlIGEgdmlzaWJpbGl0eSBtYXAKK0RFVEFJTDogICJ0ZXN0X3BhcnRp dGlvbmVkIiBpcyBhIGZvcmVpZ24gdGFibGUuCiBzZWxlY3QgcGdfdmlzaWJpbGl0eV9tYXAo J3Rlc3RfcGFydGl0aW9uZWQnKTsKLUVSUk9SOiAgInRlc3RfcGFydGl0aW9uZWQiIGlzIG5v dCBhIHRhYmxlLCBtYXRlcmlhbGl6ZWQgdmlldywgb3IgVE9BU1QgdGFibGUKK0VSUk9SOiAg cmVsYXRpb24gInRlc3RfcGFydGl0aW9uZWQiIGRvZXMgbm90IGhhdmUgYSB2aXNpYmlsaXR5 IG1hcAorREVUQUlMOiAgInRlc3RfcGFydGl0aW9uZWQiIGlzIGEgZm9yZWlnbiB0YWJsZS4K IHNlbGVjdCBwZ192aXNpYmlsaXR5X21hcF9zdW1tYXJ5KCd0ZXN0X3BhcnRpdGlvbmVkJyk7 Ci1FUlJPUjogICJ0ZXN0X3BhcnRpdGlvbmVkIiBpcyBub3QgYSB0YWJsZSwgbWF0ZXJpYWxp emVkIHZpZXcsIG9yIFRPQVNUIHRhYmxlCitFUlJPUjogIHJlbGF0aW9uICJ0ZXN0X3BhcnRp dGlvbmVkIiBkb2VzIG5vdCBoYXZlIGEgdmlzaWJpbGl0eSBtYXAKK0RFVEFJTDogICJ0ZXN0 X3BhcnRpdGlvbmVkIiBpcyBhIGZvcmVpZ24gdGFibGUuCiBzZWxlY3QgcGdfY2hlY2tfZnJv emVuKCd0ZXN0X3BhcnRpdGlvbmVkJyk7Ci1FUlJPUjogICJ0ZXN0X3BhcnRpdGlvbmVkIiBp cyBub3QgYSB0YWJsZSwgbWF0ZXJpYWxpemVkIHZpZXcsIG9yIFRPQVNUIHRhYmxlCitFUlJP UjogIHJlbGF0aW9uICJ0ZXN0X3BhcnRpdGlvbmVkIiBkb2VzIG5vdCBoYXZlIGEgdmlzaWJp bGl0eSBtYXAKK0RFVEFJTDogICJ0ZXN0X3BhcnRpdGlvbmVkIiBpcyBhIGZvcmVpZ24gdGFi bGUuCiBzZWxlY3QgcGdfdHJ1bmNhdGVfdmlzaWJpbGl0eV9tYXAoJ3Rlc3RfcGFydGl0aW9u ZWQnKTsKLUVSUk9SOiAgInRlc3RfcGFydGl0aW9uZWQiIGlzIG5vdCBhIHRhYmxlLCBtYXRl cmlhbGl6ZWQgdmlldywgb3IgVE9BU1QgdGFibGUKK0VSUk9SOiAgcmVsYXRpb24gInRlc3Rf cGFydGl0aW9uZWQiIGRvZXMgbm90IGhhdmUgYSB2aXNpYmlsaXR5IG1hcAorREVUQUlMOiAg InRlc3RfcGFydGl0aW9uZWQiIGlzIGEgZm9yZWlnbiB0YWJsZS4KIGNyZWF0ZSB0YWJsZSB0 ZXN0X3BhcnRpdGlvbiBwYXJ0aXRpb24gb2YgdGVzdF9wYXJ0aXRpb25lZCBmb3IgdmFsdWVz IGluICgxKTsKIGNyZWF0ZSBpbmRleCB0ZXN0X2luZGV4IG9uIHRlc3RfcGFydGl0aW9uIChh KTsKIC0tIGluZGV4ZXMgZG8gbm90LCBzbyB0aGVzZSBhbGwgZmFpbAogc2VsZWN0IHBnX3Zp c2liaWxpdHkoJ3Rlc3RfaW5kZXgnLCAwKTsKLUVSUk9SOiAgInRlc3RfaW5kZXgiIGlzIG5v dCBhIHRhYmxlLCBtYXRlcmlhbGl6ZWQgdmlldywgb3IgVE9BU1QgdGFibGUKK0VSUk9SOiAg cmVsYXRpb24gInRlc3RfaW5kZXgiIGRvZXMgbm90IGhhdmUgYSB2aXNpYmlsaXR5IG1hcAor REVUQUlMOiAgInRlc3RfaW5kZXgiIGlzIGFuIGluZGV4Lgogc2VsZWN0IHBnX3Zpc2liaWxp dHlfbWFwKCd0ZXN0X2luZGV4Jyk7Ci1FUlJPUjogICJ0ZXN0X2luZGV4IiBpcyBub3QgYSB0 YWJsZSwgbWF0ZXJpYWxpemVkIHZpZXcsIG9yIFRPQVNUIHRhYmxlCitFUlJPUjogIHJlbGF0 aW9uICJ0ZXN0X2luZGV4IiBkb2VzIG5vdCBoYXZlIGEgdmlzaWJpbGl0eSBtYXAKK0RFVEFJ TDogICJ0ZXN0X2luZGV4IiBpcyBhbiBpbmRleC4KIHNlbGVjdCBwZ192aXNpYmlsaXR5X21h cF9zdW1tYXJ5KCd0ZXN0X2luZGV4Jyk7Ci1FUlJPUjogICJ0ZXN0X2luZGV4IiBpcyBub3Qg YSB0YWJsZSwgbWF0ZXJpYWxpemVkIHZpZXcsIG9yIFRPQVNUIHRhYmxlCitFUlJPUjogIHJl bGF0aW9uICJ0ZXN0X2luZGV4IiBkb2VzIG5vdCBoYXZlIGEgdmlzaWJpbGl0eSBtYXAKK0RF VEFJTDogICJ0ZXN0X2luZGV4IiBpcyBhbiBpbmRleC4KIHNlbGVjdCBwZ19jaGVja19mcm96 ZW4oJ3Rlc3RfaW5kZXgnKTsKLUVSUk9SOiAgInRlc3RfaW5kZXgiIGlzIG5vdCBhIHRhYmxl LCBtYXRlcmlhbGl6ZWQgdmlldywgb3IgVE9BU1QgdGFibGUKK0VSUk9SOiAgcmVsYXRpb24g InRlc3RfaW5kZXgiIGRvZXMgbm90IGhhdmUgYSB2aXNpYmlsaXR5IG1hcAorREVUQUlMOiAg InRlc3RfaW5kZXgiIGlzIGFuIGluZGV4Lgogc2VsZWN0IHBnX3RydW5jYXRlX3Zpc2liaWxp dHlfbWFwKCd0ZXN0X2luZGV4Jyk7Ci1FUlJPUjogICJ0ZXN0X2luZGV4IiBpcyBub3QgYSB0 YWJsZSwgbWF0ZXJpYWxpemVkIHZpZXcsIG9yIFRPQVNUIHRhYmxlCitFUlJPUjogIHJlbGF0 aW9uICJ0ZXN0X2luZGV4IiBkb2VzIG5vdCBoYXZlIGEgdmlzaWJpbGl0eSBtYXAKK0RFVEFJ TDogICJ0ZXN0X2luZGV4IiBpcyBhbiBpbmRleC4KIGNyZWF0ZSB2aWV3IHRlc3RfdmlldyBh cyBzZWxlY3QgMTsKIC0tIHZpZXdzIGRvIG5vdCBoYXZlIFZNcywgc28gdGhlc2UgYWxsIGZh aWwKIHNlbGVjdCBwZ192aXNpYmlsaXR5KCd0ZXN0X3ZpZXcnLCAwKTsKLUVSUk9SOiAgInRl c3RfdmlldyIgaXMgbm90IGEgdGFibGUsIG1hdGVyaWFsaXplZCB2aWV3LCBvciBUT0FTVCB0 YWJsZQorRVJST1I6ICByZWxhdGlvbiAidGVzdF92aWV3IiBkb2VzIG5vdCBoYXZlIGEgdmlz aWJpbGl0eSBtYXAKK0RFVEFJTDogICJ0ZXN0X3ZpZXciIGlzIGEgdmlldy4KIHNlbGVjdCBw Z192aXNpYmlsaXR5X21hcCgndGVzdF92aWV3Jyk7Ci1FUlJPUjogICJ0ZXN0X3ZpZXciIGlz IG5vdCBhIHRhYmxlLCBtYXRlcmlhbGl6ZWQgdmlldywgb3IgVE9BU1QgdGFibGUKK0VSUk9S OiAgcmVsYXRpb24gInRlc3RfdmlldyIgZG9lcyBub3QgaGF2ZSBhIHZpc2liaWxpdHkgbWFw CitERVRBSUw6ICAidGVzdF92aWV3IiBpcyBhIHZpZXcuCiBzZWxlY3QgcGdfdmlzaWJpbGl0 eV9tYXBfc3VtbWFyeSgndGVzdF92aWV3Jyk7Ci1FUlJPUjogICJ0ZXN0X3ZpZXciIGlzIG5v dCBhIHRhYmxlLCBtYXRlcmlhbGl6ZWQgdmlldywgb3IgVE9BU1QgdGFibGUKK0VSUk9SOiAg cmVsYXRpb24gInRlc3RfdmlldyIgZG9lcyBub3QgaGF2ZSBhIHZpc2liaWxpdHkgbWFwCitE RVRBSUw6ICAidGVzdF92aWV3IiBpcyBhIHZpZXcuCiBzZWxlY3QgcGdfY2hlY2tfZnJvemVu KCd0ZXN0X3ZpZXcnKTsKLUVSUk9SOiAgInRlc3RfdmlldyIgaXMgbm90IGEgdGFibGUsIG1h dGVyaWFsaXplZCB2aWV3LCBvciBUT0FTVCB0YWJsZQorRVJST1I6ICByZWxhdGlvbiAidGVz dF92aWV3IiBkb2VzIG5vdCBoYXZlIGEgdmlzaWJpbGl0eSBtYXAKK0RFVEFJTDogICJ0ZXN0 X3ZpZXciIGlzIGEgdmlldy4KIHNlbGVjdCBwZ190cnVuY2F0ZV92aXNpYmlsaXR5X21hcCgn dGVzdF92aWV3Jyk7Ci1FUlJPUjogICJ0ZXN0X3ZpZXciIGlzIG5vdCBhIHRhYmxlLCBtYXRl cmlhbGl6ZWQgdmlldywgb3IgVE9BU1QgdGFibGUKK0VSUk9SOiAgcmVsYXRpb24gInRlc3Rf dmlldyIgZG9lcyBub3QgaGF2ZSBhIHZpc2liaWxpdHkgbWFwCitERVRBSUw6ICAidGVzdF92 aWV3IiBpcyBhIHZpZXcuCiBjcmVhdGUgc2VxdWVuY2UgdGVzdF9zZXF1ZW5jZTsKIC0tIHNl cXVlbmNlcyBkbyBub3QgaGF2ZSBWTXMsIHNvIHRoZXNlIGFsbCBmYWlsCiBzZWxlY3QgcGdf dmlzaWJpbGl0eSgndGVzdF9zZXF1ZW5jZScsIDApOwotRVJST1I6ICAidGVzdF9zZXF1ZW5j ZSIgaXMgbm90IGEgdGFibGUsIG1hdGVyaWFsaXplZCB2aWV3LCBvciBUT0FTVCB0YWJsZQor RVJST1I6ICByZWxhdGlvbiAidGVzdF9zZXF1ZW5jZSIgZG9lcyBub3QgaGF2ZSBhIHZpc2li aWxpdHkgbWFwCitERVRBSUw6ICAidGVzdF9zZXF1ZW5jZSIgaXMgYSBzZXF1ZW5jZS4KIHNl bGVjdCBwZ192aXNpYmlsaXR5X21hcCgndGVzdF9zZXF1ZW5jZScpOwotRVJST1I6ICAidGVz dF9zZXF1ZW5jZSIgaXMgbm90IGEgdGFibGUsIG1hdGVyaWFsaXplZCB2aWV3LCBvciBUT0FT VCB0YWJsZQorRVJST1I6ICByZWxhdGlvbiAidGVzdF9zZXF1ZW5jZSIgZG9lcyBub3QgaGF2 ZSBhIHZpc2liaWxpdHkgbWFwCitERVRBSUw6ICAidGVzdF9zZXF1ZW5jZSIgaXMgYSBzZXF1 ZW5jZS4KIHNlbGVjdCBwZ192aXNpYmlsaXR5X21hcF9zdW1tYXJ5KCd0ZXN0X3NlcXVlbmNl Jyk7Ci1FUlJPUjogICJ0ZXN0X3NlcXVlbmNlIiBpcyBub3QgYSB0YWJsZSwgbWF0ZXJpYWxp emVkIHZpZXcsIG9yIFRPQVNUIHRhYmxlCitFUlJPUjogIHJlbGF0aW9uICJ0ZXN0X3NlcXVl bmNlIiBkb2VzIG5vdCBoYXZlIGEgdmlzaWJpbGl0eSBtYXAKK0RFVEFJTDogICJ0ZXN0X3Nl cXVlbmNlIiBpcyBhIHNlcXVlbmNlLgogc2VsZWN0IHBnX2NoZWNrX2Zyb3plbigndGVzdF9z ZXF1ZW5jZScpOwotRVJST1I6ICAidGVzdF9zZXF1ZW5jZSIgaXMgbm90IGEgdGFibGUsIG1h dGVyaWFsaXplZCB2aWV3LCBvciBUT0FTVCB0YWJsZQorRVJST1I6ICByZWxhdGlvbiAidGVz dF9zZXF1ZW5jZSIgZG9lcyBub3QgaGF2ZSBhIHZpc2liaWxpdHkgbWFwCitERVRBSUw6ICAi dGVzdF9zZXF1ZW5jZSIgaXMgYSBzZXF1ZW5jZS4KIHNlbGVjdCBwZ190cnVuY2F0ZV92aXNp YmlsaXR5X21hcCgndGVzdF9zZXF1ZW5jZScpOwotRVJST1I6ICAidGVzdF9zZXF1ZW5jZSIg aXMgbm90IGEgdGFibGUsIG1hdGVyaWFsaXplZCB2aWV3LCBvciBUT0FTVCB0YWJsZQorRVJS T1I6ICByZWxhdGlvbiAidGVzdF9zZXF1ZW5jZSIgZG9lcyBub3QgaGF2ZSBhIHZpc2liaWxp dHkgbWFwCitERVRBSUw6ICAidGVzdF9zZXF1ZW5jZSIgaXMgYSBzZXF1ZW5jZS4KIGNyZWF0 ZSBmb3JlaWduIGRhdGEgd3JhcHBlciBkdW1teTsKIGNyZWF0ZSBzZXJ2ZXIgZHVtbXlfc2Vy dmVyIGZvcmVpZ24gZGF0YSB3cmFwcGVyIGR1bW15OwogY3JlYXRlIGZvcmVpZ24gdGFibGUg dGVzdF9mb3JlaWduX3RhYmxlICgpIHNlcnZlciBkdW1teV9zZXJ2ZXI7CiAtLSBmb3JlaWdu IHRhYmxlcyBkbyBub3QgaGF2ZSBWTXMsIHNvIHRoZXNlIGFsbCBmYWlsCiBzZWxlY3QgcGdf dmlzaWJpbGl0eSgndGVzdF9mb3JlaWduX3RhYmxlJywgMCk7Ci1FUlJPUjogICJ0ZXN0X2Zv cmVpZ25fdGFibGUiIGlzIG5vdCBhIHRhYmxlLCBtYXRlcmlhbGl6ZWQgdmlldywgb3IgVE9B U1QgdGFibGUKK0VSUk9SOiAgcmVsYXRpb24gInRlc3RfZm9yZWlnbl90YWJsZSIgZG9lcyBu b3QgaGF2ZSBhIHZpc2liaWxpdHkgbWFwCitERVRBSUw6ICAidGVzdF9mb3JlaWduX3RhYmxl IiBpcyBhIGZvcmVpZ24gdGFibGUuCiBzZWxlY3QgcGdfdmlzaWJpbGl0eV9tYXAoJ3Rlc3Rf Zm9yZWlnbl90YWJsZScpOwotRVJST1I6ICAidGVzdF9mb3JlaWduX3RhYmxlIiBpcyBub3Qg YSB0YWJsZSwgbWF0ZXJpYWxpemVkIHZpZXcsIG9yIFRPQVNUIHRhYmxlCitFUlJPUjogIHJl bGF0aW9uICJ0ZXN0X2ZvcmVpZ25fdGFibGUiIGRvZXMgbm90IGhhdmUgYSB2aXNpYmlsaXR5 IG1hcAorREVUQUlMOiAgInRlc3RfZm9yZWlnbl90YWJsZSIgaXMgYSBmb3JlaWduIHRhYmxl Lgogc2VsZWN0IHBnX3Zpc2liaWxpdHlfbWFwX3N1bW1hcnkoJ3Rlc3RfZm9yZWlnbl90YWJs ZScpOwotRVJST1I6ICAidGVzdF9mb3JlaWduX3RhYmxlIiBpcyBub3QgYSB0YWJsZSwgbWF0 ZXJpYWxpemVkIHZpZXcsIG9yIFRPQVNUIHRhYmxlCitFUlJPUjogIHJlbGF0aW9uICJ0ZXN0 X2ZvcmVpZ25fdGFibGUiIGRvZXMgbm90IGhhdmUgYSB2aXNpYmlsaXR5IG1hcAorREVUQUlM OiAgInRlc3RfZm9yZWlnbl90YWJsZSIgaXMgYSBmb3JlaWduIHRhYmxlLgogc2VsZWN0IHBn X2NoZWNrX2Zyb3plbigndGVzdF9mb3JlaWduX3RhYmxlJyk7Ci1FUlJPUjogICJ0ZXN0X2Zv cmVpZ25fdGFibGUiIGlzIG5vdCBhIHRhYmxlLCBtYXRlcmlhbGl6ZWQgdmlldywgb3IgVE9B U1QgdGFibGUKK0VSUk9SOiAgcmVsYXRpb24gInRlc3RfZm9yZWlnbl90YWJsZSIgZG9lcyBu b3QgaGF2ZSBhIHZpc2liaWxpdHkgbWFwCitERVRBSUw6ICAidGVzdF9mb3JlaWduX3RhYmxl IiBpcyBhIGZvcmVpZ24gdGFibGUuCiBzZWxlY3QgcGdfdHJ1bmNhdGVfdmlzaWJpbGl0eV9t YXAoJ3Rlc3RfZm9yZWlnbl90YWJsZScpOwotRVJST1I6ICAidGVzdF9mb3JlaWduX3RhYmxl IiBpcyBub3QgYSB0YWJsZSwgbWF0ZXJpYWxpemVkIHZpZXcsIG9yIFRPQVNUIHRhYmxlCitF UlJPUjogIHJlbGF0aW9uICJ0ZXN0X2ZvcmVpZ25fdGFibGUiIGRvZXMgbm90IGhhdmUgYSB2 aXNpYmlsaXR5IG1hcAorREVUQUlMOiAgInRlc3RfZm9yZWlnbl90YWJsZSIgaXMgYSBmb3Jl aWduIHRhYmxlLgogLS0gY2hlY2sgc29tZSBvZiB0aGUgYWxsb3dlZCByZWxraW5kcwogY3Jl YXRlIHRhYmxlIHJlZ3VsYXJfdGFibGUgKGEgaW50KTsKIGluc2VydCBpbnRvIHJlZ3VsYXJf dGFibGUgdmFsdWVzICgxKSwgKDIpOwpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ192aXNpYmls aXR5L3BnX3Zpc2liaWxpdHkuYyBiL2NvbnRyaWIvcGdfdmlzaWJpbGl0eS9wZ192aXNpYmls aXR5LmMKaW5kZXggMGNkMTE2MGNlYi4uMjA4NGJiODBmOCAxMDA2NDQKLS0tIGEvY29udHJp Yi9wZ192aXNpYmlsaXR5L3BnX3Zpc2liaWxpdHkuYworKysgYi9jb250cmliL3BnX3Zpc2li aWxpdHkvcGdfdmlzaWJpbGl0eS5jCkBAIC03ODMsNiArNzgzLDcgQEAgY2hlY2tfcmVsYXRp b25fcmVsa2luZChSZWxhdGlvbiByZWwpCiAJCXJlbC0+cmRfcmVsLT5yZWxraW5kICE9IFJF TEtJTkRfVE9BU1RWQUxVRSkKIAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJD T0RFX1dST05HX09CSkVDVF9UWVBFKSwKLQkJCQkgZXJybXNnKCJcIiVzXCIgaXMgbm90IGEg dGFibGUsIG1hdGVyaWFsaXplZCB2aWV3LCBvciBUT0FTVCB0YWJsZSIsCi0JCQkJCQlSZWxh dGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOworCQkJCSBlcnJtc2coInJlbGF0aW9uIFwi JXNcIiBkb2VzIG5vdCBoYXZlIGEgdmlzaWJpbGl0eSBtYXAiLAorCQkJCQkJUmVsYXRpb25H ZXRSZWxhdGlvbk5hbWUocmVsKSksCisJCQkJIGVycmRldGFpbF9yZWxraW5kKFJlbGF0aW9u R2V0UmVsYXRpb25OYW1lKHJlbCksIHJlbC0+cmRfcmVsLT5yZWxraW5kKSkpOwogfQpkaWZm IC0tZ2l0IGEvY29udHJpYi9wZ3N0YXR0dXBsZS9leHBlY3RlZC9wZ3N0YXR0dXBsZS5vdXQg Yi9jb250cmliL3Bnc3RhdHR1cGxlL2V4cGVjdGVkL3Bnc3RhdHR1cGxlLm91dAppbmRleCA5 OTIwZGJmZDQwLi5iNjZjY2NlYzI4IDEwMDY0NAotLS0gYS9jb250cmliL3Bnc3RhdHR1cGxl L2V4cGVjdGVkL3Bnc3RhdHR1cGxlLm91dAorKysgYi9jb250cmliL3Bnc3RhdHR1cGxlL2V4 cGVjdGVkL3Bnc3RhdHR1cGxlLm91dApAQCAtMTU5LDkgKzE1OSwxMSBAQCBFUlJPUjogICJ0 ZXN0X3BhcnRpdGlvbmVkIiAocGFydGl0aW9uZWQgdGFibGUpIGlzIG5vdCBzdXBwb3J0ZWQK IHNlbGVjdCBwZ3N0YXR0dXBsZSgndGVzdF9wYXJ0aXRpb25lZF9pbmRleCcpOwogRVJST1I6 ICAidGVzdF9wYXJ0aXRpb25lZF9pbmRleCIgKHBhcnRpdGlvbmVkIGluZGV4KSBpcyBub3Qg c3VwcG9ydGVkCiBzZWxlY3QgcGdzdGF0dHVwbGVfYXBwcm94KCd0ZXN0X3BhcnRpdGlvbmVk Jyk7Ci1FUlJPUjogICJ0ZXN0X3BhcnRpdGlvbmVkIiBpcyBub3QgYSB0YWJsZSBvciBtYXRl cmlhbGl6ZWQgdmlldworRVJST1I6ICByZWxhdGlvbiAidGVzdF9wYXJ0aXRpb25lZCIgaXMg b2YgdW5zdXBwb3J0ZWQga2luZAorREVUQUlMOiAgInRlc3RfcGFydGl0aW9uZWQiIGlzIGEg Zm9yZWlnbiB0YWJsZS4KIHNlbGVjdCBwZ19yZWxwYWdlcygndGVzdF9wYXJ0aXRpb25lZCcp OwotRVJST1I6ICAidGVzdF9wYXJ0aXRpb25lZCIgaXMgbm90IGEgdGFibGUsIGluZGV4LCBt YXRlcmlhbGl6ZWQgdmlldywgc2VxdWVuY2UsIG9yIFRPQVNUIHRhYmxlCitFUlJPUjogIHJl bGF0aW9uICJ0ZXN0X3BhcnRpdGlvbmVkIiBkb2VzIG5vdCBoYXZlIHN0b3JhZ2UKK0RFVEFJ TDogICJ0ZXN0X3BhcnRpdGlvbmVkIiBpcyBhIGZvcmVpZ24gdGFibGUuCiBzZWxlY3QgcGdz dGF0aW5kZXgoJ3Rlc3RfcGFydGl0aW9uZWQnKTsKIEVSUk9SOiAgcmVsYXRpb24gInRlc3Rf cGFydGl0aW9uZWQiIGlzIG5vdCBhIGJ0cmVlIGluZGV4CiBzZWxlY3QgcGdzdGF0Z2luaW5k ZXgoJ3Rlc3RfcGFydGl0aW9uZWQnKTsKQEAgLTE3Myw5ICsxNzUsMTEgQEAgY3JlYXRlIHZp ZXcgdGVzdF92aWV3IGFzIHNlbGVjdCAxOwogc2VsZWN0IHBnc3RhdHR1cGxlKCd0ZXN0X3Zp ZXcnKTsKIEVSUk9SOiAgInRlc3RfdmlldyIgKHZpZXcpIGlzIG5vdCBzdXBwb3J0ZWQKIHNl bGVjdCBwZ3N0YXR0dXBsZV9hcHByb3goJ3Rlc3RfdmlldycpOwotRVJST1I6ICAidGVzdF92 aWV3IiBpcyBub3QgYSB0YWJsZSBvciBtYXRlcmlhbGl6ZWQgdmlldworRVJST1I6ICByZWxh dGlvbiAidGVzdF92aWV3IiBpcyBvZiB1bnN1cHBvcnRlZCBraW5kCitERVRBSUw6ICAidGVz dF92aWV3IiBpcyBhIHZpZXcuCiBzZWxlY3QgcGdfcmVscGFnZXMoJ3Rlc3RfdmlldycpOwot RVJST1I6ICAidGVzdF92aWV3IiBpcyBub3QgYSB0YWJsZSwgaW5kZXgsIG1hdGVyaWFsaXpl ZCB2aWV3LCBzZXF1ZW5jZSwgb3IgVE9BU1QgdGFibGUKK0VSUk9SOiAgcmVsYXRpb24gInRl c3RfdmlldyIgZG9lcyBub3QgaGF2ZSBzdG9yYWdlCitERVRBSUw6ICAidGVzdF92aWV3IiBp cyBhIHZpZXcuCiBzZWxlY3QgcGdzdGF0aW5kZXgoJ3Rlc3RfdmlldycpOwogRVJST1I6ICBy ZWxhdGlvbiAidGVzdF92aWV3IiBpcyBub3QgYSBidHJlZSBpbmRleAogc2VsZWN0IHBnc3Rh dGdpbmluZGV4KCd0ZXN0X3ZpZXcnKTsKQEAgLTE4OSw5ICsxOTMsMTEgQEAgY3JlYXRlIGZv cmVpZ24gdGFibGUgdGVzdF9mb3JlaWduX3RhYmxlICgpIHNlcnZlciBkdW1teV9zZXJ2ZXI7 CiBzZWxlY3QgcGdzdGF0dHVwbGUoJ3Rlc3RfZm9yZWlnbl90YWJsZScpOwogRVJST1I6ICAi dGVzdF9mb3JlaWduX3RhYmxlIiAoZm9yZWlnbiB0YWJsZSkgaXMgbm90IHN1cHBvcnRlZAog c2VsZWN0IHBnc3RhdHR1cGxlX2FwcHJveCgndGVzdF9mb3JlaWduX3RhYmxlJyk7Ci1FUlJP UjogICJ0ZXN0X2ZvcmVpZ25fdGFibGUiIGlzIG5vdCBhIHRhYmxlIG9yIG1hdGVyaWFsaXpl ZCB2aWV3CitFUlJPUjogIHJlbGF0aW9uICJ0ZXN0X2ZvcmVpZ25fdGFibGUiIGlzIG9mIHVu c3VwcG9ydGVkIGtpbmQKK0RFVEFJTDogICJ0ZXN0X2ZvcmVpZ25fdGFibGUiIGlzIGEgZm9y ZWlnbiB0YWJsZS4KIHNlbGVjdCBwZ19yZWxwYWdlcygndGVzdF9mb3JlaWduX3RhYmxlJyk7 Ci1FUlJPUjogICJ0ZXN0X2ZvcmVpZ25fdGFibGUiIGlzIG5vdCBhIHRhYmxlLCBpbmRleCwg bWF0ZXJpYWxpemVkIHZpZXcsIHNlcXVlbmNlLCBvciBUT0FTVCB0YWJsZQorRVJST1I6ICBy ZWxhdGlvbiAidGVzdF9mb3JlaWduX3RhYmxlIiBkb2VzIG5vdCBoYXZlIHN0b3JhZ2UKK0RF VEFJTDogICJ0ZXN0X2ZvcmVpZ25fdGFibGUiIGlzIGEgZm9yZWlnbiB0YWJsZS4KIHNlbGVj dCBwZ3N0YXRpbmRleCgndGVzdF9mb3JlaWduX3RhYmxlJyk7CiBFUlJPUjogIHJlbGF0aW9u ICJ0ZXN0X2ZvcmVpZ25fdGFibGUiIGlzIG5vdCBhIGJ0cmVlIGluZGV4CiBzZWxlY3QgcGdz dGF0Z2luaW5kZXgoJ3Rlc3RfZm9yZWlnbl90YWJsZScpOwpkaWZmIC0tZ2l0IGEvY29udHJp Yi9wZ3N0YXR0dXBsZS9wZ3N0YXRhcHByb3guYyBiL2NvbnRyaWIvcGdzdGF0dHVwbGUvcGdz dGF0YXBwcm94LmMKaW5kZXggOTZkODM3NDg1Zi4uOWM1YTYyZDgzNCAxMDA2NDQKLS0tIGEv Y29udHJpYi9wZ3N0YXR0dXBsZS9wZ3N0YXRhcHByb3guYworKysgYi9jb250cmliL3Bnc3Rh dHR1cGxlL3Bnc3RhdGFwcHJveC5jCkBAIC0yODYsOCArMjg2LDkgQEAgcGdzdGF0dHVwbGVf YXBwcm94X2ludGVybmFsKE9pZCByZWxpZCwgRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8pCiAJ CSAgcmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9NQVRWSUVXKSkKIAkJZXJlcG9y dChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCks Ci0JCQkJIGVycm1zZygiXCIlc1wiIGlzIG5vdCBhIHRhYmxlIG9yIG1hdGVyaWFsaXplZCB2 aWV3IiwKLQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CisJCQkJIGVy cm1zZygicmVsYXRpb24gXCIlc1wiIGlzIG9mIHVuc3VwcG9ydGVkIGtpbmQiLAorCQkJCQkJ UmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSksCisJCQkJIGVycmRldGFpbF9yZWxraW5k KFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCksIHJlbC0+cmRfcmVsLT5yZWxraW5kKSkp OwogCiAJaWYgKHJlbC0+cmRfcmVsLT5yZWxhbSAhPSBIRUFQX1RBQkxFX0FNX09JRCkKIAkJ ZXJlcG9ydChFUlJPUiwgKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQp LApkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ3N0YXR0dXBsZS9wZ3N0YXRpbmRleC5jIGIvY29u dHJpYi9wZ3N0YXR0dXBsZS9wZ3N0YXRpbmRleC5jCmluZGV4IGIxY2UwZDc3ZDcuLjEyNjY4 NjI0OTQgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdzdGF0dHVwbGUvcGdzdGF0aW5kZXguYwor KysgYi9jb250cmliL3Bnc3RhdHR1cGxlL3Bnc3RhdGluZGV4LmMKQEAgLTc1OCwxMyArNzU4 LDEwIEBAIEdldEhhc2hQYWdlU3RhdHMoUGFnZSBwYWdlLCBIYXNoSW5kZXhTdGF0ICpzdGF0 cykKIHN0YXRpYyB2b2lkCiBjaGVja19yZWxhdGlvbl9yZWxraW5kKFJlbGF0aW9uIHJlbCkK IHsKLQlpZiAocmVsLT5yZF9yZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9SRUxBVElPTiAmJgot CQlyZWwtPnJkX3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX0lOREVYICYmCi0JCXJlbC0+cmRf cmVsLT5yZWxraW5kICE9IFJFTEtJTkRfTUFUVklFVyAmJgotCQlyZWwtPnJkX3JlbC0+cmVs a2luZCAhPSBSRUxLSU5EX1NFUVVFTkNFICYmCi0JCXJlbC0+cmRfcmVsLT5yZWxraW5kICE9 IFJFTEtJTkRfVE9BU1RWQUxVRSkKKwlpZiAoIVJFTEtJTkRfSEFTX1NUT1JBR0UocmVsLT5y ZF9yZWwtPnJlbGtpbmQpKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNP REVfV1JPTkdfT0JKRUNUX1RZUEUpLAotCQkJCSBlcnJtc2coIlwiJXNcIiBpcyBub3QgYSB0 YWJsZSwgaW5kZXgsIG1hdGVyaWFsaXplZCB2aWV3LCBzZXF1ZW5jZSwgb3IgVE9BU1QgdGFi bGUiLAotCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKKwkJCQkgZXJy bXNnKCJyZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgaGF2ZSBzdG9yYWdlIiwKKwkJCQkJCVJl bGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpLAorCQkJCSBlcnJkZXRhaWxfcmVsa2luZChS ZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpLCByZWwtPnJkX3JlbC0+cmVsa2luZCkpKTsK IH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL01ha2VmaWxlCmluZGV4IDk0OTliYjMzZTUuLmNkNTAwZmYyYzYgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZpbGUKKysrIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9NYWtlZmlsZQpAQCAtMjYsNiArMjYsNyBAQCBPQkpTID0gXAogCXBhcnRp dGlvbi5vIFwKIAlwZ19hZ2dyZWdhdGUubyBcCiAJcGdfY2FzdC5vIFwKKwlwZ19jbGFzcy5v IFwKIAlwZ19jb2xsYXRpb24ubyBcCiAJcGdfY29uc3RyYWludC5vIFwKIAlwZ19jb252ZXJz aW9uLm8gXApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9oZWFwLmMgYi9zcmMv YmFja2VuZC9jYXRhbG9nL2hlYXAuYwppbmRleCA2MzJjMDU4YjgwLi5hOGViZWE3ZTYzIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2hlYXAuYworKysgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL2hlYXAuYwpAQCAtMTk0MywxMyArMTk0Myw4IEBAIGhlYXBfZHJvcF93aXRo X2NhdGFsb2coT2lkIHJlbGlkKQogCS8qCiAJICogU2NoZWR1bGUgdW5saW5raW5nIG9mIHRo ZSByZWxhdGlvbidzIHBoeXNpY2FsIGZpbGVzIGF0IGNvbW1pdC4KIAkgKi8KLQlpZiAocmVs LT5yZF9yZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9WSUVXICYmCi0JCXJlbC0+cmRfcmVsLT5y ZWxraW5kICE9IFJFTEtJTkRfQ09NUE9TSVRFX1RZUEUgJiYKLQkJcmVsLT5yZF9yZWwtPnJl bGtpbmQgIT0gUkVMS0lORF9GT1JFSUdOX1RBQkxFICYmCi0JCXJlbC0+cmRfcmVsLT5yZWxr aW5kICE9IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCi0JeworCWlmIChSRUxLSU5EX0hB U19TVE9SQUdFKHJlbC0+cmRfcmVsLT5yZWxraW5kKSkKIAkJUmVsYXRpb25Ecm9wU3RvcmFn ZShyZWwpOwotCX0KIAogCS8qCiAJICogQ2xvc2UgcmVsY2FjaGUgZW50cnksIGJ1dCAqa2Vl cCogQWNjZXNzRXhjbHVzaXZlTG9jayBvbiB0aGUgcmVsYXRpb24KZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvcGdfY2xhc3MuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdf Y2xhc3MuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi42MmZiNWZk MThmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jbGFzcy5j CkBAIC0wLDAgKzEsNTEgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHBnX2Ns YXNzLmMKKyAqCSAgcm91dGluZXMgdG8gc3VwcG9ydCBtYW5pcHVsYXRpb24gb2YgdGhlIHBn X2NsYXNzIHJlbGF0aW9uCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIw MjAsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBD b3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZv cm5pYQorICoKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFja2VuZC9jYXRh bG9nL3BnX2NsYXNzLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworI2luY2x1 ZGUgInBvc3RncmVzLmgiCisKKyNpbmNsdWRlICJjYXRhbG9nL3BnX2NsYXNzLmgiCisKKy8q CisgKiBJc3N1ZSBhbiBlcnJkZXRhaWwoKSBpbmZvcm1pbmcgd2hhdCByZWxraW5kIHRoZSBn aXZlbiByZWxuYW1lIGlzLgorICovCitpbnQKK2VycmRldGFpbF9yZWxraW5kKGNvbnN0IGNo YXIgKnJlbG5hbWUsIGNoYXIgcmVsa2luZCkKK3sKKwlzd2l0Y2ggKHJlbGtpbmQpCisJewor CQljYXNlIFJFTEtJTkRfUkVMQVRJT046CisJCQlyZXR1cm4gZXJyZGV0YWlsKCJcIiVzXCIg aXMgYSB0YWJsZS4iLCByZWxuYW1lKTsKKwkJY2FzZSBSRUxLSU5EX0lOREVYOgorCQkJcmV0 dXJuIGVycmRldGFpbCgiXCIlc1wiIGlzIGFuIGluZGV4LiIsIHJlbG5hbWUpOworCQljYXNl IFJFTEtJTkRfU0VRVUVOQ0U6CisJCQlyZXR1cm4gZXJyZGV0YWlsKCJcIiVzXCIgaXMgYSBz ZXF1ZW5jZS4iLCByZWxuYW1lKTsKKwkJY2FzZSBSRUxLSU5EX1RPQVNUVkFMVUU6CisJCQly ZXR1cm4gZXJyZGV0YWlsKCJcIiVzXCIgaXMgYSBUT0FTVCB0YWJsZS4iLCByZWxuYW1lKTsK KwkJY2FzZSBSRUxLSU5EX1ZJRVc6CisJCQlyZXR1cm4gZXJyZGV0YWlsKCJcIiVzXCIgaXMg YSB2aWV3LiIsIHJlbG5hbWUpOworCQljYXNlIFJFTEtJTkRfTUFUVklFVzoKKwkJCXJldHVy biBlcnJkZXRhaWwoIlwiJXNcIiBpcyBhIG1hdGVyaWFsaXplZCB2aWV3LiIsIHJlbG5hbWUp OworCQljYXNlIFJFTEtJTkRfQ09NUE9TSVRFX1RZUEU6CisJCQlyZXR1cm4gZXJyZGV0YWls KCJcIiVzXCIgaXMgYSBjb21wb3NpdGUgdHlwZS4iLCByZWxuYW1lKTsKKwkJY2FzZSBSRUxL SU5EX0ZPUkVJR05fVEFCTEU6CisJCQlyZXR1cm4gZXJyZGV0YWlsKCJcIiVzXCIgaXMgYSBm b3JlaWduIHRhYmxlLiIsIHJlbG5hbWUpOworCQljYXNlIFJFTEtJTkRfUEFSVElUSU9ORURf VEFCTEU6CisJCQlyZXR1cm4gZXJyZGV0YWlsKCJcIiVzXCIgaXMgYSBmb3JlaWduIHRhYmxl LiIsIHJlbG5hbWUpOworCQljYXNlIFJFTEtJTkRfUEFSVElUSU9ORURfSU5ERVg6CisJCQly ZXR1cm4gZXJyZGV0YWlsKCJcIiVzXCIgaXMgYSBwYXJ0aXRpb25lZCBpbmRleC4iLCByZWxu YW1lKTsKKwkJZGVmYXVsdDoKKwkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgcmVsa2lu ZDogJyVjJyIsIHJlbGtpbmQpOworCQkJcmV0dXJuIDA7CisJfQorfQpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY2F0YWxvZy90b2FzdGluZy5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy90 b2FzdGluZy5jCmluZGV4IDNmN2FiOGQzODkuLmU4ZTE3ZWFlOTUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvdG9hc3RpbmcuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9n L3RvYXN0aW5nLmMKQEAgLTEwMSwxMCArMTAxLDggQEAgQm9vdHN0cmFwVG9hc3RUYWJsZShj aGFyICpyZWxOYW1lLCBPaWQgdG9hc3RPaWQsIE9pZCB0b2FzdEluZGV4T2lkKQogCiAJaWYg KHJlbC0+cmRfcmVsLT5yZWxraW5kICE9IFJFTEtJTkRfUkVMQVRJT04gJiYKIAkJcmVsLT5y ZF9yZWwtPnJlbGtpbmQgIT0gUkVMS0lORF9NQVRWSUVXKQotCQllcmVwb3J0KEVSUk9SLAot CQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAotCQkJCSBlcnJtc2co IlwiJXNcIiBpcyBub3QgYSB0YWJsZSBvciBtYXRlcmlhbGl6ZWQgdmlldyIsCi0JCQkJCQly ZWxOYW1lKSkpOworCQllbG9nKEVSUk9SLCAiXCIlc1wiIGlzIG5vdCBhIHRhYmxlIG9yIG1h dGVyaWFsaXplZCB2aWV3IiwKKwkJCSByZWxOYW1lKTsKIAogCS8qIGNyZWF0ZV90b2FzdF90 YWJsZSBkb2VzIGFsbCB0aGUgd29yayAqLwogCWlmICghY3JlYXRlX3RvYXN0X3RhYmxlKHJl bCwgdG9hc3RPaWQsIHRvYXN0SW5kZXhPaWQsIChEYXR1bSkgMCwKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2NvbW1lbnQuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Nv bW1lbnQuYwppbmRleCAwZmY5Y2E5ZjJjLi4yNTJiY2E3ZWFiIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9jb21tYW5kcy9jb21tZW50LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv Y29tbWVudC5jCkBAIC05OCw4ICs5OCw5IEBAIENvbW1lbnRPYmplY3QoQ29tbWVudFN0bXQg KnN0bXQpCiAJCQkJcmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX1BBUlRJ VElPTkVEX1RBQkxFKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJyY29kZShFUlJD T0RFX1dST05HX09CSkVDVF9UWVBFKSwKLQkJCQkJCSBlcnJtc2coIlwiJXNcIiBpcyBub3Qg YSB0YWJsZSwgdmlldywgbWF0ZXJpYWxpemVkIHZpZXcsIGNvbXBvc2l0ZSB0eXBlLCBvciBm b3JlaWduIHRhYmxlIiwKLQkJCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsYXRp b24pKSkpOworCQkJCQkJIGVycm1zZygicmVsYXRpb24gXCIlc1wiIGRvZXMgbm90IHN1cHBv cnQgY29tbWVudHMiLAorCQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWxhdGlv bikpLAorCQkJCQkJIGVycmRldGFpbF9yZWxraW5kKFJlbGF0aW9uR2V0UmVsYXRpb25OYW1l KHJlbGF0aW9uKSwgcmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCkpKTsKIAkJCWJyZWFrOwog CQlkZWZhdWx0OgogCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5k cy9pbmRleGNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jCmluZGV4 IDJiYWNhMTJjNWYuLmIzNGE4ZjE4NmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2luZGV4Y21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5j CkBAIC02MjIsMjIgKzYyMiwxMiBAQCBEZWZpbmVJbmRleChPaWQgcmVsYXRpb25JZCwKIAkJ Y2FzZSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFOgogCQkJLyogT0sgKi8KIAkJCWJyZWFr OwotCQljYXNlIFJFTEtJTkRfRk9SRUlHTl9UQUJMRToKLQotCQkJLyoKLQkJCSAqIEN1c3Rv bSBlcnJvciBtZXNzYWdlIGZvciBGT1JFSUdOIFRBQkxFIHNpbmNlIHRoZSB0ZXJtIGlzIGNs b3NlCi0JCQkgKiB0byBhIHJlZ3VsYXIgdGFibGUgYW5kIGNhbiBjb25mdXNlIHRoZSB1c2Vy LgotCQkJICovCi0JCQllcmVwb3J0KEVSUk9SLAotCQkJCQkoZXJyY29kZShFUlJDT0RFX1dS T05HX09CSkVDVF9UWVBFKSwKLQkJCQkJIGVycm1zZygiY2Fubm90IGNyZWF0ZSBpbmRleCBv biBmb3JlaWduIHRhYmxlIFwiJXNcIiIsCi0JCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5h bWUocmVsKSkpKTsKLQkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZXJlcG9ydChFUlJPUiwK IAkJCQkJKGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCi0JCQkJCSBlcnJt c2coIlwiJXNcIiBpcyBub3QgYSB0YWJsZSBvciBtYXRlcmlhbGl6ZWQgdmlldyIsCi0JCQkJ CQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsKKwkJCQkJIGVycm1zZygiY2Fu bm90IGNyZWF0ZSBpbmRleCBvbiByZWxhdGlvbiBcIiVzXCIiLAorCQkJCQkJCVJlbGF0aW9u R2V0UmVsYXRpb25OYW1lKHJlbCkpLAorCQkJCQkgZXJyZGV0YWlsX3JlbGtpbmQoUmVsYXRp b25HZXRSZWxhdGlvbk5hbWUocmVsKSwgcmVsLT5yZF9yZWwtPnJlbGtpbmQpKSk7CiAJCQli cmVhazsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2xvY2tjbWRz LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9sb2NrY21kcy5jCmluZGV4IGQ4Y2FmYzQyYmIu LmExYmMzNWQ5ODcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2xvY2tjbWRz LmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvbG9ja2NtZHMuYwpAQCAtODgsOCArODgs OSBAQCBSYW5nZVZhckNhbGxiYWNrRm9yTG9ja1RhYmxlKGNvbnN0IFJhbmdlVmFyICpydiwg T2lkIHJlbGlkLCBPaWQgb2xkcmVsaWQsCiAJCXJlbGtpbmQgIT0gUkVMS0lORF9WSUVXKQog CQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZ UEUpLAotCQkJCSBlcnJtc2coIlwiJXNcIiBpcyBub3QgYSB0YWJsZSBvciB2aWV3IiwKLQkJ CQkJCXJ2LT5yZWxuYW1lKSkpOworCQkJCSBlcnJtc2coImNhbm5vdCBsb2NrIHJlbGF0aW9u IFwiJXNcIiIsCisJCQkJCQlydi0+cmVsbmFtZSksCisJCQkJIGVycmRldGFpbF9yZWxraW5k KHJ2LT5yZWxuYW1lLCByZWxraW5kKSkpOwogCiAJLyoKIAkgKiBNYWtlIG5vdGUgaWYgYSB0 ZW1wb3JhcnkgcmVsYXRpb24gaGFzIGJlZW4gYWNjZXNzZWQgaW4gdGhpcwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3NlY2xhYmVsLmMKaW5kZXggYjQ5N2MwNmYxYS4uZTc5NmZmMmU5MSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9zZWNsYWJlbC5jCkBAIC0xMTQsOCArMTE0LDkgQEAgRXhlY1NlY0xhYmVsU3Rt dChTZWNMYWJlbFN0bXQgKnN0bXQpCiAJCQkJcmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCAh PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJ CQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKLQkJCQkJCSBlcnJtc2co IlwiJXNcIiBpcyBub3QgYSB0YWJsZSwgdmlldywgbWF0ZXJpYWxpemVkIHZpZXcsIGNvbXBv c2l0ZSB0eXBlLCBvciBmb3JlaWduIHRhYmxlIiwKLQkJCQkJCQkJUmVsYXRpb25HZXRSZWxh dGlvbk5hbWUocmVsYXRpb24pKSkpOworCQkJCQkJIGVycm1zZygiY2Fubm90IHNldCBzZWN1 cml0eSBsYWJlbCBvbiByZWxhdGlvbiBcIiVzXCIiLAorCQkJCQkJCQlSZWxhdGlvbkdldFJl bGF0aW9uTmFtZShyZWxhdGlvbikpLAorCQkJCQkJIGVycmRldGFpbF9yZWxraW5kKFJlbGF0 aW9uR2V0UmVsYXRpb25OYW1lKHJlbGF0aW9uKSwgcmVsYXRpb24tPnJkX3JlbC0+cmVsa2lu ZCkpKTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy9zZXF1ZW5jZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2VxdWVuY2UuYwppbmRleCA2YWFiNzNiZmQ0Li44ZWNlNjRiM2E2IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9jb21tYW5kcy9zZXF1ZW5jZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3NlcXVlbmNlLmMKQEAgLTE2ODEsOCArMTY4MSw5IEBAIHByb2Nlc3Nfb3duZWRfYnko UmVsYXRpb24gc2VxcmVsLCBMaXN0ICpvd25lZF9ieSwgYm9vbCBmb3JfaWRlbnRpdHkpCiAJ CQkgIHRhYmxlcmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9U QUJMRSkpCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1dST05H X09CSkVDVF9UWVBFKSwKLQkJCQkJIGVycm1zZygicmVmZXJlbmNlZCByZWxhdGlvbiBcIiVz XCIgaXMgbm90IGEgdGFibGUgb3IgZm9yZWlnbiB0YWJsZSIsCi0JCQkJCQkJUmVsYXRpb25H ZXRSZWxhdGlvbk5hbWUodGFibGVyZWwpKSkpOworCQkJCQkgZXJybXNnKCJyZWZlcmVuY2Vk IHJlbGF0aW9uIFwiJXNcIiBtdXN0IGJlIGEgdGFibGUgb3IgZm9yZWlnbiB0YWJsZSIsCisJ CQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUodGFibGVyZWwpKSwKKwkJCQkJIGVycmRl dGFpbF9yZWxraW5kKFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHRhYmxlcmVsKSwgdGFibGVy ZWwtPnJkX3JlbC0+cmVsa2luZCkpKTsKIAogCQkvKiBXZSBpbnNpc3Qgb24gc2FtZSBvd25l ciBhbmQgc2NoZW1hICovCiAJCWlmIChzZXFyZWwtPnJkX3JlbC0+cmVsb3duZXIgIT0gdGFi bGVyZWwtPnJkX3JlbC0+cmVsb3duZXIpCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21t YW5kcy9zdGF0c2NtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N0YXRzY21kcy5jCmlu ZGV4IDk4OGNkYmE2ZjUuLjZmODlmOWQwYzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3N0YXRzY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3N0YXRzY21k cy5jCkBAIC0xMjgsOCArMTI4LDkgQEAgQ3JlYXRlU3RhdGlzdGljcyhDcmVhdGVTdGF0c1N0 bXQgKnN0bXQpCiAJCQlyZWwtPnJkX3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX1BBUlRJVElP TkVEX1RBQkxFKQogCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9X Uk9OR19PQkpFQ1RfVFlQRSksCi0JCQkJCSBlcnJtc2coInJlbGF0aW9uIFwiJXNcIiBpcyBu b3QgYSB0YWJsZSwgZm9yZWlnbiB0YWJsZSwgb3IgbWF0ZXJpYWxpemVkIHZpZXciLAotCQkJ CQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CisJCQkJCSBlcnJtc2coImNh bm5vdCBkZWZpbmUgc3RhdGlzdGljcyBmb3IgcmVsYXRpb24gXCIlc1wiIiwKKwkJCQkJCQlS ZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSwKKwkJCQkJIGVycmRldGFpbF9yZWxraW5k KFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCksIHJlbC0+cmRfcmVsLT5yZWxraW5kKSkp OwogCiAJCS8qIFlvdSBtdXN0IG93biB0aGUgcmVsYXRpb24gdG8gY3JlYXRlIHN0YXRzIG9u IGl0ICovCiAJCWlmICghcGdfY2xhc3Nfb3duZXJjaGVjayhSZWxhdGlvbkdldFJlbGlkKHJl bCksIHN0eG93bmVyKSkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxl Y21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggMDM3ZDQ1 N2MzZC4uNjQ1MjEzNzczOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFi bGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTM2 OCw3ICszNjgsNiBAQCBzdGF0aWMgdm9pZCBBVFJld3JpdGVUYWJsZXMoQWx0ZXJUYWJsZVN0 bXQgKnBhcnNldHJlZSwKIHN0YXRpYyB2b2lkIEFUUmV3cml0ZVRhYmxlKEFsdGVyZWRUYWJs ZUluZm8gKnRhYiwgT2lkIE9JRE5ld0hlYXAsIExPQ0tNT0RFIGxvY2ttb2RlKTsKIHN0YXRp YyBBbHRlcmVkVGFibGVJbmZvICpBVEdldFF1ZXVlRW50cnkoTGlzdCAqKndxdWV1ZSwgUmVs YXRpb24gcmVsKTsKIHN0YXRpYyB2b2lkIEFUU2ltcGxlUGVybWlzc2lvbnMoUmVsYXRpb24g cmVsLCBpbnQgYWxsb3dlZF90YXJnZXRzKTsKLXN0YXRpYyB2b2lkIEFUV3JvbmdSZWxraW5k RXJyb3IoUmVsYXRpb24gcmVsLCBpbnQgYWxsb3dlZF90YXJnZXRzKTsKIHN0YXRpYyB2b2lk IEFUU2ltcGxlUmVjdXJzaW9uKExpc3QgKip3cXVldWUsIFJlbGF0aW9uIHJlbCwKIAkJCQkJ CQkgIEFsdGVyVGFibGVDbWQgKmNtZCwgYm9vbCByZWN1cnNlLCBMT0NLTU9ERSBsb2NrbW9k ZSwKIAkJCQkJCQkgIEFsdGVyVGFibGVVdGlsaXR5Q29udGV4dCAqY29udGV4dCk7CkBAIC0y OTUzLDggKzI5NTIsOSBAQCByZW5hbWVhdHRfY2hlY2soT2lkIG15cmVsaWQsIEZvcm1fcGdf Y2xhc3MgY2xhc3Nmb3JtLCBib29sIHJlY3Vyc2luZykKIAkJcmVsa2luZCAhPSBSRUxLSU5E X1BBUlRJVElPTkVEX1RBQkxFKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVS UkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAotCQkJCSBlcnJtc2coIlwiJXNcIiBpcyBub3Qg YSB0YWJsZSwgdmlldywgbWF0ZXJpYWxpemVkIHZpZXcsIGNvbXBvc2l0ZSB0eXBlLCBpbmRl eCwgb3IgZm9yZWlnbiB0YWJsZSIsCi0JCQkJCQlOYW1lU3RyKGNsYXNzZm9ybS0+cmVsbmFt ZSkpKSk7CisJCQkJIGVycm1zZygiY2Fubm90IHJlbmFtZSBjb2x1bW5zIG9mIHJlbGF0aW9u IFwiJXNcIiIsCisJCQkJCQlOYW1lU3RyKGNsYXNzZm9ybS0+cmVsbmFtZSkpLAorCQkJCSBl cnJkZXRhaWxfcmVsa2luZChOYW1lU3RyKGNsYXNzZm9ybS0+cmVsbmFtZSksIHJlbGtpbmQp KSk7CiAKIAkvKgogCSAqIHBlcm1pc3Npb25zIGNoZWNraW5nLiAgb25seSB0aGUgb3duZXIg b2YgYSBjbGFzcyBjYW4gY2hhbmdlIGl0cyBzY2hlbWEuCkBAIC01NDU3LDcgKzU0NTcsMTEg QEAgQVRTaW1wbGVQZXJtaXNzaW9ucyhSZWxhdGlvbiByZWwsIGludCBhbGxvd2VkX3Rhcmdl dHMpCiAKIAkvKiBXcm9uZyB0YXJnZXQgdHlwZT8gKi8KIAlpZiAoKGFjdHVhbF90YXJnZXQg JiBhbGxvd2VkX3RhcmdldHMpID09IDApCi0JCUFUV3JvbmdSZWxraW5kRXJyb3IocmVsLCBh bGxvd2VkX3RhcmdldHMpOworCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNP REVfV1JPTkdfT0JKRUNUX1RZUEUpLAorCQkJCSBlcnJtc2coImFjdGlvbiBjYW5ub3QgYmUg cGVyZm9ybWVkIG9uIHJlbGF0aW9uIFwiJXNcIiIsCisJCQkJCQlSZWxhdGlvbkdldFJlbGF0 aW9uTmFtZShyZWwpKSwKKwkJCQkgZXJyZGV0YWlsX3JlbGtpbmQoUmVsYXRpb25HZXRSZWxh dGlvbk5hbWUocmVsKSwgcmVsLT5yZF9yZWwtPnJlbGtpbmQpKSk7CiAKIAkvKiBQZXJtaXNz aW9ucyBjaGVja3MgKi8KIAlpZiAoIXBnX2NsYXNzX293bmVyY2hlY2soUmVsYXRpb25HZXRS ZWxpZChyZWwpLCBHZXRVc2VySWQoKSkpCkBAIC01NDcxLDY2ICs1NDc1LDYgQEAgQVRTaW1w bGVQZXJtaXNzaW9ucyhSZWxhdGlvbiByZWwsIGludCBhbGxvd2VkX3RhcmdldHMpCiAJCQkJ CQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOwogfQogCi0vKgotICogQVRXcm9u Z1JlbGtpbmRFcnJvcgotICoKLSAqIFRocm93IGFuIGVycm9yIHdoZW4gYSByZWxhdGlvbiBo YXMgYmVlbiBkZXRlcm1pbmVkIHRvIGJlIG9mIHRoZSB3cm9uZwotICogdHlwZS4KLSAqLwot c3RhdGljIHZvaWQKLUFUV3JvbmdSZWxraW5kRXJyb3IoUmVsYXRpb24gcmVsLCBpbnQgYWxs b3dlZF90YXJnZXRzKQotewotCWNoYXIJICAgKm1zZzsKLQotCXN3aXRjaCAoYWxsb3dlZF90 YXJnZXRzKQotCXsKLQkJY2FzZSBBVFRfVEFCTEU6Ci0JCQltc2cgPSBfKCJcIiVzXCIgaXMg bm90IGEgdGFibGUiKTsKLQkJCWJyZWFrOwotCQljYXNlIEFUVF9UQUJMRSB8IEFUVF9WSUVX OgotCQkJbXNnID0gXygiXCIlc1wiIGlzIG5vdCBhIHRhYmxlIG9yIHZpZXciKTsKLQkJCWJy ZWFrOwotCQljYXNlIEFUVF9UQUJMRSB8IEFUVF9WSUVXIHwgQVRUX0ZPUkVJR05fVEFCTEU6 Ci0JCQltc2cgPSBfKCJcIiVzXCIgaXMgbm90IGEgdGFibGUsIHZpZXcsIG9yIGZvcmVpZ24g dGFibGUiKTsKLQkJCWJyZWFrOwotCQljYXNlIEFUVF9UQUJMRSB8IEFUVF9WSUVXIHwgQVRU X01BVFZJRVcgfCBBVFRfSU5ERVg6Ci0JCQltc2cgPSBfKCJcIiVzXCIgaXMgbm90IGEgdGFi bGUsIHZpZXcsIG1hdGVyaWFsaXplZCB2aWV3LCBvciBpbmRleCIpOwotCQkJYnJlYWs7Ci0J CWNhc2UgQVRUX1RBQkxFIHwgQVRUX01BVFZJRVc6Ci0JCQltc2cgPSBfKCJcIiVzXCIgaXMg bm90IGEgdGFibGUgb3IgbWF0ZXJpYWxpemVkIHZpZXciKTsKLQkJCWJyZWFrOwotCQljYXNl IEFUVF9UQUJMRSB8IEFUVF9NQVRWSUVXIHwgQVRUX0lOREVYOgotCQkJbXNnID0gXygiXCIl c1wiIGlzIG5vdCBhIHRhYmxlLCBtYXRlcmlhbGl6ZWQgdmlldywgb3IgaW5kZXgiKTsKLQkJ CWJyZWFrOwotCQljYXNlIEFUVF9UQUJMRSB8IEFUVF9NQVRWSUVXIHwgQVRUX0ZPUkVJR05f VEFCTEU6Ci0JCQltc2cgPSBfKCJcIiVzXCIgaXMgbm90IGEgdGFibGUsIG1hdGVyaWFsaXpl ZCB2aWV3LCBvciBmb3JlaWduIHRhYmxlIik7Ci0JCQlicmVhazsKLQkJY2FzZSBBVFRfVEFC TEUgfCBBVFRfRk9SRUlHTl9UQUJMRToKLQkJCW1zZyA9IF8oIlwiJXNcIiBpcyBub3QgYSB0 YWJsZSBvciBmb3JlaWduIHRhYmxlIik7Ci0JCQlicmVhazsKLQkJY2FzZSBBVFRfVEFCTEUg fCBBVFRfQ09NUE9TSVRFX1RZUEUgfCBBVFRfRk9SRUlHTl9UQUJMRToKLQkJCW1zZyA9IF8o IlwiJXNcIiBpcyBub3QgYSB0YWJsZSwgY29tcG9zaXRlIHR5cGUsIG9yIGZvcmVpZ24gdGFi bGUiKTsKLQkJCWJyZWFrOwotCQljYXNlIEFUVF9UQUJMRSB8IEFUVF9NQVRWSUVXIHwgQVRU X0lOREVYIHwgQVRUX0ZPUkVJR05fVEFCTEU6Ci0JCQltc2cgPSBfKCJcIiVzXCIgaXMgbm90 IGEgdGFibGUsIG1hdGVyaWFsaXplZCB2aWV3LCBpbmRleCwgb3IgZm9yZWlnbiB0YWJsZSIp OwotCQkJYnJlYWs7Ci0JCWNhc2UgQVRUX1ZJRVc6Ci0JCQltc2cgPSBfKCJcIiVzXCIgaXMg bm90IGEgdmlldyIpOwotCQkJYnJlYWs7Ci0JCWNhc2UgQVRUX0ZPUkVJR05fVEFCTEU6Ci0J CQltc2cgPSBfKCJcIiVzXCIgaXMgbm90IGEgZm9yZWlnbiB0YWJsZSIpOwotCQkJYnJlYWs7 Ci0JCWRlZmF1bHQ6Ci0JCQkvKiBzaG91bGRuJ3QgZ2V0IGhlcmUsIGFkZCBhbGwgbmVjZXNz YXJ5IGNhc2VzIGFib3ZlICovCi0JCQltc2cgPSBfKCJcIiVzXCIgaXMgb2YgdGhlIHdyb25n IHR5cGUiKTsKLQkJCWJyZWFrOwotCX0KLQotCWVyZXBvcnQoRVJST1IsCi0JCQkoZXJyY29k ZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKLQkJCSBlcnJtc2cobXNnLCBSZWxhdGlv bkdldFJlbGF0aW9uTmFtZShyZWwpKSkpOwotfQotCiAvKgogICogQVRTaW1wbGVSZWN1cnNp b24KICAqCkBAIC0xMjM3Miw4ICsxMjMxNiw5IEBAIEFURXhlY0NoYW5nZU93bmVyKE9pZCBy ZWxhdGlvbk9pZCwgT2lkIG5ld093bmVySWQsIGJvb2wgcmVjdXJzaW5nLCBMT0NLTU9ERSBs b2NrCiAJCWRlZmF1bHQ6CiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJD T0RFX1dST05HX09CSkVDVF9UWVBFKSwKLQkJCQkJIGVycm1zZygiXCIlc1wiIGlzIG5vdCBh IHRhYmxlLCB2aWV3LCBzZXF1ZW5jZSwgb3IgZm9yZWlnbiB0YWJsZSIsCi0JCQkJCQkJTmFt ZVN0cih0dXBsZV9jbGFzcy0+cmVsbmFtZSkpKSk7CisJCQkJCSBlcnJtc2coImNhbm5vdCBj aGFuZ2Ugb3duZXIgb2YgcmVsYXRpb24gXCIlc1wiIiwKKwkJCQkJCQlOYW1lU3RyKHR1cGxl X2NsYXNzLT5yZWxuYW1lKSksCisJCQkJCSBlcnJkZXRhaWxfcmVsa2luZChOYW1lU3RyKHR1 cGxlX2NsYXNzLT5yZWxuYW1lKSwgdHVwbGVfY2xhc3MtPnJlbGtpbmQpKSk7CiAJfQogCiAJ LyoKQEAgLTEyNzg5LDggKzEyNzM0LDkgQEAgQVRFeGVjU2V0UmVsT3B0aW9ucyhSZWxhdGlv biByZWwsIExpc3QgKmRlZkxpc3QsIEFsdGVyVGFibGVUeXBlIG9wZXJhdGlvbiwKIAkJZGVm YXVsdDoKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdf T0JKRUNUX1RZUEUpLAotCQkJCQkgZXJybXNnKCJcIiVzXCIgaXMgbm90IGEgdGFibGUsIHZp ZXcsIG1hdGVyaWFsaXplZCB2aWV3LCBpbmRleCwgb3IgVE9BU1QgdGFibGUiLAotCQkJCQkJ CVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CisJCQkJCSBlcnJtc2coImNhbm5v dCBzZXQgcmVsYXRpb24gb3B0aW9ucyBvZiByZWxhdGlvbiBcIiVzXCIiLAorCQkJCQkJCVJl bGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpLAorCQkJCQkgZXJyZGV0YWlsX3JlbGtpbmQo UmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSwgcmVsLT5yZF9yZWwtPnJlbGtpbmQpKSk7 CiAJCQlicmVhazsKIAl9CiAKQEAgLTE1NTY1LDggKzE1NTExLDEwIEBAIFJhbmdlVmFyQ2Fs bGJhY2tGb3JBbHRlclJlbGF0aW9uKGNvbnN0IFJhbmdlVmFyICpydiwgT2lkIHJlbGlkLCBP aWQgb2xkcmVsaWQsCiAJCXJlbGtpbmQgIT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkK IAkJZXJlcG9ydChFUlJPUiwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9U WVBFKSwKLQkJCQkgZXJybXNnKCJcIiVzXCIgaXMgbm90IGEgdGFibGUsIHZpZXcsIG1hdGVy aWFsaXplZCB2aWV3LCBzZXF1ZW5jZSwgb3IgZm9yZWlnbiB0YWJsZSIsCi0JCQkJCQlydi0+ cmVsbmFtZSkpKTsKKwkJCQkgZXJybXNnKCJjYW5ub3QgY2hhbmdlIHNjaGVtYSBvZiByZWxh dGlvbiBcIiVzXCIiLAorCQkJCQkJcnYtPnJlbG5hbWUpLAorCQkJCSAocmVsa2luZCA9PSBS RUxLSU5EX0lOREVYIHx8IHJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9JTkRFWCA/ IGVycmhpbnQoIkNoYW5nZSB0aGUgc2NoZW1hIG9mIHRoZSB0YWJsZSBpbnN0ZWFkLiIpIDoK KwkJCQkgIChyZWxraW5kID09IFJFTEtJTkRfQ09NUE9TSVRFX1RZUEUgPyBlcnJoaW50KCJV c2UgQUxURVIgVFlQRSBpbnN0ZWFkLiIpIDogMCkpKSk7CiAKIAlSZWxlYXNlU3lzQ2FjaGUo dHVwbGUpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHJpZ2dlci5jCmluZGV4IGVkNTUxYWI3M2EuLmE0 Yzg4MWFlMjEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RyaWdnZXIuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90cmlnZ2VyLmMKQEAgLTI5Miw4ICsyOTIsOSBA QCBDcmVhdGVUcmlnZ2VyKENyZWF0ZVRyaWdTdG10ICpzdG10LCBjb25zdCBjaGFyICpxdWVy eVN0cmluZywKIAllbHNlCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9XUk9OR19PQkpFQ1RfVFlQRSksCi0JCQkJIGVycm1zZygiXCIlc1wiIGlzIG5vdCBhIHRh YmxlIG9yIHZpZXciLAotCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSkpKTsK KwkJCQkgZXJybXNnKCJjYW5ub3QgY3JlYXRlIHRyaWdnZXIgb24gcmVsYXRpb24gXCIlc1wi IiwKKwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpLAorCQkJCSBlcnJkZXRh aWxfcmVsa2luZChSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpLCByZWwtPnJkX3JlbC0+ cmVsa2luZCkpKTsKIAogCWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1S ZWxhdGlvbihyZWwpKQogCQllcmVwb3J0KEVSUk9SLApAQCAtMTE5Nyw4ICsxMTk4LDkgQEAg UmVtb3ZlVHJpZ2dlckJ5SWQoT2lkIHRyaWdPaWQpCiAJCXJlbC0+cmRfcmVsLT5yZWxraW5k ICE9IFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEUpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJ KGVycmNvZGUoRVJSQ09ERV9XUk9OR19PQkpFQ1RfVFlQRSksCi0JCQkJIGVycm1zZygiXCIl c1wiIGlzIG5vdCBhIHRhYmxlLCB2aWV3LCBvciBmb3JlaWduIHRhYmxlIiwKLQkJCQkJCVJl bGF0aW9uR2V0UmVsYXRpb25OYW1lKHJlbCkpKSk7CisJCQkJIGVycm1zZygicmVsYXRpb24g XCIlc1wiIGNhbm5vdCBoYXZlIHRyaWdnZXJzIiwKKwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRp b25OYW1lKHJlbCkpLAorCQkJCSBlcnJkZXRhaWxfcmVsa2luZChSZWxhdGlvbkdldFJlbGF0 aW9uTmFtZShyZWwpLCByZWwtPnJkX3JlbC0+cmVsa2luZCkpKTsKIAogCWlmICghYWxsb3dT eXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1SZWxhdGlvbihyZWwpKQogCQllcmVwb3J0KEVS Uk9SLApAQCAtMTMwMyw4ICsxMzA1LDkgQEAgUmFuZ2VWYXJDYWxsYmFja0ZvclJlbmFtZVRy aWdnZXIoY29uc3QgUmFuZ2VWYXIgKnJ2LCBPaWQgcmVsaWQsIE9pZCBvbGRyZWxpZCwKIAkJ Zm9ybS0+cmVsa2luZCAhPSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQogCQllcmVwb3J0 KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAotCQkJ CSBlcnJtc2coIlwiJXNcIiBpcyBub3QgYSB0YWJsZSwgdmlldywgb3IgZm9yZWlnbiB0YWJs ZSIsCi0JCQkJCQlydi0+cmVsbmFtZSkpKTsKKwkJCQkgZXJybXNnKCJyZWxhdGlvbiBcIiVz XCIgY2Fubm90IGhhdmUgdHJpZ2dlcnMiLAorCQkJCQkJcnYtPnJlbG5hbWUpLAorCQkJCSBl cnJkZXRhaWxfcmVsa2luZChydi0+cmVsbmFtZSwgZm9ybS0+cmVsa2luZCkpKTsKIAogCS8q IHlvdSBtdXN0IG93biB0aGUgdGFibGUgdG8gcmVuYW1lIG9uZSBvZiBpdHMgdHJpZ2dlcnMg Ki8KIAlpZiAoIXBnX2NsYXNzX293bmVyY2hlY2socmVsaWQsIEdldFVzZXJJZCgpKSkKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgYi9zcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCmluZGV4IDc1YzEyMmZlMzQuLjQ5NWJkYTc5 M2UgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwpAQCAtOTUyLDggKzk1Miw5 IEBAIHRyYW5zZm9ybVRhYmxlTGlrZUNsYXVzZShDcmVhdGVTdG10Q29udGV4dCAqY3h0LCBU YWJsZUxpa2VDbGF1c2UgKnRhYmxlX2xpa2VfY2xhCiAJCXJlbGF0aW9uLT5yZF9yZWwtPnJl bGtpbmQgIT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSkKIAkJZXJlcG9ydChFUlJPUiwK IAkJCQkoZXJyY29kZShFUlJDT0RFX1dST05HX09CSkVDVF9UWVBFKSwKLQkJCQkgZXJybXNn KCJcIiVzXCIgaXMgbm90IGEgdGFibGUsIHZpZXcsIG1hdGVyaWFsaXplZCB2aWV3LCBjb21w b3NpdGUgdHlwZSwgb3IgZm9yZWlnbiB0YWJsZSIsCi0JCQkJCQlSZWxhdGlvbkdldFJlbGF0 aW9uTmFtZShyZWxhdGlvbikpKSk7CisJCQkJIGVycm1zZygicmVsYXRpb24gXCIlc1wiIGlz IGludmFsaWQgaW4gTElLRSBjbGF1c2UiLAorCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5h bWUocmVsYXRpb24pKSwKKwkJCQkgZXJyZGV0YWlsX3JlbGtpbmQoUmVsYXRpb25HZXRSZWxh dGlvbk5hbWUocmVsYXRpb24pLCByZWxhdGlvbi0+cmRfcmVsLT5yZWxraW5kKSkpOwogCiAJ Y2FuY2VsX3BhcnNlcl9lcnJwb3NpdGlvbl9jYWxsYmFjaygmcGNic3RhdGUpOwogCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bnc3RhdC5jIGIvc3JjL2JhY2tlbmQv cG9zdG1hc3Rlci9wZ3N0YXQuYwppbmRleCA1MGVlYTJlOGE4Li40OTk3ZDc2NGU0IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wb3N0bWFzdGVyL3Bnc3RhdC5jCisrKyBiL3NyYy9iYWNr ZW5kL3Bvc3RtYXN0ZXIvcGdzdGF0LmMKQEAgLTE4MDEsMTEgKzE4MDEsNyBAQCBwZ3N0YXRf aW5pdHN0YXRzKFJlbGF0aW9uIHJlbCkKIAljaGFyCQlyZWxraW5kID0gcmVsLT5yZF9yZWwt PnJlbGtpbmQ7CiAKIAkvKiBXZSBvbmx5IGNvdW50IHN0YXRzIGZvciB0aGluZ3MgdGhhdCBo YXZlIHN0b3JhZ2UgKi8KLQlpZiAoIShyZWxraW5kID09IFJFTEtJTkRfUkVMQVRJT04gfHwK LQkJICByZWxraW5kID09IFJFTEtJTkRfTUFUVklFVyB8fAotCQkgIHJlbGtpbmQgPT0gUkVM S0lORF9JTkRFWCB8fAotCQkgIHJlbGtpbmQgPT0gUkVMS0lORF9UT0FTVFZBTFVFIHx8Ci0J CSAgcmVsa2luZCA9PSBSRUxLSU5EX1NFUVVFTkNFKSkKKwlpZiAoIVJFTEtJTkRfSEFTX1NU T1JBR0UocmVsa2luZCkpCiAJewogCQlyZWwtPnBnc3RhdF9pbmZvID0gTlVMTDsKIAkJcmV0 dXJuOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmV3cml0ZS9yZXdyaXRlRGVmaW5lLmMg Yi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVEZWZpbmUuYwppbmRleCBhZmM3OGIzMzE2 Li40MGViYWNiZDhjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVE ZWZpbmUuYworKysgYi9zcmMvYmFja2VuZC9yZXdyaXRlL3Jld3JpdGVEZWZpbmUuYwpAQCAt MjY4LDggKzI2OCw5IEBAIERlZmluZVF1ZXJ5UmV3cml0ZShjb25zdCBjaGFyICpydWxlbmFt ZSwKIAkJZXZlbnRfcmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCAhPSBSRUxLSU5EX1BBUlRJ VElPTkVEX1RBQkxFKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVf V1JPTkdfT0JKRUNUX1RZUEUpLAotCQkJCSBlcnJtc2coIlwiJXNcIiBpcyBub3QgYSB0YWJs ZSBvciB2aWV3IiwKLQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGV2ZW50X3JlbGF0 aW9uKSkpKTsKKwkJCQkgZXJybXNnKCJjYW5ub3QgY3JlYXRlIHJ1bGUgb24gcmVsYXRpb24g XCIlc1wiIiwKKwkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGV2ZW50X3JlbGF0aW9u KSksCisJCQkJIGVycmRldGFpbF9yZWxraW5kKFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGV2 ZW50X3JlbGF0aW9uKSwgZXZlbnRfcmVsYXRpb24tPnJkX3JlbC0+cmVsa2luZCkpKTsKIAog CWlmICghYWxsb3dTeXN0ZW1UYWJsZU1vZHMgJiYgSXNTeXN0ZW1SZWxhdGlvbihldmVudF9y ZWxhdGlvbikpCiAJCWVyZXBvcnQoRVJST1IsCkBAIC05MjUsNyArOTI2LDggQEAgUmFuZ2VW YXJDYWxsYmFja0ZvclJlbmFtZVJ1bGUoY29uc3QgUmFuZ2VWYXIgKnJ2LCBPaWQgcmVsaWQs IE9pZCBvbGRyZWxpZCwKIAkJZm9ybS0+cmVsa2luZCAhPSBSRUxLSU5EX1BBUlRJVElPTkVE X1RBQkxFKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdf T0JKRUNUX1RZUEUpLAotCQkJCSBlcnJtc2coIlwiJXNcIiBpcyBub3QgYSB0YWJsZSBvciB2 aWV3IiwgcnYtPnJlbG5hbWUpKSk7CisJCQkJIGVycm1zZygicmVsYXRpb24gXCIlc1wiIGNh bm5vdCBoYXZlIHJ1bGVzIiwgcnYtPnJlbG5hbWUpLAorCQkJCSBlcnJkZXRhaWxfcmVsa2lu ZChydi0+cmVsbmFtZSwgZm9ybS0+cmVsa2luZCkpKTsKIAogCWlmICghYWxsb3dTeXN0ZW1U YWJsZU1vZHMgJiYgSXNTeXN0ZW1DbGFzcyhyZWxpZCwgZm9ybSkpCiAJCWVyZXBvcnQoRVJS T1IsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGJzaXplLmMgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvZGJzaXplLmMKaW5kZXggODQwNjY0NDI5ZS4uMjMyMGMwNmE5 YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Ric2l6ZS5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9kYnNpemUuYwpAQCAtODc0LDI1ICs4NzQsMTggQEAgcGdf cmVsYXRpb25fZmlsZW5vZGUoUEdfRlVOQ1RJT05fQVJHUykKIAkJUEdfUkVUVVJOX05VTEwo KTsKIAlyZWxmb3JtID0gKEZvcm1fcGdfY2xhc3MpIEdFVFNUUlVDVCh0dXBsZSk7CiAKLQlz d2l0Y2ggKHJlbGZvcm0tPnJlbGtpbmQpCisJaWYgKFJFTEtJTkRfSEFTX1NUT1JBR0UocmVs Zm9ybS0+cmVsa2luZCkpCiAJewotCQljYXNlIFJFTEtJTkRfUkVMQVRJT046Ci0JCWNhc2Ug UkVMS0lORF9NQVRWSUVXOgotCQljYXNlIFJFTEtJTkRfSU5ERVg6Ci0JCWNhc2UgUkVMS0lO RF9TRVFVRU5DRToKLQkJY2FzZSBSRUxLSU5EX1RPQVNUVkFMVUU6Ci0JCQkvKiBva2F5LCB0 aGVzZSBoYXZlIHN0b3JhZ2UgKi8KLQkJCWlmIChyZWxmb3JtLT5yZWxmaWxlbm9kZSkKLQkJ CQlyZXN1bHQgPSByZWxmb3JtLT5yZWxmaWxlbm9kZTsKLQkJCWVsc2UJCQkJLyogQ29uc3Vs dCB0aGUgcmVsYXRpb24gbWFwcGVyICovCi0JCQkJcmVzdWx0ID0gUmVsYXRpb25NYXBPaWRU b0ZpbGVub2RlKHJlbGlkLAotCQkJCQkJCQkJCQkJICByZWxmb3JtLT5yZWxpc3NoYXJlZCk7 Ci0JCQlicmVhazsKLQotCQlkZWZhdWx0OgotCQkJLyogbm8gc3RvcmFnZSwgcmV0dXJuIE5V TEwgKi8KLQkJCXJlc3VsdCA9IEludmFsaWRPaWQ7Ci0JCQlicmVhazsKKwkJaWYgKHJlbGZv cm0tPnJlbGZpbGVub2RlKQorCQkJcmVzdWx0ID0gcmVsZm9ybS0+cmVsZmlsZW5vZGU7CisJ CWVsc2UJCQkJLyogQ29uc3VsdCB0aGUgcmVsYXRpb24gbWFwcGVyICovCisJCQlyZXN1bHQg PSBSZWxhdGlvbk1hcE9pZFRvRmlsZW5vZGUocmVsaWQsCisJCQkJCQkJCQkJCSAgcmVsZm9y bS0+cmVsaXNzaGFyZWQpOworCX0KKwllbHNlCisJeworCQkvKiBubyBzdG9yYWdlLCByZXR1 cm4gTlVMTCAqLworCQlyZXN1bHQgPSBJbnZhbGlkT2lkOwogCX0KIAogCVJlbGVhc2VTeXND YWNoZSh0dXBsZSk7CkBAIC05NTEsMzggKzk0NCwzMCBAQCBwZ19yZWxhdGlvbl9maWxlcGF0 aChQR19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fTlVMTCgpOwogCXJlbGZvcm0gPSAo Rm9ybV9wZ19jbGFzcykgR0VUU1RSVUNUKHR1cGxlKTsKIAotCXN3aXRjaCAocmVsZm9ybS0+ cmVsa2luZCkKKwlpZiAoUkVMS0lORF9IQVNfU1RPUkFHRShyZWxmb3JtLT5yZWxraW5kKSkK Kwl7CisJCS8qIFRoaXMgbG9naWMgc2hvdWxkIG1hdGNoIFJlbGF0aW9uSW5pdFBoeXNpY2Fs QWRkciAqLworCQlpZiAocmVsZm9ybS0+cmVsdGFibGVzcGFjZSkKKwkJCXJub2RlLnNwY05v ZGUgPSByZWxmb3JtLT5yZWx0YWJsZXNwYWNlOworCQllbHNlCisJCQlybm9kZS5zcGNOb2Rl ID0gTXlEYXRhYmFzZVRhYmxlU3BhY2U7CisJCWlmIChybm9kZS5zcGNOb2RlID09IEdMT0JB TFRBQkxFU1BBQ0VfT0lEKQorCQkJcm5vZGUuZGJOb2RlID0gSW52YWxpZE9pZDsKKwkJZWxz ZQorCQkJcm5vZGUuZGJOb2RlID0gTXlEYXRhYmFzZUlkOworCQlpZiAocmVsZm9ybS0+cmVs ZmlsZW5vZGUpCisJCQlybm9kZS5yZWxOb2RlID0gcmVsZm9ybS0+cmVsZmlsZW5vZGU7CisJ CWVsc2UJCQkJLyogQ29uc3VsdCB0aGUgcmVsYXRpb24gbWFwcGVyICovCisJCQlybm9kZS5y ZWxOb2RlID0gUmVsYXRpb25NYXBPaWRUb0ZpbGVub2RlKHJlbGlkLAorCQkJCQkJCQkJCQkJ CSByZWxmb3JtLT5yZWxpc3NoYXJlZCk7CisJfQorCWVsc2UKIAl7Ci0JCWNhc2UgUkVMS0lO RF9SRUxBVElPTjoKLQkJY2FzZSBSRUxLSU5EX01BVFZJRVc6Ci0JCWNhc2UgUkVMS0lORF9J TkRFWDoKLQkJY2FzZSBSRUxLSU5EX1NFUVVFTkNFOgotCQljYXNlIFJFTEtJTkRfVE9BU1RW QUxVRToKLQkJCS8qIG9rYXksIHRoZXNlIGhhdmUgc3RvcmFnZSAqLwotCi0JCQkvKiBUaGlz IGxvZ2ljIHNob3VsZCBtYXRjaCBSZWxhdGlvbkluaXRQaHlzaWNhbEFkZHIgKi8KLQkJCWlm IChyZWxmb3JtLT5yZWx0YWJsZXNwYWNlKQotCQkJCXJub2RlLnNwY05vZGUgPSByZWxmb3Jt LT5yZWx0YWJsZXNwYWNlOwotCQkJZWxzZQotCQkJCXJub2RlLnNwY05vZGUgPSBNeURhdGFi YXNlVGFibGVTcGFjZTsKLQkJCWlmIChybm9kZS5zcGNOb2RlID09IEdMT0JBTFRBQkxFU1BB Q0VfT0lEKQotCQkJCXJub2RlLmRiTm9kZSA9IEludmFsaWRPaWQ7Ci0JCQllbHNlCi0JCQkJ cm5vZGUuZGJOb2RlID0gTXlEYXRhYmFzZUlkOwotCQkJaWYgKHJlbGZvcm0tPnJlbGZpbGVu b2RlKQotCQkJCXJub2RlLnJlbE5vZGUgPSByZWxmb3JtLT5yZWxmaWxlbm9kZTsKLQkJCWVs c2UJCQkJLyogQ29uc3VsdCB0aGUgcmVsYXRpb24gbWFwcGVyICovCi0JCQkJcm5vZGUucmVs Tm9kZSA9IFJlbGF0aW9uTWFwT2lkVG9GaWxlbm9kZShyZWxpZCwKLQkJCQkJCQkJCQkJCQkJ IHJlbGZvcm0tPnJlbGlzc2hhcmVkKTsKLQkJCWJyZWFrOwotCi0JCWRlZmF1bHQ6CiAJCQkv KiBubyBzdG9yYWdlLCByZXR1cm4gTlVMTCAqLwogCQkJcm5vZGUucmVsTm9kZSA9IEludmFs aWRPaWQ7CiAJCQkvKiBzb21lIGNvbXBpbGVycyBnZW5lcmF0ZSB3YXJuaW5ncyB3aXRob3V0 IHRoZXNlIG5leHQgdHdvIGxpbmVzICovCiAJCQlybm9kZS5kYk5vZGUgPSBJbnZhbGlkT2lk OwogCQkJcm5vZGUuc3BjTm9kZSA9IEludmFsaWRPaWQ7Ci0JCQlicmVhazsKIAl9CiAKIAlp ZiAoIU9pZElzVmFsaWQocm5vZGUucmVsTm9kZSkpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2NsYXNzLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2NsYXNzLmgK aW5kZXggNzhiMzNiMmE3Zi4uNDRkY2NkOWNjYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19jbGFzcy5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2xhc3Mu aApAQCAtMTk0LDYgKzE5NCw3IEBAIHR5cGVkZWYgRm9ybURhdGFfcGdfY2xhc3MgKkZvcm1f cGdfY2xhc3M7CiAJIChyZWxraW5kKSA9PSBSRUxLSU5EX1RPQVNUVkFMVUUgfHwgXAogCSAo cmVsa2luZCkgPT0gUkVMS0lORF9NQVRWSUVXKQogCitleHRlcm4gaW50IGVycmRldGFpbF9y ZWxraW5kKGNvbnN0IGNoYXIgKnJlbG5hbWUsIGNoYXIgcmVsa2luZCk7CiAKICNlbmRpZgkJ CQkJCQkvKiBFWFBPU0VfVE9fQ0xJRU5UX0NPREUgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9hbHRlcl90YWJsZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dAppbmRleCBmMzQzZjliNDJlLi42OTU1MWU1N2Zh IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dApAQCAt MTA2Nyw5ICsxMDY3LDExIEBAIEVSUk9SOiAgY29sdW1uICJiYXIiIG9mIHJlbGF0aW9uICJh dGFjYzEiIGRvZXMgbm90IGV4aXN0CiAtLSB0cnkgY3JlYXRpbmcgYSB2aWV3IGFuZCBhbHRl cmluZyB0aGF0LCBzaG91bGQgZmFpbAogY3JlYXRlIHZpZXcgbXl2aWV3IGFzIHNlbGVjdCAq IGZyb20gYXRhY2MxOwogYWx0ZXIgdGFibGUgbXl2aWV3IGFsdGVyIGNvbHVtbiB0ZXN0IGRy b3Agbm90IG51bGw7Ci1FUlJPUjogICJteXZpZXciIGlzIG5vdCBhIHRhYmxlIG9yIGZvcmVp Z24gdGFibGUKK0VSUk9SOiAgYWN0aW9uIGNhbm5vdCBiZSBwZXJmb3JtZWQgb24gcmVsYXRp b24gIm15dmlldyIKK0RFVEFJTDogICJteXZpZXciIGlzIGEgdmlldy4KIGFsdGVyIHRhYmxl IG15dmlldyBhbHRlciBjb2x1bW4gdGVzdCBzZXQgbm90IG51bGw7Ci1FUlJPUjogICJteXZp ZXciIGlzIG5vdCBhIHRhYmxlIG9yIGZvcmVpZ24gdGFibGUKK0VSUk9SOiAgYWN0aW9uIGNh bm5vdCBiZSBwZXJmb3JtZWQgb24gcmVsYXRpb24gIm15dmlldyIKK0RFVEFJTDogICJteXZp ZXciIGlzIGEgdmlldy4KIGRyb3AgdmlldyBteXZpZXc7CiBkcm9wIHRhYmxlIGF0YWNjMTsK IC0tIHNldCBub3QgbnVsbCB2ZXJpZmllZCBieSBjb25zdHJhaW50cwpAQCAtMTM2Nyw3ICsx MzY5LDggQEAgc2VsZWN0ICogZnJvbSBteXZpZXc7CiAoMCByb3dzKQogCiBhbHRlciB0YWJs ZSBteXZpZXcgZHJvcCBkOwotRVJST1I6ICAibXl2aWV3IiBpcyBub3QgYSB0YWJsZSwgY29t cG9zaXRlIHR5cGUsIG9yIGZvcmVpZ24gdGFibGUKK0VSUk9SOiAgYWN0aW9uIGNhbm5vdCBi ZSBwZXJmb3JtZWQgb24gcmVsYXRpb24gIm15dmlldyIKK0RFVEFJTDogICJteXZpZXciIGlz IGEgdmlldy4KIGRyb3AgdmlldyBteXZpZXc7CiAtLSB0ZXN0IHNvbWUgY29tbWFuZHMgdG8g bWFrZSBzdXJlIHRoZXkgZmFpbCBvbiB0aGUgZHJvcHBlZCBjb2x1bW4KIGFuYWx5emUgYXRh Y2MxKGEpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVf dGFibGVfbGlrZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV90YWJs ZV9saWtlLm91dAppbmRleCA2NTVlOGU0MWRkLi4zOTVmYWMwMWRkIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV90YWJsZV9saWtlLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV90YWJsZV9saWtlLm91dApAQCAtNDA5 LDkgKzQwOSwxMCBAQCBEUk9QIFRBQkxFIG5vaW5oX2Nvbl9jb3B5LCBub2luaF9jb25fY29w eTE7CiBDUkVBVEUgVEFCTEUgY3RsdDQgKGEgaW50LCBiIHRleHQpOwogQ1JFQVRFIFNFUVVF TkNFIGN0bHNlcTE7CiBDUkVBVEUgVEFCTEUgY3RsdDEwIChMSUtFIGN0bHNlcTEpOyAgLS0g ZmFpbAotRVJST1I6ICAiY3Rsc2VxMSIgaXMgbm90IGEgdGFibGUsIHZpZXcsIG1hdGVyaWFs aXplZCB2aWV3LCBjb21wb3NpdGUgdHlwZSwgb3IgZm9yZWlnbiB0YWJsZQorRVJST1I6ICBy ZWxhdGlvbiAiY3Rsc2VxMSIgaXMgaW52YWxpZCBpbiBMSUtFIGNsYXVzZQogTElORSAxOiBD UkVBVEUgVEFCTEUgY3RsdDEwIChMSUtFIGN0bHNlcTEpOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KK0RFVEFJTDogICJjdGxzZXExIiBpcyBhIHNlcXVlbmNlLgog Q1JFQVRFIFZJRVcgY3RsdjEgQVMgU0VMRUNUICogRlJPTSBjdGx0NDsKIENSRUFURSBUQUJM RSBjdGx0MTEgKExJS0UgY3RsdjEpOwogQ1JFQVRFIFRBQkxFIGN0bHQxMWEgKExJS0UgY3Rs djEgSU5DTFVESU5HIEFMTCk7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2ZvcmVpZ25fZGF0YS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2ZvcmVp Z25fZGF0YS5vdXQKaW5kZXggYjllMjU4MjBiYy4uYWFlYmMyYmU4ZCAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9mb3JlaWduX2RhdGEub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZm9yZWlnbl9kYXRhLm91dApAQCAtNzQwLDcgKzc0MCw4 IEBAIEZEVyBvcHRpb25zOiAoZGVsaW1pdGVyICcsJywgcXVvdGUgJyInLCAiYmUgcXVvdGVk IiAndmFsdWUnKQogKDEgcm93KQogCiBDUkVBVEUgSU5ERVggaWRfZnQxX2MyIE9OIGZ0MSAo YzIpOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gRVJST1IKLUVSUk9SOiAgY2Fu bm90IGNyZWF0ZSBpbmRleCBvbiBmb3JlaWduIHRhYmxlICJmdDEiCitFUlJPUjogIGNhbm5v dCBjcmVhdGUgaW5kZXggb24gcmVsYXRpb24gImZ0MSIKK0RFVEFJTDogICJmdDEiIGlzIGEg Zm9yZWlnbiB0YWJsZS4KIFNFTEVDVCAqIEZST00gZnQxOyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBFUlJPUgogRVJST1I6ICBmb3JlaWduLWRh dGEgd3JhcHBlciAiZHVtbXkiIGhhcyBubyBoYW5kbGVyCiBFWFBMQUlOIFNFTEVDVCAqIEZS T00gZnQxOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gRVJST1IK QEAgLTg2NCw3ICs4NjUsOCBAQCBMSU5FIDE6IEFMVEVSIEZPUkVJR04gVEFCTEUgZnQxIEFE RCBQUklNQVJZIEtFWSAoYzcpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgogQUxURVIgRk9SRUlHTiBUQUJMRSBmdDEgQUREIENPTlNUUkFJTlQgZnQxX2M5X2No ZWNrIENIRUNLIChjOSA8IDApIE5PVCBWQUxJRDsKIEFMVEVSIEZPUkVJR04gVEFCTEUgZnQx IEFMVEVSIENPTlNUUkFJTlQgZnQxX2M5X2NoZWNrIERFRkVSUkFCTEU7IC0tIEVSUk9SCi1F UlJPUjogICJmdDEiIGlzIG5vdCBhIHRhYmxlCitFUlJPUjogIGFjdGlvbiBjYW5ub3QgYmUg cGVyZm9ybWVkIG9uIHJlbGF0aW9uICJmdDEiCitERVRBSUw6ICAiZnQxIiBpcyBhIGZvcmVp Z24gdGFibGUuCiBBTFRFUiBGT1JFSUdOIFRBQkxFIGZ0MSBEUk9QIENPTlNUUkFJTlQgZnQx X2M5X2NoZWNrOwogQUxURVIgRk9SRUlHTiBUQUJMRSBmdDEgRFJPUCBDT05TVFJBSU5UIG5v X2NvbnN0OyAgICAgICAgICAgICAgIC0tIEVSUk9SCiBFUlJPUjogIGNvbnN0cmFpbnQgIm5v X2NvbnN0IiBvZiByZWxhdGlvbiAiZnQxIiBkb2VzIG5vdCBleGlzdApkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9pbmRleGluZy5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2luZGV4aW5nLm91dAppbmRleCBmNzg4NjVlZjgxLi5iZWVhZTEwMzg3 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2luZGV4aW5nLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2luZGV4aW5nLm91dApAQCAtMTM3LDcg KzEzNyw4IEBAIHNlbGVjdCByZWxuYW1lLCByZWxwYXJ0Ym91bmQgZnJvbSBwZ19jbGFzcwog KDIgcm93cykKIAogYWx0ZXIgdGFibGUgaWR4cGFydF9jIGRldGFjaCBwYXJ0aXRpb24gaWR4 cGFydDFfYzsKLUVSUk9SOiAgImlkeHBhcnRfYyIgaXMgbm90IGEgdGFibGUKK0VSUk9SOiAg YWN0aW9uIGNhbm5vdCBiZSBwZXJmb3JtZWQgb24gcmVsYXRpb24gImlkeHBhcnRfYyIKK0RF VEFJTDogICJpZHhwYXJ0X2MiIGlzIGEgcGFydGl0aW9uZWQgaW5kZXguCiBkcm9wIHRhYmxl IGlkeHBhcnQ7CiAtLSBJZiBhIHBhcnRpdGlvbiBhbHJlYWR5IGhhcyBhbiBpbmRleCwgZG9u J3QgY3JlYXRlIGEgZHVwbGljYXRpdmUgb25lCiBjcmVhdGUgdGFibGUgaWR4cGFydCAoYSBp bnQsIGIgaW50KSBwYXJ0aXRpb24gYnkgcmFuZ2UgKGEsIGIpOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXF1ZW5jZS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3NlcXVlbmNlLm91dAppbmRleCA4YjkyOGIyODg4Li5kYWQ4MDg2NzA3IDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3NlcXVlbmNlLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3NlcXVlbmNlLm91dApAQCAtMjEsNyArMjEs OCBAQCBDUkVBVEUgU0VRVUVOQ0Ugc2VxdWVuY2VfdGVzdHggT1dORUQgQlkgbm9ib2R5OyAg LS0gbm9uc2Vuc2Ugd29yZAogRVJST1I6ICBpbnZhbGlkIE9XTkVEIEJZIG9wdGlvbgogSElO VDogIFNwZWNpZnkgT1dORUQgQlkgdGFibGUuY29sdW1uIG9yIE9XTkVEIEJZIE5PTkUuCiBD UkVBVEUgU0VRVUVOQ0Ugc2VxdWVuY2VfdGVzdHggT1dORUQgQlkgcGdfY2xhc3Nfb2lkX2lu ZGV4Lm9pZDsgIC0tIG5vdCBhIHRhYmxlCi1FUlJPUjogIHJlZmVyZW5jZWQgcmVsYXRpb24g InBnX2NsYXNzX29pZF9pbmRleCIgaXMgbm90IGEgdGFibGUgb3IgZm9yZWlnbiB0YWJsZQor RVJST1I6ICByZWZlcmVuY2VkIHJlbGF0aW9uICJwZ19jbGFzc19vaWRfaW5kZXgiIG11c3Qg YmUgYSB0YWJsZSBvciBmb3JlaWduIHRhYmxlCitERVRBSUw6ICAicGdfY2xhc3Nfb2lkX2lu ZGV4IiBpcyBhbiBpbmRleC4KIENSRUFURSBTRVFVRU5DRSBzZXF1ZW5jZV90ZXN0eCBPV05F RCBCWSBwZ19jbGFzcy5yZWxuYW1lOyAgLS0gbm90IHNhbWUgc2NoZW1hCiBFUlJPUjogIHNl cXVlbmNlIG11c3QgYmUgaW4gc2FtZSBzY2hlbWEgYXMgdGFibGUgaXQgaXMgbGlua2VkIHRv CiBDUkVBVEUgVEFCTEUgc2VxdWVuY2VfdGVzdF90YWJsZSAoYSBpbnQpOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdGF0c19leHQub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9zdGF0c19leHQub3V0CmluZGV4IDBhZTc3OWEzYjkuLmM1NmQw ZGFhMmIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3RhdHNfZXh0 Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N0YXRzX2V4dC5vdXQKQEAg LTE0NSwxNCArMTQ1LDE4IEBAIENSRUFURSBUQUJMRSB0c3RzdGF0cy5wdCAoYSBpbnQsIGIg aW50LCBjIHRleHQpIFBBUlRJVElPTiBCWSBSQU5HRSAoYSwgYik7CiBDUkVBVEUgVEFCTEUg dHN0c3RhdHMucHQxIFBBUlRJVElPTiBPRiB0c3RzdGF0cy5wdCBGT1IgVkFMVUVTIEZST00g KC0xMCwgLTEwKSBUTyAoMTAsIDEwKTsKIENSRUFURSBTVEFUSVNUSUNTIHRzdHN0YXRzLnMx IE9OIGEsIGIgRlJPTSB0c3RzdGF0cy50OwogQ1JFQVRFIFNUQVRJU1RJQ1MgdHN0c3RhdHMu czIgT04gYSwgYiBGUk9NIHRzdHN0YXRzLnRpOwotRVJST1I6ICByZWxhdGlvbiAidGkiIGlz IG5vdCBhIHRhYmxlLCBmb3JlaWduIHRhYmxlLCBvciBtYXRlcmlhbGl6ZWQgdmlldworRVJS T1I6ICBjYW5ub3QgZGVmaW5lIHN0YXRpc3RpY3MgZm9yIHJlbGF0aW9uICJ0aSIKK0RFVEFJ TDogICJ0aSIgaXMgYW4gaW5kZXguCiBDUkVBVEUgU1RBVElTVElDUyB0c3RzdGF0cy5zMyBP TiBhLCBiIEZST00gdHN0c3RhdHMuczsKLUVSUk9SOiAgcmVsYXRpb24gInMiIGlzIG5vdCBh IHRhYmxlLCBmb3JlaWduIHRhYmxlLCBvciBtYXRlcmlhbGl6ZWQgdmlldworRVJST1I6ICBj YW5ub3QgZGVmaW5lIHN0YXRpc3RpY3MgZm9yIHJlbGF0aW9uICJzIgorREVUQUlMOiAgInMi IGlzIGEgc2VxdWVuY2UuCiBDUkVBVEUgU1RBVElTVElDUyB0c3RzdGF0cy5zNCBPTiBhLCBi IEZST00gdHN0c3RhdHMudjsKLUVSUk9SOiAgcmVsYXRpb24gInYiIGlzIG5vdCBhIHRhYmxl LCBmb3JlaWduIHRhYmxlLCBvciBtYXRlcmlhbGl6ZWQgdmlldworRVJST1I6ICBjYW5ub3Qg ZGVmaW5lIHN0YXRpc3RpY3MgZm9yIHJlbGF0aW9uICJ2IgorREVUQUlMOiAgInYiIGlzIGEg dmlldy4KIENSRUFURSBTVEFUSVNUSUNTIHRzdHN0YXRzLnM1IE9OIGEsIGIgRlJPTSB0c3Rz dGF0cy5tdjsKIENSRUFURSBTVEFUSVNUSUNTIHRzdHN0YXRzLnM2IE9OIGEsIGIgRlJPTSB0 c3RzdGF0cy50eTsKLUVSUk9SOiAgcmVsYXRpb24gInR5IiBpcyBub3QgYSB0YWJsZSwgZm9y ZWlnbiB0YWJsZSwgb3IgbWF0ZXJpYWxpemVkIHZpZXcKK0VSUk9SOiAgY2Fubm90IGRlZmlu ZSBzdGF0aXN0aWNzIGZvciByZWxhdGlvbiAidHkiCitERVRBSUw6ICAidHkiIGlzIGEgY29t cG9zaXRlIHR5cGUuCiBDUkVBVEUgU1RBVElTVElDUyB0c3RzdGF0cy5zNyBPTiBhLCBiIEZS T00gdHN0c3RhdHMuZjsKIENSRUFURSBTVEFUSVNUSUNTIHRzdHN0YXRzLnM4IE9OIGEsIGIg RlJPTSB0c3RzdGF0cy5wdDsKIENSRUFURSBTVEFUSVNUSUNTIHRzdHN0YXRzLnM5IE9OIGEs IGIgRlJPTSB0c3RzdGF0cy5wdDE7Ci0tIAoyLjI2LjAKCg== --------------7A65589ACF38A7A98503C5EE--