Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hCVjT-0006YU-2j for pgsql-hackers@arkaria.postgresql.org; Fri, 05 Apr 2019 20:46:39 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1hCVjR-0003xZ-RL for pgsql-hackers@arkaria.postgresql.org; Fri, 05 Apr 2019 20:46:37 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hCVjR-0003x4-HL for pgsql-hackers@lists.postgresql.org; Fri, 05 Apr 2019 20:46:37 +0000 Received: from out1-smtp.messagingengine.com ([66.111.4.25]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hCVjN-0005vP-LN for pgsql-hackers@lists.postgresql.org; Fri, 05 Apr 2019 20:46:37 +0000 Received: from compute7.internal (compute7.nyi.internal [10.202.2.47]) by mailout.nyi.internal (Postfix) with ESMTP id 6682C25D7E; Fri, 5 Apr 2019 16:46:32 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute7.internal (MEProxy); Fri, 05 Apr 2019 16:46:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=6wlXY6 0UusLAjPrnfOB6VdbcRwr8q7xtLxeNbFZbuO8=; b=w4l1660LPx9Cxhg9CHuFtP gT33DI2wR/PnsNFhKkbzvhp409FOFaOiSARgiiUyWzC/nNBI3Yy2op71a7Dw8oBn u9EYpi5AOQvylQUXJ0palgZWPv6Cv8nOQe2u2Q9pCTGNY/ZUOyGnqVVvvJhs02Rh GaKry9LsicHhiIbv01OZKaReJJT/xiC9KZOY7oZ+yIOtIT30ppk0KAOBB7IBink4 Q/ngEhVzVAbwcDnJ7KWdp0L7ETlzcpFcCv6eeoRG3gNsbkup3aIvTqpPeuwSvg1m AhVhANDVpaW+rZhzlFrZkN8fim/Am7qaECYWMGFzfNzO9UcDyBx/6XbmEziay09Q == X-ME-Sender: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeduuddrtdejgddugeekucdltddurdeguddtrddttd dmucetufdoteggodetrfdotffvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfv pdfurfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpih gvnhhtshculddquddttddmnecujfgurhepuffvfhfhohfkffgfgggjtgesmhdtreertdef jeenucfhrhhomheprfgvthgvrhcugfhishgvnhhtrhgruhhtuceophgvthgvrhdrvghish gvnhhtrhgruhhtsedvnhguqhhurggurhgrnhhtrdgtohhmqeenucffohhmrghinhepvdhn ughquhgrughrrghnthdrtghomhenucfkphepleefrddvgeefrddukeekrdduvddvnecurf grrhgrmhepmhgrihhlfhhrohhmpehpvghtvghrrdgvihhsvghnthhrrghuthesvdhnughq uhgrughrrghnthdrtghomhenucevlhhushhtvghrufhiiigvpedt X-ME-Proxy: Received: from april.pezone.net (p5df3bc7a.dip0.t-ipconnect.de [93.243.188.122]) by mail.messagingengine.com (Postfix) with ESMTPA id 6D7B31030F; Fri, 5 Apr 2019 16:46:29 -0400 (EDT) Subject: Re: monitoring CREATE INDEX [CONCURRENTLY] To: Alvaro Herrera References: <20190405150102.GA2616@alvherre.pgsql> Cc: Rahila Syed , Andres Freund , Robert Haas , Simon Riggs , Pg Hackers , David Fetter , Pavan Deolasee , Amit Langote From: Peter Eisentraut Openpgp: preference=signencrypt Autocrypt: addr=peter.eisentraut@2ndquadrant.com; prefer-encrypt=mutual; keydata= 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 3jI= Organization: 2ndQuadrant Message-ID: <41c78a9f-da1d-7f3a-48a6-3fa21d75cae4@2ndquadrant.com> Date: Fri, 5 Apr 2019 22:46:28 +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 In-Reply-To: <20190405150102.GA2616@alvherre.pgsql> Content-Type: multipart/mixed; boundary="------------41505746CFD4CDDE23C8E726" Content-Language: en-US List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk This is a multi-part message in MIME format. --------------41505746CFD4CDDE23C8E726 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit On 2019-04-05 17:01, Alvaro Herrera wrote: > Users are going to wonder why the other phases don't appear to complete > for a long time :-) Keep in mind that the "waiting" phases are very > confusing to users. I suggest we just define additional phase numbers > for those phases, then switch the "false" argument to > WaitForLockersMultiple to "true", and it should work :-) Doc-wise, list > all the phases in the same docbook table, indicate that REINDEX is also > covered, and document in an easier-to-follow fashion which phases each > command goes through. Done in the attached patch. I've reworded the phases a bit. There was a bit of a mixup of waiting for snapshots and waiting for lockers. Perhaps not so important from a user's perspective, but at least now it's more consistent with the source code comments. > Yeah, I think that's simple enough -- the CLUSTER one already does that, > I think. Added that. > Another thing for REINDEX TABLE is that we should add a count > of indexes to process, and how many are done. Reasonable, but maybe a bit too much for the last moment. -- Peter Eisentraut http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services --------------41505746CFD4CDDE23C8E726 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="v2-0001-Report-progress-of-REINDEX-operations.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="v2-0001-Report-progress-of-REINDEX-operations.patch" RnJvbSAyMmMwMjU0Yjc2YmUwNWEyMjM1ZWQ4NDI2OGQxODlmYTY3ODVlODQ0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogRnJpLCA1IEFwciAyMDE5IDIyOjI3OjE0ICswMjAwClN1YmplY3Q6 IFtQQVRDSCB2Ml0gUmVwb3J0IHByb2dyZXNzIG9mIFJFSU5ERVggb3BlcmF0aW9ucwoKVGhp cyB1c2VzIHRoZSBzYW1lIGluZnJhc3RydWN0dXJlIHRoYXQgdGhlIENSRUFURSBJTkRFWCBw cm9ncmVzcwpyZXBvcnRpbmcgdXNlcy4KLS0tCiBkb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5z Z21sICAgICAgICAgfCA1MiArKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiBzcmMvYmFj a2VuZC9jYXRhbG9nL2luZGV4LmMgICAgICAgICAgfCAxMCArKysrKysKIHNyYy9iYWNrZW5k L2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCB8IDExICsrKy0tLQogc3JjL2JhY2tlbmQvY29t bWFuZHMvaW5kZXhjbWRzLmMgICAgIHwgMzkgKysrKysrKysrKysrKysrKysrLS0tCiBzcmMv aW5jbHVkZS9jb21tYW5kcy9wcm9ncmVzcy5oICAgICAgfCAgMyArKwogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9ydWxlcy5vdXQgIHwgMTEgKysrLS0tCiA2IGZpbGVzIGNoYW5nZWQs IDEwMiBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sIGIvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dt bAppbmRleCBiOTQ2ZTEzZmRjLi40ZWI0M2YyZGU5IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvbW9uaXRvcmluZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwK QEAgLTM0Niw3ICszNDYsNyBAQCA8dGl0bGU+RHluYW1pYyBTdGF0aXN0aWNzIFZpZXdzPC90 aXRsZT4KIAogICAgICA8cm93PgogICAgICAgPGVudHJ5PjxzdHJ1Y3RuYW1lPnBnX3N0YXRf cHJvZ3Jlc3NfY3JlYXRlX2luZGV4PC9zdHJ1Y3RuYW1lPjxpbmRleHRlcm0+PHByaW1hcnk+ cGdfc3RhdF9wcm9ncmVzc19jcmVhdGVfaW5kZXg8L3ByaW1hcnk+PC9pbmRleHRlcm0+PC9l bnRyeT4KLSAgICAgIDxlbnRyeT5PbmUgcm93IGZvciBlYWNoIGJhY2tlbmQgcnVubmluZyA8 Y29tbWFuZD5DUkVBVEUgSU5ERVg8L2NvbW1hbmQ+LCBzaG93aW5nCisgICAgICA8ZW50cnk+ T25lIHJvdyBmb3IgZWFjaCBiYWNrZW5kIHJ1bm5pbmcgPGNvbW1hbmQ+Q1JFQVRFIElOREVY PC9jb21tYW5kPiBvciA8Y29tbWFuZD5SRUlOREVYPC9jb21tYW5kPiwgc2hvd2luZwogICAg ICAgY3VycmVudCBwcm9ncmVzcy4KICAgICAgIFNlZSA8eHJlZiBsaW5rZW5kPSdjcmVhdGUt aW5kZXgtcHJvZ3Jlc3MtcmVwb3J0aW5nJy8+LgogICAgICA8L2VudHJ5PgpAQCAtMzQ3Nyw3 ICszNDc3LDcgQEAgPHRpdGxlPlByb2dyZXNzIFJlcG9ydGluZzwvdGl0bGU+CiAgIDx0aXRs ZT5DUkVBVEUgSU5ERVggUHJvZ3Jlc3MgUmVwb3J0aW5nPC90aXRsZT4KIAogICA8cGFyYT4K LSAgIFdoZW5ldmVyIDxjb21tYW5kPkNSRUFURSBJTkRFWDwvY29tbWFuZD4gaXMgcnVubmlu ZywgdGhlCisgICBXaGVuZXZlciA8Y29tbWFuZD5DUkVBVEUgSU5ERVg8L2NvbW1hbmQ+IG9y IDxjb21tYW5kPlJFSU5ERVg8L2NvbW1hbmQ+IGlzIHJ1bm5pbmcsIHRoZQogICAgPHN0cnVj dG5hbWU+cGdfc3RhdF9wcm9ncmVzc19jcmVhdGVfaW5kZXg8L3N0cnVjdG5hbWU+IHZpZXcg d2lsbCBjb250YWluCiAgICBvbmUgcm93IGZvciBlYWNoIGJhY2tlbmQgdGhhdCBpcyBjdXJy ZW50bHkgY3JlYXRpbmcgaW5kZXhlcy4gIFRoZSB0YWJsZXMKICAgIGJlbG93IGRlc2NyaWJl IHRoZSBpbmZvcm1hdGlvbiB0aGF0IHdpbGwgYmUgcmVwb3J0ZWQgYW5kIHByb3ZpZGUgaW5m b3JtYXRpb24KQEAgLTM1MTYsNiArMzUxNiwxMiBAQCA8dGl0bGU+PHN0cnVjdG5hbWU+cGdf c3RhdF9wcm9ncmVzc19jcmVhdGVfaW5kZXg8L3N0cnVjdG5hbWU+IFZpZXc8L3RpdGxlPgog ICAgICAgPGVudHJ5Pjx0eXBlPm9pZDwvdHlwZT48L2VudHJ5PgogICAgICAgPGVudHJ5Pk9J RCBvZiB0aGUgdGFibGUgb24gd2hpY2ggdGhlIGluZGV4IGlzIGJlaW5nIGNyZWF0ZWQuPC9l bnRyeT4KICAgICAgPC9yb3c+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PHN0cnVjdGZp ZWxkPmluZGV4X3JlbGlkPC9zdHJ1Y3RmaWVsZD48L2VudHJ5PgorICAgICAgPGVudHJ5Pjx0 eXBlPm9pZDwvdHlwZT48L2VudHJ5PgorICAgICAgPGVudHJ5Pk9JRCBvZiB0aGUgaW5kZXgg YmVpbmcgY3JlYXRlZCBvciByZWluZGV4ZWQuICBEdXJpbmcgYQorICAgICAgbm9uLWNvbmN1 cnJlbnQgPGNvbW1hbmQ+Q1JFQVRFIElOREVYPC9jb21tYW5kPiwgdGhpcyBpcyAwLjwvZW50 cnk+CisgICAgIDwvcm93PgogICAgICA8cm93PgogICAgICAgPGVudHJ5PjxzdHJ1Y3RmaWVs ZD5waGFzZTwvc3RydWN0ZmllbGQ+PC9lbnRyeT4KICAgICAgIDxlbnRyeT48dHlwZT50ZXh0 PC90eXBlPjwvZW50cnk+CkBAIC0zNjA1LDE1ICszNjExLDE1IEBAIDx0aXRsZT5DUkVBVEUg SU5ERVggcGhhc2VzPC90aXRsZT4KICAgICAgPHJvdz4KICAgICAgIDxlbnRyeT48bGl0ZXJh bD5pbml0aWFsaXppbmc8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgIDxlbnRyeT4KLSAgICAg ICA8Y29tbWFuZD5DUkVBVEUgSU5ERVg8L2NvbW1hbmQ+IGlzIHByZXBhcmluZyB0byBjcmVh dGUgdGhlIGluZGV4LiAgVGhpcworICAgICAgIDxjb21tYW5kPkNSRUFURSBJTkRFWDwvY29t bWFuZD4gb3IgPGNvbW1hbmQ+UkVJTkRFWDwvY29tbWFuZD4gaXMgcHJlcGFyaW5nIHRvIGNy ZWF0ZSB0aGUgaW5kZXguICBUaGlzCiAgICAgICAgcGhhc2UgaXMgZXhwZWN0ZWQgdG8gYmUg dmVyeSBicmllZi4KICAgICAgIDwvZW50cnk+CiAgICAgIDwvcm93PgogICAgICA8cm93Pgot ICAgICAgPGVudHJ5PjxsaXRlcmFsPndhaXRpbmcgZm9yIG9sZCBzbmFwc2hvdHM8L2xpdGVy YWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD53YWl0aW5nIGZvciB3cml0ZXJz IGJlZm9yZSBidWlsZDwvbGl0ZXJhbD48L2VudHJ5PgogICAgICAgPGVudHJ5PgotICAgICAg IDxjb21tYW5kPkNSRUFURSBJTkRFWCBDT05DVVJSRU5UTFk8L2NvbW1hbmQ+IGlzIHdhaXRp bmcgZm9yIHRyYW5zYWN0aW9ucwotICAgICAgIHRoYXQgY2FuIHBvdGVudGlhbGx5IHNlZSB0 aGUgdGFibGUgdG8gcmVsZWFzZSB0aGVpciBzbmFwc2hvdHMuCisgICAgICAgPGNvbW1hbmQ+ Q1JFQVRFIElOREVYIENPTkNVUlJFTlRMWTwvY29tbWFuZD4gb3IgPGNvbW1hbmQ+UkVJTkRF WCBDT05DVVJSRU5UTFk8L2NvbW1hbmQ+IGlzIHdhaXRpbmcgZm9yIHRyYW5zYWN0aW9ucwor ICAgICAgIHdpdGggd3JpdGUgbG9ja3MgdGhhdCBjYW4gcG90ZW50aWFsbHkgc2VlIHRoZSB0 YWJsZSB0byBmaW5pc2guCiAgICAgICAgVGhpcyBwaGFzZSBpcyBza2lwcGVkIHdoZW4gbm90 IGluIGNvbmN1cnJlbnQgbW9kZS4KICAgICAgICBDb2x1bW5zIDxzdHJ1Y3RuYW1lPmxvY2tl cnNfdG90YWw8L3N0cnVjdG5hbWU+LCA8c3RydWN0bmFtZT5sb2NrZXJzX2RvbmU8L3N0cnVj dG5hbWU+CiAgICAgICAgYW5kIDxzdHJ1Y3RuYW1lPmN1cnJlbnRfbG9ja2VyX3BpZDwvc3Ry dWN0bmFtZT4gY29udGFpbiB0aGUgcHJvZ3Jlc3MgCkBAIC0zNjMyLDEwICszNjM4LDEwIEBA IDx0aXRsZT5DUkVBVEUgSU5ERVggcGhhc2VzPC90aXRsZT4KICAgICAgIDwvZW50cnk+CiAg ICAgIDwvcm93PgogICAgICA8cm93PgotICAgICAgPGVudHJ5PjxsaXRlcmFsPndhaXRpbmcg Zm9yIHdyaXRlciBzbmFwc2hvdHM8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT48 bGl0ZXJhbD53YWl0aW5nIGZvciB3cml0ZXJzIGJlZm9yZSB2YWxpZGF0aW9uPC9saXRlcmFs PjwvZW50cnk+CiAgICAgICA8ZW50cnk+Ci0gICAgICAgPGNvbW1hbmQ+Q1JFQVRFIElOREVY IENPTkNVUlJFTlRMWTwvY29tbWFuZD4gaXMgd2FpdGluZyBmb3IgdHJhbnNhY3Rpb25zCi0g ICAgICAgdGhhdCBjYW4gcG90ZW50aWFsbHkgd3JpdGUgaW50byB0aGUgdGFibGUgdG8gcmVs ZWFzZSB0aGVpciBzbmFwc2hvdHMuCisgICAgICAgPGNvbW1hbmQ+Q1JFQVRFIElOREVYIENP TkNVUlJFTlRMWTwvY29tbWFuZD4gb3IgPGNvbW1hbmQ+UkVJTkRFWCBDT05DVVJSRU5UTFk8 L2NvbW1hbmQ+IGlzIHdhaXRpbmcgZm9yIHRyYW5zYWN0aW9ucworICAgICAgIHdpdGggd3Jp dGUgbG9ja3MgdGhhdCBjYW4gcG90ZW50aWFsbHkgd3JpdGUgaW50byB0aGUgdGFibGUgdG8g ZmluaXNoLgogICAgICAgIFRoaXMgcGhhc2UgaXMgc2tpcHBlZCB3aGVuIG5vdCBpbiBjb25j dXJyZW50IG1vZGUuCiAgICAgICAgQ29sdW1ucyA8c3RydWN0bmFtZT5sb2NrZXJzX3RvdGFs PC9zdHJ1Y3RuYW1lPiwgPHN0cnVjdG5hbWU+bG9ja2Vyc19kb25lPC9zdHJ1Y3RuYW1lPgog ICAgICAgIGFuZCA8c3RydWN0bmFtZT5jdXJyZW50X2xvY2tlcl9waWQ8L3N0cnVjdG5hbWU+ IGNvbnRhaW4gdGhlIHByb2dyZXNzIApAQCAtMzY3MCw5ICszNjc2LDkgQEAgPHRpdGxlPkNS RUFURSBJTkRFWCBwaGFzZXM8L3RpdGxlPgogICAgICAgPC9lbnRyeT4KICAgICAgPC9yb3c+ CiAgICAgIDxyb3c+Ci0gICAgICA8ZW50cnk+PGxpdGVyYWw+d2FpdGluZyBmb3IgcmVhZGVy IHNuYXBzaG90czwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5PjxsaXRlcmFsPndh aXRpbmcgZm9yIG9sZCBzbmFwc2hvdHM8L2xpdGVyYWw+PC9lbnRyeT4KICAgICAgIDxlbnRy eT4KLSAgICAgICA8Y29tbWFuZD5DUkVBVEUgSU5ERVggQ09OQ1VSUkVOVExZPC9jb21tYW5k PiBpcyB3YWl0aW5nIGZvciB0cmFuc2FjdGlvbnMKKyAgICAgICA8Y29tbWFuZD5DUkVBVEUg SU5ERVggQ09OQ1VSUkVOVExZPC9jb21tYW5kPiBvciA8Y29tbWFuZD5SRUlOREVYIENPTkNV UlJFTlRMWTwvY29tbWFuZD4gaXMgd2FpdGluZyBmb3IgdHJhbnNhY3Rpb25zCiAgICAgICAg dGhhdCBjYW4gcG90ZW50aWFsbHkgc2VlIHRoZSB0YWJsZSB0byByZWxlYXNlIHRoZWlyIHNu YXBzaG90cy4gIFRoaXMKICAgICAgICBwaGFzZSBpcyBza2lwcGVkIHdoZW4gbm90IGluIGNv bmN1cnJlbnQgbW9kZS4KICAgICAgICBDb2x1bW5zIDxzdHJ1Y3RuYW1lPmxvY2tlcnNfdG90 YWw8L3N0cnVjdG5hbWU+LCA8c3RydWN0bmFtZT5sb2NrZXJzX2RvbmU8L3N0cnVjdG5hbWU+ CkBAIC0zNjgwLDYgKzM2ODYsMjggQEAgPHRpdGxlPkNSRUFURSBJTkRFWCBwaGFzZXM8L3Rp dGxlPgogICAgICAgIGluZm9ybWF0aW9uIGZvciB0aGlzIHBoYXNlLgogICAgICAgPC9lbnRy eT4KICAgICAgPC9yb3c+CisgICAgIDxyb3c+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+d2Fp dGluZyBmb3IgcmVhZGVycyBiZWZvcmUgbWFya2luZyBkZWFkPC9saXRlcmFsPjwvZW50cnk+ CisgICAgICA8ZW50cnk+CisgICAgICAgPGNvbW1hbmQ+UkVJTkRFWCBDT05DVVJSRU5UTFk8 L2NvbW1hbmQ+IGlzIHdhaXRpbmcgZm9yIHRyYW5zYWN0aW9ucworICAgICAgIHdpdGggcmVh ZCBsb2NrcyBvbiB0aGUgdGFibGUgdG8gZmluaXNoLCBiZWZvcmUgbWFya2luZyB0aGUgb2xk IGluZGV4IGRlYWQuCisgICAgICAgVGhpcyBwaGFzZSBpcyBza2lwcGVkIHdoZW4gbm90IGlu IGNvbmN1cnJlbnQgbW9kZS4KKyAgICAgICBDb2x1bW5zIDxzdHJ1Y3RuYW1lPmxvY2tlcnNf dG90YWw8L3N0cnVjdG5hbWU+LCA8c3RydWN0bmFtZT5sb2NrZXJzX2RvbmU8L3N0cnVjdG5h bWU+CisgICAgICAgYW5kIDxzdHJ1Y3RuYW1lPmN1cnJlbnRfbG9ja2VyX3BpZDwvc3RydWN0 bmFtZT4gY29udGFpbiB0aGUgcHJvZ3Jlc3MgCisgICAgICAgaW5mb3JtYXRpb24gZm9yIHRo aXMgcGhhc2UuCisgICAgICA8L2VudHJ5PgorICAgICA8L3Jvdz4KKyAgICAgPHJvdz4KKyAg ICAgIDxlbnRyeT48bGl0ZXJhbD53YWl0aW5nIGZvciByZWFkZXJzIGJlZm9yZSBkcm9wcGlu ZzwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgPGVudHJ5PgorICAgICAgIDxjb21tYW5kPlJF SU5ERVggQ09OQ1VSUkVOVExZPC9jb21tYW5kPiBpcyB3YWl0aW5nIGZvciB0cmFuc2FjdGlv bnMKKyAgICAgICB3aXRoIHJlYWQgbG9ja3Mgb24gdGhlIHRhYmxlIHRvIGZpbmlzaCwgYmVm b3JlIGRyb3BwaW5nIHRoZSBvbGQgaW5kZXguCisgICAgICAgVGhpcyBwaGFzZSBpcyBza2lw cGVkIHdoZW4gbm90IGluIGNvbmN1cnJlbnQgbW9kZS4KKyAgICAgICBDb2x1bW5zIDxzdHJ1 Y3RuYW1lPmxvY2tlcnNfdG90YWw8L3N0cnVjdG5hbWU+LCA8c3RydWN0bmFtZT5sb2NrZXJz X2RvbmU8L3N0cnVjdG5hbWU+CisgICAgICAgYW5kIDxzdHJ1Y3RuYW1lPmN1cnJlbnRfbG9j a2VyX3BpZDwvc3RydWN0bmFtZT4gY29udGFpbiB0aGUgcHJvZ3Jlc3MgCisgICAgICAgaW5m b3JtYXRpb24gZm9yIHRoaXMgcGhhc2UuCisgICAgICA8L2VudHJ5PgorICAgICA8L3Jvdz4K ICAgICA8L3Rib2R5PgogICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CkBAIC0zOTM3LDcgKzM5 NjUsNyBAQCA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfc3RhdF9wcm9ncmVzc19jbHVzdGVyPC9z dHJ1Y3RuYW1lPiBWaWV3PC90aXRsZT4KICAgICA8L3Jvdz4KICAgICA8cm93PgogICAgICA8 ZW50cnk+PHN0cnVjdGZpZWxkPmNsdXN0ZXJfaW5kZXhfcmVsaWQ8L3N0cnVjdGZpZWxkPjwv ZW50cnk+Ci0gICAgIDxlbnRyeT48dHlwZT5iaWdpbnQ8L3R5cGU+PC9lbnRyeT4KKyAgICAg PGVudHJ5Pjx0eXBlPm9pZDwvdHlwZT48L2VudHJ5PgogICAgICA8ZW50cnk+CiAgICAgICAg SWYgdGhlIHRhYmxlIGlzIGJlaW5nIHNjYW5uZWQgdXNpbmcgYW4gaW5kZXgsIHRoaXMgaXMg dGhlIE9JRCBvZiB0aGUKICAgICAgICBpbmRleCBiZWluZyB1c2VkOyBvdGhlcndpc2UsIGl0 IGlzIHplcm8uCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMgYi9z cmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMKaW5kZXggMmVkN2ZkYjAyMS4uOWIxZDU0Njc5 MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jCisrKyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvaW5kZXguYwpAQCAtMzI4NiwxMiArMzI4NiwyMCBAQCByZWluZGV4 X2luZGV4KE9pZCBpbmRleElkLCBib29sIHNraXBfY29uc3RyYWludF9jaGVja3MsIGNoYXIg cGVyc2lzdGVuY2UsCiAJaGVhcElkID0gSW5kZXhHZXRSZWxhdGlvbihpbmRleElkLCBmYWxz ZSk7CiAJaGVhcFJlbGF0aW9uID0gdGFibGVfb3BlbihoZWFwSWQsIFNoYXJlTG9jayk7CiAK KwlwZ3N0YXRfcHJvZ3Jlc3Nfc3RhcnRfY29tbWFuZChQUk9HUkVTU19DT01NQU5EX0NSRUFU RV9JTkRFWCwKKwkJCQkJCQkJICBoZWFwSWQpOworCXBnc3RhdF9wcm9ncmVzc191cGRhdGVf cGFyYW0oUFJPR1JFU1NfQ1JFQVRFSURYX0lOREVYX09JRCwKKwkJCQkJCQkJIGluZGV4SWQp OworCiAJLyoKIAkgKiBPcGVuIHRoZSB0YXJnZXQgaW5kZXggcmVsYXRpb24gYW5kIGdldCBh biBleGNsdXNpdmUgbG9jayBvbiBpdCwgdG8KIAkgKiBlbnN1cmUgdGhhdCBubyBvbmUgZWxz ZSBpcyB0b3VjaGluZyB0aGlzIHBhcnRpY3VsYXIgaW5kZXguCiAJICovCiAJaVJlbCA9IGlu ZGV4X29wZW4oaW5kZXhJZCwgQWNjZXNzRXhjbHVzaXZlTG9jayk7CiAKKwlwZ3N0YXRfcHJv Z3Jlc3NfdXBkYXRlX3BhcmFtKFBST0dSRVNTX0NSRUFURUlEWF9BQ0NFU1NfTUVUSE9EX09J RCwKKwkJCQkJCQkJIGlSZWwtPnJkX3JlbC0+cmVsYW0pOworCiAJLyoKIAkgKiBUaGUgY2Fz ZSBvZiByZWluZGV4aW5nIHBhcnRpdGlvbmVkIHRhYmxlcyBhbmQgaW5kZXhlcyBpcyBoYW5k bGVkCiAJICogZGlmZmVyZW50bHkgYnkgdXBwZXIgbGF5ZXJzLCBzbyB0aGlzIGNhc2Ugc2hv dWxkbid0IGFyaXNlLgpAQCAtMzQ0Miw2ICszNDUwLDggQEAgcmVpbmRleF9pbmRleChPaWQg aW5kZXhJZCwgYm9vbCBza2lwX2NvbnN0cmFpbnRfY2hlY2tzLCBjaGFyIHBlcnNpc3RlbmNl LAogCQkJCSBlcnJkZXRhaWxfaW50ZXJuYWwoIiVzIiwKIAkJCQkJCQkJCXBnX3J1c2FnZV9z aG93KCZydTApKSkpOwogCisJcGdzdGF0X3Byb2dyZXNzX2VuZF9jb21tYW5kKCk7CisKIAkv KiBDbG9zZSByZWxzLCBidXQga2VlcCBsb2NrcyAqLwogCWluZGV4X2Nsb3NlKGlSZWwsIE5v TG9jayk7CiAJdGFibGVfY2xvc2UoaGVhcFJlbGF0aW9uLCBOb0xvY2spOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCmluZGV4IDcyZjc4NmQ2ZjguLjE2ZTQ1NmE3ZDkg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAorKysg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKQEAgLTkzMyw3ICs5MzMs NyBAQCBDUkVBVEUgVklFVyBwZ19zdGF0X3Byb2dyZXNzX2NsdXN0ZXIgQVMKICAgICAgICAg ICAgICAgICAgICAgICBXSEVOIDYgVEhFTiAncmVidWlsZGluZyBpbmRleCcKICAgICAgICAg ICAgICAgICAgICAgICBXSEVOIDcgVEhFTiAncGVyZm9ybWluZyBmaW5hbCBjbGVhbnVwJwog ICAgICAgICAgICAgICAgICAgICAgIEVORCBBUyBwaGFzZSwKLSAgICAgICAgUy5wYXJhbTMg QVMgY2x1c3Rlcl9pbmRleF9yZWxpZCwKKyAgICAgICAgQ0FTVChTLnBhcmFtMyBBUyBvaWQp IEFTIGNsdXN0ZXJfaW5kZXhfcmVsaWQsCiAgICAgICAgIFMucGFyYW00IEFTIGhlYXBfdHVw bGVzX3NjYW5uZWQsCiAgICAgICAgIFMucGFyYW01IEFTIGhlYXBfdHVwbGVzX3dyaXR0ZW4s CiAgICAgICAgIFMucGFyYW02IEFTIGhlYXBfYmxrc190b3RhbCwKQEAgLTk0NiwxNiArOTQ2 LDE5IEBAIENSRUFURSBWSUVXIHBnX3N0YXRfcHJvZ3Jlc3NfY3JlYXRlX2luZGV4IEFTCiAJ U0VMRUNUCiAJCVMucGlkIEFTIHBpZCwgUy5kYXRpZCBBUyBkYXRpZCwgRC5kYXRuYW1lIEFT IGRhdG5hbWUsCiAJCVMucmVsaWQgQVMgcmVsaWQsCisJCUNBU1QoUy5wYXJhbTcgQVMgb2lk KSBBUyBpbmRleF9yZWxpZCwKIAkJQ0FTRSBTLnBhcmFtMTAgV0hFTiAwIFRIRU4gJ2luaXRp YWxpemluZycKLQkJCQkJICBXSEVOIDEgVEhFTiAnd2FpdGluZyBmb3Igb2xkIHNuYXBzaG90 cycKKwkJCQkJICBXSEVOIDEgVEhFTiAnd2FpdGluZyBmb3Igd3JpdGVycyBiZWZvcmUgYnVp bGQnCiAJCQkJCSAgV0hFTiAyIFRIRU4gJ2J1aWxkaW5nIGluZGV4JyB8fAogCQkJCQkJQ09B TEVTQ0UoKCc6ICcgfHwgcGdfaW5kZXhhbV9wcm9ncmVzc19waGFzZW5hbWUoUy5wYXJhbTk6 Om9pZCwgUy5wYXJhbTExKSksCiAJCQkJCQkJJycpCi0JCQkJCSAgV0hFTiAzIFRIRU4gJ3dh aXRpbmcgZm9yIHdyaXRlciBzbmFwc2hvdHMnCisJCQkJCSAgV0hFTiAzIFRIRU4gJ3dhaXRp bmcgZm9yIHdyaXRlcnMgYmVmb3JlIHZhbGlkYXRpb24nCiAJCQkJCSAgV0hFTiA0IFRIRU4g J2luZGV4IHZhbGlkYXRpb246IHNjYW5uaW5nIGluZGV4JwogCQkJCQkgIFdIRU4gNSBUSEVO ICdpbmRleCB2YWxpZGF0aW9uOiBzb3J0aW5nIHR1cGxlcycKIAkJCQkJICBXSEVOIDYgVEhF TiAnaW5kZXggdmFsaWRhdGlvbjogc2Nhbm5pbmcgdGFibGUnCi0JCQkJCSAgV0hFTiA3IFRI RU4gJ3dhaXRpbmcgZm9yIHJlYWRlciBzbmFwc2hvdHMnCisJCQkJCSAgV0hFTiA3IFRIRU4g J3dhaXRpbmcgZm9yIG9sZCBzbmFwc2hvdHMnCisJCQkJCSAgV0hFTiA4IFRIRU4gJ3dhaXRp bmcgZm9yIHJlYWRlcnMgYmVmb3JlIG1hcmtpbmcgZGVhZCcKKwkJCQkJICBXSEVOIDkgVEhF TiAnd2FpdGluZyBmb3IgcmVhZGVycyBiZWZvcmUgZHJvcHBpbmcnCiAJCQkJCSAgRU5EIGFz IHBoYXNlLAogCQlTLnBhcmFtNCBBUyBsb2NrZXJzX3RvdGFsLAogCQlTLnBhcmFtNSBBUyBs b2NrZXJzX2RvbmUsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNt ZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jCmluZGV4IDM0OGQ1NDMy OTcuLjRhOWIwMzBjMmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4 Y21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jCkBAIC00Nzgs NiArNDc4LDEyIEBAIERlZmluZUluZGV4KE9pZCByZWxhdGlvbklkLAogCQlwZ3N0YXRfcHJv Z3Jlc3Nfc3RhcnRfY29tbWFuZChQUk9HUkVTU19DT01NQU5EX0NSRUFURV9JTkRFWCwKIAkJ CQkJCQkJCSAgcmVsYXRpb25JZCk7CiAKKwkvKgorCSAqIE5vIGluZGV4IE9JRCB0byByZXBv cnQgeWV0CisJICovCisJcGdzdGF0X3Byb2dyZXNzX3VwZGF0ZV9wYXJhbShQUk9HUkVTU19D UkVBVEVJRFhfSU5ERVhfT0lELAorCQkJCQkJCQkgSW52YWxpZE9pZCk7CisKIAkvKgogCSAq IGNvdW50IGtleSBhdHRyaWJ1dGVzIGluIGluZGV4CiAJICovCkBAIC0xMjQ0LDYgKzEyNTAs MTIgQEAgRGVmaW5lSW5kZXgoT2lkIHJlbGF0aW9uSWQsCiAJQ29tbWl0VHJhbnNhY3Rpb25D b21tYW5kKCk7CiAJU3RhcnRUcmFuc2FjdGlvbkNvbW1hbmQoKTsKIAorCS8qCisJICogVGhl IGluZGV4IGlzIG5vdyB2aXNpYmxlLCBzbyB3ZSBjYW4gcmVwb3J0IHRoZSBPSUQuCisJICov CisJcGdzdGF0X3Byb2dyZXNzX3VwZGF0ZV9wYXJhbShQUk9HUkVTU19DUkVBVEVJRFhfSU5E RVhfT0lELAorCQkJCQkJCQkgaW5kZXhSZWxhdGlvbklkKTsKKwogCS8qCiAJICogUGhhc2Ug MiBvZiBjb25jdXJyZW50IGluZGV4IGJ1aWxkIChzZWUgY29tbWVudHMgZm9yIHZhbGlkYXRl X2luZGV4KCkKIAkgKiBmb3IgYW4gb3ZlcnZpZXcgb2YgaG93IHRoaXMgd29ya3MpCkBAIC0y ODczLDYgKzI4ODUsMTMgQEAgUmVpbmRleFJlbGF0aW9uQ29uY3VycmVudGx5KE9pZCByZWxh dGlvbk9pZCwgaW50IG9wdGlvbnMpCiAJCWhlYXBSZWwgPSB0YWJsZV9vcGVuKGluZGV4UmVs LT5yZF9pbmRleC0+aW5kcmVsaWQsCiAJCQkJCQkJIFNoYXJlVXBkYXRlRXhjbHVzaXZlTG9j ayk7CiAKKwkJcGdzdGF0X3Byb2dyZXNzX3N0YXJ0X2NvbW1hbmQoUFJPR1JFU1NfQ09NTUFO RF9DUkVBVEVfSU5ERVgsCisJCQkJCQkJCQkgIFJlbGF0aW9uR2V0UmVsaWQoaGVhcFJlbCkp OworCQlwZ3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3BhcmFtKFBST0dSRVNTX0NSRUFURUlEWF9J TkRFWF9PSUQsCisJCQkJCQkJCQkgaW5kZXhJZCk7CisJCXBnc3RhdF9wcm9ncmVzc191cGRh dGVfcGFyYW0oUFJPR1JFU1NfQ1JFQVRFSURYX0FDQ0VTU19NRVRIT0RfT0lELAorCQkJCQkJ CQkJIGluZGV4UmVsLT5yZF9yZWwtPnJlbGFtKTsKKwogCQkvKiBDaG9vc2UgYSB0ZW1wb3Jh cnkgcmVsYXRpb24gbmFtZSBmb3IgdGhlIG5ldyBpbmRleCAqLwogCQljb25jdXJyZW50TmFt ZSA9IENob29zZVJlbGF0aW9uTmFtZShnZXRfcmVsX25hbWUoaW5kZXhJZCksCiAJCQkJCQkJ CQkJCU5VTEwsCkBAIC0yOTY3LDcgKzI5ODYsOSBAQCBSZWluZGV4UmVsYXRpb25Db25jdXJy ZW50bHkoT2lkIHJlbGF0aW9uT2lkLCBpbnQgb3B0aW9ucykKIAkgKiBEZWZpbmVJbmRleCgp IGZvciBtb3JlIGRldGFpbHMuCiAJICovCiAKLQlXYWl0Rm9yTG9ja2Vyc011bHRpcGxlKGxv Y2tUYWdzLCBTaGFyZUxvY2ssIGZhbHNlKTsKKwlwZ3N0YXRfcHJvZ3Jlc3NfdXBkYXRlX3Bh cmFtKFBST0dSRVNTX0NSRUFURUlEWF9QSEFTRSwKKwkJCQkJCQkJIFBST0dSRVNTX0NSRUFU RUlEWF9QSEFTRV9XQUlUXzEpOworCVdhaXRGb3JMb2NrZXJzTXVsdGlwbGUobG9ja1RhZ3Ms IFNoYXJlTG9jaywgdHJ1ZSk7CiAJQ29tbWl0VHJhbnNhY3Rpb25Db21tYW5kKCk7CiAKIAlm b3Jib3RoKGxjLCBpbmRleElkcywgbGMyLCBuZXdJbmRleElkcykKQEAgLTMwMDksNyArMzAz MCw5IEBAIFJlaW5kZXhSZWxhdGlvbkNvbmN1cnJlbnRseShPaWQgcmVsYXRpb25PaWQsIGlu dCBvcHRpb25zKQogCSAqIGZvciBtb3JlIGRldGFpbHMuCiAJICovCiAKLQlXYWl0Rm9yTG9j a2Vyc011bHRpcGxlKGxvY2tUYWdzLCBTaGFyZUxvY2ssIGZhbHNlKTsKKwlwZ3N0YXRfcHJv Z3Jlc3NfdXBkYXRlX3BhcmFtKFBST0dSRVNTX0NSRUFURUlEWF9QSEFTRSwKKwkJCQkJCQkJ IFBST0dSRVNTX0NSRUFURUlEWF9QSEFTRV9XQUlUXzIpOworCVdhaXRGb3JMb2NrZXJzTXVs dGlwbGUobG9ja1RhZ3MsIFNoYXJlTG9jaywgdHJ1ZSk7CiAJQ29tbWl0VHJhbnNhY3Rpb25D b21tYW5kKCk7CiAKIAlmb3JlYWNoKGxjLCBuZXdJbmRleElkcykKQEAgLTMwNTcsNiArMzA4 MCw4IEBAIFJlaW5kZXhSZWxhdGlvbkNvbmN1cnJlbnRseShPaWQgcmVsYXRpb25PaWQsIGlu dCBvcHRpb25zKQogCQkgKiBiZWZvcmUgdGhlIHJlZmVyZW5jZSBzbmFwIHdhcyB0YWtlbiwg d2UgaGF2ZSB0byB3YWl0IG91dCBhbnkKIAkJICogdHJhbnNhY3Rpb25zIHRoYXQgbWlnaHQg aGF2ZSBvbGRlciBzbmFwc2hvdHMuCiAJCSAqLworCQlwZ3N0YXRfcHJvZ3Jlc3NfdXBkYXRl X3BhcmFtKFBST0dSRVNTX0NSRUFURUlEWF9QSEFTRSwKKwkJCQkJCQkJCSBQUk9HUkVTU19D UkVBVEVJRFhfUEhBU0VfV0FJVF8zKTsKIAkJV2FpdEZvck9sZGVyU25hcHNob3RzKGxpbWl0 WG1pbiwgZmFsc2UpOwogCiAJCUNvbW1pdFRyYW5zYWN0aW9uQ29tbWFuZCgpOwpAQCAtMzEy OCw3ICszMTUzLDkgQEAgUmVpbmRleFJlbGF0aW9uQ29uY3VycmVudGx5KE9pZCByZWxhdGlv bk9pZCwgaW50IG9wdGlvbnMpCiAJICogaW5kZXhfZHJvcCgpIGZvciBtb3JlIGRldGFpbHMu CiAJICovCiAKLQlXYWl0Rm9yTG9ja2Vyc011bHRpcGxlKGxvY2tUYWdzLCBBY2Nlc3NFeGNs dXNpdmVMb2NrLCBmYWxzZSk7CisJcGdzdGF0X3Byb2dyZXNzX3VwZGF0ZV9wYXJhbShQUk9H UkVTU19DUkVBVEVJRFhfUEhBU0UsCisJCQkJCQkJCSBQUk9HUkVTU19DUkVBVEVJRFhfUEhB U0VfV0FJVF80KTsKKwlXYWl0Rm9yTG9ja2Vyc011bHRpcGxlKGxvY2tUYWdzLCBBY2Nlc3NF eGNsdXNpdmVMb2NrLCB0cnVlKTsKIAogCWZvcmVhY2gobGMsIGluZGV4SWRzKQogCXsKQEAg LTMxNTAsNyArMzE3Nyw5IEBAIFJlaW5kZXhSZWxhdGlvbkNvbmN1cnJlbnRseShPaWQgcmVs YXRpb25PaWQsIGludCBvcHRpb25zKQogCSAqIERyb3AgdGhlIG9sZCBpbmRleGVzLgogCSAq LwogCi0JV2FpdEZvckxvY2tlcnNNdWx0aXBsZShsb2NrVGFncywgQWNjZXNzRXhjbHVzaXZl TG9jaywgZmFsc2UpOworCXBnc3RhdF9wcm9ncmVzc191cGRhdGVfcGFyYW0oUFJPR1JFU1Nf Q1JFQVRFSURYX1BIQVNFLAorCQkJCQkJCQkgUFJPR1JFU1NfQ1JFQVRFSURYX1BIQVNFX1dB SVRfNCk7CisJV2FpdEZvckxvY2tlcnNNdWx0aXBsZShsb2NrVGFncywgQWNjZXNzRXhjbHVz aXZlTG9jaywgdHJ1ZSk7CiAKIAlQdXNoQWN0aXZlU25hcHNob3QoR2V0VHJhbnNhY3Rpb25T bmFwc2hvdCgpKTsKIApAQCAtMzIyNSw2ICszMjU0LDggQEAgUmVpbmRleFJlbGF0aW9uQ29u Y3VycmVudGx5KE9pZCByZWxhdGlvbk9pZCwgaW50IG9wdGlvbnMpCiAKIAlNZW1vcnlDb250 ZXh0RGVsZXRlKHByaXZhdGVfY29udGV4dCk7CiAKKwlwZ3N0YXRfcHJvZ3Jlc3NfZW5kX2Nv bW1hbmQoKTsKKwogCXJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jb21tYW5kcy9wcm9ncmVzcy5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvcHJvZ3Jlc3Mu aAppbmRleCBmMDQ2ZmExM2IxLi4zNzA0M2U5MjZkIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jb21tYW5kcy9wcm9ncmVzcy5oCisrKyBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Byb2dy ZXNzLmgKQEAgLTU5LDYgKzU5LDcgQEAKIAogLyogUHJvZ3Jlc3MgcGFyYW1ldGVycyBmb3Ig Q1JFQVRFIElOREVYICovCiAvKiAzLCA0IGFuZCA1IHJlc2VydmVkIGZvciAid2FpdGZvciIg bWV0cmljcyAqLworI2RlZmluZSBQUk9HUkVTU19DUkVBVEVJRFhfSU5ERVhfT0lECQkJNgog I2RlZmluZSBQUk9HUkVTU19DUkVBVEVJRFhfQUNDRVNTX01FVEhPRF9PSUQJOAogI2RlZmlu ZSBQUk9HUkVTU19DUkVBVEVJRFhfUEhBU0UJCQkJOQkvKiBBTS1hZ25vc3RpYyBwaGFzZSAj ICovCiAjZGVmaW5lIFBST0dSRVNTX0NSRUFURUlEWF9TVUJQSEFTRQkJCQkxMAkvKiBwaGFz ZSAjIGZpbGxlZCBieSBBTSAqLwpAQCAtNzYsNiArNzcsOCBAQAogI2RlZmluZSBQUk9HUkVT U19DUkVBVEVJRFhfUEhBU0VfVkFMSURBVEVfU09SVAkJNQogI2RlZmluZSBQUk9HUkVTU19D UkVBVEVJRFhfUEhBU0VfVkFMSURBVEVfVEFCTEVTQ0FOCTYKICNkZWZpbmUgUFJPR1JFU1Nf Q1JFQVRFSURYX1BIQVNFX1dBSVRfMwkJCTcKKyNkZWZpbmUgUFJPR1JFU1NfQ1JFQVRFSURY X1BIQVNFX1dBSVRfNAkJCTgKKyNkZWZpbmUgUFJPR1JFU1NfQ1JFQVRFSURYX1BIQVNFX1dB SVRfNQkJCTkKIAogLyoKICAqIFN1YnBoYXNlcyBvZiBDUkVBVEUgSU5ERVgsIGZvciBpbmRl eF9idWlsZC4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMu b3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggYmY3ZmNh NTRlZS4uNDYzODM3NGE3NiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQK QEAgLTE4NTUsNyArMTg1NSw3IEBAIHBnX3N0YXRfcHJvZ3Jlc3NfY2x1c3RlcnwgU0VMRUNU IHMucGlkLAogICAgICAgICAgICAgV0hFTiA3IFRIRU4gJ3BlcmZvcm1pbmcgZmluYWwgY2xl YW51cCc6OnRleHQKICAgICAgICAgICAgIEVMU0UgTlVMTDo6dGV4dAogICAgICAgICBFTkQg QVMgcGhhc2UsCi0gICAgcy5wYXJhbTMgQVMgY2x1c3Rlcl9pbmRleF9yZWxpZCwKKyAgICAo cy5wYXJhbTMpOjpvaWQgQVMgY2x1c3Rlcl9pbmRleF9yZWxpZCwKICAgICBzLnBhcmFtNCBB UyBoZWFwX3R1cGxlc19zY2FubmVkLAogICAgIHMucGFyYW01IEFTIGhlYXBfdHVwbGVzX3dy aXR0ZW4sCiAgICAgcy5wYXJhbTYgQVMgaGVhcF9ibGtzX3RvdGFsLApAQCAtMTg2NywxNSAr MTg2NywxOCBAQCBwZ19zdGF0X3Byb2dyZXNzX2NyZWF0ZV9pbmRleHwgU0VMRUNUIHMucGlk LAogICAgIHMuZGF0aWQsCiAgICAgZC5kYXRuYW1lLAogICAgIHMucmVsaWQsCisgICAgKHMu cGFyYW03KTo6b2lkIEFTIGluZGV4X3JlbGlkLAogICAgICAgICBDQVNFIHMucGFyYW0xMAog ICAgICAgICAgICAgV0hFTiAwIFRIRU4gJ2luaXRpYWxpemluZyc6OnRleHQKLSAgICAgICAg ICAgIFdIRU4gMSBUSEVOICd3YWl0aW5nIGZvciBvbGQgc25hcHNob3RzJzo6dGV4dAorICAg ICAgICAgICAgV0hFTiAxIFRIRU4gJ3dhaXRpbmcgZm9yIHdyaXRlcnMgYmVmb3JlIGJ1aWxk Jzo6dGV4dAogICAgICAgICAgICAgV0hFTiAyIFRIRU4gKCdidWlsZGluZyBpbmRleCc6OnRl eHQgfHwgQ09BTEVTQ0UoKCc6ICc6OnRleHQgfHwgcGdfaW5kZXhhbV9wcm9ncmVzc19waGFz ZW5hbWUoKHMucGFyYW05KTo6b2lkLCBzLnBhcmFtMTEpKSwgJyc6OnRleHQpKQotICAgICAg ICAgICAgV0hFTiAzIFRIRU4gJ3dhaXRpbmcgZm9yIHdyaXRlciBzbmFwc2hvdHMnOjp0ZXh0 CisgICAgICAgICAgICBXSEVOIDMgVEhFTiAnd2FpdGluZyBmb3Igd3JpdGVycyBiZWZvcmUg dmFsaWRhdGlvbic6OnRleHQKICAgICAgICAgICAgIFdIRU4gNCBUSEVOICdpbmRleCB2YWxp ZGF0aW9uOiBzY2FubmluZyBpbmRleCc6OnRleHQKICAgICAgICAgICAgIFdIRU4gNSBUSEVO ICdpbmRleCB2YWxpZGF0aW9uOiBzb3J0aW5nIHR1cGxlcyc6OnRleHQKICAgICAgICAgICAg IFdIRU4gNiBUSEVOICdpbmRleCB2YWxpZGF0aW9uOiBzY2FubmluZyB0YWJsZSc6OnRleHQK LSAgICAgICAgICAgIFdIRU4gNyBUSEVOICd3YWl0aW5nIGZvciByZWFkZXIgc25hcHNob3Rz Jzo6dGV4dAorICAgICAgICAgICAgV0hFTiA3IFRIRU4gJ3dhaXRpbmcgZm9yIG9sZCBzbmFw c2hvdHMnOjp0ZXh0CisgICAgICAgICAgICBXSEVOIDggVEhFTiAnd2FpdGluZyBmb3IgcmVh ZGVycyBiZWZvcmUgbWFya2luZyBkZWFkJzo6dGV4dAorICAgICAgICAgICAgV0hFTiA5IFRI RU4gJ3dhaXRpbmcgZm9yIHJlYWRlcnMgYmVmb3JlIGRyb3BwaW5nJzo6dGV4dAogICAgICAg ICAgICAgRUxTRSBOVUxMOjp0ZXh0CiAgICAgICAgIEVORCBBUyBwaGFzZSwKICAgICBzLnBh cmFtNCBBUyBsb2NrZXJzX3RvdGFsLAotLSAKMi4yMS4wCgo= --------------41505746CFD4CDDE23C8E726--