Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wiIXj-0007h2-1m for pgsql-hackers@arkaria.postgresql.org; Fri, 10 Jul 2026 21:13:56 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wiIXg-001ryd-1C for pgsql-hackers@arkaria.postgresql.org; Fri, 10 Jul 2026 21:13:53 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wiIXg-001ryV-02 for pgsql-hackers@lists.postgresql.org; Fri, 10 Jul 2026 21:13:52 +0000 Received: from mail-yw1-x112e.google.com ([2607:f8b0:4864:20::112e]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wiIXd-00000000i7y-2XyA for pgsql-hackers@lists.postgresql.org; Fri, 10 Jul 2026 21:13:52 +0000 Received: by mail-yw1-x112e.google.com with SMTP id 00721157ae682-80cebd41372so20746577b3.3 for ; Fri, 10 Jul 2026 14:13:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783718028; x=1784322828; darn=lists.postgresql.org; h=in-reply-to:references:to:from:subject:cc:message-id:date :mime-version:content-type:from:to:cc:subject:date:message-id :reply-to:content-type; bh=YXavpOQHvtqy7pY8vbVBSlNzkyLKOG99Z+ND9oKIfPE=; b=qlnQNZrfHdWupk3Xle6tJ8vBPqcLJJxS1jyz6+O/Uzt6Suz3QBNe+MRjJ9+8HqRRk3 h0sREX54fGycnkpT1OaKNpNMdbrua77jjAXYdWY+RIoxwF7f1S3k8x8BnoqYuVQxQ4MJ AeOqsQ2iOc7rym1FSVJ/6wReEMfoyMOiDnxp5/34bQdbtjiHMRBayvvKf8sn1Hq4VRWC O23jNCSWNhXOcRDxIh5eYECI+tSz94nYxqnzl2EUTyLINh9/2DavRg8Ot6/6JgYYLpZI LL3gRQIeLIrBbmQ0tvDY06bUgWwnNu3oHkrJzojMwQ11culqTgd24JVxwvIxLZN0LDpb Kwig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783718028; x=1784322828; h=in-reply-to:references:to:from:subject:cc:message-id:date :mime-version:content-type:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=YXavpOQHvtqy7pY8vbVBSlNzkyLKOG99Z+ND9oKIfPE=; b=LHwc7VPMcfB2hn7t8D7heD2U+3mhPComNkh179OYnwdeJwW3qrEJPCkhp8lKP/2Sv1 NJkTtDDNTBSRpowPZpt2DqTrnE7o8Yh/C8sdtu73TuCxsjbFQqfnIcqC+QnL17cbMRfE rWmddi1poFqfW8DE7lcgGNO6SGA8ZrhnCC7ok0qjEnIVsUrN+uxHMYAvzOTyVae7MkaE ynzvRjQI5fyiD/2iiV0lFEvSVQdG47J06c8Dm2ewVJSDXW8mcgjgTlqrJxm2b65QqvXS PKvB2xJVhWxu0+dkl/qXFWZi9mvmNDvsq6jr3YoV/cV9PVzAQT9rzzd9rMSoQktpUAsT 71Mg== X-Gm-Message-State: AOJu0Yxvk35RJsvBMe/bhmEn6G/j4ln4SwlU3OWbHUw1wxH2A+aae9d1 Q0FLxXjHFrz1EKjCMNIn6SDpR3FrOWUKGW05JW/26KDb2pTiSrEmf6rc X-Gm-Gg: AfdE7clRt0D7zRr/EPwNGVgsrYvat97gGGO2zPC6TP1nCdBVC3Vu0ZE60kFySIlDkjQ Zf0X3hxP5N/xHAvlpAH9BuX8duh5AHbRsVdccSA4Pxz3ofTKl5FmnPOwNPOWC9VWph9wyTuf772 vavvwH088maOaCraq2tC/VE83RsIdujj4ir8PuMA3nbmNQfZ3O0cQF6j5DJiAIYcK23yiH4+C2f 7O/RBCTGT9WZczMcby7ndAiD0DQmDRGZQ4d24ipwLITUAQyrQYftpt4feBvHLieagcWwAFS4IfB brDh7U65tOhkSEe2hHym1Iopl+WKVjGlNxEjP9C2Aa2DzFwBsPF7G/x/uJp+mRoCg4qLYL1bizq Azw9DPrsxcpiRbBaEXjOvyZQg78nsQrUNrdjvqOwUuC+8HbIiLIyyM3HmvVCYixh3aoIKghUZdM C/QjBDmVEg9MGgCgIwlTMUYVeocty2XrNX+GwiCyMRl21W4NnP+2I= X-Received: by 2002:a05:690c:e3c8:b0:80a:f6c:1d0c with SMTP id 00721157ae682-81e900267a0mr5203207b3.12.1783718028074; Fri, 10 Jul 2026 14:13:48 -0700 (PDT) Received: from localhost ([2804:14d:32a7:4273:c4ec:cd97:2483:1573]) by smtp.gmail.com with ESMTPSA id 00721157ae682-81e6c1ee792sm56725957b3.38.2026.07.10.14.13.46 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 10 Jul 2026 14:13:47 -0700 (PDT) Content-Type: multipart/mixed; boundary=2a2a32380ccfbcf9bbab66ef48ffa3d87fcfc1eec65c3893ab730d4cb424 Mime-Version: 1.0 Date: Fri, 10 Jul 2026 18:13:43 -0300 Message-Id: Cc: , "Peter Eisentraut" , "Yugo Nagata" Subject: Re: Show expression of virtual columns in error messages From: "Matheus Alcantara" To: "Tom Lane" X-Mailer: aerc 0.21.0 References: <7c18e854-0ddb-4670-b0c4-f2541b5edd91@eisentraut.org> <20260205114521.6fed028d8d3185663f3c4226@sraoss.co.jp> <20260206125414.8f8c5f5735aa34fb05c5cc72@sraoss.co.jp> <2f55b9a4-332f-45c7-9b27-590637a2bb9a@gmail.com> <719803.1772131627@sss.pgh.pa.us> <742565.1772144083@sss.pgh.pa.us> <68dcb0b5-1c0b-41ed-b2eb-bbb12c3ea5f3@gmail.com> In-Reply-To: <68dcb0b5-1c0b-41ed-b2eb-bbb12c3ea5f3@gmail.com> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --2a2a32380ccfbcf9bbab66ef48ffa3d87fcfc1eec65c3893ab730d4cb424 Content-Type: multipart/alternative; boundary=9ecfdd91598c2b5c9e273f78f463125e53ec7a75d15e4b8ce7e9e0423f64 --9ecfdd91598c2b5c9e273f78f463125e53ec7a75d15e4b8ce7e9e0423f64 Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-Type: text/plain; charset=UTF-8 On Mon Mar 16, 2026 at 12:36 PM -03, Matheus Alcantara wrote: > Attaching v5 with documentation changes included and rebased with master. > Attaching v6 rebased due to changes on a4639d64e21 -- Matheus Alcantara EDB: https://www.enterprisedb.com --9ecfdd91598c2b5c9e273f78f463125e53ec7a75d15e4b8ce7e9e0423f64-- --2a2a32380ccfbcf9bbab66ef48ffa3d87fcfc1eec65c3893ab730d4cb424 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=v6-0001-Compute-virtual-generated-columns-during-INSERT-U.patch Content-Type: text/plain; charset=utf-8; name=v6-0001-Compute-virtual-generated-columns-during-INSERT-U.patch RnJvbSBlMzQwZjhmMTBjMDNiNGM5Mjc4YWM2YjEzNmJiNjVlY2UxMTkxMWQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXRoZXVzIEFsY2FudGFyYSA8bXRocy5kZXZAcG0ubWU+CkRh dGU6IE1vbiwgMiBGZWIgMjAyNiAxOTowNjo0NCAtMDMwMApTdWJqZWN0OiBbUEFUQ0ggdjZdIENv bXB1dGUgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyBkdXJpbmcgSU5TRVJUL1VQREFURQoKUHJl dmlvdXNseSwgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uIHZhbHVlcyB3ZXJlIG5ldmVyIGNvbXB1 dGVkIGFuZApzdG9yZWQgaW4gdGhlIHNsb3QuIEluc3RlYWQsIHJlZmVyZW5jZXMgdG8gZS5nIHZp cnR1YWwgY29sdW1ucyBpbiBjaGVjawpjb25zdHJhaW50cyB3ZXJlIGV4cGFuZGVkIHRvIHRoZWly IGdlbmVyYXRpb24gZXhwcmVzc2lvbnMgZHVyaW5nCkV4ZWNDaGVjaygpLgoKVGhpcyBjb21taXQg Y2hhbmdlcyB0aGUgYXBwcm9hY2ggdG8gY29tcHV0ZSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4K dmFsdWVzIGFuZCBzdG9yZSB0aGVtIGluIHRoZSBzbG90IGJlZm9yZSBjb25zdHJhaW50IGNoZWNr aW5nLCBzaW1pbGFyCnRvIGhvdyBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbnMgYXJlIGhhbmRsZWQu IFRoaXMgaGFzIHR3byBiZW5lZml0czoKCiAgIENoZWNrIGNvbnN0cmFpbnRzIGNhbiBub3cgcmVh ZCB2aXJ0dWFsIGNvbHVtbiB2YWx1ZXMgZGlyZWN0bHkgZnJvbQogICB0aGUgc2xvdCwgc2ltcGxp ZnlpbmcgY29uc3RyYWludCBldmFsdWF0aW9uLiBJdCBhbHNvIGF2b2lkIHJlLWV4ZWN1dGUKICAg dGhlIHZpcnR1YWwgZXhwcmVzc2lvbiBmb3IgZWFjaCBjaGVjayBjb25zdHJhaW50IGV2YWx1YXRp b24uCgogICBFcnJvciBtZXNzYWdlcyBub3cgZGlzcGxheSB0aGUgYWN0dWFsIGNvbXB1dGVkIHZh bHVlIChlLmcuLCAiMTAiKQogICBpbnN0ZWFkIG9mIHRoZSAidmlydHVhbCIgc3RyaW5nLCBtYWtp bmcgdGhlbSBtb3JlIGNvbnNpc3RlbnQgd2l0aAogICBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbnMg YW5kIGVhc2llciB0byB1bmRlcnN0YW5kLgoKRGlzY3Vzc2lvbjogaHR0cHM6Ly93d3cucG9zdGdy ZXNxbC5vcmcvbWVzc2FnZS1pZC9ERzVEVjhTRUQ2MkcuMldGSkI0NkQ3V0lUOCU0MGdtYWlsLmNv bQotLS0KIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg OSArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfZm9yZWlnbl90YWJsZS5zZ21sICAgIHwgIDEz ICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sICAgICAgICAgICAgfCAgIDQg Ky0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMgICAgICAgICB8ICAgNyAr LQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgIDIxICsr LQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JlcGxpY2F0aW9uLmMgICAgICAgIHwgIDEyICsr CiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYyAgICAgICAgfCAxMzEgKysr KysrKysrKysrKysrKystCiBzcmMvaW5jbHVkZS9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuaCAg ICAgICAgfCAgIDQgKwogc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggICAgICAgICAgICAg ICAgIHwgIDEwICsrCiAuLi4vcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0ZWRfdmlydHVhbC5vdXQg ICAgfCAgMjIgKystCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9tZXJnZS5v dXQgfCAgIDggKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2dlbmVyYXRlZF92aXJ0dWFsLnNxbCAg ICB8ICAgNCArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX21lcmdlLnNxbCAgICAg IHwgICA2ICstCiAxMyBmaWxlcyBjaGFuZ2VkLCAyMDggaW5zZXJ0aW9ucygrKSwgNDMgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9zZ21s L2RkbC5zZ21sCmluZGV4IDJiMDhiNTRlZGY1Li44OTQzMjY5ZGI3ZSAxMDA2NDQKLS0tIGEvZG9j L3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtMzU3LDEw ICszNTcsMTEgQEAgSU5TRVJUIElOVE8gcGVvcGxlIChpZCwgbmFtZSwgYWRkcmVzcykgVkFMVUVT ICg8ZW1waGFzaXM+REVGQVVMVDwvZW1waGFzaXM+LCAnQycKICAgIGNvbHVtbnMuICBUaHVzLCBp dCBpcyBmb3IgY29sdW1ucyB3aGF0IGEgdmlldyBpcyBmb3IgdGFibGVzLiAgVGhlcmUgYXJlIHR3 bwogICAga2luZHMgb2YgZ2VuZXJhdGVkIGNvbHVtbnM6IHN0b3JlZCBhbmQgdmlydHVhbC4gIEEg c3RvcmVkIGdlbmVyYXRlZCBjb2x1bW4KICAgIGlzIGNvbXB1dGVkIHdoZW4gaXQgaXMgd3JpdHRl biAoaW5zZXJ0ZWQgb3IgdXBkYXRlZCkgYW5kIG9jY3VwaWVzIHN0b3JhZ2UKLSAgIGFzIGlmIGl0 IHdlcmUgYSBub3JtYWwgY29sdW1uLiAgQSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4gb2NjdXBp ZXMgbm8KLSAgIHN0b3JhZ2UgYW5kIGlzIGNvbXB1dGVkIHdoZW4gaXQgaXMgcmVhZC4gIFRodXMs IGEgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uCi0gICBpcyBzaW1pbGFyIHRvIGEgdmlldyBhbmQg YSBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbiBpcyBzaW1pbGFyIHRvIGEKLSAgIG1hdGVyaWFsaXpl ZCB2aWV3IChleGNlcHQgdGhhdCBpdCBpcyBhbHdheXMgdXBkYXRlZCBhdXRvbWF0aWNhbGx5KS4K KyAgIGFzIGlmIGl0IHdlcmUgYSBub3JtYWwgY29sdW1uLiAgQSB2aXJ0dWFsIGdlbmVyYXRlZCBj b2x1bW4gaXMgYWxzbyBjb21wdXRlZCB3aGVuCisgICBpdCBpcyB3cml0dGVuLCBidXQgb2NjdXBp ZXMgbm8gc3RvcmFnZSBhbmQgaXMgcmVjb21wdXRlZCBvbiBldmVyeSByZWFkLgorICAgVGh1cywg YSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4gaXMgc2ltaWxhciB0byBhIHZpZXcgYW5kIGEgc3Rv cmVkIGdlbmVyYXRlZAorICAgY29sdW1uIGlzIHNpbWlsYXIgdG8gYSBtYXRlcmlhbGl6ZWQgdmll dyAoZXhjZXB0IHRoYXQgaXQgaXMgYWx3YXlzIHVwZGF0ZWQKKyAgIGF1dG9tYXRpY2FsbHkpCiAg IDwvcGFyYT4KIAogICA8cGFyYT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X2ZvcmVpZ25fdGFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2ZvcmVpZ25fdGFi bGUuc2dtbAppbmRleCAwODNmMTY3NzJiNy4uZTg1NTc5YmUxOGYgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX2ZvcmVpZ25fdGFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV9mb3JlaWduX3RhYmxlLnNnbWwKQEAgLTQwMywxMiArNDAzLDEzIEBAIFdJVEgg KCBNT0RVTFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xpdGVyYWw8 L3JlcGxhY2VhYmxlPiwgUkVNCiAKICAgICAgPHBhcmE+CiAgICAgICBXaGVuIDxsaXRlcmFsPlZJ UlRVQUw8L2xpdGVyYWw+IGlzIHNwZWNpZmllZCwgdGhlIGNvbHVtbiB3aWxsIGJlCi0gICAgICBj b21wdXRlZCB3aGVuIGl0IGlzIHJlYWQuICAoVGhlIGZvcmVpZ24tZGF0YSB3cmFwcGVyIHdpbGwg c2VlIGl0IGFzIGEKLSAgICAgIG51bGwgdmFsdWUgaW4gbmV3IHJvd3MgYW5kIG1heSBjaG9vc2Ug dG8gc3RvcmUgaXQgYXMgYSBudWxsIHZhbHVlIG9yCi0gICAgICBpZ25vcmUgaXQgYWx0b2dldGhl ci4pICBXaGVuIDxsaXRlcmFsPlNUT1JFRDwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkLCB0aGUKLSAg ICAgIGNvbHVtbiB3aWxsIGJlIGNvbXB1dGVkIG9uIHdyaXRlLiAgKFRoZSBjb21wdXRlZCB2YWx1 ZSB3aWxsIGJlIHByZXNlbnRlZAotICAgICAgdG8gdGhlIGZvcmVpZ24tZGF0YSB3cmFwcGVyIGZv ciBzdG9yYWdlIGFuZCBtdXN0IGJlIHJldHVybmVkIG9uCi0gICAgICByZWFkaW5nLikgIDxsaXRl cmFsPlZJUlRVQUw8L2xpdGVyYWw+IGlzIHRoZSBkZWZhdWx0LgorICAgICAgY29tcHV0ZWQgd2hl biBpdCBpcyB3cml0dGVuLCBidXQgaXQgd2lsbCBub3Qgb2NjdXB5IGFueSBzdG9yYWdlLgorICAg ICAgKFRoZSBmb3JlaWduLWRhdGEgd3JhcHBlciB3aWxsIHNlZSBpdCBhcyBhIG51bGwgdmFsdWUg aW4gbmV3IHJvd3MKKyAgICAgIGFuZCBtYXkgY2hvb3NlIHRvIHN0b3JlIGl0IGFzIGEgbnVsbCB2 YWx1ZSBvciBpZ25vcmUgaXQgYWx0b2dldGhlci4pCisgICAgICBXaGVuIDxsaXRlcmFsPlNUT1JF RDwvbGl0ZXJhbD4gaXMgc3BlY2lmaWVkLCB0aGUgY29sdW1uIHdpbGwgYmUgY29tcHV0ZWQKKyAg ICAgIG9uIHdyaXRlLiAgKFRoZSBjb21wdXRlZCB2YWx1ZSB3aWxsIGJlIHByZXNlbnRlZCB0byB0 aGUgZm9yZWlnbi1kYXRhCisgICAgICB3cmFwcGVyIGZvciBzdG9yYWdlIGFuZCBtdXN0IGJlIHJl dHVybmVkIG9uIHJlYWRpbmcuKQorICAgICAgPGxpdGVyYWw+VklSVFVBTDwvbGl0ZXJhbD4gaXMg dGhlIGRlZmF1bHQuCiAgICAgIDwvcGFyYT4KIAogICAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV90YWJsZS5zZ21sCmluZGV4IGUzNDI1ODVjN2YwLi5iNWQyMTRlMzYxMSAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L2NyZWF0ZV90YWJsZS5zZ21sCkBAIC05MzMsOCArOTMzLDggQEAgV0lUSCAoIE1PRFVMVVMgPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJhbDwvcmVwbGFjZWFibGU+ LCBSRU0KICAgICAgPC9wYXJhPgogCiAgICAgIDxwYXJhPgotICAgICAgV2hlbiA8bGl0ZXJhbD5W SVJUVUFMPC9saXRlcmFsPiBpcyBzcGVjaWZpZWQsIHRoZSBjb2x1bW4gd2lsbCBiZQotICAgICAg Y29tcHV0ZWQgd2hlbiBpdCBpcyByZWFkLCBhbmQgaXQgd2lsbCBub3Qgb2NjdXB5IGFueSBzdG9y YWdlLiAgV2hlbgorICAgICAgV2hlbiA8bGl0ZXJhbD5WSVJUVUFMPC9saXRlcmFsPiBpcyBzcGVj aWZpZWQsIHRoZSBjb2x1bW4gd2lsbCBiZSBjb21wdXRlZAorICAgICAgd2hlbiBpdCBpcyB3cml0 dGVuIGFuZCByZWFkLCBidXQgaXQgd2lsbCBub3Qgb2NjdXB5IGFueSBzdG9yYWdlLiAgV2hlbgog ICAgICAgPGxpdGVyYWw+U1RPUkVEPC9saXRlcmFsPiBpcyBzcGVjaWZpZWQsIHRoZSBjb2x1bW4g d2lsbCBiZSBjb21wdXRlZCBvbgogICAgICAgd3JpdGUgYW5kIHdpbGwgYmUgc3RvcmVkIG9uIGRp c2suICA8bGl0ZXJhbD5WSVJUVUFMPC9saXRlcmFsPiBpcyB0aGUKICAgICAgIGRlZmF1bHQuCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwppbmRleCAwNjM0YWY5NjRhOS4uYzQwNjBj NzAzOWQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMK KysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAtMjQxNSw5ICsy NDE1LDEwIEBAIENoZWNrVmFyU2xvdENvbXBhdGliaWxpdHkoVHVwbGVUYWJsZVNsb3QgKnNsb3Qs IGludCBhdHRudW0sIE9pZCB2YXJ0eXBlKQogCiAJCWF0dHIgPSBUdXBsZURlc2NBdHRyKHNsb3Rf dHVwZGVzYywgYXR0bnVtIC0gMSk7CiAKLQkJLyogSW50ZXJuYWwgZXJyb3I6IHNvbWVib2R5IGZv cmdvdCB0byBleHBhbmQgaXQuICovCi0JCWlmIChhdHRyLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklC VVRFX0dFTkVSQVRFRF9WSVJUVUFMKQotCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgdmlydHVh bCBnZW5lcmF0ZWQgY29sdW1uIHJlZmVyZW5jZSIpOworCQkvKgorCQkgKiBWaXJ0dWFsIGdlbmVy YXRlZCBjb2x1bW5zIGFyZSBub3cgY29tcHV0ZWQgYW5kIHN0b3JlZCBpbiB0aGUgc2xvdAorCQkg KiBieSBFeGVjQ29tcHV0ZVZpcnR1YWxHZW5lcmF0ZWQoKSwgc28gcmVhZGluZyB0aGVtIGlzIHZh bGlkLgorCQkgKi8KIAogCQlpZiAoYXR0ci0+YXR0aXNkcm9wcGVkKQogCQkJZXJlcG9ydChFUlJP UiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjTWFpbi5jCmluZGV4IGZkZTUwMmVmZDM4Li5iYWNiN2Q0NGU5MyAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9leGVjTWFpbi5jCkBAIC01Myw2ICs1Myw4IEBACiAjaW5jbHVkZSAiZm9y ZWlnbi9mZHdhcGkuaCIKICNpbmNsdWRlICJtYi9wZ193Y2hhci5oIgogI2luY2x1ZGUgIm1pc2Nh ZG1pbi5oIgorI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgorI2luY2x1ZGUgIm5vZGVzL25v ZGVGdW5jcy5oIgogI2luY2x1ZGUgIm5vZGVzL3F1ZXJ5anVtYmxlLmgiCiAjaW5jbHVkZSAicGFy c2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCkBAIC0xMzU3LDYgKzEz NTksOCBAQCBJbml0UmVzdWx0UmVsSW5mbyhSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAog CXJlc3VsdFJlbEluZm8tPnJpX0dlblZpcnR1YWxOb3ROdWxsQ29uc3RyYWludEV4cHJzID0gTlVM TDsKIAlyZXN1bHRSZWxJbmZvLT5yaV9HZW5lcmF0ZWRFeHByc0kgPSBOVUxMOwogCXJlc3VsdFJl bEluZm8tPnJpX0dlbmVyYXRlZEV4cHJzVSA9IE5VTEw7CisJcmVzdWx0UmVsSW5mby0+cmlfVmly dHVhbEdlbmVyYXRlZEV4cHJzSSA9IE5VTEw7CisJcmVzdWx0UmVsSW5mby0+cmlfVmlydHVhbEdl bmVyYXRlZEV4cHJzVSA9IE5VTEw7CiAJcmVzdWx0UmVsSW5mby0+cmlfcHJvamVjdFJldHVybmlu ZyA9IE5VTEw7CiAJcmVzdWx0UmVsSW5mby0+cmlfb25Db25mbGljdEFyYml0ZXJJbmRleGVzID0g TklMOwogCXJlc3VsdFJlbEluZm8tPnJpX29uQ29uZmxpY3QgPSBOVUxMOwpAQCAtMTg3Nyw3ICsx ODgxLDEzIEBAIEV4ZWNSZWxDaGVjayhSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAogCQkJ CWNvbnRpbnVlOwogCiAJCQljaGVja2NvbnN0ciA9IHN0cmluZ1RvTm9kZShjaGVja1tpXS5jY2Jp bik7Ci0JCQljaGVja2NvbnN0ciA9IChFeHByICopIGV4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19p bl9leHByKChOb2RlICopIGNoZWNrY29uc3RyLCByZWwsIDEpOworCisJCQkvKgorCQkJICogTm8g bmVlZCB0byBjYWxsIGV4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19pbl9leHByKCkgaGVyZS4KKwkJ CSAqIFZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbiB2YWx1ZXMgYXJlIGNvbXB1dGVkIGFuZCBzdG9y ZWQgaW4gdGhlCisJCQkgKiBzbG90IGJ5IEV4ZWNDb21wdXRlVmlydHVhbEdlbmVyYXRlZCgpIGJl Zm9yZSB3ZSBnZXQgaGVyZSwgc28KKwkJCSAqIHRoZSBleHByZXNzaW9uIGV2YWx1YXRvciBjYW4g cmVhZCB0aGVtIGRpcmVjdGx5IGZyb20gdGhlIHNsb3QuCisJCQkgKi8KIAkJCXJlc3VsdFJlbElu Zm8tPnJpX0NoZWNrQ29uc3RyYWludEV4cHJzW2ldID0KIAkJCQlFeGVjUHJlcGFyZUV4cHIoY2hl Y2tjb25zdHIsIGVzdGF0ZSk7CiAJCX0KQEAgLTI1MzgsOSArMjU0OCwxMiBAQCBFeGVjQnVpbGRT bG90VmFsdWVEZXNjcmlwdGlvbihPaWQgcmVsb2lkLAogCiAJCWlmICh0YWJsZV9wZXJtIHx8IGNv bHVtbl9wZXJtKQogCQl7Ci0JCQlpZiAoYXR0LT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dF TkVSQVRFRF9WSVJUVUFMKQotCQkJCXZhbCA9ICJ2aXJ0dWFsIjsKLQkJCWVsc2UgaWYgKHNsb3Qt PnR0c19pc251bGxbaV0pCisJCQkvKgorCQkJICogVmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uIHZh bHVlcyBhcmUgY29tcHV0ZWQgYW5kIHN0b3JlZCBpbiB0aGUKKwkJCSAqIHNsb3QgYnkgRXhlY0Nv bXB1dGVWaXJ0dWFsR2VuZXJhdGVkKCksIHNvIHdlIGNhbiByZWFkIHRoZW0KKwkJCSAqIGRpcmVj dGx5IGxpa2UgcmVndWxhciBjb2x1bW5zLgorCQkJICovCisJCQlpZiAoc2xvdC0+dHRzX2lzbnVs bFtpXSkKIAkJCQl2YWwgPSAibnVsbCI7CiAJCQllbHNlCiAJCQl7CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjUmVwbGljYXRpb24uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNSZXBsaWNhdGlvbi5jCmluZGV4IGIyY2E1Y2JmMTE3Li42NDBjMGZmNThjZiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JlcGxpY2F0aW9uLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY1JlcGxpY2F0aW9uLmMKQEAgLTgzOCw2ICs4MzgsMTIgQEAgRXhl Y1NpbXBsZVJlbGF0aW9uSW5zZXJ0KFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJCQlF eGVjQ29tcHV0ZVN0b3JlZEdlbmVyYXRlZChyZXN1bHRSZWxJbmZvLCBlc3RhdGUsIHNsb3QsCiAJ CQkJCQkJCQkgICBDTURfSU5TRVJUKTsKIAorCQkvKiBDb21wdXRlIHZpcnR1YWwgZ2VuZXJhdGVk IGNvbHVtbnMgKi8KKwkJaWYgKHJlbC0+cmRfYXR0LT5jb25zdHIgJiYKKwkJCXJlbC0+cmRfYXR0 LT5jb25zdHItPmhhc19nZW5lcmF0ZWRfdmlydHVhbCkKKwkJCUV4ZWNDb21wdXRlVmlydHVhbEdl bmVyYXRlZChyZXN1bHRSZWxJbmZvLCBlc3RhdGUsIHNsb3QsCisJCQkJCQkJCQkJQ01EX0lOU0VS VCk7CisKIAkJLyogQ2hlY2sgdGhlIGNvbnN0cmFpbnRzIG9mIHRoZSB0dXBsZSAqLwogCQlpZiAo cmVsLT5yZF9hdHQtPmNvbnN0cikKIAkJCUV4ZWNDb25zdHJhaW50cyhyZXN1bHRSZWxJbmZvLCBz bG90LCBlc3RhdGUpOwpAQCAtOTQyLDYgKzk0OCwxMiBAQCBFeGVjU2ltcGxlUmVsYXRpb25VcGRh dGUoUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKIAkJCUV4ZWNDb21wdXRlU3RvcmVkR2Vu ZXJhdGVkKHJlc3VsdFJlbEluZm8sIGVzdGF0ZSwgc2xvdCwKIAkJCQkJCQkJCSAgIENNRF9VUERB VEUpOwogCisJCS8qIENvbXB1dGUgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1ucyAqLworCQlpZiAo cmVsLT5yZF9hdHQtPmNvbnN0ciAmJgorCQkJcmVsLT5yZF9hdHQtPmNvbnN0ci0+aGFzX2dlbmVy YXRlZF92aXJ0dWFsKQorCQkJRXhlY0NvbXB1dGVWaXJ0dWFsR2VuZXJhdGVkKHJlc3VsdFJlbElu Zm8sIGVzdGF0ZSwgc2xvdCwKKwkJCQkJCQkJCQlDTURfVVBEQVRFKTsKKwogCQkvKiBDaGVjayB0 aGUgY29uc3RyYWludHMgb2YgdGhlIHR1cGxlICovCiAJCWlmIChyZWwtPnJkX2F0dC0+Y29uc3Ry KQogCQkJRXhlY0NvbnN0cmFpbnRzKHJlc3VsdFJlbEluZm8sIHNsb3QsIGVzdGF0ZSk7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5jCmluZGV4IGI5NzgxZWIzYjk1Li45ZTk1ODkw MjE2NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMK KysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMKQEAgLTQzOSw4ICs0 MzksMTAgQEAgRXhlY0NoZWNrVElEVmlzaWJsZShFU3RhdGUgKmVzdGF0ZSwKICAqIEluaXRpYWxp emUgZ2VuZXJhdGVkIGNvbHVtbnMgaGFuZGxpbmcgZm9yIGEgdHVwbGUKICAqCiAgKiBUaGlzIGZp bGxzIHRoZSByZXN1bHRSZWxJbmZvJ3MgcmlfR2VuZXJhdGVkRXhwcnNJL3JpX051bUdlbmVyYXRl ZE5lZWRlZEkgb3IKLSAqIHJpX0dlbmVyYXRlZEV4cHJzVS9yaV9OdW1HZW5lcmF0ZWROZWVkZWRV IGZpZWxkcywgZGVwZW5kaW5nIG9uIGNtZHR5cGUuCi0gKiBUaGlzIGlzIHVzZWQgb25seSBmb3Ig c3RvcmVkIGdlbmVyYXRlZCBjb2x1bW5zLgorICogcmlfR2VuZXJhdGVkRXhwcnNVL3JpX051bUdl bmVyYXRlZE5lZWRlZFUgZmllbGRzIGZvciBzdG9yZWQgZ2VuZXJhdGVkCisgKiBjb2x1bW5zLCBh bmQgcmlfVmlydHVhbEdlbmVyYXRlZEV4cHJzSS9yaV9OdW1WaXJ0dWFsR2VuZXJhdGVkTmVlZGVk SSBvcgorICogcmlfVmlydHVhbEdlbmVyYXRlZEV4cHJzVS9yaV9OdW1WaXJ0dWFsR2VuZXJhdGVk TmVlZGVkVSBmaWVsZHMgZm9yIHZpcnR1YWwKKyAqIGdlbmVyYXRlZCBjb2x1bW5zLCBkZXBlbmRp bmcgb24gY21kdHlwZS4KICAqCiAgKiBJZiBjbWRUeXBlID09IENNRF9VUERBVEUsIHRoZSByaV9l eHRyYVVwZGF0ZWRDb2xzIGZpZWxkIGlzIGZpbGxlZCB0b28uCiAgKiBUaGlzIGlzIHVzZWQgYnkg Ym90aCBzdG9yZWQgYW5kIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMuCkBAIC00NjAsNiArNDYy LDggQEAgRXhlY0luaXRHZW5lcmF0ZWQoUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKIAlp bnQJCQluYXR0cyA9IHR1cGRlc2MtPm5hdHRzOwogCUV4cHJTdGF0ZSAqKnJpX0dlbmVyYXRlZEV4 cHJzOwogCWludAkJCXJpX051bUdlbmVyYXRlZE5lZWRlZDsKKwlFeHByU3RhdGUgKipyaV9WaXJ0 dWFsR2VuZXJhdGVkRXhwcnM7CisJaW50CQkJcmlfTnVtVmlydHVhbEdlbmVyYXRlZE5lZWRlZDsK IAlCaXRtYXBzZXQgICp1cGRhdGVkQ29sczsKIAlNZW1vcnlDb250ZXh0IG9sZENvbnRleHQ7CiAK QEAgLTQ4Nyw2ICs0OTEsOCBAQCBFeGVjSW5pdEdlbmVyYXRlZChSZXN1bHRSZWxJbmZvICpyZXN1 bHRSZWxJbmZvLAogCiAJcmlfR2VuZXJhdGVkRXhwcnMgPSAoRXhwclN0YXRlICoqKSBwYWxsb2Mw KG5hdHRzICogc2l6ZW9mKEV4cHJTdGF0ZSAqKSk7CiAJcmlfTnVtR2VuZXJhdGVkTmVlZGVkID0g MDsKKwlyaV9WaXJ0dWFsR2VuZXJhdGVkRXhwcnMgPSAoRXhwclN0YXRlICoqKSBwYWxsb2MwKG5h dHRzICogc2l6ZW9mKEV4cHJTdGF0ZSAqKSk7CisJcmlfTnVtVmlydHVhbEdlbmVyYXRlZE5lZWRl ZCA9IDA7CiAKIAlmb3IgKGludCBpID0gMDsgaSA8IG5hdHRzOyBpKyspCiAJewpAQCAtNTIyLDYg KzUyOCwxMSBAQCBFeGVjSW5pdEdlbmVyYXRlZChSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZv LAogCQkJCXJpX0dlbmVyYXRlZEV4cHJzW2ldID0gRXhlY1ByZXBhcmVFeHByKGV4cHIsIGVzdGF0 ZSk7CiAJCQkJcmlfTnVtR2VuZXJhdGVkTmVlZGVkKys7CiAJCQl9CisJCQllbHNlIGlmIChhdHRn ZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJeworCQkJCXJpX1Zp cnR1YWxHZW5lcmF0ZWRFeHByc1tpXSA9IEV4ZWNQcmVwYXJlRXhwcihleHByLCBlc3RhdGUpOwor CQkJCXJpX051bVZpcnR1YWxHZW5lcmF0ZWROZWVkZWQrKzsKKwkJCX0KIAogCQkJLyogSWYgVVBE QVRFLCBtYXJrIGNvbHVtbiBpbiByZXN1bHRSZWxJbmZvLT5yaV9leHRyYVVwZGF0ZWRDb2xzICov CiAJCQlpZiAoY21kdHlwZSA9PSBDTURfVVBEQVRFKQpAQCAtNTM4LDE0ICs1NDksMjQgQEAgRXhl Y0luaXRHZW5lcmF0ZWQoUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKIAkJcmlfR2VuZXJh dGVkRXhwcnMgPSBOVUxMOwogCX0KIAorCWlmIChyaV9OdW1WaXJ0dWFsR2VuZXJhdGVkTmVlZGVk ID09IDApCisJeworCQkvKiBkaWRuJ3QgbmVlZCBpdCBhZnRlciBhbGwgKi8KKwkJcGZyZWUocmlf VmlydHVhbEdlbmVyYXRlZEV4cHJzKTsKKwkJcmlfVmlydHVhbEdlbmVyYXRlZEV4cHJzID0gTlVM TDsKKwl9CisKIAkvKiBTYXZlIGluIGFwcHJvcHJpYXRlIHNldCBvZiBmaWVsZHMgKi8KIAlpZiAo Y21kdHlwZSA9PSBDTURfVVBEQVRFKQogCXsKIAkJLyogRG9uJ3QgY2FsbCB0d2ljZSAqLwogCQlB c3NlcnQocmVzdWx0UmVsSW5mby0+cmlfR2VuZXJhdGVkRXhwcnNVID09IE5VTEwpOworCQlBc3Nl cnQocmVzdWx0UmVsSW5mby0+cmlfVmlydHVhbEdlbmVyYXRlZEV4cHJzVSA9PSBOVUxMKTsKIAog CQlyZXN1bHRSZWxJbmZvLT5yaV9HZW5lcmF0ZWRFeHByc1UgPSByaV9HZW5lcmF0ZWRFeHByczsK IAkJcmVzdWx0UmVsSW5mby0+cmlfTnVtR2VuZXJhdGVkTmVlZGVkVSA9IHJpX051bUdlbmVyYXRl ZE5lZWRlZDsKKwkJcmVzdWx0UmVsSW5mby0+cmlfVmlydHVhbEdlbmVyYXRlZEV4cHJzVSA9IHJp X1ZpcnR1YWxHZW5lcmF0ZWRFeHByczsKKwkJcmVzdWx0UmVsSW5mby0+cmlfTnVtVmlydHVhbEdl bmVyYXRlZE5lZWRlZFUgPSByaV9OdW1WaXJ0dWFsR2VuZXJhdGVkTmVlZGVkOwogCiAJCXJlc3Vs dFJlbEluZm8tPnJpX2V4dHJhVXBkYXRlZENvbHNfdmFsaWQgPSB0cnVlOwogCX0KQEAgLTU1Myw5 ICs1NzQsMTIgQEAgRXhlY0luaXRHZW5lcmF0ZWQoUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5m bywKIAl7CiAJCS8qIERvbid0IGNhbGwgdHdpY2UgKi8KIAkJQXNzZXJ0KHJlc3VsdFJlbEluZm8t PnJpX0dlbmVyYXRlZEV4cHJzSSA9PSBOVUxMKTsKKwkJQXNzZXJ0KHJlc3VsdFJlbEluZm8tPnJp X1ZpcnR1YWxHZW5lcmF0ZWRFeHByc0kgPT0gTlVMTCk7CiAKIAkJcmVzdWx0UmVsSW5mby0+cmlf R2VuZXJhdGVkRXhwcnNJID0gcmlfR2VuZXJhdGVkRXhwcnM7CiAJCXJlc3VsdFJlbEluZm8tPnJp X051bUdlbmVyYXRlZE5lZWRlZEkgPSByaV9OdW1HZW5lcmF0ZWROZWVkZWQ7CisJCXJlc3VsdFJl bEluZm8tPnJpX1ZpcnR1YWxHZW5lcmF0ZWRFeHByc0kgPSByaV9WaXJ0dWFsR2VuZXJhdGVkRXhw cnM7CisJCXJlc3VsdFJlbEluZm8tPnJpX051bVZpcnR1YWxHZW5lcmF0ZWROZWVkZWRJID0gcmlf TnVtVmlydHVhbEdlbmVyYXRlZE5lZWRlZDsKIAl9CiAKIAlNZW1vcnlDb250ZXh0U3dpdGNoVG8o b2xkQ29udGV4dCk7CkBAIC02NTEsNiArNjc1LDg1IEBAIEV4ZWNDb21wdXRlU3RvcmVkR2VuZXJh dGVkKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJTWVtb3J5Q29udGV4dFN3aXRjaFRv KG9sZENvbnRleHQpOwogfQogCisvKgorICogQ29tcHV0ZSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1 bW5zIGZvciBhIHR1cGxlCisgKgorICogVGhpcyBldmFsdWF0ZXMgdGhlIGdlbmVyYXRpb24gZXhw cmVzc2lvbnMgZm9yIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMKKyAqIGFuZCBzdG9yZXMgdGhl IHJlc3VsdHMgZGlyZWN0bHkgaW4gdGhlIHNsb3QuIFVubGlrZSBzdG9yZWQgZ2VuZXJhdGVkCisg KiBjb2x1bW5zLCB0aGVzZSB2YWx1ZXMgYXJlIG5vdCBwZXJzaXN0ZWQgdG8gZGlzayBidXQgYXJl IGNvbXB1dGVkIGZvcgorICogdXNlIGluIGNvbnN0cmFpbnQgY2hlY2tpbmcgYW5kIGVycm9yIG1l c3NhZ2VzLgorICovCit2b2lkCitFeGVjQ29tcHV0ZVZpcnR1YWxHZW5lcmF0ZWQoUmVzdWx0UmVs SW5mbyAqcmVzdWx0UmVsSW5mbywKKwkJCQkJCQlFU3RhdGUgKmVzdGF0ZSwgVHVwbGVUYWJsZVNs b3QgKnNsb3QsCisJCQkJCQkJQ21kVHlwZSBjbWR0eXBlKQoreworCVJlbGF0aW9uCXJlbCA9IHJl c3VsdFJlbEluZm8tPnJpX1JlbGF0aW9uRGVzYzsKKwlUdXBsZURlc2MJdHVwZGVzYyA9IFJlbGF0 aW9uR2V0RGVzY3IocmVsKTsKKwlpbnQJCQluYXR0cyA9IHR1cGRlc2MtPm5hdHRzOworCUV4cHJD b250ZXh0ICplY29udGV4dCA9IEdldFBlclR1cGxlRXhwckNvbnRleHQoZXN0YXRlKTsKKwlFeHBy U3RhdGUgKipyaV9WaXJ0dWFsR2VuZXJhdGVkRXhwcnM7CisJTWVtb3J5Q29udGV4dCBvbGRDb250 ZXh0OworCisJLyogV2Ugc2hvdWxkIG5vdCBiZSBjYWxsZWQgdW5sZXNzIHRoaXMgaXMgdHJ1ZSAq LworCUFzc2VydCh0dXBkZXNjLT5jb25zdHIgJiYgdHVwZGVzYy0+Y29uc3RyLT5oYXNfZ2VuZXJh dGVkX3ZpcnR1YWwpOworCisJLyoKKwkgKiBJbml0aWFsaXplIHRoZSBleHByZXNzaW9ucyBpZiB3 ZSBkaWRuJ3QgYWxyZWFkeSwgYW5kIGNoZWNrIHdoZXRoZXIgd2UKKwkgKiBjYW4gZXhpdCBlYXJs eSBiZWNhdXNlIG5vdGhpbmcgbmVlZHMgdG8gYmUgY29tcHV0ZWQuCisJICovCisJaWYgKGNtZHR5 cGUgPT0gQ01EX1VQREFURSkKKwl7CisJCWlmIChyZXN1bHRSZWxJbmZvLT5yaV9WaXJ0dWFsR2Vu ZXJhdGVkRXhwcnNVID09IE5VTEwpCisJCQlFeGVjSW5pdEdlbmVyYXRlZChyZXN1bHRSZWxJbmZv LCBlc3RhdGUsIGNtZHR5cGUpOworCQlpZiAocmVzdWx0UmVsSW5mby0+cmlfTnVtVmlydHVhbEdl bmVyYXRlZE5lZWRlZFUgPT0gMCkKKwkJCXJldHVybjsKKwkJcmlfVmlydHVhbEdlbmVyYXRlZEV4 cHJzID0gcmVzdWx0UmVsSW5mby0+cmlfVmlydHVhbEdlbmVyYXRlZEV4cHJzVTsKKwl9CisJZWxz ZQorCXsKKwkJaWYgKHJlc3VsdFJlbEluZm8tPnJpX1ZpcnR1YWxHZW5lcmF0ZWRFeHByc0kgPT0g TlVMTCkKKwkJCUV4ZWNJbml0R2VuZXJhdGVkKHJlc3VsdFJlbEluZm8sIGVzdGF0ZSwgY21kdHlw ZSk7CisJCWlmIChyZXN1bHRSZWxJbmZvLT5yaV9OdW1WaXJ0dWFsR2VuZXJhdGVkTmVlZGVkSSA9 PSAwKQorCQkJcmV0dXJuOworCQlyaV9WaXJ0dWFsR2VuZXJhdGVkRXhwcnMgPSByZXN1bHRSZWxJ bmZvLT5yaV9WaXJ0dWFsR2VuZXJhdGVkRXhwcnNJOworCX0KKworCW9sZENvbnRleHQgPSBNZW1v cnlDb250ZXh0U3dpdGNoVG8oR2V0UGVyVHVwbGVNZW1vcnlDb250ZXh0KGVzdGF0ZSkpOworCisJ LyogTWFrZSBzdXJlIGFsbCBiYXNlIGNvbHVtbiB2YWx1ZXMgYXJlIGF2YWlsYWJsZSAqLworCXNs b3RfZ2V0YWxsYXR0cnMoc2xvdCk7CisKKwllY29udGV4dC0+ZWN4dF9zY2FudHVwbGUgPSBzbG90 OworCisJZm9yIChpbnQgaSA9IDA7IGkgPCBuYXR0czsgaSsrKQorCXsKKwkJQ29tcGFjdEF0dHJp YnV0ZSAqYXR0ciA9IFR1cGxlRGVzY0NvbXBhY3RBdHRyKHR1cGRlc2MsIGkpOworCisJCWlmIChy aV9WaXJ0dWFsR2VuZXJhdGVkRXhwcnNbaV0pCisJCXsKKwkJCURhdHVtCQl2YWw7CisJCQlib29s CQlpc251bGw7CisKKwkJCUFzc2VydChUdXBsZURlc2NBdHRyKHR1cGRlc2MsIGkpLT5hdHRnZW5l cmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKTsKKworCQkJdmFsID0gRXhlY0V2 YWxFeHByKHJpX1ZpcnR1YWxHZW5lcmF0ZWRFeHByc1tpXSwgZWNvbnRleHQsICZpc251bGwpOwor CisJCQkvKgorCQkJICogV2UgbXVzdCBtYWtlIGEgY29weSBvZiB2YWwgYXMgd2UgaGF2ZSBubyBn dWFyYW50ZWVzIGFib3V0IHdoZXJlCisJCQkgKiBtZW1vcnkgZm9yIGEgcGFzcy1ieS1yZWZlcmVu Y2UgRGF0dW0gaXMgbG9jYXRlZC4KKwkJCSAqLworCQkJaWYgKCFpc251bGwpCisJCQkJdmFsID0g ZGF0dW1Db3B5KHZhbCwgYXR0ci0+YXR0Ynl2YWwsIGF0dHItPmF0dGxlbik7CisKKwkJCXNsb3Qt PnR0c192YWx1ZXNbaV0gPSB2YWw7CisJCQlzbG90LT50dHNfaXNudWxsW2ldID0gaXNudWxsOwor CQl9CisJfQorCisJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZENvbnRleHQpOworfQorCiAvKgog ICogRXhlY0luaXRJbnNlcnRQcm9qZWN0aW9uCiAgKgkJRG8gb25lLXRpbWUgaW5pdGlhbGl6YXRp b24gb2YgcHJvamVjdGlvbiBkYXRhIGZvciBJTlNFUlQgdHVwbGVzLgpAQCAtOTU5LDYgKzEwNjIs MTQgQEAgRXhlY0luc2VydChNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQsCiAJCQlFeGVjQ29t cHV0ZVN0b3JlZEdlbmVyYXRlZChyZXN1bHRSZWxJbmZvLCBlc3RhdGUsIHNsb3QsCiAJCQkJCQkJ CQkgICBDTURfSU5TRVJUKTsKIAorCQkvKgorCQkgKiBDb21wdXRlIHZpcnR1YWwgZ2VuZXJhdGVk IGNvbHVtbnMKKwkJICovCisJCWlmIChyZXN1bHRSZWxhdGlvbkRlc2MtPnJkX2F0dC0+Y29uc3Ry ICYmCisJCQlyZXN1bHRSZWxhdGlvbkRlc2MtPnJkX2F0dC0+Y29uc3RyLT5oYXNfZ2VuZXJhdGVk X3ZpcnR1YWwpCisJCQlFeGVjQ29tcHV0ZVZpcnR1YWxHZW5lcmF0ZWQocmVzdWx0UmVsSW5mbywg ZXN0YXRlLCBzbG90LAorCQkJCQkJCQkJCUNNRF9JTlNFUlQpOworCiAJCS8qCiAJCSAqIElmIHRo ZSBGRFcgc3VwcG9ydHMgYmF0Y2hpbmcsIGFuZCBiYXRjaGluZyBpcyByZXF1ZXN0ZWQsIGFjY3Vt dWxhdGUKIAkJICogcm93cyBhbmQgaW5zZXJ0IHRoZW0gaW4gYmF0Y2hlcy4gT3RoZXJ3aXNlIHVz ZSB0aGUgcGVyLXJvdyBpbnNlcnRzLgpAQCAtMTA4NCw2ICsxMTk1LDE0IEBAIEV4ZWNJbnNlcnQo TW9kaWZ5VGFibGVDb250ZXh0ICpjb250ZXh0LAogCQkJRXhlY0NvbXB1dGVTdG9yZWRHZW5lcmF0 ZWQocmVzdWx0UmVsSW5mbywgZXN0YXRlLCBzbG90LAogCQkJCQkJCQkJICAgQ01EX0lOU0VSVCk7 CiAKKwkJLyoKKwkJICogQ29tcHV0ZSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zCisJCSAqLwor CQlpZiAocmVzdWx0UmVsYXRpb25EZXNjLT5yZF9hdHQtPmNvbnN0ciAmJgorCQkJcmVzdWx0UmVs YXRpb25EZXNjLT5yZF9hdHQtPmNvbnN0ci0+aGFzX2dlbmVyYXRlZF92aXJ0dWFsKQorCQkJRXhl Y0NvbXB1dGVWaXJ0dWFsR2VuZXJhdGVkKHJlc3VsdFJlbEluZm8sIGVzdGF0ZSwgc2xvdCwKKwkJ CQkJCQkJCQlDTURfSU5TRVJUKTsKKwogCQkvKgogCQkgKiBDaGVjayBhbnkgUkxTIFdJVEggQ0hF Q0sgcG9saWNpZXMuCiAJCSAqCkBAIC0yNDI5LDYgKzI1NDgsMTQgQEAgRXhlY1VwZGF0ZVByZXBh cmVTbG90KFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJCXJlc3VsdFJlbGF0aW9uRGVz Yy0+cmRfYXR0LT5jb25zdHItPmhhc19nZW5lcmF0ZWRfc3RvcmVkKQogCQlFeGVjQ29tcHV0ZVN0 b3JlZEdlbmVyYXRlZChyZXN1bHRSZWxJbmZvLCBlc3RhdGUsIHNsb3QsCiAJCQkJCQkJCSAgIENN RF9VUERBVEUpOworCisJLyoKKwkgKiBDb21wdXRlIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMK KwkgKi8KKwlpZiAocmVzdWx0UmVsYXRpb25EZXNjLT5yZF9hdHQtPmNvbnN0ciAmJgorCQlyZXN1 bHRSZWxhdGlvbkRlc2MtPnJkX2F0dC0+Y29uc3RyLT5oYXNfZ2VuZXJhdGVkX3ZpcnR1YWwpCisJ CUV4ZWNDb21wdXRlVmlydHVhbEdlbmVyYXRlZChyZXN1bHRSZWxJbmZvLCBlc3RhdGUsIHNsb3Qs CisJCQkJCQkJCQlDTURfVVBEQVRFKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2V4ZWN1dG9yL25vZGVNb2RpZnlUYWJsZS5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivbm9kZU1v ZGlmeVRhYmxlLmgKaW5kZXggZjYwNzBlMWNkZjMuLjdjYmJlOGMxYTFmIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9leGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9l eGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuaApAQCAtMjMsNiArMjMsMTAgQEAgZXh0ZXJuIHZvaWQg RXhlY0NvbXB1dGVTdG9yZWRHZW5lcmF0ZWQoUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywK IAkJCQkJCQkJCSAgIEVTdGF0ZSAqZXN0YXRlLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCwKIAkJCQkJ CQkJCSAgIENtZFR5cGUgY21kdHlwZSk7CiAKK2V4dGVybiB2b2lkIEV4ZWNDb21wdXRlVmlydHVh bEdlbmVyYXRlZChSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAorCQkJCQkJCQkJCUVTdGF0 ZSAqZXN0YXRlLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCwKKwkJCQkJCQkJCQlDbWRUeXBlIGNtZHR5 cGUpOworCiBleHRlcm4gTW9kaWZ5VGFibGVTdGF0ZSAqRXhlY0luaXRNb2RpZnlUYWJsZShNb2Rp ZnlUYWJsZSAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxhZ3MpOwogZXh0ZXJuIHZvaWQg RXhlY0VuZE1vZGlmeVRhYmxlKE1vZGlmeVRhYmxlU3RhdGUgKm5vZGUpOwogZXh0ZXJuIHZvaWQg RXhlY1JlU2Nhbk1vZGlmeVRhYmxlKE1vZGlmeVRhYmxlU3RhdGUgKm5vZGUpOwpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVj bm9kZXMuaAppbmRleCBlNjRmZDhjN2VhMy4uOGNhODdlYjRiZTUgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rl cy5oCkBAIC02MDQsNiArNjA0LDE2IEBAIHR5cGVkZWYgc3RydWN0IFJlc3VsdFJlbEluZm8KIAlp bnQJCQlyaV9OdW1HZW5lcmF0ZWROZWVkZWRJOwogCWludAkJCXJpX051bUdlbmVyYXRlZE5lZWRl ZFU7CiAKKwkvKgorCSAqIEFycmF5cyBvZiB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIEV4cHJT dGF0ZXMgZm9yIElOU0VSVC9VUERBVEUvTUVSR0UuCisJICovCisJRXhwclN0YXRlICoqcmlfVmly dHVhbEdlbmVyYXRlZEV4cHJzSTsKKwlFeHByU3RhdGUgKipyaV9WaXJ0dWFsR2VuZXJhdGVkRXhw cnNVOworCisJLyogbnVtYmVyIG9mIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgd2UgbmVlZCB0 byBjb21wdXRlICovCisJaW50CQkJcmlfTnVtVmlydHVhbEdlbmVyYXRlZE5lZWRlZEk7CisJaW50 CQkJcmlfTnVtVmlydHVhbEdlbmVyYXRlZE5lZWRlZFU7CisKIAkvKiBsaXN0IG9mIFJFVFVSTklO RyBleHByZXNzaW9ucyAqLwogCUxpc3QJICAgKnJpX3JldHVybmluZ0xpc3Q7CiAKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3ZpcnR1YWwub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0ZWRfdmlydHVhbC5vdXQKaW5kZXggNmVlMDI5 Nzk2ZjEuLjQzZjVjZDhkYzc4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2dlbmVyYXRlZF92aXJ0dWFsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2dl bmVyYXRlZF92aXJ0dWFsLm91dApAQCAtMTY2LDExICsxNjYsOSBAQCBTRUxFQ1QgYSwgYiBGUk9N IGd0ZXN0MSBXSEVSRSBiID0gNCBPUkRFUiBCWSBhOwogIDIgfCA0CiAoMSByb3cpCiAKLS0tIHRl c3QgdGhhdCBvdmVyZmxvdyBlcnJvciBoYXBwZW5zIG9uIHJlYWQKKy0tIHRlc3QgdGhhdCBvdmVy ZmxvdyBlcnJvciBoYXBwZW5zIG9uIHdyaXRlCiBJTlNFUlQgSU5UTyBndGVzdDEgVkFMVUVTICgy MDAwMDAwMDAwKTsKLVNFTEVDVCAqIEZST00gZ3Rlc3QxOwogRVJST1I6ICBpbnRlZ2VyIG91dCBv ZiByYW5nZQotREVMRVRFIEZST00gZ3Rlc3QxIFdIRVJFIGEgPSAyMDAwMDAwMDAwOwogLS0gdGVz dCB3aXRoIGpvaW5zCiBDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgeSBpbnQpOwogSU5TRVJU IElOVE8gZ3Rlc3R4IFZBTFVFUyAoMTEsIDEpLCAoMjIsIDIpLCAoMzMsIDMpOwpAQCAtNjQ3LDcg KzY0NSw3IEBAIENSRUFURSBUQUJMRSBndGVzdDIwIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQg R0VORVJBVEVEIEFMV0FZUyBBUyAoYSAqIDIpIFZJUlRVCiBJTlNFUlQgSU5UTyBndGVzdDIwIChh KSBWQUxVRVMgKDEwKTsgIC0tIG9rCiBJTlNFUlQgSU5UTyBndGVzdDIwIChhKSBWQUxVRVMgKDMw KTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKIEVSUk9SOiAgbmV3IHJvdyBmb3IgcmVsYXRpb24g Imd0ZXN0MjAiIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgImd0ZXN0MjBfYl9jaGVjayIKLURF VEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zICgzMCwgdmlydHVhbCkuCitERVRBSUw6ICBGYWls aW5nIHJvdyBjb250YWlucyAoMzAsIDYwKS4KIEFMVEVSIFRBQkxFIGd0ZXN0MjAgQUxURVIgQ09M VU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAxMDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWlu dAogRVJST1I6ICBjaGVjayBjb25zdHJhaW50ICJndGVzdDIwX2JfY2hlY2siIG9mIHJlbGF0aW9u ICJndGVzdDIwIiBpcyB2aW9sYXRlZCBieSBzb21lIHJvdwogQUxURVIgVEFCTEUgZ3Rlc3QyMCBB TFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDMpOyAgLS0gb2sKQEAgLTY5Myw3 ICs2OTEsNyBAQCBBTFRFUiBUQUJMRSBndGVzdDIwYyBBREQgQ09OU1RSQUlOVCB3aG9sZV9yb3df Y2hlY2sgQ0hFQ0sgKGd0ZXN0MjBjIElTIE5PVCBOVUxMKQogSU5TRVJUIElOVE8gZ3Rlc3QyMGMg VkFMVUVTICgxKTsgIC0tIG9rCiBJTlNFUlQgSU5UTyBndGVzdDIwYyBWQUxVRVMgKE5VTEwpOyAg LS0gZmFpbHMKIEVSUk9SOiAgbmV3IHJvdyBmb3IgcmVsYXRpb24gImd0ZXN0MjBjIiB2aW9sYXRl cyBjaGVjayBjb25zdHJhaW50ICJ3aG9sZV9yb3dfY2hlY2siCi1ERVRBSUw6ICBGYWlsaW5nIHJv dyBjb250YWlucyAobnVsbCwgdmlydHVhbCkuCitERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlu cyAobnVsbCwgbnVsbCkuCiBBTFRFUiBUQUJMRSBndGVzdDIwYyBBTFRFUiBDT0xVTU4gYiBTRVQg RVhQUkVTU0lPTiBBUyAoTlVMTDo6aW50KTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKIEVSUk9S OiAgY2hlY2sgY29uc3RyYWludCAid2hvbGVfcm93X2NoZWNrIiBvZiByZWxhdGlvbiAiZ3Rlc3Qy MGMiIGlzIHZpb2xhdGVkIGJ5IHNvbWUgcm93CiAtLSBpbmRleCB3aXRoIHdob2xlLXJvdyByZWZl cmVuY2UgbmVlZHMgcmVidWlsZApAQCAtNzA4LDEyICs3MDYsMTIgQEAgQ1JFQVRFIFRBQkxFIGd0 ZXN0MjFhIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVs bGlmKGEsIDAKIElOU0VSVCBJTlRPIGd0ZXN0MjFhIChhKSBWQUxVRVMgKDEpOyAgLS0gb2sKIElO U0VSVCBJTlRPIGd0ZXN0MjFhIChhKSBWQUxVRVMgKDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWlu dAogRVJST1I6ICBudWxsIHZhbHVlIGluIGNvbHVtbiAiYiIgb2YgcmVsYXRpb24gImd0ZXN0MjFh IiB2aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50Ci1ERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250 YWlucyAoMCwgdmlydHVhbCkuCitERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAoMCwgbnVs bCkuCiAtLSBhbHNvIGNoZWNrIHdpdGggdGFibGUgY29uc3RyYWludCBzeW50YXgKIENSRUFURSBU QUJMRSBndGVzdDIxYXggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChudWxsaWYoYSwgMCkpIFZJUlRVQUwsIENPTlNUUkFJTlQgY2MgTk9UIE5VTEwgYik7CiBJ TlNFUlQgSU5UTyBndGVzdDIxYXggKGEpIFZBTFVFUyAoMCk7ICAtLSB2aW9sYXRlcyBjb25zdHJh aW50CiBFUlJPUjogIG51bGwgdmFsdWUgaW4gY29sdW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3Qy MWF4IiB2aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50Ci1ERVRBSUw6ICBGYWlsaW5nIHJvdyBj b250YWlucyAoMCwgdmlydHVhbCkuCitERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAoMCwg bnVsbCkuCiBJTlNFUlQgSU5UTyBndGVzdDIxYXggKGEpIFZBTFVFUyAoMSk7ICAtLW9rCiAtLSBT RVQgRVhQUkVTU0lPTiBzdXBwb3J0cyBub3QgbnVsbCBjb25zdHJhaW50CiBBTFRFUiBUQUJMRSBn dGVzdDIxYXggQUxURVIgQ09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKG51bGxpZihhLCAxKSk7 IC0tZXJyb3IKQEAgLTcyMywxNyArNzIxLDE3IEBAIENSRUFURSBUQUJMRSBndGVzdDIxYXggKGEg aW50IFBSSU1BUlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYoYSwKIEFM VEVSIFRBQkxFIGd0ZXN0MjFheCBBREQgQ09OU1RSQUlOVCBjYyBOT1QgTlVMTCBiOwogSU5TRVJU IElOVE8gZ3Rlc3QyMWF4IChhKSBWQUxVRVMgKDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAog RVJST1I6ICBudWxsIHZhbHVlIGluIGNvbHVtbiAiYiIgb2YgcmVsYXRpb24gImd0ZXN0MjFheCIg dmlvbGF0ZXMgbm90LW51bGwgY29uc3RyYWludAotREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFp bnMgKDAsIHZpcnR1YWwpLgorREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKDAsIG51bGwp LgogRFJPUCBUQUJMRSBndGVzdDIxYXg7CiBDUkVBVEUgVEFCTEUgZ3Rlc3QyMWIgKGEgaW50LCBi IGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIFZJUlRVQUwpOwogQUxURVIg VEFCTEUgZ3Rlc3QyMWIgQUxURVIgQ09MVU1OIGIgU0VUIE5PVCBOVUxMOwogSU5TRVJUIElOVE8g Z3Rlc3QyMWIgKGEpIFZBTFVFUyAoMSk7ICAtLSBvawogSU5TRVJUIElOVE8gZ3Rlc3QyMWIgKGEp IFZBTFVFUyAoMiksICgwKTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKIEVSUk9SOiAgbnVsbCB2 YWx1ZSBpbiBjb2x1bW4gImIiIG9mIHJlbGF0aW9uICJndGVzdDIxYiIgdmlvbGF0ZXMgbm90LW51 bGwgY29uc3RyYWludAotREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKDAsIHZpcnR1YWwp LgorREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKDAsIG51bGwpLgogSU5TRVJUIElOVE8g Z3Rlc3QyMWIgKGEpIFZBTFVFUyAoTlVMTCk7ICAtLSBlcnJvcgogRVJST1I6ICBudWxsIHZhbHVl IGluIGNvbHVtbiAiYiIgb2YgcmVsYXRpb24gImd0ZXN0MjFiIiB2aW9sYXRlcyBub3QtbnVsbCBj b25zdHJhaW50Ci1ERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAobnVsbCwgdmlydHVhbCku CitERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAobnVsbCwgbnVsbCkuCiBBTFRFUiBUQUJM RSBndGVzdDIxYiBBTFRFUiBDT0xVTU4gYiBEUk9QIE5PVCBOVUxMOwogSU5TRVJUIElOVE8gZ3Rl c3QyMWIgKGEpIFZBTFVFUyAoMCk7ICAtLSBvayBub3cKIC0tIHZpcnR1YWwgZ2VuZXJhdGVkIGNv bHVtbnMgYXJlIG5vdCBwaHlzaWNhbGx5IHN0b3JlZCwgZXZlbiB3aGVuIG5vdCBudWxsCkBAIC03 OTAsMTAgKzc4OCwxMCBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3Rubl9jaGlsZGRlZiBQQVJUSVRJT04g T0YgZ3Rlc3Rubl9wYXJlbnQgZGVmYXVsdDsKIElOU0VSVCBJTlRPIGd0ZXN0bm5fcGFyZW50IFZB TFVFUyAoMiwgMiwgZGVmYXVsdCksICgzLCA1LCBkZWZhdWx0KSwgKDE0LCAxMiwgZGVmYXVsdCk7 ICAtLSBvawogSU5TRVJUIElOVE8gZ3Rlc3Rubl9wYXJlbnQgVkFMVUVTICgxLCAyLCBkZWZhdWx0 KTsgIC0tIGVycm9yCiBFUlJPUjogIG51bGwgdmFsdWUgaW4gY29sdW1uICJmMyIgb2YgcmVsYXRp b24gImd0ZXN0bm5fY2hpbGQiIHZpb2xhdGVzIG5vdC1udWxsIGNvbnN0cmFpbnQKLURFVEFJTDog IEZhaWxpbmcgcm93IGNvbnRhaW5zICgxLCAyLCB2aXJ0dWFsKS4KK0RFVEFJTDogIEZhaWxpbmcg cm93IGNvbnRhaW5zICgxLCAyLCBudWxsKS4KIElOU0VSVCBJTlRPIGd0ZXN0bm5fcGFyZW50IFZB TFVFUyAoMiwgMTAsIGRlZmF1bHQpOyAgLS0gZXJyb3IKIEVSUk9SOiAgbnVsbCB2YWx1ZSBpbiBj b2x1bW4gImYzIiBvZiByZWxhdGlvbiAiZ3Rlc3Rubl9jaGlsZCIgdmlvbGF0ZXMgbm90LW51bGwg Y29uc3RyYWludAotREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKDIsIDEwLCB2aXJ0dWFs KS4KK0RFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zICgyLCAxMCwgbnVsbCkuCiBBTFRFUiBU QUJMRSBndGVzdG5uX3BhcmVudCBBTFRFUiBDT0xVTU4gZjMgU0VUIEVYUFJFU1NJT04gQVMgKG51 bGxpZihmMSwgMikgKyBudWxsaWYoZjIsIDExKSk7ICAtLSBlcnJvcgogRVJST1I6ICBjb2x1bW4g ImYzIiBvZiByZWxhdGlvbiAiZ3Rlc3Rubl9jaGlsZCIgY29udGFpbnMgbnVsbCB2YWx1ZXMKIElO U0VSVCBJTlRPIGd0ZXN0bm5fcGFyZW50IFZBTFVFUyAoMTAsIDExLCBkZWZhdWx0KTsgIC0tIG9r CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9tZXJnZS5v dXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BhcnRpdGlvbl9tZXJnZS5vdXQKaW5kZXgg Y2NkYTJiNTg0M2IuLmNlYTQyNjE1MTY3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3BhcnRpdGlvbl9tZXJnZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9wYXJ0aXRpb25fbWVyZ2Uub3V0CkBAIC0xMDU4LDkgKzEwNTgsOSBAQCBTRUxFQ1QgY291bnQo KikgRlJPTSB0IFdIRVJFIGkgPSAwIEFORCB0YWJfaWQgSU4gKFNFTEVDVCB0YWJfaWQgRlJPTSB0 IFdIRVJFIGkgPQogRFJPUCBUQUJMRSB0OwogLS0gVGVzdCBmb3IgZ2VuZXJhdGVkIGNvbHVtbnMg KGRpZmZlcmVudCBvcmRlciBvZiBjb2x1bW5zIGluIHBhcnRpdGlvbmVkIHRhYmxlCiAtLSBhbmQg cGFydGl0aW9ucykuCi1DUkVBVEUgVEFCTEUgdCAoaSBpbnQsIGcgaW50IEdFTkVSQVRFRCBBTFdB WVMgQVMgKGkgKyB0YWJsZW9pZDo6aW50KSkgUEFSVElUSU9OIEJZIFJBTkdFIChpKTsKLUNSRUFU RSBUQUJMRSB0cF8xIChnIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICsgdGFibGVvaWQ6Omlu dCksIGkgaW50KTsKLUNSRUFURSBUQUJMRSB0cF8yIChnIGludCBHRU5FUkFURUQgQUxXQVlTIEFT IChpICsgdGFibGVvaWQ6OmludCksIGkgaW50KTsKK0NSRUFURSBUQUJMRSB0IChpIGludCwgZyBp bnQgR0VORVJBVEVEIEFMV0FZUyBBUyAoaSArIDIpKSBQQVJUSVRJT04gQlkgUkFOR0UgKGkpOwor Q1JFQVRFIFRBQkxFIHRwXzEgKGcgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGkgKyAyKSwgaSBp bnQpOworQ1JFQVRFIFRBQkxFIHRwXzIgKGcgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGkgKyAy KSwgaSBpbnQpOwogQUxURVIgVEFCTEUgdCBBVFRBQ0ggUEFSVElUSU9OIHRwXzEgRk9SIFZBTFVF UyBGUk9NICgtMSkgVE8gKDEwKTsKIEFMVEVSIFRBQkxFIHQgQVRUQUNIIFBBUlRJVElPTiB0cF8y IEZPUiBWQUxVRVMgRlJPTSAoMTApIFRPICgyMCk7CiBBTFRFUiBUQUJMRSB0IEFERCBDSEVDSyAo ZyA+IDApOwpAQCAtMTA3MSw3ICsxMDcxLDcgQEAgSU5TRVJUIElOVE8gdCBWQUxVRVMgKDE2KTsK IC0tIEVSUk9SCiBJTlNFUlQgSU5UTyB0IFZBTFVFUyAoMCk7CiBFUlJPUjogIG5ldyByb3cgZm9y IHJlbGF0aW9uICJ0cF8xMiIgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAidF9pX2NoZWNrIgot REVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMgKDAsIHZpcnR1YWwpLgorREVUQUlMOiAgRmFp bGluZyByb3cgY29udGFpbnMgKDAsIDIpLgogLS0gU2hvdWxkIGJlIDMgcm93czogKDUpLCAoMTUp LCAoMTYpOgogU0VMRUNUIGkgRlJPTSB0IE9SREVSIEJZIGk7CiAgaSAgCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9nZW5lcmF0ZWRfdmlydHVhbC5zcWwgYi9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9nZW5lcmF0ZWRfdmlydHVhbC5zcWwKaW5kZXggZWQ5ZDUwZmU3ODQuLjg1OWIzNjcy N2NmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9nZW5lcmF0ZWRfdmlydHVhbC5z cWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJhdGVkX3ZpcnR1YWwuc3FsCkBAIC03 MSwxMCArNzEsOCBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0MSBPUkRFUiBCWSBhOwogU0VMRUNUIGEs IGIsIGIgKiAyIEFTIGIyIEZST00gZ3Rlc3QxIE9SREVSIEJZIGE7CiBTRUxFQ1QgYSwgYiBGUk9N IGd0ZXN0MSBXSEVSRSBiID0gNCBPUkRFUiBCWSBhOwogCi0tLSB0ZXN0IHRoYXQgb3ZlcmZsb3cg ZXJyb3IgaGFwcGVucyBvbiByZWFkCistLSB0ZXN0IHRoYXQgb3ZlcmZsb3cgZXJyb3IgaGFwcGVu cyBvbiB3cml0ZQogSU5TRVJUIElOVE8gZ3Rlc3QxIFZBTFVFUyAoMjAwMDAwMDAwMCk7Ci1TRUxF Q1QgKiBGUk9NIGd0ZXN0MTsKLURFTEVURSBGUk9NIGd0ZXN0MSBXSEVSRSBhID0gMjAwMDAwMDAw MDsKIAogLS0gdGVzdCB3aXRoIGpvaW5zCiBDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgeSBp bnQpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvcGFydGl0aW9uX21lcmdlLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9tZXJnZS5zcWwKaW5kZXggODBkYzM2 NWIwY2UuLjVhYTc4YjJmNTg1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wYXJ0 aXRpb25fbWVyZ2Uuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BhcnRpdGlvbl9tZXJn ZS5zcWwKQEAgLTc2MCw5ICs3NjAsOSBAQCBEUk9QIFRBQkxFIHQ7CiAKIC0tIFRlc3QgZm9yIGdl bmVyYXRlZCBjb2x1bW5zIChkaWZmZXJlbnQgb3JkZXIgb2YgY29sdW1ucyBpbiBwYXJ0aXRpb25l ZCB0YWJsZQogLS0gYW5kIHBhcnRpdGlvbnMpLgotQ1JFQVRFIFRBQkxFIHQgKGkgaW50LCBnIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChpICsgdGFibGVvaWQ6OmludCkpIFBBUlRJVElPTiBCWSBS QU5HRSAoaSk7Ci1DUkVBVEUgVEFCTEUgdHBfMSAoZyBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAo aSArIHRhYmxlb2lkOjppbnQpLCBpIGludCk7Ci1DUkVBVEUgVEFCTEUgdHBfMiAoZyBpbnQgR0VO RVJBVEVEIEFMV0FZUyBBUyAoaSArIHRhYmxlb2lkOjppbnQpLCBpIGludCk7CitDUkVBVEUgVEFC TEUgdCAoaSBpbnQsIGcgaW50IEdFTkVSQVRFRCBBTFdBWVMgQVMgKGkgKyAyKSkgUEFSVElUSU9O IEJZIFJBTkdFIChpKTsKK0NSRUFURSBUQUJMRSB0cF8xIChnIGludCBHRU5FUkFURUQgQUxXQVlT IEFTIChpICsgMiksIGkgaW50KTsKK0NSRUFURSBUQUJMRSB0cF8yIChnIGludCBHRU5FUkFURUQg QUxXQVlTIEFTIChpICsgMiksIGkgaW50KTsKIEFMVEVSIFRBQkxFIHQgQVRUQUNIIFBBUlRJVElP TiB0cF8xIEZPUiBWQUxVRVMgRlJPTSAoLTEpIFRPICgxMCk7CiBBTFRFUiBUQUJMRSB0IEFUVEFD SCBQQVJUSVRJT04gdHBfMiBGT1IgVkFMVUVTIEZST00gKDEwKSBUTyAoMjApOwogQUxURVIgVEFC TEUgdCBBREQgQ0hFQ0sgKGcgPiAwKTsKLS0gCjIuNTAuMSAoQXBwbGUgR2l0LTE1NSkKCg== --2a2a32380ccfbcf9bbab66ef48ffa3d87fcfc1eec65c3893ab730d4cb424--