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 1x1UoR-005Euh-0F for pgsql-hackers@arkaria.postgresql.org; Tue, 01 Sep 2026 20:10:31 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1x1UoP-0084dm-2y for pgsql-hackers@arkaria.postgresql.org; Tue, 01 Sep 2026 20:10:29 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1x1UoP-0084dd-1E for pgsql-hackers@lists.postgresql.org; Tue, 01 Sep 2026 20:10:29 +0000 Received: from mail-yx1-xb136.google.com ([2607:f8b0:4864:20::b136]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1x1UoM-00000003WND-2Iih for pgsql-hackers@lists.postgresql.org; Tue, 01 Sep 2026 20:10:28 +0000 Received: by mail-yx1-xb136.google.com with SMTP id 956f58d0204a3-66f984b263cso182340d50.1 for ; Tue, 01 Sep 2026 13:10:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1788293426; x=1788898226; darn=lists.postgresql.org; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:content-type:from:to:cc :subject:date:message-id:reply-to:content-type; bh=R8Z4YwOU3bHcgyNZa6oLZzjhT4ksTVSOjh2UPXJb9KY=; b=fCsdSVDuYVxNyapuEJzjgb8fs54hVHTKTMReycQ37xUSOfIDTEn2aEs/TJTlfMM5iW i/3NmIzj5ZQl5jT3vcUQiwxoD91cyPC6LDfa2NcgK2f5Kc7wJTPPr9jeSZx9rFG9UkvJ PIMpNIQFDohHN+hO14QOOwTzjWh9cHF/dqcIMNbBN3RofI5BQRhg4mL3fPiVQZaovcDb 4TjyIV0makoSGBAtQ5WACLXqBTB+fsJrN1g553/k2r9WG5vd3/BgAyJlbn8F/MYmmEA9 Ckd3vvbysuXWVoH/Fs8KbwMUFoJGh6lgU4SyRElsU1jurcj9bUD/cr5QfB2W0Ug0a8cb 7QYg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788293426; x=1788898226; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:content-type:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=R8Z4YwOU3bHcgyNZa6oLZzjhT4ksTVSOjh2UPXJb9KY=; b=UncIunL9/S2HGLiEHJzLXwdAt3hYHOAyYuNq0l4YUn5a5mCl/txLp69dpQZF6EYAsJ zghpfdTqiX3/NgTDig+fLKSZoRTQ63aLN5WAfHoBYZizhLgs+npWQwxo19s9+aToourO 9lM1ET/lctLKslMxim5KKfOY0WcaCflAI+qng65Int9jsv4XtM4RupO8Qyr0Dg3EN/FC UU9v3RMvo1rGoeuFOqZVVF+G5qSxW4eTU21z9qvWBdeC1f7D19aT4872OSJlbuJ2M8eN AdmEr//NxoNVE8N/dDtiPy22Lil3NIXFndjxFGXQrCo3qS3jibzvf1Lm5fvNu1UVe/Zr L5cQ== X-Gm-Message-State: AFuF++m3iGBamfwzO70ikfXTahX283tX+8mHzwLUhgtPwdybja7q3EQQ YCS4S+y9OhIrayB67ymvqo3Il8NzOWlPr2HyxZ5B2DwZsMrrdn1u94Ll X-Gm-Gg: AYBFou1DR+zUf4WrriBv7wEnXuj/hou9nGA2KUzT2NmUbwNStw+U+oaFLsMOjaxveKc HHAF1aAqmqIOMl7mwvzjOEeNtRBEafoAYQSkbPwxcge2PlrIlEfnd58g5KZCFmGbphkrFUoliqf 0SC9ZNIv+6DmPrGwCmeuIjarcCtaGyq9ZzOy12TSxWftdzy8GUZZt17ZaElxYcVLPJ9/01npWnU wmWwzAjYkq46O/lYB3GRxhZGj0jz+2IIWy1YVqd/qrVGzKKnYCmOtAJFkf3mme+ADt2mpOZv5ai yQTV9Z0MpFsLRqd8jaY9LfZKLGEV2Kf3phJDz7lsv9zf56ABBfNuvjyJ2nlE5D6Y4IUMulJrO+b yz49BIB1fJ0OK8pRwlG0A6ETA5cyY03aE9AJcXi2uw79U+u8RXLbBmxiGTfTIf7AeVzwOh8++y0 /Qsp04SUhLyeHSJcX37HYnikFW5G/ZlbWRgD6iXxC1aMcLFM9Gcntv48UekEHx5Bk24YmOorCCJ 4O70YqNwthZ9RcH6Ur2KtoExjpE9Z8QCOKnqAmXXQdkfo5+wJcXXudO X-Received: by 2002:a05:690e:4554:10b0:66e:57d8:6a52 with SMTP id 956f58d0204a3-66e57d876a5mr6614555d50.7.1788293425633; Tue, 01 Sep 2026 13:10:25 -0700 (PDT) Received: from ?IPV6:2804:14d:32a7:4273:382a:ef3e:6b8:95b5? ([2804:14d:32a7:4273:382a:ef3e:6b8:95b5]) by smtp.gmail.com with ESMTPSA id 956f58d0204a3-66f9866f280sm371822d50.14.2026.09.01.13.10.23 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Tue, 01 Sep 2026 13:10:25 -0700 (PDT) Content-Type: multipart/mixed; boundary="------------HLEhmFV0A0vdtrrw6Sis1cTy" Message-ID: Date: Tue, 1 Sep 2026 17:10:22 -0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Show expression of virtual columns in error messages From: Matheus Alcantara To: Tom Lane Cc: pgsql-hackers@lists.postgresql.org, Peter Eisentraut , Yugo Nagata 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> Content-Language: en-US In-Reply-To: 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. --------------HLEhmFV0A0vdtrrw6Sis1cTy Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 10/07/26 18:13, Matheus Alcantara wrote: > 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 > Attaching v7 rebased with master -- Matheus Alcantara EDB: https://www.enterprisedb.com --------------HLEhmFV0A0vdtrrw6Sis1cTy Content-Type: text/plain; charset=UTF-8; name="v7-0001-Compute-virtual-generated-columns-during-INSERT-U.patch" Content-Disposition: attachment; filename*0="v7-0001-Compute-virtual-generated-columns-during-INSERT-U.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA1Y2E2MzNmMDU2YmRjMzkwZGI4YmE1ODkyNDkwY2I1MTc3N2UyODIzIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXRoZXVzIEFsY2FudGFyYSA8bXRocy5kZXZAcG0u bWU+CkRhdGU6IEZyaSwgMjggQXVnIDIwMjYgMDg6MTQ6MzAgLTAzMDAKU3ViamVjdDogW1BB VENIIHY3XSBDb21wdXRlIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgZHVyaW5nIElOU0VS VC9VUERBVEUKClByZXZpb3VzbHksIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbiB2YWx1ZXMg d2VyZSBuZXZlciBjb21wdXRlZCBhbmQKc3RvcmVkIGluIHRoZSBzbG90LiBJbnN0ZWFkLCBy ZWZlcmVuY2VzIHRvIGUuZyB2aXJ0dWFsIGNvbHVtbnMgaW4gY2hlY2sKY29uc3RyYWludHMg d2VyZSBleHBhbmRlZCB0byB0aGVpciBnZW5lcmF0aW9uIGV4cHJlc3Npb25zIGR1cmluZwpF eGVjQ2hlY2soKS4KClRoaXMgY29tbWl0IGNoYW5nZXMgdGhlIGFwcHJvYWNoIHRvIGNvbXB1 dGUgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uCnZhbHVlcyBhbmQgc3RvcmUgdGhlbSBpbiB0 aGUgc2xvdCBiZWZvcmUgY29uc3RyYWludCBjaGVja2luZywgc2ltaWxhcgp0byBob3cgc3Rv cmVkIGdlbmVyYXRlZCBjb2x1bW5zIGFyZSBoYW5kbGVkLiBUaGlzIGhhcyB0d28gYmVuZWZp dHM6CgpDaGVjayBjb25zdHJhaW50cyBjYW4gbm93IHJlYWQgdmlydHVhbCBjb2x1bW4gdmFs dWVzIGRpcmVjdGx5IGZyb20KdGhlIHNsb3QsIHNpbXBsaWZ5aW5nIGNvbnN0cmFpbnQgZXZh bHVhdGlvbi4gSXQgYWxzbyBhdm9pZCByZS1leGVjdXRlCnRoZSB2aXJ0dWFsIGV4cHJlc3Np b24gZm9yIGVhY2ggY2hlY2sgY29uc3RyYWludCBldmFsdWF0aW9uLgoKRXJyb3IgbWVzc2Fn ZXMgbm93IGRpc3BsYXkgdGhlIGFjdHVhbCBjb21wdXRlZCB2YWx1ZSAoZS5nLiwgIjEwIikK aW5zdGVhZCBvZiB0aGUgInZpcnR1YWwiIHN0cmluZywgbWFraW5nIHRoZW0gbW9yZSBjb25z aXN0ZW50IHdpdGgKc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW5zIGFuZCBlYXNpZXIgdG8gdW5k ZXJzdGFuZC4KCkRpc2N1c3Npb246IGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL21lc3Nh Z2UtaWQvREc1RFY4U0VENjJHLjJXRkpCNDZEN1dJVDglNDBnbWFpbC5jb20KLS0tCiBkb2Mv c3JjL3NnbWwvZGRsLnNnbWwgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDkgKy0KIGRv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX2ZvcmVpZ25fdGFibGUuc2dtbCAgICB8ICAxMyArLQog ZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbCAgICAgICAgICAgIHwgICA0ICst CiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jICAgICAgICAgfCAgIDcg Ky0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICAgICAgICB8ICAy MSArKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlvbi5jICAgICAgICB8 ICAxMiArKwogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMgICAgICAg IHwgMTMxICsrKysrKysrKysrKysrKysrLQogc3JjL2luY2x1ZGUvZXhlY3V0b3Ivbm9kZU1v ZGlmeVRhYmxlLmggICAgICAgIHwgICA0ICsKIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rl cy5oICAgICAgICAgICAgICAgICB8ICAxMCArKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvZ2Vu ZXJhdGVkX3ZpcnR1YWwub3V0ICAgIHwgIDIyICsrLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwv Z2VuZXJhdGVkX3ZpcnR1YWwuc3FsICAgIHwgICA0ICstCiAxMSBmaWxlcyBjaGFuZ2VkLCAy MDEgaW5zZXJ0aW9ucygrKSwgMzYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL2RkbC5zZ21sIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCmluZGV4IGNiOGJmNzk2 NWNkLi4zMjExMjE1Nzk1MiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtMzU3LDEwICszNTcsMTEgQEAgSU5TRVJU IElOVE8gcGVvcGxlIChpZCwgbmFtZSwgYWRkcmVzcykgVkFMVUVTICg8ZW1waGFzaXM+REVG QVVMVDwvZW1waGFzaXM+LCAnQycKICAgIGNvbHVtbnMuICBUaHVzLCBpdCBpcyBmb3IgY29s dW1ucyB3aGF0IGEgdmlldyBpcyBmb3IgdGFibGVzLiAgVGhlcmUgYXJlIHR3bwogICAga2lu ZHMgb2YgZ2VuZXJhdGVkIGNvbHVtbnM6IHN0b3JlZCBhbmQgdmlydHVhbC4gIEEgc3RvcmVk IGdlbmVyYXRlZCBjb2x1bW4KICAgIGlzIGNvbXB1dGVkIHdoZW4gaXQgaXMgd3JpdHRlbiAo aW5zZXJ0ZWQgb3IgdXBkYXRlZCkgYW5kIG9jY3VwaWVzIHN0b3JhZ2UKLSAgIGFzIGlmIGl0 IHdlcmUgYSBub3JtYWwgY29sdW1uLiAgQSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4gb2Nj dXBpZXMgbm8KLSAgIHN0b3JhZ2UgYW5kIGlzIGNvbXB1dGVkIHdoZW4gaXQgaXMgcmVhZC4g IFRodXMsIGEgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uCi0gICBpcyBzaW1pbGFyIHRvIGEg dmlldyBhbmQgYSBzdG9yZWQgZ2VuZXJhdGVkIGNvbHVtbiBpcyBzaW1pbGFyIHRvIGEKLSAg IG1hdGVyaWFsaXplZCB2aWV3IChleGNlcHQgdGhhdCBpdCBpcyBhbHdheXMgdXBkYXRlZCBh dXRvbWF0aWNhbGx5KS4KKyAgIGFzIGlmIGl0IHdlcmUgYSBub3JtYWwgY29sdW1uLiAgQSB2 aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4gaXMgYWxzbyBjb21wdXRlZCB3aGVuCisgICBpdCBp cyB3cml0dGVuLCBidXQgb2NjdXBpZXMgbm8gc3RvcmFnZSBhbmQgaXMgcmVjb21wdXRlZCBv biBldmVyeSByZWFkLgorICAgVGh1cywgYSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW4gaXMg c2ltaWxhciB0byBhIHZpZXcgYW5kIGEgc3RvcmVkIGdlbmVyYXRlZAorICAgY29sdW1uIGlz IHNpbWlsYXIgdG8gYSBtYXRlcmlhbGl6ZWQgdmlldyAoZXhjZXB0IHRoYXQgaXQgaXMgYWx3 YXlzIHVwZGF0ZWQKKyAgIGF1dG9tYXRpY2FsbHkpCiAgIDwvcGFyYT4KIAogICA8cGFyYT4K ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2ZvcmVpZ25fdGFibGUuc2dt bCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2ZvcmVpZ25fdGFibGUuc2dtbAppbmRleCAw ODNmMTY3NzJiNy4uZTg1NTc5YmUxOGYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX2ZvcmVpZ25fdGFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV9mb3JlaWduX3RhYmxlLnNnbWwKQEAgLTQwMywxMiArNDAzLDEzIEBAIFdJVEggKCBNT0RV TFVTIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1lcmljX2xpdGVyYWw8L3Jl cGxhY2VhYmxlPiwgUkVNCiAKICAgICAgPHBhcmE+CiAgICAgICBXaGVuIDxsaXRlcmFsPlZJ UlRVQUw8L2xpdGVyYWw+IGlzIHNwZWNpZmllZCwgdGhlIGNvbHVtbiB3aWxsIGJlCi0gICAg ICBjb21wdXRlZCB3aGVuIGl0IGlzIHJlYWQuICAoVGhlIGZvcmVpZ24tZGF0YSB3cmFwcGVy IHdpbGwgc2VlIGl0IGFzIGEKLSAgICAgIG51bGwgdmFsdWUgaW4gbmV3IHJvd3MgYW5kIG1h eSBjaG9vc2UgdG8gc3RvcmUgaXQgYXMgYSBudWxsIHZhbHVlIG9yCi0gICAgICBpZ25vcmUg aXQgYWx0b2dldGhlci4pICBXaGVuIDxsaXRlcmFsPlNUT1JFRDwvbGl0ZXJhbD4gaXMgc3Bl Y2lmaWVkLCB0aGUKLSAgICAgIGNvbHVtbiB3aWxsIGJlIGNvbXB1dGVkIG9uIHdyaXRlLiAg KFRoZSBjb21wdXRlZCB2YWx1ZSB3aWxsIGJlIHByZXNlbnRlZAotICAgICAgdG8gdGhlIGZv cmVpZ24tZGF0YSB3cmFwcGVyIGZvciBzdG9yYWdlIGFuZCBtdXN0IGJlIHJldHVybmVkIG9u Ci0gICAgICByZWFkaW5nLikgIDxsaXRlcmFsPlZJUlRVQUw8L2xpdGVyYWw+IGlzIHRoZSBk ZWZhdWx0LgorICAgICAgY29tcHV0ZWQgd2hlbiBpdCBpcyB3cml0dGVuLCBidXQgaXQgd2ls bCBub3Qgb2NjdXB5IGFueSBzdG9yYWdlLgorICAgICAgKFRoZSBmb3JlaWduLWRhdGEgd3Jh cHBlciB3aWxsIHNlZSBpdCBhcyBhIG51bGwgdmFsdWUgaW4gbmV3IHJvd3MKKyAgICAgIGFu ZCBtYXkgY2hvb3NlIHRvIHN0b3JlIGl0IGFzIGEgbnVsbCB2YWx1ZSBvciBpZ25vcmUgaXQg YWx0b2dldGhlci4pCisgICAgICBXaGVuIDxsaXRlcmFsPlNUT1JFRDwvbGl0ZXJhbD4gaXMg c3BlY2lmaWVkLCB0aGUgY29sdW1uIHdpbGwgYmUgY29tcHV0ZWQKKyAgICAgIG9uIHdyaXRl LiAgKFRoZSBjb21wdXRlZCB2YWx1ZSB3aWxsIGJlIHByZXNlbnRlZCB0byB0aGUgZm9yZWln bi1kYXRhCisgICAgICB3cmFwcGVyIGZvciBzdG9yYWdlIGFuZCBtdXN0IGJlIHJldHVybmVk IG9uIHJlYWRpbmcuKQorICAgICAgPGxpdGVyYWw+VklSVFVBTDwvbGl0ZXJhbD4gaXMgdGhl IGRlZmF1bHQuCiAgICAgIDwvcGFyYT4KIAogICAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3RhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ny ZWF0ZV90YWJsZS5zZ21sCmluZGV4IGUzNDI1ODVjN2YwLi5iNWQyMTRlMzYxMSAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdGFibGUuc2dtbAorKysgYi9kb2Mvc3Jj L3NnbWwvcmVmL2NyZWF0ZV90YWJsZS5zZ21sCkBAIC05MzMsOCArOTMzLDggQEAgV0lUSCAo IE1PRFVMVVMgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm51bWVyaWNfbGl0ZXJh bDwvcmVwbGFjZWFibGU+LCBSRU0KICAgICAgPC9wYXJhPgogCiAgICAgIDxwYXJhPgotICAg ICAgV2hlbiA8bGl0ZXJhbD5WSVJUVUFMPC9saXRlcmFsPiBpcyBzcGVjaWZpZWQsIHRoZSBj b2x1bW4gd2lsbCBiZQotICAgICAgY29tcHV0ZWQgd2hlbiBpdCBpcyByZWFkLCBhbmQgaXQg d2lsbCBub3Qgb2NjdXB5IGFueSBzdG9yYWdlLiAgV2hlbgorICAgICAgV2hlbiA8bGl0ZXJh bD5WSVJUVUFMPC9saXRlcmFsPiBpcyBzcGVjaWZpZWQsIHRoZSBjb2x1bW4gd2lsbCBiZSBj b21wdXRlZAorICAgICAgd2hlbiBpdCBpcyB3cml0dGVuIGFuZCByZWFkLCBidXQgaXQgd2ls bCBub3Qgb2NjdXB5IGFueSBzdG9yYWdlLiAgV2hlbgogICAgICAgPGxpdGVyYWw+U1RPUkVE PC9saXRlcmFsPiBpcyBzcGVjaWZpZWQsIHRoZSBjb2x1bW4gd2lsbCBiZSBjb21wdXRlZCBv bgogICAgICAgd3JpdGUgYW5kIHdpbGwgYmUgc3RvcmVkIG9uIGRpc2suICA8bGl0ZXJhbD5W SVJUVUFMPC9saXRlcmFsPiBpcyB0aGUKICAgICAgIGRlZmF1bHQuCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0V4cHJJbnRlcnAuYwppbmRleCAzOTcyMTlmN2EzYS4uM2U0OWQ1YmYyNjcg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKKysr IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAtMjQxNSw5ICsy NDE1LDEwIEBAIENoZWNrVmFyU2xvdENvbXBhdGliaWxpdHkoVHVwbGVUYWJsZVNsb3QgKnNs b3QsIGludCBhdHRudW0sIE9pZCB2YXJ0eXBlKQogCiAJCWF0dHIgPSBUdXBsZURlc2NBdHRy KHNsb3RfdHVwZGVzYywgYXR0bnVtIC0gMSk7CiAKLQkJLyogSW50ZXJuYWwgZXJyb3I6IHNv bWVib2R5IGZvcmdvdCB0byBleHBhbmQgaXQuICovCi0JCWlmIChhdHRyLT5hdHRnZW5lcmF0 ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQotCQkJZWxvZyhFUlJPUiwgInVu ZXhwZWN0ZWQgdmlydHVhbCBnZW5lcmF0ZWQgY29sdW1uIHJlZmVyZW5jZSIpOworCQkvKgor CQkgKiBWaXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGFyZSBub3cgY29tcHV0ZWQgYW5kIHN0 b3JlZCBpbiB0aGUgc2xvdAorCQkgKiBieSBFeGVjQ29tcHV0ZVZpcnR1YWxHZW5lcmF0ZWQo KSwgc28gcmVhZGluZyB0aGVtIGlzIHZhbGlkLgorCQkgKi8KIAogCQlpZiAoYXR0ci0+YXR0 aXNkcm9wcGVkKQogCQkJZXJlcG9ydChFUlJPUiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNNYWluLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5j CmluZGV4IDZlNDc4NTZjZjI1Li41Y2JhZjExZTkzZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY01haW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj TWFpbi5jCkBAIC01Myw2ICs1Myw4IEBACiAjaW5jbHVkZSAiZm9yZWlnbi9mZHdhcGkuaCIK ICNpbmNsdWRlICJtYi9wZ193Y2hhci5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgorI2lu Y2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgorI2luY2x1ZGUgIm5vZGVzL25vZGVGdW5jcy5o IgogI2luY2x1ZGUgIm5vZGVzL3F1ZXJ5anVtYmxlLmgiCiAjaW5jbHVkZSAicGFyc2VyL3Bh cnNlX3JlbGF0aW9uLmgiCiAjaW5jbHVkZSAicGdzdGF0LmgiCkBAIC0xMzU3LDYgKzEzNTks OCBAQCBJbml0UmVzdWx0UmVsSW5mbyhSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAog CXJlc3VsdFJlbEluZm8tPnJpX0dlblZpcnR1YWxOb3ROdWxsQ29uc3RyYWludEV4cHJzID0g TlVMTDsKIAlyZXN1bHRSZWxJbmZvLT5yaV9HZW5lcmF0ZWRFeHByc0kgPSBOVUxMOwogCXJl c3VsdFJlbEluZm8tPnJpX0dlbmVyYXRlZEV4cHJzVSA9IE5VTEw7CisJcmVzdWx0UmVsSW5m by0+cmlfVmlydHVhbEdlbmVyYXRlZEV4cHJzSSA9IE5VTEw7CisJcmVzdWx0UmVsSW5mby0+ cmlfVmlydHVhbEdlbmVyYXRlZEV4cHJzVSA9IE5VTEw7CiAJcmVzdWx0UmVsSW5mby0+cmlf cHJvamVjdFJldHVybmluZyA9IE5VTEw7CiAJcmVzdWx0UmVsSW5mby0+cmlfb25Db25mbGlj dEFyYml0ZXJJbmRleGVzID0gTklMOwogCXJlc3VsdFJlbEluZm8tPnJpX29uQ29uZmxpY3Qg PSBOVUxMOwpAQCAtMTg5Myw3ICsxODk3LDEzIEBAIEV4ZWNSZWxDaGVjayhSZXN1bHRSZWxJ bmZvICpyZXN1bHRSZWxJbmZvLAogCQkJCWNvbnRpbnVlOwogCiAJCQljaGVja2NvbnN0ciA9 IHN0cmluZ1RvTm9kZShjaGVja1tpXS5jY2Jpbik7Ci0JCQljaGVja2NvbnN0ciA9IChFeHBy ICopIGV4cGFuZF9nZW5lcmF0ZWRfY29sdW1uc19pbl9leHByKChOb2RlICopIGNoZWNrY29u c3RyLCByZWwsIDEpOworCisJCQkvKgorCQkJICogTm8gbmVlZCB0byBjYWxsIGV4cGFuZF9n ZW5lcmF0ZWRfY29sdW1uc19pbl9leHByKCkgaGVyZS4KKwkJCSAqIFZpcnR1YWwgZ2VuZXJh dGVkIGNvbHVtbiB2YWx1ZXMgYXJlIGNvbXB1dGVkIGFuZCBzdG9yZWQgaW4gdGhlCisJCQkg KiBzbG90IGJ5IEV4ZWNDb21wdXRlVmlydHVhbEdlbmVyYXRlZCgpIGJlZm9yZSB3ZSBnZXQg aGVyZSwgc28KKwkJCSAqIHRoZSBleHByZXNzaW9uIGV2YWx1YXRvciBjYW4gcmVhZCB0aGVt IGRpcmVjdGx5IGZyb20gdGhlIHNsb3QuCisJCQkgKi8KIAkJCXJlc3VsdFJlbEluZm8tPnJp X0NoZWNrQ29uc3RyYWludEV4cHJzW2ldID0KIAkJCQlFeGVjUHJlcGFyZUV4cHIoY2hlY2tj b25zdHIsIGVzdGF0ZSk7CiAJCX0KQEAgLTI1NTQsOSArMjU2NCwxMiBAQCBFeGVjQnVpbGRT bG90VmFsdWVEZXNjcmlwdGlvbihPaWQgcmVsb2lkLAogCiAJCWlmICh0YWJsZV9wZXJtIHx8 IGNvbHVtbl9wZXJtKQogCQl7Ci0JCQlpZiAoYXR0LT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklC VVRFX0dFTkVSQVRFRF9WSVJUVUFMKQotCQkJCXZhbCA9ICJ2aXJ0dWFsIjsKLQkJCWVsc2Ug aWYgKHNsb3QtPnR0c19pc251bGxbaV0pCisJCQkvKgorCQkJICogVmlydHVhbCBnZW5lcmF0 ZWQgY29sdW1uIHZhbHVlcyBhcmUgY29tcHV0ZWQgYW5kIHN0b3JlZCBpbiB0aGUKKwkJCSAq IHNsb3QgYnkgRXhlY0NvbXB1dGVWaXJ0dWFsR2VuZXJhdGVkKCksIHNvIHdlIGNhbiByZWFk IHRoZW0KKwkJCSAqIGRpcmVjdGx5IGxpa2UgcmVndWxhciBjb2x1bW5zLgorCQkJICovCisJ CQlpZiAoc2xvdC0+dHRzX2lzbnVsbFtpXSkKIAkJCQl2YWwgPSAibnVsbCI7CiAJCQllbHNl CiAJCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjUmVwbGljYXRp b24uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlvbi5jCmluZGV4IGIy Y2E1Y2JmMTE3Li42NDBjMGZmNThjZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0 b3IvZXhlY1JlcGxpY2F0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1Jl cGxpY2F0aW9uLmMKQEAgLTgzOCw2ICs4MzgsMTIgQEAgRXhlY1NpbXBsZVJlbGF0aW9uSW5z ZXJ0KFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJCQlFeGVjQ29tcHV0ZVN0b3Jl ZEdlbmVyYXRlZChyZXN1bHRSZWxJbmZvLCBlc3RhdGUsIHNsb3QsCiAJCQkJCQkJCQkgICBD TURfSU5TRVJUKTsKIAorCQkvKiBDb21wdXRlIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMg Ki8KKwkJaWYgKHJlbC0+cmRfYXR0LT5jb25zdHIgJiYKKwkJCXJlbC0+cmRfYXR0LT5jb25z dHItPmhhc19nZW5lcmF0ZWRfdmlydHVhbCkKKwkJCUV4ZWNDb21wdXRlVmlydHVhbEdlbmVy YXRlZChyZXN1bHRSZWxJbmZvLCBlc3RhdGUsIHNsb3QsCisJCQkJCQkJCQkJQ01EX0lOU0VS VCk7CisKIAkJLyogQ2hlY2sgdGhlIGNvbnN0cmFpbnRzIG9mIHRoZSB0dXBsZSAqLwogCQlp ZiAocmVsLT5yZF9hdHQtPmNvbnN0cikKIAkJCUV4ZWNDb25zdHJhaW50cyhyZXN1bHRSZWxJ bmZvLCBzbG90LCBlc3RhdGUpOwpAQCAtOTQyLDYgKzk0OCwxMiBAQCBFeGVjU2ltcGxlUmVs YXRpb25VcGRhdGUoUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKIAkJCUV4ZWNDb21w dXRlU3RvcmVkR2VuZXJhdGVkKHJlc3VsdFJlbEluZm8sIGVzdGF0ZSwgc2xvdCwKIAkJCQkJ CQkJCSAgIENNRF9VUERBVEUpOwogCisJCS8qIENvbXB1dGUgdmlydHVhbCBnZW5lcmF0ZWQg Y29sdW1ucyAqLworCQlpZiAocmVsLT5yZF9hdHQtPmNvbnN0ciAmJgorCQkJcmVsLT5yZF9h dHQtPmNvbnN0ci0+aGFzX2dlbmVyYXRlZF92aXJ0dWFsKQorCQkJRXhlY0NvbXB1dGVWaXJ0 dWFsR2VuZXJhdGVkKHJlc3VsdFJlbEluZm8sIGVzdGF0ZSwgc2xvdCwKKwkJCQkJCQkJCQlD TURfVVBEQVRFKTsKKwogCQkvKiBDaGVjayB0aGUgY29uc3RyYWludHMgb2YgdGhlIHR1cGxl ICovCiAJCWlmIChyZWwtPnJkX2F0dC0+Y29uc3RyKQogCQkJRXhlY0NvbnN0cmFpbnRzKHJl c3VsdFJlbEluZm8sIHNsb3QsIGVzdGF0ZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlTW9kaWZ5VGFibGUuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVN b2RpZnlUYWJsZS5jCmluZGV4IDMwNTZiODUwZjczLi45NjgzZGU0ZGMwNCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmMKQEAgLTQzOSw4ICs0MzksMTAgQEAg RXhlY0NoZWNrVElEVmlzaWJsZShFU3RhdGUgKmVzdGF0ZSwKICAqIEluaXRpYWxpemUgZ2Vu ZXJhdGVkIGNvbHVtbnMgaGFuZGxpbmcgZm9yIGEgdHVwbGUKICAqCiAgKiBUaGlzIGZpbGxz IHRoZSByZXN1bHRSZWxJbmZvJ3MgcmlfR2VuZXJhdGVkRXhwcnNJL3JpX051bUdlbmVyYXRl ZE5lZWRlZEkgb3IKLSAqIHJpX0dlbmVyYXRlZEV4cHJzVS9yaV9OdW1HZW5lcmF0ZWROZWVk ZWRVIGZpZWxkcywgZGVwZW5kaW5nIG9uIGNtZHR5cGUuCi0gKiBUaGlzIGlzIHVzZWQgb25s eSBmb3Igc3RvcmVkIGdlbmVyYXRlZCBjb2x1bW5zLgorICogcmlfR2VuZXJhdGVkRXhwcnNV L3JpX051bUdlbmVyYXRlZE5lZWRlZFUgZmllbGRzIGZvciBzdG9yZWQgZ2VuZXJhdGVkCisg KiBjb2x1bW5zLCBhbmQgcmlfVmlydHVhbEdlbmVyYXRlZEV4cHJzSS9yaV9OdW1WaXJ0dWFs R2VuZXJhdGVkTmVlZGVkSSBvcgorICogcmlfVmlydHVhbEdlbmVyYXRlZEV4cHJzVS9yaV9O dW1WaXJ0dWFsR2VuZXJhdGVkTmVlZGVkVSBmaWVsZHMgZm9yIHZpcnR1YWwKKyAqIGdlbmVy YXRlZCBjb2x1bW5zLCBkZXBlbmRpbmcgb24gY21kdHlwZS4KICAqCiAgKiBJZiBjbWRUeXBl ID09IENNRF9VUERBVEUsIHRoZSByaV9leHRyYVVwZGF0ZWRDb2xzIGZpZWxkIGlzIGZpbGxl ZCB0b28uCiAgKiBUaGlzIGlzIHVzZWQgYnkgYm90aCBzdG9yZWQgYW5kIHZpcnR1YWwgZ2Vu ZXJhdGVkIGNvbHVtbnMuCkBAIC00NjAsNiArNDYyLDggQEAgRXhlY0luaXRHZW5lcmF0ZWQo UmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKIAlpbnQJCQluYXR0cyA9IHR1cGRlc2Mt Pm5hdHRzOwogCUV4cHJTdGF0ZSAqKnJpX0dlbmVyYXRlZEV4cHJzOwogCWludAkJCXJpX051 bUdlbmVyYXRlZE5lZWRlZDsKKwlFeHByU3RhdGUgKipyaV9WaXJ0dWFsR2VuZXJhdGVkRXhw cnM7CisJaW50CQkJcmlfTnVtVmlydHVhbEdlbmVyYXRlZE5lZWRlZDsKIAlCaXRtYXBzZXQg ICp1cGRhdGVkQ29sczsKIAlNZW1vcnlDb250ZXh0IG9sZENvbnRleHQ7CiAKQEAgLTQ4Nyw2 ICs0OTEsOCBAQCBFeGVjSW5pdEdlbmVyYXRlZChSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJ bmZvLAogCiAJcmlfR2VuZXJhdGVkRXhwcnMgPSBwYWxsb2MwX2FycmF5KEV4cHJTdGF0ZSAq LCBuYXR0cyk7CiAJcmlfTnVtR2VuZXJhdGVkTmVlZGVkID0gMDsKKwlyaV9WaXJ0dWFsR2Vu ZXJhdGVkRXhwcnMgPSAoRXhwclN0YXRlICoqKSBwYWxsb2MwKG5hdHRzICogc2l6ZW9mKEV4 cHJTdGF0ZSAqKSk7CisJcmlfTnVtVmlydHVhbEdlbmVyYXRlZE5lZWRlZCA9IDA7CiAKIAlm b3IgKGludCBpID0gMDsgaSA8IG5hdHRzOyBpKyspCiAJewpAQCAtNTIyLDYgKzUyOCwxMSBA QCBFeGVjSW5pdEdlbmVyYXRlZChSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAogCQkJ CXJpX0dlbmVyYXRlZEV4cHJzW2ldID0gRXhlY1ByZXBhcmVFeHByKGV4cHIsIGVzdGF0ZSk7 CiAJCQkJcmlfTnVtR2VuZXJhdGVkTmVlZGVkKys7CiAJCQl9CisJCQllbHNlIGlmIChhdHRn ZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dFTkVSQVRFRF9WSVJUVUFMKQorCQkJeworCQkJCXJp X1ZpcnR1YWxHZW5lcmF0ZWRFeHByc1tpXSA9IEV4ZWNQcmVwYXJlRXhwcihleHByLCBlc3Rh dGUpOworCQkJCXJpX051bVZpcnR1YWxHZW5lcmF0ZWROZWVkZWQrKzsKKwkJCX0KIAogCQkJ LyogSWYgVVBEQVRFLCBtYXJrIGNvbHVtbiBpbiByZXN1bHRSZWxJbmZvLT5yaV9leHRyYVVw ZGF0ZWRDb2xzICovCiAJCQlpZiAoY21kdHlwZSA9PSBDTURfVVBEQVRFKQpAQCAtNTM4LDE0 ICs1NDksMjQgQEAgRXhlY0luaXRHZW5lcmF0ZWQoUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVs SW5mbywKIAkJcmlfR2VuZXJhdGVkRXhwcnMgPSBOVUxMOwogCX0KIAorCWlmIChyaV9OdW1W aXJ0dWFsR2VuZXJhdGVkTmVlZGVkID09IDApCisJeworCQkvKiBkaWRuJ3QgbmVlZCBpdCBh ZnRlciBhbGwgKi8KKwkJcGZyZWUocmlfVmlydHVhbEdlbmVyYXRlZEV4cHJzKTsKKwkJcmlf VmlydHVhbEdlbmVyYXRlZEV4cHJzID0gTlVMTDsKKwl9CisKIAkvKiBTYXZlIGluIGFwcHJv cHJpYXRlIHNldCBvZiBmaWVsZHMgKi8KIAlpZiAoY21kdHlwZSA9PSBDTURfVVBEQVRFKQog CXsKIAkJLyogRG9uJ3QgY2FsbCB0d2ljZSAqLwogCQlBc3NlcnQocmVzdWx0UmVsSW5mby0+ cmlfR2VuZXJhdGVkRXhwcnNVID09IE5VTEwpOworCQlBc3NlcnQocmVzdWx0UmVsSW5mby0+ cmlfVmlydHVhbEdlbmVyYXRlZEV4cHJzVSA9PSBOVUxMKTsKIAogCQlyZXN1bHRSZWxJbmZv LT5yaV9HZW5lcmF0ZWRFeHByc1UgPSByaV9HZW5lcmF0ZWRFeHByczsKIAkJcmVzdWx0UmVs SW5mby0+cmlfTnVtR2VuZXJhdGVkTmVlZGVkVSA9IHJpX051bUdlbmVyYXRlZE5lZWRlZDsK KwkJcmVzdWx0UmVsSW5mby0+cmlfVmlydHVhbEdlbmVyYXRlZEV4cHJzVSA9IHJpX1ZpcnR1 YWxHZW5lcmF0ZWRFeHByczsKKwkJcmVzdWx0UmVsSW5mby0+cmlfTnVtVmlydHVhbEdlbmVy YXRlZE5lZWRlZFUgPSByaV9OdW1WaXJ0dWFsR2VuZXJhdGVkTmVlZGVkOwogCiAJCXJlc3Vs dFJlbEluZm8tPnJpX2V4dHJhVXBkYXRlZENvbHNfdmFsaWQgPSB0cnVlOwogCX0KQEAgLTU1 Myw5ICs1NzQsMTIgQEAgRXhlY0luaXRHZW5lcmF0ZWQoUmVzdWx0UmVsSW5mbyAqcmVzdWx0 UmVsSW5mbywKIAl7CiAJCS8qIERvbid0IGNhbGwgdHdpY2UgKi8KIAkJQXNzZXJ0KHJlc3Vs dFJlbEluZm8tPnJpX0dlbmVyYXRlZEV4cHJzSSA9PSBOVUxMKTsKKwkJQXNzZXJ0KHJlc3Vs dFJlbEluZm8tPnJpX1ZpcnR1YWxHZW5lcmF0ZWRFeHByc0kgPT0gTlVMTCk7CiAKIAkJcmVz dWx0UmVsSW5mby0+cmlfR2VuZXJhdGVkRXhwcnNJID0gcmlfR2VuZXJhdGVkRXhwcnM7CiAJ CXJlc3VsdFJlbEluZm8tPnJpX051bUdlbmVyYXRlZE5lZWRlZEkgPSByaV9OdW1HZW5lcmF0 ZWROZWVkZWQ7CisJCXJlc3VsdFJlbEluZm8tPnJpX1ZpcnR1YWxHZW5lcmF0ZWRFeHByc0kg PSByaV9WaXJ0dWFsR2VuZXJhdGVkRXhwcnM7CisJCXJlc3VsdFJlbEluZm8tPnJpX051bVZp cnR1YWxHZW5lcmF0ZWROZWVkZWRJID0gcmlfTnVtVmlydHVhbEdlbmVyYXRlZE5lZWRlZDsK IAl9CiAKIAlNZW1vcnlDb250ZXh0U3dpdGNoVG8ob2xkQ29udGV4dCk7CkBAIC02NTEsNiAr Njc1LDg1IEBAIEV4ZWNDb21wdXRlU3RvcmVkR2VuZXJhdGVkKFJlc3VsdFJlbEluZm8gKnJl c3VsdFJlbEluZm8sCiAJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZENvbnRleHQpOwogfQog CisvKgorICogQ29tcHV0ZSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIGZvciBhIHR1cGxl CisgKgorICogVGhpcyBldmFsdWF0ZXMgdGhlIGdlbmVyYXRpb24gZXhwcmVzc2lvbnMgZm9y IHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMKKyAqIGFuZCBzdG9yZXMgdGhlIHJlc3VsdHMg ZGlyZWN0bHkgaW4gdGhlIHNsb3QuIFVubGlrZSBzdG9yZWQgZ2VuZXJhdGVkCisgKiBjb2x1 bW5zLCB0aGVzZSB2YWx1ZXMgYXJlIG5vdCBwZXJzaXN0ZWQgdG8gZGlzayBidXQgYXJlIGNv bXB1dGVkIGZvcgorICogdXNlIGluIGNvbnN0cmFpbnQgY2hlY2tpbmcgYW5kIGVycm9yIG1l c3NhZ2VzLgorICovCit2b2lkCitFeGVjQ29tcHV0ZVZpcnR1YWxHZW5lcmF0ZWQoUmVzdWx0 UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKKwkJCQkJCQlFU3RhdGUgKmVzdGF0ZSwgVHVwbGVU YWJsZVNsb3QgKnNsb3QsCisJCQkJCQkJQ21kVHlwZSBjbWR0eXBlKQoreworCVJlbGF0aW9u CXJlbCA9IHJlc3VsdFJlbEluZm8tPnJpX1JlbGF0aW9uRGVzYzsKKwlUdXBsZURlc2MJdHVw ZGVzYyA9IFJlbGF0aW9uR2V0RGVzY3IocmVsKTsKKwlpbnQJCQluYXR0cyA9IHR1cGRlc2Mt Pm5hdHRzOworCUV4cHJDb250ZXh0ICplY29udGV4dCA9IEdldFBlclR1cGxlRXhwckNvbnRl eHQoZXN0YXRlKTsKKwlFeHByU3RhdGUgKipyaV9WaXJ0dWFsR2VuZXJhdGVkRXhwcnM7CisJ TWVtb3J5Q29udGV4dCBvbGRDb250ZXh0OworCisJLyogV2Ugc2hvdWxkIG5vdCBiZSBjYWxs ZWQgdW5sZXNzIHRoaXMgaXMgdHJ1ZSAqLworCUFzc2VydCh0dXBkZXNjLT5jb25zdHIgJiYg dHVwZGVzYy0+Y29uc3RyLT5oYXNfZ2VuZXJhdGVkX3ZpcnR1YWwpOworCisJLyoKKwkgKiBJ bml0aWFsaXplIHRoZSBleHByZXNzaW9ucyBpZiB3ZSBkaWRuJ3QgYWxyZWFkeSwgYW5kIGNo ZWNrIHdoZXRoZXIgd2UKKwkgKiBjYW4gZXhpdCBlYXJseSBiZWNhdXNlIG5vdGhpbmcgbmVl ZHMgdG8gYmUgY29tcHV0ZWQuCisJICovCisJaWYgKGNtZHR5cGUgPT0gQ01EX1VQREFURSkK Kwl7CisJCWlmIChyZXN1bHRSZWxJbmZvLT5yaV9WaXJ0dWFsR2VuZXJhdGVkRXhwcnNVID09 IE5VTEwpCisJCQlFeGVjSW5pdEdlbmVyYXRlZChyZXN1bHRSZWxJbmZvLCBlc3RhdGUsIGNt ZHR5cGUpOworCQlpZiAocmVzdWx0UmVsSW5mby0+cmlfTnVtVmlydHVhbEdlbmVyYXRlZE5l ZWRlZFUgPT0gMCkKKwkJCXJldHVybjsKKwkJcmlfVmlydHVhbEdlbmVyYXRlZEV4cHJzID0g cmVzdWx0UmVsSW5mby0+cmlfVmlydHVhbEdlbmVyYXRlZEV4cHJzVTsKKwl9CisJZWxzZQor CXsKKwkJaWYgKHJlc3VsdFJlbEluZm8tPnJpX1ZpcnR1YWxHZW5lcmF0ZWRFeHByc0kgPT0g TlVMTCkKKwkJCUV4ZWNJbml0R2VuZXJhdGVkKHJlc3VsdFJlbEluZm8sIGVzdGF0ZSwgY21k dHlwZSk7CisJCWlmIChyZXN1bHRSZWxJbmZvLT5yaV9OdW1WaXJ0dWFsR2VuZXJhdGVkTmVl ZGVkSSA9PSAwKQorCQkJcmV0dXJuOworCQlyaV9WaXJ0dWFsR2VuZXJhdGVkRXhwcnMgPSBy ZXN1bHRSZWxJbmZvLT5yaV9WaXJ0dWFsR2VuZXJhdGVkRXhwcnNJOworCX0KKworCW9sZENv bnRleHQgPSBNZW1vcnlDb250ZXh0U3dpdGNoVG8oR2V0UGVyVHVwbGVNZW1vcnlDb250ZXh0 KGVzdGF0ZSkpOworCisJLyogTWFrZSBzdXJlIGFsbCBiYXNlIGNvbHVtbiB2YWx1ZXMgYXJl IGF2YWlsYWJsZSAqLworCXNsb3RfZ2V0YWxsYXR0cnMoc2xvdCk7CisKKwllY29udGV4dC0+ ZWN4dF9zY2FudHVwbGUgPSBzbG90OworCisJZm9yIChpbnQgaSA9IDA7IGkgPCBuYXR0czsg aSsrKQorCXsKKwkJQ29tcGFjdEF0dHJpYnV0ZSAqYXR0ciA9IFR1cGxlRGVzY0NvbXBhY3RB dHRyKHR1cGRlc2MsIGkpOworCisJCWlmIChyaV9WaXJ0dWFsR2VuZXJhdGVkRXhwcnNbaV0p CisJCXsKKwkJCURhdHVtCQl2YWw7CisJCQlib29sCQlpc251bGw7CisKKwkJCUFzc2VydChU dXBsZURlc2NBdHRyKHR1cGRlc2MsIGkpLT5hdHRnZW5lcmF0ZWQgPT0gQVRUUklCVVRFX0dF TkVSQVRFRF9WSVJUVUFMKTsKKworCQkJdmFsID0gRXhlY0V2YWxFeHByKHJpX1ZpcnR1YWxH ZW5lcmF0ZWRFeHByc1tpXSwgZWNvbnRleHQsICZpc251bGwpOworCisJCQkvKgorCQkJICog V2UgbXVzdCBtYWtlIGEgY29weSBvZiB2YWwgYXMgd2UgaGF2ZSBubyBndWFyYW50ZWVzIGFi b3V0IHdoZXJlCisJCQkgKiBtZW1vcnkgZm9yIGEgcGFzcy1ieS1yZWZlcmVuY2UgRGF0dW0g aXMgbG9jYXRlZC4KKwkJCSAqLworCQkJaWYgKCFpc251bGwpCisJCQkJdmFsID0gZGF0dW1D b3B5KHZhbCwgYXR0ci0+YXR0Ynl2YWwsIGF0dHItPmF0dGxlbik7CisKKwkJCXNsb3QtPnR0 c192YWx1ZXNbaV0gPSB2YWw7CisJCQlzbG90LT50dHNfaXNudWxsW2ldID0gaXNudWxsOwor CQl9CisJfQorCisJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZENvbnRleHQpOworfQorCiAv KgogICogRXhlY0luaXRJbnNlcnRQcm9qZWN0aW9uCiAgKgkJRG8gb25lLXRpbWUgaW5pdGlh bGl6YXRpb24gb2YgcHJvamVjdGlvbiBkYXRhIGZvciBJTlNFUlQgdHVwbGVzLgpAQCAtOTU5 LDYgKzEwNjIsMTQgQEAgRXhlY0luc2VydChNb2RpZnlUYWJsZUNvbnRleHQgKmNvbnRleHQs CiAJCQlFeGVjQ29tcHV0ZVN0b3JlZEdlbmVyYXRlZChyZXN1bHRSZWxJbmZvLCBlc3RhdGUs IHNsb3QsCiAJCQkJCQkJCQkgICBDTURfSU5TRVJUKTsKIAorCQkvKgorCQkgKiBDb21wdXRl IHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMKKwkJICovCisJCWlmIChyZXN1bHRSZWxhdGlv bkRlc2MtPnJkX2F0dC0+Y29uc3RyICYmCisJCQlyZXN1bHRSZWxhdGlvbkRlc2MtPnJkX2F0 dC0+Y29uc3RyLT5oYXNfZ2VuZXJhdGVkX3ZpcnR1YWwpCisJCQlFeGVjQ29tcHV0ZVZpcnR1 YWxHZW5lcmF0ZWQocmVzdWx0UmVsSW5mbywgZXN0YXRlLCBzbG90LAorCQkJCQkJCQkJCUNN RF9JTlNFUlQpOworCiAJCS8qCiAJCSAqIElmIHRoZSBGRFcgc3VwcG9ydHMgYmF0Y2hpbmcs IGFuZCBiYXRjaGluZyBpcyByZXF1ZXN0ZWQsIGFjY3VtdWxhdGUKIAkJICogcm93cyBhbmQg aW5zZXJ0IHRoZW0gaW4gYmF0Y2hlcy4gT3RoZXJ3aXNlIHVzZSB0aGUgcGVyLXJvdyBpbnNl cnRzLgpAQCAtMTA4NCw2ICsxMTk1LDE0IEBAIEV4ZWNJbnNlcnQoTW9kaWZ5VGFibGVDb250 ZXh0ICpjb250ZXh0LAogCQkJRXhlY0NvbXB1dGVTdG9yZWRHZW5lcmF0ZWQocmVzdWx0UmVs SW5mbywgZXN0YXRlLCBzbG90LAogCQkJCQkJCQkJICAgQ01EX0lOU0VSVCk7CiAKKwkJLyoK KwkJICogQ29tcHV0ZSB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zCisJCSAqLworCQlpZiAo cmVzdWx0UmVsYXRpb25EZXNjLT5yZF9hdHQtPmNvbnN0ciAmJgorCQkJcmVzdWx0UmVsYXRp b25EZXNjLT5yZF9hdHQtPmNvbnN0ci0+aGFzX2dlbmVyYXRlZF92aXJ0dWFsKQorCQkJRXhl Y0NvbXB1dGVWaXJ0dWFsR2VuZXJhdGVkKHJlc3VsdFJlbEluZm8sIGVzdGF0ZSwgc2xvdCwK KwkJCQkJCQkJCQlDTURfSU5TRVJUKTsKKwogCQkvKgogCQkgKiBDaGVjayBhbnkgUkxTIFdJ VEggQ0hFQ0sgcG9saWNpZXMuCiAJCSAqCkBAIC0yNDM5LDYgKzI1NTgsMTQgQEAgRXhlY1Vw ZGF0ZVByZXBhcmVTbG90KFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJCXJlc3Vs dFJlbGF0aW9uRGVzYy0+cmRfYXR0LT5jb25zdHItPmhhc19nZW5lcmF0ZWRfc3RvcmVkKQog CQlFeGVjQ29tcHV0ZVN0b3JlZEdlbmVyYXRlZChyZXN1bHRSZWxJbmZvLCBlc3RhdGUsIHNs b3QsCiAJCQkJCQkJCSAgIENNRF9VUERBVEUpOworCisJLyoKKwkgKiBDb21wdXRlIHZpcnR1 YWwgZ2VuZXJhdGVkIGNvbHVtbnMKKwkgKi8KKwlpZiAocmVzdWx0UmVsYXRpb25EZXNjLT5y ZF9hdHQtPmNvbnN0ciAmJgorCQlyZXN1bHRSZWxhdGlvbkRlc2MtPnJkX2F0dC0+Y29uc3Ry LT5oYXNfZ2VuZXJhdGVkX3ZpcnR1YWwpCisJCUV4ZWNDb21wdXRlVmlydHVhbEdlbmVyYXRl ZChyZXN1bHRSZWxJbmZvLCBlc3RhdGUsIHNsb3QsCisJCQkJCQkJCQlDTURfVVBEQVRFKTsK IH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL25vZGVNb2RpZnlU YWJsZS5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivbm9kZU1vZGlmeVRhYmxlLmgKaW5kZXgg ZjYwNzBlMWNkZjMuLjdjYmJlOGMxYTFmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVj dXRvci9ub2RlTW9kaWZ5VGFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9ub2Rl TW9kaWZ5VGFibGUuaApAQCAtMjMsNiArMjMsMTAgQEAgZXh0ZXJuIHZvaWQgRXhlY0NvbXB1 dGVTdG9yZWRHZW5lcmF0ZWQoUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKIAkJCQkJ CQkJCSAgIEVTdGF0ZSAqZXN0YXRlLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCwKIAkJCQkJCQkJ CSAgIENtZFR5cGUgY21kdHlwZSk7CiAKK2V4dGVybiB2b2lkIEV4ZWNDb21wdXRlVmlydHVh bEdlbmVyYXRlZChSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLAorCQkJCQkJCQkJCUVT dGF0ZSAqZXN0YXRlLCBUdXBsZVRhYmxlU2xvdCAqc2xvdCwKKwkJCQkJCQkJCQlDbWRUeXBl IGNtZHR5cGUpOworCiBleHRlcm4gTW9kaWZ5VGFibGVTdGF0ZSAqRXhlY0luaXRNb2RpZnlU YWJsZShNb2RpZnlUYWJsZSAqbm9kZSwgRVN0YXRlICplc3RhdGUsIGludCBlZmxhZ3MpOwog ZXh0ZXJuIHZvaWQgRXhlY0VuZE1vZGlmeVRhYmxlKE1vZGlmeVRhYmxlU3RhdGUgKm5vZGUp OwogZXh0ZXJuIHZvaWQgRXhlY1JlU2Nhbk1vZGlmeVRhYmxlKE1vZGlmeVRhYmxlU3RhdGUg Km5vZGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9z cmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRleCBmMGNiMjE0NDRiMi4uZTNlYzMx OTI5MjQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCisrKyBi L3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC02MDMsNiArNjAzLDE2IEBAIHR5 cGVkZWYgc3RydWN0IFJlc3VsdFJlbEluZm8KIAlpbnQJCQlyaV9OdW1HZW5lcmF0ZWROZWVk ZWRJOwogCWludAkJCXJpX051bUdlbmVyYXRlZE5lZWRlZFU7CiAKKwkvKgorCSAqIEFycmF5 cyBvZiB2aXJ0dWFsIGdlbmVyYXRlZCBjb2x1bW5zIEV4cHJTdGF0ZXMgZm9yIElOU0VSVC9V UERBVEUvTUVSR0UuCisJICovCisJRXhwclN0YXRlICoqcmlfVmlydHVhbEdlbmVyYXRlZEV4 cHJzSTsKKwlFeHByU3RhdGUgKipyaV9WaXJ0dWFsR2VuZXJhdGVkRXhwcnNVOworCisJLyog bnVtYmVyIG9mIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVtbnMgd2UgbmVlZCB0byBjb21wdXRl ICovCisJaW50CQkJcmlfTnVtVmlydHVhbEdlbmVyYXRlZE5lZWRlZEk7CisJaW50CQkJcmlf TnVtVmlydHVhbEdlbmVyYXRlZE5lZWRlZFU7CisKIAkvKiBsaXN0IG9mIFJFVFVSTklORyBl eHByZXNzaW9ucyAqLwogCUxpc3QJICAgKnJpX3JldHVybmluZ0xpc3Q7CiAKZGlmZiAtLWdp dCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZ2VuZXJhdGVkX3ZpcnR1YWwub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9nZW5lcmF0ZWRfdmlydHVhbC5vdXQKaW5kZXgg NmVlMDI5Nzk2ZjEuLjQzZjVjZDhkYzc4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2dlbmVyYXRlZF92aXJ0dWFsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2dlbmVyYXRlZF92aXJ0dWFsLm91dApAQCAtMTY2LDExICsxNjYsOSBAQCBT RUxFQ1QgYSwgYiBGUk9NIGd0ZXN0MSBXSEVSRSBiID0gNCBPUkRFUiBCWSBhOwogIDIgfCA0 CiAoMSByb3cpCiAKLS0tIHRlc3QgdGhhdCBvdmVyZmxvdyBlcnJvciBoYXBwZW5zIG9uIHJl YWQKKy0tIHRlc3QgdGhhdCBvdmVyZmxvdyBlcnJvciBoYXBwZW5zIG9uIHdyaXRlCiBJTlNF UlQgSU5UTyBndGVzdDEgVkFMVUVTICgyMDAwMDAwMDAwKTsKLVNFTEVDVCAqIEZST00gZ3Rl c3QxOwogRVJST1I6ICBpbnRlZ2VyIG91dCBvZiByYW5nZQotREVMRVRFIEZST00gZ3Rlc3Qx IFdIRVJFIGEgPSAyMDAwMDAwMDAwOwogLS0gdGVzdCB3aXRoIGpvaW5zCiBDUkVBVEUgVEFC TEUgZ3Rlc3R4ICh4IGludCwgeSBpbnQpOwogSU5TRVJUIElOVE8gZ3Rlc3R4IFZBTFVFUyAo MTEsIDEpLCAoMjIsIDIpLCAoMzMsIDMpOwpAQCAtNjQ3LDcgKzY0NSw3IEBAIENSRUFURSBU QUJMRSBndGVzdDIwIChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZ UyBBUyAoYSAqIDIpIFZJUlRVCiBJTlNFUlQgSU5UTyBndGVzdDIwIChhKSBWQUxVRVMgKDEw KTsgIC0tIG9rCiBJTlNFUlQgSU5UTyBndGVzdDIwIChhKSBWQUxVRVMgKDMwKTsgIC0tIHZp b2xhdGVzIGNvbnN0cmFpbnQKIEVSUk9SOiAgbmV3IHJvdyBmb3IgcmVsYXRpb24gImd0ZXN0 MjAiIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgImd0ZXN0MjBfYl9jaGVjayIKLURFVEFJ TDogIEZhaWxpbmcgcm93IGNvbnRhaW5zICgzMCwgdmlydHVhbCkuCitERVRBSUw6ICBGYWls aW5nIHJvdyBjb250YWlucyAoMzAsIDYwKS4KIEFMVEVSIFRBQkxFIGd0ZXN0MjAgQUxURVIg Q09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKGEgKiAxMDApOyAgLS0gdmlvbGF0ZXMgY29u c3RyYWludAogRVJST1I6ICBjaGVjayBjb25zdHJhaW50ICJndGVzdDIwX2JfY2hlY2siIG9m IHJlbGF0aW9uICJndGVzdDIwIiBpcyB2aW9sYXRlZCBieSBzb21lIHJvdwogQUxURVIgVEFC TEUgZ3Rlc3QyMCBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoYSAqIDMpOyAg LS0gb2sKQEAgLTY5Myw3ICs2OTEsNyBAQCBBTFRFUiBUQUJMRSBndGVzdDIwYyBBREQgQ09O U1RSQUlOVCB3aG9sZV9yb3dfY2hlY2sgQ0hFQ0sgKGd0ZXN0MjBjIElTIE5PVCBOVUxMKQog SU5TRVJUIElOVE8gZ3Rlc3QyMGMgVkFMVUVTICgxKTsgIC0tIG9rCiBJTlNFUlQgSU5UTyBn dGVzdDIwYyBWQUxVRVMgKE5VTEwpOyAgLS0gZmFpbHMKIEVSUk9SOiAgbmV3IHJvdyBmb3Ig cmVsYXRpb24gImd0ZXN0MjBjIiB2aW9sYXRlcyBjaGVjayBjb25zdHJhaW50ICJ3aG9sZV9y b3dfY2hlY2siCi1ERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAobnVsbCwgdmlydHVh bCkuCitERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAobnVsbCwgbnVsbCkuCiBBTFRF UiBUQUJMRSBndGVzdDIwYyBBTFRFUiBDT0xVTU4gYiBTRVQgRVhQUkVTU0lPTiBBUyAoTlVM TDo6aW50KTsgIC0tIHZpb2xhdGVzIGNvbnN0cmFpbnQKIEVSUk9SOiAgY2hlY2sgY29uc3Ry YWludCAid2hvbGVfcm93X2NoZWNrIiBvZiByZWxhdGlvbiAiZ3Rlc3QyMGMiIGlzIHZpb2xh dGVkIGJ5IHNvbWUgcm93CiAtLSBpbmRleCB3aXRoIHdob2xlLXJvdyByZWZlcmVuY2UgbmVl ZHMgcmVidWlsZApAQCAtNzA4LDEyICs3MDYsMTIgQEAgQ1JFQVRFIFRBQkxFIGd0ZXN0MjFh IChhIGludCBQUklNQVJZIEtFWSwgYiBpbnQgR0VORVJBVEVEIEFMV0FZUyBBUyAobnVsbGlm KGEsIDAKIElOU0VSVCBJTlRPIGd0ZXN0MjFhIChhKSBWQUxVRVMgKDEpOyAgLS0gb2sKIElO U0VSVCBJTlRPIGd0ZXN0MjFhIChhKSBWQUxVRVMgKDApOyAgLS0gdmlvbGF0ZXMgY29uc3Ry YWludAogRVJST1I6ICBudWxsIHZhbHVlIGluIGNvbHVtbiAiYiIgb2YgcmVsYXRpb24gImd0 ZXN0MjFhIiB2aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50Ci1ERVRBSUw6ICBGYWlsaW5n IHJvdyBjb250YWlucyAoMCwgdmlydHVhbCkuCitERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250 YWlucyAoMCwgbnVsbCkuCiAtLSBhbHNvIGNoZWNrIHdpdGggdGFibGUgY29uc3RyYWludCBz eW50YXgKIENSRUFURSBUQUJMRSBndGVzdDIxYXggKGEgaW50IFBSSU1BUlkgS0VZLCBiIGlu dCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIFZJUlRVQUwsIENPTlNUUkFJ TlQgY2MgTk9UIE5VTEwgYik7CiBJTlNFUlQgSU5UTyBndGVzdDIxYXggKGEpIFZBTFVFUyAo MCk7ICAtLSB2aW9sYXRlcyBjb25zdHJhaW50CiBFUlJPUjogIG51bGwgdmFsdWUgaW4gY29s dW1uICJiIiBvZiByZWxhdGlvbiAiZ3Rlc3QyMWF4IiB2aW9sYXRlcyBub3QtbnVsbCBjb25z dHJhaW50Ci1ERVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAoMCwgdmlydHVhbCkuCitE RVRBSUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAoMCwgbnVsbCkuCiBJTlNFUlQgSU5UTyBn dGVzdDIxYXggKGEpIFZBTFVFUyAoMSk7ICAtLW9rCiAtLSBTRVQgRVhQUkVTU0lPTiBzdXBw b3J0cyBub3QgbnVsbCBjb25zdHJhaW50CiBBTFRFUiBUQUJMRSBndGVzdDIxYXggQUxURVIg Q09MVU1OIGIgU0VUIEVYUFJFU1NJT04gQVMgKG51bGxpZihhLCAxKSk7IC0tZXJyb3IKQEAg LTcyMywxNyArNzIxLDE3IEBAIENSRUFURSBUQUJMRSBndGVzdDIxYXggKGEgaW50IFBSSU1B UlkgS0VZLCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYoYSwKIEFMVEVSIFRB QkxFIGd0ZXN0MjFheCBBREQgQ09OU1RSQUlOVCBjYyBOT1QgTlVMTCBiOwogSU5TRVJUIElO VE8gZ3Rlc3QyMWF4IChhKSBWQUxVRVMgKDApOyAgLS0gdmlvbGF0ZXMgY29uc3RyYWludAog RVJST1I6ICBudWxsIHZhbHVlIGluIGNvbHVtbiAiYiIgb2YgcmVsYXRpb24gImd0ZXN0MjFh eCIgdmlvbGF0ZXMgbm90LW51bGwgY29uc3RyYWludAotREVUQUlMOiAgRmFpbGluZyByb3cg Y29udGFpbnMgKDAsIHZpcnR1YWwpLgorREVUQUlMOiAgRmFpbGluZyByb3cgY29udGFpbnMg KDAsIG51bGwpLgogRFJPUCBUQUJMRSBndGVzdDIxYXg7CiBDUkVBVEUgVEFCTEUgZ3Rlc3Qy MWIgKGEgaW50LCBiIGludCBHRU5FUkFURUQgQUxXQVlTIEFTIChudWxsaWYoYSwgMCkpIFZJ UlRVQUwpOwogQUxURVIgVEFCTEUgZ3Rlc3QyMWIgQUxURVIgQ09MVU1OIGIgU0VUIE5PVCBO VUxMOwogSU5TRVJUIElOVE8gZ3Rlc3QyMWIgKGEpIFZBTFVFUyAoMSk7ICAtLSBvawogSU5T RVJUIElOVE8gZ3Rlc3QyMWIgKGEpIFZBTFVFUyAoMiksICgwKTsgIC0tIHZpb2xhdGVzIGNv bnN0cmFpbnQKIEVSUk9SOiAgbnVsbCB2YWx1ZSBpbiBjb2x1bW4gImIiIG9mIHJlbGF0aW9u ICJndGVzdDIxYiIgdmlvbGF0ZXMgbm90LW51bGwgY29uc3RyYWludAotREVUQUlMOiAgRmFp bGluZyByb3cgY29udGFpbnMgKDAsIHZpcnR1YWwpLgorREVUQUlMOiAgRmFpbGluZyByb3cg Y29udGFpbnMgKDAsIG51bGwpLgogSU5TRVJUIElOVE8gZ3Rlc3QyMWIgKGEpIFZBTFVFUyAo TlVMTCk7ICAtLSBlcnJvcgogRVJST1I6ICBudWxsIHZhbHVlIGluIGNvbHVtbiAiYiIgb2Yg cmVsYXRpb24gImd0ZXN0MjFiIiB2aW9sYXRlcyBub3QtbnVsbCBjb25zdHJhaW50Ci1ERVRB SUw6ICBGYWlsaW5nIHJvdyBjb250YWlucyAobnVsbCwgdmlydHVhbCkuCitERVRBSUw6ICBG YWlsaW5nIHJvdyBjb250YWlucyAobnVsbCwgbnVsbCkuCiBBTFRFUiBUQUJMRSBndGVzdDIx YiBBTFRFUiBDT0xVTU4gYiBEUk9QIE5PVCBOVUxMOwogSU5TRVJUIElOVE8gZ3Rlc3QyMWIg KGEpIFZBTFVFUyAoMCk7ICAtLSBvayBub3cKIC0tIHZpcnR1YWwgZ2VuZXJhdGVkIGNvbHVt bnMgYXJlIG5vdCBwaHlzaWNhbGx5IHN0b3JlZCwgZXZlbiB3aGVuIG5vdCBudWxsCkBAIC03 OTAsMTAgKzc4OCwxMCBAQCBDUkVBVEUgVEFCTEUgZ3Rlc3Rubl9jaGlsZGRlZiBQQVJUSVRJ T04gT0YgZ3Rlc3Rubl9wYXJlbnQgZGVmYXVsdDsKIElOU0VSVCBJTlRPIGd0ZXN0bm5fcGFy ZW50IFZBTFVFUyAoMiwgMiwgZGVmYXVsdCksICgzLCA1LCBkZWZhdWx0KSwgKDE0LCAxMiwg ZGVmYXVsdCk7ICAtLSBvawogSU5TRVJUIElOVE8gZ3Rlc3Rubl9wYXJlbnQgVkFMVUVTICgx LCAyLCBkZWZhdWx0KTsgIC0tIGVycm9yCiBFUlJPUjogIG51bGwgdmFsdWUgaW4gY29sdW1u ICJmMyIgb2YgcmVsYXRpb24gImd0ZXN0bm5fY2hpbGQiIHZpb2xhdGVzIG5vdC1udWxsIGNv bnN0cmFpbnQKLURFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zICgxLCAyLCB2aXJ0dWFs KS4KK0RFVEFJTDogIEZhaWxpbmcgcm93IGNvbnRhaW5zICgxLCAyLCBudWxsKS4KIElOU0VS VCBJTlRPIGd0ZXN0bm5fcGFyZW50IFZBTFVFUyAoMiwgMTAsIGRlZmF1bHQpOyAgLS0gZXJy b3IKIEVSUk9SOiAgbnVsbCB2YWx1ZSBpbiBjb2x1bW4gImYzIiBvZiByZWxhdGlvbiAiZ3Rl c3Rubl9jaGlsZCIgdmlvbGF0ZXMgbm90LW51bGwgY29uc3RyYWludAotREVUQUlMOiAgRmFp bGluZyByb3cgY29udGFpbnMgKDIsIDEwLCB2aXJ0dWFsKS4KK0RFVEFJTDogIEZhaWxpbmcg cm93IGNvbnRhaW5zICgyLCAxMCwgbnVsbCkuCiBBTFRFUiBUQUJMRSBndGVzdG5uX3BhcmVu dCBBTFRFUiBDT0xVTU4gZjMgU0VUIEVYUFJFU1NJT04gQVMgKG51bGxpZihmMSwgMikgKyBu dWxsaWYoZjIsIDExKSk7ICAtLSBlcnJvcgogRVJST1I6ICBjb2x1bW4gImYzIiBvZiByZWxh dGlvbiAiZ3Rlc3Rubl9jaGlsZCIgY29udGFpbnMgbnVsbCB2YWx1ZXMKIElOU0VSVCBJTlRP IGd0ZXN0bm5fcGFyZW50IFZBTFVFUyAoMTAsIDExLCBkZWZhdWx0KTsgIC0tIG9rCmRpZmYg LS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9nZW5lcmF0ZWRfdmlydHVhbC5zcWwgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9nZW5lcmF0ZWRfdmlydHVhbC5zcWwKaW5kZXggZTRlYTYz YmIzYTEuLjNjZDAxM2QxNTBiIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9n ZW5lcmF0ZWRfdmlydHVhbC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZ2VuZXJh dGVkX3ZpcnR1YWwuc3FsCkBAIC03MSwxMCArNzEsOCBAQCBTRUxFQ1QgKiBGUk9NIGd0ZXN0 MSBPUkRFUiBCWSBhOwogU0VMRUNUIGEsIGIsIGIgKiAyIEFTIGIyIEZST00gZ3Rlc3QxIE9S REVSIEJZIGE7CiBTRUxFQ1QgYSwgYiBGUk9NIGd0ZXN0MSBXSEVSRSBiID0gNCBPUkRFUiBC WSBhOwogCi0tLSB0ZXN0IHRoYXQgb3ZlcmZsb3cgZXJyb3IgaGFwcGVucyBvbiByZWFkCist LSB0ZXN0IHRoYXQgb3ZlcmZsb3cgZXJyb3IgaGFwcGVucyBvbiB3cml0ZQogSU5TRVJUIElO VE8gZ3Rlc3QxIFZBTFVFUyAoMjAwMDAwMDAwMCk7Ci1TRUxFQ1QgKiBGUk9NIGd0ZXN0MTsK LURFTEVURSBGUk9NIGd0ZXN0MSBXSEVSRSBhID0gMjAwMDAwMDAwMDsKIAogLS0gdGVzdCB3 aXRoIGpvaW5zCiBDUkVBVEUgVEFCTEUgZ3Rlc3R4ICh4IGludCwgeSBpbnQpOwotLSAKMi41 MC4xIChBcHBsZSBHaXQtMTU1KQoK --------------HLEhmFV0A0vdtrrw6Sis1cTy--