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 1oxVeK-0006Zo-Pu for pgsql-hackers@arkaria.postgresql.org; Tue, 22 Nov 2022 15:57:29 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oxVeJ-0008RV-Mb for pgsql-hackers@arkaria.postgresql.org; Tue, 22 Nov 2022 15:57:27 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oxVeI-0008QT-UF for pgsql-hackers@lists.postgresql.org; Tue, 22 Nov 2022 15:57:27 +0000 Received: from wout4-smtp.messagingengine.com ([64.147.123.20]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oxVeD-00026o-Hf for pgsql-hackers@postgresql.org; Tue, 22 Nov 2022 15:57:25 +0000 Received: from compute3.internal (compute3.nyi.internal [10.202.2.43]) by mailout.west.internal (Postfix) with ESMTP id 094283200999 for ; Tue, 22 Nov 2022 10:57:19 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute3.internal (MEProxy); Tue, 22 Nov 2022 10:57:20 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-type:date:date:feedback-id :feedback-id:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:sender:subject:subject:to:to :x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s= fm1; t=1669132639; x=1669219039; bh=wtbI4ZTIssIx3keC9PPuXtUI085n vAtwdmHDfZQ5HDE=; b=Yn+Kj4rQcKsKQdKzN/CF8JAen2Hk+AfD94Sd/g3tFvwn YOCXOMnliIp612M9WqjJOlmnWkt8t6InitGO/BDHUpPKBK3w8Iwe3ItJ2lyTPUfF YnyPkLUZNq8sOhyvZLMgaQum4gh7acmGo3wI+5DpejtdC0YanERVUHSSPmJg9WxQ +gRx9oLABSzmsIXaehFEuy9iLX1vvDtucbCmSoWMxLitLrqnVpPQsAtEDlxLbL4T s8c4A7t+1lJHa7f+SCFJnl9uc2M+lF4rgr7qMqtVEjQN7cj25NuItDqIhmiwp8xT VXtUQCZuf3y5MioaNh9tD52by/ciPsPsKUNa4Mq0Rw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvgedrheelgdehfecutefuodetggdotefrodftvf curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu uegrihhlohhuthemuceftddtnecunecujfgurheptgfkffggfgfuhffvfhgjsehmtderre dtfeejnecuhfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghrrdgv ihhsvghnthhrrghuthesvghnthgvrhhprhhishgvuggsrdgtohhmqeenucggtffrrghtth gvrhhnpeekteetfeehvefhvdeltdefgeeluedtkeekkeevieefueffveejueejheffjeei jeenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpehpvg htvghrrdgvihhsvghnthhrrghuthesvghnthgvrhhprhhishgvuggsrdgtohhm X-ME-Proxy: Feedback-ID: i131946ab:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Tue, 22 Nov 2022 10:57:17 -0500 (EST) Content-Type: multipart/mixed; boundary="------------ad4DEUjWArCNAhXCKdNVFTtH" Message-ID: Date: Tue, 22 Nov 2022 16:57:17 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.4.2 Subject: Re: dynamic result sets support in extended query protocol Content-Language: en-US From: Peter Eisentraut To: pgsql-hackers References: <6e747f98-835f-2e05-cde5-86ee444a7140@2ndquadrant.com> <20201009184625.4hfgpcxzd6jfredb@alap3.anarazel.de> <7e404216-62b5-93da-1a74-c1d5aa1fe47a@2ndquadrant.com> <6f038f18-0f2b-5271-a56f-1770577f246c@enterprisedb.com> <525d517f-72ab-9488-211b-ad3cb0aea3a3@enterprisedb.com> <20220112102055.fn5gpnt2lw6ii35o@jrouhaud> <4934178d-558b-f47c-36c0-7372152d5df6@enterprisedb.com> <34632858-a067-4ae5-bd49-6531e5ed9282@enterprisedb.com> In-Reply-To: <34632858-a067-4ae5-bd49-6531e5ed9282@enterprisedb.com> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------ad4DEUjWArCNAhXCKdNVFTtH Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 14.10.22 09:11, Peter Eisentraut wrote: > Now that the psql support for multiple result sets exists, I want to > revive this patch.  It's the same as the last posted version, except now > it doesn't require any psql changes or any weird test modifications > anymore. > > (Old news: This patch allows declaring a cursor WITH RETURN in a > procedure to make the cursor's data be returned as a result of the CALL > invocation.  The procedure needs to be declared with the DYNAMIC RESULT > SETS attribute.) I added tests using the new psql \bind command to test this functionality in the extended query protocol, which showed that this got broken since I first wrote this patch. This "blame" is on the pipeline mode in libpq patch (acb7e4eb6b1c614c68a62fb3a6a5bba1af0a2659). I need to spend more time on this and figure out how to repair it. In the meantime, here is an updated patch set with the current status. --------------ad4DEUjWArCNAhXCKdNVFTtH Content-Type: text/plain; charset=UTF-8; name="v6-0001-Dynamic-result-sets-from-procedures.patch" Content-Disposition: attachment; filename="v6-0001-Dynamic-result-sets-from-procedures.patch" Content-Transfer-Encoding: base64 RnJvbSAzMWFiMjJmN2Y0YWFiNTY2NmFiZWM5YzliMGY4ZTJlOWE4ZTY0MjFhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogRnJpLCAxNCBPY3QgMjAyMiAwOTowMToxNyArMDIwMApTdWJqZWN0 OiBbUEFUQ0ggdjYgMS8yXSBEeW5hbWljIHJlc3VsdCBzZXRzIGZyb20gcHJvY2VkdXJlcwoK RGVjbGFyaW5nIGEgY3Vyc29yIFdJVEggUkVUVVJOIGluIGEgcHJvY2VkdXJlIG1ha2VzIHRo ZSBjdXJzb3IncyBkYXRhIGJlCnJldHVybmVkIGFzIGEgcmVzdWx0IG9mIHRoZSBDQUxMIGlu dm9jYXRpb24uICBUaGUgcHJvY2VkdXJlIG5lZWRzIHRvCmJlIGRlY2xhcmVkIHdpdGggdGhl IERZTkFNSUMgUkVTVUxUIFNFVFMgYXR0cmlidXRlLgoKRGlzY3Vzc2lvbjogaHR0cHM6Ly93 d3cucG9zdGdyZXNxbC5vcmcvbWVzc2FnZS1pZC9mbGF0LzZlNzQ3Zjk4LTgzNWYtMmUwNS1j ZGU1LTg2ZWU0NDRhNzE0MEAybmRxdWFkcmFudC5jb20KLS0tCiBkb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAxMCArKysKIGRvYy9zcmMvc2dtbC9p bmZvcm1hdGlvbl9zY2hlbWEuc2dtbCAgICAgICAgICB8ICAzICstCiBkb2Mvc3JjL3NnbWwv cGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAyNyArKysrKy0KIGRvYy9zcmMv c2dtbC9wcm90b2NvbC5zZ21sICAgICAgICAgICAgICAgICAgICB8IDE5ICsrKysrCiBkb2Mv c3JjL3NnbWwvcmVmL2FsdGVyX3Byb2NlZHVyZS5zZ21sICAgICAgICAgfCAxMiArKysKIGRv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Byb2NlZHVyZS5zZ21sICAgICAgICB8IDE0ICsrKwog ZG9jL3NyYy9zZ21sL3JlZi9kZWNsYXJlLnNnbWwgICAgICAgICAgICAgICAgIHwgMzQgKysr KysrKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvaW5mb3JtYXRpb25fc2NoZW1hLnNxbCAgICB8 ICAyICstCiBzcmMvYmFja2VuZC9jYXRhbG9nL3BnX2FnZ3JlZ2F0ZS5jICAgICAgICAgICAg fCAgMyArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wcm9jLmMgICAgICAgICAgICAgICAg IHwgIDQgKy0KIHNyYy9iYWNrZW5kL2NhdGFsb2cvc3FsX2ZlYXR1cmVzLnR4dCAgICAgICAg ICB8ICAyICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9mdW5jdGlvbmNtZHMuYyAgICAgICAg ICAgfCA3OSArKysrKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcG9ydGFs Y21kcy5jICAgICAgICAgICAgIHwgMjMgKysrKysKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3R5 cGVjbWRzLmMgICAgICAgICAgICAgICB8IDEyICsrLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueSAgICAgICAgICAgICAgICAgICAgIHwgMTggKysrLQogc3JjL2JhY2tlbmQvdGNvcC9w b3N0Z3Jlcy5jICAgICAgICAgICAgICAgICAgIHwgNjEgKysrKysrKysrKysrLQogc3JjL2Jh Y2tlbmQvdGNvcC9wcXVlcnkuYyAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysKIHNyYy9i YWNrZW5kL3V0aWxzL2VycmNvZGVzLnR4dCAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9i YWNrZW5kL3V0aWxzL21tZ3IvcG9ydGFsbWVtLmMgICAgICAgICAgICB8IDQ4ICsrKysrKysr KysrCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgICAgfCAx NiArKystCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuaCAgICAgICAgICAgICAgICAg fCAgNiArLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvZGVmcmVtLmggICAgICAgICAgICAgICAg IHwgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAg IHwgIDEgKwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICAgICAg IHwgIDIgKwogc3JjL2luY2x1ZGUvdXRpbHMvcG9ydGFsLmggICAgICAgICAgICAgICAgICAg IHwgMTQgKysrCiBzcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMuYyAgICAgICAg ICAgfCAgNiArLQogc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfY2FsbC5v dXQgIHwgNzggKysrKysrKysrKysrKysrKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVj LmMgICAgICAgICAgICAgICAgICB8ICA2ICsrCiBzcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZ3Jh bS55ICAgICAgICAgICAgICAgICAgfCA1OCArKysrKysrKysrKy0tCiBzcmMvcGwvcGxwZ3Nx bC9zcmMvcGxfdW5yZXNlcnZlZF9rd2xpc3QuaCAgICAgfCAgMiArCiBzcmMvcGwvcGxwZ3Nx bC9zcmMvc3FsL3BscGdzcWxfY2FsbC5zcWwgICAgICAgfCA0NiArKysrKysrKysrCiAuLi4v cmVncmVzcy9leHBlY3RlZC9jcmVhdGVfcHJvY2VkdXJlLm91dCAgICAgfCA4NSArKysrKysr KysrKysrKysrKystCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfcHJvY2VkdXJlLnNx bCAgICAgfCA2MSArKysrKysrKysrKystCiAzMyBmaWxlcyBjaGFuZ2VkLCA3MTkgaW5zZXJ0 aW9ucygrKSwgNDEgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Nh dGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCA5ZWQyYjAy MGI3ZDkuLjFmZDdmZjgxYTc2NCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dz LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKQEAgLTYwMzEsNiArNjAz MSwxNiBAQCA8dGl0bGU+PHN0cnVjdG5hbWU+cGdfcHJvYzwvc3RydWN0bmFtZT4gQ29sdW1u czwvdGl0bGU+CiAgICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSBy b2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPnByb2R5bnJl czwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAg ICA8cGFyYT4KKyAgICAgICBGb3IgcHJvY2VkdXJlcywgdGhpcyByZWNvcmRzIHRoZSBtYXhp bXVtIG51bWJlciBvZiBkeW5hbWljIHJlc3VsdCBzZXRzCisgICAgICAgdGhlIHByb2NlZHVy ZSBtYXkgY3JlYXRlLiAgT3RoZXJ3aXNlIHplcm8uCisgICAgICA8L3BhcmE+PC9lbnRyeT4K KyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CiAgICAgICAg PHN0cnVjdGZpZWxkPnByb25hcmdzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+aW50MjwvdHlwZT4K ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9pbmZvcm1hdGlvbl9zY2hlbWEuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9pbmZvcm1hdGlvbl9zY2hlbWEuc2dtbAppbmRleCAzNTBjNzViYzMxZWYu LjVmYzlkYzIyYWVmZiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2luZm9ybWF0aW9uX3Nj aGVtYS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9pbmZvcm1hdGlvbl9zY2hlbWEuc2dtbApA QCAtNTg4NSw3ICs1ODg1LDggQEAgPHRpdGxlPjxzdHJ1Y3RuYW1lPnJvdXRpbmVzPC9zdHJ1 Y3RuYW1lPiBDb2x1bW5zPC90aXRsZT4KICAgICAgICA8c3RydWN0ZmllbGQ+bWF4X2R5bmFt aWNfcmVzdWx0X3NldHM8L3N0cnVjdGZpZWxkPiA8dHlwZT5jYXJkaW5hbF9udW1iZXI8L3R5 cGU+CiAgICAgICA8L3BhcmE+CiAgICAgICA8cGFyYT4KLSAgICAgICBBcHBsaWVzIHRvIGEg ZmVhdHVyZSBub3QgYXZhaWxhYmxlIGluIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9k dWN0bmFtZT4KKyAgICAgICBGb3IgYSBwcm9jZWR1cmUsIHRoZSBtYXhpbXVtIG51bWJlciBv ZiBkeW5hbWljIHJlc3VsdCBzZXRzLiAgT3RoZXJ3aXNlCisgICAgICAgemVyby4KICAgICAg IDwvcGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3BscGdzcWwuc2dtbCBiL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKaW5kZXggZGRh NjY3ZTY4ZThjLi5jOTEyOTU1OWE1NzAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wbHBn c3FsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbApAQCAtMzEyOCw3ICsz MTI4LDcgQEAgPHRpdGxlPkRlY2xhcmluZyBDdXJzb3IgVmFyaWFibGVzPC90aXRsZT4KICAg ICAgQW5vdGhlciB3YXkgaXMgdG8gdXNlIHRoZSBjdXJzb3IgZGVjbGFyYXRpb24gc3ludGF4 LAogICAgICB3aGljaCBpbiBnZW5lcmFsIGlzOgogPHN5bm9wc2lzPgotPHJlcGxhY2VhYmxl Pm5hbWU8L3JlcGxhY2VhYmxlPiA8b3B0aW9uYWw+IDxvcHRpb25hbD4gTk8gPC9vcHRpb25h bD4gU0NST0xMIDwvb3B0aW9uYWw+IENVUlNPUiA8b3B0aW9uYWw+ICggPHJlcGxhY2VhYmxl PmFyZ3VtZW50czwvcmVwbGFjZWFibGU+ICkgPC9vcHRpb25hbD4gRk9SIDxyZXBsYWNlYWJs ZT5xdWVyeTwvcmVwbGFjZWFibGU+OworPHJlcGxhY2VhYmxlPm5hbWU8L3JlcGxhY2VhYmxl PiA8b3B0aW9uYWw+IDxvcHRpb25hbD4gTk8gPC9vcHRpb25hbD4gU0NST0xMIDwvb3B0aW9u YWw+IENVUlNPUiA8b3B0aW9uYWw+IDxvcHRpb25hbD4gV0lUSCBSRVRVUk4gPC9vcHRpb25h bD4gKCA8cmVwbGFjZWFibGU+YXJndW1lbnRzPC9yZXBsYWNlYWJsZT4gKSA8L29wdGlvbmFs PiBGT1IgPHJlcGxhY2VhYmxlPnF1ZXJ5PC9yZXBsYWNlYWJsZT47CiA8L3N5bm9wc2lzPgog ICAgICAoPGxpdGVyYWw+Rk9SPC9saXRlcmFsPiBjYW4gYmUgcmVwbGFjZWQgYnkgPGxpdGVy YWw+SVM8L2xpdGVyYWw+IGZvcgogICAgICA8cHJvZHVjdG5hbWU+T3JhY2xlPC9wcm9kdWN0 bmFtZT4gY29tcGF0aWJpbGl0eS4pCkBAIC0zMTM2LDYgKzMxMzYsMTAgQEAgPHRpdGxlPkRl Y2xhcmluZyBDdXJzb3IgVmFyaWFibGVzPC90aXRsZT4KICAgICAgc2Nyb2xsaW5nIGJhY2t3 YXJkOyBpZiA8bGl0ZXJhbD5OTyBTQ1JPTEw8L2xpdGVyYWw+IGlzIHNwZWNpZmllZCwgYmFj a3dhcmQKICAgICAgZmV0Y2hlcyB3aWxsIGJlIHJlamVjdGVkOyBpZiBuZWl0aGVyIHNwZWNp ZmljYXRpb24gYXBwZWFycywgaXQgaXMKICAgICAgcXVlcnktZGVwZW5kZW50IHdoZXRoZXIg YmFja3dhcmQgZmV0Y2hlcyB3aWxsIGJlIGFsbG93ZWQuCisgICAgIElmIDxsaXRlcmFsPldJ VEggUkVUVVJOPC9saXRlcmFsPiBpcyBzcGVjaWZpZWQsIHRoZSByZXN1bHRzIG9mIHRoZQor ICAgICBjdXJzb3IsIGFmdGVyIGl0IGlzIG9wZW5lZCwgd2lsbCBiZSByZXR1cm5lZCBhcyBh IGR5bmFtaWMgcmVzdWx0IHNldDsgc2VlCisgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1kZWNs YXJlIi8+IGZvciBkZXRhaWxzLiAgKDxsaXRlcmFsPldJVEhPVVQKKyAgICAgUkVUVVJOPC9s aXRlcmFsPiBjYW4gYWxzbyBiZSBzcGVjaWZpZWQgYnV0IGhhcyBubyBlZmZlY3QuKQogICAg ICA8cmVwbGFjZWFibGU+YXJndW1lbnRzPC9yZXBsYWNlYWJsZT4sIGlmIHNwZWNpZmllZCwg aXMgYQogICAgICBjb21tYS1zZXBhcmF0ZWQgbGlzdCBvZiBwYWlycyA8bGl0ZXJhbD48cmVw bGFjZWFibGU+bmFtZTwvcmVwbGFjZWFibGU+CiAgICAgIDxyZXBsYWNlYWJsZT5kYXRhdHlw ZTwvcmVwbGFjZWFibGU+PC9saXRlcmFsPiB0aGF0IGRlZmluZSBuYW1lcyB0byBiZQpAQCAt MzE5NCw3ICszMTk4LDcgQEAgPHRpdGxlPk9wZW5pbmcgQ3Vyc29yczwvdGl0bGU+CiAgICAg IDx0aXRsZT48Y29tbWFuZD5PUEVOIEZPUjwvY29tbWFuZD4gPHJlcGxhY2VhYmxlPnF1ZXJ5 PC9yZXBsYWNlYWJsZT48L3RpdGxlPgogCiA8c3lub3BzaXM+Ci1PUEVOIDxyZXBsYWNlYWJs ZT51bmJvdW5kX2N1cnNvcnZhcjwvcmVwbGFjZWFibGU+IDxvcHRpb25hbD4gPG9wdGlvbmFs PiBOTyA8L29wdGlvbmFsPiBTQ1JPTEwgPC9vcHRpb25hbD4gRk9SIDxyZXBsYWNlYWJsZT5x dWVyeTwvcmVwbGFjZWFibGU+OworT1BFTiA8cmVwbGFjZWFibGU+dW5ib3VuZF9jdXJzb3J2 YXI8L3JlcGxhY2VhYmxlPiA8b3B0aW9uYWw+IDxvcHRpb25hbD4gTk8gPC9vcHRpb25hbD4g U0NST0xMIDwvb3B0aW9uYWw+IDxvcHRpb25hbD4gV0lUSCBSRVRVUk4gPC9vcHRpb25hbD4g Rk9SIDxyZXBsYWNlYWJsZT5xdWVyeTwvcmVwbGFjZWFibGU+OwogPC9zeW5vcHNpcz4KIAog ICAgICAgIDxwYXJhPgpAQCAtMzIxMiw4ICszMjE2LDkgQEAgPHRpdGxlPjxjb21tYW5kPk9Q RU4gRk9SPC9jb21tYW5kPiA8cmVwbGFjZWFibGU+cXVlcnk8L3JlcGxhY2VhYmxlPjwvdGl0 bGU+CiAgICAgICAgIHN1YnN0aXR1dGVkIGlzIHRoZSBvbmUgaXQgaGFzIGF0IHRoZSB0aW1l IG9mIHRoZSA8Y29tbWFuZD5PUEVOPC9jb21tYW5kPjsKICAgICAgICAgc3Vic2VxdWVudCBj aGFuZ2VzIHRvIHRoZSB2YXJpYWJsZSB3aWxsIG5vdCBhZmZlY3QgdGhlIGN1cnNvcidzCiAg ICAgICAgIGJlaGF2aW9yLgotICAgICAgICBUaGUgPGxpdGVyYWw+U0NST0xMPC9saXRlcmFs PiBhbmQgPGxpdGVyYWw+Tk8gU0NST0xMPC9saXRlcmFsPgotICAgICAgICBvcHRpb25zIGhh dmUgdGhlIHNhbWUgbWVhbmluZ3MgYXMgZm9yIGEgYm91bmQgY3Vyc29yLgorICAgICAgICBU aGUgb3B0aW9ucyA8bGl0ZXJhbD5TQ1JPTEw8L2xpdGVyYWw+LCA8bGl0ZXJhbD5OTyBTQ1JP TEw8L2xpdGVyYWw+LAorICAgICAgICBhbmQgPGxpdGVyYWw+V0lUSCBSRVRVUk48L2xpdGVy YWw+IGhhdmUgdGhlIHNhbWUgbWVhbmluZ3MgYXMgZm9yIGEKKyAgICAgICAgYm91bmQgY3Vy c29yLgogICAgICAgIDwvcGFyYT4KIAogICAgICAgIDxwYXJhPgpAQCAtMzU5MCw2ICszNTk1 LDIwIEBAIDx0aXRsZT5SZXR1cm5pbmcgQ3Vyc29yczwvdGl0bGU+CiBDT01NSVQ7CiA8L3By b2dyYW1saXN0aW5nPgogICAgICAgIDwvcGFyYT4KKworICAgICAgIDxub3RlPgorICAgICAg ICA8cGFyYT4KKyAgICAgICAgIFJldHVybmluZyBhIGN1cnNvciBmcm9tIGEgZnVuY3Rpb24g YXMgZGVzY3JpYmVkIGhlcmUgaXMgYSBzZXBhcmF0ZQorICAgICAgICAgbWVjaGFuaXNtIGZy b20gZGVjbGFyaW5nIGEgY3Vyc29yIDxsaXRlcmFsPldJVEggUkVUVVJOPC9saXRlcmFsPiwK KyAgICAgICAgIHdoaWNoIGF1dG9tYXRpY2FsbHkgcHJvZHVjZXMgYSByZXN1bHQgc2V0IGZv ciB0aGUgY2xpZW50IGlmIHRoZQorICAgICAgICAgY3Vyc29yIGlzIGxlZnQgb3BlbiB3aGVu IHJldHVybmluZyBmcm9tIHRoZSBwcm9jZWR1cmUuICBCb3RoCisgICAgICAgICBtZWNoYW5p c21zIGNhbiBiZSB1c2VkIHRvIGFjaGlldmUgc2ltaWxhciBlZmZlY3RzLiAgVGhlIGRpZmZl cmVuY2VzCisgICAgICAgICBhcmUgbWFpbmx5IGhvdyB0aGUgY2xpZW50IGFwcGxpY2F0aW9u IHByZWZlcnMgdG8gbWFuYWdlIHRoZSBjdXJzb3JzLgorICAgICAgICAgRnVydGhlcm1vcmUs IG90aGVyIFNRTCBpbXBsZW1lbnRhdGlvbnMgaGF2ZSBvdGhlciBwcm9ncmFtbWluZyBtb2Rl bHMKKyAgICAgICAgIHRoYXQgbWlnaHQgbWFwIG1vcmUgZWFzaWx5IHRvIG9uZSBvciB0aGUg b3RoZXIgbWVjaGFuaXNtIHdoZW4gZG9pbmcgYQorICAgICAgICAgbWlncmF0aW9uLgorICAg ICAgICA8L3BhcmE+CisgICAgICAgPC9ub3RlPgogICAgICA8L3NlY3QzPgogICAgPC9zZWN0 Mj4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwgYi9kb2Mvc3Jj L3NnbWwvcHJvdG9jb2wuc2dtbAppbmRleCA1ZmRkNDI5ZTA1ZDMuLmYxMTI5NTE2ODYzNiAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3Byb3RvY29sLnNnbWwKKysrIGIvZG9jL3NyYy9z Z21sL3Byb3RvY29sLnNnbWwKQEAgLTk1OSw2ICs5NTksMjUgQEAgPHRpdGxlPkV4dGVuZGVk IFF1ZXJ5PC90aXRsZT4KICAgICBhbiBlbXB0eSBxdWVyeSBzdHJpbmcpLCBFcnJvclJlc3Bv bnNlLCBvciBQb3J0YWxTdXNwZW5kZWQuCiAgICA8L3BhcmE+CiAKKyAgIDxwYXJhPgorICAg IEV4ZWN1dGluZyBhIHBvcnRhbCBtYXkgZ2l2ZSByaXNlIHRvIGEgPGZpcnN0dGVybT5keW5h bWljIHJlc3VsdCBzZXQKKyAgICBzZXF1ZW5jZTwvZmlyc3R0ZXJtPi4gIFRoYXQgbWVhbnMg dGhlIGNvbW1hbmQgY29udGFpbmVkIGluIHRoZSBwb3J0YWwKKyAgICBjcmVhdGVkIGFkZGl0 aW9uYWwgcmVzdWx0IHNldHMgYmV5b25kIHdoYXQgaXQgbm9ybWFsbHkgcmV0dXJucy4gIChU aGUKKyAgICB0eXBpY2FsIGV4YW1wbGUgaXMgY2FsbGluZyBhIHN0b3JlZCBwcm9jZWR1cmUg dGhhdCBjcmVhdGVzIGR5bmFtaWMgcmVzdWx0CisgICAgc2V0cy4pICBEeW5hbWljIHJlc3Vs dCBzZXRzIGFyZSBpc3N1ZWQgYWZ0ZXIgd2hhdGV2ZXIgcmVzcG9uc2UgdGhlIG1haW4KKyAg ICBjb21tYW5kIGlzc3VlZC4gIEVhY2ggZHluYW1pYyByZXN1bHQgc2V0IGJlZ2lucyB3aXRo IGEgUm93RGVzY3JpcHRpb24KKyAgICBtZXNzYWdlIGZvbGxvd2VkIGJ5IHplcm8gb3IgbW9y ZSBEYXRhUm93IG1lc3NhZ2VzLiAgKFNpbmNlLCBhcyBleHBsYWluZWQKKyAgICBhYm92ZSwg YW4gRXhlY3V0ZSBtZXNzYWdlIG5vcm1hbGx5IGRvZXMgbm90IHJlc3BvbmQgd2l0aCBhIFJv d0Rlc2NyaXB0aW9uLAorICAgIHRoZSBhcHBlYXJhbmNlIG9mIHRoZSBmaXJzdCBSb3dEZXNj cmlwdGlvbiBtYXJrcyB0aGUgZW5kIG9mIHRoZSBwcmltYXJ5CisgICAgcmVzdWx0IHNldCBv ZiB0aGUgcG9ydGFsIGFuZCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBmaXJzdCBkeW5hbWljIHJl c3VsdAorICAgIHNldC4pICBUaGUgQ29tbWFuZENvbXBsZXRlIG1lc3NhZ2UgdGhhdCBjb25j bHVkZXMgdGhlIEV4ZWN1dGUgbWVzc2FnZQorICAgIHJlc3BvbnNlIGZvbGxvd3MgPGVtcGhh c2lzPmFmdGVyPC9lbXBoYXNpcz4gYWxsIGR5bmFtaWMgcmVzdWx0IHNldHMuICBOb3RlCisg ICAgdGhhdCBkeW5hbWljIHJlc3VsdCBzZXRzIGNhbm5vdCwgYnkgdGhlaXIgbmF0dXJlLCBi ZSBkZWNyaWJlZCBwcmlvciB0byB0aGUKKyAgICBleGVjdXRpb24gb2YgdGhlIHBvcnRhbC4g IE11bHRpcGxlIGV4ZWN1dGlvbnMgb2YgdGhlIHNhbWUgcHJlcGFyZWQKKyAgICBzdGF0ZW1l bnQgY291bGQgcmVzdWx0IGluIGR5bmFtaWMgcmVzdWx0IHNldHMgd2l0aCBkaWZmZXJlbnQg cm93CisgICAgZGVzY3JpcHRpb25zIGJlaW5nIHJldHVybmVkLgorICAgPC9wYXJhPgorCiAg ICA8cGFyYT4KICAgICBBdCBjb21wbGV0aW9uIG9mIGVhY2ggc2VyaWVzIG9mIGV4dGVuZGVk LXF1ZXJ5IG1lc3NhZ2VzLCB0aGUgZnJvbnRlbmQKICAgICBzaG91bGQgaXNzdWUgYSBTeW5j IG1lc3NhZ2UuICBUaGlzIHBhcmFtZXRlcmxlc3MgbWVzc2FnZSBjYXVzZXMgdGhlCmRpZmYg LS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3Byb2NlZHVyZS5zZ21sIGIvZG9jL3Ny Yy9zZ21sL3JlZi9hbHRlcl9wcm9jZWR1cmUuc2dtbAppbmRleCAyMGE2MjM4ODVmNzQuLjc2 Yjk0MjVhMDhiNSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9wcm9jZWR1 cmUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3Byb2NlZHVyZS5zZ21sCkBA IC0zNCw2ICszNCw3IEBACiAKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPmFjdGlvbjwvcmVwbGFjZWFibGU+IGlzIG9uZSBvZjo8L3BocmFzZT4KIAor ICAgIERZTkFNSUMgUkVTVUxUIFNFVFMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmR5bmFtaWNfcmVzdWx0X3NldHM8L3JlcGxhY2VhYmxlPgogICAgIFsgRVhURVJOQUwgXSBT RUNVUklUWSBJTlZPS0VSIHwgWyBFWFRFUk5BTCBdIFNFQ1VSSVRZIERFRklORVIKICAgICBT RVQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNvbmZpZ3VyYXRpb25fcGFyYW1l dGVyPC9yZXBsYWNlYWJsZT4geyBUTyB8ID0gfSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj52YWx1ZTwvcmVwbGFjZWFibGU+IHwgREVGQVVMVCB9CiAgICAgU0VUIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb25maWd1cmF0aW9uX3BhcmFtZXRlcjwvcmVw bGFjZWFibGU+IEZST00gQ1VSUkVOVApAQCAtMTU3LDYgKzE1OCwxNyBAQCA8dGl0bGU+UGFy YW1ldGVyczwvdGl0bGU+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5Pgog CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPkRZTkFNSUMgUkVTVUxU IFNFVFMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmR5bmFtaWNfcmVzdWx0X3Nl dHM8L3JlcGxhY2VhYmxlPjwvbGl0ZXJhbD48L3Rlcm0+CisKKyAgICA8bGlzdGl0ZW0+Cisg ICAgIDxwYXJhPgorICAgICAgQ2hhbmdlcyB0aGUgZHluYW1pYyByZXN1bHQgc2V0cyBzZXR0 aW5nIG9mIHRoZSBwcm9jZWR1cmUuICBTZWUgPHhyZWYKKyAgICAgIGxpbmtlbmQ9InNxbC1j cmVhdGVwcm9jZWR1cmUiLz4gZm9yIG1vcmUgaW5mb3JtYXRpb24uCisgICAgIDwvcGFyYT4K KyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50 cnk+CiAgICAgPHRlcm0+PGxpdGVyYWw+PG9wdGlvbmFsPiBFWFRFUk5BTCA8L29wdGlvbmFs PiBTRUNVUklUWSBJTlZPS0VSPC9saXRlcmFsPjwvdGVybT4KICAgICA8dGVybT48bGl0ZXJh bD48b3B0aW9uYWw+IEVYVEVSTkFMIDwvb3B0aW9uYWw+IFNFQ1VSSVRZIERFRklORVI8L2xp dGVyYWw+PC90ZXJtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfcHJv Y2VkdXJlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9wcm9jZWR1cmUuc2dtbApp bmRleCAwM2ExNGM4Njg0NTguLjFjOTliMDBlZWY4YiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL3JlZi9jcmVhdGVfcHJvY2VkdXJlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9j cmVhdGVfcHJvY2VkdXJlLnNnbWwKQEAgLTI0LDYgKzI0LDcgQEAKIENSRUFURSBbIE9SIFJF UExBQ0UgXSBQUk9DRURVUkUKICAgICA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+ICggWyBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5hcmdtb2RlPC9yZXBsYWNlYWJsZT4gXSBbIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5hcmduYW1lPC9yZXBsYWNlYWJsZT4gXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+YXJndHlwZTwvcmVwbGFjZWFibGU+IFsgeyBERUZBVUxUIHwgPSB9IDxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kZWZhdWx0X2V4cHI8L3JlcGxhY2VhYmxlPiBdIFss IC4uLl0gXSApCiAgIHsgTEFOR1VBR0UgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PmxhbmdfbmFtZTwvcmVwbGFjZWFibGU+CisgICAgfCBEWU5BTUlDIFJFU1VMVCBTRVRTIDxy ZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5keW5hbWljX3Jlc3VsdF9zZXRzPC9yZXBs YWNlYWJsZT4KICAgICB8IFRSQU5TRk9STSB7IEZPUiBUWVBFIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj50eXBlX25hbWU8L3JlcGxhY2VhYmxlPiB9IFssIC4uLiBdCiAgICAg fCBbIEVYVEVSTkFMIF0gU0VDVVJJVFkgSU5WT0tFUiB8IFsgRVhURVJOQUwgXSBTRUNVUklU WSBERUZJTkVSCiAgICAgfCBTRVQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmNv bmZpZ3VyYXRpb25fcGFyYW1ldGVyPC9yZXBsYWNlYWJsZT4geyBUTyA8cmVwbGFjZWFibGUg Y2xhc3M9InBhcmFtZXRlciI+dmFsdWU8L3JlcGxhY2VhYmxlPiB8ID0gPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnZhbHVlPC9yZXBsYWNlYWJsZT4gfCBGUk9NIENVUlJFTlQg fQpAQCAtMTc2LDYgKzE3NywxOSBAQCA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CiAgICAg IDwvbGlzdGl0ZW0+CiAgICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgICA8dmFybGlzdGVudHJ5 PgorICAgICA8dGVybT48bGl0ZXJhbD5EWU5BTUlDIFJFU1VMVCBTRVRTIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5keW5hbWljX3Jlc3VsdF9zZXRzPC9yZXBsYWNlYWJsZT48 L2xpdGVyYWw+PC90ZXJtPgorCisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAg ICAgIFNwZWNpZmllcyBob3cgbWFueSBkeW5hbWljIHJlc3VsdCBzZXRzIHRoZSBwcm9jZWR1 cmUgcmV0dXJucyAoc2VlCisgICAgICAgPGxpdGVyYWw+PGxpbmsgbGlua2VuZD0ic3FsLWRl Y2xhcmUiPkRFQ0xBUkU8L2xpbms+IFdJVEgKKyAgICAgICBSRVRVUk48L2xpdGVyYWw+KS4g IFRoZSBkZWZhdWx0IGlzIDAuICBJZiBhIHByb2NlZHVyZSByZXR1cm5zIG1vcmUKKyAgICAg ICByZXN1bHQgc2V0cyB0aGFuIGRlY2xhcmVkLCBhIHdhcm5pbmcgaXMgcmFpc2VkLgorICAg ICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgIDwvdmFybGlzdGVudHJ5PgorCiAg ICAgPHZhcmxpc3RlbnRyeT4KICAgICAgPHRlcm0+PGxpdGVyYWw+VFJBTlNGT1JNIHsgRk9S IFRZUEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnR5cGVfbmFtZTwvcmVwbGFj ZWFibGU+IH0gWywgLi4uIF0gfTwvbGl0ZXJhbD48L3Rlcm0+CiAKZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9yZWYvZGVjbGFyZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9kZWNsYXJl LnNnbWwKaW5kZXggYmJiZDMzNWJkMGJmLi5hNmZmMjU2N2VhM2IgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9yZWYvZGVjbGFyZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZGVj bGFyZS5zZ21sCkBAIC0yNyw3ICsyNyw4IEBACiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9w c2lzPgogREVDTEFSRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVw bGFjZWFibGU+IFsgQklOQVJZIF0gWyBBU0VOU0lUSVZFIHwgSU5TRU5TSVRJVkUgXSBbIFsg Tk8gXSBTQ1JPTEwgXQotICAgIENVUlNPUiBbIHsgV0lUSCB8IFdJVEhPVVQgfSBIT0xEIF0g Rk9SIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5xdWVyeTwvcmVwbGFjZWFibGU+ CisgICAgQ1VSU09SIFsgeyBXSVRIIHwgV0lUSE9VVCB9IEhPTEQgXSBbIHsgV0lUSCB8IFdJ VEhPVVQgfSBSRVRVUk4gXQorICAgIEZPUiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cXVlcnk8L3JlcGxhY2VhYmxlPgogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lzZGl2 PgogCkBAIC0xMzEsNiArMTMyLDIyIEBAIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KICAg ICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0ZW50cnk+ CisgICAgPHRlcm0+PGxpdGVyYWw+V0lUSCBSRVRVUk48L2xpdGVyYWw+PC90ZXJtPgorICAg IDx0ZXJtPjxsaXRlcmFsPldJVEhPVVQgUkVUVVJOPC9saXRlcmFsPjwvdGVybT4KKyAgICA8 bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhpcyBvcHRpb24gaXMgb25seSB2YWxp ZCBmb3IgY3Vyc29ycyBkZWZpbmVkIGluc2lkZSBhIHByb2NlZHVyZS4KKyAgICAgIDxsaXRl cmFsPldJVEggUkVUVVJOPC9saXRlcmFsPiBzcGVjaWZpZXMgdGhhdCB0aGUgY3Vyc29yJ3Mg cmVzdWx0IHJvd3MKKyAgICAgIHdpbGwgYmUgcHJvdmlkZWQgYXMgYSByZXN1bHQgc2V0IG9m IHRoZSBwcm9jZWR1cmUgaW52b2NhdGlvbi4gIFRvCisgICAgICBhY2NvbXBsaXNoIHRoYXQs IHRoZSBjdXJzb3IgbXVzdCBiZSBsZWZ0IG9wZW4gYXQgdGhlIGVuZCBvZiB0aGUKKyAgICAg IHByb2NlZHVyZS4gIElmIG11bHRpcGxlIDxsaXRlcmFsPldJVEggUkVUVVJOPC9saXRlcmFs PiBjdXJzb3JzIGFyZQorICAgICAgZGVjbGFyZWQsIHRoZW4gdGhlaXIgcmVzdWx0cyB3aWxs IGJlIHJldHVybmVkIGluIHRoZSBvcmRlciB0aGV5IHdlcmUKKyAgICAgIGNyZWF0ZWQuICA8 bGl0ZXJhbD5XSVRIT1VUIFJFVFVSTjwvbGl0ZXJhbD4gaXMgdGhlIGRlZmF1bHQuCisgICAg IDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2 YXJsaXN0ZW50cnk+CiAgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIi PnF1ZXJ5PC9yZXBsYWNlYWJsZT48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpAQCAtMzIzLDYg KzM0MCwyMSBAQCA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgogICAgU2VlIDx4cmVmIGxpbmtl bmQ9InNxbC1mZXRjaCIvPiBmb3IgbW9yZQogICAgZXhhbXBsZXMgb2YgY3Vyc29yIHVzYWdl LgogICA8L3BhcmE+CisKKyAgPHBhcmE+CisgICBUaGlzIGV4YW1wbGUgc2hvd3MgaG93IHRv IHJldHVybiBtdWx0aXBsZSByZXN1bHQgc2V0cyBmcm9tIGEgcHJvY2VkdXJlOgorPHByb2dy YW1saXN0aW5nPgorQ1JFQVRFIFBST0NFRFVSRSB0ZXN0KCkKK0xBTkdVQUdFIFNRTAorQVMg JCQKK0RFQ0xBUkUgYSBDVVJTT1IgV0lUSCBSRVRVUk4gRk9SIFNFTEVDVCAqIEZST00gdGJs MTsKK0RFQ0xBUkUgYiBDVVJTT1IgV0lUSCBSRVRVUk4gRk9SIFNFTEVDVCAqIEZST00gdGJs MjsKKyQkOworCitDQUxMIHRlc3QoKTsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisgICBUaGUgcmVz dWx0cyBvZiB0aGUgdHdvIGN1cnNvcnMgd2lsbCBiZSByZXR1cm5lZCBpbiBvcmRlciBmcm9t IHRoaXMgY2FsbC4KKyAgPC9wYXJhPgogIDwvcmVmc2VjdDE+CiAKICA8cmVmc2VjdDE+CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2luZm9ybWF0aW9uX3NjaGVtYS5zcWwg Yi9zcmMvYmFja2VuZC9jYXRhbG9nL2luZm9ybWF0aW9uX3NjaGVtYS5zcWwKaW5kZXggMTg3 MjVhMDJkMWZiLi43YjQ0MGU3NjEzNzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvaW5mb3JtYXRpb25fc2NoZW1hLnNxbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2lu Zm9ybWF0aW9uX3NjaGVtYS5zcWwKQEAgLTE1OTMsNyArMTU5Myw3IEBAIENSRUFURSBWSUVX IHJvdXRpbmVzIEFTCiAgICAgICAgICAgICAgQ0FTRSBXSEVOIHAucHJvaXNzdHJpY3QgVEhF TiAnWUVTJyBFTFNFICdOTycgRU5EIEVORCBBUyB5ZXNfb3Jfbm8pIEFTIGlzX251bGxfY2Fs bCwKICAgICAgICAgICAgQ0FTVChudWxsIEFTIGNoYXJhY3Rlcl9kYXRhKSBBUyBzcWxfcGF0 aCwKICAgICAgICAgICAgQ0FTVCgnWUVTJyBBUyB5ZXNfb3Jfbm8pIEFTIHNjaGVtYV9sZXZl bF9yb3V0aW5lLAotICAgICAgICAgICBDQVNUKDAgQVMgY2FyZGluYWxfbnVtYmVyKSBBUyBt YXhfZHluYW1pY19yZXN1bHRfc2V0cywKKyAgICAgICAgICAgQ0FTVChwLnByb2R5bnJlcyBB UyBjYXJkaW5hbF9udW1iZXIpIEFTIG1heF9keW5hbWljX3Jlc3VsdF9zZXRzLAogICAgICAg ICAgICBDQVNUKG51bGwgQVMgeWVzX29yX25vKSBBUyBpc191c2VyX2RlZmluZWRfY2FzdCwK ICAgICAgICAgICAgQ0FTVChudWxsIEFTIHllc19vcl9ubykgQVMgaXNfaW1wbGljaXRseV9p bnZvY2FibGUsCiAgICAgICAgICAgIENBU1QoQ0FTRSBXSEVOIHAucHJvc2VjZGVmIFRIRU4g J0RFRklORVInIEVMU0UgJ0lOVk9LRVInIEVORCBBUyBjaGFyYWN0ZXJfZGF0YSkgQVMgc2Vj dXJpdHlfdHlwZSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfYWdncmVn YXRlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2FnZ3JlZ2F0ZS5jCmluZGV4IGE5ODQ0 NWI3NDFhMS4uZTlmY2M0NTBiZmY5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9n L3BnX2FnZ3JlZ2F0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfYWdncmVnYXRl LmMKQEAgLTY0MCw3ICs2NDAsOCBAQCBBZ2dyZWdhdGVDcmVhdGUoY29uc3QgY2hhciAqYWdn TmFtZSwKIAkJCQkJCQkgUG9pbnRlckdldERhdHVtKE5VTEwpLCAvKiBwcm9jb25maWcgKi8K IAkJCQkJCQkgSW52YWxpZE9pZCwJLyogbm8gcHJvc3VwcG9ydCAqLwogCQkJCQkJCSAxLCAv KiBwcm9jb3N0ICovCi0JCQkJCQkJIDApOwkvKiBwcm9yb3dzICovCisJCQkJCQkJIDAsCS8q IHByb3Jvd3MgKi8KKwkJCQkJCQkgMCk7CS8qIHByb2R5bnJlcyAqLwogCXByb2NPaWQgPSBt eXNlbGYub2JqZWN0SWQ7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ19wcm9jLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Byb2MuYwppbmRleCA2OWY0 M2FhMGVjYmYuLmQ3ZTNkMjMxOWUzZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxv Zy9wZ19wcm9jLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19wcm9jLmMKQEAgLTk1 LDcgKzk1LDggQEAgUHJvY2VkdXJlQ3JlYXRlKGNvbnN0IGNoYXIgKnByb2NlZHVyZU5hbWUs CiAJCQkJRGF0dW0gcHJvY29uZmlnLAogCQkJCU9pZCBwcm9zdXBwb3J0LAogCQkJCWZsb2F0 NCBwcm9jb3N0LAotCQkJCWZsb2F0NCBwcm9yb3dzKQorCQkJCWZsb2F0NCBwcm9yb3dzLAor CQkJCWludCBkeW5yZXMpCiB7CiAJT2lkCQkJcmV0dmFsOwogCWludAkJCXBhcmFtZXRlckNv dW50OwpAQCAtMzE0LDYgKzMxNSw3IEBAIFByb2NlZHVyZUNyZWF0ZShjb25zdCBjaGFyICpw cm9jZWR1cmVOYW1lLAogCXZhbHVlc1tBbnVtX3BnX3Byb2NfcHJvcmV0c2V0IC0gMV0gPSBC b29sR2V0RGF0dW0ocmV0dXJuc1NldCk7CiAJdmFsdWVzW0FudW1fcGdfcHJvY19wcm92b2xh dGlsZSAtIDFdID0gQ2hhckdldERhdHVtKHZvbGF0aWxpdHkpOwogCXZhbHVlc1tBbnVtX3Bn X3Byb2NfcHJvcGFyYWxsZWwgLSAxXSA9IENoYXJHZXREYXR1bShwYXJhbGxlbCk7CisJdmFs dWVzW0FudW1fcGdfcHJvY19wcm9keW5yZXMgLSAxXSA9IEludDMyR2V0RGF0dW0oZHlucmVz KTsKIAl2YWx1ZXNbQW51bV9wZ19wcm9jX3Byb25hcmdzIC0gMV0gPSBVSW50MTZHZXREYXR1 bShwYXJhbWV0ZXJDb3VudCk7CiAJdmFsdWVzW0FudW1fcGdfcHJvY19wcm9uYXJnZGVmYXVs dHMgLSAxXSA9IFVJbnQxNkdldERhdHVtKGxpc3RfbGVuZ3RoKHBhcmFtZXRlckRlZmF1bHRz KSk7CiAJdmFsdWVzW0FudW1fcGdfcHJvY19wcm9yZXR0eXBlIC0gMV0gPSBPYmplY3RJZEdl dERhdHVtKHJldHVyblR5cGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9z cWxfZmVhdHVyZXMudHh0IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zcWxfZmVhdHVyZXMudHh0 CmluZGV4IGRhN2M5Yzc3MmUwOS4uZWI4YTI0NjVlODUzIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jYXRhbG9nL3NxbF9mZWF0dXJlcy50eHQKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxv Zy9zcWxfZmVhdHVyZXMudHh0CkBAIC00ODYsNyArNDg2LDcgQEAgVDQzMwlNdWx0aWFyZ3Vt ZW50IEdST1VQSU5HIGZ1bmN0aW9uCQkJWUVTCiBUNDM0CUdST1VQIEJZIERJU1RJTkNUCQkJ WUVTCQogVDQ0MQlBQlMgYW5kIE1PRCBmdW5jdGlvbnMJCQlZRVMJCiBUNDYxCVN5bW1ldHJp YyBCRVRXRUVOIHByZWRpY2F0ZQkJCVlFUwkKLVQ0NzEJUmVzdWx0IHNldHMgcmV0dXJuIHZh bHVlCQkJTk8JCitUNDcxCVJlc3VsdCBzZXRzIHJldHVybiB2YWx1ZQkJCU5PCXBhcnRpYWxs eSBzdXBwb3J0ZWQKIFQ0NzIJREVTQ1JJQkUgQ1VSU09SCQkJTk8JCiBUNDkxCUxBVEVSQUwg ZGVyaXZlZCB0YWJsZQkJCVlFUwkKIFQ0OTUJQ29tYmluZWQgZGF0YSBjaGFuZ2UgYW5kIHJl dHJpZXZhbAkJCU5PCWRpZmZlcmVudCBzeW50YXgKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2Z1bmN0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZnVuY3Rp b25jbWRzLmMKaW5kZXggNTc0ODlmNjVmMmU3Li5hNzQwMjM2MzdmNmQgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Z1bmN0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2Z1bmN0aW9uY21kcy5jCkBAIC03Miw2ICs3Miw3IEBACiAjaW5jbHVkZSAi dXRpbHMvZ3VjLmgiCiAjaW5jbHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCiAjaW5jbHVkZSAi dXRpbHMvbWVtdXRpbHMuaCIKKyNpbmNsdWRlICJ1dGlscy9wb3J0YWwuaCIKICNpbmNsdWRl ICJ1dGlscy9yZWwuaCIKICNpbmNsdWRlICJ1dGlscy9zbmFwbWdyLmgiCiAjaW5jbHVkZSAi dXRpbHMvc3lzY2FjaGUuaCIKQEAgLTUxMyw3ICs1MTQsOCBAQCBjb21wdXRlX2NvbW1vbl9h dHRyaWJ1dGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJIERlZkVsZW0gKipjb3N0X2l0 ZW0sCiAJCQkJCQkgRGVmRWxlbSAqKnJvd3NfaXRlbSwKIAkJCQkJCSBEZWZFbGVtICoqc3Vw cG9ydF9pdGVtLAotCQkJCQkJIERlZkVsZW0gKipwYXJhbGxlbF9pdGVtKQorCQkJCQkJIERl ZkVsZW0gKipwYXJhbGxlbF9pdGVtLAorCQkJCQkJIERlZkVsZW0gKipkeW5yZXNfaXRlbSkK IHsKIAlpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1lLCAidm9sYXRpbGl0eSIpID09IDApCiAJ ewpAQCAtNTg5LDEyICs1OTEsMjggQEAgY29tcHV0ZV9jb21tb25fYXR0cmlidXRlKFBhcnNl U3RhdGUgKnBzdGF0ZSwKIAogCQkqcGFyYWxsZWxfaXRlbSA9IGRlZmVsOwogCX0KKwllbHNl IGlmIChzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJkeW5hbWljX3Jlc3VsdF9zZXRzIikgPT0g MCkKKwl7CisJCWlmICghaXNfcHJvY2VkdXJlKQorCQkJZ290byBmdW5jdGlvbl9lcnJvcjsK KwkJaWYgKCpkeW5yZXNfaXRlbSkKKwkJCWVycm9yQ29uZmxpY3RpbmdEZWZFbGVtKGRlZmVs LCBwc3RhdGUpOworCisJCSpkeW5yZXNfaXRlbSA9IGRlZmVsOworCX0KIAllbHNlCiAJCXJl dHVybiBmYWxzZTsKIAogCS8qIFJlY29nbml6ZWQgYW4gb3B0aW9uICovCiAJcmV0dXJuIHRy dWU7CiAKK2Z1bmN0aW9uX2Vycm9yOgorCWVyZXBvcnQoRVJST1IsCisJCQkoZXJyY29kZShF UlJDT0RFX0lOVkFMSURfRlVOQ1RJT05fREVGSU5JVElPTiksCisJCQkgZXJybXNnKCJpbnZh bGlkIGF0dHJpYnV0ZSBpbiBmdW5jdGlvbiBkZWZpbml0aW9uIiksCisJCQkgcGFyc2VyX2Vy cnBvc2l0aW9uKHBzdGF0ZSwgZGVmZWwtPmxvY2F0aW9uKSkpOworCXJldHVybiBmYWxzZTsK KwogcHJvY2VkdXJlX2Vycm9yOgogCWVyZXBvcnQoRVJST1IsCiAJCQkoZXJyY29kZShFUlJD T0RFX0lOVkFMSURfRlVOQ1RJT05fREVGSU5JVElPTiksCkBAIC03MzEsNyArNzQ5LDggQEAg Y29tcHV0ZV9mdW5jdGlvbl9hdHRyaWJ1dGVzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJ CQlmbG9hdDQgKnByb2Nvc3QsCiAJCQkJCQkJZmxvYXQ0ICpwcm9yb3dzLAogCQkJCQkJCU9p ZCAqcHJvc3VwcG9ydCwKLQkJCQkJCQljaGFyICpwYXJhbGxlbF9wKQorCQkJCQkJCWNoYXIg KnBhcmFsbGVsX3AsCisJCQkJCQkJaW50ICpkeW5yZXNfcCkKIHsKIAlMaXN0Q2VsbCAgICpv cHRpb247CiAJRGVmRWxlbSAgICAqYXNfaXRlbSA9IE5VTEw7CkBAIC03NDcsNiArNzY2LDcg QEAgY29tcHV0ZV9mdW5jdGlvbl9hdHRyaWJ1dGVzKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAlE ZWZFbGVtICAgICpyb3dzX2l0ZW0gPSBOVUxMOwogCURlZkVsZW0gICAgKnN1cHBvcnRfaXRl bSA9IE5VTEw7CiAJRGVmRWxlbSAgICAqcGFyYWxsZWxfaXRlbSA9IE5VTEw7CisJRGVmRWxl bSAgICAqZHlucmVzX2l0ZW0gPSBOVUxMOwogCiAJZm9yZWFjaChvcHRpb24sIG9wdGlvbnMp CiAJewpAQCAtNzkyLDcgKzgxMiw4IEBAIGNvbXB1dGVfZnVuY3Rpb25fYXR0cmlidXRlcyhQ YXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJICAmY29zdF9pdGVtLAogCQkJCQkJCQkJ CSAgJnJvd3NfaXRlbSwKIAkJCQkJCQkJCQkgICZzdXBwb3J0X2l0ZW0sCi0JCQkJCQkJCQkJ ICAmcGFyYWxsZWxfaXRlbSkpCisJCQkJCQkJCQkJICAmcGFyYWxsZWxfaXRlbSwKKwkJCQkJ CQkJCQkgICZkeW5yZXNfaXRlbSkpCiAJCXsKIAkJCS8qIHJlY29nbml6ZWQgY29tbW9uIG9w dGlvbiAqLwogCQkJY29udGludWU7CkBAIC04NDAsNiArODYxLDExIEBAIGNvbXB1dGVfZnVu Y3Rpb25fYXR0cmlidXRlcyhQYXJzZVN0YXRlICpwc3RhdGUsCiAJCSpwcm9zdXBwb3J0ID0g aW50ZXJwcmV0X2Z1bmNfc3VwcG9ydChzdXBwb3J0X2l0ZW0pOwogCWlmIChwYXJhbGxlbF9p dGVtKQogCQkqcGFyYWxsZWxfcCA9IGludGVycHJldF9mdW5jX3BhcmFsbGVsKHBhcmFsbGVs X2l0ZW0pOworCWlmIChkeW5yZXNfaXRlbSkKKwl7CisJCSpkeW5yZXNfcCA9IGludFZhbChk eW5yZXNfaXRlbS0+YXJnKTsKKwkJQXNzZXJ0KCpkeW5yZXNfcCA+PSAwKTsJLyogZW5mb3Jj ZWQgYnkgcGFyc2VyICovCisJfQogfQogCiAKQEAgLTEwNTEsNiArMTA3Nyw3IEBAIENyZWF0 ZUZ1bmN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlRnVuY3Rpb25TdG10ICpzdG10 KQogCUZvcm1fcGdfbGFuZ3VhZ2UgbGFuZ3VhZ2VTdHJ1Y3Q7CiAJTGlzdAkgICAqYXNfY2xh dXNlOwogCWNoYXIJCXBhcmFsbGVsOworCWludAkJCWR5bnJlczsKIAogCS8qIENvbnZlcnQg bGlzdCBvZiBuYW1lcyB0byBhIG5hbWUgYW5kIG5hbWVzcGFjZSAqLwogCW5hbWVzcGFjZUlk ID0gUXVhbGlmaWVkTmFtZUdldENyZWF0aW9uTmFtZXNwYWNlKHN0bXQtPmZ1bmNuYW1lLApA QCAtMTA3NSw2ICsxMTAyLDcgQEAgQ3JlYXRlRnVuY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRl LCBDcmVhdGVGdW5jdGlvblN0bXQgKnN0bXQpCiAJcHJvcm93cyA9IC0xOwkJCQkvKiBpbmRp Y2F0ZXMgbm90IHNldCAqLwogCXByb3N1cHBvcnQgPSBJbnZhbGlkT2lkOwogCXBhcmFsbGVs ID0gUFJPUEFSQUxMRUxfVU5TQUZFOworCWR5bnJlcyA9IDA7CiAKIAkvKiBFeHRyYWN0IG5v bi1kZWZhdWx0IGF0dHJpYnV0ZXMgZnJvbSBzdG10LT5vcHRpb25zIGxpc3QgKi8KIAljb21w dXRlX2Z1bmN0aW9uX2F0dHJpYnV0ZXMocHN0YXRlLApAQCAtMTA4NCw3ICsxMTEyLDcgQEAg Q3JlYXRlRnVuY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVGdW5jdGlvblN0bXQg KnN0bXQpCiAJCQkJCQkJCSZpc1dpbmRvd0Z1bmMsICZ2b2xhdGlsaXR5LAogCQkJCQkJCQkm aXNTdHJpY3QsICZzZWN1cml0eSwgJmlzTGVha1Byb29mLAogCQkJCQkJCQkmcHJvY29uZmln LCAmcHJvY29zdCwgJnByb3Jvd3MsCi0JCQkJCQkJCSZwcm9zdXBwb3J0LCAmcGFyYWxsZWwp OworCQkJCQkJCQkmcHJvc3VwcG9ydCwgJnBhcmFsbGVsLCAmZHlucmVzKTsKIAogCWlmICgh bGFuZ3VhZ2UpCiAJewpAQCAtMTI4NSw3ICsxMzEzLDggQEAgQ3JlYXRlRnVuY3Rpb24oUGFy c2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVGdW5jdGlvblN0bXQgKnN0bXQpCiAJCQkJCQkgICBQ b2ludGVyR2V0RGF0dW0ocHJvY29uZmlnKSwKIAkJCQkJCSAgIHByb3N1cHBvcnQsCiAJCQkJ CQkgICBwcm9jb3N0LAotCQkJCQkJICAgcHJvcm93cyk7CisJCQkJCQkgICBwcm9yb3dzLAor CQkJCQkJICAgZHlucmVzKTsKIH0KIAogLyoKQEAgLTEzNjIsNiArMTM5MSw3IEBAIEFsdGVy RnVuY3Rpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlckZ1bmN0aW9uU3RtdCAqc3RtdCkK IAlEZWZFbGVtICAgICpyb3dzX2l0ZW0gPSBOVUxMOwogCURlZkVsZW0gICAgKnN1cHBvcnRf aXRlbSA9IE5VTEw7CiAJRGVmRWxlbSAgICAqcGFyYWxsZWxfaXRlbSA9IE5VTEw7CisJRGVm RWxlbSAgICAqZHlucmVzX2l0ZW0gPSBOVUxMOwogCU9iamVjdEFkZHJlc3MgYWRkcmVzczsK IAogCXJlbCA9IHRhYmxlX29wZW4oUHJvY2VkdXJlUmVsYXRpb25JZCwgUm93RXhjbHVzaXZl TG9jayk7CkBAIC0xNDA1LDcgKzE0MzUsOCBAQCBBbHRlckZ1bmN0aW9uKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQWx0ZXJGdW5jdGlvblN0bXQgKnN0bXQpCiAJCQkJCQkJCQkgJmNvc3RfaXRl bSwKIAkJCQkJCQkJCSAmcm93c19pdGVtLAogCQkJCQkJCQkJICZzdXBwb3J0X2l0ZW0sCi0J CQkJCQkJCQkgJnBhcmFsbGVsX2l0ZW0pID09IGZhbHNlKQorCQkJCQkJCQkJICZwYXJhbGxl bF9pdGVtLAorCQkJCQkJCQkJICZkeW5yZXNfaXRlbSkgPT0gZmFsc2UpCiAJCQllbG9nKEVS Uk9SLCAib3B0aW9uIFwiJXNcIiBub3QgcmVjb2duaXplZCIsIGRlZmVsLT5kZWZuYW1lKTsK IAl9CiAKQEAgLTE0NjcsNiArMTQ5OCw4IEBAIEFsdGVyRnVuY3Rpb24oUGFyc2VTdGF0ZSAq cHN0YXRlLCBBbHRlckZ1bmN0aW9uU3RtdCAqc3RtdCkKIAl9CiAJaWYgKHBhcmFsbGVsX2l0 ZW0pCiAJCXByb2NGb3JtLT5wcm9wYXJhbGxlbCA9IGludGVycHJldF9mdW5jX3BhcmFsbGVs KHBhcmFsbGVsX2l0ZW0pOworCWlmIChkeW5yZXNfaXRlbSkKKwkJcHJvY0Zvcm0tPnByb2R5 bnJlcyA9IGludFZhbChkeW5yZXNfaXRlbS0+YXJnKTsKIAlpZiAoc2V0X2l0ZW1zKQogCXsK IAkJRGF0dW0JCWRhdHVtOwpAQCAtMjE0NCw2ICsyMTc3LDE3IEBAIEV4ZWN1dGVEb1N0bXQo UGFyc2VTdGF0ZSAqcHN0YXRlLCBEb1N0bXQgKnN0bXQsIGJvb2wgYXRvbWljKQogCU9pZEZ1 bmN0aW9uQ2FsbDEobGFuaW5saW5lLCBQb2ludGVyR2V0RGF0dW0oY29kZWJsb2NrKSk7CiB9 CiAKK3N0YXRpYyBMaXN0ICpwcm9jZWR1cmVfc3RhY2s7CisKK09pZAorQ3VycmVudFByb2Nl ZHVyZSh2b2lkKQoreworCWlmICghcHJvY2VkdXJlX3N0YWNrKQorCQlyZXR1cm4gSW52YWxp ZE9pZDsKKwllbHNlCisJCXJldHVybiBsbGFzdF9vaWQocHJvY2VkdXJlX3N0YWNrKTsKK30K KwogLyoKICAqIEV4ZWN1dGUgQ0FMTCBzdGF0ZW1lbnQKICAqCkBAIC0yMTgzLDYgKzIyMjcs NyBAQCBFeGVjdXRlQ2FsbFN0bXQoQ2FsbFN0bXQgKnN0bXQsIFBhcmFtTGlzdEluZm8gcGFy YW1zLCBib29sIGF0b21pYywgRGVzdFJlY2VpdmVyCiAJQWNsUmVzdWx0CWFjbHJlc3VsdDsK IAlGbWdySW5mbwlmbGluZm87CiAJQ2FsbENvbnRleHQgKmNhbGxjb250ZXh0OworCWludAkJ CXByb2R5bnJlczsKIAlFU3RhdGUJICAgKmVzdGF0ZTsKIAlFeHByQ29udGV4dCAqZWNvbnRl eHQ7CiAJSGVhcFR1cGxlCXRwOwpAQCAtMjIyMyw2ICsyMjY4LDggQEAgRXhlY3V0ZUNhbGxT dG10KENhbGxTdG10ICpzdG10LCBQYXJhbUxpc3RJbmZvIHBhcmFtcywgYm9vbCBhdG9taWMs IERlc3RSZWNlaXZlcgogCWlmICgoKEZvcm1fcGdfcHJvYykgR0VUU1RSVUNUKHRwKSktPnBy b3NlY2RlZikKIAkJY2FsbGNvbnRleHQtPmF0b21pYyA9IHRydWU7CiAKKwlwcm9keW5yZXMg PSAoKEZvcm1fcGdfcHJvYykgR0VUU1RSVUNUKHRwKSktPnByb2R5bnJlczsKKwogCVJlbGVh c2VTeXNDYWNoZSh0cCk7CiAKIAkvKiBzYWZldHkgY2hlY2s7IHNlZSBFeGVjSW5pdEZ1bmMo KSAqLwpAQCAtMjI4Myw3ICsyMzMwLDE4IEBAIEV4ZWN1dGVDYWxsU3RtdChDYWxsU3RtdCAq c3RtdCwgUGFyYW1MaXN0SW5mbyBwYXJhbXMsIGJvb2wgYXRvbWljLCBEZXN0UmVjZWl2ZXIK IAogCS8qIEhlcmUgd2UgYWN0dWFsbHkgY2FsbCB0aGUgcHJvY2VkdXJlICovCiAJcGdzdGF0 X2luaXRfZnVuY3Rpb25fdXNhZ2UoZmNpbmZvLCAmZmN1c2FnZSk7Ci0JcmV0dmFsID0gRnVu Y3Rpb25DYWxsSW52b2tlKGZjaW5mbyk7CisKKwlwcm9jZWR1cmVfc3RhY2sgPSBsYXBwZW5k X29pZChwcm9jZWR1cmVfc3RhY2ssIGZleHByLT5mdW5jaWQpOworCVBHX1RSWSgpOworCXsK KwkJcmV0dmFsID0gRnVuY3Rpb25DYWxsSW52b2tlKGZjaW5mbyk7CisJfQorCVBHX0ZJTkFM TFkoKTsKKwl7CisJCXByb2NlZHVyZV9zdGFjayA9IGxpc3RfZGVsZXRlX2xhc3QocHJvY2Vk dXJlX3N0YWNrKTsKKwl9CisJUEdfRU5EX1RSWSgpOworCiAJcGdzdGF0X2VuZF9mdW5jdGlv bl91c2FnZSgmZmN1c2FnZSwgdHJ1ZSk7CiAKIAkvKiBIYW5kbGUgdGhlIHByb2NlZHVyZSdz IG91dHB1dHMgKi8KQEAgLTIzNDQsNiArMjQwMiwxMyBAQCBFeGVjdXRlQ2FsbFN0bXQoQ2Fs bFN0bXQgKnN0bXQsIFBhcmFtTGlzdEluZm8gcGFyYW1zLCBib29sIGF0b21pYywgRGVzdFJl Y2VpdmVyCiAJCQkgZmV4cHItPmZ1bmNyZXN1bHR0eXBlKTsKIAogCUZyZWVFeGVjdXRvclN0 YXRlKGVzdGF0ZSk7CisKKwlDbG9zZU90aGVyUmV0dXJuYWJsZUN1cnNvcnMoZmV4cHItPmZ1 bmNpZCk7CisKKwlpZiAobGlzdF9sZW5ndGgoR2V0UmV0dXJuYWJsZUN1cnNvcnMoKSkgPiBw cm9keW5yZXMpCisJCWVyZXBvcnQoV0FSTklORywKKwkJCQllcnJjb2RlKEVSUkNPREVfV0FS TklOR19BVFRFTVBUX1RPX1JFVFVSTl9UT09fTUFOWV9SRVNVTFRfU0VUUyksCisJCQkJZXJy bXNnKCJhdHRlbXB0IHRvIHJldHVybiB0b28gbWFueSByZXN1bHQgc2V0cyIpKTsKIH0KIAog LyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3BvcnRhbGNtZHMuYyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3BvcnRhbGNtZHMuYwppbmRleCAwOWJjZmQ1OWJlNmIuLjcw NDYyNjdmN2YwZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvcG9ydGFsY21k cy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3BvcnRhbGNtZHMuYwpAQCAtMjQsNiAr MjQsNyBAQAogI2luY2x1ZGUgPGxpbWl0cy5oPgogCiAjaW5jbHVkZSAiYWNjZXNzL3hhY3Qu aCIKKyNpbmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy9w b3J0YWxjbWRzLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRl ICJleGVjdXRvci90c3RvcmVSZWNlaXZlci5oIgpAQCAtMTQwLDYgKzE0MSwyOCBAQCBQZXJm b3JtQ3Vyc29yT3BlbihQYXJzZVN0YXRlICpwc3RhdGUsIERlY2xhcmVDdXJzb3JTdG10ICpj c3RtdCwgUGFyYW1MaXN0SW5mbyBwYQogCQkJcG9ydGFsLT5jdXJzb3JPcHRpb25zIHw9IENV UlNPUl9PUFRfTk9fU0NST0xMOwogCX0KIAorCS8qCisJICogRm9yIHJldHVybmFibGUgY3Vy c29ycywgcmVtZW1iZXIgdGhlIGN1cnJlbnRseSBhY3RpdmUgcHJvY2VkdXJlLCBhcworCSAq IHdlbGwgYXMgdGhlIGNvbW1hbmQgSUQsIHNvIHdlIGNhbiBzb3J0IGJ5IGNyZWF0aW9uIG9y ZGVyIGxhdGVyLiAgSWYKKwkgKiB0aGVyZSBpcyBubyBwcm9jZWR1cmUgYWN0aXZlLCB0aGUg Y3Vyc29yIGlzIG1hcmtlZCBhcyBXSVRIT1VUIFJFVFVSTi4KKwkgKiAoVGhpcyBpcyBub3Qg YW4gZXJyb3IsIHBlciBTUUwgc3RhbmRhcmQsIHN1YmNsYXVzZSAiRWZmZWN0IG9mIG9wZW5p bmcgYQorCSAqIGN1cnNvciIuKQorCSAqLworCWlmIChwb3J0YWwtPmN1cnNvck9wdGlvbnMg JiBDVVJTT1JfT1BUX1JFVFVSTikKKwl7CisJCU9pZAkJCXByb2NJZCA9IEN1cnJlbnRQcm9j ZWR1cmUoKTsKKworCQlpZiAocHJvY0lkKQorCQl7CisJCQlwb3J0YWwtPnByb2NJZCA9IHBy b2NJZDsKKwkJCXBvcnRhbC0+Y3JlYXRlQ2lkID0gR2V0Q3VycmVudENvbW1hbmRJZCh0cnVl KTsKKwkJfQorCQllbHNlCisJCXsKKwkJCXBvcnRhbC0+Y3Vyc29yT3B0aW9ucyAmPSB+Q1VS U09SX09QVF9SRVRVUk47CisJCX0KKwl9CisKIAkvKgogCSAqIFN0YXJ0IGV4ZWN1dGlvbiwg aW5zZXJ0aW5nIHBhcmFtZXRlcnMgaWYgYW55LgogCSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVj bWRzLmMKaW5kZXggNzc3MGE4NmJlZTA4Li40NWRhOWE3M2M5ODIgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFu ZHMvdHlwZWNtZHMuYwpAQCAtMTc3Nyw3ICsxNzc3LDggQEAgbWFrZVJhbmdlQ29uc3RydWN0 b3JzKGNvbnN0IGNoYXIgKm5hbWUsIE9pZCBuYW1lc3BhY2UsCiAJCQkJCQkJCSBQb2ludGVy R2V0RGF0dW0oTlVMTCksIC8qIHByb2NvbmZpZyAqLwogCQkJCQkJCQkgSW52YWxpZE9pZCwJ LyogcHJvc3VwcG9ydCAqLwogCQkJCQkJCQkgMS4wLAkvKiBwcm9jb3N0ICovCi0JCQkJCQkJ CSAwLjApOwkvKiBwcm9yb3dzICovCisJCQkJCQkJCSAwLjAsCS8qIHByb3Jvd3MgKi8KKwkJ CQkJCQkJIDApOwkvKiBwcm9keW5yZXMgKi8KIAogCQkvKgogCQkgKiBNYWtlIHRoZSBjb25z dHJ1Y3RvcnMgaW50ZXJuYWxseS1kZXBlbmRlbnQgb24gdGhlIHJhbmdlIHR5cGUgc28KQEAg LTE4NDIsNyArMTg0Myw4IEBAIG1ha2VNdWx0aXJhbmdlQ29uc3RydWN0b3JzKGNvbnN0IGNo YXIgKm5hbWUsIE9pZCBuYW1lc3BhY2UsCiAJCQkJCQkJIFBvaW50ZXJHZXREYXR1bShOVUxM KSwgLyogcHJvY29uZmlnICovCiAJCQkJCQkJIEludmFsaWRPaWQsCS8qIHByb3N1cHBvcnQg Ki8KIAkJCQkJCQkgMS4wLAkvKiBwcm9jb3N0ICovCi0JCQkJCQkJIDAuMCk7CS8qIHByb3Jv d3MgKi8KKwkJCQkJCQkgMC4wLAkvKiBwcm9yb3dzICovCisJCQkJCQkJIDApOwkvKiBwcm9k eW5yZXMgKi8KIAogCS8qCiAJICogTWFrZSB0aGUgY29uc3RydWN0b3IgaW50ZXJuYWxseS1k ZXBlbmRlbnQgb24gdGhlIG11bHRpcmFuZ2UgdHlwZSBzbwpAQCAtMTg4Niw3ICsxODg4LDgg QEAgbWFrZU11bHRpcmFuZ2VDb25zdHJ1Y3RvcnMoY29uc3QgY2hhciAqbmFtZSwgT2lkIG5h bWVzcGFjZSwKIAkJCQkJCQkgUG9pbnRlckdldERhdHVtKE5VTEwpLCAvKiBwcm9jb25maWcg Ki8KIAkJCQkJCQkgSW52YWxpZE9pZCwJLyogcHJvc3VwcG9ydCAqLwogCQkJCQkJCSAxLjAs CS8qIHByb2Nvc3QgKi8KLQkJCQkJCQkgMC4wKTsJLyogcHJvcm93cyAqLworCQkJCQkJCSAw LjAsCS8qIHByb3Jvd3MgKi8KKwkJCQkJCQkgMCk7CS8qIHByb2R5bnJlcyAqLwogCS8qIGRp dHRvICovCiAJcmVjb3JkRGVwZW5kZW5jeU9uKCZteXNlbGYsICZyZWZlcmVuY2VkLCBERVBF TkRFTkNZX0lOVEVSTkFMKTsKIAlwZnJlZShhcmd0eXBlcyk7CkBAIC0xOTI0LDcgKzE5Mjcs OCBAQCBtYWtlTXVsdGlyYW5nZUNvbnN0cnVjdG9ycyhjb25zdCBjaGFyICpuYW1lLCBPaWQg bmFtZXNwYWNlLAogCQkJCQkJCSBQb2ludGVyR2V0RGF0dW0oTlVMTCksIC8qIHByb2NvbmZp ZyAqLwogCQkJCQkJCSBJbnZhbGlkT2lkLAkvKiBwcm9zdXBwb3J0ICovCiAJCQkJCQkJIDEu MCwJLyogcHJvY29zdCAqLwotCQkJCQkJCSAwLjApOwkvKiBwcm9yb3dzICovCisJCQkJCQkJ IDAuMCwJLyogcHJvcm93cyAqLworCQkJCQkJCSAwKTsJLyogcHJvZHlucmVzICovCiAJLyog ZGl0dG8gKi8KIAlyZWNvcmREZXBlbmRlbmN5T24oJm15c2VsZiwgJnJlZmVyZW5jZWQsIERF UEVOREVOQ1lfSU5URVJOQUwpOwogCXBmcmVlKGFyZ3R5cGVzKTsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55Cmlu ZGV4IDkzODQyMTQ5NDJhYS4uOWI4ZDI0YmMwMWI3IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTY4 OCw3ICs2ODgsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hh ciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCURBVEFfUCBEQVRB QkFTRSBEQVlfUCBERUFMTE9DQVRFIERFQyBERUNJTUFMX1AgREVDTEFSRSBERUZBVUxUIERF RkFVTFRTCiAJREVGRVJSQUJMRSBERUZFUlJFRCBERUZJTkVSIERFTEVURV9QIERFTElNSVRF UiBERUxJTUlURVJTIERFUEVORFMgREVQVEggREVTQwogCURFVEFDSCBESUNUSU9OQVJZIERJ U0FCTEVfUCBESVNDQVJEIERJU1RJTkNUIERPIERPQ1VNRU5UX1AgRE9NQUlOX1AKLQlET1VC TEVfUCBEUk9QCisJRE9VQkxFX1AgRFJPUCBEWU5BTUlDCiAKIAlFQUNIIEVMU0UgRU5BQkxF X1AgRU5DT0RJTkcgRU5DUllQVEVEIEVORF9QIEVOVU1fUCBFU0NBUEUgRVZFTlQgRVhDRVBU CiAJRVhDTFVERSBFWENMVURJTkcgRVhDTFVTSVZFIEVYRUNVVEUgRVhJU1RTIEVYUExBSU4g RVhQUkVTU0lPTgpAQCAtNzM1LDcgKzczNSw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJz aXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVy eSk7CiAKIAlSQU5HRSBSRUFEIFJFQUwgUkVBU1NJR04gUkVDSEVDSyBSRUNVUlNJVkUgUkVG X1AgUkVGRVJFTkNFUyBSRUZFUkVOQ0lORwogCVJFRlJFU0ggUkVJTkRFWCBSRUxBVElWRV9Q IFJFTEVBU0UgUkVOQU1FIFJFUEVBVEFCTEUgUkVQTEFDRSBSRVBMSUNBCi0JUkVTRVQgUkVT VEFSVCBSRVNUUklDVCBSRVRVUk4gUkVUVVJOSU5HIFJFVFVSTlMgUkVWT0tFIFJJR0hUIFJP TEUgUk9MTEJBQ0sgUk9MTFVQCisJUkVTRVQgUkVTVEFSVCBSRVNUUklDVCBSRVNVTFQgUkVU VVJOIFJFVFVSTklORyBSRVRVUk5TIFJFVk9LRSBSSUdIVCBST0xFIFJPTExCQUNLIFJPTExV UAogCVJPVVRJTkUgUk9VVElORVMgUk9XIFJPV1MgUlVMRQogCiAJU0FWRVBPSU5UIFNDSEVN QSBTQ0hFTUFTIFNDUk9MTCBTRUFSQ0ggU0VDT05EX1AgU0VDVVJJVFkgU0VMRUNUIFNFUVVF TkNFIFNFUVVFTkNFUwpAQCAtODUxMiw2ICs4NTEyLDEwIEBAIGNvbW1vbl9mdW5jX29wdF9p dGVtOgogCQkJCXsKIAkJCQkJJCQgPSBtYWtlRGVmRWxlbSgicGFyYWxsZWwiLCAoTm9kZSAq KSBtYWtlU3RyaW5nKCQyKSwgQDEpOwogCQkJCX0KKwkJCXwgRFlOQU1JQyBSRVNVTFQgU0VU UyBJY29uc3QKKwkJCQl7CisJCQkJCSQkID0gbWFrZURlZkVsZW0oImR5bmFtaWNfcmVzdWx0 X3NldHMiLCAoTm9kZSAqKW1ha2VJbnRlZ2VyKCQ0KSwgQDEpOworCQkJCX0KIAkJOwogCiBj cmVhdGVmdW5jX29wdF9pdGVtOgpAQCAtMTI0MDEsNiArMTI0MDUsMTIgQEAgY3Vyc29yX29w dGlvbnM6IC8qRU1QVFkqLwkJCQkJeyAkJCA9IDA7IH0KIG9wdF9ob2xkOiAvKiBFTVBUWSAq LwkJCQkJCXsgJCQgPSAwOyB9CiAJCQl8IFdJVEggSE9MRAkJCQkJCXsgJCQgPSBDVVJTT1Jf T1BUX0hPTEQ7IH0KIAkJCXwgV0lUSE9VVCBIT0xECQkJCQl7ICQkID0gMDsgfQorCQkJfCBX SVRIIEhPTEQgV0lUSCBSRVRVUk4JCQl7ICQkID0gQ1VSU09SX09QVF9IT0xEIHwgQ1VSU09S X09QVF9SRVRVUk47IH0KKwkJCXwgV0lUSE9VVCBIT0xEIFdJVEggUkVUVVJOCQl7ICQkID0g Q1VSU09SX09QVF9SRVRVUk47IH0KKwkJCXwgV0lUSCBIT0xEIFdJVEhPVVQgUkVUVVJOCQl7 ICQkID0gQ1VSU09SX09QVF9IT0xEOyB9CisJCQl8IFdJVEhPVVQgSE9MRCBXSVRIT1VUIFJF VFVSTgl7ICQkID0gMDsgfQorCQkJfCBXSVRIIFJFVFVSTgkJCQkJeyAkJCA9IENVUlNPUl9P UFRfUkVUVVJOOyB9CisJCQl8IFdJVEhPVVQgUkVUVVJOCQkJCXsgJCQgPSAwOyB9CiAJCTsK IAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCkBAIC0xNjc2Nyw2ICsxNjc3Nyw3IEBAIHVu cmVzZXJ2ZWRfa2V5d29yZDoKIAkJCXwgRE9NQUlOX1AKIAkJCXwgRE9VQkxFX1AKIAkJCXwg RFJPUAorCQkJfCBEWU5BTUlDCiAJCQl8IEVBQ0gKIAkJCXwgRU5BQkxFX1AKIAkJCXwgRU5D T0RJTkcKQEAgLTE2OTEyLDYgKzE2OTIzLDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgogCQkJ fCBSRVNFVAogCQkJfCBSRVNUQVJUCiAJCQl8IFJFU1RSSUNUCisJCQl8IFJFU1VMVAogCQkJ fCBSRVRVUk4KIAkJCXwgUkVUVVJOUwogCQkJfCBSRVZPS0UKQEAgLTE3MzEyLDYgKzE3MzI0 LDcgQEAgYmFyZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBET01BSU5fUAogCQkJfCBET1VCTEVf UAogCQkJfCBEUk9QCisJCQl8IERZTkFNSUMKIAkJCXwgRUFDSAogCQkJfCBFTFNFCiAJCQl8 IEVOQUJMRV9QCkBAIC0xNzQ5OSw2ICsxNzUxMiw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoK IAkJCXwgUkVTRVQKIAkJCXwgUkVTVEFSVAogCQkJfCBSRVNUUklDVAorCQkJfCBSRVNVTFQK IAkJCXwgUkVUVVJOCiAJCQl8IFJFVFVSTlMKIAkJCXwgUkVWT0tFCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgYi9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVz LmMKaW5kZXggMzA4MjA5M2QxZWFiLi40NjUzYWRkNGE1ZWEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3Rjb3AvcG9zdGdyZXMuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVz LmMKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgiCisj aW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJlcGFy ZS5oIgogI2luY2x1ZGUgImNvbW1vbi9wZ19wcm5nLmgiCiAjaW5jbHVkZSAiaml0L2ppdC5o IgpAQCAtMTA3Miw2ICsxMDczLDcgQEAgZXhlY19zaW1wbGVfcXVlcnkoY29uc3QgY2hhciAq cXVlcnlfc3RyaW5nKQogCQlQb3J0YWwJCXBvcnRhbDsKIAkJRGVzdFJlY2VpdmVyICpyZWNl aXZlcjsKIAkJaW50MTYJCWZvcm1hdDsKKwkJTGlzdENlbGwgICAqbGM7CiAKIAkJcGdzdGF0 X3JlcG9ydF9xdWVyeV9pZCgwLCB0cnVlKTsKIApAQCAtMTIzMyw3ICsxMjM1LDcgQEAgZXhl Y19zaW1wbGVfcXVlcnkoY29uc3QgY2hhciAqcXVlcnlfc3RyaW5nKQogCQlNZW1vcnlDb250 ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CiAKIAkJLyoKLQkJICogUnVuIHRoZSBwb3J0YWwg dG8gY29tcGxldGlvbiwgYW5kIHRoZW4gZHJvcCBpdCAoYW5kIHRoZSByZWNlaXZlcikuCisJ CSAqIFJ1biB0aGUgcG9ydGFsIHRvIGNvbXBsZXRpb24sIGFuZCB0aGVuIGRyb3AgaXQuCiAJ CSAqLwogCQkodm9pZCkgUG9ydGFsUnVuKHBvcnRhbCwKIAkJCQkJCSBGRVRDSF9BTEwsCkBA IC0xMjQzLDEwICsxMjQ1LDM0IEBAIGV4ZWNfc2ltcGxlX3F1ZXJ5KGNvbnN0IGNoYXIgKnF1 ZXJ5X3N0cmluZykKIAkJCQkJCSByZWNlaXZlciwKIAkJCQkJCSAmcWMpOwogCi0JCXJlY2Vp dmVyLT5yRGVzdHJveShyZWNlaXZlcik7Ci0KIAkJUG9ydGFsRHJvcChwb3J0YWwsIGZhbHNl KTsKIAorCQkvKgorCQkgKiBSdW4gcG9ydGFscyBmb3IgZHluYW1pYyByZXN1bHQgc2V0cy4K KwkJICovCisJCWZvcmVhY2ggKGxjLCBHZXRSZXR1cm5hYmxlQ3Vyc29ycygpKQorCQl7CisJ CQlQb3J0YWwJCWR5bnBvcnRhbCA9IGxmaXJzdChsYyk7CisKKwkJCWlmIChkZXN0ID09IERl c3RSZW1vdGUpCisJCQkJU2V0UmVtb3RlRGVzdFJlY2VpdmVyUGFyYW1zKHJlY2VpdmVyLCBk eW5wb3J0YWwpOworCisJCQlQb3J0YWxSdW4oZHlucG9ydGFsLAorCQkJCQkgIEZFVENIX0FM TCwKKwkJCQkJICB0cnVlLAorCQkJCQkgIHRydWUsCisJCQkJCSAgcmVjZWl2ZXIsCisJCQkJ CSAgcmVjZWl2ZXIsCisJCQkJCSAgTlVMTCk7CisKKwkJCVBvcnRhbERyb3AoZHlucG9ydGFs LCBmYWxzZSk7CisJCX0KKworCQkvKgorCQkgKiBEcm9wIHRoZSByZWNlaXZlci4KKwkJICov CisJCXJlY2VpdmVyLT5yRGVzdHJveShyZWNlaXZlcik7CisKIAkJaWYgKGxuZXh0KHBhcnNl dHJlZV9saXN0LCBwYXJzZXRyZWVfaXRlbSkgPT0gTlVMTCkKIAkJewogCQkJLyoKQEAgLTIw NTgsNiArMjA4NCw3IEBAIGV4ZWNfZXhlY3V0ZV9tZXNzYWdlKGNvbnN0IGNoYXIgKnBvcnRh bF9uYW1lLCBsb25nIG1heF9yb3dzKQogCWNvbnN0IGNoYXIgKnNvdXJjZVRleHQ7CiAJY29u c3QgY2hhciAqcHJlcFN0bXROYW1lOwogCVBhcmFtTGlzdEluZm8gcG9ydGFsUGFyYW1zOwor CUxpc3RDZWxsICAgKmxjOwogCWJvb2wJCXNhdmVfbG9nX3N0YXRlbWVudF9zdGF0cyA9IGxv Z19zdGF0ZW1lbnRfc3RhdHM7CiAJYm9vbAkJaXNfeGFjdF9jb21tYW5kOwogCWJvb2wJCWV4 ZWN1dGVfaXNfZmV0Y2g7CkBAIC0yMTk0LDYgKzIyMjEsMzQgQEAgZXhlY19leGVjdXRlX21l c3NhZ2UoY29uc3QgY2hhciAqcG9ydGFsX25hbWUsIGxvbmcgbWF4X3Jvd3MpCiAJCQkJCQkg IHJlY2VpdmVyLAogCQkJCQkJICAmcWMpOwogCisJLyoKKwkgKiBSdW4gcG9ydGFscyBmb3Ig ZHluYW1pYyByZXN1bHQgc2V0cy4KKwkgKi8KKwlmb3JlYWNoIChsYywgR2V0UmV0dXJuYWJs ZUN1cnNvcnMoKSkKKwl7CisJCVBvcnRhbCBkeW5fcG9ydGFsID0gbGZpcnN0KGxjKTsKKwor CQlpZiAoZGVzdCA9PSBEZXN0UmVtb3RlRXhlY3V0ZSkKKwkJCVNldFJlbW90ZURlc3RSZWNl aXZlclBhcmFtcyhyZWNlaXZlciwgZHluX3BvcnRhbCk7CisKKwkJUG9ydGFsU2V0UmVzdWx0 Rm9ybWF0KGR5bl9wb3J0YWwsIDEsICZwb3J0YWwtPmR5bmFtaWNfZm9ybWF0KTsKKworCQlT ZW5kUm93RGVzY3JpcHRpb25NZXNzYWdlKCZyb3dfZGVzY3JpcHRpb25fYnVmLAorCQkJCQkJ CQkgIGR5bl9wb3J0YWwtPnR1cERlc2MsCisJCQkJCQkJCSAgRmV0Y2hQb3J0YWxUYXJnZXRM aXN0KGR5bl9wb3J0YWwpLAorCQkJCQkJCQkgIGR5bl9wb3J0YWwtPmZvcm1hdHMpOworCisJ CVBvcnRhbFJ1bihkeW5fcG9ydGFsLAorCQkJCSAgRkVUQ0hfQUxMLAorCQkJCSAgdHJ1ZSwK KwkJCQkgIHRydWUsCisJCQkJICByZWNlaXZlciwKKwkJCQkgIHJlY2VpdmVyLAorCQkJCSAg TlVMTCk7CisKKwkJUG9ydGFsRHJvcChkeW5fcG9ydGFsLCBmYWxzZSk7CisJfQorCiAJcmVj ZWl2ZXItPnJEZXN0cm95KHJlY2VpdmVyKTsKIAogCS8qIERvbmUgZXhlY3V0aW5nOyByZW1v dmUgdGhlIHBhcmFtcyBlcnJvciBjYWxsYmFjayAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdGNvcC9wcXVlcnkuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMKaW5kZXggNTJl MmRiNjQ1MmJlLi41MTA0MDMxNjFmYjcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3Av cHF1ZXJ5LmMKKysrIGIvc3JjL2JhY2tlbmQvdGNvcC9wcXVlcnkuYwpAQCAtNjQxLDYgKzY0 MSw4IEBAIFBvcnRhbFNldFJlc3VsdEZvcm1hdChQb3J0YWwgcG9ydGFsLCBpbnQgbkZvcm1h dHMsIGludDE2ICpmb3JtYXRzKQogCQkJCQkgZXJybXNnKCJiaW5kIG1lc3NhZ2UgaGFzICVk IHJlc3VsdCBmb3JtYXRzIGJ1dCBxdWVyeSBoYXMgJWQgY29sdW1ucyIsCiAJCQkJCQkJbkZv cm1hdHMsIG5hdHRzKSkpOwogCQltZW1jcHkocG9ydGFsLT5mb3JtYXRzLCBmb3JtYXRzLCBu YXR0cyAqIHNpemVvZihpbnQxNikpOworCisJCXBvcnRhbC0+ZHluYW1pY19mb3JtYXQgPSAw OwogCX0KIAllbHNlIGlmIChuRm9ybWF0cyA+IDApCiAJewpAQCAtNjQ5LDEyICs2NTEsMTYg QEAgUG9ydGFsU2V0UmVzdWx0Rm9ybWF0KFBvcnRhbCBwb3J0YWwsIGludCBuRm9ybWF0cywg aW50MTYgKmZvcm1hdHMpCiAKIAkJZm9yIChpID0gMDsgaSA8IG5hdHRzOyBpKyspCiAJCQlw b3J0YWwtPmZvcm1hdHNbaV0gPSBmb3JtYXQxOworCisJCXBvcnRhbC0+ZHluYW1pY19mb3Jt YXQgPSBmb3JtYXQxOwogCX0KIAllbHNlCiAJewogCQkvKiB1c2UgZGVmYXVsdCBmb3JtYXQg Zm9yIGFsbCBjb2x1bW5zICovCiAJCWZvciAoaSA9IDA7IGkgPCBuYXR0czsgaSsrKQogCQkJ cG9ydGFsLT5mb3JtYXRzW2ldID0gMDsKKworCQlwb3J0YWwtPmR5bmFtaWNfZm9ybWF0ID0g MDsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2VycmNvZGVzLnR4 dCBiL3NyYy9iYWNrZW5kL3V0aWxzL2VycmNvZGVzLnR4dAppbmRleCA2MjQxOGEwNTFhYzcu LmMyMDcyMmU2YmJkZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvZXJyY29kZXMu dHh0CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2VycmNvZGVzLnR4dApAQCAtODMsNiArODMs NyBAQCBTZWN0aW9uOiBDbGFzcyAwMSAtIFdhcm5pbmcKICMgZG8gbm90IHVzZSB0aGlzIGNs YXNzIGZvciBmYWlsdXJlIGNvbmRpdGlvbnMKIDAxMDAwICAgIFcgICAgRVJSQ09ERV9XQVJO SU5HICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2Fy bmluZwogMDEwMEMgICAgVyAgICBFUlJDT0RFX1dBUk5JTkdfRFlOQU1JQ19SRVNVTFRfU0VU U19SRVRVUk5FRCAgICAgICAgICAgICAgICAgICBkeW5hbWljX3Jlc3VsdF9zZXRzX3JldHVy bmVkCiswMTAwRSAgICBXICAgIEVSUkNPREVfV0FSTklOR19BVFRFTVBUX1RPX1JFVFVSTl9U T09fTUFOWV9SRVNVTFRfU0VUUyAgICAgICAgIGF0dGVtcHRfdG9fcmV0dXJuX3Rvb19tYW55 X3Jlc3VsdF9zZXRzCiAwMTAwOCAgICBXICAgIEVSUkNPREVfV0FSTklOR19JTVBMSUNJVF9a RVJPX0JJVF9QQURESU5HICAgICAgICAgICAgICAgICAgICAgIGltcGxpY2l0X3plcm9fYml0 X3BhZGRpbmcKIDAxMDAzICAgIFcgICAgRVJSQ09ERV9XQVJOSU5HX05VTExfVkFMVUVfRUxJ TUlOQVRFRF9JTl9TRVRfRlVOQ1RJT04gICAgICAgICAgbnVsbF92YWx1ZV9lbGltaW5hdGVk X2luX3NldF9mdW5jdGlvbgogMDEwMDcgICAgVyAgICBFUlJDT0RFX1dBUk5JTkdfUFJJVklM RUdFX05PVF9HUkFOVEVEICAgICAgICAgICAgICAgICAgICAgICAgICBwcml2aWxlZ2Vfbm90 X2dyYW50ZWQKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3IvcG9ydGFsbWVt LmMgYi9zcmMvYmFja2VuZC91dGlscy9tbWdyL3BvcnRhbG1lbS5jCmluZGV4IDdiMWFlNmZk Y2YwYi4uNGIxMzI4NjFmZmViIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9tbWdy L3BvcnRhbG1lbS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3IvcG9ydGFsbWVtLmMK QEAgLTEyODksMyArMTI4OSw1MSBAQCBGb3JnZXRQb3J0YWxTbmFwc2hvdHModm9pZCkKIAkJ ZWxvZyhFUlJPUiwgInBvcnRhbCBzbmFwc2hvdHMgKCVkKSBkaWQgbm90IGFjY291bnQgZm9y IGFsbCBhY3RpdmUgc25hcHNob3RzICglZCkiLAogCQkJIG51bVBvcnRhbFNuYXBzLCBudW1B Y3RpdmVTbmFwcyk7CiB9CisKK3N0YXRpYyBpbnQKK2NtcF9wb3J0YWxzX2J5X2NyZWF0aW9u KGNvbnN0IExpc3RDZWxsICphLCBjb25zdCBMaXN0Q2VsbCAqYikKK3sKKwlQb3J0YWwJCXBh ID0gbGZpcnN0KGEpOworCVBvcnRhbAkJcGIgPSBsZmlyc3QoYik7CisKKwlyZXR1cm4gcGEt PmNyZWF0ZUNpZCAtIHBiLT5jcmVhdGVDaWQ7Cit9CisKK0xpc3QgKgorR2V0UmV0dXJuYWJs ZUN1cnNvcnModm9pZCkKK3sKKwlMaXN0CSAgICpyZXQgPSBOSUw7CisJSEFTSF9TRVFfU1RB VFVTIHN0YXR1czsKKwlQb3J0YWxIYXNoRW50ICpoZW50cnk7CisKKwloYXNoX3NlcV9pbml0 KCZzdGF0dXMsIFBvcnRhbEhhc2hUYWJsZSk7CisKKwl3aGlsZSAoKGhlbnRyeSA9IChQb3J0 YWxIYXNoRW50ICopIGhhc2hfc2VxX3NlYXJjaCgmc3RhdHVzKSkgIT0gTlVMTCkKKwl7CisJ CVBvcnRhbAkJcG9ydGFsID0gaGVudHJ5LT5wb3J0YWw7CisKKwkJaWYgKHBvcnRhbC0+Y3Vy c29yT3B0aW9ucyAmIENVUlNPUl9PUFRfUkVUVVJOKQorCQkJcmV0ID0gbGFwcGVuZChyZXQs IHBvcnRhbCk7CisJfQorCisJbGlzdF9zb3J0KHJldCwgY21wX3BvcnRhbHNfYnlfY3JlYXRp b24pOworCisJcmV0dXJuIHJldDsKK30KKwordm9pZAorQ2xvc2VPdGhlclJldHVybmFibGVD dXJzb3JzKE9pZCBwcm9jaWQpCit7CisJSEFTSF9TRVFfU1RBVFVTIHN0YXR1czsKKwlQb3J0 YWxIYXNoRW50ICpoZW50cnk7CisKKwloYXNoX3NlcV9pbml0KCZzdGF0dXMsIFBvcnRhbEhh c2hUYWJsZSk7CisKKwl3aGlsZSAoKGhlbnRyeSA9IChQb3J0YWxIYXNoRW50ICopIGhhc2hf c2VxX3NlYXJjaCgmc3RhdHVzKSkgIT0gTlVMTCkKKwl7CisJCVBvcnRhbAkJcG9ydGFsID0g aGVudHJ5LT5wb3J0YWw7CisKKwkJaWYgKHBvcnRhbC0+Y3Vyc29yT3B0aW9ucyAmIENVUlNP Ul9PUFRfUkVUVVJOICYmIHBvcnRhbC0+cHJvY0lkICE9IHByb2NpZCkKKwkJCVBvcnRhbERy b3AocG9ydGFsLCBmYWxzZSk7CisJfQorfQpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1w L3BnX2R1bXAuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggZGE0MjdmNGQ0 YTE3Li4wOGMxYjI4NWQ2ZTggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtMTE1NzMsNiArMTE1NzMs NyBAQCBkdW1wRnVuYyhBcmNoaXZlICpmb3V0LCBjb25zdCBGdW5jSW5mbyAqZmluZm8pCiAJ Y2hhcgkgICAqcHJvcm93czsKIAljaGFyCSAgICpwcm9zdXBwb3J0OwogCWNoYXIJICAgKnBy b3BhcmFsbGVsOworCWludAkJCXByb2R5bnJlczsKIAljaGFyCSAgICpsYW5uYW1lOwogCWNo YXIJICAqKmNvbmZpZ2l0ZW1zID0gTlVMTDsKIAlpbnQJCQluY29uZmlnaXRlbXMgPSAwOwpA QCAtMTE2NDAsMTAgKzExNjQxLDE3IEBAIGR1bXBGdW5jKEFyY2hpdmUgKmZvdXQsIGNvbnN0 IEZ1bmNJbmZvICpmaW5mbykKIAogCQlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNDAw MDApCiAJCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKLQkJCQkJCQkJICJwZ19nZXRf ZnVuY3Rpb25fc3FsYm9keShwLm9pZCkgQVMgcHJvc3FsYm9keVxuIik7CisJCQkJCQkJCSAi cGdfZ2V0X2Z1bmN0aW9uX3NxbGJvZHkocC5vaWQpIEFTIHByb3NxbGJvZHksXG4iKTsKIAkJ ZWxzZQogCQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCi0JCQkJCQkJCSAiTlVMTCBB UyBwcm9zcWxib2R5XG4iKTsKKwkJCQkJCQkJICJOVUxMIEFTIHByb3NxbGJvZHksXG4iKTsK KworCQlpZiAoZm91dC0+cmVtb3RlVmVyc2lvbiA+PSAxNjAwMDApCisJCQlhcHBlbmRQUUV4 cEJ1ZmZlclN0cihxdWVyeSwKKwkJCQkJCQkJICJwcm9keW5yZXNcbiIpOworCQllbHNlCisJ CQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKKwkJCQkJCQkJICIwIEFTIHByb2R5bnJl c1xuIik7CiAKIAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocXVlcnksCiAJCQkJCQkJICJGUk9N IHBnX2NhdGFsb2cucGdfcHJvYyBwLCBwZ19jYXRhbG9nLnBnX2xhbmd1YWdlIGxcbiIKQEAg LTExNjg4LDYgKzExNjk2LDcgQEAgZHVtcEZ1bmMoQXJjaGl2ZSAqZm91dCwgY29uc3QgRnVu Y0luZm8gKmZpbmZvKQogCXByb3Jvd3MgPSBQUWdldHZhbHVlKHJlcywgMCwgUFFmbnVtYmVy KHJlcywgInByb3Jvd3MiKSk7CiAJcHJvc3VwcG9ydCA9IFBRZ2V0dmFsdWUocmVzLCAwLCBQ UWZudW1iZXIocmVzLCAicHJvc3VwcG9ydCIpKTsKIAlwcm9wYXJhbGxlbCA9IFBRZ2V0dmFs dWUocmVzLCAwLCBQUWZudW1iZXIocmVzLCAicHJvcGFyYWxsZWwiKSk7CisJcHJvZHlucmVz ID0gYXRvaShQUWdldHZhbHVlKHJlcywgMCwgUFFmbnVtYmVyKHJlcywgInByb2R5bnJlcyIp KSk7CiAJbGFubmFtZSA9IFBRZ2V0dmFsdWUocmVzLCAwLCBQUWZudW1iZXIocmVzLCAibGFu bmFtZSIpKTsKIAogCS8qCkBAIC0xMTgwNiw2ICsxMTgxNSw5IEBAIGR1bXBGdW5jKEFyY2hp dmUgKmZvdXQsIGNvbnN0IEZ1bmNJbmZvICpmaW5mbykKIAlpZiAocHJvaXNzdHJpY3RbMF0g PT0gJ3QnKQogCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxLCAiIFNUUklDVCIpOwogCisJaWYg KHByb2R5bnJlcyA+IDApCisJCWFwcGVuZFBRRXhwQnVmZmVyKHEsICIgRFlOQU1JQyBSRVNV TFQgU0VUUyAlZCIsIHByb2R5bnJlcyk7CisKIAlpZiAocHJvc2VjZGVmWzBdID09ICd0JykK IAkJYXBwZW5kUFFFeHBCdWZmZXJTdHIocSwgIiBTRUNVUklUWSBERUZJTkVSIik7CiAKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5oIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19wcm9jLmgKaW5kZXggNzYzMTBkNGNjOWExLi5jNWQyZjViZWJhODIgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5oCisrKyBiL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfcHJvYy5oCkBAIC03Niw2ICs3Niw5IEBAIENBVEFMT0cocGdfcHJv YywxMjU1LFByb2NlZHVyZVJlbGF0aW9uSWQpIEJLSV9CT09UU1RSQVAgQktJX1JPV1RZUEVf T0lEKDgxLFByb2NlCiAJLyogc2VlIFBST1BBUkFMTEVMXyBjYXRlZ29yaWVzIGJlbG93ICov CiAJY2hhcgkJcHJvcGFyYWxsZWwgQktJX0RFRkFVTFQocyk7CiAKKwkvKiBtYXhpbXVtIG51 bWJlciBvZiBkeW5hbWljIHJlc3VsdCBzZXRzICovCisJaW50MzIJCXByb2R5bnJlcyBCS0lf REVGQVVMVCgwKTsKKwogCS8qIG51bWJlciBvZiBhcmd1bWVudHMgKi8KIAkvKiBOb3RlOiBu ZWVkIG5vdCBiZSBnaXZlbiBpbiBwZ19wcm9jLmRhdDsgZ2VuYmtpLnBsIHdpbGwgY29tcHV0 ZSBpdCAqLwogCWludDE2CQlwcm9uYXJnczsKQEAgLTIxMSw3ICsyMTQsOCBAQCBleHRlcm4g T2JqZWN0QWRkcmVzcyBQcm9jZWR1cmVDcmVhdGUoY29uc3QgY2hhciAqcHJvY2VkdXJlTmFt ZSwKIAkJCQkJCQkJCSBEYXR1bSBwcm9jb25maWcsCiAJCQkJCQkJCQkgT2lkIHByb3N1cHBv cnQsCiAJCQkJCQkJCQkgZmxvYXQ0IHByb2Nvc3QsCi0JCQkJCQkJCQkgZmxvYXQ0IHByb3Jv d3MpOworCQkJCQkJCQkJIGZsb2F0NCBwcm9yb3dzLAorCQkJCQkJCQkJIGludCBkeW5yZXMp OwogCiBleHRlcm4gYm9vbCBmdW5jdGlvbl9wYXJzZV9lcnJvcl90cmFuc3Bvc2UoY29uc3Qg Y2hhciAqcHJvc3JjKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvZGVm cmVtLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9kZWZyZW0uaAppbmRleCAxZDNjZTI0NmM5 MjcuLjVjMjIyNjJmNmI3OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvZGVm cmVtLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZGVmcmVtLmgKQEAgLTU3LDYgKzU3 LDcgQEAgZXh0ZXJuIE9iamVjdEFkZHJlc3MgQ3JlYXRlVHJhbnNmb3JtKENyZWF0ZVRyYW5z Zm9ybVN0bXQgKnN0bXQpOwogZXh0ZXJuIHZvaWQgSXNUaGVyZUZ1bmN0aW9uSW5OYW1lc3Bh Y2UoY29uc3QgY2hhciAqcHJvbmFtZSwgaW50IHByb25hcmdzLAogCQkJCQkJCQkJICAgb2lk dmVjdG9yICpwcm9hcmd0eXBlcywgT2lkIG5zcE9pZCk7CiBleHRlcm4gdm9pZCBFeGVjdXRl RG9TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgRG9TdG10ICpzdG10LCBib29sIGF0b21pYyk7 CitleHRlcm4gT2lkCUN1cnJlbnRQcm9jZWR1cmUodm9pZCk7CiBleHRlcm4gdm9pZCBFeGVj dXRlQ2FsbFN0bXQoQ2FsbFN0bXQgKnN0bXQsIFBhcmFtTGlzdEluZm8gcGFyYW1zLCBib29s IGF0b21pYywgRGVzdFJlY2VpdmVyICpkZXN0KTsKIGV4dGVybiBUdXBsZURlc2MgQ2FsbFN0 bXRSZXN1bHREZXNjKENhbGxTdG10ICpzdG10KTsKIGV4dGVybiBPaWQJZ2V0X3RyYW5zZm9y bV9vaWQoT2lkIHR5cGVfaWQsIE9pZCBsYW5nX2lkLCBib29sIG1pc3Npbmdfb2spOwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDdjYWZmNjJhZjdmMy4uNzEyZmFjZmRiZjFmIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0yOTAwLDYgKzI5MDAsNyBAQCB0eXBlZGVm IHN0cnVjdCBTZWNMYWJlbFN0bXQKICNkZWZpbmUgQ1VSU09SX09QVF9JTlNFTlNJVElWRQkw eDAwMDgJLyogSU5TRU5TSVRJVkUgKi8KICNkZWZpbmUgQ1VSU09SX09QVF9BU0VOU0lUSVZF CTB4MDAxMAkvKiBBU0VOU0lUSVZFICovCiAjZGVmaW5lIENVUlNPUl9PUFRfSE9MRAkJCTB4 MDAyMAkvKiBXSVRIIEhPTEQgKi8KKyNkZWZpbmUgQ1VSU09SX09QVF9SRVRVUk4JCTB4MDA0 MAkvKiBXSVRIIFJFVFVSTiAqLwogLyogdGhlc2UgcGxhbm5lci1jb250cm9sIGZsYWdzIGRv IG5vdCBjb3JyZXNwb25kIHRvIGFueSBTUUwgZ3JhbW1hcjogKi8KICNkZWZpbmUgQ1VSU09S X09QVF9GQVNUX1BMQU4JMHgwMTAwCS8qIHByZWZlciBmYXN0LXN0YXJ0IHBsYW4gKi8KICNk ZWZpbmUgQ1VSU09SX09QVF9HRU5FUklDX1BMQU4gMHgwMjAwCS8qIGZvcmNlIHVzZSBvZiBn ZW5lcmljIHBsYW4gKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3Qu aCBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaAppbmRleCA5NTdlZTE4ZDg0OTguLjkz ZmFjZWRhMzA5MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisr KyBiL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApAQCAtMTQ0LDYgKzE0NCw3IEBAIFBH X0tFWVdPUkQoImRvY3VtZW50IiwgRE9DVU1FTlRfUCwgVU5SRVNFUlZFRF9LRVlXT1JELCBC QVJFX0xBQkVMKQogUEdfS0VZV09SRCgiZG9tYWluIiwgRE9NQUlOX1AsIFVOUkVTRVJWRURf S0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoImRvdWJsZSIsIERPVUJMRV9QLCBV TlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJkcm9wIiwgRFJP UCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgiZHluYW1p YyIsIERZTkFNSUMsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdP UkQoImVhY2giLCBFQUNILCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19L RVlXT1JEKCJlbHNlIiwgRUxTRSwgUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBH X0tFWVdPUkQoImVuYWJsZSIsIEVOQUJMRV9QLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCkBAIC0zNTMsNiArMzU0LDcgQEAgUEdfS0VZV09SRCgicmVwbGljYSIsIFJFUExJ Q0EsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInJlc2V0 IiwgUkVTRVQsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQo InJlc3RhcnQiLCBSRVNUQVJULCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJyZXN0cmljdCIsIFJFU1RSSUNULCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJB UkVfTEFCRUwpCitQR19LRVlXT1JEKCJyZXN1bHQiLCBSRVNVTFQsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInJldHVybiIsIFJFVFVSTiwgVU5SRVNF UlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicmV0dXJuaW5nIiwgUkVU VVJOSU5HLCBSRVNFUlZFRF9LRVlXT1JELCBBU19MQUJFTCkKIFBHX0tFWVdPUkQoInJldHVy bnMiLCBSRVRVUk5TLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS91dGlscy9wb3J0YWwuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3Bv cnRhbC5oCmluZGV4IGFlZGRiZGFmZTU2YS4uZWVkOWJiMzcyZGJjIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS91dGlscy9wb3J0YWwuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9wb3J0 YWwuaApAQCAtMTMyLDYgKzEzMiwxNiBAQCB0eXBlZGVmIHN0cnVjdCBQb3J0YWxEYXRhCiAJ U3ViVHJhbnNhY3Rpb25JZCBhY3RpdmVTdWJpZDsJLyogdGhlIGxhc3Qgc3VieGFjdCB3aXRo IGFjdGl2aXR5ICovCiAJaW50CQkJY3JlYXRlTGV2ZWw7CS8qIGNyZWF0aW5nIHN1YnhhY3Qn cyBuZXN0aW5nIGxldmVsICovCiAKKwkvKgorCSAqIFByb2NlZHVyZSB0aGF0IGNyZWF0ZWQg dGhpcyBwb3J0YWwuICBVc2VkIGZvciByZXR1cm5hYmxlIGN1cnNvcnMuCisJICovCisJT2lk CQkJCXByb2NJZDsKKwkvKgorCSAqIENvbW1hbmQgSUQgd2hlcmUgdGhlIHBvcnRhbCB3YXMg Y3JlYXRlZC4gIFVzZWQgZm9yIHNvcnRpbmcgcmV0dXJuYWJsZQorCSAqIGN1cnNvcnMgaW50 byBjcmVhdGlvbiBvcmRlci4KKwkgKi8KKwlDb21tYW5kSWQJCWNyZWF0ZUNpZDsKKwogCS8q IFRoZSBxdWVyeSBvciBxdWVyaWVzIHRoZSBwb3J0YWwgd2lsbCBleGVjdXRlICovCiAJY29u c3QgY2hhciAqc291cmNlVGV4dDsJCS8qIHRleHQgb2YgcXVlcnkgKGFzIG9mIDguNCwgbmV2 ZXIgTlVMTCkgKi8KIAlDb21tYW5kVGFnCWNvbW1hbmRUYWc7CQkvKiBjb21tYW5kIHRhZyBm b3Igb3JpZ2luYWwgcXVlcnkgKi8KQEAgLTE2MCw2ICsxNzAsOCBAQCB0eXBlZGVmIHN0cnVj dCBQb3J0YWxEYXRhCiAJVHVwbGVEZXNjCXR1cERlc2M7CQkvKiBkZXNjcmlwdG9yIGZvciBy ZXN1bHQgdHVwbGVzICovCiAJLyogYW5kIHRoZXNlIGFyZSB0aGUgZm9ybWF0IGNvZGVzIHRv IHVzZSBmb3IgdGhlIGNvbHVtbnM6ICovCiAJaW50MTYJICAgKmZvcm1hdHM7CQkvKiBhIGZv cm1hdCBjb2RlIGZvciBlYWNoIGNvbHVtbiAqLworCS8qIEZvcm1hdCBjb2RlIGZvciBkeW5h bWljIHJlc3VsdCBzZXRzICovCisJaW50MTYJCWR5bmFtaWNfZm9ybWF0OwogCiAJLyoKIAkg KiBPdXRlcm1vc3QgQWN0aXZlU25hcHNob3QgZm9yIGV4ZWN1dGlvbiBvZiB0aGUgcG9ydGFs J3MgcXVlcmllcy4gIEZvcgpAQCAtMjQ4LDUgKzI2MCw3IEBAIGV4dGVybiB2b2lkIFBvcnRh bEhhc2hUYWJsZURlbGV0ZUFsbCh2b2lkKTsKIGV4dGVybiBib29sIFRoZXJlQXJlTm9SZWFk eVBvcnRhbHModm9pZCk7CiBleHRlcm4gdm9pZCBIb2xkUGlubmVkUG9ydGFscyh2b2lkKTsK IGV4dGVybiB2b2lkIEZvcmdldFBvcnRhbFNuYXBzaG90cyh2b2lkKTsKK2V4dGVybiBMaXN0 ICpHZXRSZXR1cm5hYmxlQ3Vyc29ycyh2b2lkKTsKK2V4dGVybiB2b2lkIENsb3NlT3RoZXJS ZXR1cm5hYmxlQ3Vyc29ycyhPaWQgcHJvY2lkKTsKIAogI2VuZGlmCQkJCQkJCS8qIFBPUlRB TF9IICovCmRpZmYgLS1naXQgYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMu YyBiL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXByb3RvY29sMy5jCmluZGV4IDM2NGJhZDJi ODgyYy4uZjBiZmQ3ZDdkYjVkIDEwMDY0NAotLS0gYS9zcmMvaW50ZXJmYWNlcy9saWJwcS9m ZS1wcm90b2NvbDMuYworKysgYi9zcmMvaW50ZXJmYWNlcy9saWJwcS9mZS1wcm90b2NvbDMu YwpAQCAtMzIwLDEwICszMjAsOCBAQCBwcVBhcnNlSW5wdXQzKFBHY29ubiAqY29ubikKIAkJ CQkJewogCQkJCQkJLyoKIAkJCQkJCSAqIEEgbmV3ICdUJyBtZXNzYWdlIGlzIHRyZWF0ZWQg YXMgdGhlIHN0YXJ0IG9mCi0JCQkJCQkgKiBhbm90aGVyIFBHcmVzdWx0LiAgKEl0IGlzIG5v dCBjbGVhciB0aGF0IHRoaXMgaXMKLQkJCQkJCSAqIHJlYWxseSBwb3NzaWJsZSB3aXRoIHRo ZSBjdXJyZW50IGJhY2tlbmQuKSBXZSBzdG9wCi0JCQkJCQkgKiBwYXJzaW5nIHVudGlsIHRo ZSBhcHBsaWNhdGlvbiBhY2NlcHRzIHRoZSBjdXJyZW50Ci0JCQkJCQkgKiByZXN1bHQuCisJ CQkJCQkgKiBhbm90aGVyIFBHcmVzdWx0LiAgV2Ugc3RvcCBwYXJzaW5nIHVudGlsIHRoZQor CQkJCQkJICogYXBwbGljYXRpb24gYWNjZXB0cyB0aGUgY3VycmVudCByZXN1bHQuCiAJCQkJ CQkgKi8KIAkJCQkJCWNvbm4tPmFzeW5jU3RhdHVzID0gUEdBU1lOQ19SRUFEWTsKIAkJCQkJ CXJldHVybjsKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBn c3FsX2NhbGwub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfY2Fs bC5vdXQKaW5kZXggMWVjNjE4MmE4ZGE4Li4xYzg4NzJhNzU0NzAgMTAwNjQ0Ci0tLSBhL3Ny Yy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX2NhbGwub3V0CisrKyBiL3NyYy9w bC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX2NhbGwub3V0CkBAIC00NjYsMyArNDY2 LDgxIEBAIEJFR0lOCiBFTkQ7CiAkJDsKIE5PVElDRTogIDxOVUxMPgorLS0gZHluYW1pYyBy ZXN1bHQgc2V0cworQ1JFQVRFIFRBQkxFIGNwX3Rlc3QyIChhIGludCk7CitJTlNFUlQgSU5U TyBjcF90ZXN0MiBWQUxVRVMgKDEpLCAoMiksICgzKTsKK0NSRUFURSBUQUJMRSBjcF90ZXN0 MyAoeCB0ZXh0LCB5IHRleHQpOworSU5TRVJUIElOVE8gY3BfdGVzdDMgVkFMVUVTICgnYWJj JywgJ2RlZicpLCAoJ2ZvbycsICdiYXInKTsKK0NSRUFURSBQUk9DRURVUkUgcGRyc3Rlc3Qx KHggaW50KQorTEFOR1VBR0UgcGxwZ3NxbAorRFlOQU1JQyBSRVNVTFQgU0VUUyAyCitBUyAk JAorREVDTEFSRQorICBjMSBDVVJTT1IgV0lUSCBSRVRVUk4gKHkgaW50KSBGT1IgU0VMRUNU IGEgKiB5IEFTIGF5IEZST00gY3BfdGVzdDI7CisgIGMyIENVUlNPUiBXSVRIIFJFVFVSTiBG T1IgU0VMRUNUICogRlJPTSBjcF90ZXN0MzsKK0JFR0lOCisgIE9QRU4gYzEoeCk7CisgIElG IHggPiAxIFRIRU4KKyAgICBPUEVOIGMyOworICBFTkQgSUY7CitFTkQ7CiskJDsKK0NBTEwg cGRyc3Rlc3QxKDEpOworIGF5IAorLS0tLQorICAxCisgIDIKKyAgMworKDMgcm93cykKKwor Q0FMTCBwZHJzdGVzdDEoMik7CisgYXkgCistLS0tCisgIDIKKyAgNAorICA2CisoMyByb3dz KQorCisgIHggIHwgIHkgIAorLS0tLS0rLS0tLS0KKyBhYmMgfCBkZWYKKyBmb28gfCBiYXIK KygyIHJvd3MpCisKK0NSRUFURSBQUk9DRURVUkUgcGRyc3Rlc3QyKHggaW50KQorTEFOR1VB R0UgcGxwZ3NxbAorRFlOQU1JQyBSRVNVTFQgU0VUUyAyCitBUyAkJAorREVDTEFSRQorICBj MSByZWZjdXJzb3I7CisgIGMyIHJlZmN1cnNvcjsKK0JFR0lOCisgIE9QRU4gYzEgV0lUSCBS RVRVUk4gRk9SIFNFTEVDVCBhICogeCBBUyBheCBGUk9NIGNwX3Rlc3QyOworICBJRiB4ID4g MSBUSEVOCisgICAgT1BFTiBjMiBTQ1JPTEwgV0lUSCBSRVRVUk4gRk9SIFNFTEVDVCAqIEZS T00gY3BfdGVzdDM7CisgIEVORCBJRjsKK0VORDsKKyQkOworQ0FMTCBwZHJzdGVzdDIoMSk7 CisgYXggCistLS0tCisgIDEKKyAgMgorICAzCisoMyByb3dzKQorCitDQUxMIHBkcnN0ZXN0 MigyKTsKKyBheCAKKy0tLS0KKyAgMgorICA0CisgIDYKKygzIHJvd3MpCisKKyAgeCAgfCAg eSAgCistLS0tLSstLS0tLQorIGFiYyB8IGRlZgorIGZvbyB8IGJhcgorKDIgcm93cykKKwor RFJPUCBUQUJMRSBjcF90ZXN0MiwgY3BfdGVzdDM7CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxw Z3NxbC9zcmMvcGxfZXhlYy5jIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwppbmRl eCBhNjQ3MzQyOTQ4MDUuLjA3ZDIxYWQ4ZWQ3OSAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdz cWwvc3JjL3BsX2V4ZWMuYworKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCkBA IC00Nzc2LDYgKzQ3NzYsMTIgQEAgZXhlY19zdG10X29wZW4oUExwZ1NRTF9leGVjc3RhdGUg KmVzdGF0ZSwgUExwZ1NRTF9zdG10X29wZW4gKnN0bXQpCiAJCWVsb2coRVJST1IsICJjb3Vs ZCBub3Qgb3BlbiBjdXJzb3I6ICVzIiwKIAkJCSBTUElfcmVzdWx0X2NvZGVfc3RyaW5nKFNQ SV9yZXN1bHQpKTsKIAorCWlmIChwb3J0YWwtPmN1cnNvck9wdGlvbnMgJiBDVVJTT1JfT1BU X1JFVFVSTikKKwl7CisJCXBvcnRhbC0+cHJvY0lkID0gZXN0YXRlLT5mdW5jLT5mbl9vaWQ7 CisJCXBvcnRhbC0+Y3JlYXRlQ2lkID0gR2V0Q3VycmVudENvbW1hbmRJZCh0cnVlKTsKKwl9 CisKIAkvKgogCSAqIElmIGN1cnNvciB2YXJpYWJsZSB3YXMgTlVMTCwgc3RvcmUgdGhlIGdl bmVyYXRlZCBwb3J0YWwgbmFtZSBpbiBpdCwKIAkgKiBhZnRlciB2ZXJpZnlpbmcgaXQncyBv a2F5IHRvIGFzc2lnbiB0by4KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9n cmFtLnkgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZ3JhbS55CmluZGV4IGY3Y2YyYjRiODk5 YS4uZTVlOTIyMmQzZWMzIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZ3Jh bS55CisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkKQEAgLTIxMiw3ICsyMTIs NyBAQCBzdGF0aWMJdm9pZAkJCWNoZWNrX3JhaXNlX3BhcmFtZXRlcnMoUExwZ1NRTF9zdG10 X3JhaXNlICpzdG10KTsKICV0eXBlIDxkYXR1bT4JZ2V0ZGlhZ190YXJnZXQKICV0eXBlIDxp dmFsPglnZXRkaWFnX2l0ZW0KIAotJXR5cGUgPGl2YWw+CW9wdF9zY3JvbGxhYmxlCisldHlw ZSA8aXZhbD4Jb3B0X3Njcm9sbGFibGUgb3B0X3dpdGhfcmV0dXJuCiAldHlwZSA8ZmV0Y2g+ CW9wdF9mZXRjaF9kaXJlY3Rpb24KIAogJXR5cGUgPGl2YWw+CW9wdF90cmFuc2FjdGlvbl9j aGFpbgpAQCAtMzUyLDYgKzM1Miw4IEBAIHN0YXRpYwl2b2lkCQkJY2hlY2tfcmFpc2VfcGFy YW1ldGVycyhQTHBnU1FMX3N0bXRfcmFpc2UgKnN0bXQpOwogJXRva2VuIDxrZXl3b3JkPglL X1dBUk5JTkcKICV0b2tlbiA8a2V5d29yZD4JS19XSEVOCiAldG9rZW4gPGtleXdvcmQ+CUtf V0hJTEUKKyV0b2tlbiA8a2V5d29yZD4JS19XSVRICisldG9rZW4gPGtleXdvcmQ+CUtfV0lU SE9VVAogCiAlJQogCkBAIC01MjksNyArNTMxLDcgQEAgZGVjbF9zdGF0ZW1lbnQJOiBkZWNs X3Zhcm5hbWUgZGVjbF9jb25zdCBkZWNsX2RhdGF0eXBlIGRlY2xfY29sbGF0ZSBkZWNsX25v dG51bGwKIAkJCQkJCXBscGdzcWxfbnNfYWRkaXRlbSgkNC0+aXRlbXR5cGUsCiAJCQkJCQkJ CQkJICAgJDQtPml0ZW1ubywgJDEubmFtZSk7CiAJCQkJCX0KLQkJCQl8IGRlY2xfdmFybmFt ZSBvcHRfc2Nyb2xsYWJsZSBLX0NVUlNPUgorCQkJCXwgZGVjbF92YXJuYW1lIG9wdF9zY3Jv bGxhYmxlIEtfQ1VSU09SIG9wdF93aXRoX3JldHVybgogCQkJCQl7IHBscGdzcWxfbnNfcHVz aCgkMS5uYW1lLCBQTFBHU1FMX0xBQkVMX09USEVSKTsgfQogCQkJCSAgZGVjbF9jdXJzb3Jf YXJncyBkZWNsX2lzX2ZvciBkZWNsX2N1cnNvcl9xdWVyeQogCQkJCQl7CkBAIC01NzMsMTIg KzU3NSwxMiBAQCBkZWNsX3N0YXRlbWVudAk6IGRlY2xfdmFybmFtZSBkZWNsX2NvbnN0IGRl Y2xfZGF0YXR5cGUgZGVjbF9jb2xsYXRlIGRlY2xfbm90bnVsbAogCQkJCQkJY3VybmFtZV9k ZWYtPnBhcnNlTW9kZSA9IFJBV19QQVJTRV9QTFBHU1FMX0VYUFI7CiAJCQkJCQluZXctPmRl ZmF1bHRfdmFsID0gY3VybmFtZV9kZWY7CiAKLQkJCQkJCW5ldy0+Y3Vyc29yX2V4cGxpY2l0 X2V4cHIgPSAkNzsKLQkJCQkJCWlmICgkNSA9PSBOVUxMKQorCQkJCQkJbmV3LT5jdXJzb3Jf ZXhwbGljaXRfZXhwciA9ICQ4OworCQkJCQkJaWYgKCQ2ID09IE5VTEwpCiAJCQkJCQkJbmV3 LT5jdXJzb3JfZXhwbGljaXRfYXJncm93ID0gLTE7CiAJCQkJCQllbHNlCi0JCQkJCQkJbmV3 LT5jdXJzb3JfZXhwbGljaXRfYXJncm93ID0gJDUtPmRubzsKLQkJCQkJCW5ldy0+Y3Vyc29y X29wdGlvbnMgPSBDVVJTT1JfT1BUX0ZBU1RfUExBTiB8ICQyOworCQkJCQkJCW5ldy0+Y3Vy c29yX2V4cGxpY2l0X2FyZ3JvdyA9ICQ2LT5kbm87CisJCQkJCQluZXctPmN1cnNvcl9vcHRp b25zID0gQ1VSU09SX09QVF9GQVNUX1BMQU4gfCAkMiB8ICQ0OwogCQkJCQl9CiAJCQkJOwog CkBAIC01OTYsNiArNTk4LDIwIEBAIG9wdF9zY3JvbGxhYmxlIDoKIAkJCQkJfQogCQkJCTsK IAorb3B0X3dpdGhfcmV0dXJuIDoKKwkJCQkJeworCQkJCQkJJCQgPSAwOworCQkJCQl9CisJ CQkJfCBLX1dJVEggS19SRVRVUk4KKwkJCQkJeworCQkJCQkJJCQgPSBDVVJTT1JfT1BUX1JF VFVSTjsKKwkJCQkJfQorCQkJCXwgS19XSVRIT1VUIEtfUkVUVVJOCisJCQkJCXsKKwkJCQkJ CSQkID0gMDsKKwkJCQkJfQorCQkJCTsKKwogZGVjbF9jdXJzb3JfcXVlcnkgOgogCQkJCQl7 CiAJCQkJCQkkJCA9IHJlYWRfc3FsX3N0bXQoKTsKQEAgLTIwMDMsNiArMjAxOSwxMCBAQCBz dG10X2V4ZWNzcWwJOiBLX0lNUE9SVAogCQkJCQl7CiAJCQkJCQkkJCA9IG1ha2VfZXhlY3Nx bF9zdG10KEtfTUVSR0UsIEAxKTsKIAkJCQkJfQorCQkJCXwgS19XSVRICisJCQkJCXsKKwkJ CQkJCSQkID0gbWFrZV9leGVjc3FsX3N0bXQoS19XSVRILCBAMSk7CisJCQkJCX0KIAkJCQl8 IFRfV09SRAogCQkJCQl7CiAJCQkJCQlpbnQJCQl0b2s7CkBAIC0yMTI1LDYgKzIxNDUsMzAg QEAgc3RtdF9vcGVuCQk6IEtfT1BFTiBjdXJzb3JfdmFyaWFibGUKIAkJCQkJCQkJdG9rID0g eXlsZXgoKTsKIAkJCQkJCQl9CiAKKwkJCQkJCQkvKiBzYW1lIGZvciBvcHRfd2l0aF9yZXR1 cm4gKi8KKwkJCQkJCQlpZiAodG9rX2lzX2tleXdvcmQodG9rLCAmeXlsdmFsLAorCQkJCQkJ CQkJCQkgICBLX1dJVEgsICJ3aXRoIikpCisJCQkJCQkJeworCQkJCQkJCQl0b2sgPSB5eWxl eCgpOworCQkJCQkJCQlpZiAodG9rX2lzX2tleXdvcmQodG9rLCAmeXlsdmFsLAorCQkJCQkJ CQkJCQkJICAgS19SRVRVUk4sICJyZXR1cm4iKSkKKwkJCQkJCQkJeworCQkJCQkJCQkJbmV3 LT5jdXJzb3Jfb3B0aW9ucyB8PSBDVVJTT1JfT1BUX1JFVFVSTjsKKwkJCQkJCQkJCXRvayA9 IHl5bGV4KCk7CisJCQkJCQkJCX0KKwkJCQkJCQl9CisJCQkJCQkJZWxzZSBpZiAodG9rX2lz X2tleXdvcmQodG9rLCAmeXlsdmFsLAorCQkJCQkJCQkJCQkgICBLX1dJVEhPVVQsICJ3aXRo b3V0IikpCisJCQkJCQkJeworCQkJCQkJCQl0b2sgPSB5eWxleCgpOworCQkJCQkJCQlpZiAo dG9rX2lzX2tleXdvcmQodG9rLCAmeXlsdmFsLAorCQkJCQkJCQkJCQkJICAgS19SRVRVUk4s ICJyZXR1cm4iKSkKKwkJCQkJCQkJeworCQkJCQkJCQkJbmV3LT5jdXJzb3Jfb3B0aW9ucyB8 PSAwOworCQkJCQkJCQkJdG9rID0geXlsZXgoKTsKKwkJCQkJCQkJfQorCQkJCQkJCX0KKwog CQkJCQkJCWlmICh0b2sgIT0gS19GT1IpCiAJCQkJCQkJCXl5ZXJyb3IoInN5bnRheCBlcnJv ciwgZXhwZWN0ZWQgXCJGT1JcIiIpOwogCkBAIC0yNTc5LDYgKzI2MjMsOCBAQCB1bnJlc2Vy dmVkX2tleXdvcmQJOgogCQkJCXwgS19VU0VfVkFSSUFCTEUKIAkJCQl8IEtfVkFSSUFCTEVf Q09ORkxJQ1QKIAkJCQl8IEtfV0FSTklORworCQkJCXwgS19XSVRICisJCQkJfCBLX1dJVEhP VVQKIAkJCQk7CiAKICUlCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfdW5y ZXNlcnZlZF9rd2xpc3QuaCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF91bnJlc2VydmVkX2t3 bGlzdC5oCmluZGV4IGVlMmJlMWIyMTJiNC4uZGFmMGIxMDgxZGUwIDEwMDY0NAotLS0gYS9z cmMvcGwvcGxwZ3NxbC9zcmMvcGxfdW5yZXNlcnZlZF9rd2xpc3QuaAorKysgYi9zcmMvcGwv cGxwZ3NxbC9zcmMvcGxfdW5yZXNlcnZlZF9rd2xpc3QuaApAQCAtMTA5LDMgKzEwOSw1IEBA IFBHX0tFWVdPUkQoInVzZV9jb2x1bW4iLCBLX1VTRV9DT0xVTU4pCiBQR19LRVlXT1JEKCJ1 c2VfdmFyaWFibGUiLCBLX1VTRV9WQVJJQUJMRSkKIFBHX0tFWVdPUkQoInZhcmlhYmxlX2Nv bmZsaWN0IiwgS19WQVJJQUJMRV9DT05GTElDVCkKIFBHX0tFWVdPUkQoIndhcm5pbmciLCBL X1dBUk5JTkcpCitQR19LRVlXT1JEKCJ3aXRoIiwgS19XSVRIKQorUEdfS0VZV09SRCgid2l0 aG91dCIsIEtfV0lUSE9VVCkKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwv cGxwZ3NxbF9jYWxsLnNxbCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9jYWxs LnNxbAppbmRleCA1MDI4Mzk4MzQ4MDMuLjlhY2U5ZDRlMDY3NiAxMDA2NDQKLS0tIGEvc3Jj L3BsL3BscGdzcWwvc3JjL3NxbC9wbHBnc3FsX2NhbGwuc3FsCisrKyBiL3NyYy9wbC9wbHBn c3FsL3NyYy9zcWwvcGxwZ3NxbF9jYWxsLnNxbApAQCAtNDM2LDMgKzQzNiw0OSBAQCBDUkVB VEUgUFJPQ0VEVVJFIHAxKHZfY250IGludCwgdl9UZXh0IGlub3V0IHRleHQgPSBOVUxMKQog ICBSQUlTRSBOT1RJQ0UgJyUnLCB2X1RleHQ7CiBFTkQ7CiAkJDsKKworCistLSBkeW5hbWlj IHJlc3VsdCBzZXRzCisKK0NSRUFURSBUQUJMRSBjcF90ZXN0MiAoYSBpbnQpOworSU5TRVJU IElOVE8gY3BfdGVzdDIgVkFMVUVTICgxKSwgKDIpLCAoMyk7CitDUkVBVEUgVEFCTEUgY3Bf dGVzdDMgKHggdGV4dCwgeSB0ZXh0KTsKK0lOU0VSVCBJTlRPIGNwX3Rlc3QzIFZBTFVFUyAo J2FiYycsICdkZWYnKSwgKCdmb28nLCAnYmFyJyk7CisKK0NSRUFURSBQUk9DRURVUkUgcGRy c3Rlc3QxKHggaW50KQorTEFOR1VBR0UgcGxwZ3NxbAorRFlOQU1JQyBSRVNVTFQgU0VUUyAy CitBUyAkJAorREVDTEFSRQorICBjMSBDVVJTT1IgV0lUSCBSRVRVUk4gKHkgaW50KSBGT1Ig U0VMRUNUIGEgKiB5IEFTIGF5IEZST00gY3BfdGVzdDI7CisgIGMyIENVUlNPUiBXSVRIIFJF VFVSTiBGT1IgU0VMRUNUICogRlJPTSBjcF90ZXN0MzsKK0JFR0lOCisgIE9QRU4gYzEoeCk7 CisgIElGIHggPiAxIFRIRU4KKyAgICBPUEVOIGMyOworICBFTkQgSUY7CitFTkQ7CiskJDsK KworQ0FMTCBwZHJzdGVzdDEoMSk7CitDQUxMIHBkcnN0ZXN0MSgyKTsKKworQ1JFQVRFIFBS T0NFRFVSRSBwZHJzdGVzdDIoeCBpbnQpCitMQU5HVUFHRSBwbHBnc3FsCitEWU5BTUlDIFJF U1VMVCBTRVRTIDIKK0FTICQkCitERUNMQVJFCisgIGMxIHJlZmN1cnNvcjsKKyAgYzIgcmVm Y3Vyc29yOworQkVHSU4KKyAgT1BFTiBjMSBXSVRIIFJFVFVSTiBGT1IgU0VMRUNUIGEgKiB4 IEFTIGF4IEZST00gY3BfdGVzdDI7CisgIElGIHggPiAxIFRIRU4KKyAgICBPUEVOIGMyIFND Uk9MTCBXSVRIIFJFVFVSTiBGT1IgU0VMRUNUICogRlJPTSBjcF90ZXN0MzsKKyAgRU5EIElG OworRU5EOworJCQ7CisKK0NBTEwgcGRyc3Rlc3QyKDEpOworQ0FMTCBwZHJzdGVzdDIoMik7 CisKK0RST1AgVEFCTEUgY3BfdGVzdDIsIGNwX3Rlc3QzOwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfcHJvY2VkdXJlLm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3Byb2NlZHVyZS5vdXQKaW5kZXggNDZjODI3Zjk3OTFj Li5iMzgwMmJkN2MxZGIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Y3JlYXRlX3Byb2NlZHVyZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9j cmVhdGVfcHJvY2VkdXJlLm91dApAQCAtMzc1LDkgKzM3NSw5MiBAQCBBTFRFUiBST1VUSU5F IGNwX3Rlc3RmdW5jMWEgUkVOQU1FIFRPIGNwX3Rlc3RmdW5jMTsKIEFMVEVSIFJPVVRJTkUg cHRlc3QxKHRleHQpIFJFTkFNRSBUTyBwdGVzdDFhOwogQUxURVIgUk9VVElORSBwdGVzdDFh IFJFTkFNRSBUTyBwdGVzdDE7CiBEUk9QIFJPVVRJTkUgY3BfdGVzdGZ1bmMxKGludCk7Cist LSBkeW5hbWljIHJlc3VsdCBzZXRzCitDUkVBVEUgVEFCTEUgY3BfdGVzdDIgKGEgaW50KTsK K0lOU0VSVCBJTlRPIGNwX3Rlc3QyIFZBTFVFUyAoMSksICgyKSwgKDMpOworQ1JFQVRFIFRB QkxFIGNwX3Rlc3QzICh4IHRleHQsIHkgdGV4dCk7CitJTlNFUlQgSU5UTyBjcF90ZXN0MyBW QUxVRVMgKCdhYmMnLCAnZGVmJyksICgnZm9vJywgJ2JhcicpOworQ1JFQVRFIFBST0NFRFVS RSBwZHJzdGVzdDEoKQorTEFOR1VBR0UgU1FMCitEWU5BTUlDIFJFU1VMVCBTRVRTIDIKK0FT ICQkCitERUNMQVJFIGMxIENVUlNPUiBXSVRIIFJFVFVSTiBGT1IgU0VMRUNUICogRlJPTSBj cF90ZXN0MjsKK0RFQ0xBUkUgYzIgQ1VSU09SIFdJVEggUkVUVVJOIEZPUiBTRUxFQ1QgKiBG Uk9NIGNwX3Rlc3QzOworJCQ7CitDQUxMIHBkcnN0ZXN0MSgpOworIGEgCistLS0KKyAxCisg MgorIDMKKygzIHJvd3MpCisKKyAgeCAgfCAgeSAgCistLS0tLSstLS0tLQorIGFiYyB8IGRl ZgorIGZvbyB8IGJhcgorKDIgcm93cykKKworQ1JFQVRFIFBST0NFRFVSRSBwZHJzdGVzdDIo KQorTEFOR1VBR0UgU1FMCitEWU5BTUlDIFJFU1VMVCBTRVRTIDEKK0FTICQkCitDQUxMIHBk cnN0ZXN0MSgpOworREVDTEFSRSBjMyBDVVJTT1IgV0lUSCBSRVRVUk4gRk9SIFNFTEVDVCAq IEZST00gY3BfdGVzdDIgV0hFUkUgYSA8IDI7CiskJDsKK0NBTEwgcGRyc3Rlc3QyKCk7Cisg YSAKKy0tLQorIDEKKygxIHJvdykKKworQ1JFQVRFIFBST0NFRFVSRSBwZHJzdGVzdDMoSU5P VVQgYSB0ZXh0KQorTEFOR1VBR0UgU1FMCitEWU5BTUlDIFJFU1VMVCBTRVRTIDEKK0FTICQk CitERUNMQVJFIGM0IENVUlNPUiBXSVRIIFJFVFVSTiBGT1IgU0VMRUNUICogRlJPTSBjcF90 ZXN0MjsKK1NFTEVDVCBhIHx8IGE7CiskJDsKK0NBTEwgcGRyc3Rlc3QzKCd4Jyk7CisgYSAg CistLS0tCisgeHgKKygxIHJvdykKKworIGEgCistLS0KKyAxCisgMgorIDMKKygzIHJvd3Mp CisKKy0tIHRlc3QgdGhlIG5lc3RlZCBlcnJvciBoYW5kbGluZworQ1JFQVRFIFRBQkxFIGNw X3Rlc3RfZHVtbXkgKGEgaW50KTsKK0NSRUFURSBQUk9DRURVUkUgcGRyc3Rlc3Q0YSgpCitM QU5HVUFHRSBTUUwKK0RZTkFNSUMgUkVTVUxUIFNFVFMgMQorQVMgJCQKK0RFQ0xBUkUgYzVh IENVUlNPUiBXSVRIIFJFVFVSTiBGT1IgU0VMRUNUICogRlJPTSBjcF90ZXN0X2R1bW15Owor JCQ7CitDUkVBVEUgUFJPQ0VEVVJFIHBkcnN0ZXN0NGIoKQorTEFOR1VBR0UgU1FMCitEWU5B TUlDIFJFU1VMVCBTRVRTIDEKK0FTICQkCitDQUxMIHBkcnN0ZXN0NGEoKTsKKyQkOworRFJP UCBUQUJMRSBjcF90ZXN0X2R1bW15OworQ0FMTCBwZHJzdGVzdDRiKCk7CitFUlJPUjogIHJl bGF0aW9uICJjcF90ZXN0X2R1bW15IiBkb2VzIG5vdCBleGlzdAorTElORSAyOiBERUNMQVJF IGM1YSBDVVJTT1IgV0lUSCBSRVRVUk4gRk9SIFNFTEVDVCAqIEZST00gY3BfdGVzdF9kdW0u Li4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KK1FVRVJZOiAgCitERUNMQVJFIGM1YSBDVVJTT1IgV0lUSCBSRVRVUk4gRk9S IFNFTEVDVCAqIEZST00gY3BfdGVzdF9kdW1teTsKKworQ09OVEVYVDogIFNRTCBmdW5jdGlv biAicGRyc3Rlc3Q0YSIgZHVyaW5nIHN0YXJ0dXAKK1NRTCBmdW5jdGlvbiAicGRyc3Rlc3Q0 YiIgc3RhdGVtZW50IDEKIC0tIGNsZWFudXAKIERST1AgUFJPQ0VEVVJFIHB0ZXN0MTsKIERS T1AgUFJPQ0VEVVJFIHB0ZXN0MXM7CiBEUk9QIFBST0NFRFVSRSBwdGVzdDI7Ci1EUk9QIFRB QkxFIGNwX3Rlc3Q7CitEUk9QIFRBQkxFIGNwX3Rlc3QsIGNwX3Rlc3QyLCBjcF90ZXN0MzsK IERST1AgVVNFUiByZWdyZXNzX2NwX3VzZXIxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvY3JlYXRlX3Byb2NlZHVyZS5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9j cmVhdGVfcHJvY2VkdXJlLnNxbAppbmRleCA3NWNjMGZjZjJhNmMuLmMzOTcwNzI2YTZlMCAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX3Byb2NlZHVyZS5zcWwK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX3Byb2NlZHVyZS5zcWwKQEAgLTI0 MiwxMiArMjQyLDcxIEBAIENSRUFURSBVU0VSIHJlZ3Jlc3NfY3BfdXNlcjE7CiBEUk9QIFJP VVRJTkUgY3BfdGVzdGZ1bmMxKGludCk7CiAKIAorLS0gZHluYW1pYyByZXN1bHQgc2V0cwor CitDUkVBVEUgVEFCTEUgY3BfdGVzdDIgKGEgaW50KTsKK0lOU0VSVCBJTlRPIGNwX3Rlc3Qy IFZBTFVFUyAoMSksICgyKSwgKDMpOworQ1JFQVRFIFRBQkxFIGNwX3Rlc3QzICh4IHRleHQs IHkgdGV4dCk7CitJTlNFUlQgSU5UTyBjcF90ZXN0MyBWQUxVRVMgKCdhYmMnLCAnZGVmJyks ICgnZm9vJywgJ2JhcicpOworCitDUkVBVEUgUFJPQ0VEVVJFIHBkcnN0ZXN0MSgpCitMQU5H VUFHRSBTUUwKK0RZTkFNSUMgUkVTVUxUIFNFVFMgMgorQVMgJCQKK0RFQ0xBUkUgYzEgQ1VS U09SIFdJVEggUkVUVVJOIEZPUiBTRUxFQ1QgKiBGUk9NIGNwX3Rlc3QyOworREVDTEFSRSBj MiBDVVJTT1IgV0lUSCBSRVRVUk4gRk9SIFNFTEVDVCAqIEZST00gY3BfdGVzdDM7CiskJDsK KworQ0FMTCBwZHJzdGVzdDEoKTsKKworQ1JFQVRFIFBST0NFRFVSRSBwZHJzdGVzdDIoKQor TEFOR1VBR0UgU1FMCitEWU5BTUlDIFJFU1VMVCBTRVRTIDEKK0FTICQkCitDQUxMIHBkcnN0 ZXN0MSgpOworREVDTEFSRSBjMyBDVVJTT1IgV0lUSCBSRVRVUk4gRk9SIFNFTEVDVCAqIEZS T00gY3BfdGVzdDIgV0hFUkUgYSA8IDI7CiskJDsKKworQ0FMTCBwZHJzdGVzdDIoKTsKKwor Q1JFQVRFIFBST0NFRFVSRSBwZHJzdGVzdDMoSU5PVVQgYSB0ZXh0KQorTEFOR1VBR0UgU1FM CitEWU5BTUlDIFJFU1VMVCBTRVRTIDEKK0FTICQkCitERUNMQVJFIGM0IENVUlNPUiBXSVRI IFJFVFVSTiBGT1IgU0VMRUNUICogRlJPTSBjcF90ZXN0MjsKK1NFTEVDVCBhIHx8IGE7Cisk JDsKKworQ0FMTCBwZHJzdGVzdDMoJ3gnKTsKKworLS0gdGVzdCB0aGUgbmVzdGVkIGVycm9y IGhhbmRsaW5nCitDUkVBVEUgVEFCTEUgY3BfdGVzdF9kdW1teSAoYSBpbnQpOworCitDUkVB VEUgUFJPQ0VEVVJFIHBkcnN0ZXN0NGEoKQorTEFOR1VBR0UgU1FMCitEWU5BTUlDIFJFU1VM VCBTRVRTIDEKK0FTICQkCitERUNMQVJFIGM1YSBDVVJTT1IgV0lUSCBSRVRVUk4gRk9SIFNF TEVDVCAqIEZST00gY3BfdGVzdF9kdW1teTsKKyQkOworCitDUkVBVEUgUFJPQ0VEVVJFIHBk cnN0ZXN0NGIoKQorTEFOR1VBR0UgU1FMCitEWU5BTUlDIFJFU1VMVCBTRVRTIDEKK0FTICQk CitDQUxMIHBkcnN0ZXN0NGEoKTsKKyQkOworCitEUk9QIFRBQkxFIGNwX3Rlc3RfZHVtbXk7 CisKK0NBTEwgcGRyc3Rlc3Q0YigpOworCisKIC0tIGNsZWFudXAKIAogRFJPUCBQUk9DRURV UkUgcHRlc3QxOwogRFJPUCBQUk9DRURVUkUgcHRlc3QxczsKIERST1AgUFJPQ0VEVVJFIHB0 ZXN0MjsKIAotRFJPUCBUQUJMRSBjcF90ZXN0OworRFJPUCBUQUJMRSBjcF90ZXN0LCBjcF90 ZXN0MiwgY3BfdGVzdDM7CiAKIERST1AgVVNFUiByZWdyZXNzX2NwX3VzZXIxOwotLSAKMi4z OC4xCgo= --------------ad4DEUjWArCNAhXCKdNVFTtH Content-Type: text/plain; charset=UTF-8; name="v6-0002-WIP-Dynamic-result-sets-extended-query-tests.patch" Content-Disposition: attachment; filename*0="v6-0002-WIP-Dynamic-result-sets-extended-query-tests.patch" Content-Transfer-Encoding: base64 RnJvbSBiMTA3ZjQxNjM2OGMzN2Q5ZjAwOWQ3M2I0MjM3NDhiNzg3ZGIyMjNhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBQZXRlciBFaXNlbnRyYXV0IDxwZXRlckBlaXNlbnRy YXV0Lm9yZz4KRGF0ZTogVHVlLCAyMiBOb3YgMjAyMiAxNjozMToxMyArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggdjYgMi8yXSBXSVA6IER5bmFtaWMgcmVzdWx0IHNldHMgZXh0ZW5kZWQgcXVl cnkgdGVzdHMKClRoaXMgaXMgY3VycmVudGx5IGJyb2tlbiBkdWUgdG8vc2luY2UKYWNiN2U0 ZWI2YjFjNjE0YzY4YTYyZmIzYTZhNWJiYTFhZjBhMjY1OS4KLS0tCiAuLi4vcmVncmVzcy9l eHBlY3RlZC9jcmVhdGVfcHJvY2VkdXJlLm91dCAgICAgfCAzMSArKysrKysrKysrKysrKysr KysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfcHJvY2VkdXJlLnNxbCAgICAgfCAg NCArKysKIDIgZmlsZXMgY2hhbmdlZCwgMzUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX3Byb2NlZHVyZS5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9wcm9jZWR1cmUub3V0CmluZGV4IGIzODAy YmQ3YzFkYi4uMmNhOWM5M2IxMTBjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2NyZWF0ZV9wcm9jZWR1cmUub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvY3JlYXRlX3Byb2NlZHVyZS5vdXQKQEAgLTQwMSw2ICs0MDEsMTUgQEAgQ0FMTCBw ZHJzdGVzdDEoKTsKICBmb28gfCBiYXIKICgyIHJvd3MpCiAKK0NBTEwgcGRyc3Rlc3QxKCkg XGJpbmQgXGcKKyBhIAorLS0tCisgMQorIDIKKyAzCisoMyByb3dzKQorCitzZXJ2ZXIgc2Vu dCBkYXRhICgiRCIgbWVzc2FnZSkgd2l0aG91dCBwcmlvciByb3cgZGVzY3JpcHRpb24gKCJU IiBtZXNzYWdlKQogQ1JFQVRFIFBST0NFRFVSRSBwZHJzdGVzdDIoKQogTEFOR1VBR0UgU1FM CiBEWU5BTUlDIFJFU1VMVCBTRVRTIDEKQEAgLTQxNCw2ICs0MjMsMTIgQEAgQ0FMTCBwZHJz dGVzdDIoKTsKICAxCiAoMSByb3cpCiAKK0NBTEwgcGRyc3Rlc3QyKCkgXGJpbmQgXGcKKyBh IAorLS0tCisgMQorKDEgcm93KQorCiBDUkVBVEUgUFJPQ0VEVVJFIHBkcnN0ZXN0MyhJTk9V VCBhIHRleHQpCiBMQU5HVUFHRSBTUUwKIERZTkFNSUMgUkVTVUxUIFNFVFMgMQpAQCAtNDM0 LDYgKzQ0OSwxMyBAQCBDQUxMIHBkcnN0ZXN0MygneCcpOwogIDMKICgzIHJvd3MpCiAKK0NB TEwgcGRyc3Rlc3QzKCQxKSBcYmluZCAneScgXGcKKyBhICAKKy0tLS0KKyB5eQorKDEgcm93 KQorCitzZXJ2ZXIgc2VudCBkYXRhICgiRCIgbWVzc2FnZSkgd2l0aG91dCBwcmlvciByb3cg ZGVzY3JpcHRpb24gKCJUIiBtZXNzYWdlKQogLS0gdGVzdCB0aGUgbmVzdGVkIGVycm9yIGhh bmRsaW5nCiBDUkVBVEUgVEFCTEUgY3BfdGVzdF9kdW1teSAoYSBpbnQpOwogQ1JFQVRFIFBS T0NFRFVSRSBwZHJzdGVzdDRhKCkKQEAgLTQ1Niw2ICs0NzgsMTUgQEAgTElORSAyOiBERUNM QVJFIGM1YSBDVVJTT1IgV0lUSCBSRVRVUk4gRk9SIFNFTEVDVCAqIEZST00gY3BfdGVzdF9k dW0uLi4KIFFVRVJZOiAgCiBERUNMQVJFIGM1YSBDVVJTT1IgV0lUSCBSRVRVUk4gRk9SIFNF TEVDVCAqIEZST00gY3BfdGVzdF9kdW1teTsKIAorQ09OVEVYVDogIFNRTCBmdW5jdGlvbiAi cGRyc3Rlc3Q0YSIgZHVyaW5nIHN0YXJ0dXAKK1NRTCBmdW5jdGlvbiAicGRyc3Rlc3Q0YiIg c3RhdGVtZW50IDEKK0NBTEwgcGRyc3Rlc3Q0YigpIFxiaW5kIFxnCitFUlJPUjogIHJlbGF0 aW9uICJjcF90ZXN0X2R1bW15IiBkb2VzIG5vdCBleGlzdAorTElORSAyOiBERUNMQVJFIGM1 YSBDVVJTT1IgV0lUSCBSRVRVUk4gRk9SIFNFTEVDVCAqIEZST00gY3BfdGVzdF9kdW0uLi4K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KK1FVRVJZOiAgCitERUNMQVJFIGM1YSBDVVJTT1IgV0lUSCBSRVRVUk4gRk9SIFNF TEVDVCAqIEZST00gY3BfdGVzdF9kdW1teTsKKwogQ09OVEVYVDogIFNRTCBmdW5jdGlvbiAi cGRyc3Rlc3Q0YSIgZHVyaW5nIHN0YXJ0dXAKIFNRTCBmdW5jdGlvbiAicGRyc3Rlc3Q0YiIg c3RhdGVtZW50IDEKIC0tIGNsZWFudXAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2NyZWF0ZV9wcm9jZWR1cmUuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRl X3Byb2NlZHVyZS5zcWwKaW5kZXggYzM5NzA3MjZhNmUwLi45N2JhY2U3ZjU5NTggMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9wcm9jZWR1cmUuc3FsCisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9wcm9jZWR1cmUuc3FsCkBAIC0yNTgsNiAr MjU4LDcgQEAgQ1JFQVRFIFBST0NFRFVSRSBwZHJzdGVzdDEoKQogJCQ7CiAKIENBTEwgcGRy c3Rlc3QxKCk7CitDQUxMIHBkcnN0ZXN0MSgpIFxiaW5kIFxnCiAKIENSRUFURSBQUk9DRURV UkUgcGRyc3Rlc3QyKCkKIExBTkdVQUdFIFNRTApAQCAtMjY4LDYgKzI2OSw3IEBAIENSRUFU RSBQUk9DRURVUkUgcGRyc3Rlc3QyKCkKICQkOwogCiBDQUxMIHBkcnN0ZXN0MigpOworQ0FM TCBwZHJzdGVzdDIoKSBcYmluZCBcZwogCiBDUkVBVEUgUFJPQ0VEVVJFIHBkcnN0ZXN0MyhJ Tk9VVCBhIHRleHQpCiBMQU5HVUFHRSBTUUwKQEAgLTI3OCw2ICsyODAsNyBAQCBDUkVBVEUg UFJPQ0VEVVJFIHBkcnN0ZXN0MyhJTk9VVCBhIHRleHQpCiAkJDsKIAogQ0FMTCBwZHJzdGVz dDMoJ3gnKTsKK0NBTEwgcGRyc3Rlc3QzKCQxKSBcYmluZCAneScgXGcKIAogLS0gdGVzdCB0 aGUgbmVzdGVkIGVycm9yIGhhbmRsaW5nCiBDUkVBVEUgVEFCTEUgY3BfdGVzdF9kdW1teSAo YSBpbnQpOwpAQCAtMjk5LDYgKzMwMiw3IEBAIENSRUFURSBQUk9DRURVUkUgcGRyc3Rlc3Q0 YigpCiBEUk9QIFRBQkxFIGNwX3Rlc3RfZHVtbXk7CiAKIENBTEwgcGRyc3Rlc3Q0YigpOwor Q0FMTCBwZHJzdGVzdDRiKCkgXGJpbmQgXGcKIAogCiAtLSBjbGVhbnVwCi0tIAoyLjM4LjEK Cg== --------------ad4DEUjWArCNAhXCKdNVFTtH--