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 1vIeii-008rPe-2T for pgsql-hackers@arkaria.postgresql.org; Tue, 11 Nov 2025 03:07:00 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vIeif-003nUI-0x for pgsql-hackers@arkaria.postgresql.org; Tue, 11 Nov 2025 03:06:57 +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 1vIeie-003nUA-2G for pgsql-hackers@lists.postgresql.org; Tue, 11 Nov 2025 03:06:56 +0000 Received: from mail-ua1-x92a.google.com ([2607:f8b0:4864:20::92a]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vIeiZ-0075W8-2F for pgsql-hackers@lists.postgresql.org; Tue, 11 Nov 2025 03:06:56 +0000 Received: by mail-ua1-x92a.google.com with SMTP id a1e0cc1a2514c-9372149216bso1797192241.3 for ; Mon, 10 Nov 2025 19:06:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1762830409; x=1763435209; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=DVKSCG4lpWqGlWKc+o5skFDBYQXVlPOgSaxwuQtUV5w=; b=nJgd1UMzyRxbJvgp0wdy1yjwpfZ5yzwcEIjKboWlzLW2O1NY8YwXTO2yoQKn6BBZXA iNnjF6g9eZmHF3pX9PL3z/ViYBvSYgfbWli+DyIRohP4Uw7OOWwZSb6M49tMwNyiijnz BexkDq0oUXyq+X46iISPxa4x6yFsuZYiQcRp58LfulWl0mnCMgFSZMFzLFE1ijZKShUF nFGzk9Rd6mdm2FZB4/LM/bV9HufNkfm+WcQNeummJrtSXEH4/6+biLxFnbfQHcMsWizX aMlK9/QSWyn1u+Pr6BaljHNt99LVuQDY5h3Ja8U+BmeIbn9w4L8TUYm11v0fSNTG4L5q Mb+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762830409; x=1763435209; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=DVKSCG4lpWqGlWKc+o5skFDBYQXVlPOgSaxwuQtUV5w=; b=kMSFp0LiSoboXGGvaTD9zo+UpMih/23mO+lcQ5ZPKWH6RHkynqB9JfAQB4UxfpxhOr f+heUQ/IdbLUz/keEKZKabwms7S6xIyfADI8zDIyD/D7KFcKeYwMEKnaFrdN8m9maGmm jZCmbiM4scAIo9N/eU5DygM4CQXJkQFPk09ZCJekOGs9mFds5n8egfZfW9oq1sg+YkFp Cbd9kvqha7Ylnp/PWHOYlBLZDmK55q9WUq+EOklGTVE0suzgodAU8R2FslWPIP8HeRXp vbZQ1nCmFEhsXYL0YdyQkrOvyrq9Sn5KsNwhHbi8+acdgfIM5YHM4f0fsDOd0Au9Cdsn rCEQ== X-Forwarded-Encrypted: i=1; AJvYcCWEGJUObxLZlH/K6b3xJLkMoUJD/wnIXl/yvYyxLZMjG65tCcAOuIbsiGZtAavdYRtnG8K3PWsxZ3oh289F@lists.postgresql.org X-Gm-Message-State: AOJu0YxYhmbbXlVaE7lny4zaqkVwjTlYzSdzYhJP0UFUPYknrKd0kN3Z XwREi2fP4uy1Bm5Fv5GehfHyHqqIJ/52yDAM3rixwb5itesxPNNG5lQ8jeQ7ryY84N5ek0rMMVe JpwrOSdrdsD7c3MGKIA3HmzDDL1xlL20= X-Gm-Gg: ASbGncvwlfjzVjlIDjU46+dq28VEFnvW138TjM1L63JfEVDFGuwIA2BV/mnU/RSvOOb kjB7fUiyzHJKie9OmNrx0D8p/1ONTOhFROKvc/v7+8PLesfdIz19Xj/hnzdHUSF+paGhv3wSGyz lYaEMCbassSUu3idoZq2w9oaEnlVZSFXX0Yh/kYUyjgGjYfZTZqheQSkWuCxvsXimIlKL2hR2WH pMythA64AaVENu4OuF/tix4Uzr6KaUuN9DWuYTnqE0nO/qgQ/bXheLHOpvCFqOR8I517HtWLAVv 1s5oeOb7qetEzdTZJ0HhvqUwKGqwekLRWxJaAbYiSNQychomKDmodQCjxRyE39wCmfj9ql+Wtoe OdgZKy4sLklmVN/uHJH6ZXOpiYzgy6/f6EyiAl4yddtVp9/UTtBTaTjLZd+6hqHg9EgXY5u+6jw == X-Google-Smtp-Source: AGHT+IEFoQw9UuTAJHek4e7yz8/5zj6xsMxmThq1ZMiDk66xLt46BC8XjA3dZiH8YtB5eRpmdSIvhW/6CRDbZr863Xs= X-Received: by 2002:a05:6102:2921:b0:5dd:b2a0:3edd with SMTP id ada2fe7eead31-5ddc46506a6mr3949647137.3.1762830409411; Mon, 10 Nov 2025 19:06:49 -0800 (PST) MIME-Version: 1.0 References: <04afcd1f-ed7d-4c0a-add1-50e3719ccbf9@postgresfriends.org> <762ae707-7fdc-43d8-a77a-3a10d12ce21d@postgresfriends.org> In-Reply-To: From: jian he Date: Tue, 11 Nov 2025 11:06:11 +0800 X-Gm-Features: AWmQ_bnoHvv-RksZs0aM6uCkUdI750M8tnFhlSY6jZWz907oHGlM2iWxj0yn7DM Message-ID: Subject: Re: CAST(... ON DEFAULT) - WIP build on top of Error-Safe User Functions To: Corey Huinker Cc: Vik Fearing , Isaac Morland , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="0000000000005a66d6064348f03b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000005a66d6064348f03b Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Thu, Nov 6, 2025 at 6:00=E2=80=AFAM Corey Huinker wrote: > > Issue 5: > > I think 0019 is a bit big for a committer to digest all in one sitting. C= urrently it: > > - introduces the type-safe cast node > - introduces the cast on default syntax > - redefines > - adds in test cases for all safe functions defined in patches 1-18. > > As tedious as it might be, I think we want to move this patch to the fron= t, move all pg_cast.dat changes to their respective patches that introduce = that datatype's safe typecast function, as well as the test cases that are = made possible by that new safe typecast. That will make it easier to ensure= that each new cast has test coverage. > > Yes, that's going to be a lot of catversion bumps, requiring somebody to = fudge the dates as we presently only allow for 10 catversion bumps in a day= , but the committer will either combine a few of the patches or spread the = work out over a few days. > Currently, patches v9-0001 through v9-0018 focus solely on refactoring pg_cast.castfunc. This refactoring is already valuable on its own because = it establishes the infrastructure needed for error safe type casts. As mentioned before, to make CAST(source_expr AS target_type DEFAULT expr ON CONVERSION ERROR); work, we cannot just simply replace casting FuncExpr nodes with CoerceViaIO, sinc= e type modifiers behave differently in these two Nodes. (e.g., casting numeric 1.11 to integer is not equivalent to casting the lit= eral "1.11" to integer). Also, are we settled on this new pg_cast column name (pg_cast.casterrorsafe= )? Overall, I think it's better not to touch pg_cast.dat in each of these refactoring patches. Without first refactoring pg_cast.castfunc (01 to 18), making CAST ... DEFAULT as the first patch (0001) won't work, since pg_cast.castfunc itself is not error safe yet, and we have no way to test the CAST DEFAULT syntax. So we have to *first* refactor pg_cast.castfunc, make it error safe then implement CAST DEFAULT. -------------------------------------------------- The CAST DEFAULT patch is large, I tried to split some newly created functi= on into a seperate patch. see v10-0019-invent-some-error-safe-functions.patch. SELECT CAST('five' AS INTEGER DEFAULT 6 ON CONVERSION ERROR); is not hard to make it error safe. ('five' is a simple Cons node) However, I found out, to make SELECT CAST('five'::INTEGER AS INTEGER DEFAULT 6 ON CONVERSION ERROR); error safe is hard. ('five'::INTEGER) is a TypeCast node, normally it will error out in transformTypeCast-> coerce_to_target_type->coerce_type ```(if (inputTypeId =3D=3D UNKNOWNOID && IsA(node, Const)))``` If we do not error out, then we need a Node to represent the failed cast, m= ainly for deparse purposes. that means for CAST(source_expr .... DEFAULT defexpr ON CONVERSION ERROR); The only corner case we handle is when source_expr is a simple Const node. In all other cases, source_expr is processed through transformExpr, which does all the normal parse analysis for a node. -- jian https://www.enterprisedb.com/ --0000000000005a66d6064348f03b Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v10-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhtzolcr4 RnJvbSBlNTNhODgwOGJkNTAxZjA4YTk2NjA5MjA4MzA1NTliNTc4NTc0NWE4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo0NDozNSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEw IDE2LzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIHRpbWVzdGFtcCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9u YW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1 bmMKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgKGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSd0aW1lc3Rh bXAnOjpyZWd0eXBlKQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKICAgICAgICAgY2Fz dHNvdXJjZSAgICAgICAgICB8ICAgICAgICAgY2FzdHRhcmdldCAgICAgICAgICB8IGNhc3RmdW5j IHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgICAgIHByb3NyYyAgICAgICAgIHwgICBw cm9uYW1lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQogdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25l IHwgZGF0ZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIDIwMjkgfCBhICAgICAgICAgICB8 IGYgICAgICAgICAgfCB0aW1lc3RhbXBfZGF0ZSAgICAgICAgfCBkYXRlCiB0aW1lc3RhbXAgd2l0 aG91dCB0aW1lIHpvbmUgfCB0aW1lIHdpdGhvdXQgdGltZSB6b25lICAgICAgfCAgICAgMTMxNiB8 IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRpbWVzdGFtcF90aW1lICAgICAgICB8IHRpbWUK IHRpbWVzdGFtcCB3aXRob3V0IHRpbWUgem9uZSB8IHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSAg ICB8ICAgICAyMDI4IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wX3RpbWVz dGFtcHR6IHwgdGltZXN0YW1wdHoKIHRpbWVzdGFtcCB3aXRob3V0IHRpbWUgem9uZSB8IHRpbWVz dGFtcCB3aXRob3V0IHRpbWUgem9uZSB8ICAgICAxOTYxIHwgaSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgdGltZXN0YW1wX3NjYWxlICAgICAgIHwgdGltZXN0YW1wCig0IHJvd3MpCgpkaXNjdXNz aW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlz a1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxz L2FkdC9kYXRlLmMgICAgICB8IDEzICsrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC90aW1lc3RhbXAuYyB8IDE3ICsrKysrKysrKysrKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDI2 IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2RhdGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKaW5kZXggMTEx YmZkOGY1MTkuLmM1NTYyYjU2M2U1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQv ZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKQEAgLTEzNzMsNyArMTM3 MywxNiBAQCB0aW1lc3RhbXBfZGF0ZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVzdGFtcAl0aW1l c3RhbXAgPSBQR19HRVRBUkdfVElNRVNUQU1QKDApOwogCURhdGVBRFQJCXJlc3VsdDsKIAotCXJl c3VsdCA9IHRpbWVzdGFtcDJkYXRlX29wdF9vdmVyZmxvdyh0aW1lc3RhbXAsIE5VTEwpOworCWlm IChsaWtlbHkoIWZjaW5mby0+Y29udGV4dCkpCisJCXJlc3VsdCA9IHRpbWVzdGFtcHR6MmRhdGVf b3B0X292ZXJmbG93KHRpbWVzdGFtcCwgTlVMTCk7CisJZWxzZQorCXsKKwkJaW50CQkJb3ZlcmZs b3c7CisJCXJlc3VsdCA9IHRpbWVzdGFtcDJkYXRlX29wdF9vdmVyZmxvdyh0aW1lc3RhbXAsICZv dmVyZmxvdyk7CisKKwkJaWYgKG92ZXJmbG93ICE9IDApCisJCQlQR19SRVRVUk5fTlVMTCgpOwor CX0KIAlQR19SRVRVUk5fREFURUFEVChyZXN1bHQpOwogfQogCkBAIC0yMDg5LDcgKzIwOTgsNyBA QCB0aW1lc3RhbXBfdGltZShQR19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fTlVMTCgpOwog CiAJaWYgKHRpbWVzdGFtcDJ0bSh0aW1lc3RhbXAsIE5VTEwsIHRtLCAmZnNlYywgTlVMTCwgTlVM TCkgIT0gMCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChE YXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEVUSU1FX1ZBTFVFX09VVF9PRl9SQU5H RSksCiAJCQkJIGVycm1zZygidGltZXN0YW1wIG91dCBvZiByYW5nZSIpKSk7CiAKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC90aW1lc3RhbXAuYwppbmRleCAxMTZlM2VmMjhmYy4uN2E1N2FjM2VhZjYgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvdGltZXN0YW1wLmMKQEAgLTM1Miw3ICszNTIsOCBAQCB0aW1lc3RhbXBfc2NhbGUo UEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IHRpbWVzdGFtcDsKIAotCUFkanVzdFRpbWVz dGFtcEZvclR5cG1vZCgmcmVzdWx0LCB0eXBtb2QsIE5VTEwpOworCWlmICghQWRqdXN0VGltZXN0 YW1wRm9yVHlwbW9kKCZyZXN1bHQsIHR5cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJUEdfUkVU VVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9USU1FU1RBTVAocmVzdWx0KTsKIH0KQEAgLTY0MzAs NyArNjQzMSwxOSBAQCB0aW1lc3RhbXBfdGltZXN0YW1wdHooUEdfRlVOQ1RJT05fQVJHUykKIHsK IAlUaW1lc3RhbXAJdGltZXN0YW1wID0gUEdfR0VUQVJHX1RJTUVTVEFNUCgwKTsKIAotCVBHX1JF VFVSTl9USU1FU1RBTVBUWih0aW1lc3RhbXAydGltZXN0YW1wdHoodGltZXN0YW1wKSk7CisJaWYg KGxpa2VseSghZmNpbmZvLT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX1RJTUVTVEFNUFRaKHRpbWVz dGFtcDJ0aW1lc3RhbXB0eih0aW1lc3RhbXApKTsKKwllbHNlCisJeworCQlUaW1lc3RhbXBUeiBy ZXN1bHQ7CisJCWludAkJCW92ZXJmbG93OworCisJCXJlc3VsdCA9IHRpbWVzdGFtcDJ0aW1lc3Rh bXB0el9vcHRfb3ZlcmZsb3codGltZXN0YW1wLCAmb3ZlcmZsb3cpOworCQlpZiAob3ZlcmZsb3cg IT0gMCkKKwkJCVBHX1JFVFVSTl9OVUxMKCk7CisJCWVsc2UKKwkJCVBHX1JFVFVSTl9USU1FU1RB TVBUWihyZXN1bHQpOworCX0KIH0KIAogLyoKLS0gCjIuMzQuMQoK --0000000000005a66d6064348f03b Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0018-error-safe-for-casting-geometry-data-type.patch" Content-Disposition: attachment; filename="v10-0018-error-safe-for-casting-geometry-data-type.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhtzolcp2 RnJvbSBjNzg0YzBiMWVmOWIxMWE3MmM2ZTM3MmNhM2JkYTc1MGI4MTdhY2U2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMzEgT2N0IDIwMjUgMDg6MzI6MzIgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MCAxOC8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBnZW9tZXRyeSBkYXRhIHR5cGUKCnNlbGVj dCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBlLCBwcC5wcm9zcmMKZnJv bSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbiBwcC5vaWQgPSBwYy5jYXN0ZnVuYwpqb2lu IHBnX3R5cGUgcHQgb24gcHQub2lkID0gY2FzdHNvdXJjZQpqb2luIHBnX3R5cGUgcHQxIG9uIHB0 MS5vaWQgPSBjYXN0dGFyZ2V0CmFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kICBwdC50eXBhcnJheSA8 PiAwCmFuZCBwdC50eXBuYW1lc3BhY2UgPSAncGdfY2F0YWxvZyc6OnJlZ25hbWVzcGFjZQphbmQg cHQxLnR5cG5hbWVzcGFjZSA9ICdwZ19jYXRhbG9nJzo6cmVnbmFtZXNwYWNlCmFuZCAocHQudHlw Y2F0ZWdvcnkgID0gJ0cnIG9yIHB0MS50eXBjYXRlZ29yeSAgPSAnRycpCm9yZGVyIGJ5IGNhc3Rz b3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8IGNhc3R0 YXJnZXQgfCAgICBwcm9zcmMKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0KIHBvaW50ICAgICAgfCBib3ggICAgICAgIHwgcG9pbnRfYm94CiBsc2VnICAgICAgIHwgcG9p bnQgICAgICB8IGxzZWdfY2VudGVyCiBwYXRoICAgICAgIHwgcG9seWdvbiAgICB8IHBhdGhfcG9s eQogYm94ICAgICAgICB8IHBvaW50ICAgICAgfCBib3hfY2VudGVyCiBib3ggICAgICAgIHwgbHNl ZyAgICAgICB8IGJveF9kaWFnb25hbAogYm94ICAgICAgICB8IHBvbHlnb24gICAgfCBib3hfcG9s eQogYm94ICAgICAgICB8IGNpcmNsZSAgICAgfCBib3hfY2lyY2xlCiBwb2x5Z29uICAgIHwgcG9p bnQgICAgICB8IHBvbHlfY2VudGVyCiBwb2x5Z29uICAgIHwgcGF0aCAgICAgICB8IHBvbHlfcGF0 aAogcG9seWdvbiAgICB8IGJveCAgICAgICAgfCBwb2x5X2JveAogcG9seWdvbiAgICB8IGNpcmNs ZSAgICAgfCBwb2x5X2NpcmNsZQogY2lyY2xlICAgICB8IHBvaW50ICAgICAgfCBjaXJjbGVfY2Vu dGVyCiBjaXJjbGUgICAgIHwgYm94ICAgICAgICB8IGNpcmNsZV9ib3gKIGNpcmNsZSAgICAgfCBw b2x5Z29uICAgIHwKKDE0IHJvd3MpCgphbHJlYWR5IGVycm9yIHNhZmU6IHBvaW50X2JveCwgYm94 X2RpYWdvbmFsLCBib3hfcG9seSwgcG9seV9wYXRoLCBwb2x5X2JveCwgY2lyY2xlX2NlbnRlcgph bG1vc3QgZXJyb3Igc2FmZTogcGF0aF9wb2x5CmNhbiBub3QgZXJyb3Igc2FmZTogY2FzdCBjaXJj bGUgdG8gcG9seWdvbiwgYmVjYXVzZSBpdCdzIGEgU1FMIGZ1bmN0aW9uCgpkaXNjdXNzaW9uOiBo dHRwczovL3Bvc3Rnci5lcy9tL0NBQ0p1ZnhIQ016ckhPVz13UmU4TDMwck1oQjNzandBdjFMRTky OEZhN3N4TXUxVHgtZ0BtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9zcGdp c3Qvc3BncHJvYy5jIHwgICAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYyAgICAg ICB8ICAgOCArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19vcHMuYyAgICAgfCAyMzggKysr KysrKysrKysrKysrKysrKysrKysrLS0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19zcGdp c3QuYyAgfCAgIDIgKy0KIHNyYy9pbmNsdWRlL3V0aWxzL2Zsb2F0LmggICAgICAgICAgIHwgMTA3 ICsrKysrKysrKysrKysKIHNyYy9pbmNsdWRlL3V0aWxzL2dlb19kZWNscy5oICAgICAgIHwgICA0 ICstCiA2IGZpbGVzIGNoYW5nZWQsIDMyMyBpbnNlcnRpb25zKCspLCAzOCBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3Byb2MuYyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BncHJvYy5jCmluZGV4IDY2MDAwOTI5MWRhLi5iM2UwZmJj NTliYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGdwcm9jLmMKKysr IGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGdwcm9jLmMKQEAgLTUxLDcgKzUxLDcgQEAg cG9pbnRfYm94X2Rpc3RhbmNlKFBvaW50ICpwb2ludCwgQk9YICpib3gpCiAJZWxzZQogCQlkeSA9 IDAuMDsKIAotCXJldHVybiBIWVBPVChkeCwgZHkpOworCXJldHVybiBIWVBPVChkeCwgZHksIE5V TEwpOwogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwppbmRleCA2NzQ3NTQ0YjY3OS4uMDZiMmI2 YWUyOTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCkBAIC03NzIsNyArNzcyLDcgQEAgZmxvYXQ4cGwo UEdfRlVOQ1RJT05fQVJHUykKIAlmbG9hdDgJCWFyZzEgPSBQR19HRVRBUkdfRkxPQVQ4KDApOwog CWZsb2F0OAkJYXJnMiA9IFBHX0dFVEFSR19GTE9BVDgoMSk7CiAKLQlQR19SRVRVUk5fRkxPQVQ4 KGZsb2F0OF9wbChhcmcxLCBhcmcyKSk7CisJUEdfUkVUVVJOX0ZMT0FUOChmbG9hdDhfcGxfc2Fm ZShhcmcxLCBhcmcyLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KIAogRGF0dW0KQEAgLTc4MSw3ICs3 ODEsNyBAQCBmbG9hdDhtaShQR19GVU5DVElPTl9BUkdTKQogCWZsb2F0OAkJYXJnMSA9IFBHX0dF VEFSR19GTE9BVDgoMCk7CiAJZmxvYXQ4CQlhcmcyID0gUEdfR0VUQVJHX0ZMT0FUOCgxKTsKIAot CVBHX1JFVFVSTl9GTE9BVDgoZmxvYXQ4X21pKGFyZzEsIGFyZzIpKTsKKwlQR19SRVRVUk5fRkxP QVQ4KGZsb2F0OF9taV9zYWZlKGFyZzEsIGFyZzIsIGZjaW5mby0+Y29udGV4dCkpOwogfQogCiBE YXR1bQpAQCAtNzkwLDcgKzc5MCw3IEBAIGZsb2F0OG11bChQR19GVU5DVElPTl9BUkdTKQogCWZs b2F0OAkJYXJnMSA9IFBHX0dFVEFSR19GTE9BVDgoMCk7CiAJZmxvYXQ4CQlhcmcyID0gUEdfR0VU QVJHX0ZMT0FUOCgxKTsKIAotCVBHX1JFVFVSTl9GTE9BVDgoZmxvYXQ4X211bChhcmcxLCBhcmcy KSk7CisJUEdfUkVUVVJOX0ZMT0FUOChmbG9hdDhfbXVsX3NhZmUoYXJnMSwgYXJnMiwgZmNpbmZv LT5jb250ZXh0KSk7CiB9CiAKIERhdHVtCkBAIC03OTksNyArNzk5LDcgQEAgZmxvYXQ4ZGl2KFBH X0ZVTkNUSU9OX0FSR1MpCiAJZmxvYXQ4CQlhcmcxID0gUEdfR0VUQVJHX0ZMT0FUOCgwKTsKIAlm bG9hdDgJCWFyZzIgPSBQR19HRVRBUkdfRkxPQVQ4KDEpOwogCi0JUEdfUkVUVVJOX0ZMT0FUOChm bG9hdDhfZGl2KGFyZzEsIGFyZzIpKTsKKwlQR19SRVRVUk5fRkxPQVQ4KGZsb2F0OF9kaXZfc2Fm ZShhcmcxLCBhcmcyLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KIAogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19v cHMuYwppbmRleCAzNzdhMWIzZjNhZC4uYmQwMzE4MDU4NTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9nZW9fb3BzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19v cHMuYwpAQCAtNzgsMTEgKzc4LDE0IEBAIGVudW0gcGF0aF9kZWxpbQogLyogUm91dGluZXMgZm9y IHBvaW50cyAqLwogc3RhdGljIGlubGluZSB2b2lkIHBvaW50X2NvbnN0cnVjdChQb2ludCAqcmVz dWx0LCBmbG9hdDggeCwgZmxvYXQ4IHkpOwogc3RhdGljIGlubGluZSB2b2lkIHBvaW50X2FkZF9w b2ludChQb2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKK3N0YXRpYyBpbmxp bmUgYm9vbCBwb2ludF9hZGRfcG9pbnRfc2FmZShQb2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQ b2ludCAqcHQyLAorCQkJCQkJCQkJCU5vZGUgKmVzY29udGV4dCk7CiBzdGF0aWMgaW5saW5lIHZv aWQgcG9pbnRfc3ViX3BvaW50KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIp Owogc3RhdGljIGlubGluZSB2b2lkIHBvaW50X211bF9wb2ludChQb2ludCAqcmVzdWx0LCBQb2lu dCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyBpbmxpbmUgdm9pZCBwb2ludF9kaXZfcG9pbnQo UG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMgaW5saW5lIGJv b2wgcG9pbnRfZXFfcG9pbnQoUG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMgaW5saW5l IGZsb2F0OCBwb2ludF9kdChQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKK3N0YXRpYyBpbmxpbmUg Ym9vbCBwb2ludF9kdF9zYWZlKFBvaW50ICpwdDEsIFBvaW50ICpwdDIsIE5vZGUgKmVzY29udGV4 dCwgZmxvYXQ4ICpyZXN1bHQpOwogc3RhdGljIGlubGluZSBmbG9hdDggcG9pbnRfc2woUG9pbnQg KnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMgaW50CXBvaW50X2luc2lkZShQb2ludCAqcCwgaW50 IG5wdHMsIFBvaW50ICpwbGlzdCk7CiAKQEAgLTEwOSw2ICsxMTIsNyBAQCBzdGF0aWMgZmxvYXQ4 IGxzZWdfY2xvc2VwdF9sc2VnKFBvaW50ICpyZXN1bHQsIExTRUcgKm9uX2xzZWcsIExTRUcgKnRv X2xzZWcpOwogLyogUm91dGluZXMgZm9yIGJveGVzICovCiBzdGF0aWMgaW5saW5lIHZvaWQgYm94 X2NvbnN0cnVjdChCT1ggKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMg dm9pZCBib3hfY24oUG9pbnQgKmNlbnRlciwgQk9YICpib3gpOworc3RhdGljIGJvb2wgYm94X2Nu X3NhZmUoUG9pbnQgKmNlbnRlciwgQk9YICpib3gsIE5vZGUqIGVzY29udGV4dCk7CiBzdGF0aWMg Ym9vbCBib3hfb3YoQk9YICpib3gxLCBCT1ggKmJveDIpOwogc3RhdGljIGZsb2F0OCBib3hfYXIo Qk9YICpib3gpOwogc3RhdGljIGZsb2F0OCBib3hfaHQoQk9YICpib3gpOwpAQCAtMTI1LDcgKzEy OSw3IEBAIHN0YXRpYyBmbG9hdDggY2lyY2xlX2FyKENJUkNMRSAqY2lyY2xlKTsKIAogLyogUm91 dGluZXMgZm9yIHBvbHlnb25zICovCiBzdGF0aWMgdm9pZCBtYWtlX2JvdW5kX2JveChQT0xZR09O ICpwb2x5KTsKLXN0YXRpYyB2b2lkIHBvbHlfdG9fY2lyY2xlKENJUkNMRSAqcmVzdWx0LCBQT0xZ R09OICpwb2x5KTsKK3N0YXRpYyBib29sIHBvbHlfdG9fY2lyY2xlX3NhZmUoQ0lSQ0xFICpyZXN1 bHQsIFBPTFlHT04gKnBvbHksIE5vZGUgKmVzY29udGV4dCk7CiBzdGF0aWMgYm9vbCBsc2VnX2lu c2lkZV9wb2x5KFBvaW50ICphLCBQb2ludCAqYiwgUE9MWUdPTiAqcG9seSwgaW50IHN0YXJ0KTsK IHN0YXRpYyBib29sIHBvbHlfY29udGFpbl9wb2x5KFBPTFlHT04gKmNvbnRhaW5zX3BvbHksIFBP TFlHT04gKmNvbnRhaW5lZF9wb2x5KTsKIHN0YXRpYyBib29sIHBsaXN0X3NhbWUoaW50IG5wdHMs IFBvaW50ICpwMSwgUG9pbnQgKnAyKTsKQEAgLTg1MSw3ICs4NTUsOCBAQCBib3hfY2VudGVyKFBH X0ZVTkNUSU9OX0FSR1MpCiAJQk9YCQkgICAqYm94ID0gUEdfR0VUQVJHX0JPWF9QKDApOwogCVBv aW50CSAgICpyZXN1bHQgPSAoUG9pbnQgKikgcGFsbG9jKHNpemVvZihQb2ludCkpOwogCi0JYm94 X2NuKHJlc3VsdCwgYm94KTsKKwlpZiAoIWJveF9jbl9zYWZlKHJlc3VsdCwgYm94LCBmY2luZm8t PmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJUEdfUkVUVVJOX1BPSU5UX1AocmVz dWx0KTsKIH0KQEAgLTg3NSw2ICs4ODAsMzEgQEAgYm94X2NuKFBvaW50ICpjZW50ZXIsIEJPWCAq Ym94KQogCWNlbnRlci0+eSA9IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC55LCBib3gt Pmxvdy55KSwgMi4wKTsKIH0KIAorLyogc2FmZSB2ZXJzaW9uIG9mIGJveF9jbiAqLworc3RhdGlj IGJvb2wKK2JveF9jbl9zYWZlKFBvaW50ICpjZW50ZXIsIEJPWCAqYm94LCBOb2RlKiBlc2NvbnRl eHQpCit7CisJZmxvYXQ4CQl4OworCWZsb2F0OAkJeTsKKworCXggPSBmbG9hdDhfcGxfc2FmZShi b3gtPmhpZ2gueCwgYm94LT5sb3cueCwgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NV UlJFRChlc2NvbnRleHQpKQorCQlyZXR1cm4gZmFsc2U7CisKKwljZW50ZXItPnggPSBmbG9hdDhf ZGl2X3NhZmUoeCwgMi4wLCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVz Y29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKKworCXkgPSBmbG9hdDhfcGxfc2FmZShib3gtPmhp Z2gueSwgYm94LT5sb3cueSwgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChl c2NvbnRleHQpKQorCQlyZXR1cm4gZmFsc2U7CisKKwljZW50ZXItPnkgPSBmbG9hdDhfZGl2X3Nh ZmUoeSwgMi4wLCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4 dCkpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB0cnVlOworfQogCiAvKgkJYm94X3dkCS0J CXJldHVybnMgdGhlIHdpZHRoIChsZW5ndGgpIG9mIHRoZSBib3gKICAqCQkJCQkJCQkgIChob3Jp em9udGFsIG1hZ25pdHVkZSkuCkBAIC0xMjc2LDcgKzEzMDYsNyBAQCBsaW5lX2Rpc3RhbmNlKFBH X0ZVTkNUSU9OX0FSR1MpCiAKIAlQR19SRVRVUk5fRkxPQVQ4KGZsb2F0OF9kaXYoZmFicyhmbG9h dDhfbWkobDEtPkMsCiAJCQkJCQkJCQkJCSAgIGZsb2F0OF9tdWwocmF0aW8sIGwyLT5DKSkpLAot CQkJCQkJCQlIWVBPVChsMS0+QSwgbDEtPkIpKSk7CisJCQkJCQkJCUhZUE9UKGwxLT5BLCBsMS0+ QiwgTlVMTCkpKTsKIH0KIAogLyogbGluZV9pbnRlcnB0KCkKQEAgLTIwMDEsOSArMjAzMSwzNCBA QCBwb2ludF9kaXN0YW5jZShQR19GVU5DVElPTl9BUkdTKQogc3RhdGljIGlubGluZSBmbG9hdDgK IHBvaW50X2R0KFBvaW50ICpwdDEsIFBvaW50ICpwdDIpCiB7Ci0JcmV0dXJuIEhZUE9UKGZsb2F0 OF9taShwdDEtPngsIHB0Mi0+eCksIGZsb2F0OF9taShwdDEtPnksIHB0Mi0+eSkpOworCXJldHVy biBIWVBPVChmbG9hdDhfbWkocHQxLT54LCBwdDItPngpLCBmbG9hdDhfbWkocHQxLT55LCBwdDIt PnkpLCBOVUxMKTsKIH0KIAorLyogZXJycm9yIHNhZmUgdmVyc2lvbiBvZiBwb2ludF9kdCAqLwor c3RhdGljIGlubGluZSBib29sCitwb2ludF9kdF9zYWZlKFBvaW50ICpwdDEsIFBvaW50ICpwdDIs IE5vZGUgKmVzY29udGV4dCwgZmxvYXQ4ICpyZXN1bHQpCit7CisJZmxvYXQ4CQl4OworCWZsb2F0 OAkJeTsKKworCUFzc2VydChyZXN1bHQgIT0gTlVMTCk7CisKKwl4ID0gZmxvYXQ4X21pX3NhZmUo cHQxLT54LCBwdDItPngsIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNj b250ZXh0KSkKKwkJcmV0dXJuIGZhbHNlOworCisJeSAgPSBmbG9hdDhfbWlfc2FmZShwdDEtPnks IHB0Mi0+eSwgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQp KQorCQlyZXR1cm4gZmFsc2U7CisKKwkqcmVzdWx0ID0gSFlQT1QoeCwgeSwgZXNjb250ZXh0KTsK KwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQlyZXR1cm4gZmFsc2U7CisK KwlyZXR1cm4gdHJ1ZTsKK30KKworCiBEYXR1bQogcG9pbnRfc2xvcGUoUEdfRlVOQ1RJT05fQVJH UykKIHsKQEAgLTIzMTcsMTMgKzIzNzIsMzEgQEAgbHNlZ19jZW50ZXIoUEdfRlVOQ1RJT05fQVJH UykKIHsKIAlMU0VHCSAgICpsc2VnID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsKIAlQb2ludAkgICAq cmVzdWx0OworCWZsb2F0OAkJeDsKKwlmbG9hdDgJCXk7CiAKIAlyZXN1bHQgPSAoUG9pbnQgKikg cGFsbG9jKHNpemVvZihQb2ludCkpOwogCi0JcmVzdWx0LT54ID0gZmxvYXQ4X2RpdihmbG9hdDhf cGwobHNlZy0+cFswXS54LCBsc2VnLT5wWzFdLngpLCAyLjApOwotCXJlc3VsdC0+eSA9IGZsb2F0 OF9kaXYoZmxvYXQ4X3BsKGxzZWctPnBbMF0ueSwgbHNlZy0+cFsxXS55KSwgMi4wKTsKKwl4ID0g ZmxvYXQ4X3BsX3NhZmUobHNlZy0+cFswXS54LCBsc2VnLT5wWzFdLngsIGZjaW5mby0+Y29udGV4 dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBm YWlsOworCisJcmVzdWx0LT54ID0gZmxvYXQ4X2Rpdl9zYWZlKHgsIDIuMCwgZmNpbmZvLT5jb250 ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3Rv IGZhaWw7CisKKwl5ID0gZmxvYXQ4X3BsX3NhZmUobHNlZy0+cFswXS55LCBsc2VnLT5wWzFdLnks IGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250 ZXh0KSkKKwkJZ290byBmYWlsOworCisJcmVzdWx0LT55ID0gZmxvYXQ4X2Rpdl9zYWZlKHksIDIu MCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNv bnRleHQpKQorCQlnb3RvIGZhaWw7CiAKIAlQR19SRVRVUk5fUE9JTlRfUChyZXN1bHQpOworCitm YWlsOgorCVBHX1JFVFVSTl9OVUxMKCk7CiB9CiAKIApAQCAtNDExNSw2ICs0MTg4LDI3IEBAIHBv aW50X2FkZF9wb2ludChQb2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKQogCQkJ CQlmbG9hdDhfcGwocHQxLT55LCBwdDItPnkpKTsKIH0KIAorLyogZXJyb3Igc2FmZSB2ZXJzaW9u IG9mIHBvaW50X2FkZF9wb2ludCAqLworc3RhdGljIGlubGluZSBib29sCitwb2ludF9hZGRfcG9p bnRfc2FmZShQb2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyLAorCQkJCQkgTm9k ZSAqZXNjb250ZXh0KQoreworCWZsb2F0OAkJeDsKKwlmbG9hdDgJCXk7CisKKwl4ID0gZmxvYXQ4 X3BsX3NhZmUocHQxLT54LCBwdDItPngsIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0ND VVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuIGZhbHNlOworCisJeSA9IGZsb2F0OF9wbF9zYWZl KHB0MS0+eSwgcHQyLT55LCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVz Y29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKKworCXBvaW50X2NvbnN0cnVjdChyZXN1bHQsIHgs IHkpOworCisJcmV0dXJuIHRydWU7Cit9CisKIERhdHVtCiBwb2ludF9hZGQoUEdfRlVOQ1RJT05f QVJHUykKIHsKQEAgLTQ0NTgsMTAgKzQ1NTIsMTQgQEAgcGF0aF9wb2x5KFBHX0ZVTkNUSU9OX0FS R1MpCiAKIAkvKiBUaGlzIGlzIG5vdCB2ZXJ5IGNvbnNpc3RlbnQgLS0tIG90aGVyIHNpbWlsYXIg Y2FzZXMgcmV0dXJuIE5VTEwgLi4uICovCiAJaWYgKCFwYXRoLT5jbG9zZWQpCi0JCWVyZXBvcnQo RVJST1IsCisJeworCQllcnJzYXZlKGZjaW5mby0+Y29udGV4dCwKIAkJCQkoZXJyY29kZShFUlJD T0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJCQkgZXJybXNnKCJvcGVuIHBhdGggY2Fu bm90IGJlIGNvbnZlcnRlZCB0byBwb2x5Z29uIikpKTsKIAorCQlQR19SRVRVUk5fTlVMTCgpOwor CX0KKwogCS8qCiAJICogTmV2ZXIgb3ZlcmZsb3dzOiB0aGUgb2xkIHNpemUgZml0IGluIE1heEFs bG9jU2l6ZSwgYW5kIHRoZSBuZXcgc2l6ZSBpcwogCSAqIGp1c3QgYSBzbWFsbCBjb25zdGFudCBs YXJnZXIuCkBAIC00NTA4LDcgKzQ2MDYsOSBAQCBwb2x5X2NlbnRlcihQR19GVU5DVElPTl9BUkdT KQogCiAJcmVzdWx0ID0gKFBvaW50ICopIHBhbGxvYyhzaXplb2YoUG9pbnQpKTsKIAotCXBvbHlf dG9fY2lyY2xlKCZjaXJjbGUsIHBvbHkpOworCWlmICghcG9seV90b19jaXJjbGVfc2FmZSgmY2ly Y2xlLCBwb2x5LCBmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOworCiAJKnJl c3VsdCA9IGNpcmNsZS5jZW50ZXI7CiAKIAlQR19SRVRVUk5fUE9JTlRfUChyZXN1bHQpOwpAQCAt NTAwNSw3ICs1MTA1LDcgQEAgY2lyY2xlX211bF9wdChQR19GVU5DVElPTl9BUkdTKQogCXJlc3Vs dCA9IChDSVJDTEUgKikgcGFsbG9jKHNpemVvZihDSVJDTEUpKTsKIAogCXBvaW50X211bF9wb2lu dCgmcmVzdWx0LT5jZW50ZXIsICZjaXJjbGUtPmNlbnRlciwgcG9pbnQpOwotCXJlc3VsdC0+cmFk aXVzID0gZmxvYXQ4X211bChjaXJjbGUtPnJhZGl1cywgSFlQT1QocG9pbnQtPngsIHBvaW50LT55 KSk7CisJcmVzdWx0LT5yYWRpdXMgPSBmbG9hdDhfbXVsKGNpcmNsZS0+cmFkaXVzLCBIWVBPVChw b2ludC0+eCwgcG9pbnQtPnksIE5VTEwpKTsKIAogCVBHX1JFVFVSTl9DSVJDTEVfUChyZXN1bHQp OwogfQpAQCAtNTAyMCw3ICs1MTIwLDcgQEAgY2lyY2xlX2Rpdl9wdChQR19GVU5DVElPTl9BUkdT KQogCXJlc3VsdCA9IChDSVJDTEUgKikgcGFsbG9jKHNpemVvZihDSVJDTEUpKTsKIAogCXBvaW50 X2Rpdl9wb2ludCgmcmVzdWx0LT5jZW50ZXIsICZjaXJjbGUtPmNlbnRlciwgcG9pbnQpOwotCXJl c3VsdC0+cmFkaXVzID0gZmxvYXQ4X2RpdihjaXJjbGUtPnJhZGl1cywgSFlQT1QocG9pbnQtPngs IHBvaW50LT55KSk7CisJcmVzdWx0LT5yYWRpdXMgPSBmbG9hdDhfZGl2KGNpcmNsZS0+cmFkaXVz LCBIWVBPVChwb2ludC0+eCwgcG9pbnQtPnksIE5VTEwpKTsKIAogCVBHX1JFVFVSTl9DSVJDTEVf UChyZXN1bHQpOwogfQpAQCAtNTE5MSwxNCArNTI5MSwzMCBAQCBjaXJjbGVfYm94KFBHX0ZVTkNU SU9OX0FSR1MpCiAKIAlib3ggPSAoQk9YICopIHBhbGxvYyhzaXplb2YoQk9YKSk7CiAKLQlkZWx0 YSA9IGZsb2F0OF9kaXYoY2lyY2xlLT5yYWRpdXMsIHNxcnQoMi4wKSk7CisJZGVsdGEgPSBmbG9h dDhfZGl2X3NhZmUoY2lyY2xlLT5yYWRpdXMsIHNxcnQoMi4wKSwgZmNpbmZvLT5jb250ZXh0KTsK KwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7 CiAKLQlib3gtPmhpZ2gueCA9IGZsb2F0OF9wbChjaXJjbGUtPmNlbnRlci54LCBkZWx0YSk7Ci0J Ym94LT5sb3cueCA9IGZsb2F0OF9taShjaXJjbGUtPmNlbnRlci54LCBkZWx0YSk7Ci0JYm94LT5o aWdoLnkgPSBmbG9hdDhfcGwoY2lyY2xlLT5jZW50ZXIueSwgZGVsdGEpOwotCWJveC0+bG93Lnkg PSBmbG9hdDhfbWkoY2lyY2xlLT5jZW50ZXIueSwgZGVsdGEpOworCWJveC0+aGlnaC54ID0gZmxv YXQ4X3BsX3NhZmUoY2lyY2xlLT5jZW50ZXIueCwgZGVsdGEsIGZjaW5mby0+Y29udGV4dCk7CisJ aWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOwor CisJYm94LT5sb3cueCA9IGZsb2F0OF9taV9zYWZlKGNpcmNsZS0+Y2VudGVyLngsIGRlbHRhLCBm Y2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4 dCkpCisJCWdvdG8gZmFpbDsKKworCWJveC0+aGlnaC55ID0gZmxvYXQ4X3BsX3NhZmUoY2lyY2xl LT5jZW50ZXIueSwgZGVsdGEsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0ND VVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOworCisJYm94LT5sb3cueSA9IGZs b2F0OF9taV9zYWZlKGNpcmNsZS0+Y2VudGVyLnksIGRlbHRhLCBmY2luZm8tPmNvbnRleHQpOwor CWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsK IAogCVBHX1JFVFVSTl9CT1hfUChib3gpOworCitmYWlsOgorCVBHX1JFVFVSTl9OVUxMKCk7CiB9 CiAKIC8qIGJveF9jaXJjbGUoKQpAQCAtNTIwOSwxNSArNTMyNSwzNSBAQCBib3hfY2lyY2xlKFBH X0ZVTkNUSU9OX0FSR1MpCiB7CiAJQk9YCQkgICAqYm94ID0gUEdfR0VUQVJHX0JPWF9QKDApOwog CUNJUkNMRQkgICAqY2lyY2xlOworCWZsb2F0OAkJeDsKKwlmbG9hdDgJCXk7CiAKIAljaXJjbGUg PSAoQ0lSQ0xFICopIHBhbGxvYyhzaXplb2YoQ0lSQ0xFKSk7CiAKLQljaXJjbGUtPmNlbnRlci54 ID0gZmxvYXQ4X2RpdihmbG9hdDhfcGwoYm94LT5oaWdoLngsIGJveC0+bG93LngpLCAyLjApOwot CWNpcmNsZS0+Y2VudGVyLnkgPSBmbG9hdDhfZGl2KGZsb2F0OF9wbChib3gtPmhpZ2gueSwgYm94 LT5sb3cueSksIDIuMCk7CisJeCA9IGZsb2F0OF9wbF9zYWZlKGJveC0+aGlnaC54LCBib3gtPmxv dy54LCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+ Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKIAotCWNpcmNsZS0+cmFkaXVzID0gcG9pbnRfZHQoJmNp cmNsZS0+Y2VudGVyLCAmYm94LT5oaWdoKTsKKwljaXJjbGUtPmNlbnRlci54ID0gZmxvYXQ4X2Rp dl9zYWZlKHgsIDIuMCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJF RChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwl5ID0gZmxvYXQ4X3BsX3NhZmUo Ym94LT5oaWdoLnksIGJveC0+bG93LnksIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJS T1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOworCisJY2lyY2xlLT5j ZW50ZXIueSA9IGZsb2F0OF9kaXZfc2FmZSh5LCAyLjAsIGZjaW5mby0+Y29udGV4dCk7CisJaWYg KFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOworCisJ aWYgKCFwb2ludF9kdF9zYWZlKCZjaXJjbGUtPmNlbnRlciwgJmJveC0+aGlnaCwgZmNpbmZvLT5j b250ZXh0LAorCQkJCQkgICAmY2lyY2xlLT5yYWRpdXMpKQorCQlnb3RvIGZhaWw7CiAKIAlQR19S RVRVUk5fQ0lSQ0xFX1AoY2lyY2xlKTsKKworZmFpbDoKKwlQR19SRVRVUk5fTlVMTCgpOwogfQog CiAKQEAgLTUyODEsMTAgKzU0MTcsMTEgQEAgY2lyY2xlX3BvbHkoUEdfRlVOQ1RJT05fQVJHUykK ICAqIFhYWCBUaGlzIGFsZ29yaXRobSBzaG91bGQgdXNlIHdlaWdodGVkIG1lYW5zIG9mIGxpbmUg c2VnbWVudHMKICAqCXJhdGhlciB0aGFuIHN0cmFpZ2h0IGF2ZXJhZ2UgdmFsdWVzIG9mIHBvaW50 cyAtIHRnbCA5Ny8wMS8yMS4KICAqLwotc3RhdGljIHZvaWQKLXBvbHlfdG9fY2lyY2xlKENJUkNM RSAqcmVzdWx0LCBQT0xZR09OICpwb2x5KQorc3RhdGljIGJvb2wKK3BvbHlfdG9fY2lyY2xlX3Nh ZmUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHksIE5vZGUgKmVzY29udGV4dCkKIHsKIAlp bnQJCQlpOworCWZsb2F0OAkJeDsKIAogCUFzc2VydChwb2x5LT5ucHRzID4gMCk7CiAKQEAgLTUy OTMsMTQgKzU0MzAsNDEgQEAgcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04g KnBvbHkpCiAJcmVzdWx0LT5yYWRpdXMgPSAwOwogCiAJZm9yIChpID0gMDsgaSA8IHBvbHktPm5w dHM7IGkrKykKLQkJcG9pbnRfYWRkX3BvaW50KCZyZXN1bHQtPmNlbnRlciwgJnJlc3VsdC0+Y2Vu dGVyLCAmcG9seS0+cFtpXSk7Ci0JcmVzdWx0LT5jZW50ZXIueCA9IGZsb2F0OF9kaXYocmVzdWx0 LT5jZW50ZXIueCwgcG9seS0+bnB0cyk7Ci0JcmVzdWx0LT5jZW50ZXIueSA9IGZsb2F0OF9kaXYo cmVzdWx0LT5jZW50ZXIueSwgcG9seS0+bnB0cyk7CisJeworCQlpZiAoIXBvaW50X2FkZF9wb2lu dF9zYWZlKCZyZXN1bHQtPmNlbnRlciwKKwkJCQkJCQkJICAmcmVzdWx0LT5jZW50ZXIsCisJCQkJ CQkJCSAgJnBvbHktPnBbaV0sCisJCQkJCQkJCSAgZXNjb250ZXh0KSkKKwkJCXJldHVybiBmYWxz ZTsKKwl9CisKKwlyZXN1bHQtPmNlbnRlci54ID0gZmxvYXQ4X2Rpdl9zYWZlKHJlc3VsdC0+Y2Vu dGVyLngsCisJCQkJCQkJCQkgICBwb2x5LT5ucHRzLAorCQkJCQkJCQkJICAgZXNjb250ZXh0KTsK KwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQlyZXR1cm4gZmFsc2U7CisK KwlyZXN1bHQtPmNlbnRlci55ID0gZmxvYXQ4X2Rpdl9zYWZlKHJlc3VsdC0+Y2VudGVyLnksCisJ CQkJCQkJCQkgICBwb2x5LT5ucHRzLAorCQkJCQkJCQkJICAgZXNjb250ZXh0KTsKKwlpZiAoU09G VF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQlyZXR1cm4gZmFsc2U7CiAKIAlmb3IgKGkg PSAwOyBpIDwgcG9seS0+bnB0czsgaSsrKQotCQlyZXN1bHQtPnJhZGl1cyA9IGZsb2F0OF9wbChy ZXN1bHQtPnJhZGl1cywKLQkJCQkJCQkJICAgcG9pbnRfZHQoJnBvbHktPnBbaV0sICZyZXN1bHQt PmNlbnRlcikpOwotCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X2RpdihyZXN1bHQtPnJhZGl1cywg cG9seS0+bnB0cyk7CisJeworCQlpZiAoIXBvaW50X2R0X3NhZmUoJnBvbHktPnBbaV0sICZyZXN1 bHQtPmNlbnRlciwgZXNjb250ZXh0LCAmeCkpCisJCQlyZXR1cm4gZmFsc2U7CisKKwkJcmVzdWx0 LT5yYWRpdXMgPSBmbG9hdDhfcGxfc2FmZShyZXN1bHQtPnJhZGl1cywgeCwgZXNjb250ZXh0KTsK KwkJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJCXJldHVybiBmYWxzZTsK Kwl9CisKKwlyZXN1bHQtPnJhZGl1cyA9IGZsb2F0OF9kaXZfc2FmZShyZXN1bHQtPnJhZGl1cywg cG9seS0+bnB0cywgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRl eHQpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4gdHJ1ZTsKIH0KIAogRGF0dW0KQEAgLTUz MTEsNyArNTQ3NSw4IEBAIHBvbHlfY2lyY2xlKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQg PSAoQ0lSQ0xFICopIHBhbGxvYyhzaXplb2YoQ0lSQ0xFKSk7CiAKLQlwb2x5X3RvX2NpcmNsZShy ZXN1bHQsIHBvbHkpOworCWlmICghcG9seV90b19jaXJjbGVfc2FmZShyZXN1bHQsIHBvbHksIGZj aW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fQ0lSQ0xF X1AocmVzdWx0KTsKIH0KQEAgLTU1MTYsNyArNTY4MSw3IEBAIHBsaXN0X3NhbWUoaW50IG5wdHMs IFBvaW50ICpwMSwgUG9pbnQgKnAyKQogICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICovCiBmbG9hdDgKLXBn X2h5cG90KGZsb2F0OCB4LCBmbG9hdDggeSkKK3BnX2h5cG90KGZsb2F0OCB4LCBmbG9hdDggeSwg Tm9kZSAqZXNjb250ZXh0KQogewogCWZsb2F0OAkJeXgsCiAJCQkJcmVzdWx0OwpAQCAtNTU1NCw5 ICs1NzE5LDIyIEBAIHBnX2h5cG90KGZsb2F0OCB4LCBmbG9hdDggeSkKIAlyZXN1bHQgPSB4ICog c3FydCgxLjAgKyAoeXggKiB5eCkpOwogCiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQot CQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCXsKKwkJZXJyc2F2ZShlc2NvbnRleHQsCisJCQll cnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAorCQkJZXJybXNnKCJ2 YWx1ZSBvdXQgb2YgcmFuZ2U6IG92ZXJmbG93IikpOworCisJCXJlc3VsdCA9IDAuMDsKKwl9CisK IAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkpCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigp OworCXsKKwkJZXJyc2F2ZShlc2NvbnRleHQsCisJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNf VkFMVUVfT1VUX09GX1JBTkdFKSwKKwkJCQllcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTogdW5k ZXJmbG93IikpOworCisJCXJlc3VsdCA9IDAuMDsKKwl9CiAKIAlyZXR1cm4gcmVzdWx0OwogfQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19zcGdpc3QuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9nZW9fc3BnaXN0LmMKaW5kZXggZmVjMzNlOTUzNzIuLmZmZmZkM2NkMmRl IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX3NwZ2lzdC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fc3BnaXN0LmMKQEAgLTM5MCw3ICszOTAsNyBAQCBwb2lu dFRvUmVjdEJveERpc3RhbmNlKFBvaW50ICpwb2ludCwgUmVjdEJveCAqcmVjdF9ib3gpCiAJZWxz ZQogCQlkeSA9IDA7CiAKLQlyZXR1cm4gSFlQT1QoZHgsIGR5KTsKKwlyZXR1cm4gSFlQT1QoZHgs IGR5LCBOVUxMKTsKIH0KIAogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5o IGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaAppbmRleCBmYzJhOWNmNjQ3NS4uNWE3MDMzZjJh NjAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2Zsb2F0LmgKKysrIGIvc3JjL2luY2x1 ZGUvdXRpbHMvZmxvYXQuaApAQCAtMTA5LDYgKzEwOSwyNCBAQCBmbG9hdDRfcGwoY29uc3QgZmxv YXQ0IHZhbDEsIGNvbnN0IGZsb2F0NCB2YWwyKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qIGVy cm9yIHNhZmUgdmVyc2lvbiBvZiBmbG9hdDhfcGwgKi8KK3N0YXRpYyBpbmxpbmUgZmxvYXQ4Citm bG9hdDhfcGxfc2FmZShjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIsIHN0cnVj dCBOb2RlICplc2NvbnRleHQpCit7CisJZmxvYXQ4CQlyZXN1bHQ7CisKKwlyZXN1bHQgPSB2YWwx ICsgdmFsMjsKKwlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYm ICFpc2luZih2YWwyKSkKKwl7CisJCWVycnNhdmUoZXNjb250ZXh0LAorCQkJCWVycmNvZGUoRVJS Q09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJCQkJZXJybXNnKCJ2YWx1ZSBvdXQg b2YgcmFuZ2U6IG92ZXJmbG93IikpOworCQlyZXN1bHQgPSAwLjBmOworCX0KKworCXJldHVybiBy ZXN1bHQ7Cit9CisKIHN0YXRpYyBpbmxpbmUgZmxvYXQ4CiBmbG9hdDhfcGwoY29uc3QgZmxvYXQ4 IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyKQogewpAQCAtMTMzLDYgKzE1MSwyNCBAQCBmbG9hdDRf bWkoY29uc3QgZmxvYXQ0IHZhbDEsIGNvbnN0IGZsb2F0NCB2YWwyKQogCXJldHVybiByZXN1bHQ7 CiB9CiAKKy8qIGVycm9yIHNhZmUgdmVyc2lvbiBvZiBmbG9hdDhfbWkgKi8KK3N0YXRpYyBpbmxp bmUgZmxvYXQ4CitmbG9hdDhfbWlfc2FmZShjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4 IHZhbDIsIHN0cnVjdCBOb2RlICplc2NvbnRleHQpCit7CisJZmxvYXQ4CQlyZXN1bHQ7CisKKwly ZXN1bHQgPSB2YWwxIC0gdmFsMjsKKwlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlz aW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKKwl7CisJCWVycnNhdmUoZXNjb250ZXh0LAorCQkJ CWVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJCQkJZXJybXNn KCJ2YWx1ZSBvdXQgb2YgcmFuZ2U6IG92ZXJmbG93IikpOworCQlyZXN1bHQgID0gMC4wZjsKKwl9 CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiBzdGF0aWMgaW5saW5lIGZsb2F0OAogZmxvYXQ4X21p KGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIHsKQEAgLTE1OSw2ICsxOTUs MzYgQEAgZmxvYXQ0X211bChjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIpCiAJ cmV0dXJuIHJlc3VsdDsKIH0KIAorLyogZXJyb3Igc2FmZSB2ZXJzaW9uIG9mIGZsb2F0OF9tdWwg Ki8KK3N0YXRpYyBpbmxpbmUgZmxvYXQ4CitmbG9hdDhfbXVsX3NhZmUoY29uc3QgZmxvYXQ4IHZh bDEsIGNvbnN0IGZsb2F0OCB2YWwyLCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQoreworCWZsb2F0 OAkJcmVzdWx0OworCisJcmVzdWx0ID0gdmFsMSAqIHZhbDI7CisJaWYgKHVubGlrZWx5KGlzaW5m KHJlc3VsdCkpICYmICFpc2luZih2YWwxKSAmJiAhaXNpbmYodmFsMikpCisJeworCQllcnJzYXZl KGVzY29udGV4dCwKKwkJCQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFO R0UpLAorCQkJCWVycm1zZygidmFsdWUgb3V0IG9mIHJhbmdlOiBvdmVyZmxvdyIpKTsKKworCQly ZXN1bHQgPSAwLjA7CisJCXJldHVybiByZXN1bHQ7CisJfQorCisJaWYgKHVubGlrZWx5KHJlc3Vs dCA9PSAwLjApICYmIHZhbDEgIT0gMC4wICYmIHZhbDIgIT0gMC4wKQorCXsKKwkJZXJyc2F2ZShl c2NvbnRleHQsCisJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdF KSwKKwkJCQllcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTogdW5kZXJmbG93IikpOworCisJCXJl c3VsdCA9IDAuMDsKKwkJcmV0dXJuIHJlc3VsdDsKKwl9CisKKwlyZXR1cm4gcmVzdWx0OworfQor CiBzdGF0aWMgaW5saW5lIGZsb2F0OAogZmxvYXQ4X211bChjb25zdCBmbG9hdDggdmFsMSwgY29u c3QgZmxvYXQ4IHZhbDIpCiB7CkBAIC0xODksNiArMjU1LDQ3IEBAIGZsb2F0NF9kaXYoY29uc3Qg ZmxvYXQ0IHZhbDEsIGNvbnN0IGZsb2F0NCB2YWwyKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8q IGVycm9yIHNhZmUgdmVyc2lvbiBvZiBmbG9hdDhfZGl2ICovCitzdGF0aWMgaW5saW5lIGZsb2F0 OAorZmxvYXQ4X2Rpdl9zYWZlKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMiwg c3RydWN0IE5vZGUgKmVzY29udGV4dCkKK3sKKwlmbG9hdDgJCXJlc3VsdDsKKworCWlmICh1bmxp a2VseSh2YWwyID09IDAuMCkgJiYgIWlzbmFuKHZhbDEpKQorCXsKKwkJZXJyc2F2ZShlc2NvbnRl eHQsCisJCQkJZXJyY29kZShFUlJDT0RFX0RJVklTSU9OX0JZX1pFUk8pLAorCQkJCWVycm1zZygi ZGl2aXNpb24gYnkgemVybyIpKTsKKworCQlyZXN1bHQgPSAwLjA7CisJCXJldHVybiByZXN1bHQ7 CisJfQorCisJcmVzdWx0ID0gdmFsMSAvIHZhbDI7CisKKwlpZiAodW5saWtlbHkoaXNpbmYocmVz dWx0KSkgJiYgIWlzaW5mKHZhbDEpKQorCXsKKwkJZXJyc2F2ZShlc2NvbnRleHQsCisJCQkJZXJy Y29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKKwkJCQllcnJtc2coInZh bHVlIG91dCBvZiByYW5nZTogb3ZlcmZsb3ciKSk7CisKKwkJcmVzdWx0ID0gMC4wOworCQlyZXR1 cm4gcmVzdWx0OworCX0KKworCWlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wKSAmJiB2YWwxICE9 IDAuMCAmJiAhaXNpbmYodmFsMikpCisJeworCQllcnJzYXZlKGVzY29udGV4dCwKKwkJCQllcnJj b2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAorCQkJCWVycm1zZygidmFs dWUgb3V0IG9mIHJhbmdlOiB1bmRlcmZsb3ciKSk7CisKKwkJcmVzdWx0ID0gMC4wOworCQlyZXR1 cm4gcmVzdWx0OworCX0KKworCXJldHVybiByZXN1bHQ7Cit9CisKIHN0YXRpYyBpbmxpbmUgZmxv YXQ4CiBmbG9hdDhfZGl2KGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIHsK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL2dlb19kZWNscy5oIGIvc3JjL2luY2x1ZGUv dXRpbHMvZ2VvX2RlY2xzLmgKaW5kZXggOGE5ZGY3NWM5M2MuLjAwNTZhMjY2MzlmIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS91dGlscy9nZW9fZGVjbHMuaAorKysgYi9zcmMvaW5jbHVkZS91dGls cy9nZW9fZGVjbHMuaApAQCAtODgsNyArODgsNyBAQCBGUGdlKGRvdWJsZSBBLCBkb3VibGUgQikK ICNkZWZpbmUgRlBnZShBLEIpCQkJCSgoQSkgPj0gKEIpKQogI2VuZGlmCiAKLSNkZWZpbmUgSFlQ T1QoQSwgQikJCQkJcGdfaHlwb3QoQSwgQikKKyNkZWZpbmUgSFlQT1QoQSwgQiwgZXNjb250ZXh0 KQkJCQlwZ19oeXBvdChBLCBCLCBlc2NvbnRleHQpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQb2lu dCAtICh4LHkpCkBAIC0yODAsNiArMjgwLDYgQEAgQ2lyY2xlUEdldERhdHVtKGNvbnN0IENJUkNM RSAqWCkKICAqIGluIGdlb19vcHMuYwogICovCiAKLWV4dGVybiBmbG9hdDggcGdfaHlwb3QoZmxv YXQ4IHgsIGZsb2F0OCB5KTsKK2V4dGVybiBmbG9hdDggcGdfaHlwb3QoZmxvYXQ4IHgsIGZsb2F0 OCB5LCBOb2RlICplc2NvbnRleHQpOwogCiAjZW5kaWYJCQkJCQkJLyogR0VPX0RFQ0xTX0ggKi8K LS0gCjIuMzQuMQoK --0000000000005a66d6064348f03b Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0019-invent-some-error-safe-functions.patch" Content-Disposition: attachment; filename="v10-0019-invent-some-error-safe-functions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhtzolcn1 RnJvbSA4NzNjMDM1MzY4NjljMWMxYWFlOWRiZDYwMGQwOTIxYzRkM2ZlMmQ1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgOCBOb3YgMjAyNSAxMzowNTozOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEw IDE5LzIwXSBpbnZlbnQgc29tZSBlcnJvciBzYWZlIGZ1bmN0aW9ucwoKc3RyaW5nVHlwZURhdHVt U2FmZTogZXJyb3Igc2FmZSB2ZXJzaW9uIG9mIHN0cmluZ1R5cGVEYXR1bQpldmFsdWF0ZV9leHBy X3NhZmU6IGVycm9yIHNhZmUgdmVyc2lvbiBvZiBldmFsdWF0ZV9leHByCkV4ZWNJbml0RXhwclNh ZmU6IHNvZnQgZXJyb3IgdmFyaWFudCBvZiBFeGVjSW5pdEV4cHIKT2lkSW5wdXRGdW5jdGlvbkNh bGxTYWZlOiBzb2Z0IGVycm9yIHZhcmlhbnQgb2YgT2lkSW5wdXRGdW5jdGlvbkNhbGwKQ29lcmNl VW5rbm93bkNvbnN0U2FmZTogYXR0ZW1wdHMgdG8gY29lcmNlIGFuIFVOS05PV04gQ29uc3QgdG8g dGhlIHRhcmdldCB0eXBlLgpSZXR1cm5zIE5VTEwgaWYgdGhlIGNvZXJjaW9uIGlzIG5vdCBwb3Nz aWJsZS4KCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEt amN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYyAgICAgIHwgNDEgKysrKysrKysrKysrKwogc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jIHwgNjkgKysrKysrKysrKysrKysrKysr KysrCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29lcmNlLmMgICAgfCA5MiArKysrKysrKysr KysrKysrKysrKysrKysrKysrCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdHlwZS5jICAgICAg fCAxNCArKysrKwogc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMgICAgICAgIHwgMTMgKysr Kwogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaCAgICAgIHwgIDEgKwogc3JjL2luY2x1 ZGUvZm1nci5oICAgICAgICAgICAgICAgICAgIHwgIDMgKwogc3JjL2luY2x1ZGUvb3B0aW1pemVy L29wdGltaXplci5oICAgIHwgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2NvZXJjZS5o ICAgIHwgIDQgKysKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV90eXBlLmggICAgICB8ICAyICsK IDEwIGZpbGVzIGNoYW5nZWQsIDI0MSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBy LmMKaW5kZXggZjE1Njk4NzliNTIuLmIzMDJiZTM2ZjczIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjRXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBy LmMKQEAgLTE3MCw2ICsxNzAsNDcgQEAgRXhlY0luaXRFeHByKEV4cHIgKm5vZGUsIFBsYW5TdGF0 ZSAqcGFyZW50KQogCXJldHVybiBzdGF0ZTsKIH0KIAorLyoKKyAqIEV4ZWNJbml0RXhwclNhZmU6 IHNvZnQgZXJyb3IgdmFyaWFudCBvZiBFeGVjSW5pdEV4cHIuCisgKgorICogdXNlIGl0IG9ubHkg Zm9yIGV4cHJlc3Npb24gbm9kZXMgc3VwcG9ydCBzb2Z0IGVycm9ycywgbm90IGFsbCBleHByZXNz aW9uCisgKiBub2RlcyBzdXBwb3J0IGl0LgorKi8KK0V4cHJTdGF0ZSAqCitFeGVjSW5pdEV4cHJT YWZlKEV4cHIgKm5vZGUsIFBsYW5TdGF0ZSAqcGFyZW50KQoreworCUV4cHJTdGF0ZSAgKnN0YXRl OworCUV4cHJFdmFsU3RlcCBzY3JhdGNoID0gezB9OworCisJLyogU3BlY2lhbCBjYXNlOiBOVUxM IGV4cHJlc3Npb24gcHJvZHVjZXMgYSBOVUxMIEV4cHJTdGF0ZSBwb2ludGVyICovCisJaWYgKG5v ZGUgPT0gTlVMTCkKKwkJcmV0dXJuIE5VTEw7CisKKwkvKiBJbml0aWFsaXplIEV4cHJTdGF0ZSB3 aXRoIGVtcHR5IHN0ZXAgbGlzdCAqLworCXN0YXRlID0gbWFrZU5vZGUoRXhwclN0YXRlKTsKKwlz dGF0ZS0+ZXhwciA9IG5vZGU7CisJc3RhdGUtPnBhcmVudCA9IHBhcmVudDsKKwlzdGF0ZS0+ZXh0 X3BhcmFtcyA9IE5VTEw7CisJc3RhdGUtPmVzY29udGV4dCA9IG1ha2VOb2RlKEVycm9yU2F2ZUNv bnRleHQpOworCXN0YXRlLT5lc2NvbnRleHQtPnR5cGUgPSBUX0Vycm9yU2F2ZUNvbnRleHQ7CisJ c3RhdGUtPmVzY29udGV4dC0+ZXJyb3Jfb2NjdXJyZWQgPSBmYWxzZTsKKwlzdGF0ZS0+ZXNjb250 ZXh0LT5kZXRhaWxzX3dhbnRlZCA9IGZhbHNlOworCisJLyogSW5zZXJ0IHNldHVwIHN0ZXBzIGFz IG5lZWRlZCAqLworCUV4ZWNDcmVhdGVFeHByU2V0dXBTdGVwcyhzdGF0ZSwgKE5vZGUgKikgbm9k ZSk7CisKKwkvKiBDb21waWxlIHRoZSBleHByZXNzaW9uIHByb3BlciAqLworCUV4ZWNJbml0RXhw clJlYyhub2RlLCBzdGF0ZSwgJnN0YXRlLT5yZXN2YWx1ZSwgJnN0YXRlLT5yZXNudWxsKTsKKwor CS8qIEZpbmFsbHksIGFwcGVuZCBhIERPTkUgc3RlcCAqLworCXNjcmF0Y2gub3Bjb2RlID0gRUVP UF9ET05FX1JFVFVSTjsKKwlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisKKwlF eGVjUmVhZHlFeHByKHN0YXRlKTsKKworCXJldHVybiBzdGF0ZTsKK30KKwogLyoKICAqIEV4ZWNJ bml0RXhwcldpdGhQYXJhbXM6IHByZXBhcmUgYSBzdGFuZGFsb25lIGV4cHJlc3Npb24gdHJlZSBm b3IgZXhlY3V0aW9uCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwv Y2xhdXNlcy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCmluZGV4IDgx ZDc2OGZmMmEyLi4zZjlmZjQ1NWJhNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVy L3V0aWwvY2xhdXNlcy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMu YwpAQCAtNTE0Nyw2ICs1MTQ3LDc1IEBAIGV2YWx1YXRlX2V4cHIoRXhwciAqZXhwciwgT2lkIHJl c3VsdF90eXBlLCBpbnQzMiByZXN1bHRfdHlwbW9kLAogCQkJCQkJCSAgcmVzdWx0VHlwQnlWYWwp OwogfQogCisvKgorICogZXZhbHVhdGVfZXhwcl9zYWZlOiBlcnJvciBzYWZlIHZlcnNpb24gb2Yg ZXZhbHVhdGVfZXhwcgorICoKKyAqIFdlIHVzZSB0aGUgZXhlY3V0b3IncyByb3V0aW5lIEV4ZWNF dmFsRXhwcigpIHRvIGF2b2lkIGR1cGxpY2F0aW9uIG9mCisgKiBjb2RlIGFuZCBlbnN1cmUgd2Ug Z2V0IHRoZSBzYW1lIHJlc3VsdCBhcyB0aGUgZXhlY3V0b3Igd291bGQgZ2V0LgorICoKKyAqIHJl dHVybiBOVUxMIHdoZW4gZXZhdWxhdGlvbiBmYWlsZWQuIEVuc3VyZSB0aGUgZXhwcmVzc2lvbiBl eHByIGNhbiBiZSBldmF1bGF0ZWQKKyAqIGluIGEgc29mdCBlcnJvciB3YXkuCisgKgorICogU2Vl IGNvbW1lbnRzIG9uIGV2YWx1YXRlX2V4cHIgdG9vLgorICovCitFeHByICoKK2V2YWx1YXRlX2V4 cHJfc2FmZShFeHByICpleHByLCBPaWQgcmVzdWx0X3R5cGUsIGludDMyIHJlc3VsdF90eXBtb2Qs CisJCQkJICAgT2lkIHJlc3VsdF9jb2xsYXRpb24pCit7CisJRVN0YXRlCSAgICplc3RhdGU7CisJ RXhwclN0YXRlICAqZXhwcnN0YXRlOworCU1lbW9yeUNvbnRleHQgb2xkY29udGV4dDsKKwlEYXR1 bQkJY29uc3RfdmFsOworCWJvb2wJCWNvbnN0X2lzX251bGw7CisJaW50MTYJCXJlc3VsdFR5cExl bjsKKwlib29sCQlyZXN1bHRUeXBCeVZhbDsKKworCWVzdGF0ZSA9IENyZWF0ZUV4ZWN1dG9yU3Rh dGUoKTsKKworCS8qIFdlIGNhbiB1c2UgdGhlIGVzdGF0ZSdzIHdvcmtpbmcgY29udGV4dCB0byBh dm9pZCBtZW1vcnkgbGVha3MuICovCisJb2xkY29udGV4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hU byhlc3RhdGUtPmVzX3F1ZXJ5X2N4dCk7CisKKwkvKiBNYWtlIHN1cmUgYW55IG9wZnVuY2lkcyBh cmUgZmlsbGVkIGluLiAqLworCWZpeF9vcGZ1bmNpZHMoKE5vZGUgKikgZXhwcik7CisKKwkvKgor CSAqIFByZXBhcmUgZXhwciBmb3IgZXhlY3V0aW9uLiAgKE5vdGU6IHdlIGNhbid0IHVzZSBFeGVj UHJlcGFyZUV4cHIKKwkgKiBiZWNhdXNlIGl0J2QgcmVzdWx0IGluIHJlY3Vyc2l2ZWx5IGludm9r aW5nIGV2YWxfY29uc3RfZXhwcmVzc2lvbnMuKQorCSAqLworCWV4cHJzdGF0ZSA9IEV4ZWNJbml0 RXhwclNhZmUoZXhwciwgTlVMTCk7CisKKwljb25zdF92YWwgPSBFeGVjRXZhbEV4cHJTd2l0Y2hD b250ZXh0KGV4cHJzdGF0ZSwKKwkJCQkJCQkJCQkgIEdldFBlclR1cGxlRXhwckNvbnRleHQoZXN0 YXRlKSwKKwkJCQkJCQkJCQkgICZjb25zdF9pc19udWxsKTsKKworCS8qIEdldCBpbmZvIG5lZWRl ZCBhYm91dCByZXN1bHQgZGF0YXR5cGUgKi8KKwlnZXRfdHlwbGVuYnl2YWwocmVzdWx0X3R5cGUs ICZyZXN1bHRUeXBMZW4sICZyZXN1bHRUeXBCeVZhbCk7CisKKwkvKiBHZXQgYmFjayB0byBvdXRl ciBtZW1vcnkgY29udGV4dCAqLworCU1lbW9yeUNvbnRleHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsK KworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGV4cHJzdGF0ZS0+ZXNjb250ZXh0KSkKKwl7CisJ CUZyZWVFeGVjdXRvclN0YXRlKGVzdGF0ZSk7CisJCXJldHVybiBOVUxMOworCX0KKworCWlmICgh Y29uc3RfaXNfbnVsbCkKKwl7CisJCWlmIChyZXN1bHRUeXBMZW4gPT0gLTEpCisJCQljb25zdF92 YWwgPSBQb2ludGVyR2V0RGF0dW0oUEdfREVUT0FTVF9EQVRVTV9DT1BZKGNvbnN0X3ZhbCkpOwor CQllbHNlCisJCQljb25zdF92YWwgPSBkYXR1bUNvcHkoY29uc3RfdmFsLCByZXN1bHRUeXBCeVZh bCwgcmVzdWx0VHlwTGVuKTsKKwl9CisKKwlGcmVlRXhlY3V0b3JTdGF0ZShlc3RhdGUpOworCisJ cmV0dXJuIChFeHByICopIG1ha2VDb25zdChyZXN1bHRfdHlwZSwgcmVzdWx0X3R5cG1vZCwgcmVz dWx0X2NvbGxhdGlvbiwKKwkJCQkJCQkgIHJlc3VsdFR5cExlbiwKKwkJCQkJCQkgIGNvbnN0X3Zh bCwgY29uc3RfaXNfbnVsbCwKKwkJCQkJCQkgIHJlc3VsdFR5cEJ5VmFsKTsKK30KKwogCiAvKgog ICogaW5saW5lX3NldF9yZXR1cm5pbmdfZnVuY3Rpb24KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9jb2VyY2UuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2VyY2Uu YwppbmRleCA3OGIxZTM2NmFkNy4uY2RjZGQ0NGE3OTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZV9jb2VyY2UuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29l cmNlLmMKQEAgLTY1Nyw2ICs2NTcsOTggQEAgY2FuX2NvZXJjZV90eXBlKGludCBuYXJncywgY29u c3QgT2lkICppbnB1dF90eXBlaWRzLCBjb25zdCBPaWQgKnRhcmdldF90eXBlaWRzLAogCXJldHVy biB0cnVlOwogfQogCisvKgorICogQ3JlYXRlIGFuIGV4cHJlc3Npb24gdHJlZSB0byByZXByZXNl bnQgY29lcmNpb24gYSBVTktOT1dOIENvbnN0IG5vZGUuCisgKgorICogJ25vZGUnOiB0aGUgaW5w dXQgZXhwcmVzc2lvbgorICogJ2Jhc2VUeXBlSWQnOiBiYXNlIHR5cGUgb2YgZG9tYWluCisgKiAn YmFzZVR5cGVNb2QnOiBiYXNlIHR5cGUgdHlwbW9kIG9mIGRvbWFpbgorICogJ3RhcmdldFR5cGUn OiB0YXJnZXQgdHlwZSB0byBjb2VyY2UgdG8KKyAqICd0YXJnZXRUeXBlTW9kJzogdGFyZ2V0IHR5 cGUgdHlwbW9kCisgKiAnY2NvbnRleHQnOiBjb250ZXh0IGluZGljYXRvciB0byBjb250cm9sIGNv ZXJjaW9ucworICogJ2Nmb3JtYXQnOiBjb2VyY2lvbiBkaXNwbGF5IGZvcm1hdAorICogJ2xvY2F0 aW9uJzogY29lcmNpb24gcmVxdWVzdCBsb2NhdGlvbgorICogJ2hpZGVJbnB1dENvZXJjaW9uJzog aWYgdHJ1ZSwgaGlkZSB0aGUgaW5wdXQgY29lcmNpb24gdW5kZXIgdGhpcyBvbmUuCisgKi8KK05v ZGUgKgorQ29lcmNlVW5rbm93bkNvbnN0U2FmZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKm5v ZGUsIE9pZCB0YXJnZXRUeXBlLCBpbnQzMiB0YXJnZXRUeXBlTW9kLAorCQkJCQkgICBDb2VyY2lv bkNvbnRleHQgY2NvbnRleHQsIENvZXJjaW9uRm9ybSBjZm9ybWF0LCBpbnQgbG9jYXRpb24sCisJ CQkJCSAgIGJvb2wgaGlkZUlucHV0Q29lcmNpb24pCit7CisJT2lkCQkJYmFzZVR5cGVJZDsKKwlp bnQzMgkJYmFzZVR5cGVNb2Q7CisJaW50MzIJCWlucHV0VHlwZU1vZDsKKwlUeXBlCQliYXNlVHlw ZTsKKwljaGFyCQkqc3RyaW5nOworCURhdHVtCQlkYXR1bTsKKwlDb25zdAkgICAqbmV3Y29uOwor CU5vZGUJICAgKnJlc3VsdCA9IE5VTEw7CisJQ29uc3QJICAgKmNvbiA9IChDb25zdCAqKSBub2Rl OworCisJQXNzZXJ0KElzQShub2RlLCBDb25zdCkpOworCUFzc2VydChleHByVHlwZShub2RlKSA9 PSBVTktOT1dOT0lEKTsKKworCWJhc2VUeXBlTW9kID0gdGFyZ2V0VHlwZU1vZDsKKwliYXNlVHlw ZUlkID0gZ2V0QmFzZVR5cGVBbmRUeXBtb2QodGFyZ2V0VHlwZSwgJmJhc2VUeXBlTW9kKTsKKwor CWlmIChiYXNlVHlwZUlkID09IElOVEVSVkFMT0lEKQorCQlpbnB1dFR5cGVNb2QgPSBiYXNlVHlw ZU1vZDsKKwllbHNlCisJCWlucHV0VHlwZU1vZCA9IC0xOworCisJYmFzZVR5cGUgPSB0eXBlaWRU eXBlKGJhc2VUeXBlSWQpOworCisJLyoKKwkgKiBXZSBhc3N1bWUgaGVyZSB0aGF0IFVOS05PV04n cyBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiBpcyB0aGUgc2FtZSBhcworCSAqIENTVFJJTkcuCisJ ICovCisJaWYgKCFjb24tPmNvbnN0aXNudWxsKQorCQlzdHJpbmcgPSBEYXR1bUdldENTdHJpbmco Y29uLT5jb25zdHZhbHVlKTsKKwllbHNlCisJCXN0cmluZyA9IE5VTEw7CisKKwlpZiAoIXN0cmlu Z1R5cGVEYXR1bVNhZmUoYmFzZVR5cGUsCisJCQkJCQkJIHN0cmluZywKKwkJCQkJCQkgaW5wdXRU eXBlTW9kLAorCQkJCQkJCSAmZGF0dW0pKQorCXsKKwkJUmVsZWFzZVN5c0NhY2hlKGJhc2VUeXBl KTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJbmV3Y29uID0gbWFrZU5vZGUoQ29uc3QpOworCW5l d2Nvbi0+Y29uc3R0eXBlID0gYmFzZVR5cGVJZDsKKwluZXdjb24tPmNvbnN0dHlwbW9kID0gaW5w dXRUeXBlTW9kOworCW5ld2Nvbi0+Y29uc3Rjb2xsaWQgPSB0eXBlVHlwZUNvbGxhdGlvbihiYXNl VHlwZSk7CisJbmV3Y29uLT5jb25zdGxlbiA9IHR5cGVMZW4oYmFzZVR5cGUpOworCW5ld2Nvbi0+ Y29uc3RieXZhbCA9IHR5cGVCeVZhbChiYXNlVHlwZSk7CisJbmV3Y29uLT5jb25zdGlzbnVsbCA9 IGNvbi0+Y29uc3Rpc251bGw7CisJbmV3Y29uLT5jb25zdHZhbHVlID0gZGF0dW07CisKKwkvKgor CSAqIElmIGl0J3MgYSB2YXJsZW5hIHZhbHVlLCBmb3JjZSBpdCB0byBiZSBpbiBub24tZXhwYW5k ZWQKKwkgKiAobm9uLXRvYXN0ZWQpIGZvcm1hdDsgdGhpcyBhdm9pZHMgYW55IHBvc3NpYmxlIGRl cGVuZGVuY3kgb24KKwkgKiBleHRlcm5hbCB2YWx1ZXMgYW5kIGltcHJvdmVzIGNvbnNpc3RlbmN5 IG9mIHJlcHJlc2VudGF0aW9uLgorCSAqLworCWlmICghY29uLT5jb25zdGlzbnVsbCAmJiBuZXdj b24tPmNvbnN0bGVuID09IC0xKQorCQluZXdjb24tPmNvbnN0dmFsdWUgPQorCQkJUG9pbnRlckdl dERhdHVtKFBHX0RFVE9BU1RfREFUVU0obmV3Y29uLT5jb25zdHZhbHVlKSk7CisKKwlyZXN1bHQg PSAoTm9kZSAqKSBuZXdjb247CisKKwkvKiBJZiB0YXJnZXQgaXMgYSBkb21haW4sIGFwcGx5IGNv bnN0cmFpbnRzLiAqLworCWlmIChiYXNlVHlwZUlkICE9IHRhcmdldFR5cGUpCisJCXJlc3VsdCA9 IGNvZXJjZV90b19kb21haW4ocmVzdWx0LAorCQkJCQkJCQkgIGJhc2VUeXBlSWQsIGJhc2VUeXBl TW9kLAorCQkJCQkJCQkgIHRhcmdldFR5cGUsCisJCQkJCQkJCSAgY2NvbnRleHQsIGNmb3JtYXQs IGxvY2F0aW9uLAorCQkJCQkJCQkgIGZhbHNlKTsKKworCVJlbGVhc2VTeXNDYWNoZShiYXNlVHlw ZSk7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAKIC8qCiAgKiBDcmVhdGUgYW4gZXhwcmVzc2lv biB0cmVlIHRvIHJlcHJlc2VudCBjb2VyY2lvbiB0byBhIGRvbWFpbiB0eXBlLgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3R5cGUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV90eXBlLmMKaW5kZXggNzcxM2JkYzZhZjAuLmQyNjBhZWVjNWRjIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdHlwZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV90eXBlLmMKQEAgLTE5LDYgKzE5LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUu aCIKICNpbmNsdWRlICJsaWIvc3RyaW5naW5mby5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5j cy5oIgorI2luY2x1ZGUgIm5vZGVzL21pc2Nub2Rlcy5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJz ZV90eXBlLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlci5oIgogI2luY2x1ZGUgInV0aWxzL2Fy cmF5LmgiCkBAIC02NjAsNiArNjYxLDE5IEBAIHN0cmluZ1R5cGVEYXR1bShUeXBlIHRwLCBjaGFy ICpzdHJpbmcsIGludDMyIGF0dHR5cG1vZCkKIAlyZXR1cm4gT2lkSW5wdXRGdW5jdGlvbkNhbGwo dHlwaW5wdXQsIHN0cmluZywgdHlwaW9wYXJhbSwgYXR0dHlwbW9kKTsKIH0KIAorLyogZXJyb3Ig c2FmZSB2ZXJzaW9uIG9mIHN0cmluZ1R5cGVEYXR1bSAqLworYm9vbAorc3RyaW5nVHlwZURhdHVt U2FmZShUeXBlIHRwLCBjaGFyICpzdHJpbmcsIGludDMyIGF0dHR5cG1vZCwgRGF0dW0gKnJlc3Vs dCkKK3sKKwlGb3JtX3BnX3R5cGUgdHlwZm9ybSA9IChGb3JtX3BnX3R5cGUpIEdFVFNUUlVDVCh0 cCk7CisJT2lkCQkJdHlwaW5wdXQgPSB0eXBmb3JtLT50eXBpbnB1dDsKKwlPaWQJCQl0eXBpb3Bh cmFtID0gZ2V0VHlwZUlPUGFyYW0odHApOworCUVycm9yU2F2ZUNvbnRleHQgZXNjb250ZXh0ID0g e1RfRXJyb3JTYXZlQ29udGV4dH07CisKKwlyZXR1cm4gT2lkSW5wdXRGdW5jdGlvbkNhbGxTYWZl KHR5cGlucHV0LCBzdHJpbmcsIHR5cGlvcGFyYW0sIGF0dHR5cG1vZCwKKwkJCQkJCQkJCShOb2Rl ICopICZlc2NvbnRleHQsIHJlc3VsdCk7Cit9CisKIC8qCiAgKiBHaXZlbiBhIHR5cGVpZCwgcmV0 dXJuIHRoZSB0eXBlJ3MgdHlwcmVsaWQgKGFzc29jaWF0ZWQgcmVsYXRpb24pLCBpZiBhbnkuCiAg KiBSZXR1cm5zIEludmFsaWRPaWQgaWYgdHlwZSBpcyBub3QgYSBjb21wb3NpdGUgdHlwZS4KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jIGIvc3JjL2JhY2tlbmQvdXRp bHMvZm1nci9mbWdyLmMKaW5kZXggMGZlNjNjNmJiODMuLmFhYTRhNDJiMWVhIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9m bWdyL2ZtZ3IuYwpAQCAtMTc1OSw2ICsxNzU5LDE5IEBAIE9pZElucHV0RnVuY3Rpb25DYWxsKE9p ZCBmdW5jdGlvbklkLCBjaGFyICpzdHIsIE9pZCB0eXBpb3BhcmFtLCBpbnQzMiB0eXBtb2QpCiAJ cmV0dXJuIElucHV0RnVuY3Rpb25DYWxsKCZmbGluZm8sIHN0ciwgdHlwaW9wYXJhbSwgdHlwbW9k KTsKIH0KIAorYm9vbAorT2lkSW5wdXRGdW5jdGlvbkNhbGxTYWZlKE9pZCBmdW5jdGlvbklkLCBj aGFyICpzdHIsIE9pZCB0eXBpb3BhcmFtLAorCQkJCQkJIGludDMyIHR5cG1vZCwgTm9kZSAqZXNj b250ZXh0LAorCQkJCQkJIERhdHVtICpyZXN1bHQpCit7CisJRm1nckluZm8JCQlmbGluZm87CisK KwlmbWdyX2luZm8oZnVuY3Rpb25JZCwgJmZsaW5mbyk7CisKKwlyZXR1cm4gSW5wdXRGdW5jdGlv bkNhbGxTYWZlKCZmbGluZm8sIHN0ciwgdHlwaW9wYXJhbSwgdHlwbW9kLAorCQkJCQkJCQkgZXNj b250ZXh0LCByZXN1bHQpOworfQorCiBjaGFyICoKIE9pZE91dHB1dEZ1bmN0aW9uQ2FsbChPaWQg ZnVuY3Rpb25JZCwgRGF0dW0gdmFsKQogewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0 b3IvZXhlY3V0b3IuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKaW5kZXggZmEy YjY1N2ZiMmYuLmY5OWZjMjZlYjFmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9l eGVjdXRvci5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKQEAgLTMyNCw2 ICszMjQsNyBAQCBFeGVjUHJvY05vZGUoUGxhblN0YXRlICpub2RlKQogICogcHJvdG90eXBlcyBm cm9tIGZ1bmN0aW9ucyBpbiBleGVjRXhwci5jCiAgKi8KIGV4dGVybiBFeHByU3RhdGUgKkV4ZWNJ bml0RXhwcihFeHByICpub2RlLCBQbGFuU3RhdGUgKnBhcmVudCk7CitleHRlcm4gRXhwclN0YXRl ICpFeGVjSW5pdEV4cHJTYWZlKEV4cHIgKm5vZGUsIFBsYW5TdGF0ZSAqcGFyZW50KTsKIGV4dGVy biBFeHByU3RhdGUgKkV4ZWNJbml0RXhwcldpdGhQYXJhbXMoRXhwciAqbm9kZSwgUGFyYW1MaXN0 SW5mbyBleHRfcGFyYW1zKTsKIGV4dGVybiBFeHByU3RhdGUgKkV4ZWNJbml0UXVhbChMaXN0ICpx dWFsLCBQbGFuU3RhdGUgKnBhcmVudCk7CiBleHRlcm4gRXhwclN0YXRlICpFeGVjSW5pdENoZWNr KExpc3QgKnF1YWwsIFBsYW5TdGF0ZSAqcGFyZW50KTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2ZtZ3IuaCBiL3NyYy9pbmNsdWRlL2ZtZ3IuaAppbmRleCA3NGZlM2VhMDU3NS4uOTkxZTE0MDM0 ZDMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2ZtZ3IuaAorKysgYi9zcmMvaW5jbHVkZS9mbWdy LmgKQEAgLTc1MCw2ICs3NTAsOSBAQCBleHRlcm4gYm9vbCBEaXJlY3RJbnB1dEZ1bmN0aW9uQ2Fs bFNhZmUoUEdGdW5jdGlvbiBmdW5jLCBjaGFyICpzdHIsCiAJCQkJCQkJCQkJRGF0dW0gKnJlc3Vs dCk7CiBleHRlcm4gRGF0dW0gT2lkSW5wdXRGdW5jdGlvbkNhbGwoT2lkIGZ1bmN0aW9uSWQsIGNo YXIgKnN0ciwKIAkJCQkJCQkJICBPaWQgdHlwaW9wYXJhbSwgaW50MzIgdHlwbW9kKTsKK2V4dGVy biBib29sIE9pZElucHV0RnVuY3Rpb25DYWxsU2FmZShPaWQgZnVuY3Rpb25JZCwgY2hhciAqc3Ry LCBPaWQgdHlwaW9wYXJhbSwKKwkJCQkJCQkJCSBpbnQzMiB0eXBtb2QsIE5vZGUgKmVzY29udGV4 dCwKKwkJCQkJCQkJCSBEYXR1bSAqcmVzdWx0KTsKIGV4dGVybiBjaGFyICpPdXRwdXRGdW5jdGlv bkNhbGwoRm1nckluZm8gKmZsaW5mbywgRGF0dW0gdmFsKTsKIGV4dGVybiBjaGFyICpPaWRPdXRw dXRGdW5jdGlvbkNhbGwoT2lkIGZ1bmN0aW9uSWQsIERhdHVtIHZhbCk7CiBleHRlcm4gRGF0dW0g UmVjZWl2ZUZ1bmN0aW9uQ2FsbChGbWdySW5mbyAqZmxpbmZvLCBTdHJpbmdJbmZvIGJ1ZiwKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIuaCBiL3NyYy9pbmNsdWRl L29wdGltaXplci9vcHRpbWl6ZXIuaAppbmRleCBkMGFhOGFiMGMxYy4uOTY0ZWMwMjRkZTcgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIuaAorKysgYi9zcmMvaW5j bHVkZS9vcHRpbWl6ZXIvb3B0aW1pemVyLmgKQEAgLTE0NSw2ICsxNDUsOCBAQCBleHRlcm4gTm9k ZSAqZXN0aW1hdGVfZXhwcmVzc2lvbl92YWx1ZShQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqbm9k ZSk7CiBleHRlcm4gRXhwciAqZXZhbHVhdGVfZXhwcihFeHByICpleHByLCBPaWQgcmVzdWx0X3R5 cGUsIGludDMyIHJlc3VsdF90eXBtb2QsCiAJCQkJCQkgICBPaWQgcmVzdWx0X2NvbGxhdGlvbik7 CiAKK2V4dGVybiBFeHByICpldmFsdWF0ZV9leHByX3NhZmUoRXhwciAqZXhwciwgT2lkIHJlc3Vs dF90eXBlLCBpbnQzMiByZXN1bHRfdHlwbW9kLAorCQkJCQkJCQlPaWQgcmVzdWx0X2NvbGxhdGlv bik7CiBleHRlcm4gYm9vbCB2YXJfaXNfbm9ubnVsbGFibGUoUGxhbm5lckluZm8gKnJvb3QsIFZh ciAqdmFyLCBib29sIHVzZV9yZWxfaW5mbyk7CiAKIGV4dGVybiBMaXN0ICpleHBhbmRfZnVuY3Rp b25fYXJndW1lbnRzKExpc3QgKmFyZ3MsIGJvb2wgaW5jbHVkZV9vdXRfYXJndW1lbnRzLApkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2NvZXJjZS5oIGIvc3JjL2luY2x1ZGUv cGFyc2VyL3BhcnNlX2NvZXJjZS5oCmluZGV4IDhkNzc1YzcyYzU5Li5hZDE2Y2RkNzAyMiAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2NvZXJjZS5oCisrKyBiL3NyYy9pbmNs dWRlL3BhcnNlci9wYXJzZV9jb2VyY2UuaApAQCAtNDgsNiArNDgsMTAgQEAgZXh0ZXJuIGJvb2wg Y2FuX2NvZXJjZV90eXBlKGludCBuYXJncywgY29uc3QgT2lkICppbnB1dF90eXBlaWRzLCBjb25z dCBPaWQgKnRhcmcKIGV4dGVybiBOb2RlICpjb2VyY2VfdHlwZShQYXJzZVN0YXRlICpwc3RhdGUs IE5vZGUgKm5vZGUsCiAJCQkJCQkgT2lkIGlucHV0VHlwZUlkLCBPaWQgdGFyZ2V0VHlwZUlkLCBp bnQzMiB0YXJnZXRUeXBlTW9kLAogCQkJCQkJIENvZXJjaW9uQ29udGV4dCBjY29udGV4dCwgQ29l cmNpb25Gb3JtIGNmb3JtYXQsIGludCBsb2NhdGlvbik7CitleHRlcm4gTm9kZSAqQ29lcmNlVW5r bm93bkNvbnN0U2FmZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKm5vZGUsCisJCQkJCQkJCQlP aWQgdGFyZ2V0VHlwZSwgaW50MzIgdGFyZ2V0VHlwZU1vZCwKKwkJCQkJCQkJCUNvZXJjaW9uQ29u dGV4dCBjY29udGV4dCwgQ29lcmNpb25Gb3JtIGNmb3JtYXQsCisJCQkJCQkJCQlpbnQgbG9jYXRp b24sIGJvb2wgaGlkZUlucHV0Q29lcmNpb24pOwogZXh0ZXJuIE5vZGUgKmNvZXJjZV90b19kb21h aW4oTm9kZSAqYXJnLCBPaWQgYmFzZVR5cGVJZCwgaW50MzIgYmFzZVR5cGVNb2QsCiAJCQkJCQkJ ICBPaWQgdHlwZUlkLAogCQkJCQkJCSAgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LCBDb2VyY2lv bkZvcm0gY2Zvcm1hdCwgaW50IGxvY2F0aW9uLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFy c2VyL3BhcnNlX3R5cGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV90eXBlLmgKaW5kZXgg MGQ5MTlkOGJmYTIuLjEyMzgxYWVkNjRjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2VfdHlwZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV90eXBlLmgKQEAgLTQ3 LDYgKzQ3LDggQEAgZXh0ZXJuIGNoYXIgKnR5cGVUeXBlTmFtZShUeXBlIHQpOwogZXh0ZXJuIE9p ZAl0eXBlVHlwZVJlbGlkKFR5cGUgdHlwKTsKIGV4dGVybiBPaWQJdHlwZVR5cGVDb2xsYXRpb24o VHlwZSB0eXApOwogZXh0ZXJuIERhdHVtIHN0cmluZ1R5cGVEYXR1bShUeXBlIHRwLCBjaGFyICpz dHJpbmcsIGludDMyIGF0dHR5cG1vZCk7CitleHRlcm4gYm9vbCBzdHJpbmdUeXBlRGF0dW1TYWZl KFR5cGUgdHAsIGNoYXIgKnN0cmluZywgaW50MzIgYXR0dHlwbW9kLAorCQkJCQkJCQlEYXR1bSAq cmVzdWx0KTsKIAogZXh0ZXJuIE9pZAl0eXBlaWRUeXBlUmVsaWQoT2lkIHR5cGVfaWQpOwogZXh0 ZXJuIE9pZAl0eXBlT3JEb21haW5UeXBlUmVsaWQoT2lkIHR5cGVfaWQpOwotLSAKMi4zNC4xCgo= --0000000000005a66d6064348f03b Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v10-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhtzolcq3 RnJvbSA3OTM2YzZhOTQxNTQ3ZmQwMzk3MmUxNjkyM2ZlZmEyNzM1OGI5MzY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo1ODo0MCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEw IDE3LzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGpzb25iIHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2pzb25iJzo6cmVn dHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBjYXN0 dGFyZ2V0ICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBwcm9z cmMgICAgIHwgcHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQog anNvbmIgICAgICB8IGJvb2xlYW4gICAgICAgICAgfCAgICAgMzU1NiB8IGUgICAgICAgICAgIHwg ZiAgICAgICAgICB8IGpzb25iX2Jvb2wgICAgfCBib29sCiBqc29uYiAgICAgIHwgbnVtZXJpYyAg ICAgICAgICB8ICAgICAzNDQ5IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwganNvbmJfbnVt ZXJpYyB8IG51bWVyaWMKIGpzb25iICAgICAgfCBzbWFsbGludCAgICAgICAgIHwgICAgIDM0NTAg fCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBqc29uYl9pbnQyICAgIHwgaW50MgoganNvbmIg ICAgICB8IGludGVnZXIgICAgICAgICAgfCAgICAgMzQ1MSB8IGUgICAgICAgICAgIHwgZiAgICAg ICAgICB8IGpzb25iX2ludDQgICAgfCBpbnQ0CiBqc29uYiAgICAgIHwgYmlnaW50ICAgICAgICAg ICB8ICAgICAzNDUyIHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwganNvbmJfaW50OCAgICB8 IGludDgKIGpzb25iICAgICAgfCByZWFsICAgICAgICAgICAgIHwgICAgIDM0NTMgfCBlICAgICAg ICAgICB8IGYgICAgICAgICAgfCBqc29uYl9mbG9hdDQgIHwgZmxvYXQ0CiBqc29uYiAgICAgIHwg ZG91YmxlIHByZWNpc2lvbiB8ICAgICAyNTgwIHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwg anNvbmJfZmxvYXQ4ICB8IGZsb2F0OAooNyByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0 Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80 aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmIuYyB8IDkx ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNzUg aW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2pzb25iLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmIuYwppbmRleCBk YTk0ZDQyNGQ2MS4uMWZmMDBmNzJmNzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9qc29uYi5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYi5jCkBAIC0yMDA1LDcg KzIwMDUsNyBAQCBKc29uYkV4dHJhY3RTY2FsYXIoSnNvbmJDb250YWluZXIgKmpiYywgSnNvbmJW YWx1ZSAqcmVzKQogICogRW1pdCBjb3JyZWN0LCB0cmFuc2xhdGFibGUgY2FzdCBlcnJvciBtZXNz YWdlCiAgKi8KIHN0YXRpYyB2b2lkCi1jYW5ub3RDYXN0SnNvbmJWYWx1ZShlbnVtIGpidlR5cGUg dHlwZSwgY29uc3QgY2hhciAqc3FsdHlwZSkKK2Nhbm5vdENhc3RKc29uYlZhbHVlKGVudW0gamJ2 VHlwZSB0eXBlLCBjb25zdCBjaGFyICpzcWx0eXBlLCBOb2RlICplc2NvbnRleHQpCiB7CiAJc3Rh dGljIGNvbnN0IHN0cnVjdAogCXsKQEAgLTIwMjYsOSArMjAyNiwxMiBAQCBjYW5ub3RDYXN0SnNv bmJWYWx1ZShlbnVtIGpidlR5cGUgdHlwZSwgY29uc3QgY2hhciAqc3FsdHlwZSkKIAogCWZvciAo aSA9IDA7IGkgPCBsZW5ndGhvZihtZXNzYWdlcyk7IGkrKykKIAkJaWYgKG1lc3NhZ2VzW2ldLnR5 cGUgPT0gdHlwZSkKLQkJCWVyZXBvcnQoRVJST1IsCisJCXsKKwkJCWVycnNhdmUoZXNjb250ZXh0 LAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFSQU1FVEVSX1ZBTFVFKSwKIAkJCQkJ IGVycm1zZyhtZXNzYWdlc1tpXS5tc2csIHNxbHR5cGUpKSk7CisJCQlyZXR1cm47CisJCX0KIAog CS8qIHNob3VsZCBiZSB1bnJlYWNoYWJsZSAqLwogCWVsb2coRVJST1IsICJ1bmtub3duIGpzb25i IHR5cGU6ICVkIiwgKGludCkgdHlwZSk7CkBAIC0yMDQxLDcgKzIwNDQsMTEgQEAganNvbmJfYm9v bChQR19GVU5DVElPTl9BUkdTKQogCUpzb25iVmFsdWUJdjsKIAogCWlmICghSnNvbmJFeHRyYWN0 U2NhbGFyKCZpbi0+cm9vdCwgJnYpKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJi b29sZWFuIik7CisJeworCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJib29sZWFuIiwg ZmNpbmZvLT5jb250ZXh0KTsKKworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCWlmICh2LnR5 cGUgPT0gamJ2TnVsbCkKIAl7CkBAIC0yMDUwLDcgKzIwNTcsMTEgQEAganNvbmJfYm9vbChQR19G VU5DVElPTl9BUkdTKQogCX0KIAogCWlmICh2LnR5cGUgIT0gamJ2Qm9vbCkKLQkJY2Fubm90Q2Fz dEpzb25iVmFsdWUodi50eXBlLCAiYm9vbGVhbiIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFs dWUodi50eXBlLCAiYm9vbGVhbiIsIGZjaW5mby0+Y29udGV4dCk7CisKKwkJUEdfUkVUVVJOX05V TEwoKTsKKwl9CiAKIAlQR19GUkVFX0lGX0NPUFkoaW4sIDApOwogCkBAIC0yMDY1LDcgKzIwNzYs MTEgQEAganNvbmJfbnVtZXJpYyhQR19GVU5DVElPTl9BUkdTKQogCU51bWVyaWMJCXJldFZhbHVl OwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290LCAmdikpCi0JCWNhbm5vdENh c3RKc29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZh bHVlKHYudHlwZSwgIm51bWVyaWMiLCBmY2luZm8tPmNvbnRleHQpOworCisJCVBHX1JFVFVSTl9O VUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTIwNzQsNyArMjA4 OSwxMSBAQCBqc29uYl9udW1lcmljKFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYgKHYudHlw ZSAhPSBqYnZOdW1lcmljKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJudW1lcmlj Iik7CisJeworCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJudW1lcmljIiwgZmNpbmZv LT5jb250ZXh0KTsKKworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCS8qCiAJICogdi52YWwu bnVtZXJpYyBwb2ludHMgaW50byBqc29uYiBib2R5LCBzbyB3ZSBuZWVkIHRvIG1ha2UgYSBjb3B5 IHRvCkBAIC0yMDk1LDcgKzIxMTQsMTEgQEAganNvbmJfaW50MihQR19GVU5DVElPTl9BUkdTKQog CURhdHVtCQlyZXRWYWx1ZTsKIAogCWlmICghSnNvbmJFeHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwg JnYpKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJzbWFsbGludCIpOworCXsKKwkJ Y2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAic21hbGxpbnQiLCBmY2luZm8tPmNvbnRleHQp OworCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQog CXsKQEAgLTIxMDQsNyArMjEyNywxMSBAQCBqc29uYl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ fQogCiAJaWYgKHYudHlwZSAhPSBqYnZOdW1lcmljKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2 LnR5cGUsICJzbWFsbGludCIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi c21hbGxpbnQiLCBmY2luZm8tPmNvbnRleHQpOworCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQog CiAJcmV0VmFsdWUgPSBEaXJlY3RGdW5jdGlvbkNhbGwxKG51bWVyaWNfaW50MiwKIAkJCQkJCQkJ ICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51bWVyaWMpKTsKQEAgLTIxMjIsNyArMjE0OSwxMSBA QCBqc29uYl9pbnQ0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJRGF0dW0JCXJldFZhbHVlOwogCiAJaWYg KCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290LCAmdikpCi0JCWNhbm5vdENhc3RKc29uYlZh bHVlKHYudHlwZSwgImludGVnZXIiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlw ZSwgImludGVnZXIiLCBmY2luZm8tPmNvbnRleHQpOworCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJ fQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTIxMzEsNyArMjE2MiwxMSBAQCBq c29uYl9pbnQ0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYgKHYudHlwZSAhPSBqYnZOdW1l cmljKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJpbnRlZ2VyIik7CisJeworCQlj YW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJpbnRlZ2VyIiwgZmNpbmZvLT5jb250ZXh0KTsK KworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25D YWxsMShudW1lcmljX2ludDQsCiAJCQkJCQkJCSAgIE51bWVyaWNHZXREYXR1bSh2LnZhbC5udW1l cmljKSk7CkBAIC0yMTQ5LDcgKzIxODQsMTEgQEAganNvbmJfaW50OChQR19GVU5DVElPTl9BUkdT KQogCURhdHVtCQlyZXRWYWx1ZTsKIAogCWlmICghSnNvbmJFeHRyYWN0U2NhbGFyKCZpbi0+cm9v dCwgJnYpKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJiaWdpbnQiKTsKKwl7CisJ CWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJpZ2ludCIsIGZjaW5mby0+Y29udGV4dCk7 CisKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAKIAlpZiAodi50eXBlID09IGpidk51bGwpCiAJ ewpAQCAtMjE1OCw3ICsyMTk3LDExIEBAIGpzb25iX2ludDgoUEdfRlVOQ1RJT05fQVJHUykKIAl9 CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYu dHlwZSwgImJpZ2ludCIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAiYmln aW50IiwgZmNpbmZvLT5jb250ZXh0KTsKKworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCXJl dFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2ludDgsCiAJCQkJCQkJCSAgIE51 bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7CkBAIC0yMTc2LDcgKzIyMTksMTEgQEAganNv bmJfZmxvYXQ0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJRGF0dW0JCXJldFZhbHVlOwogCiAJaWYgKCFK c29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290LCAmdikpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVl KHYudHlwZSwgInJlYWwiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgInJl YWwiLCBmY2luZm8tPmNvbnRleHQpOworCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYg KHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTIxODUsNyArMjIzMiwxMSBAQCBqc29uYl9mbG9h dDQoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0J CWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgInJlYWwiKTsKKwl7CisJCWNhbm5vdENhc3RK c29uYlZhbHVlKHYudHlwZSwgInJlYWwiLCBmY2luZm8tPmNvbnRleHQpOworCisJCVBHX1JFVFVS Tl9OVUxMKCk7CisJfQogCiAJcmV0VmFsdWUgPSBEaXJlY3RGdW5jdGlvbkNhbGwxKG51bWVyaWNf ZmxvYXQ0LAogCQkJCQkJCQkgICBOdW1lcmljR2V0RGF0dW0odi52YWwubnVtZXJpYykpOwpAQCAt MjIwMyw3ICsyMjU0LDExIEBAIGpzb25iX2Zsb2F0OChQR19GVU5DVElPTl9BUkdTKQogCURhdHVt CQlyZXRWYWx1ZTsKIAogCWlmICghSnNvbmJFeHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwgJnYpKQot CQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJkb3VibGUgcHJlY2lzaW9uIik7CisJewor CQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJkb3VibGUgcHJlY2lzaW9uIiwgZmNpbmZv LT5jb250ZXh0KTsKKworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCWlmICh2LnR5cGUgPT0g amJ2TnVsbCkKIAl7CkBAIC0yMjEyLDcgKzIyNjcsMTEgQEAganNvbmJfZmxvYXQ4KFBHX0ZVTkNU SU9OX0FSR1MpCiAJfQogCiAJaWYgKHYudHlwZSAhPSBqYnZOdW1lcmljKQotCQljYW5ub3RDYXN0 SnNvbmJWYWx1ZSh2LnR5cGUsICJkb3VibGUgcHJlY2lzaW9uIik7CisJeworCQljYW5ub3RDYXN0 SnNvbmJWYWx1ZSh2LnR5cGUsICJkb3VibGUgcHJlY2lzaW9uIiwgZmNpbmZvLT5jb250ZXh0KTsK KworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25D YWxsMShudW1lcmljX2Zsb2F0OCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51 bWVyaWMpKTsKLS0gCjIuMzQuMQoK --0000000000005a66d6064348f03b Content-Type: text/x-patch; charset="UTF-8"; name="v10-0020-CAST-expr-AS-newtype-DEFAULT-ON-ERROR.patch" Content-Disposition: attachment; filename="v10-0020-CAST-expr-AS-newtype-DEFAULT-ON-ERROR.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhtzolck0 RnJvbSA2MzZmOTQ2N2M5YzZhODI2MDRiODQ3MTI5YTU1NDExNjc0ZmU4YTIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMTAgTm92IDIwMjUgMTQ6MDg6NDkgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MCAyMC8yMF0gQ0FTVChleHByIEFTIG5ld3R5cGUgREVGQVVMVCBPTiBFUlJPUikKCk5vdyB0aGF0 IHRoZSB0eXBlIGNvZXJjaW9uIG5vZGUgaXMgZXJyb3Itc2FmZSwgd2UgYWxzbyBuZWVkIHRvIGVu c3VyZSB0aGF0IHdoZW4KYSBjb2VyY2lvbiBmYWlscywgaXQgZmFsbHMgYmFjayB0byBldmFsdWF0 aW5nIHRoZSBkZWZhdWx0IG5vZGUuCmRyYWZ0IGRvYyBhbHNvIGFkZGVkLgoKV2UgY2Fubm90IHNp bXBseSBwcm9oaWJpdCB1c2VyLWRlZmluZWQgZnVuY3Rpb25zIGluIHBnX2Nhc3QgZm9yIHNhZmUg Y2FzdApldmFsdWF0aW9uIGJlY2F1c2UgQ1JFQVRFIENBU1QgY2FuIGFsc28gdXRpbGl6ZSBidWls dC1pbiBmdW5jdGlvbnMuIFNvLCB0bwpjb21wbGV0ZWx5IGRpc2FsbG93IGN1c3RvbSBjYXN0cyBj cmVhdGVkIHZpYSBDUkVBVEUgQ0FTVCB1c2VkIGluIHNhZmUgY2FzdApldmFsdWF0aW9uLCBhIG5l dyBmaWVsZCBpbiBwZ19jYXN0IHdvdWxkIHVuZm9ydHVuYXRlbHkgYmUgbmVjZXNzYXJ5LgoKZGVt bzoKU0VMRUNUIENBU1QoJzEnIEFTIGRhdGUgIERFRkFVTFQgJzIwMTEtMDEtMDEnIE9OIEVSUk9S KSwKICAgICAgIENBU1QoJ3syMzQsZGVmLDU2N30nOjp0ZXh0W10gQVMgaW50ZWdlcltdIERFRkFV TFQgJ3stMTAxMX0nIE9OIEVSUk9SKTsKICAgIGRhdGUgICAgfCAgaW50NAotLS0tLS0tLS0tLS0r LS0tLS0tLS0tCiAyMDExLTAxLTAxIHwgey0xMDExfQoKWzBdOiBodHRwczovL2dpdC5wb3N0Z3Jl c3FsLm9yZy9jZ2l0L3Bvc3RncmVzcWwuZ2l0L2NvbW1pdC8/aWQ9YWFhZjk0NDllYzZiZTYyY2Iw ZDMwZWQzNTg4ZGMzODRmNTYyNzRiCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NB RGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdt YWlsLmNvbQotLS0KIC4uLi9wZ19zdGF0X3N0YXRlbWVudHMvZXhwZWN0ZWQvc2VsZWN0Lm91dCAg ICB8ICAyMyArLQogY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvc3FsL3NlbGVjdC5zcWwgICAg IHwgICA1ICsKIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8 ICAxMiArCiBkb2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwgICAgICAgICAgICAgICAgICAgICAgfCAg MjkgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jYXN0LmMgICAgICAgICAgICAgICAgIHwgICAx ICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8ICA3NiAr LQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyAgICAgICAgIHwgIDM3ICsK IHNyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jICAgICAgICAgICB8ICA0OSArKwog c3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgICAgICAgICAgICAgICAgIHwgIDYxICsrCiBz cmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMgICAgICAgICAgfCAgMjUgKwogc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDIyICsKIHNyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFj a2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCA0MjQgKysrKysrKysrLQog c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyAgICAgICAgICAgICAgIHwgICAzICsKIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyAgICAgICAgICAgICB8ICAxNCArCiBzcmMv YmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jICAgICAgICAgICAgfCAgIDggKwogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAgICAgIHwgIDIxICsKIHNyYy9pbmNs dWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQgICAgICAgICAgICAgICB8IDMzMCArKysrLS0tLQogc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmggICAgICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9p bmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmggICAgICAgICAgICAgICB8ICAgOCArCiBzcmMvaW5j bHVkZS9ub2Rlcy9leGVjbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgMzAgKwogc3JjL2luY2x1 ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgIDExICsKIHNyYy9pbmNsdWRl L25vZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAzNiArCiBzcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2Vfbm9kZS5oICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9jYXN0Lm91dCAgICAgICAgICAgIHwgNzY3ICsrKysrKysrKysrKysrKysrKwog c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfY2FzdC5vdXQgICAgIHwgICA1ICsKIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQgICAgICB8ICAyNCArLQogc3Jj L3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAyICstCiBzcmMv dGVzdC9yZWdyZXNzL3NxbC9jYXN0LnNxbCAgICAgICAgICAgICAgICAgfCAzMzUgKysrKysrKysK IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9jYXN0LnNxbCAgICAgICAgICB8ICAgMSArCiBz cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgIDMgKwogMzEg ZmlsZXMgY2hhbmdlZCwgMjE4MyBpbnNlcnRpb25zKCspLCAxOTQgZGVsZXRpb25zKC0pCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jYXN0Lm91dAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Nhc3Quc3FsCgpkaWZmIC0tZ2l0IGEv Y29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvZXhwZWN0ZWQvc2VsZWN0Lm91dCBiL2NvbnRyaWIv cGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3NlbGVjdC5vdXQKaW5kZXggNzVjODk2ZjM4ODUu LjZlNjc5OTdmMGEyIDEwMDY0NAotLS0gYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9leHBl Y3RlZC9zZWxlY3Qub3V0CisrKyBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVk L3NlbGVjdC5vdXQKQEAgLTczLDYgKzczLDI1IEBAIFNFTEVDVCAxIEFTICJpbnQiIE9GRlNFVCAy IEZFVENIIEZJUlNUIDMgUk9XIE9OTFk7CiAtLS0tLQogKDAgcm93cykKIAorLS1lcnJvciBzYWZl IHR5cGUgY2FzdAorU0VMRUNUIENBU1QoJ2EnIEFTIGludCBERUZBVUxUIDIgT04gQ09OVkVSU0lP TiBFUlJPUik7CisgaW50NCAKKy0tLS0tLQorICAgIDIKKygxIHJvdykKKworU0VMRUNUIENBU1Qo JzExJyBBUyBpbnQgREVGQVVMVCAyIE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDQgCistLS0t LS0KKyAgIDExCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcxMicgQVMgbnVtZXJpYyBERUZBVUxU IDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgbnVtZXJpYyAKKy0tLS0tLS0tLQorICAgICAgMTIK KygxIHJvdykKKwogLS0gRElTVElOQ1QgYW5kIE9SREVSIEJZIHBhdHRlcm5zCiAtLSBUcnkgc29t ZSBxdWVyeSBwZXJtdXRhdGlvbnMgd2hpY2ggb25jZSBwcm9kdWNlZCBpZGVudGljYWwgcXVlcnkg SURzCiBTRUxFQ1QgRElTVElOQ1QgMSBBUyAiaW50IjsKQEAgLTIyMiw2ICsyNDEsOCBAQCBTRUxF Q1QgY2FsbHMsIHJvd3MsIHF1ZXJ5IEZST00gcGdfc3RhdF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1 ZXJ5IENPTExBVEUgIkMiOwogICAgICAyIHwgICAgMiB8IFNFTEVDVCAkMSBBUyAiaW50IiBPUkRF UiBCWSAxCiAgICAgIDEgfCAgICAyIHwgU0VMRUNUICQxIEFTIGkgVU5JT04gU0VMRUNUICQyIE9S REVSIEJZIGkKICAgICAgMSB8ICAgIDEgfCBTRUxFQ1QgJDEgfHwgJDIKKyAgICAgMiB8ICAgIDIg fCBTRUxFQ1QgQ0FTVCgkMSBBUyBpbnQgREVGQVVMVCAkMiBPTiBDT05WRVJTSU9OIEVSUk9SKQor ICAgICAxIHwgICAgMSB8IFNFTEVDVCBDQVNUKCQxIEFTIG51bWVyaWMgREVGQVVMVCAkMiBPTiBD T05WRVJTSU9OIEVSUk9SKQogICAgICAyIHwgICAgMiB8IFNFTEVDVCBESVNUSU5DVCAkMSBBUyAi aW50IgogICAgICAwIHwgICAgMCB8IFNFTEVDVCBjYWxscywgcm93cywgcXVlcnkgRlJPTSBwZ19z dGF0X3N0YXRlbWVudHMgT1JERVIgQlkgcXVlcnkgQ09MTEFURSAiQyIKICAgICAgMSB8ICAgIDEg fCBTRUxFQ1QgcGdfc3RhdF9zdGF0ZW1lbnRzX3Jlc2V0KCkgSVMgTk9UIE5VTEwgQVMgdApAQCAt MjMwLDcgKzI1MSw3IEBAIFNFTEVDVCBjYWxscywgcm93cywgcXVlcnkgRlJPTSBwZ19zdGF0X3N0 YXRlbWVudHMgT1JERVIgQlkgcXVlcnkgQ09MTEFURSAiQyI7CiAgICAgICAgfCAgICAgIHwgKSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICsKICAgICAgICB8ICAgICAgfCAgIFNFTEVDVCBmIEZST00gdCBPUkRF UiBCWSBmCiAgICAgIDEgfCAgICAxIHwgc2VsZWN0ICQxOjpqc29uYiA/ICQyCi0oMTcgcm93cykK KygxOSByb3dzKQogCiBTRUxFQ1QgcGdfc3RhdF9zdGF0ZW1lbnRzX3Jlc2V0KCkgSVMgTk9UIE5V TEwgQVMgdDsKICB0IApkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvc3Fs L3NlbGVjdC5zcWwgYi9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvc2VsZWN0LnNxbApp bmRleCAxMTY2MmNkZTA4Yy4uN2VlODE2MGZkODQgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfc3Rh dF9zdGF0ZW1lbnRzL3NxbC9zZWxlY3Quc3FsCisrKyBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1l bnRzL3NxbC9zZWxlY3Quc3FsCkBAIC0yNSw2ICsyNSwxMSBAQCBTRUxFQ1QgMSBBUyAiaW50IiBM SU1JVCAzIE9GRlNFVCAzOwogU0VMRUNUIDEgQVMgImludCIgT0ZGU0VUIDEgRkVUQ0ggRklSU1Qg MiBST1cgT05MWTsKIFNFTEVDVCAxIEFTICJpbnQiIE9GRlNFVCAyIEZFVENIIEZJUlNUIDMgUk9X IE9OTFk7CiAKKy0tZXJyb3Igc2FmZSB0eXBlIGNhc3QKK1NFTEVDVCBDQVNUKCdhJyBBUyBpbnQg REVGQVVMVCAyIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJzExJyBBUyBpbnQg REVGQVVMVCAyIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJzEyJyBBUyBudW1l cmljIERFRkFVTFQgMiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKwogLS0gRElTVElOQ1QgYW5kIE9S REVSIEJZIHBhdHRlcm5zCiAtLSBUcnkgc29tZSBxdWVyeSBwZXJtdXRhdGlvbnMgd2hpY2ggb25j ZSBwcm9kdWNlZCBpZGVudGljYWwgcXVlcnkgSURzCiBTRUxFQ1QgRElTVElOQ1QgMSBBUyAiaW50 IjsKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwKaW5kZXggNmM4YTBmMTczYzkuLjQ5MmM5OWUzN2NkIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbApAQCAtMTg0OSw2ICsxODQ5LDE4IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZs dDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAg ICAgPGxpdGVyYWw+YjwvbGl0ZXJhbD4gbWVhbnMgdGhhdCB0aGUgdHlwZXMgYXJlIGJpbmFyeS1j b2VyY2libGUsIHRodXMgbm8gY29udmVyc2lvbiBpcyByZXF1aXJlZC4KICAgICAgIDwvcGFyYT48 L2VudHJ5PgogICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNh dGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAg ICA8c3RydWN0ZmllbGQ+Y2FzdGVycm9yc2FmZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2w8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGlzIGluZGljYXRlcyB3 aGV0aGVyIHRoZSA8c3RydWN0ZmllbGQ+Y2FzdGZ1bmM8L3N0cnVjdGZpZWxkPiBmdW5jdGlvbiBp cyBlcnJvciBzYWZlLgorICAgICAgIElmIHRoZSA8c3RydWN0ZmllbGQ+Y2FzdGZ1bmM8L3N0cnVj dGZpZWxkPiBmdW5jdGlvbiBpcyBlcnJvciBzYWZlLCBpdCBjYW4gYmUgdXNlZCBpbiBlcnJvciBz YWZlIHR5cGUgY2FzdC4KKyAgICAgICBGb3IgZnVydGhlciBkZXRhaWxzIHNlZSA8eHJlZiBsaW5r ZW5kPSJzcWwtc3ludGF4LXR5cGUtY2FzdHMtc2FmZSIvPi4KKyAgICAgIDwvcGFyYT48L2VudHJ5 PgorICAgICA8L3Jvdz4KKwogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4K ZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9zeW50YXguc2dtbCBiL2RvYy9zcmMvc2dtbC9zeW50 YXguc2dtbAppbmRleCAyMzdkNzMwNmZlOC4uM2RjN2JhZjA4YjkgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9zeW50YXguc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwKQEAgLTIx MDYsNiArMjEwNiwxMCBAQCBDQVNUICggPHJlcGxhY2VhYmxlPmV4cHJlc3Npb248L3JlcGxhY2Vh YmxlPiBBUyA8cmVwbGFjZWFibGU+dHlwZTwvcmVwbGFjZWFibGU+CiAgICAgVGhlIDxsaXRlcmFs PkNBU1Q8L2xpdGVyYWw+IHN5bnRheCBjb25mb3JtcyB0byBTUUw7IHRoZSBzeW50YXggd2l0aAog ICAgIDxsaXRlcmFsPjo6PC9saXRlcmFsPiBpcyBoaXN0b3JpY2FsIDxwcm9kdWN0bmFtZT5Qb3N0 Z3JlU1FMPC9wcm9kdWN0bmFtZT4KICAgICB1c2FnZS4KKyAgICBUaGUgZXF1aXZhbGVudCBPTiBD T05WRVJTSU9OIEVSUk9SIGJlaGF2aW9yIGlzOgorPHN5bm9wc2lzPgorQ0FTVCAoIDxyZXBsYWNl YWJsZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxlPnR5cGU8L3JlcGxh Y2VhYmxlPiBFUlJPUiBPTiBDT05WRVJTSU9OIEVSUk9SICkKKzwvc3lub3BzaXM+CiAgICA8L3Bh cmE+CiAKICAgIDxwYXJhPgpAQCAtMjE2MCw2ICsyMTY0LDMxIEBAIENBU1QgKCA8cmVwbGFjZWFi bGU+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IEFTIDxyZXBsYWNlYWJsZT50eXBlPC9yZXBsYWNl YWJsZT4KICAgICAgPHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZWNhc3QiLz4uCiAgICAgPC9wYXJh PgogICAgPC9ub3RlPgorCisgPHNlY3QzIGlkPSJzcWwtc3ludGF4LXR5cGUtY2FzdHMtc2FmZSI+ CisgIDx0aXRsZT5TYWZlIFR5cGUgQ2FzdDwvdGl0bGU+CisgICA8cGFyYT4KK1NvbWV0aW1lcyBh IHR5cGUgY2FzdCBtYXkgZmFpbDsgdG8gaGFuZGxlIHN1Y2ggY2FzZXMsIGFuIDxsaXRlcmFsPk9O IEVSUk9SPC9saXRlcmFsPiBjbGF1c2UgY2FuIGJlCitzcGVjaWZpZWQgdG8gYXZvaWQgcG90ZW50 aWFsIGVycm9ycy4gVGhlIHN5bnRheCBpczoKKzxzeW5vcHNpcz4KK0NBU1QgKCA8cmVwbGFjZWFi bGU+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IEFTIDxyZXBsYWNlYWJsZT50eXBlPC9yZXBsYWNl YWJsZT4gREVGQVVMVCA8cmVwbGFjZWFibGU+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IE9OIENP TlZFUlNJT04gRVJST1IgKQorPC9zeW5vcHNpcz4KKyAgICBJZiBjYXN0IHRoZSBzb3VyY2UgZXhw cmVzc2lvbiB0byB0YXJnZXQgdHlwZSBmYWlscywgaXQgZmFsbHMgYmFjayB0bworICAgIGV2YWx1 YXRpbmcgdGhlIG9wdGlvbmFsbHkgc3VwcGxpZWQgZGVmYXVsdCA8cmVwbGFjZWFibGU+ZXhwcmVz c2lvbjwvcmVwbGFjZWFibGU+CisgICAgc3BlY2lmaWVkIGluIE9OIDxsaXRlcmFsPk9OIEVSUk9S PC9saXRlcmFsPiBjbGF1c2UuCisgICAgQ3VycmVudGx5LCB0aGlzIG9ubHkgc3VwcG9ydCBidWls dC1pbiBzeXN0ZW0gdHlwZSBjYXN0cywKKyAgICBjYXN0cyBjcmVhdGVkIHVzaW5nIDxsaW5rIGxp bmtlbmQ9InNxbC1jcmVhdGVjYXN0Ij5DUkVBVEUgQ0FTVDwvbGluaz4gYXJlIG5vdCBzdXBwb3J0 ZWQuCisgIDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgICBGb3IgZXhhbXBsZSwgdGhlIGZvbGxv d2luZyBxdWVyeSBhdHRlbXB0cyB0byBjYXN0IGEgPHR5cGU+dGV4dDwvdHlwZT4gdHlwZSB2YWx1 ZSB0byA8dHlwZT5pbnRlZ2VyPC90eXBlPiB0eXBlLAorICAgICBidXQgd2hlbiB0aGUgY29udmVy c2lvbiBmYWlscywgaXQgZmFsbHMgYmFjayB0byBldmFsdWF0ZSB0aGUgc3VwcGxpZWQgZGVmYXVs dCBleHByZXNzaW9uLgorPHByb2dyYW1saXN0aW5nPgorU0VMRUNUIENBU1QoVEVYVCAnZXJyb3In IEFTIGludGVnZXIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIElTIE5VTEw7ICA8 bGluZWFubm90YXRpb24+dHJ1ZTwvbGluZWFubm90YXRpb24+Cis8L3Byb2dyYW1saXN0aW5nPgor ICAgIDwvcGFyYT4KKyAgPC9zZWN0Mz4KKwogICA8L3NlY3QyPgogCiAgIDxzZWN0MiBpZD0ic3Fs LXN5bnRheC1jb2xsYXRlLWV4cHJzIj4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfY2FzdC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jYXN0LmMKaW5kZXggMTc3M2M5YzU0 OTEuLjZmZTY1ZDI0ZDMxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nhc3Qu YworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nhc3QuYwpAQCAtODQsNiArODQsNyBAQCBD YXN0Q3JlYXRlKE9pZCBzb3VyY2V0eXBlaWQsIE9pZCB0YXJnZXR0eXBlaWQsCiAJdmFsdWVzW0Fu dW1fcGdfY2FzdF9jYXN0ZnVuYyAtIDFdID0gT2JqZWN0SWRHZXREYXR1bShmdW5jaWQpOwogCXZh bHVlc1tBbnVtX3BnX2Nhc3RfY2FzdGNvbnRleHQgLSAxXSA9IENoYXJHZXREYXR1bShjYXN0Y29u dGV4dCk7CiAJdmFsdWVzW0FudW1fcGdfY2FzdF9jYXN0bWV0aG9kIC0gMV0gPSBDaGFyR2V0RGF0 dW0oY2FzdG1ldGhvZCk7CisJdmFsdWVzW0FudW1fcGdfY2FzdF9jYXN0ZXJyb3JzYWZlIC0gMV0g PSBCb29sR2V0RGF0dW0oZmFsc2UpOwogCiAJdHVwbGUgPSBoZWFwX2Zvcm1fdHVwbGUoUmVsYXRp b25HZXREZXNjcihyZWxhdGlvbiksIHZhbHVlcywgbnVsbHMpOwogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHIuYwppbmRleCBiMzAyYmUzNmY3My4uNWE0YjllOGI1M2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHIuYwpAQCAtOTksNiArOTksOSBAQCBzdGF0aWMgdm9pZCBFeGVjQnVpbGRBZ2dUcmFuc0NhbGwo RXhwclN0YXRlICpzdGF0ZSwgQWdnU3RhdGUgKmFnZ3N0YXRlLAogc3RhdGljIHZvaWQgRXhlY0lu aXRKc29uRXhwcihKc29uRXhwciAqanNleHByLCBFeHByU3RhdGUgKnN0YXRlLAogCQkJCQkJCSBE YXR1bSAqcmVzdiwgYm9vbCAqcmVzbnVsbCwKIAkJCQkJCQkgRXhwckV2YWxTdGVwICpzY3JhdGNo KTsKK3N0YXRpYyB2b2lkIEV4ZWNJbml0U2FmZVR5cGVDYXN0RXhwcihTYWZlVHlwZUNhc3RFeHBy ICpzdGNleHByLCBFeHByU3RhdGUgKnN0YXRlLAorCQkJCQkJCQkJIERhdHVtICpyZXN2LCBib29s ICpyZXNudWxsLAorCQkJCQkJCQkJIEV4cHJFdmFsU3RlcCAqc2NyYXRjaCk7CiBzdGF0aWMgdm9p ZCBFeGVjSW5pdEpzb25Db2VyY2lvbihFeHByU3RhdGUgKnN0YXRlLCBKc29uUmV0dXJuaW5nICpy ZXR1cm5pbmcsCiAJCQkJCQkJCSBFcnJvclNhdmVDb250ZXh0ICplc2NvbnRleHQsIGJvb2wgb21p dF9xdW90ZXMsCiAJCQkJCQkJCSBib29sIGV4aXN0c19jb2VyY2UsCkBAIC0xNzQyLDYgKzE3NDUs NyBAQCBFeGVjSW5pdEV4cHJSZWMoRXhwciAqbm9kZSwgRXhwclN0YXRlICpzdGF0ZSwKIAogCQkJ CWVsZW1zdGF0ZS0+aW5uZXJtb3N0X2Nhc2V2YWwgPSAoRGF0dW0gKikgcGFsbG9jKHNpemVvZihE YXR1bSkpOwogCQkJCWVsZW1zdGF0ZS0+aW5uZXJtb3N0X2Nhc2VudWxsID0gKGJvb2wgKikgcGFs bG9jKHNpemVvZihib29sKSk7CisJCQkJZWxlbXN0YXRlLT5lc2NvbnRleHQgPSBzdGF0ZS0+ZXNj b250ZXh0OwogCiAJCQkJRXhlY0luaXRFeHByUmVjKGFjb2VyY2UtPmVsZW1leHByLCBlbGVtc3Rh dGUsCiAJCQkJCQkJCSZlbGVtc3RhdGUtPnJlc3ZhbHVlLCAmZWxlbXN0YXRlLT5yZXNudWxsKTsK QEAgLTIyMTgsNiArMjIyMiwxNCBAQCBFeGVjSW5pdEV4cHJSZWMoRXhwciAqbm9kZSwgRXhwclN0 YXRlICpzdGF0ZSwKIAkJCQlicmVhazsKIAkJCX0KIAorCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhw cjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICAgKnN0Y2V4cHIgPSBjYXN0Tm9kZShTYWZl VHlwZUNhc3RFeHByLCBub2RlKTsKKworCQkJCUV4ZWNJbml0U2FmZVR5cGVDYXN0RXhwcihzdGNl eHByLCBzdGF0ZSwgcmVzdiwgcmVzbnVsbCwgJnNjcmF0Y2gpOworCQkJCWJyZWFrOworCQkJfQor CiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQl7CiAJCQkJQ29hbGVzY2VFeHByICpjb2FsZXNj ZSA9IChDb2FsZXNjZUV4cHIgKikgbm9kZTsKQEAgLTI3ODQsNyArMjc5Niw3IEBAIEV4ZWNJbml0 RnVuYyhFeHByRXZhbFN0ZXAgKnNjcmF0Y2gsIEV4cHIgKm5vZGUsIExpc3QgKmFyZ3MsIE9pZCBm dW5jaWQsCiAKIAkvKiBJbml0aWFsaXplIGZ1bmN0aW9uIGNhbGwgcGFyYW1ldGVyIHN0cnVjdHVy ZSB0b28gKi8KIAlJbml0RnVuY3Rpb25DYWxsSW5mb0RhdGEoKmZjaW5mbywgZmxpbmZvLAotCQkJ CQkJCSBuYXJncywgaW5wdXRjb2xsaWQsIE5VTEwsIE5VTEwpOworCQkJCQkJCSBuYXJncywgaW5w dXRjb2xsaWQsIChOb2RlICopIHN0YXRlLT5lc2NvbnRleHQsIE5VTEwpOwogCiAJLyogS2VlcCBl eHRyYSBjb3BpZXMgb2YgdGhpcyBpbmZvIHRvIHNhdmUgYW4gaW5kaXJlY3Rpb24gYXQgcnVudGlt ZSAqLwogCXNjcmF0Y2gtPmQuZnVuYy5mbl9hZGRyID0gZmxpbmZvLT5mbl9hZGRyOwpAQCAtNDc4 Miw2ICs0Nzk0LDY4IEBAIEV4ZWNCdWlsZFBhcmFtU2V0RXF1YWwoVHVwbGVEZXNjIGRlc2MsCiAJ cmV0dXJuIHN0YXRlOwogfQogCisvKgorICogUHVzaCBzdGVwcyB0byBldmFsdWF0ZSBhIFNhZmVU eXBlQ2FzdEV4cHIgYW5kIGl0cyB2YXJpb3VzIHN1YnNpZGlhcnkKKyAqIGV4cHJlc3Npb25zLgor ICovCitzdGF0aWMgdm9pZAorRXhlY0luaXRTYWZlVHlwZUNhc3RFeHByKFNhZmVUeXBlQ2FzdEV4 cHIgKnN0Y2V4cHIgLCBFeHByU3RhdGUgKnN0YXRlLAorCQkJCQkJIERhdHVtICpyZXN2LCBib29s ICpyZXNudWxsLAorCQkJCQkJIEV4cHJFdmFsU3RlcCAqc2NyYXRjaCkKK3sKKwkvKgorCSAqIElm IHdlIGNhbiBub3QgY29lcmNlIHRvIHRoZSB0YXJnZXQgdHlwZSwgZmFsbGJhY2sgdG8gdGhlIERF RkFVTFQKKwkgKiBleHByZXNzaW9uIHNwZWNpZmllZCBpbiB0aGUgT04gQ09OVkVSU0lPTiBFUlJP UiBjbGF1c2UsIGFuZCB3ZSBhcmUgZG9uZS4KKwkgKi8KKwlpZiAoc3RjZXhwci0+Y2FzdF9leHBy ID09IE5VTEwpCisJeworCQlFeGVjSW5pdEV4cHJSZWMoKEV4cHIgKikgc3RjZXhwci0+ZGVmYXVs dF9leHByLAorCQkJCQkJc3RhdGUsIHJlc3YsIHJlc251bGwpOworCQlyZXR1cm47CisJfQorCWVs c2UKKwl7CisJCUV4cHJFdmFsU3RlcCAqYXM7CisJCVNhZmVUeXBlQ2FzdFN0YXRlICpzdGNzdGF0 ZTsKKwkJRXJyb3JTYXZlQ29udGV4dCAqc2F2ZWRfZXNjb250ZXh0OworCQlpbnQJCQkJanVtcHNf dG9fZW5kOworCisJCXN0Y3N0YXRlID0gcGFsbG9jMChzaXplb2YoU2FmZVR5cGVDYXN0U3RhdGUp KTsKKwkJc3Rjc3RhdGUtPnN0Y2V4cHIgPSBzdGNleHByOworCQlzdGNzdGF0ZS0+ZXNjb250ZXh0 LnR5cGUgPSBUX0Vycm9yU2F2ZUNvbnRleHQ7CisJCXN0YXRlLT5lc2NvbnRleHQgPSAmc3Rjc3Rh dGUtPmVzY29udGV4dDsKKworCQkvKiBldmFsdWF0ZSBhcmd1bWVudCBleHByZXNzaW9uIGludG8g c3RlcCdzIHJlc3VsdCBhcmVhICovCisJCUV4ZWNJbml0RXhwclJlYygoRXhwciAqKSBzdGNleHBy LT5jYXN0X2V4cHIsCisJCQkJCQlzdGF0ZSwgcmVzdiwgcmVzbnVsbCk7CisKKwkJc2NyYXRjaC0+ b3Bjb2RlID0gRUVPUF9TQUZFVFlQRV9DQVNUOworCQlzY3JhdGNoLT5kLnN0Y2V4cHIuc3Rjc3Rh dGUgPSBzdGNzdGF0ZTsKKwkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgc2NyYXRjaCk7CisJCXN0 Y3N0YXRlLT5qdW1wX2Vycm9yID0gc3RhdGUtPnN0ZXBzX2xlbjsKKworCQkvKiBKVU1QIHRvIGVu ZCBpZiBmYWxzZSwgdGhhdCBpcywgc2tpcCB0aGUgT04gRVJST1IgZXhwcmVzc2lvbi4gKi8KKwkJ anVtcHNfdG9fZW5kID0gc3RhdGUtPnN0ZXBzX2xlbjsKKwkJc2NyYXRjaC0+b3Bjb2RlID0gRUVP UF9KVU1QX0lGX05PVF9UUlVFOworCQlzY3JhdGNoLT5yZXN2YWx1ZSA9ICZzdGNzdGF0ZS0+ZXJy b3IudmFsdWU7CisJCXNjcmF0Y2gtPnJlc251bGwgPSAmc3Rjc3RhdGUtPmVycm9yLmlzbnVsbDsK KwkJc2NyYXRjaC0+ZC5qdW1wLmp1bXBkb25lID0gLTE7CS8qIHNldCBiZWxvdyAqLworCQlFeHBy RXZhbFB1c2hTdGVwKHN0YXRlLCBzY3JhdGNoKTsKKworCQkvKiBTdGVwcyB0byBldmFsdWF0ZSB0 aGUgT04gRVJST1IgZXhwcmVzc2lvbiAqLworCQlzYXZlZF9lc2NvbnRleHQgPSBzdGF0ZS0+ZXNj b250ZXh0OworCQlzdGF0ZS0+ZXNjb250ZXh0ID0gTlVMTDsKKwkJRXhlY0luaXRFeHByUmVjKChF eHByICopIHN0Y3N0YXRlLT5zdGNleHByLT5kZWZhdWx0X2V4cHIsCisJCQkJCQlzdGF0ZSwgcmVz diwgcmVzbnVsbCk7CisJCXN0YXRlLT5lc2NvbnRleHQgPSBzYXZlZF9lc2NvbnRleHQ7CisKKwkJ YXMgPSAmc3RhdGUtPnN0ZXBzW2p1bXBzX3RvX2VuZF07CisJCWFzLT5kLmp1bXAuanVtcGRvbmUg PSBzdGF0ZS0+c3RlcHNfbGVuOworCisJCXN0Y3N0YXRlLT5qdW1wX2VuZCA9IHN0YXRlLT5zdGVw c19sZW47CisJfQorfQorCiAvKgogICogUHVzaCBzdGVwcyB0byBldmFsdWF0ZSBhIEpzb25FeHBy IGFuZCBpdHMgdmFyaW91cyBzdWJzaWRpYXJ5IGV4cHJlc3Npb25zLgogICovCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0V4cHJJbnRlcnAuYwppbmRleCA2N2Y0ZTAwZWFjNC4uYmQ4YjEwNDhjNWYgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKKysrIGIvc3Jj L2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAtNTY4LDYgKzU2OCw3IEBAIEV4 ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwgYm9v bCAqaXNudWxsKQogCQkmJkNBU0VfRUVPUF9YTUxFWFBSLAogCQkmJkNBU0VfRUVPUF9KU09OX0NP TlNUUlVDVE9SLAogCQkmJkNBU0VfRUVPUF9JU19KU09OLAorCQkmJkNBU0VfRUVPUF9TQUZFVFlQ RV9DQVNULAogCQkmJkNBU0VfRUVPUF9KU09ORVhQUl9QQVRILAogCQkmJkNBU0VfRUVPUF9KU09O RVhQUl9DT0VSQ0lPTiwKIAkJJiZDQVNFX0VFT1BfSlNPTkVYUFJfQ09FUkNJT05fRklOSVNILApA QCAtMTkyNiw2ICsxOTI3LDEyIEBAIEV4ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4 cHJDb250ZXh0ICplY29udGV4dCwgYm9vbCAqaXNudWxsKQogCQkJRUVPX05FWFQoKTsKIAkJfQog CisJCUVFT19DQVNFKEVFT1BfU0FGRVRZUEVfQ0FTVCkKKwkJeworCQkJLyogdG9vIGNvbXBsZXgg Zm9yIGFuIGlubGluZSBpbXBsZW1lbnRhdGlvbiAqLworCQkJRUVPX0pVTVAoRXhlY0V2YWxTYWZl VHlwZUNhc3Qoc3RhdGUsIG9wKSk7CisJCX0KKwogCQlFRU9fQ0FTRShFRU9QX0pTT05FWFBSX1BB VEgpCiAJCXsKIAkJCS8qIHRvbyBjb21wbGV4IGZvciBhbiBpbmxpbmUgaW1wbGVtZW50YXRpb24g Ki8KQEAgLTM2NDQsNiArMzY1MSwxMiBAQCBFeGVjRXZhbEFycmF5Q29lcmNlKEV4cHJTdGF0ZSAq c3RhdGUsIEV4cHJFdmFsU3RlcCAqb3AsIEV4cHJDb250ZXh0ICplY29udGV4dCkKIAkJCQkJCQkg IGVjb250ZXh0LAogCQkJCQkJCSAgb3AtPmQuYXJyYXljb2VyY2UucmVzdWx0ZWxlbXR5cGUsCiAJ CQkJCQkJICBvcC0+ZC5hcnJheWNvZXJjZS5hbXN0YXRlKTsKKworCWlmIChTT0ZUX0VSUk9SX09D Q1VSUkVEKG9wLT5kLmFycmF5Y29lcmNlLmVsZW1leHByc3RhdGUtPmVzY29udGV4dCkpCisJewor CQkqb3AtPnJlc3ZhbHVlID0gKERhdHVtKSAwOworCQkqb3AtPnJlc251bGwgPSB0cnVlOworCX0K IH0KIAogLyoKQEAgLTUxODMsNiArNTE5NiwzMCBAQCBHZXRKc29uQmVoYXZpb3JWYWx1ZVN0cmlu ZyhKc29uQmVoYXZpb3IgKmJlaGF2aW9yKQogCXJldHVybiBwc3RyZHVwKGJlaGF2aW9yX25hbWVz W2JlaGF2aW9yLT5idHlwZV0pOwogfQogCitpbnQKK0V4ZWNFdmFsU2FmZVR5cGVDYXN0KEV4cHJT dGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3ApCit7CisJU2FmZVR5cGVDYXN0U3RhdGUgKnN0 Y3N0YXRlID0gb3AtPmQuc3RjZXhwci5zdGNzdGF0ZTsKKworCWlmIChTT0ZUX0VSUk9SX09DQ1VS UkVEKCZzdGNzdGF0ZS0+ZXNjb250ZXh0KSkKKwl7CisJCSpvcC0+cmVzdmFsdWUgPSAoRGF0dW0p IDA7CisJCSpvcC0+cmVzbnVsbCA9IHRydWU7CisKKwkJc3Rjc3RhdGUtPmVycm9yLnZhbHVlID0g Qm9vbEdldERhdHVtKHRydWUpOworCisJCS8qCisJCSAqIFJlc2V0IGZvciBuZXh0IHVzZSBzdWNo IGFzIGZvciBjYXRjaGluZyBlcnJvcnMgd2hlbiBjb2VyY2luZyBhCisJCSAqIGV4cHJlc3Npb24u CisJCSAqLworCQlzdGNzdGF0ZS0+ZXNjb250ZXh0LmVycm9yX29jY3VycmVkID0gZmFsc2U7CisJ CXN0Y3N0YXRlLT5lc2NvbnRleHQuZGV0YWlsc193YW50ZWQgPSBmYWxzZTsKKworCQlyZXR1cm4g c3Rjc3RhdGUtPmp1bXBfZXJyb3I7CisJfQorCXJldHVybiBzdGNzdGF0ZS0+anVtcF9lbmQ7Cit9 CisKIC8qCiAgKiBDaGVja3MgaWYgYW4gZXJyb3Igb2NjdXJyZWQgaW4gRXhlY0V2YWxKc29uQ29l cmNpb24oKS4gIElmIHNvLCB0aGlzIHNldHMKICAqIEpzb25FeHByU3RhdGUuZXJyb3IgdG8gdHJp Z2dlciB0aGUgT04gRVJST1IgaGFuZGxpbmcgc3RlcHMsIHVubGVzcyB0aGUKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jIGIvc3JjL2JhY2tlbmQvaml0L2xs dm0vbGx2bWppdF9leHByLmMKaW5kZXggNzEyYjM1ZGY3ZTUuLmY1NGZlNTYzNTQzIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYworKysgYi9zcmMvYmFja2Vu ZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYwpAQCAtMjI1Niw2ICsyMjU2LDU1IEBAIGxsdm1fY29t cGlsZV9leHByKEV4cHJTdGF0ZSAqc3RhdGUpCiAJCQkJTExWTUJ1aWxkQnIoYiwgb3BibG9ja3Nb b3BubyArIDFdKTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSBFRU9QX1NBRkVUWVBFX0NBU1Q6CisJ CQkJeworCQkJCQlTYWZlVHlwZUNhc3RTdGF0ZSAqc3Rjc3RhdGUgPSBvcC0+ZC5zdGNleHByLnN0 Y3N0YXRlOworCQkJCQlMTFZNVmFsdWVSZWYgdl9yZXQ7CisKKwkJCQkJLyoKKwkJCQkJICogQ2Fs bCBFeGVjRXZhbFNhZmVUeXBlQ2FzdCgpLiAgSXQgcmV0dXJucyB0aGUgYWRkcmVzcyBvZgorCQkJ CQkgKiB0aGUgc3RlcCB0byBwZXJmb3JtIG5leHQuCisJCQkJCSAqLworCQkJCQl2X3JldCA9IGJ1 aWxkX0V2YWxYRnVuYyhiLCBtb2QsICJFeGVjRXZhbFNhZmVUeXBlQ2FzdCIsCisJCQkJCQkJCQkJ CXZfc3RhdGUsIG9wLCB2X2Vjb250ZXh0KTsKKworCQkJCQkvKgorCQkJCQkgKiBCdWlsZCBhIHN3 aXRjaCB0byBtYXAgdGhlIHJldHVybiB2YWx1ZSAodl9yZXQgYWJvdmUpLAorCQkJCQkgKiB3aGlj aCBpcyBhIHJ1bnRpbWUgdmFsdWUgb2YgdGhlIHN0ZXAgYWRkcmVzcyB0byBwZXJmb3JtCisJCQkJ CSAqIG5leHQgdG8ganVtcF9lcnJvcgorCQkJCQkgKi8KKwkJCQkJaWYgKHN0Y3N0YXRlLT5qdW1w X2Vycm9yID49IDApCisJCQkJCXsKKwkJCQkJCUxMVk1WYWx1ZVJlZiB2X2p1bXBfZXJyb3I7CisJ CQkJCQlMTFZNVmFsdWVSZWYgdl9zd2l0Y2g7CisJCQkJCQlMTFZNQmFzaWNCbG9ja1JlZiBiX2Rv bmUsCisJCQkJCQkJCQliX2Vycm9yOworCisJCQkJCQliX2Vycm9yID0KKwkJCQkJCQlsX2JiX2Jl Zm9yZV92KG9wYmxvY2tzW29wbm8gKyAxXSwKKwkJCQkJCQkJCQkgICJvcC4lZC5zdGNleHByX2Vy cm9yIiwgb3Bubyk7CisJCQkJCQliX2RvbmUgPQorCQkJCQkJCWxfYmJfYmVmb3JlX3Yob3BibG9j a3Nbb3BubyArIDFdLAorCQkJCQkJCQkJCSAgIm9wLiVkLnN0Y2V4cHJfZG9uZSIsIG9wbm8pOwor CisJCQkJCQl2X3N3aXRjaCA9IExMVk1CdWlsZFN3aXRjaChiLAorCQkJCQkJCQkJCQkJICAgdl9y ZXQsCisJCQkJCQkJCQkJCQkgICBiX2RvbmUsCisJCQkJCQkJCQkJCQkgICAxKTsKKworCQkJCQkJ LyogUmV0dXJuZWQgc3Rjc3RhdGUtPmp1bXBfZXJyb3I/ICovCisJCQkJCQl2X2p1bXBfZXJyb3Ig PSBsX2ludDMyX2NvbnN0KGxjLCBzdGNzdGF0ZS0+anVtcF9lcnJvcik7CisJCQkJCQlMTFZNQWRk Q2FzZSh2X3N3aXRjaCwgdl9qdW1wX2Vycm9yLCBiX2Vycm9yKTsKKworCQkJCQkJLyogT04gRVJS T1IgY29kZSAqLworCQkJCQkJTExWTVBvc2l0aW9uQnVpbGRlckF0RW5kKGIsIGJfZXJyb3IpOwor CQkJCQkJTExWTUJ1aWxkQnIoYiwgb3BibG9ja3Nbc3Rjc3RhdGUtPmp1bXBfZXJyb3JdKTsKKwor CQkJCQkJTExWTVBvc2l0aW9uQnVpbGRlckF0RW5kKGIsIGJfZG9uZSk7CisJCQkJCX0KKwkJCQkJ TExWTUJ1aWxkQnIoYiwgb3BibG9ja3Nbc3Rjc3RhdGUtPmp1bXBfZW5kXSk7CisJCQkJCWJyZWFr OworCQkJCX0KIAkJCWNhc2UgRUVPUF9KU09ORVhQUl9QQVRIOgogCQkJCXsKIAkJCQkJSnNvbkV4 cHJTdGF0ZSAqanNlc3RhdGUgPSBvcC0+ZC5qc29uZXhwci5qc2VzdGF0ZTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1 bmNzLmMKaW5kZXggZWRlODM4Y2Q0MGMuLmZlM2U2YjExYTA4IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9ub2Rlcy9ub2RlRnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3Mu YwpAQCAtMjA2LDYgKzIwNiw5IEBAIGV4cHJUeXBlKGNvbnN0IE5vZGUgKmV4cHIpCiAJCWNhc2Ug VF9Sb3dDb21wYXJlRXhwcjoKIAkJCXR5cGUgPSBCT09MT0lEOwogCQkJYnJlYWs7CisJCWNhc2Ug VF9TYWZlVHlwZUNhc3RFeHByOgorCQkJdHlwZSA9ICgoY29uc3QgU2FmZVR5cGVDYXN0RXhwciAq KSBleHByKS0+cmVzdWx0dHlwZTsKKwkJCWJyZWFrOwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgog CQkJdHlwZSA9ICgoY29uc3QgQ29hbGVzY2VFeHByICopIGV4cHIpLT5jb2FsZXNjZXR5cGU7CiAJ CQlicmVhazsKQEAgLTQ1MCw2ICs0NTMsOCBAQCBleHByVHlwbW9kKGNvbnN0IE5vZGUgKmV4cHIp CiAJCQkJcmV0dXJuIHR5cG1vZDsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVD YXN0RXhwcjoKKwkJCXJldHVybiAoKGNvbnN0IFNhZmVUeXBlQ2FzdEV4cHIgKikgZXhwciktPnJl c3VsdHR5cG1vZDsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCXsKIAkJCQkvKgpAQCAtOTY1 LDYgKzk3MCw5IEBAIGV4cHJDb2xsYXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJCS8qIFJvd0Nv bXBhcmVFeHByJ3MgcmVzdWx0IGlzIGJvb2xlYW4gLi4uICovCiAJCQljb2xsID0gSW52YWxpZE9p ZDsJLyogLi4uIHNvIGl0IGhhcyBubyBjb2xsYXRpb24gKi8KIAkJCWJyZWFrOworCQljYXNlIFRf U2FmZVR5cGVDYXN0RXhwcjoKKwkJCWNvbGwgPSAoKGNvbnN0IFNhZmVUeXBlQ2FzdEV4cHIgKikg ZXhwciktPnJlc3VsdGNvbGxpZDsKKwkJCWJyZWFrOwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgog CQkJY29sbCA9ICgoY29uc3QgQ29hbGVzY2VFeHByICopIGV4cHIpLT5jb2FsZXNjZWNvbGxpZDsK IAkJCWJyZWFrOwpAQCAtMTIzMiw2ICsxMjQwLDkgQEAgZXhwclNldENvbGxhdGlvbihOb2RlICpl eHByLCBPaWQgY29sbGF0aW9uKQogCQkJLyogUm93Q29tcGFyZUV4cHIncyByZXN1bHQgaXMgYm9v bGVhbiAuLi4gKi8KIAkJCUFzc2VydCghT2lkSXNWYWxpZChjb2xsYXRpb24pKTsgLyogLi4uIHNv IG5ldmVyIHNldCBhIGNvbGxhdGlvbiAqLwogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNh c3RFeHByOgorCQkJKChTYWZlVHlwZUNhc3RFeHByICopIGV4cHIpLT5yZXN1bHRjb2xsaWQgPSBj b2xsYXRpb247CisJCQlicmVhazsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCSgoQ29hbGVz Y2VFeHByICopIGV4cHIpLT5jb2FsZXNjZWNvbGxpZCA9IGNvbGxhdGlvbjsKIAkJCWJyZWFrOwpA QCAtMTcwNiw2ICsxNzE3LDkgQEAgZXhwckxvY2F0aW9uKGNvbnN0IE5vZGUgKmV4cHIpCiAJCQkJ bG9jID0gbGVmdG1vc3RMb2MobG9jLCB0Yy0+bG9jYXRpb24pOwogCQkJfQogCQkJYnJlYWs7CisJ CWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJbG9jID0gKChjb25zdCBTYWZlVHlwZUNhc3RF eHByICopIGV4cHIpLT5sb2NhdGlvbjsKKwkJCWJyZWFrOwogCQljYXNlIFRfQ29sbGF0ZUNsYXVz ZToKIAkJCS8qIGp1c3QgdXNlIGFyZ3VtZW50J3MgbG9jYXRpb24gKi8KIAkJCWxvYyA9IGV4cHJM b2NhdGlvbigoKGNvbnN0IENvbGxhdGVDbGF1c2UgKikgZXhwciktPmFyZyk7CkBAIC0yMzIxLDYg KzIzMzUsMTggQEAgZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJ CXJldHVybiB0cnVlOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHBy OgorCQkJeworCQkJCVNhZmVUeXBlQ2FzdEV4cHIgICAqc2NleHByID0gKFNhZmVUeXBlQ2FzdEV4 cHIgKikgbm9kZTsKKworCQkJCWlmIChXQUxLKHNjZXhwci0+c291cmNlX2V4cHIpKQorCQkJCQly ZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhzY2V4cHItPmNhc3RfZXhwcikpCisJCQkJCXJldHVy biB0cnVlOworCQkJCWlmIChXQUxLKHNjZXhwci0+ZGVmYXVsdF9leHByKSkKKwkJCQkJcmV0dXJu IHRydWU7CisJCQl9CisJCQlicmVhazsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCXJldHVy biBXQUxLKCgoQ29hbGVzY2VFeHByICopIG5vZGUpLT5hcmdzKTsKIAkJY2FzZSBUX01pbk1heEV4 cHI6CkBAIC0zMzMwLDYgKzMzNTYsMTkgQEAgZXhwcmVzc2lvbl90cmVlX211dGF0b3JfaW1wbChO b2RlICpub2RlLAogCQkJCXJldHVybiAoTm9kZSAqKSBuZXdub2RlOwogCQkJfQogCQkJYnJlYWs7 CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJeworCQkJCVNhZmVUeXBlQ2FzdEV4cHIg ICAqc2NleHByID0gKFNhZmVUeXBlQ2FzdEV4cHIgKikgbm9kZTsKKwkJCQlTYWZlVHlwZUNhc3RF eHByICAgKm5ld25vZGU7CisKKwkJCQlGTEFUQ09QWShuZXdub2RlLCBzY2V4cHIsIFNhZmVUeXBl Q2FzdEV4cHIpOworCQkJCU1VVEFURShuZXdub2RlLT5zb3VyY2VfZXhwciwgc2NleHByLT5zb3Vy Y2VfZXhwciwgTm9kZSAqKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+Y2FzdF9leHByLCBzY2V4cHIt PmNhc3RfZXhwciwgTm9kZSAqKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+ZGVmYXVsdF9leHByLCBz Y2V4cHItPmRlZmF1bHRfZXhwciwgTm9kZSAqKTsKKworCQkJCXJldHVybiAoTm9kZSAqKSBuZXdu b2RlOworCQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQl7CiAJCQkJ Q29hbGVzY2VFeHByICpjb2FsZXNjZWV4cHIgPSAoQ29hbGVzY2VFeHByICopIG5vZGU7CkBAIC00 NDY0LDYgKzQ1MDMsMjggQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpu b2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5 cGVDYXN0OgorCQkJeworCQkJCVNhZmVUeXBlQ2FzdCAgICpzYyA9IChTYWZlVHlwZUNhc3QgKikg bm9kZTsKKworCQkJCWlmIChXQUxLKHNjLT5jYXN0KSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJ aWYgKFdBTEsoc2MtPnJhd19kZWZhdWx0KSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQl9CisJCQli cmVhazsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl7CisJCQkJU2FmZVR5cGVDYXN0 RXhwciAgICpzdGMgPSAoU2FmZVR5cGVDYXN0RXhwciAqKSBub2RlOworCisJCQkJaWYgKFdBTEso c3RjLT5zb3VyY2VfZXhwcikpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChXQUxLKHN0Yy0+ Y2FzdF9leHByKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsoc3RjLT5kZWZhdWx0 X2V4cHIpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfQ29s bGF0ZUNsYXVzZToKIAkJCXJldHVybiBXQUxLKCgoQ29sbGF0ZUNsYXVzZSAqKSBub2RlKS0+YXJn KTsKIAkJY2FzZSBUX1NvcnRCeToKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91 dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwppbmRl eCAzZjlmZjQ1NWJhNi4uNTY2NDkxNjI4NDUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGlt aXplci91dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1 c2VzLmMKQEAgLTI5NDUsNiArMjk0NSwzMSBAQCBldmFsX2NvbnN0X2V4cHJlc3Npb25zX211dGF0 b3IoTm9kZSAqbm9kZSwKIAkJCQkJCQkJCQkJCSAgY29weU9iamVjdChqdmUtPmZvcm1hdCkpOwog CQkJfQogCisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJeworCQkJCVNhZmVUeXBlQ2Fz dEV4cHIgCSpzdGMgPSAoU2FmZVR5cGVDYXN0RXhwciAqKSBub2RlOworCQkJCVNhZmVUeXBlQ2Fz dEV4cHIJKm5ld2V4cHI7CisJCQkJTm9kZQkgICAqc291cmNlX2V4cHIgPSBzdGMtPnNvdXJjZV9l eHByOworCQkJCU5vZGUJICAgKmRlZmF1bHRfZXhwciA9IHN0Yy0+ZGVmYXVsdF9leHByOworCisJ CQkJaWYgKHN0Yy0+Y2FzdF9leHByICE9IE5VTEwpCisJCQkJCXNvdXJjZV9leHByID0gZXZhbF9j b25zdF9leHByZXNzaW9uc19tdXRhdG9yKHNvdXJjZV9leHByLCBjb250ZXh0KTsKKwkJCQlkZWZh dWx0X2V4cHIgPSBldmFsX2NvbnN0X2V4cHJlc3Npb25zX211dGF0b3IoZGVmYXVsdF9leHByLCBj b250ZXh0KTsKKworCQkJCS8qCisJCQkJICogV2UgbXVzdCBub3QgcmVkdWNlIGFueSByZWNvZ25p emFibHkgY29uc3RhbnQgc3ViZXhwcmVzc2lvbnMKKwkJCQkgKiBpbiBjYXN0X2V4cHIgaGVyZSwg c2luY2Ugd2UgZG9u4oCZdCB3YW50IGl0IHRvIGZhaWwKKwkJCQkgKiBwcmVtYXR1cmVseS4KKwkJ CQkgKi8KKwkJCQluZXdleHByID0gbWFrZU5vZGUoU2FmZVR5cGVDYXN0RXhwcik7CisJCQkJbmV3 ZXhwci0+c291cmNlX2V4cHIgPSBzb3VyY2VfZXhwcjsKKwkJCQluZXdleHByLT5jYXN0X2V4cHIg PSBzdGMtPmNhc3RfZXhwcjsKKwkJCQluZXdleHByLT5kZWZhdWx0X2V4cHIgPSBkZWZhdWx0X2V4 cHI7CisJCQkJbmV3ZXhwci0+cmVzdWx0dHlwZSA9IHN0Yy0+cmVzdWx0dHlwZTsKKwkJCQluZXdl eHByLT5yZXN1bHR0eXBtb2QgPSBzdGMtPnJlc3VsdHR5cG1vZDsKKwkJCQluZXdleHByLT5yZXN1 bHRjb2xsaWQgPSBzdGMtPnJlc3VsdGNvbGxpZDsKKwkJCQlyZXR1cm4gKE5vZGUgKikgbmV3ZXhw cjsKKwkJCX0KIAkJY2FzZSBUX1N1YlBsYW46CiAJCWNhc2UgVF9BbHRlcm5hdGl2ZVN1YlBsYW46 CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55CmluZGV4IGE0YjI5YzgyMmU4Li5hOGM3NWY1MzM2MyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 CkBAIC0xNTk5Myw2ICsxNTk5MywyOCBAQCBmdW5jX2V4cHJfY29tbW9uX3N1YmV4cHI6CiAJCQkJ fQogCQkJfCBDQVNUICcoJyBhX2V4cHIgQVMgVHlwZW5hbWUgJyknCiAJCQkJeyAkJCA9IG1ha2VU eXBlQ2FzdCgkMywgJDUsIEAxKTsgfQorCQkJfCBDQVNUICcoJyBhX2V4cHIgQVMgVHlwZW5hbWUg RVJST1JfUCBPTiBDT05WRVJTSU9OX1AgRVJST1JfUCAnKScKKwkJCQl7ICQkID0gbWFrZVR5cGVD YXN0KCQzLCAkNSwgQDEpOyB9CisJCQl8IENBU1QgJygnIGFfZXhwciBBUyBUeXBlbmFtZSBOVUxM X1AgT04gQ09OVkVSU0lPTl9QIEVSUk9SX1AgJyknCisJCQkJeworCQkJCQlUeXBlQ2FzdCAqY2Fz dCA9IChUeXBlQ2FzdCAqKSBtYWtlVHlwZUNhc3QoJDMsICQ1LCBAMSk7CisKKwkJCQkJU2FmZVR5 cGVDYXN0ICpzYWZlY2FzdCA9IG1ha2VOb2RlKFNhZmVUeXBlQ2FzdCk7CisJCQkJCXNhZmVjYXN0 LT5jYXN0ID0gKE5vZGUgKikgY2FzdDsKKwkJCQkJc2FmZWNhc3QtPnJhd19kZWZhdWx0ID0gbWFr ZU51bGxBQ29uc3QoLTEpOzsKKworCQkJCQkkJCA9IChOb2RlICopIHNhZmVjYXN0OworCQkJCX0K KwkJCXwgQ0FTVCAnKCcgYV9leHByIEFTIFR5cGVuYW1lIERFRkFVTFQgYV9leHByIE9OIENPTlZF UlNJT05fUCBFUlJPUl9QICcpJworCQkJCXsKKwkJCQkJVHlwZUNhc3QgKmNhc3QgPSAoVHlwZUNh c3QgKikgbWFrZVR5cGVDYXN0KCQzLCAkNSwgQDEpOworCisJCQkJCVNhZmVUeXBlQ2FzdCAqc2Fm ZWNhc3QgPSBtYWtlTm9kZShTYWZlVHlwZUNhc3QpOworCQkJCQlzYWZlY2FzdC0+Y2FzdCA9IChO b2RlICopIGNhc3Q7CisJCQkJCXNhZmVjYXN0LT5yYXdfZGVmYXVsdCA9ICQ3OworCisJCQkJCSQk ID0gKE5vZGUgKikgc2FmZWNhc3Q7CisJCQkJfQogCQkJfCBFWFRSQUNUICcoJyBleHRyYWN0X2xp c3QgJyknCiAJCQkJewogCQkJCQkkJCA9IChOb2RlICopIG1ha2VGdW5jQ2FsbChTeXN0ZW1GdW5j TmFtZSgiZXh0cmFjdCIpLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Fn Zy5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCmluZGV4IDMyNTRjODNjYzZjLi42 NTczZTJhOTNlYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwpAQCAtNDg2LDYgKzQ4NiwxMiBAQCBj aGVja19hZ2dsZXZlbHNfYW5kX2NvbnN0cmFpbnRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAq ZXhwcikKIAkJCQllcnIgPSBfKCJncm91cGluZyBvcGVyYXRpb25zIGFyZSBub3QgYWxsb3dlZCBp biBjaGVjayBjb25zdHJhaW50cyIpOwogCiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQ0FT VF9ERUZBVUxUOgorCQkJaWYgKGlzQWdnKQorCQkJCWVyciA9IF8oImFnZ3JlZ2F0ZSBmdW5jdGlv bnMgYXJlIG5vdCBhbGxvd2VkIGluIENBU1QgREVGQVVMVCBleHByZXNzaW9ucyIpOworCQkJZWxz ZQorCQkJCWVyciA9IF8oImdyb3VwaW5nIG9wZXJhdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIENB U1QgREVGQVVMVCBleHByZXNzaW9ucyIpOworCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NP TFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgogCkBAIC05 NTYsNiArOTYyLDkgQEAgdHJhbnNmb3JtV2luZG93RnVuY0NhbGwoUGFyc2VTdGF0ZSAqcHN0YXRl LCBXaW5kb3dGdW5jICp3ZnVuYywKIAkJY2FzZSBFWFBSX0tJTkRfRE9NQUlOX0NIRUNLOgogCQkJ ZXJyID0gXygid2luZG93IGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gY2hlY2sgY29uc3Ry YWludHMiKTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9DQVNUX0RFRkFVTFQ6CisJCQll cnIgPSBfKCJ3aW5kb3cgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBDQVNUIERFRkFVTFQg ZXhwcmVzc2lvbnMiKTsKKwkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVM VDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKIAkJCWVyciA9IF8oIndpbmRv dyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IDEyMTE5ZjE0N2ZjLi44ZmM4ZWU0N2FlYSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfZXhwci5jCkBAIC0xNyw2ICsxNyw4IEBACiAKICNpbmNsdWRlICJhY2Nlc3Mv aHR1cF9kZXRhaWxzLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19hZ2dyZWdhdGUuaCIKKyNpbmNs dWRlICJjYXRhbG9nL3BnX2Nhc3QuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJtaXNjYWRtaW4uaCIKICNpbmNs dWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKQEAgLTM3LDYgKzM5LDcgQEAKICNpbmNsdWRlICJ1dGls cy9kYXRlLmgiCiAjaW5jbHVkZSAidXRpbHMvZm1ncm9pZHMuaCIKICNpbmNsdWRlICJ1dGlscy9s c3lzY2FjaGUuaCIKKyNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxz L3RpbWVzdGFtcC5oIgogI2luY2x1ZGUgInV0aWxzL3htbC5oIgogCkBAIC02MCw3ICs2Myw4IEBA IHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1NdWx0aUFzc2lnblJlZihQYXJzZVN0YXRlICpwc3RhdGUs IE11bHRpQXNzaWduUmVmICptYXJlZik7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtQ2FzZUV4cHIo UGFyc2VTdGF0ZSAqcHN0YXRlLCBDYXNlRXhwciAqYyk7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3Jt U3ViTGluayhQYXJzZVN0YXRlICpwc3RhdGUsIFN1YkxpbmsgKnN1YmxpbmspOwogc3RhdGljIE5v ZGUgKnRyYW5zZm9ybUFycmF5RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIEFfQXJyYXlFeHByICph LAotCQkJCQkJCQlPaWQgYXJyYXlfdHlwZSwgT2lkIGVsZW1lbnRfdHlwZSwgaW50MzIgdHlwbW9k KTsKKwkJCQkJCQkJT2lkIGFycmF5X3R5cGUsIE9pZCBlbGVtZW50X3R5cGUsIGludDMyIHR5cG1v ZCwKKwkJCQkJCQkJYm9vbCAqY2FuX2NvZXJjZSk7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtUm93 RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIFJvd0V4cHIgKnIsIGJvb2wgYWxsb3dEZWZhdWx0KTsK IHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Db2FsZXNjZUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBD b2FsZXNjZUV4cHIgKmMpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybU1pbk1heEV4cHIoUGFyc2VT dGF0ZSAqcHN0YXRlLCBNaW5NYXhFeHByICptKTsKQEAgLTc2LDYgKzgwLDcgQEAgc3RhdGljIE5v ZGUgKnRyYW5zZm9ybVdob2xlUm93UmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJICBp bnQgc3VibGV2ZWxzX3VwLCBpbnQgbG9jYXRpb24pOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUlu ZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKTsKIHN0YXRp YyBOb2RlICp0cmFuc2Zvcm1UeXBlQ2FzdChQYXJzZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0ICp0 Yyk7CitzdGF0aWMgTm9kZSAqdHJhbnNmb3JtVHlwZVNhZmVDYXN0KFBhcnNlU3RhdGUgKnBzdGF0 ZSwgU2FmZVR5cGVDYXN0ICp0Yyk7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtQ29sbGF0ZUNsYXVz ZShQYXJzZVN0YXRlICpwc3RhdGUsIENvbGxhdGVDbGF1c2UgKmMpOwogc3RhdGljIE5vZGUgKnRy YW5zZm9ybUpzb25PYmplY3RDb25zdHJ1Y3RvcihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJ CQkJCUpzb25PYmplY3RDb25zdHJ1Y3RvciAqY3Rvcik7CkBAIC0xNjQsMTMgKzE2OSwxNyBAQCB0 cmFuc2Zvcm1FeHByUmVjdXJzZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIpCiAKIAkJ Y2FzZSBUX0FfQXJyYXlFeHByOgogCQkJcmVzdWx0ID0gdHJhbnNmb3JtQXJyYXlFeHByKHBzdGF0 ZSwgKEFfQXJyYXlFeHByICopIGV4cHIsCi0JCQkJCQkJCQkJSW52YWxpZE9pZCwgSW52YWxpZE9p ZCwgLTEpOworCQkJCQkJCQkJCUludmFsaWRPaWQsIEludmFsaWRPaWQsIC0xLCBOVUxMKTsKIAkJ CWJyZWFrOwogCiAJCWNhc2UgVF9UeXBlQ2FzdDoKIAkJCXJlc3VsdCA9IHRyYW5zZm9ybVR5cGVD YXN0KHBzdGF0ZSwgKFR5cGVDYXN0ICopIGV4cHIpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX1Nh ZmVUeXBlQ2FzdDoKKwkJCXJlc3VsdCA9IHRyYW5zZm9ybVR5cGVTYWZlQ2FzdChwc3RhdGUsIChT YWZlVHlwZUNhc3QgKikgZXhwcik7CisJCQlicmVhazsKKwogCQljYXNlIFRfQ29sbGF0ZUNsYXVz ZToKIAkJCXJlc3VsdCA9IHRyYW5zZm9ybUNvbGxhdGVDbGF1c2UocHN0YXRlLCAoQ29sbGF0ZUNs YXVzZSAqKSBleHByKTsKIAkJCWJyZWFrOwpAQCAtNTY0LDYgKzU3Myw3IEBAIHRyYW5zZm9ybUNv bHVtblJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJY2FzZSBFWFBS X0tJTkRfVkFMVUVTX1NJTkdMRToKIAkJY2FzZSBFWFBSX0tJTkRfQ0hFQ0tfQ09OU1RSQUlOVDoK IAkJY2FzZSBFWFBSX0tJTkRfRE9NQUlOX0NIRUNLOgorCQljYXNlIEVYUFJfS0lORF9DQVNUX0RF RkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9L SU5EX0lOREVYX0VYUFJFU1NJT046CiAJCWNhc2UgRVhQUl9LSU5EX0lOREVYX1BSRURJQ0FURToK QEAgLTE4MjQsNiArMTgzNCw5IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0ZSAqcHN0YXRl LCBTdWJMaW5rICpzdWJsaW5rKQogCQljYXNlIEVYUFJfS0lORF9ET01BSU5fQ0hFQ0s6CiAJCQll cnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIGNoZWNrIGNvbnN0cmFpbnQiKTsKIAkJCWJy ZWFrOworCQljYXNlIEVYUFJfS0lORF9DQVNUX0RFRkFVTFQ6CisJCQllcnIgPSBfKCJjYW5ub3Qg dXNlIHN1YnF1ZXJ5IGluIENBU1QgREVGQVVMVCBleHByZXNzaW9uIik7CisJCQlicmVhazsKIAkJ Y2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9O X0RFRkFVTFQ6CiAJCQllcnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIERFRkFVTFQgZXhw cmVzc2lvbiIpOwpAQCAtMjAxMSwxNiArMjAyNCwyMyBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNl U3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKICAqIElmIHRoZSBjYWxsZXIgc3BlY2lm aWVzIHRoZSB0YXJnZXQgdHlwZSwgdGhlIHJlc3VsdGluZyBhcnJheSB3aWxsCiAgKiBiZSBvZiBl eGFjdGx5IHRoYXQgdHlwZS4gIE90aGVyd2lzZSB3ZSB0cnkgdG8gaW5mZXIgYSBjb21tb24gdHlw ZQogICogZm9yIHRoZSBlbGVtZW50cyB1c2luZyBzZWxlY3RfY29tbW9uX3R5cGUoKS4KKyAqCisg KiBNb3N0IG9mIHRoZSB0aW1lLCBjYW5fY29lcmNlIHdpbGwgYmUgTlVMTC4KKyAqIGNhbl9jb2Vy Y2UgaXMgbm90IE5VTEwgb25seSB3aGVuIHBlcmZvcm1pbmcgcGFyc2UgYW5hbHlzaXMgZm9yIGV4 cHJlc3Npb25zCisgKiBsaWtlIENBU1QoREVGQVVMVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUiku IGNhbl9jb2VyY2Ugc2hvdWxkIGJlIGFzc3VtZWQgdG8KKyAqIGRlZmF1bHQgdG8gdHJ1ZS4gSWYg Y29lcmNlIGFycmF5IGVsZW1lbnRzIHRvIHRoZSB0YXJnZXQgdHlwZSBmYWlscywKKyAqIGNhbl9j b2VyY2Ugd2lsbCBiZSBzZXQgdG8gZmFsc2UuCiAgKi8KIHN0YXRpYyBOb2RlICoKIHRyYW5zZm9y bUFycmF5RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIEFfQXJyYXlFeHByICphLAotCQkJCSAgIE9p ZCBhcnJheV90eXBlLCBPaWQgZWxlbWVudF90eXBlLCBpbnQzMiB0eXBtb2QpCisJCQkJICAgT2lk IGFycmF5X3R5cGUsIE9pZCBlbGVtZW50X3R5cGUsIGludDMyIHR5cG1vZCwgYm9vbCAqY2FuX2Nv ZXJjZSkKIHsKIAlBcnJheUV4cHIgICpuZXdhID0gbWFrZU5vZGUoQXJyYXlFeHByKTsKIAlMaXN0 CSAgICpuZXdlbGVtcyA9IE5JTDsKIAlMaXN0CSAgICpuZXdjb2VyY2VkZWxlbXMgPSBOSUw7CiAJ TGlzdENlbGwgICAqZWxlbWVudDsKIAlPaWQJCQljb2VyY2VfdHlwZTsKKwlPaWQJCQljb2VyY2Vf dHlwZV9jb2xsOwogCWJvb2wJCWNvZXJjZV9oYXJkOwogCiAJLyoKQEAgLTIwNDUsOSArMjA2NSwx MCBAQCB0cmFuc2Zvcm1BcnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0FycmF5RXhwciAq YSwKIAkJCQkJCQkJCSAgKEFfQXJyYXlFeHByICopIGUsCiAJCQkJCQkJCQkgIGFycmF5X3R5cGUs CiAJCQkJCQkJCQkgIGVsZW1lbnRfdHlwZSwKLQkJCQkJCQkJCSAgdHlwbW9kKTsKKwkJCQkJCQkJ CSAgdHlwbW9kLAorCQkJCQkJCQkJICBjYW5fY29lcmNlKTsKIAkJCS8qIHdlIGNlcnRhaW5seSBo YXZlIGFuIGFycmF5IGhlcmUgKi8KLQkJCUFzc2VydChhcnJheV90eXBlID09IEludmFsaWRPaWQg fHwgYXJyYXlfdHlwZSA9PSBleHByVHlwZShuZXdlKSk7CisJCQlBc3NlcnQoY2FuX2NvZXJjZSB8 fCBhcnJheV90eXBlID09IEludmFsaWRPaWQgfHwgYXJyYXlfdHlwZSA9PSBleHByVHlwZShuZXdl KSk7CiAJCQluZXdhLT5tdWx0aWRpbXMgPSB0cnVlOwogCQl9CiAJCWVsc2UKQEAgLTIwODgsNiAr MjEwOSw5IEBAIHRyYW5zZm9ybUFycmF5RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIEFfQXJyYXlF eHByICphLAogCX0KIAllbHNlCiAJeworCQkvKiBUaGUgdGFyZ2V0IHR5cGUgaXMgdmFsaWQgd2hl biBwZXJmb3JtaW5nIHR5cGUtc2FmZSBjYXN0ICovCisJCUFzc2VydChjYW5fY29lcmNlID09IE5V TEwpOworCiAJCS8qIENhbid0IGhhbmRsZSBhbiBlbXB0eSBhcnJheSB3aXRob3V0IGEgdGFyZ2V0 IHR5cGUgKi8KIAkJaWYgKG5ld2VsZW1zID09IE5JTCkKIAkJCWVyZXBvcnQoRVJST1IsCkBAIC0y MTI1LDYgKzIxNDksOCBAQCB0cmFuc2Zvcm1BcnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBB X0FycmF5RXhwciAqYSwKIAkJY29lcmNlX2hhcmQgPSBmYWxzZTsKIAl9CiAKKwljb2VyY2VfdHlw ZV9jb2xsID0gZ2V0X3R5cGNvbGxhdGlvbihjb2VyY2VfdHlwZSk7CisKIAkvKgogCSAqIENvZXJj ZSBlbGVtZW50cyB0byB0YXJnZXQgdHlwZQogCSAqCkBAIC0yMTM0LDEzICsyMTYwLDUzIEBAIHRy YW5zZm9ybUFycmF5RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIEFfQXJyYXlFeHByICphLAogCSAq IElmIHRoZSBhcnJheSdzIHR5cGUgd2FzIG1lcmVseSBkZXJpdmVkIGZyb20gdGhlIGNvbW1vbiB0 eXBlIG9mIGl0cwogCSAqIGVsZW1lbnRzLCB0aGVuIHRoZSBlbGVtZW50cyBhcmUgaW1wbGljaXRs eSBjb2VyY2VkIHRvIHRoZSBjb21tb24gdHlwZS4KIAkgKiBUaGlzIGlzIGNvbnNpc3RlbnQgd2l0 aCBvdGhlciB1c2VzIG9mIHNlbGVjdF9jb21tb25fdHlwZSgpLgorCSAqCisJICogSWYgY2FuX2Nv ZXJjZSBpcyBub3QgTlVMTCwgd2UgbmVlZCB0byBzYWZlbHkgdGVzdCB3aGV0aGVyIGVhY2ggZWxl bWVudAorCSAqIGNhbiBiZSBjb2VyY2VkIHRvIHRoZSB0YXJnZXQgdHlwZSwgc2ltaWxhciB0byB3 aGF0IGlzIGRvbmUgaW4KKwkgKiB0cmFuc2Zvcm1UeXBlU2FmZUNhc3QuCiAJICovCiAJZm9yZWFj aChlbGVtZW50LCBuZXdlbGVtcykKIAl7CiAJCU5vZGUJICAgKmUgPSAoTm9kZSAqKSBsZmlyc3Qo ZWxlbWVudCk7Ci0JCU5vZGUJICAgKm5ld2U7CisJCWJvb2wJCWV4cHJfaXNfY29uc3QgPSBmYWxz ZTsKKwkJTm9kZQkgICAqbmV3ZSA9IE5VTEw7CiAKLQkJaWYgKGNvZXJjZV9oYXJkKQorCQlpZiAo Y2FuX2NvZXJjZSAhPSBOVUxMICYmIElzQShlLCBDb25zdCkpCisJCXsKKwkJCWV4cHJfaXNfY29u c3QgPSB0cnVlOworCisJCQkvKiBjb2VyY2UgVU5LTk9XTiBDb25zdCB0byB0aGUgdGFyZ2V0IHR5 cGUgKi8KKwkJCWlmICgqY2FuX2NvZXJjZSAmJiBleHByVHlwZShlKSA9PSBVTktOT1dOT0lEKQor CQkJeworCQkJCW5ld2UgPSBDb2VyY2VVbmtub3duQ29uc3RTYWZlKHBzdGF0ZSwgZSwgY29lcmNl X3R5cGUsIHR5cG1vZCwKKwkJCQkJCQkJCQkJICBDT0VSQ0lPTl9JTVBMSUNJVCwKKwkJCQkJCQkJ CQkJICBDT0VSQ0VfSU1QTElDSVRfQ0FTVCwKKwkJCQkJCQkJCQkJICAtMSwKKwkJCQkJCQkJCQkJ ICBmYWxzZSk7CisJCQkJaWYgKG5ld2UgPT0gTlVMTCkKKwkJCQl7CisJCQkJCW5ld2UgPSBlOwor CQkJCQkqY2FuX2NvZXJjZSA9IGZhbHNlOworCQkJCX0KKwkJCQluZXdjb2VyY2VkZWxlbXMgPSBs YXBwZW5kKG5ld2NvZXJjZWRlbGVtcywgbmV3ZSk7CisKKwkJCQkvKgorCQkJCSAqIERvbmUgaGFu ZGxpbmcgdGhpcyBVTktOT1dOIENvbnN0IGVsZW1lbnQ7IG1vdmUgb24gdG8gdGhlCisJCQkJICog bmV4dC4KKwkJCQkgKi8KKwkJCQljb250aW51ZTsKKwkJCX0KKwkJfQorCisJCWlmIChjYW5fY29l cmNlICE9IE5VTEwgJiYgKCEqY2FuX2NvZXJjZSkpCisJCXsKKwkJCS8qCisJCQkgKiBDYW4gbm90 IGNvZXJjZSBzb3VyY2UgZXhwcmVzc2lvbiB0byB0aGUgdGFyZ2V0IHR5cGUsIGp1c3QgYXBwZW5k CisJCQkgKiB0aGUgdHJhbnNmb3JtZWQgZWxlbWVudCBleHByZXNzaW9uIHRvIHRoZSBsaXN0Lgor CQkJICovCisJCQluZXdlID0gZTsKKwkJfQorCQllbHNlIGlmIChjb2VyY2VfaGFyZCkKIAkJewog CQkJbmV3ZSA9IGNvZXJjZV90b190YXJnZXRfdHlwZShwc3RhdGUsIGUsCiAJCQkJCQkJCQkJIGV4 cHJUeXBlKGUpLApAQCAtMjE1MCwxMiArMjIxNiw3MiBAQCB0cmFuc2Zvcm1BcnJheUV4cHIoUGFy c2VTdGF0ZSAqcHN0YXRlLCBBX0FycmF5RXhwciAqYSwKIAkJCQkJCQkJCQkgQ09FUkNFX0VYUExJ Q0lUX0NBU1QsCiAJCQkJCQkJCQkJIC0xKTsKIAkJCWlmIChuZXdlID09IE5VTEwpCi0JCQkJZXJl cG9ydChFUlJPUiwKLQkJCQkJCShlcnJjb2RlKEVSUkNPREVfQ0FOTk9UX0NPRVJDRSksCi0JCQkJ CQkgZXJybXNnKCJjYW5ub3QgY2FzdCB0eXBlICVzIHRvICVzIiwKLQkJCQkJCQkJZm9ybWF0X3R5 cGVfYmUoZXhwclR5cGUoZSkpLAotCQkJCQkJCQlmb3JtYXRfdHlwZV9iZShjb2VyY2VfdHlwZSkp LAotCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihlKSkpKTsK KwkJCXsKKwkJCQlpZiAoY2FuX2NvZXJjZSA9PSBOVUxMKQorCQkJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkJCShlcnJjb2RlKEVSUkNPREVfQ0FOTk9UX0NPRVJDRSksCisJCQkJCQkJZXJybXNnKCJj YW5ub3QgY2FzdCB0eXBlICVzIHRvICVzIiwKKwkJCQkJCQkJCWZvcm1hdF90eXBlX2JlKGV4cHJU eXBlKGUpKSwKKwkJCQkJCQkJCWZvcm1hdF90eXBlX2JlKGNvZXJjZV90eXBlKSksCisJCQkJCQkJ cGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGUpKSkpOworCQkJCWVsc2UK KwkJCQl7CisJCQkJCS8qCisJCQkJCSAqIENhbiBub3QgY29lcmNlIHNvdXJjZSBleHByZXNzaW9u IHRvIHRoZSB0YXJnZXQgdHlwZSwganVzdAorCQkJCQkgKiBhcHBlbmQgdGhlIHRyYW5zZm9ybWVk IGVsZW1lbnQgZXhwcmVzc2lvbiB0byB0aGUgbGlzdC4KKwkJCQkJICovCisJCQkJCW5ld2UgPSBl OworCQkJCQkqY2FuX2NvZXJjZSA9IGZhbHNlOworCQkJCX0KKwkJCX0KKwkJCWVsc2UgaWYgKGNh bl9jb2VyY2UgIT0gTlVMTCAmJiBleHByX2lzX2NvbnN0KQorCQkJeworCQkJCU5vZGUJICAgKm9y aWdleHByID0gbmV3ZTsKKwkJCQlOb2RlCSAgICpyZXN1bHQ7CisJCQkJYm9vbAkJaGF2ZV9jb2xs YXRlX2V4cHIgPSBmYWxzZTsKKworCQkJCWlmIChJc0EobmV3ZSwgQ29sbGF0ZUV4cHIpKQorCQkJ CQloYXZlX2NvbGxhdGVfZXhwciA9IHRydWU7CisKKwkJCQl3aGlsZSAobmV3ZSAmJiBJc0EobmV3 ZSwgQ29sbGF0ZUV4cHIpKQorCQkJCQluZXdlID0gKE5vZGUgKikgKChDb2xsYXRlRXhwciAqKSBu ZXdlKS0+YXJnOworCisJCQkJaWYgKCFJc0EobmV3ZSwgRnVuY0V4cHIpKQorCQkJCQluZXdlID0g b3JpZ2V4cHI7CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJLyoKKwkJCQkJICogVXNlIGV2YWx1YXRl X2V4cHJfc2FmZSB0byBwcmUtZXZhbHVhdGUgc2ltcGxlIGNvbnN0YW50CisJCQkJCSAqIGNhc3Qg ZXhwcmVzc2lvbnMgZWFybHksIGluIGEgd2F5IHRoYXQgdG9sZXJhdGUgZXJyb3JzLgorCQkJCQkg Ki8KKwkJCQkJRnVuY0V4cHIgKm5ld2V4cHIgPSAoRnVuY0V4cHIgKikgY29weU9iamVjdChuZXdl KTsKKworCQkJCQlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgKE5vZGUgKikgbmV3ZXhw cik7CisKKwkJCQkJcmVzdWx0ID0gKE5vZGUgKikgZXZhbHVhdGVfZXhwcl9zYWZlKChFeHByICop IG5ld2V4cHIsCisJCQkJCQkJCQkJCQkJCSBjb2VyY2VfdHlwZSwKKwkJCQkJCQkJCQkJCQkJIHR5 cG1vZCwKKwkJCQkJCQkJCQkJCQkJIGNvZXJjZV90eXBlX2NvbGwpOworCQkJCQlpZiAocmVzdWx0 ID09IE5VTEwpCisJCQkJCXsKKwkJCQkJCW5ld2UgPSBlOworCQkJCQkJKmNhbl9jb2VyY2UgPSBm YWxzZTsKKwkJCQkJfQorCQkJCQllbHNlIGlmIChoYXZlX2NvbGxhdGVfZXhwcikKKwkJCQkJewor CQkJCQkJLyogUmVpbnN0YWxsIHRvcCBDb2xsYXRlRXhwciAqLworCQkJCQkJQ29sbGF0ZUV4cHIg KmNvbGwgPSAoQ29sbGF0ZUV4cHIgKikgb3JpZ2V4cHI7CisJCQkJCQlDb2xsYXRlRXhwciAqbmV3 Y29sbCA9IG1ha2VOb2RlKENvbGxhdGVFeHByKTsKKworCQkJCQkJbmV3Y29sbC0+YXJnID0gKEV4 cHIgKikgcmVzdWx0OworCQkJCQkJbmV3Y29sbC0+Y29sbE9pZCA9IGNvbGwtPmNvbGxPaWQ7CisJ CQkJCQluZXdjb2xsLT5sb2NhdGlvbiA9IGNvbGwtPmxvY2F0aW9uOworCQkJCQkJbmV3ZSA9IChO b2RlICopIG5ld2NvbGw7CisJCQkJCX0KKwkJCQkJZWxzZQorCQkJCQkJbmV3ZSA9IHJlc3VsdDsK KwkJCQl9CisJCQl9CiAJCX0KIAkJZWxzZQogCQkJbmV3ZSA9IGNvZXJjZV90b19jb21tb25fdHlw ZShwc3RhdGUsIGUsCkBAIC0yNzQzLDcgKzI4NjksOCBAQCB0cmFuc2Zvcm1UeXBlQ2FzdChQYXJz ZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0ICp0YykKIAkJCQkJCQkJCSAgKEFfQXJyYXlFeHByICop IGFyZywKIAkJCQkJCQkJCSAgdGFyZ2V0QmFzZVR5cGUsCiAJCQkJCQkJCQkgIGVsZW1lbnRUeXBl LAotCQkJCQkJCQkJICB0YXJnZXRCYXNlVHlwbW9kKTsKKwkJCQkJCQkJCSAgdGFyZ2V0QmFzZVR5 cG1vZCwKKwkJCQkJCQkJCSAgTlVMTCk7CiAJCX0KIAkJZWxzZQogCQkJZXhwciA9IHRyYW5zZm9y bUV4cHJSZWN1cnNlKHBzdGF0ZSwgYXJnKTsKQEAgLTI3ODAsNiArMjkwNywyNzMgQEAgdHJhbnNm b3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBlQ2FzdCAqdGMpCiAJcmV0dXJuIHJl c3VsdDsKIH0KIAorLyoKKyAqIEhhbmRsZSBhbiBleHBsaWNpdCBDQVNUKC4uLiBERUZBVUxUIC4u LiBPTiBDT05WRVJTSU9OIEVSUk9SKSBjb25zdHJ1Y3QuCisgKgorICogVHJhbnNmb3JtIFNhZmVU eXBlQ2FzdCBub2RlLCBsb29rIHVwIHRoZSB0eXBlIG5hbWUsIGFuZCBhcHBseSBhbnkgbmVjZXNz YXJ5CisgKiBjb2VyY2lvbiBmdW5jdGlvbihzKS4KKyAqLworc3RhdGljIE5vZGUgKgordHJhbnNm b3JtVHlwZVNhZmVDYXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgU2FmZVR5cGVDYXN0ICp0YykKK3sK KwlTYWZlVHlwZUNhc3RFeHByICAgKnJlc3VsdDsKKwlUeXBlQ2FzdCAgICp0Y2FzdCA9IChUeXBl Q2FzdCAqKSB0Yy0+Y2FzdDsKKwlOb2RlCSAgICpzb3VyY2VfZXhwcjsKKwlOb2RlCSAgICpkZWZf ZXhwcjsKKwlOb2RlCSAgICpjYXN0X2V4cHIgPSBOVUxMOworCU9pZAkJCWlucHV0VHlwZTsKKwlP aWQJCQl0YXJnZXRUeXBlOworCU9pZAkJCXRhcmdldEJhc2VUeXBlOworCU9pZAkJCXR5cGVDb2xs OworCWludDMyCQl0YXJnZXRUeXBtb2Q7CisJaW50MzIJCXRhcmdldEJhc2VUeXBtb2Q7CisJYm9v bAkJY2FuX2NvZXJjZSA9IHRydWU7CisJYm9vbAkJZXhwcl9pc19jb25zdCA9IGZhbHNlOworCVBh cnNlTG9jCWxvY2F0aW9uOworCisJLyogTG9vayB1cCB0aGUgdHlwZSBuYW1lIGZpcnN0ICovCisJ dHlwZW5hbWVUeXBlSWRBbmRNb2QocHN0YXRlLCB0Y2FzdC0+dHlwZU5hbWUsICZ0YXJnZXRUeXBl LCAmdGFyZ2V0VHlwbW9kKTsKKwl0YXJnZXRCYXNlVHlwbW9kID0gdGFyZ2V0VHlwbW9kOworCisJ dHlwZUNvbGwgPSBnZXRfdHlwY29sbGF0aW9uKHRhcmdldFR5cGUpOworCisJdGFyZ2V0QmFzZVR5 cGUgPSBnZXRCYXNlVHlwZUFuZFR5cG1vZCh0YXJnZXRUeXBlLCAmdGFyZ2V0QmFzZVR5cG1vZCk7 CisKKwkvKiBub3cgbG9va2luZyBhdCBERUZBVUxUIGV4cHJlc3Npb24gKi8KKwlkZWZfZXhwciA9 IHRyYW5zZm9ybUV4cHIocHN0YXRlLCB0Yy0+cmF3X2RlZmF1bHQsIEVYUFJfS0lORF9DQVNUX0RF RkFVTFQpOworCisJZGVmX2V4cHIgPSBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUocHN0YXRlLCBkZWZf ZXhwciwgZXhwclR5cGUoZGVmX2V4cHIpLAorCQkJCQkJCQkJIHRhcmdldFR5cGUsIHRhcmdldFR5 cG1vZCwKKwkJCQkJCQkJCSBDT0VSQ0lPTl9FWFBMSUNJVCwKKwkJCQkJCQkJCSBDT0VSQ0VfRVhQ TElDSVRfQ0FTVCwKKwkJCQkJCQkJCSBleHByTG9jYXRpb24oZGVmX2V4cHIpKTsKKworCWFzc2ln bl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCBkZWZfZXhwcik7CisKKwlpZiAoZGVmX2V4cHIgPT0g TlVMTCkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQllcnJjb2RlKEVSUkNPREVfQ0FOTk9UX0NPRVJD RSksCisJCQkJZXJybXNnKCJjYW5ub3QgY29lcmNlICVzIGV4cHJlc3Npb24gdG8gdHlwZSAlcyIs CisJCQkJCSAgICJDQVNUIERFRkFVTFQiLAorCQkJCQkgICBmb3JtYXRfdHlwZV9iZSh0YXJnZXRU eXBlKSksCisJCQkJcGFyc2VyX2NvZXJjaW9uX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0 aW9uKHRjLT5yYXdfZGVmYXVsdCksIGRlZl9leHByKSk7CisKKwkvKgorCSAqIFRoZSBjb2xsYXRp b24gb2YgREVGQVVMVCBleHByZXNzaW9uIG11c3QgbWF0Y2ggdGhlIGNvbGxhdGlvbiBvZiB0aGUK KwkgKiB0YXJnZXQgdHlwZS4KKwkgKi8KKwlpZiAoT2lkSXNWYWxpZCh0eXBlQ29sbCkpCisJewor CQlPaWQJCQlkZWZDb2xsOworCisJCWRlZkNvbGwgPSBleHByQ29sbGF0aW9uKGRlZl9leHByKTsK KworCQlpZiAoT2lkSXNWYWxpZChkZWZDb2xsKSAmJiB0eXBlQ29sbCAhPSBkZWZDb2xsKQorCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwK KwkJCQkJZXJybXNnKCJ0aGUgY29sbGF0aW9uIG9mIENBU1QgREVGQVVMVCBleHByZXNzaW9uIGNv bmZsaWN0cyB3aXRoIHRhcmdldCB0eXBlIGNvbGxhdGlvbiIpLAorCQkJCQllcnJkZXRhaWwoIlwi JXNcIiB2ZXJzdXMgXCIlc1wiIiwKKwkJCQkJCQkgIGdldF9jb2xsYXRpb25fbmFtZSh0eXBlQ29s bCksCisJCQkJCQkJICBnZXRfY29sbGF0aW9uX25hbWUoZGVmQ29sbCkpLAorCQkJCQlwYXJzZXJf ZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oZGVmX2V4cHIpKSk7CisJfQorCisJLyoK KwkgKiBJZiB0aGUgdHlwZSBjYXN0IHRhcmdldCB0eXBlIGlzIGFuIGFycmF5IHR5cGUsIHdlIGlu dm9rZQorCSAqIHRyYW5zZm9ybUFycmF5RXhwcigpIGRpcmVjdGx5IHNvIHRoYXQgd2UgY2FuIHBh c3MgZG93biB0aGUgdHlwZQorCSAqIGluZm9ybWF0aW9uLiAgVGhpcyBhdm9pZHMgc29tZSBjYXNl cyB3aGVyZSB0cmFuc2Zvcm1BcnJheUV4cHIoKSBtaWdodCBub3QKKwkgKiBpbmZlciB0aGUgY29y cmVjdCB0eXBlLiAgT3RoZXJ3aXNlLCBqdXN0IHRyYW5zZm9ybSB0aGUgYXJndW1lbnQgbm9ybWFs bHkuCisJICovCisJaWYgKElzQSh0Y2FzdC0+YXJnLCBBX0FycmF5RXhwcikpCisJeworCQlPaWQJ CQllbGVtZW50VHlwZTsKKworCQkvKgorCQkgKiBJZiB0YXJnZXQgaXMgYSBkb21haW4gb3ZlciBh cnJheSwgd29yayB3aXRoIHRoZSBiYXNlIGFycmF5IHR5cGUKKwkJICogaGVyZS4gIEJlbG93LCB3 ZSdsbCBjYXN0IHRoZSBhcnJheSB0eXBlIHRvIHRoZSBkb21haW4uICBJbiB0aGUKKwkJICogdXN1 YWwgY2FzZSB0aGF0IHRoZSB0YXJnZXQgaXMgbm90IGEgZG9tYWluLCB0aGUgcmVtYWluaW5nIHN0 ZXBzCisJCSAqIHdpbGwgYmUgYSBuby1vcC4KKwkJICovCisJCWVsZW1lbnRUeXBlID0gZ2V0X2Vs ZW1lbnRfdHlwZSh0YXJnZXRCYXNlVHlwZSk7CisKKwkJaWYgKE9pZElzVmFsaWQoZWxlbWVudFR5 cGUpKQorCQl7CisJCQlzb3VyY2VfZXhwciA9IHRyYW5zZm9ybUFycmF5RXhwcihwc3RhdGUsCisJ CQkJCQkJCQkJCSAoQV9BcnJheUV4cHIgKikgdGNhc3QtPmFyZywKKwkJCQkJCQkJCQkJIHRhcmdl dEJhc2VUeXBlLAorCQkJCQkJCQkJCQkgZWxlbWVudFR5cGUsCisJCQkJCQkJCQkJCSB0YXJnZXRC YXNlVHlwbW9kLAorCQkJCQkJCQkJCQkgJmNhbl9jb2VyY2UpOworCQl9CisJCWVsc2UKKwkJCXNv dXJjZV9leHByID0gdHJhbnNmb3JtRXhwclJlY3Vyc2UocHN0YXRlLCB0Y2FzdC0+YXJnKTsKKwl9 CisJZWxzZQorCQlzb3VyY2VfZXhwciA9IHRyYW5zZm9ybUV4cHJSZWN1cnNlKHBzdGF0ZSwgdGNh c3QtPmFyZyk7CisKKwlpbnB1dFR5cGUgPSBleHByVHlwZShzb3VyY2VfZXhwcik7CisJaWYgKGlu cHV0VHlwZSA9PSBJbnZhbGlkT2lkKQorCQlyZXR1cm4gKE5vZGUgKikgTlVMTDsJCQkvKiByZXR1 cm4gTlVMTCBpZiBOVUxMIGlucHV0ICovCisKKwkvKgorCSAqIExvY2F0aW9uIG9mIHRoZSBjb2Vy Y2lvbiBpcyBwcmVmZXJlbnRpYWxseSB0aGUgbG9jYXRpb24gb2YgQ0FTVCBzeW1ib2wsCisJICog YnV0IGlmIHRoZXJlIGlzIG5vbmUgdGhlbiB1c2UgdGhlIGxvY2F0aW9uIG9mIHRoZSB0eXBlIG5h bWUgKHRoaXMgY2FuCisJICogaGFwcGVuIGluIFR5cGVOYW1lICdzdHJpbmcnIHN5bnRheCwgZm9y IGluc3RhbmNlKS4KKwkgKi8KKwlsb2NhdGlvbiA9IHRjYXN0LT5sb2NhdGlvbjsKKwlpZiAobG9j YXRpb24gPCAwKQorCQlsb2NhdGlvbiA9IHRjYXN0LT50eXBlTmFtZS0+bG9jYXRpb247CisKKwlp ZiAoY2FuX2NvZXJjZSAmJiBJc0Eoc291cmNlX2V4cHIsIENvbnN0KSkKKwl7CisJCWV4cHJfaXNf Y29uc3QgPSB0cnVlOworCisJCS8qIGNvZXJjZSBVTktOT1dOIENvbnN0IHRvIHRoZSB0YXJnZXQg dHlwZSAqLworCQlpZiAoZXhwclR5cGUoc291cmNlX2V4cHIpID09IFVOS05PV05PSUQpCisJCXsK KwkJCWNhc3RfZXhwciA9IENvZXJjZVVua25vd25Db25zdFNhZmUocHN0YXRlLCBzb3VyY2VfZXhw ciwKKwkJCQkJCQkJCQkJICAgdGFyZ2V0VHlwZSwgdGFyZ2V0VHlwbW9kLAorCQkJCQkJCQkJCQkg ICBDT0VSQ0lPTl9FWFBMSUNJVCwKKwkJCQkJCQkJCQkJICAgQ09FUkNFX0VYUExJQ0lUX0NBU1Qs CisJCQkJCQkJCQkJCSAgIGxvY2F0aW9uLCBmYWxzZSk7CisJCQlpZiAoY2FzdF9leHByID09IE5V TEwpCisJCQkJY2FuX2NvZXJjZSA9IGZhbHNlOworCQl9CisJfQorCisJaWYgKGNhbl9jb2VyY2Ug JiYgY2FzdF9leHByID09IE5VTEwpCisJeworCQljYXN0X2V4cHIgPSBjb2VyY2VfdG9fdGFyZ2V0 X3R5cGUocHN0YXRlLCBzb3VyY2VfZXhwciwgaW5wdXRUeXBlLAorCQkJCQkJCQkJCSAgdGFyZ2V0 VHlwZSwgdGFyZ2V0VHlwbW9kLAorCQkJCQkJCQkJCSAgQ09FUkNJT05fRVhQTElDSVQsCisJCQkJ CQkJCQkJICBDT0VSQ0VfRVhQTElDSVRfQ0FTVCwKKwkJCQkJCQkJCQkgIGxvY2F0aW9uKTsKKwor CQlpZiAoY2FzdF9leHByID09IE5VTEwpCisJCQljYW5fY29lcmNlID0gZmFsc2U7CisJfQorCisJ aWYgKGNhbl9jb2VyY2UpCisJeworCQlOb2RlCSpvcmlnZXhwciA9IGNhc3RfZXhwcjsKKwkJYm9v bAloYXZlX2NvbGxhdGVfZXhwciA9IGZhbHNlOworCisJCUFzc2VydChjYXN0X2V4cHIgIT0gTlVM TCk7CisKKwkJaWYgKElzQShjYXN0X2V4cHIsIENvbGxhdGVFeHByKSkKKwkJCWhhdmVfY29sbGF0 ZV9leHByID0gdHJ1ZTsKKworCQl3aGlsZSAoY2FzdF9leHByICYmIElzQShjYXN0X2V4cHIsIENv bGxhdGVFeHByKSkKKwkJCWNhc3RfZXhwciA9IChOb2RlICopICgoQ29sbGF0ZUV4cHIgKikgY2Fz dF9leHByKS0+YXJnOworCisJCWlmIChJc0EoY2FzdF9leHByLCBGdW5jRXhwcikpCisJCXsKKwkJ CUhlYXBUdXBsZQl0dXBsZTsKKwkJCUxpc3RDZWxsICAgKmxjOworCQkJTm9kZQkgICAqc2V4cHI7 CisJCQlOb2RlCSAgICpyZXN1bHQ7CisJCQlGdW5jRXhwciAgICpmZXhwciA9IChGdW5jRXhwciAq KSBjYXN0X2V4cHI7CisKKwkJCWxjID0gbGlzdF9oZWFkKGZleHByLT5hcmdzKTsKKwkJCXNleHBy ID0gKE5vZGUgKikgbGZpcnN0KGxjKTsKKworCQkJLyogTG9vayBpbiBwZ19jYXN0ICovCisJCQl0 dXBsZSA9IFNlYXJjaFN5c0NhY2hlMihDQVNUU09VUkNFVEFSR0VULAorCQkJCQkJCQkJT2JqZWN0 SWRHZXREYXR1bShleHByVHlwZShzZXhwcikpLAorCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh0 YXJnZXRUeXBlKSk7CisKKwkJCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHR1cGxlKSkKKwkJCXsKKwkJ CQlGb3JtX3BnX2Nhc3QgY2FzdEZvcm0gPSAoRm9ybV9wZ19jYXN0KSBHRVRTVFJVQ1QodHVwbGUp OworCQkJCWlmICghY2FzdEZvcm0tPmNhc3RlcnJvcnNhZmUpCisJCQkJCWVyZXBvcnQoRVJST1Is CisJCQkJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkJ ZXJybXNnKCJjYW5ub3QgY2FzdCB0eXBlICVzIHRvICVzIHdoZW4gJXMgZXhwcmVzc2lvbiBpcyBz cGVjaWZpZWQgaW4gJXMiLAorCQkJCQkJCQkgICBmb3JtYXRfdHlwZV9iZShpbnB1dFR5cGUpLAor CQkJCQkJCQkgICBmb3JtYXRfdHlwZV9iZSh0YXJnZXRUeXBlKSwKKwkJCQkJCQkJICAgIkRFRkFV TFQiLAorCQkJCQkJCQkgICAiQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUiIpLAorCQkJCQkJ CWVycmhpbnQoIkV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBub3Qg ZGVjbGFyZWQgYXMgc2FmZSIpLAorCQkJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4 cHJMb2NhdGlvbihzb3VyY2VfZXhwcikpKTsKKwkJCX0KKwkJCWVsc2UKKwkJCQllbG9nKEVSUk9S LCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgcGdfY2FzdCBlbnRyeSAoJXMgY2FzdCB0byAlcyki LAorCQkJCQkJCWZvcm1hdF90eXBlX2JlKGlucHV0VHlwZSksCisJCQkJCQkJZm9ybWF0X3R5cGVf YmUodGFyZ2V0VHlwZSkpOworCQkJUmVsZWFzZVN5c0NhY2hlKHR1cGxlKTsKKworCQkJaWYgKCFl eHByX2lzX2NvbnN0KQorCQkJCWNhc3RfZXhwciA9IG9yaWdleHByOworCQkJZWxzZQorCQkJewor CQkJCS8qCisJCQkJICogVXNlIGV2YWx1YXRlX2V4cHJfc2FmZSB0byBwcmUtZXZhbHVhdGUgc2lt cGxlIGNvbnN0YW50IGNhc3QKKwkJCQkgKiBleHByZXNzaW9ucyBlYXJseSwgaW4gYSB3YXkgdGhh dCB0b2xlcmF0ZSBlcnJvcnMuCisJCQkJICoKKwkJCQkgKiBSYXRpb25hbGU6CisJCQkJICogMS4g V2hlbiBkZXBhcnNpbmcgc2FmZSBjYXN0IGV4cHJlc3Npb25zIChvciBpbiBvdGhlciBjYXNlcyks CisJCQkJICogICAgZXZhbF9jb25zdF9leHByZXNzaW9ucyBtaWdodCBiZSBpbnZva2VkLCBidXQg aXQgY2Fubm90CisJCQkJICogICAgaGFuZGxlIGVycm9ycyBncmFjZWZ1bGx5LgorCQkJCSAqIDIu IElmIHRoZSBjYXN0IGV4cHJlc3Npb24gaW52b2x2ZXMgb25seSBzaW1wbGUgY29uc3RhbnRzLCB3 ZQorCQkJCSAqICAgIGNhbiBzYWZlbHkgZXZhbHVhdGUgaXQgYWhlYWQgb2YgdGltZS4gSWYgdGhl IGV2YWx1YXRpb24KKwkJCQkgKiAgICBmYWlscywgaXQgaW5kaWNhdGVzIHRoYXQgc3VjaCBhIGNh c3QgaXMgbm90IHBvc3NpYmxlLCBhbmQKKwkJCQkgKiAgICB3ZSBjYW4gdGhlbiBmYWxsIGJhY2sg dG8gdGhlIENBU1QgREVGQVVMVCBleHByZXNzaW9uLgorCQkJCSAqIDMuIEV2ZW4gaWYgRnVuY0V4 cHIgKGZvciBjYXN0ZnVuYykgbm9kZSBoYXMgdGhyZWUgYXJndW1lbnRzLAorCQkJCSAqICAgIHRo ZSBzZWNvbmQgYW5kIHRoaXJkIGFyZ3VtZW50cyB3aWxsIGFsc28gYmUgY29uc3RhbnRzIHBlcgor CQkJCSAqICAgIGNvZXJjZV90b190YXJnZXRfdHlwZS4gRXZhbHVhdGluZyBhIEZ1bmNFeHByIHdo b3NlCisJCQkJICogICAgYXJndW1lbnRzIGFyZSBhbGwgQ29uc3QgaXMgc2FmZS4KKwkJCQkgKi8K KwkJCQlGdW5jRXhwciAqbmV3ZXhwciA9IChGdW5jRXhwciAqKSBjb3B5T2JqZWN0KGNhc3RfZXhw cik7CisKKwkJCQlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgKE5vZGUgKikgbmV3ZXhw cik7CisKKwkJCQlyZXN1bHQgPSAoTm9kZSAqKSBldmFsdWF0ZV9leHByX3NhZmUoKEV4cHIgKikg bmV3ZXhwciwKKwkJCQkJCQkJCQkJCQkgdGFyZ2V0VHlwZSwKKwkJCQkJCQkJCQkJCQkgdGFyZ2V0 VHlwbW9kLAorCQkJCQkJCQkJCQkJCSB0eXBlQ29sbCk7CisJCQkJaWYgKHJlc3VsdCA9PSBOVUxM KQorCQkJCXsKKwkJCQkJLyoKKwkJCQkJICogSXQgaGFzIGJlZW4gcHJlLWV2YWx1YXRlZCB0aGF0 IHRoZSBzb3VyY2UgZXhwcmVzc2lvbiBjYW4KKwkJCQkJICogbm90IGNvZXJjZSB0byB0aGUgdGFy Z2V0IHR5cGUuCisJCQkJCSAqLworCQkJCQljYW5fY29lcmNlID0gZmFsc2U7CisJCQkJCWNhc3Rf ZXhwciA9IE5VTEw7CisJCQkJfQorCQkJCWVsc2UgaWYgKGhhdmVfY29sbGF0ZV9leHByKQorCQkJ CXsKKwkJCQkJLyogUmVpbnN0YWxsIHRvcCBDb2xsYXRlRXhwciAqLworCQkJCQlDb2xsYXRlRXhw ciAqY29sbCA9IChDb2xsYXRlRXhwciAqKSBvcmlnZXhwcjsKKwkJCQkJQ29sbGF0ZUV4cHIgKm5l d2NvbGwgPSBtYWtlTm9kZShDb2xsYXRlRXhwcik7CisKKwkJCQkJbmV3Y29sbC0+YXJnID0gKEV4 cHIgKikgcmVzdWx0OworCQkJCQluZXdjb2xsLT5jb2xsT2lkID0gY29sbC0+Y29sbE9pZDsKKwkJ CQkJbmV3Y29sbC0+bG9jYXRpb24gPSBjb2xsLT5sb2NhdGlvbjsKKwkJCQkJY2FzdF9leHByID0g KE5vZGUgKikgbmV3Y29sbDsKKwkJCQl9CisJCQkJZWxzZQorCQkJCQljYXN0X2V4cHIgPSByZXN1 bHQ7CisJCQl9CisJCX0KKwkJZWxzZQorCQkJLyogTm90aGluZyB0byBkbywgcmVzdG9yZSBjYXN0 X2V4cHIgdG8gaXRzIG9yaWdpbmFsIHZhbHVlICovCisJCQljYXN0X2V4cHIgPSBvcmlnZXhwcjsK Kwl9CisKKwlBc3NlcnQoY2FuX2NvZXJjZSB8fCBjYXN0X2V4cHIgPT0gTlVMTCk7CisKKwlyZXN1 bHQgPSBtYWtlTm9kZShTYWZlVHlwZUNhc3RFeHByKTsKKwlyZXN1bHQtPnNvdXJjZV9leHByID0g c291cmNlX2V4cHI7CisJcmVzdWx0LT5jYXN0X2V4cHIgPSBjYXN0X2V4cHI7CisJcmVzdWx0LT5k ZWZhdWx0X2V4cHIgPSBkZWZfZXhwcjsKKwlyZXN1bHQtPnJlc3VsdHR5cGUgPSB0YXJnZXRUeXBl OworCXJlc3VsdC0+cmVzdWx0dHlwbW9kID0gdGFyZ2V0VHlwbW9kOworCXJlc3VsdC0+cmVzdWx0 Y29sbGlkID0gdHlwZUNvbGw7CisJcmVzdWx0LT5sb2NhdGlvbiA9IGxvY2F0aW9uOworCisJcmV0 dXJuIChOb2RlICopIHJlc3VsdDsKK30KKwogLyoKICAqIEhhbmRsZSBhbiBleHBsaWNpdCBDT0xM QVRFIGNsYXVzZS4KICAqCkBAIC0zMTkzLDYgKzM1ODcsOCBAQCBQYXJzZUV4cHJLaW5kTmFtZShQ YXJzZUV4cHJLaW5kIGV4cHJLaW5kKQogCQljYXNlIEVYUFJfS0lORF9DSEVDS19DT05TVFJBSU5U OgogCQljYXNlIEVYUFJfS0lORF9ET01BSU5fQ0hFQ0s6CiAJCQlyZXR1cm4gIkNIRUNLIjsKKwkJ Y2FzZSBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxUOgorCQkJcmV0dXJuICJDQVNUIERFRkFVTFQiOwog CQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJ T05fREVGQVVMVDoKIAkJCXJldHVybiAiREVGQVVMVCI7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfZnVuYy5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwpp bmRleCA3NzhkNjljNmYzYy4uYTkwNzA1Yjk4NDcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9mdW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwpA QCAtMjc0Myw2ICsyNzQzLDkgQEAgY2hlY2tfc3JmX2NhbGxfcGxhY2VtZW50KFBhcnNlU3RhdGUg KnBzdGF0ZSwgTm9kZSAqbGFzdF9zcmYsIGludCBsb2NhdGlvbikKIAkJY2FzZSBFWFBSX0tJTkRf RE9NQUlOX0NIRUNLOgogCQkJZXJyID0gXygic2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5v dCBhbGxvd2VkIGluIGNoZWNrIGNvbnN0cmFpbnRzIik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBS X0tJTkRfQ0FTVF9ERUZBVUxUOgorCQkJZXJyID0gXygic2V0LXJldHVybmluZyBmdW5jdGlvbnMg YXJlIG5vdCBhbGxvd2VkIGluIENBU1QgREVGQVVMVCBleHByZXNzaW9ucyIpOworCQkJYnJlYWs7 CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5D VElPTl9ERUZBVUxUOgogCQkJZXJyID0gXygic2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5v dCBhbGxvd2VkIGluIERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYwppbmRleCA5MDVjOTc1ZDgzYi4uZGMwM2NmNGNlNzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf dGFyZ2V0LmMKQEAgLTE4MjIsNiArMTgyMiwyMCBAQCBGaWd1cmVDb2xuYW1lSW50ZXJuYWwoTm9k ZSAqbm9kZSwgY2hhciAqKm5hbWUpCiAJCQkJfQogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9T YWZlVHlwZUNhc3Q6CisJCQlzdHJlbmd0aCA9IEZpZ3VyZUNvbG5hbWVJbnRlcm5hbCgoKFNhZmVU eXBlQ2FzdCAqKSBub2RlKS0+Y2FzdCwKKwkJCQkJCQkJCQkJIG5hbWUpOworCQkJaWYgKHN0cmVu Z3RoIDw9IDEpCisJCQl7CisJCQkJVHlwZUNhc3QgCSpub2RlX2Nhc3Q7CisJCQkJbm9kZV9jYXN0 ID0gKFR5cGVDYXN0ICopKChTYWZlVHlwZUNhc3QgKikgbm9kZSktPmNhc3Q7CisJCQkJaWYgKG5v ZGVfY2FzdC0+dHlwZU5hbWUgIT0gTlVMTCkKKwkJCQl7CisJCQkJCSpuYW1lID0gc3RyVmFsKGxs YXN0KG5vZGVfY2FzdC0+dHlwZU5hbWUtPm5hbWVzKSk7CisJCQkJCXJldHVybiAxOworCQkJCX0K KwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfQ29sbGF0ZUNsYXVzZToKIAkJCXJldHVybiBGaWd1 cmVDb2xuYW1lSW50ZXJuYWwoKChDb2xsYXRlQ2xhdXNlICopIG5vZGUpLT5hcmcsIG5hbWUpOwog CQljYXNlIFRfR3JvdXBpbmdGdW5jOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2FycmF5ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMKaW5kZXgg YTQ2NDM0OWVlMzMuLmMxYTcwMzFhOTZjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvYXJyYXlmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMK QEAgLTMyODksNiArMzI4OSwxNCBAQCBhcnJheV9tYXAoRGF0dW0gYXJyYXlkLAogCQkvKiBBcHBs eSB0aGUgZ2l2ZW4gZXhwcmVzc2lvbiB0byBzb3VyY2UgZWxlbWVudCAqLwogCQl2YWx1ZXNbaV0g PSBFeGVjRXZhbEV4cHIoZXhwcnN0YXRlLCBlY29udGV4dCwgJm51bGxzW2ldKTsKIAorCQkvKiBF eGl0IGVhcmx5IGlmIHRoZSBldmFsdWF0aW9uIGZhaWxzICovCisJCWlmIChTT0ZUX0VSUk9SX09D Q1VSUkVEKGV4cHJzdGF0ZS0+ZXNjb250ZXh0KSkKKwkJeworCQkJcGZyZWUodmFsdWVzKTsKKwkJ CXBmcmVlKG51bGxzKTsKKwkJCXJldHVybiAoRGF0dW0pIDA7CisJCX0KKwogCQlpZiAobnVsbHNb aV0pCiAJCQloYXNudWxscyA9IHRydWU7CiAJCWVsc2UKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMu YwppbmRleCA3OWVjMTM2MjMxYi4uZTNkZDg2YTY1MjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0 aWxzLmMKQEAgLTEwNTU4LDYgKzEwNTU4LDI3IEBAIGdldF9ydWxlX2V4cHIoTm9kZSAqbm9kZSwg ZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0LAogCQkJfQogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX1Nh ZmVUeXBlQ2FzdEV4cHI6CisJCQl7CisJCQkJU2FmZVR5cGVDYXN0RXhwciAgICpzdGNleHByID0g Y2FzdE5vZGUoU2FmZVR5cGVDYXN0RXhwciwgbm9kZSk7CisKKwkJCQkvKgorCQkJCSAqIFdlIGNh bm5vdCBkZXBhcnNpbmcgY2FzdF9leHByIGRpcmVjdGx5LCBzaW5jZQorCQkJCSAqIHRyYW5zZm9y bVR5cGVTYWZlQ2FzdCBtYXkgaGF2ZSBmb2xkZWQgaXQgaW50byBhIHNpbXBsZQorCQkJCSAqIGNv bnN0YW50IG9yIE5VTEwuIEluc3RlYWQsIHdlIHVzZSBzb3VyY2VfZXhwciBhbmQKKwkJCQkgKiBk ZWZhdWx0X2V4cHIgdG8gcmVjb25zdHJ1Y3QgdGhlIENBU1QgREVGQVVMVCBjbGF1c2UuCisJCQkJ ICovCisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJDQVNUKCIpOworCQkJCWdldF9y dWxlX2V4cHIoc3RjZXhwci0+c291cmNlX2V4cHIsIGNvbnRleHQsIHNob3dpbXBsaWNpdCk7CisK KwkJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiBBUyAlcyAiLAorCQkJCQkJCQkgZm9ybWF0X3R5 cGVfd2l0aF90eXBlbW9kKHN0Y2V4cHItPnJlc3VsdHR5cGUsCisJCQkJCQkJCQkJCQkJCSAgc3Rj ZXhwci0+cmVzdWx0dHlwbW9kKSk7CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJE RUZBVUxUICIpOworCQkJCWdldF9ydWxlX2V4cHIoc3RjZXhwci0+ZGVmYXVsdF9leHByLCBjb250 ZXh0LCBzaG93aW1wbGljaXQpOworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiIE9O IENPTlZFUlNJT04gRVJST1IpIik7CisJCQl9CisJCQlicmVhazsKIAkJY2FzZSBUX0pzb25FeHBy OgogCQkJewogCQkJCUpzb25FeHByICAgKmpleHByID0gKEpzb25FeHByICopIG5vZGU7CmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuZGF0IGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19jYXN0LmRhdAppbmRleCBmYmZkNjY5NTg3Zi4uY2E1MmNmY2QwODYgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19jYXN0LmRhdApAQCAtMTksNjUgKzE5LDY1IEBACiAjIGludDItPmludDQtPmludDgt Pm51bWVyaWMtPmZsb2F0NC0+ZmxvYXQ4LCB3aGlsZSBjYXN0cyBpbiB0aGUKICMgcmV2ZXJzZSBk aXJlY3Rpb24gYXJlIGFzc2lnbm1lbnQtb25seS4KIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNh c3R0YXJnZXQgPT4gJ2ludDInLCBjYXN0ZnVuYyA9PiAnaW50MihpbnQ4KScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50OCkn LAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ0JywgY2FzdGZ1bmMg PT4gJ2Zsb2F0NChpbnQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdm bG9hdDgnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ4KGludDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcs IGNhc3R0YXJnZXQgPT4gJ251bWVyaWMnLCBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhpbnQ4KScsCi0g IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2lu dDgoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNh c3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQg PT4gJ2Zsb2F0NCcsIGNhc3RmdW5jID0+ICdmbG9hdDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQyJywgY2FzdHRhcmdldCA9PiAnZmxvYXQ4JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChpbnQyKScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywgY2FzdGZ1bmMg PT4gJ251bWVyaWMoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAn aW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNh c3R0YXJnZXQgPT4gJ2ludDInLCBjYXN0ZnVuYyA9PiAnaW50MihpbnQ0KScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDQnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ0KGlu dDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsIGNhc3Rm dW5jID0+ICdmbG9hdDgoaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9 PiAnbnVtZXJpYycsIGNhc3RmdW5jID0+ICdudW1lcmljKGludDQpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn ZmxvYXQ0JywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGZsb2F0NCkn LAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdmbG9hdDQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMg PT4gJ2ludDIoZmxvYXQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0NCcsIGNhc3R0YXJnZXQgPT4g J2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChmbG9hdDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ0 JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ4JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChmbG9hdDQpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnZmxvYXQ0JywgY2FzdHRhcmdldCA9PiAnbnVtZXJpYycsCi0gIGNhc3Rm dW5jID0+ICdudW1lcmljKGZsb2F0NCknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdudW1lcmljKGZsb2F0NCknLCBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnZmxvYXQ4JywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdp bnQ4KGZsb2F0OCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdmbG9hdDgnLCBjYXN0dGFyZ2V0ID0+ICdpbnQy JywgY2FzdGZ1bmMgPT4gJ2ludDIoZmxvYXQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0OCcsIGNh c3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChmbG9hdDgpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnZmxvYXQ4JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ0JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0 NChmbG9hdDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ4JywgY2FzdHRhcmdldCA9PiAnbnVtZXJp YycsCi0gIGNhc3RmdW5jID0+ICdudW1lcmljKGZsb2F0OCknLCBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdudW1lcmljKGZsb2F0OCknLCBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBj YXN0ZnVuYyA9PiAnaW50OChudW1lcmljKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywg IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0 dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIobnVtZXJpYyknLAotICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdudW1lcmljJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICdpbnQ0KG51 bWVyaWMpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0NCcs Ci0gIGNhc3RmdW5jID0+ICdmbG9hdDQobnVtZXJpYyknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdmbG9hdDQobnVtZXJpYyknLCBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsCi0g IGNhc3RmdW5jID0+ICdmbG9hdDgobnVtZXJpYyknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdmbG9hdDgobnVtZXJpYyknLCBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnbW9uZXknLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywgY2FzdGZ1 bmMgPT4gJ251bWVyaWMobW9uZXkpJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAogeyBjYXN0c291cmNlID0+ICdudW1lcmljJywgY2FzdHRhcmdldCA9PiAnbW9u ZXknLCBjYXN0ZnVuYyA9PiAnbW9uZXkobnVtZXJpYyknLApAQCAtODksMTMgKzg5LDEzIEBACiAK ICMgQWxsb3cgZXhwbGljaXQgY29lcmNpb25zIGJldHdlZW4gaW50NCBhbmQgYm9vbAogeyBjYXN0 c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnYm9vbCcsIGNhc3RmdW5jID0+ICdib29s KGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYm9vbCcsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0 ZnVuYyA9PiAnaW50NChib29sKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgQWxsb3cgZXhwbGljaXQgY29lcmNpb25zIGJldHdlZW4g eGlkOCBhbmQgeGlkCiB7IGNhc3Rzb3VyY2UgPT4gJ3hpZDgnLCBjYXN0dGFyZ2V0ID0+ICd4aWQn LCBjYXN0ZnVuYyA9PiAneGlkKHhpZDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBPSUQgY2F0ZWdvcnk6IGFsbG93IGltcGxpY2l0 IGNvbnZlcnNpb24gZnJvbSBhbnkgaW50ZWdyYWwgdHlwZSAoaW5jbHVkaW5nCiAjIGludDgsIHRv IHN1cHBvcnQgT0lEIGxpdGVyYWxzID4gMkcpIHRvIE9JRCwgYXMgd2VsbCBhcyBhc3NpZ25tZW50 IGNvZXJjaW9uCkBAIC0xMDYsMTMgKzEwNiwxMyBAQAogIyBjYXN0cyBmcm9tIHRleHQgYW5kIHZh cmNoYXIgdG8gcmVnY2xhc3MsIHdoaWNoIGV4aXN0IG1haW5seSB0byBzdXBwb3J0CiAjIGxlZ2Fj eSBmb3JtcyBvZiBuZXh0dmFsKCkgYW5kIHJlbGF0ZWQgZnVuY3Rpb25zLgogeyBjYXN0c291cmNl ID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnaW50NChp bnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVu YyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdp bnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2Fz dGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3Byb2MnLCBjYXN0ZnVu YyA9PiAnMCcsCkBAIC0xMjAsMTMgKzEyMCwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWdwcm9j JywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0 dGFyZ2V0ID0+ICdyZWdwcm9jJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2lu dDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9jJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAot ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVncHJvYycsIGNhc3RmdW5jID0+ ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0 c291cmNlID0+ICdyZWdwcm9jJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdp bnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdwcm9jJywgY2FzdHRhcmdldCA9PiAnaW50NCcs IGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdi JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdwcm9jJywgY2FzdHRhcmdldCA9PiAncmVncHJvY2Vk dXJlJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMTM4LDEzICsxMzgsMTMgQEAKIHsgY2FzdHNvdXJj ZSA9PiAncmVncHJvY2VkdXJlJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAn LAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0ZnVuYyA9PiAn b2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ3Byb2NlZHVyZScs IGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJn ZXQgPT4gJ3JlZ3Byb2NlZHVyZScsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdwcm9jZWR1cmUn LCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ3JlZ3Byb2NlZHVyZScsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAn MCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNv dXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVnb3BlcicsIGNhc3RmdW5jID0+ICcwJywK QEAgLTE1MiwxMyArMTUyLDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ29wZXInLCBjYXN0dGFy Z2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4g J3JlZ29wZXInLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0 YXJnZXQgPT4gJ3JlZ29wZXInLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyJywgY2FzdGZ1bmMgPT4gJzAnLAogICBj YXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J3JlZ29wZXInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ3JlZ29wZXInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMg PT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3JlZ29wZXInLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyYXRvcicsIGNhc3Rm dW5jID0+ICcwJywKQEAgLTE3MCwxMyArMTcwLDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ29w ZXJhdG9yJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgn LCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyYXRvcicsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVnb3BlcmF0b3InLCBjYXN0ZnVuYyA9PiAn aW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVy YXRvcicsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVyYXRvcicsIGNhc3R0YXJnZXQgPT4g J2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnb3BlcmF0 b3InLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNh c3R0YXJnZXQgPT4gJ3JlZ2NsYXNzJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMTg0LDEzICsxODQs MTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVnY2xhc3MnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBj YXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicg fSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NsYXNzJywgY2Fz dGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdj bGFzcycsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNh c3R0YXJnZXQgPT4gJ3JlZ2NsYXNzJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NsYXNzJywg Y2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdyZWdjbGFzcycsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVnY29sbGF0aW9uJywgY2FzdGZ1bmMgPT4gJzAnLApA QCAtMTk4LDEzICsxOTgsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVnY29sbGF0aW9uJywgY2Fz dHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0 ID0+ICdyZWdjb2xsYXRpb24nLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50 MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NvbGxhdGlvbicsIGNh c3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9 LAogeyBjYXN0c291cmNlID0+ICdyZWdjb2xsYXRpb24nLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4Jywg Y2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NvbGxhdGlvbicsIGNh c3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdl dCA9PiAncmVndHlwZScsIGNhc3RmdW5jID0+ICcwJywKQEAgLTIxMiwxMyArMjEyLDEzIEBACiB7 IGNhc3Rzb3VyY2UgPT4gJ3JlZ3R5cGUnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9 PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3R5cGUnLCBjYXN0ZnVuYyA9PiAn b2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ3R5cGUnLCBjYXN0 ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ ICdyZWd0eXBlJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3R5cGUnLCBjYXN0dGFyZ2V0ID0+ ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3R5cGUn LCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0 YXJnZXQgPT4gJ3JlZ2NvbmZpZycsIGNhc3RmdW5jID0+ICcwJywKQEAgLTIyNiwxMyArMjI2LDEz IEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NvbmZpZycsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNh c3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9 LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnY29uZmlnJywgY2Fz dGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdj b25maWcnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBj YXN0dGFyZ2V0ID0+ICdyZWdjb25maWcnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnY29uZmln JywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdyZWdjb25maWcnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAn LAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2RpY3Rpb25hcnknLCBjYXN0ZnVuYyA9PiAn MCcsCkBAIC0yNDAsMzEgKzI0MCwzMSBAQAogeyBjYXN0c291cmNlID0+ICdyZWdkaWN0aW9uYXJ5 JywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0 dGFyZ2V0ID0+ICdyZWdkaWN0aW9uYXJ5JywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdkaWN0aW9uYXJ5JywgY2FzdGZ1bmMgPT4gJ2lu dDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVnZGljdGlv bmFyeScsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdkaWN0aW9uYXJ5JywgY2FzdHRhcmdldCA9 PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdkaWN0 aW9uYXJ5JywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICd0ZXh0 JywgY2FzdHRhcmdldCA9PiAncmVnY2xhc3MnLCBjYXN0ZnVuYyA9PiAncmVnY2xhc3MnLAotICBj YXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAncmVnY2xhc3MnLCBjYXN0ZnVuYyA9 PiAncmVnY2xhc3MnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdyb2xl JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3JvbGUnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBj YXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicg fSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3JvbGUnLCBjYXN0 ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ3Jv bGUnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0 dGFyZ2V0ID0+ICdyZWdyb2xlJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3JvbGUnLCBjYXN0 dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J3JlZ3JvbGUnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29p ZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3RmdW5jID0+ICcwJywKQEAgLTI3 MiwxMyArMjcyLDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3R0YXJn ZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAn cmVnbmFtZXNwYWNlJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBj YXN0dGFyZ2V0ID0+ICdyZWduYW1lc3BhY2UnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0g IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWduYW1lc3BhY2UnLCBjYXN0ZnVu YyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsg Y2FzdHNvdXJjZSA9PiAncmVnbmFtZXNwYWNlJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3Rm dW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWduYW1lc3BhY2UnLCBjYXN0dGFy Z2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4g J3JlZ2RhdGFiYXNlJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMjg2LDEzICsyODYsMTMgQEAKIHsg Y2FzdHNvdXJjZSA9PiAncmVnZGF0YWJhc2UnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVu YyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2RhdGFiYXNlJywgY2FzdGZ1 bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdkYXRh YmFzZScsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNh c3R0YXJnZXQgPT4gJ3JlZ2RhdGFiYXNlJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2RhdGFi YXNlJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICdyZWdkYXRhYmFzZScsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9 PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIApAQCAt MzAyLDU3ICszMDIsNTcgQEAKIHsgY2FzdHNvdXJjZSA9PiAndGV4dCcsIGNhc3R0YXJnZXQgPT4g J3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYnBjaGFyJywgY2FzdHRhcmdldCA9PiAn dGV4dCcsIGNhc3RmdW5jID0+ICd0ZXh0KGJwY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdicGNoYXIn LCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJ3RleHQoYnBjaGFyKScsCi0g IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4g JzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAn MCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNv dXJjZSA9PiAnY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4dChj aGFyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2NoYXInLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0 ZnVuYyA9PiAnYnBjaGFyKGNoYXIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnY2hhcicsIGNhc3R0YXJnZXQg PT4gJ3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChjaGFyKScsCi0gIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ25h bWUnLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJ3RleHQobmFtZSknLAotICBj YXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICduYW1lJywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywgY2FzdGZ1bmMgPT4gJ2Jw Y2hhcihuYW1lKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ25hbWUnLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFy JywgY2FzdGZ1bmMgPT4gJ3ZhcmNoYXIobmFtZSknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0ZXh0JywgY2Fz dHRhcmdldCA9PiAnY2hhcicsIGNhc3RmdW5jID0+ICdjaGFyKHRleHQpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnYnBjaGFyJywgY2FzdHRhcmdldCA9PiAnY2hhcicsIGNhc3RmdW5jID0+ICdjaGFyKHRleHQp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAndmFyY2hhcicsIGNhc3R0YXJnZXQgPT4gJ2NoYXInLCBjYXN0ZnVu YyA9PiAnY2hhcih0ZXh0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RleHQnLCBjYXN0dGFyZ2V0ID0+ICdu YW1lJywgY2FzdGZ1bmMgPT4gJ25hbWUodGV4dCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdicGNoYXInLCBj YXN0dGFyZ2V0ID0+ICduYW1lJywgY2FzdGZ1bmMgPT4gJ25hbWUoYnBjaGFyKScsCi0gIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ICduYW1lJywgY2FzdGZ1bmMgPT4gJ25hbWUo dmFyY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogCiAjIEFsbG93IGV4cGxpY2l0IGNvZXJjaW9ucyBiZXR3ZWVuIGJ5dGVhIGFuZCBp bnRlZ2VyIHR5cGVzCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdieXRl YScsIGNhc3RmdW5jID0+ICdieXRlYShpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0 dGFyZ2V0ID0+ICdieXRlYScsIGNhc3RmdW5jID0+ICdieXRlYShpbnQ0KScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdieXRlYScsIGNhc3RmdW5jID0+ICdieXRlYShpbnQ4 KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2J5dGVhJywgY2FzdHRhcmdldCA9PiAnaW50MicsIGNhc3RmdW5j ID0+ICdpbnQyKGJ5dGVhKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2J5dGVhJywgY2FzdHRhcmdldCA9PiAn aW50NCcsIGNhc3RmdW5jID0+ICdpbnQ0KGJ5dGVhKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2J5dGVhJywg Y2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGJ5dGVhKScsCi0gIGNhc3Rj b250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2Un LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgQWxsb3cg ZXhwbGljaXQgY29lcmNpb25zIGJldHdlZW4gaW50NCBhbmQgImNoYXIiCiB7IGNhc3Rzb3VyY2Ug PT4gJ2NoYXInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoY2hhcikn LAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnY2hhcicsIGNhc3RmdW5jID0+ ICdjaGFyKGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIAogIyBwZ19ub2RlX3RyZWUgY2FuIGJlIGNvZXJjZWQgdG8sIGJ1dCBub3Qg ZnJvbSwgdGV4dAogeyBjYXN0c291cmNlID0+ICdwZ19ub2RlX3RyZWUnLCBjYXN0dGFyZ2V0ID0+ ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMzc4LDczICszNzgsNzMgQEAKIAogIyBEYXRl dGltZSBjYXRlZ29yeQogeyBjYXN0c291cmNlID0+ICdkYXRlJywgY2FzdHRhcmdldCA9PiAndGlt ZXN0YW1wJywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcChkYXRlKScsIGNhc3Rjb250ZXh0ID0+ ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcChkYXRl KScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdkYXRlJywgY2FzdHRhcmdldCA9PiAndGltZXN0 YW1wdHonLAotICBjYXN0ZnVuYyA9PiAndGltZXN0YW1wdHooZGF0ZSknLCBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXB0eihk YXRlKScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lJywgY2FzdHRhcmdldCA9PiAnaW50 ZXJ2YWwnLCBjYXN0ZnVuYyA9PiAnaW50ZXJ2YWwodGltZSknLAotICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1l JywgY2FzdHRhcmdldCA9PiAndGltZXR6JywgY2FzdGZ1bmMgPT4gJ3RpbWV0eih0aW1lKScsCi0g IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcCcsIGNhc3R0YXJnZXQgPT4gJ2RhdGUnLAotICBjYXN0ZnVu YyA9PiAnZGF0ZSh0aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnZGF0ZSh0aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ3RpbWVzdGFtcCcsIGNhc3R0YXJnZXQgPT4gJ3RpbWUnLAotICBjYXN0ZnVuYyA9 PiAndGltZSh0aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0ZnVuYyA9PiAndGltZSh0aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ3RpbWVzdGFtcCcsIGNhc3R0YXJnZXQgPT4gJ3RpbWVzdGFtcHR6JywKLSAgY2FzdGZ1 bmMgPT4gJ3RpbWVzdGFtcHR6KHRpbWVzdGFtcCknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXB0eih0aW1lc3RhbXApJywg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcHR6JywgY2FzdHRhcmdldCA9PiAnZGF0 ZScsCi0gIGNhc3RmdW5jID0+ICdkYXRlKHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ2RhdGUodGltZXN0YW1wdHop JywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcHR6JywgY2FzdHRhcmdldCA9PiAn dGltZScsCi0gIGNhc3RmdW5jID0+ICd0aW1lKHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3RpbWUodGltZXN0YW1w dHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcHR6JywgY2FzdHRhcmdldCA9 PiAndGltZXN0YW1wJywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcCh0aW1lc3RhbXB0eiknLCBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0 aW1lc3RhbXAodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFt cHR6JywgY2FzdHRhcmdldCA9PiAndGltZXR6JywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWV0eih0aW1l c3RhbXB0eiknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3RmdW5jID0+ICd0aW1ldHoodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludGVydmFsJywgY2FzdHRhcmdldCA9PiAndGltZScsIGNhc3RmdW5jID0+ICd0aW1lKGludGVy dmFsKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWV0eicsIGNhc3R0YXJnZXQgPT4gJ3RpbWUnLCBjYXN0 ZnVuYyA9PiAndGltZSh0aW1ldHopJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBHZW9tZXRyaWMgY2F0ZWdvcnkKIHsgY2FzdHNvdXJj ZSA9PiAncG9pbnQnLCBjYXN0dGFyZ2V0ID0+ICdib3gnLCBjYXN0ZnVuYyA9PiAnYm94KHBvaW50 KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnbHNlZycsIGNhc3R0YXJnZXQgPT4gJ3BvaW50JywgY2FzdGZ1bmMg PT4gJ3BvaW50KGxzZWcpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdwYXRoJywgY2FzdHRhcmdldCA9PiAncG9s eWdvbicsIGNhc3RmdW5jID0+ICdwb2x5Z29uKHBhdGgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdib3gnLCBj YXN0dGFyZ2V0ID0+ICdwb2ludCcsIGNhc3RmdW5jID0+ICdwb2ludChib3gpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScs IGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdib3gnLCBjYXN0dGFyZ2V0ID0+ICdsc2VnJywgY2FzdGZ1bmMgPT4gJ2xzZWcoYm94KScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnYm94JywgY2FzdHRhcmdldCA9PiAncG9seWdvbicsIGNhc3RmdW5jID0+ ICdwb2x5Z29uKGJveCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JveCcsIGNhc3R0YXJnZXQgPT4gJ2NpcmNs ZScsIGNhc3RmdW5jID0+ICdjaXJjbGUoYm94KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdm JywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncG9seWdvbicsIGNh c3R0YXJnZXQgPT4gJ3BvaW50JywgY2FzdGZ1bmMgPT4gJ3BvaW50KHBvbHlnb24pJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn ZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdwb2x5Z29uJywgY2FzdHRhcmdldCA9PiAncGF0aCcsIGNhc3RmdW5jID0+ICdwYXRo JywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdwb2x5Z29uJywgY2FzdHRhcmdldCA9PiAnYm94JywgY2FzdGZ1bmMg PT4gJ2JveChwb2x5Z29uKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncG9seWdvbicsIGNhc3R0YXJnZXQgPT4g J2NpcmNsZScsCi0gIGNhc3RmdW5jID0+ICdjaXJjbGUocG9seWdvbiknLCBjYXN0Y29udGV4dCA9 PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdjaXJjbGUocG9seWdv biknLCBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdjaXJjbGUnLCBjYXN0dGFyZ2V0ID0+ICdwb2lu dCcsIGNhc3RmdW5jID0+ICdwb2ludChjaXJjbGUpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4g J2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdjaXJjbGUnLCBj YXN0dGFyZ2V0ID0+ICdib3gnLCBjYXN0ZnVuYyA9PiAnYm94KGNpcmNsZSknLAotICBjYXN0Y29u dGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywg Y2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2NpcmNsZScsIGNhc3R0YXJnZXQgPT4gJ3BvbHlnb24nLAotICBjYXN0ZnVuYyA9PiAncG9s eWdvbihjaXJjbGUpJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0ZnVuYyA9PiAncG9seWdvbihjaXJjbGUpJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0 bWV0aG9kID0+ICdmJ30sCiAKICMgTUFDIGFkZHJlc3MgY2F0ZWdvcnkKIHsgY2FzdHNvdXJjZSA9 PiAnbWFjYWRkcicsIGNhc3R0YXJnZXQgPT4gJ21hY2FkZHI4JywgY2FzdGZ1bmMgPT4gJ21hY2Fk ZHI4JywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAnbWFjYWRkcjgnLCBjYXN0dGFyZ2V0ID0+ICdtYWNhZGRyJywg Y2FzdGZ1bmMgPT4gJ21hY2FkZHInLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIElORVQgY2F0ZWdvcnkKIHsgY2FzdHNvdXJjZSA9PiAn Y2lkcicsIGNhc3R0YXJnZXQgPT4gJ2luZXQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW5ldCcs IGNhc3R0YXJnZXQgPT4gJ2NpZHInLCBjYXN0ZnVuYyA9PiAnY2lkcicsCi0gIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgQml0U3RyaW5nIGNh dGVnb3J5CiB7IGNhc3Rzb3VyY2UgPT4gJ2JpdCcsIGNhc3R0YXJnZXQgPT4gJ3ZhcmJpdCcsIGNh c3RmdW5jID0+ICcwJywKQEAgLTQ1NCwxMyArNDU0LDEzIEBACiAKICMgQ3Jvc3MtY2F0ZWdvcnkg Y2FzdHMgYmV0d2VlbiBiaXQgYW5kIGludDQsIGludDgKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcs IGNhc3R0YXJnZXQgPT4gJ2JpdCcsIGNhc3RmdW5jID0+ICdiaXQoaW50OCxpbnQ0KScsCi0gIGNh c3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdiaXQnLCBjYXN0ZnVuYyA9PiAnYml0KGlu dDQsaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdiaXQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2Fz dGZ1bmMgPT4gJ2ludDgoYml0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JpdCcsIGNhc3R0YXJnZXQgPT4g J2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChiaXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBDcm9zcy1jYXRlZ29yeSBjYXN0cyB0 byBhbmQgZnJvbSBURVhUCiAjIFdlIG5lZWQgZW50cmllcyBoZXJlIG9ubHkgZm9yIGEgZmV3IHNw ZWNpYWxpemVkIGNhc2VzIHdoZXJlIHRoZSBiZWhhdmlvcgpAQCAtNDcxLDY4ICs0NzEsNjggQEAK ICMgYmVoYXZpb3Igd2lsbCBlbnN1ZSB3aGVuIHRoZSBhdXRvbWF0aWMgY2FzdCBpcyBhcHBsaWVk IGluc3RlYWQgb2YgdGhlCiAjIHBnX2Nhc3QgZW50cnkhCiB7IGNhc3Rzb3VyY2UgPT4gJ2NpZHIn LCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJ3RleHQoaW5ldCknLAotICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdpbmV0JywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICd0ZXh0KGlu ZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAnYm9vbCcsIGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVu YyA9PiAndGV4dChib29sKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3htbCcsIGNhc3R0YXJnZXQgPT4gJ3Rl eHQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGV4dCcsIGNhc3R0YXJnZXQgPT4gJ3htbCcsIGNh c3RmdW5jID0+ICd4bWwnLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogCiAjIENyb3NzLWNhdGVnb3J5IGNhc3RzIHRvIGFuZCBmcm9tIFZBUkNI QVIKICMgV2Ugc3VwcG9ydCBhbGwgdGhlIHNhbWUgY2FzdHMgYXMgZm9yIFRFWFQuCiB7IGNhc3Rz b3VyY2UgPT4gJ2NpZHInLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJ3Rl eHQoaW5ldCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbmV0JywgY2FzdHRhcmdldCA9PiAndmFyY2hhcics IGNhc3RmdW5jID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYm9vbCcsIGNhc3R0YXJn ZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChib29sKScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J3htbCcsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFy Y2hhcicsIGNhc3R0YXJnZXQgPT4gJ3htbCcsIGNhc3RmdW5jID0+ICd4bWwnLAotICBjYXN0Y29u dGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIENyb3NzLWNh dGVnb3J5IGNhc3RzIHRvIGFuZCBmcm9tIEJQQ0hBUgogIyBXZSBzdXBwb3J0IGFsbCB0aGUgc2Ft ZSBjYXN0cyBhcyBmb3IgVEVYVC4KIHsgY2FzdHNvdXJjZSA9PiAnY2lkcicsIGNhc3R0YXJnZXQg PT4gJ2JwY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW5l dCcsIGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0KGluZXQpJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnYm9vbCcsIGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsIGNhc3RmdW5jID0+ICd0 ZXh0KGJvb2wpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAneG1sJywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywg Y2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2In IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JwY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3htbCcsIGNhc3Rm dW5jID0+ICd4bWwnLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogCiAjIExlbmd0aC1jb2VyY2lvbiBmdW5jdGlvbnMKIHsgY2FzdHNvdXJjZSA9 PiAnYnBjaGFyJywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywKICAgY2FzdGZ1bmMgPT4gJ2JwY2hh cihicGNoYXIsaW50NCxib29sKScsIGNhc3Rjb250ZXh0ID0+ICdpJywKLSAgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAndmFyY2hhcicsCiAgIGNh c3RmdW5jID0+ICd2YXJjaGFyKHZhcmNoYXIsaW50NCxib29sKScsIGNhc3Rjb250ZXh0ID0+ICdp JywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lJywgY2FzdHRhcmdldCA9PiAn dGltZScsIGNhc3RmdW5jID0+ICd0aW1lKHRpbWUsaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1l c3RhbXAnLCBjYXN0dGFyZ2V0ID0+ICd0aW1lc3RhbXAnLAogICBjYXN0ZnVuYyA9PiAndGltZXN0 YW1wKHRpbWVzdGFtcCxpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdpJywKLSAgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXB0eicsIGNhc3R0YXJnZXQgPT4gJ3RpbWVzdGFtcHR6 JywKICAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcHR6KHRpbWVzdGFtcHR6LGludDQpJywgY2FzdGNv bnRleHQgPT4gJ2knLAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludGVydmFsJywg Y2FzdHRhcmdldCA9PiAnaW50ZXJ2YWwnLAogICBjYXN0ZnVuYyA9PiAnaW50ZXJ2YWwoaW50ZXJ2 YWwsaW50NCknLCBjYXN0Y29udGV4dCA9PiAnaScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAndGltZXR6JywgY2FzdHRhcmdldCA9PiAndGltZXR6JywKLSAgY2FzdGZ1bmMgPT4gJ3Rp bWV0eih0aW1ldHosaW50NCknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3RmdW5jID0+ICd0aW1ldHoodGltZXR6LGludDQpJywgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2JpdCcsIGNhc3R0YXJnZXQgPT4gJ2JpdCcsIGNhc3RmdW5jID0+ICdiaXQoYml0 LGludDQsYm9vbCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd2YXJiaXQnLCBjYXN0dGFyZ2V0ID0+ICd2YXJi aXQnLCBjYXN0ZnVuYyA9PiAndmFyYml0JywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0 YXJnZXQgPT4gJ251bWVyaWMnLAotICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhudW1lcmljLGludDQp JywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9 PiAnbnVtZXJpYyhudW1lcmljLGludDQpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMganNvbiB0by9mcm9tIGpzb25i CiB7IGNhc3Rzb3VyY2UgPT4gJ2pzb24nLCBjYXN0dGFyZ2V0ID0+ICdqc29uYicsIGNhc3RmdW5j ID0+ICcwJywKQEAgLTU0MiwzNiArNTQyLDM2IEBACiAKICMganNvbmIgdG8gbnVtZXJpYyBhbmQg Ym9vbCB0eXBlcwogeyBjYXN0c291cmNlID0+ICdqc29uYicsIGNhc3R0YXJnZXQgPT4gJ2Jvb2wn LCBjYXN0ZnVuYyA9PiAnYm9vbChqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdqc29uYicsIGNhc3R0 YXJnZXQgPT4gJ251bWVyaWMnLCBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhqc29uYiknLAotICBjYXN0 Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdl JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdqc29uYicsIGNhc3R0YXJnZXQgPT4gJ2ludDInLCBjYXN0ZnVuYyA9PiAnaW50Mihq c29uYiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdqc29uYicsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0 ZnVuYyA9PiAnaW50NChqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdqc29uYicsIGNhc3R0YXJnZXQg PT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAn ZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdqc29u YicsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0NCcsIGNhc3RmdW5jID0+ICdmbG9hdDQoanNvbmIpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDgnLCBjYXN0ZnVuYyA9 PiAnZmxvYXQ4KGpzb25iKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiAKICMgcmFuZ2UgdG8gbXVsdGlyYW5nZQogeyBjYXN0c291cmNlID0+ ICdpbnQ0cmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0bXVsdGlyYW5nZScsCiAgIGNhc3RmdW5j ID0+ICdpbnQ0bXVsdGlyYW5nZShpbnQ0cmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLAotICBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDhyYW5nZScsIGNhc3R0YXJnZXQgPT4gJ2lu dDhtdWx0aXJhbmdlJywKICAgY2FzdGZ1bmMgPT4gJ2ludDhtdWx0aXJhbmdlKGludDhyYW5nZSkn LCBjYXN0Y29udGV4dCA9PiAnZScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVt cmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICdudW1tdWx0aXJhbmdlJywKICAgY2FzdGZ1bmMgPT4gJ251 bW11bHRpcmFuZ2UobnVtcmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLAotICBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2RhdGVyYW5nZScsIGNhc3R0YXJnZXQgPT4gJ2RhdGVtdWx0aXJh bmdlJywKICAgY2FzdGZ1bmMgPT4gJ2RhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSknLCBjYXN0Y29u dGV4dCA9PiAnZScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndHNyYW5nZScsIGNh c3R0YXJnZXQgPT4gJ3RzbXVsdGlyYW5nZScsCi0gIGNhc3RmdW5jID0+ICd0c211bHRpcmFuZ2Uo dHNyYW5nZSknLCBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3RmdW5jID0+ICd0c211bHRpcmFuZ2UodHNyYW5nZSknLCBjYXN0Y29udGV4dCA9PiAnZScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAndHN0enJhbmdlJywgY2FzdHRhcmdldCA9PiAndHN0em11bHRpcmFuZ2UnLAogICBjYXN0ZnVu YyA9PiAndHN0em11bHRpcmFuZ2UodHN0enJhbmdlKScsIGNhc3Rjb250ZXh0ID0+ICdlJywKLSAg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogXQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0Lmgg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuaAppbmRleCA2YTBjYTMzNzE1My4uMjE4ZDgx ZDUzNWEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5oCisrKyBiL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5oCkBAIC00Nyw2ICs0NywxMCBAQCBDQVRBTE9HKHBn X2Nhc3QsMjYwNSxDYXN0UmVsYXRpb25JZCkKIAogCS8qIGNhc3QgbWV0aG9kICovCiAJY2hhcgkJ Y2FzdG1ldGhvZDsKKworCS8qIGNhc3QgZnVuY3Rpb24gZXJyb3Igc2FmZSAqLworCWJvb2wJCWNh c3RlcnJvcnNhZmUgQktJX0RFRkFVTFQoZik7CisKIH0gRm9ybURhdGFfcGdfY2FzdDsKIAogLyog LS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4 cHIuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmgKaW5kZXggNzUzNjYyMDM3MDYu LjM0YTg4NGUzMTk2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5o CisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmgKQEAgLTI2NSw2ICsyNjUsNyBA QCB0eXBlZGVmIGVudW0gRXhwckV2YWxPcAogCUVFT1BfWE1MRVhQUiwKIAlFRU9QX0pTT05fQ09O U1RSVUNUT1IsCiAJRUVPUF9JU19KU09OLAorCUVFT1BfU0FGRVRZUEVfQ0FTVCwKIAlFRU9QX0pT T05FWFBSX1BBVEgsCiAJRUVPUF9KU09ORVhQUl9DT0VSQ0lPTiwKIAlFRU9QX0pTT05FWFBSX0NP RVJDSU9OX0ZJTklTSCwKQEAgLTc1MCw2ICs3NTEsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgRXhwckV2 YWxTdGVwCiAJCQlKc29uSXNQcmVkaWNhdGUgKnByZWQ7CS8qIG9yaWdpbmFsIGV4cHJlc3Npb24g bm9kZSAqLwogCQl9CQkJaXNfanNvbjsKIAorCQkvKiBmb3IgRUVPUF9TQUZFVFlQRV9DQVNUICov CisJCXN0cnVjdAorCQl7CisJCQlzdHJ1Y3QgU2FmZVR5cGVDYXN0U3RhdGUgKnN0Y3N0YXRlOwkv KiBvcmlnaW5hbCBleHByZXNzaW9uIG5vZGUgKi8KKwkJfQkJCXN0Y2V4cHI7CisKIAkJLyogZm9y IEVFT1BfSlNPTkVYUFJfUEFUSCAqLwogCQlzdHJ1Y3QKIAkJewpAQCAtODkyLDYgKzg5OSw3IEBA IGV4dGVybiBpbnQJRXhlY0V2YWxKc29uRXhwclBhdGgoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2 YWxTdGVwICpvcCwKIAkJCQkJCQkJIEV4cHJDb250ZXh0ICplY29udGV4dCk7CiBleHRlcm4gdm9p ZCBFeGVjRXZhbEpzb25Db2VyY2lvbihFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9w LAogCQkJCQkJCQkgRXhwckNvbnRleHQgKmVjb250ZXh0KTsKK2V4dGVybiBpbnQgRXhlY0V2YWxT YWZlVHlwZUNhc3QoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCk7CiBleHRlcm4g dm9pZCBFeGVjRXZhbEpzb25Db2VyY2lvbkZpbmlzaChFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZh bFN0ZXAgKm9wKTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFsR3JvdXBpbmdGdW5jKEV4cHJTdGF0ZSAq c3RhdGUsIEV4cHJFdmFsU3RlcCAqb3ApOwogZXh0ZXJuIHZvaWQgRXhlY0V2YWxNZXJnZVN1cHBv cnRGdW5jKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3AsCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rl cy5oCmluZGV4IDE4YWU4ZjBkNGJiLi5mNTk0OTRjOGM2ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvbm9kZXMvZXhlY25vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgK QEAgLTEwNTksNiArMTA1OSwzNiBAQCB0eXBlZGVmIHN0cnVjdCBEb21haW5Db25zdHJhaW50U3Rh dGUKIAlFeHByU3RhdGUgICpjaGVja19leHByc3RhdGU7CS8qIGNoZWNrX2V4cHIncyBldmFsIHN0 YXRlLCBvciBOVUxMICovCiB9IERvbWFpbkNvbnN0cmFpbnRTdGF0ZTsKIAordHlwZWRlZiBzdHJ1 Y3QgU2FmZVR5cGVDYXN0U3RhdGUKK3sKKwlTYWZlVHlwZUNhc3RFeHByICpzdGNleHByOworCisJ LyogU2V0IHRvIHRydWUgaWYgdHlwZSBjYXN0IGNhdXNlIGFuIGVycm9yLiAqLworCU51bGxhYmxl RGF0dW0gZXJyb3I7CisKKwkvKgorCSAqIEFkZHJlc3NlcyBvZiBzdGVwcyB0aGF0IGltcGxlbWVu dCBERUZBVUxUIGV4cHIgT04gQ09OVkVSU0lPTiBFUlJPUiBmb3IKKwkgKiBzYWZlIHR5cGUgY2Fz dC4KKwkgKi8KKwlpbnQgCQlqdW1wX2Vycm9yOworCisJLyoKKwkgKiBBZGRyZXNzIHRvIGp1bXAg dG8gd2hlbiBza2lwcGluZyBhbGwgdGhlIHN0ZXBzIHRvIGV2YXVsYXRlIHRoZSBkZWZhdWx0CisJ ICogZXhwcmVzc2lvbiBhZnRlciBwZXJmb3JtaW5nIEV4ZWNFdmFsU2FmZVR5cGVDYXN0KCkuCisJ ICovCisJaW50IAkJanVtcF9lbmQ7CisKKwkvKgorCSAqIEZvciBlcnJvci1zYWZlIGV2YWx1YXRp b24gb2YgY29lcmNpb25zLiAgV2hlbiBERUZBVUxUIGV4cHIgT04gQ09OVkVSU0lPTgorCSAqIE9O IEVSUk9SIGlzIHNwZWNpZmllZCwgYSBwb2ludGVyIHRvIHRoaXMgaXMgcGFzc2VkIHRvIEV4ZWNJ bml0RXhwclJlYygpCisJICogd2hlbiBpbml0aWFsaXppbmcgdGhlIGNvZXJjaW9uIGV4cHJlc3Np b25zLCBzZWUgRXhlY0luaXRTYWZlVHlwZUNhc3RFeHByLgorCSAqCisJICogUmVzZXQgZm9yIGVh Y2ggZXZhbHVhdGlvbiBvZiBFRU9QX1NBRkVUWVBFX0NBU1QuCisJICovCisJRXJyb3JTYXZlQ29u dGV4dCBlc2NvbnRleHQ7CisKK30gU2FmZVR5cGVDYXN0U3RhdGU7CisKIC8qCiAgKiBTdGF0ZSBm b3IgSnNvbkV4cHIgZXZhbHVhdGlvbiwgdG9vIGJpZyB0byBpbmxpbmUuCiAgKgpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFy c2Vub2Rlcy5oCmluZGV4IGVjYmRkZDEyZTFiLi5jNDdkNDEyYjU2MCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaApAQCAtNDAwLDYgKzQwMCwxNyBAQCB0eXBlZGVmIHN0cnVjdCBUeXBlQ2FzdAogCVBh cnNlTG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25vd24gKi8K IH0gVHlwZUNhc3Q7CiAKKy8qCisgKiBTYWZlVHlwZUNhc3QgLSBhIENBU1Qoc291cmNlX2V4cHIg QVMgdGFyZ2V0X3R5cGUpIERFRkFVTFQgT04gQ09OVkVSU0lPTiBFUlJPUgorICogY29uc3RydWN0 CisgKi8KK3R5cGVkZWYgc3RydWN0IFNhZmVUeXBlQ2FzdAoreworCU5vZGVUYWcJCXR5cGU7CisJ Tm9kZQkJKmNhc3Q7CQkJLyogVHlwZUNhc3QgZXhwcmVzc2lvbiAqLworCU5vZGUJICAgCSpyYXdf ZGVmYXVsdDsJLyogREVGQVVMVCBleHByZXNzaW9uICovCit9IFNhZmVUeXBlQ2FzdDsKKwogLyoK ICAqIENvbGxhdGVDbGF1c2UgLSBhIENPTExBVEUgZXhwcmVzc2lvbgogICovCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1u b2Rlcy5oCmluZGV4IDFiNDQzNmYyZmY2Li5jM2JkNzIyY2IyZiAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVz LmgKQEAgLTc2OSw2ICs3NjksNDIgQEAgdHlwZWRlZiBlbnVtIENvZXJjaW9uRm9ybQogCUNPRVJD RV9TUUxfU1lOVEFYLAkJCS8qIGRpc3BsYXkgd2l0aCBTUUwtbWFuZGF0ZWQgc3BlY2lhbCBzeW50 YXggKi8KIH0gQ29lcmNpb25Gb3JtOwogCisvKgorICogU2FmZVR5cGVDYXN0RXhwciAtCisgKgkJ VHJhbnNmb3JtZWQgcmVwcmVzZW50YXRpb24gb2YKKyAqIAkJQ0FTVChleHByIEFTIHR5cGVuYW1l IERFRkFVTFQgZXhwcjIgT04gRVJST1IpCisgKiAJCUNBU1QoZXhwciBBUyB0eXBlbmFtZSBOVUxM IE9OIEVSUk9SKQorICovCit0eXBlZGVmIHN0cnVjdCBTYWZlVHlwZUNhc3RFeHByCit7CisJRXhw cgkJeHByOworCisJLyogdHJhbnNmb3JtZWQgZXhwcmVzc2lvbiBiZWluZyBjYXN0ZWQgKi8KKwlO b2RlCSAgICpzb3VyY2VfZXhwcjsKKworCS8qCisJICogVGhlIHRyYW5zZm9ybWVkIGNhc3QgZXhw cmVzc2lvbjsgTlVMTCBpZiB3ZSBjYW4gbm90IGNvY2VyY2Ugc291cmNlCisJICogZXhwcmVzc2lv biB0byB0aGUgdGFyZ2V0IHR5cGUKKwkgKi8KKwlOb2RlCSAgICpjYXN0X2V4cHIgCXBnX25vZGVf YXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKKworCS8qIEZhbGwgYmFjayB0byB0aGUgZGVmYXVs dCBleHByZXNzaW9uIGlmIGNhc3QgZXZhbHVhdGlvbiBmYWlscyAqLworCU5vZGUJICAgKmRlZmF1 bHRfZXhwcjsKKworCS8qIGNhc3QgcmVzdWx0IGRhdGEgdHlwZSAqLworCU9pZAkJCXJlc3VsdHR5 cGU7CisKKwkvKiBjYXN0IHJlc3VsdCBkYXRhIHR5cGUgdHlwbW9kICh1c3VhbGx5IC0xKSAqLwor CWludDMyCQlyZXN1bHR0eXBtb2Q7CisKKwkvKiBjYXN0IHJlc3VsdCBkYXRhIHR5cGUgY29sbGF0 aW9uICovCisJT2lkCQkJcmVzdWx0Y29sbGlkOworCisJLyogT3JpZ2luYWwgU2FmZVR5cGVDYXN0 RXhwcidzIGxvY2F0aW9uICovCisJUGFyc2VMb2MJbG9jYXRpb247CisKK30gU2FmZVR5cGVDYXN0 RXhwcjsKKwogLyoKICAqIEZ1bmNFeHByIC0gZXhwcmVzc2lvbiBub2RlIGZvciBhIGZ1bmN0aW9u IGNhbGwKICAqCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oIGIv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAppbmRleCBmN2QwN2M4NDU0Mi4uOWY1YjMy ZTAzNjAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKKysrIGIv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaApAQCAtNjcsNiArNjcsOCBAQCB0eXBlZGVm IGVudW0gUGFyc2VFeHByS2luZAogCUVYUFJfS0lORF9WQUxVRVNfU0lOR0xFLAkvKiBzaW5nbGUt cm93IFZBTFVFUyAoaW4gSU5TRVJUIG9ubHkpICovCiAJRVhQUl9LSU5EX0NIRUNLX0NPTlNUUkFJ TlQsIC8qIENIRUNLIGNvbnN0cmFpbnQgZm9yIGEgdGFibGUgKi8KIAlFWFBSX0tJTkRfRE9NQUlO X0NIRUNLLAkJLyogQ0hFQ0sgY29uc3RyYWludCBmb3IgYSBkb21haW4gKi8KKwlFWFBSX0tJTkRf Q0FTVF9ERUZBVUxULAkJLyogZGVmYXVsdCBleHByZXNzaW9uIGluCisJCQkJCQkJCSAgIENBU1Qg REVGQVVMVCBPTiBDT05WRVJTSU9OIEVSUk9SICovCiAJRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxU LAkvKiBkZWZhdWx0IHZhbHVlIGZvciBhIHRhYmxlIGNvbHVtbiAqLwogCUVYUFJfS0lORF9GVU5D VElPTl9ERUZBVUxULCAvKiBkZWZhdWx0IHBhcmFtZXRlciB2YWx1ZSBmb3IgZnVuY3Rpb24gKi8K IAlFWFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lPTiwgLyogaW5kZXggZXhwcmVzc2lvbiAqLwpkaWZm IC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jYXN0Lm91dCBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvY2FzdC5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAuLjlmYmQ2MzEwZWE2Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9jYXN0Lm91dApAQCAtMCwwICsxLDc2NyBAQAorU0VUIGV4dHJhX2Zsb2F0X2RpZ2l0 cyA9IDA7CistLSBDQVNUIERFRkFVTFQgT04gQ09OVkVSU0lPTiBFUlJPUgorVkFMVUVTIChDQVNU KCdlcnJvcicgQVMgaW50ZWdlciBFUlJPUiBPTiBDT05WRVJTSU9OIEVSUk9SKSk7IC0tZXJyb3IK K0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50ZWdlcjogImVycm9yIgor TElORSAxOiBWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIEVSUk9SIE9OIENPTlZFUlNJ T04gRVJST1IpKTsKKyAgICAgICAgICAgICAgICAgICAgIF4KK1ZBTFVFUyAoQ0FTVCgnZXJyb3In IEFTIGludGVnZXIgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CisgY29sdW1uMSAKKy0tLS0t LS0tLQorICAgICAgICAKKygxIHJvdykKKworVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdl ciBERUZBVUxUIDQyIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKyBjb2x1bW4xIAorLS0tLS0tLS0t CisgICAgICA0MgorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgxIEFTIGRhdGUgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworIGRhdGUgCistLS0tLS0KKyAKKygxIHJvdykKKworU0VM RUNUIENBU1QoMTo6bnVtZXJpYyBBUyBtb25leSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgbnVtZXJpYyB0byBtb25leSB3aGVuIERF RkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBF UlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVCgxOjpudW1lcmljIEFTIG1vbmV5IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEUuLi4KKyAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIEV4cGxp Y2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBub3QgZGVjbGFyZWQgYXMgc2Fm ZQorU0VMRUNUIENBU1QoMTExMSBBUyAiY2hhciIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworIGNoYXIgCistLS0tLS0KKyAKKygxIHJvdykKKworLS10aGUgZGVmYXVsdCBleHBy ZXNzaW9u4oCZcyBjb2xsYXRpb24gc2hvdWxkIG1hdGNoIHRoZSBjb2xsYXRpb24gb2YgdGhlIGNh c3QKKy0tdGFyZ2V0IHR5cGUKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIHRleHQgREVGQVVMVCAn MScgQ09MTEFURSAiQyIgT04gQ09OVkVSU0lPTiBFUlJPUikpOworRVJST1I6ICB0aGUgY29sbGF0 aW9uIG9mIENBU1QgREVGQVVMVCBleHByZXNzaW9uIGNvbmZsaWN0cyB3aXRoIHRhcmdldCB0eXBl IGNvbGxhdGlvbgorTElORSAxOiBWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyB0ZXh0IERFRkFVTFQg JzEnIENPTExBVEUgIkMiIE9OIENPTlYuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KK0RFVEFJTDogICJkZWZhdWx0IiB2ZXJzdXMgIkMiCitWQUxVRVMg KENBU1QoJ2Vycm9yJyBBUyBpbnQydmVjdG9yIERFRkFVTFQgJzEgMycgIE9OIENPTlZFUlNJT04g RVJST1IpKTsKKyBjb2x1bW4xIAorLS0tLS0tLS0tCisgMSAzCisoMSByb3cpCisKK1ZBTFVFUyAo Q0FTVCgnZXJyb3InIEFTIGludDJ2ZWN0b3JbXSBERUZBVUxUICd7MSAzfScgIE9OIENPTlZFUlNJ T04gRVJST1IpKTsKKyBjb2x1bW4xIAorLS0tLS0tLS0tCisgeyIxIDMifQorKDEgcm93KQorCist LSB0ZXN0IHNvdXJjZSBleHByZXNzaW9uIGNvbnRhaW4gc3VicXVlcnkKK1NFTEVDVCBDQVNUKChT RUxFQ1QgYiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxKSwgKFZBTFVFUygnSCcpKSBzKGIpKQor ICAgICAgICAgICAgQVMgaW50MnZlY3RvcltdIERFRkFVTFQgJ3sxIDN9JyAgT04gQ09OVkVSU0lP TiBFUlJPUik7CisgICAgYiAgICAKKy0tLS0tLS0tLQorIHsiMSAzIn0KKygxIHJvdykKKworU0VM RUNUIENBU1QoKFNFTEVDVCBBUlJBWSgoU0VMRUNUIGIgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwg MikgZywgKFZBTFVFUygnSCcpKSBzKGIpKSkpCisgICAgICAgICAgICBBUyBJTlRbXQorICAgICAg ICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0t LQorIAorKDEgcm93KQorCitDUkVBVEUgRlVOQ1RJT04gcmV0X2ludDgoKSBSRVRVUk5TIEJJR0lO VCBBUworJCQKK0JFR0lOIFJFVFVSTiAyMTQ3NDgzNjQ4OyBFTkQ7CiskJAorTEFOR1VBR0UgcGxw Z3NxbCBJTU1VVEFCTEU7CitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgcmV0X2ludDgo KSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBpbnRlZ2VyIG91dCBvZiBy YW5nZQorU0VMRUNUIENBU1QoJ2EnIGFzIGRhdGUgREVGQVVMVCByZXRfaW50OCgpIE9OIENPTlZF UlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIGNhbm5vdCBjb2VyY2UgQ0FTVCBERUZBVUxU IGV4cHJlc3Npb24gdG8gdHlwZSBkYXRlCitMSU5FIDE6IFNFTEVDVCBDQVNUKCdhJyBhcyBkYXRl IERFRkFVTFQgcmV0X2ludDgoKSBPTiBDT05WRVJTSU9OIEVSUi4uLgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIHRlc3QgYXJyYXkgY29lcmNlCitTRUxFQ1Qg Q0FTVChhcnJheVsnYSc6OnRleHRdIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlwZSBp bnRlZ2VyOiAiYSIKK1NFTEVDVCBDQVNUKGFycmF5WydhJ10gQVMgaW50W10gREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOyAtLW9rCisgYXJyYXkgCistLS0tLS0tCisgCisoMSByb3cp CisKK1NFTEVDVCBDQVNUKGFycmF5WzExLjEyXSBBUyBkYXRlW10gREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1Qg Q0FTVChhcnJheVsxMTExMTExMTExMTExMTExMV0gQVMgaW50W10gREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1Qg Q0FTVChhcnJheVtbJ2FiYyddLFs0NTZdXSBBUyBpbnRbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNU KCd7MTIzLGFiYyw0NTZ9JyBBUyBpbnRbXSBERUZBVUxUICd7LTc4OX0nIE9OIENPTlZFUlNJT04g RVJST1IpOworICBpbnQ0ICAKKy0tLS0tLS0tCisgey03ODl9CisoMSByb3cpCisKK1NFTEVDVCBD QVNUKCd7MjM0LGRlZiw1Njd9Jzo6dGV4dFtdIEFTIGludGVnZXJbXSBERUZBVUxUICd7LTEwMTF9 JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgaW50NCAgIAorLS0tLS0tLS0tCisgey0xMDExfQor KDEgcm93KQorCitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnXSwgWyd0aHJlZSddLFsnYSddXSBBUyBp bnRbXSBERUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0t LS0tCisgezEsMn0KKygxIHJvdykKKworU0VMRUNUIENBU1QoQVJSQVlbWycxJywgJzInXSwgWyd0 aHJlZScsICdhJ11dIEFTIGludFtdIERFRkFVTFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJS T1IpOyAtLW9rCisgIGFycmF5ICAKKy0tLS0tLS0tLQorIHsyMSwyMn0KKygxIHJvdykKKworU0VM RUNUIENBU1QoQVJSQVlbWycxJywgJzInXSwgWyd0aHJlZSc6OmludCwgJ2EnXV0gQVMgaW50W10g REVGQVVMVCAnezIxLDIyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAg aW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50ZWdlcjogInRocmVlIgorTElORSAxOiBT RUxFQ1QgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJzo6aW50LCAnYSddXSBBUyBpbnRb XSAuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBD QVNUKEFSUkFZWzEsICd0aHJlZSc6OmludF0gQVMgaW50W10gREVGQVVMVCAnezIxLDIyfScgT04g Q09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXgg Zm9yIHR5cGUgaW50ZWdlcjogInRocmVlIgorTElORSAxOiBTRUxFQ1QgQ0FTVChBUlJBWVsxLCAn dGhyZWUnOjppbnRdIEFTIGludFtdIERFRkFVTFQgJ3syMSwyMn0uLi4KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgorLS0gdGVzdCB2YWxpZCBERUZBVUxUIGV4cHJlc3Npb24gZm9yIENB U1QgPSBPTiBDT05WRVJTSU9OIEVSUk9SCitDUkVBVEUgRlVOQ1RJT04gcmV0X3NldGludCgpIFJF VFVSTlMgU0VUT0YgaW50ZWdlciBBUworJCQKK0JFR0lOIFJFVFVSTiBRVUVSWSBFWEVDVVRFICdz ZWxlY3QgMSB1bmlvbiBhbGwgc2VsZWN0IDEnOyBFTkQ7CiskJAorTEFOR1VBR0UgcGxwZ3NxbCBJ TU1VVEFCTEU7CitDUkVBVEUgVEFCTEUgdGNhc3QoYSB0ZXh0W10sIGIgaW50IEdFTkVSQVRFRCBC WSBERUZBVUxUIEFTIElERU5USVRZLCBjIHRleHQgZGVmYXVsdCAnMScpOworSU5TRVJUIElOVE8g dGNhc3QgVkFMVUVTICgnezEyfScpLCAoJ3sxLGEsIGJ9JyksICgne3sxLDJ9LCB7YyxkfX0nKSwg KCd7MTN9Jyk7CitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgcmV0X3NldGludCgpIE9O IENPTlZFUlNJT04gRVJST1IpIEZST00gdGNhc3Q7IC0tZXJyb3IKK0VSUk9SOiAgc2V0LXJldHVy bmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIENBU1QgREVGQVVMVCBleHByZXNzaW9u cworTElORSAxOiBTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgcmV0X3NldGludCgpIE9O IENPTlZFUlNJT04gRVIuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KK1NFTEVDVCBDQVNUKGM6OmRhdGU6Ompzb24gYXMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgRlJPTSB0Y2FzdDsgLS1lcnJvcgorRVJST1I6ICBjYW5ub3QgY2FzdCB0 eXBlIGRhdGUgdG8ganNvbgorTElORSAxOiBTRUxFQ1QgQ0FTVChjOjpkYXRlOjpqc29uIGFzIGRh dGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04uLi4KKyAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4KK1NFTEVDVCBDQVNUKCdhJzo6aW50IGFzIGludCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5 cGUgaW50ZWdlcjogImEiCitMSU5FIDE6IFNFTEVDVCBDQVNUKCdhJzo6aW50IGFzIGludCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUi4uLgorICAgICAgICAgICAgICAgICAgICBeCitT RUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsg LS1vaworIGludDQgCistLS0tLS0KKyAgICAgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdhJyBh cyBpbnQgREVGQVVMVCBzdW0oMSkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9S OiAgYWdncmVnYXRlIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBERUZBVUxUIGV4 cHJlc3Npb25zCitMSU5FIDE6IFNFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0oMSkg T04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgc3VtKDEpIG92ZXIoKSBPTiBD T05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICB3aW5kb3cgZnVuY3Rpb25zIGFyZSBu b3QgYWxsb3dlZCBpbiBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbnMKK0xJTkUgMTogU0VMRUNUIENB U1QoJ2EnIGFzIGludCBERUZBVUxUIHN1bSgxKSBvdmVyKCkgT04gQ09OVkVSU0lPTiBFLi4uCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgQ0FTVCgnYScg YXMgaW50IERFRkFVTFQgKFNFTEVDVCBOVUxMKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJv cgorRVJST1I6ICBjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIENBU1QgREVGQVVMVCBleHByZXNzaW9u CitMSU5FIDE6IFNFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCAoU0VMRUNUIE5VTEwpIE9O IENPTlZFUlNJT04gRS4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgorU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUICdiJyBPTiBDT05WRVJTSU9OIEVSUk9S KTsgLS1lcnJvcgorRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlwZSBpbnRlZ2Vy OiAiYiIKK0xJTkUgMTogU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUICdiJyBPTiBDT05W RVJTSU9OIEVSUk9SKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K K1NFTEVDVCBDQVNUKHQgQVMgdGV4dFtdIERFRkFVTFQgJ3syMSwyMiwgJyB8fCBiIHx8ICd9JyBP TiBDT05WRVJTSU9OIEVSUk9SKSBGUk9NIHRjYXN0IGFzIHQ7CisgICAgIHQgICAgIAorLS0tLS0t LS0tLS0KKyB7MjEsMjIsMX0KKyB7MjEsMjIsMn0KKyB7MjEsMjIsM30KKyB7MjEsMjIsNH0KKyg0 IHJvd3MpCisKK1NFTEVDVCBDQVNUKHQuYSBBUyBpbnRbXSBERUZBVUxUICd7MjEsMjJ9Jzo6aW50 W10gfHwgYiBPTiBDT05WRVJTSU9OIEVSUk9SKSBGUk9NIHRjYXN0IGFzIHQ7CisgICAgIGEgICAg IAorLS0tLS0tLS0tLS0KKyB7MTJ9CisgezIxLDIyLDJ9CisgezIxLDIyLDN9CisgezEzfQorKDQg cm93cykKKworLS0gdGVzdCB3aXRoIGRvbWFpbgorQ1JFQVRFIERPTUFJTiBkX2ludDQyIGFzIGlu dCBjaGVjayAodmFsdWUgPSA0MikgTk9UIE5VTEw7CitDUkVBVEUgRE9NQUlOIGRfY2hhcjNfbm90 X251bGwgYXMgY2hhcigzKSBOT1QgTlVMTDsKK0NSRUFURSBET01BSU4gZF92YXJjaGFyIGFzIHZh cmNoYXIoMykgTk9UIE5VTEw7CitDUkVBVEUgVFlQRSBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBB UyAoYSBkX2NoYXIzX25vdF9udWxsLCBiIGludCk7CitDUkVBVEUgVFlQRSBjb21wMiBBUyAoYSBk X3ZhcmNoYXIpOworU0VMRUNUIENBU1QoJyhOVUxMKScgQVMgY29tcDIgREVGQVVMVCAnKDEyMzIp JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICB2YWx1ZSB0b28gbG9uZyBm b3IgdHlwZSBjaGFyYWN0ZXIgdmFyeWluZygzKQorTElORSAxOiBTRUxFQ1QgQ0FTVCgnKE5VTEwp JyBBUyBjb21wMiBERUZBVUxUICcoMTIzMiknIE9OIENPTlZFUlNJT04uLi4KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgQ0FTVCgnKE5VTEwp JyBBUyBjb21wMiBERUZBVUxUICcoMTIzKScgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tb2sKKyBj b21wMiAKKy0tLS0tLS0KKyAoMTIzKQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgxMSBBUyBkX2lu dDQyIERFRkFVTFQgNDEgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgdmFs dWUgZm9yIGRvbWFpbiBkX2ludDQyIHZpb2xhdGVzIGNoZWNrIGNvbnN0cmFpbnQgImRfaW50NDJf Y2hlY2siCitTRUxFQ1QgQ0FTVCgxMSBBUyBkX2ludDQyIERFRkFVTFQgNDIgT04gQ09OVkVSU0lP TiBFUlJPUik7IC0tb2sKKyBkX2ludDQyIAorLS0tLS0tLS0tCisgICAgICA0MgorKDEgcm93KQor CitTRUxFQ1QgQ0FTVChOVUxMIEFTIGRfaW50NDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOyAtLWVycm9yCitFUlJPUjogIGRvbWFpbiBkX2ludDQyIGRvZXMgbm90IGFsbG93IG51 bGwgdmFsdWVzCitTRUxFQ1QgQ0FTVChOVUxMIEFTIGRfaW50NDIgREVGQVVMVCA0MiBPTiBDT05W RVJTSU9OIEVSUk9SKTsgLS1vaworIGRfaW50NDIgCistLS0tLS0tLS0KKyAgICAgIDQyCisoMSBy b3cpCisKK1NFTEVDVCBDQVNUKCcoLDQyKScgQVMgY29tcF9kb21haW5fd2l0aF90eXBtb2QgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9k IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgn KE5VTEwsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxUICcoMSwyKScgT04g Q09OVkVSU0lPTiBFUlJPUik7CisgY29tcF9kb21haW5fd2l0aF90eXBtb2QgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgKCIxICAiLDIpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoTlVM TCw0MiknIEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgJygxMjM0LDIpJyBPTiBD T05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICB2YWx1ZSB0b28gbG9uZyBmb3IgdHlw ZSBjaGFyYWN0ZXIoMykKK0xJTkUgMTogLi4uU1QoJyhOVUxMLDQyKScgQVMgY29tcF9kb21haW5f d2l0aF90eXBtb2QgREVGQVVMVCAnKDEyMzQsMiknLi4uCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0tLS1zYWZlIGNhc3Qg d2l0aCBnZW9tZXRyeSBkYXRhIHR5cGUKK1NFTEVDVCBDQVNUKCcoMSwyKSc6OnBvaW50IEFTIGJv eCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIGJveCAgICAgCistLS0t LS0tLS0tLS0tCisgKDEsMiksKDEsMikKKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1soTmFOLDEp LChOYU4saW5maW5pdHkpXSc6OmxzZWcgQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworICAgICBwb2ludCAgICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIChOYU4sSW5m aW5pdHkpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbKDFlKzMwMCxJbmZpbml0eSksKDFlKzMw MCxJbmZpbml0eSldJzo6bHNlZyBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CisgICAgICAgcG9pbnQgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tCisgKDFlKzMw MCxJbmZpbml0eSkKKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1soMSwyKSwoMyw0KV0nOjpwYXRo IGFzIHBvbHlnb24gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIHBvbHlnb24g CistLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoJyhOYU4sMS4wLE5hTixpbmZp bml0eSknOjpib3ggQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwor ICAgICBwb2ludCAgICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIChOYU4sSW5maW5pdHkpCisoMSBy b3cpCisKK1NFTEVDVCBDQVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6OmJveCBBUyBsc2VnIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgbHNlZyAgICAgIAorLS0tLS0tLS0t LS0tLS0tCisgWygyLDIpLCgwLDApXQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKDIuMCwyLjAs MC4wLDAuMCknOjpib3ggQVMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP Uik7CisgICAgICAgICAgcG9seWdvbiAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICgoMCwwKSwoMCwyKSwoMiwyKSwoMiwwKSkKKygxIHJvdykKKworU0VMRUNUIENBU1Qo JygyLjAsMi4wLDAuMCwwLjApJzo6Ym94IEFTIHBhdGggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworIHBhdGggCistLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoJygy LjAsaW5maW5pdHksTmFOLGluZmluaXR5KSc6OmJveCBBUyBjaXJjbGUgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOworICAgICAgICBjaXJjbGUgICAgICAgIAorLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIDwoTmFOLEluZmluaXR5KSxOYU4+CisoMSByb3cpCisKK1NFTEVDVCBDQVNU KCcoTmFOLDAuMCksKDIuMCw0LjApLCgwLjAsaW5maW5pdHkpJzo6cG9seWdvbiBBUyBwb2ludCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIHBvaW50ICAgICAgCistLS0t LS0tLS0tLS0tLS0tCisgKE5hTixJbmZpbml0eSkKKygxIHJvdykKKworU0VMRUNUIENBU1QoJygy LjAsMC4wKSwoMi4wLDQuMCksKDAuMCwwLjApJzo6cG9seWdvbiBBUyBwYXRoIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICAgcGF0aCAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgKCgyLDApLCgyLDQpLCgwLDApKQorKDEgcm93KQorCitTRUxFQ1QgQ0FT VCgnKDIuMCwwLjApLCgyLjAsNC4wKSwoMC4wLDAuMCknOjpwb2x5Z29uIEFTIGJveCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIGJveCAgICAgCistLS0tLS0tLS0tLS0t CisgKDIsNCksKDAsMCkKKygxIHJvdykKKworU0VMRUNUIENBU1QoJyhOYU4saW5maW5pdHkpLCgy LjAsNC4wKSwoMC4wLGluZmluaXR5KSc6OnBvbHlnb24gQVMgY2lyY2xlIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICAgY2lyY2xlICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyA8KE5hTixJbmZpbml0eSksTmFOPgorKDEgcm93KQorCitTRUxFQ1QgQ0FT VCgnPCg1LDEpLDM+Jzo6Y2lyY2xlIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKyBwb2ludCAKKy0tLS0tLS0KKyAoNSwxKQorKDEgcm93KQorCitTRUxFQ1QgQ0FT VCgnPCgzLDUpLDA+Jzo6Y2lyY2xlIGFzIGJveCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CisgICAgIGJveCAgICAgCistLS0tLS0tLS0tLS0tCisgKDMsNSksKDMsNSkKKygxIHJv dykKKworLS0gbm90IHN1cHBvcnRlZCBiZWNhdXNlIHRoZSBjYXN0IGZyb20gY2lyY2xlIHRvIHBv bHlnb24gaXMgaW1wbGVtZW50ZWQgYXMgYSBTUUwKKy0tIGZ1bmN0aW9uLCB3aGljaCBjYW5ub3Qg YmUgZXJyb3Itc2FmZS4KK1NFTEVDVCBDQVNUKCc8KDMsNSksMD4nOjpjaXJjbGUgYXMgcG9seWdv biBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0 IHR5cGUgY2lyY2xlIHRvIHBvbHlnb24gd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lm aWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1Qo JzwoMyw1KSwwPic6OmNpcmNsZSBhcyBwb2x5Z29uIERFRkFVTFQgTlVMTCBPTiBDLi4uCisgICAg ICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBFeHBsaWNpdCBjYXN0IGlzIGRlZmluZWQgYnV0IGRl ZmluaXRpb24gaXMgbm90IGRlY2xhcmVkIGFzIHNhZmUKKy0tLS0tc2FmZSBjYXN0IGZyb20vdG8g bW9uZXkgdHlwZSBpcyBub3Qgc3VwcG9ydGVkLCBhbGwgdGhlIGZvbGxvd2luZyB3b3VsZCByZXN1 bHQgZXJyb3IKK1NFTEVDVCBDQVNUKE5VTEw6OmludDggQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGJpZ2ludCB0byBt b25leSB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4gT04g Q09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVChOVUxMOjppbnQ4IEFTIG1vbmV5 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEUuLi4KKyAgICAgICAgICAgICAgICAgICAgXgor SElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBub3QgZGVj bGFyZWQgYXMgc2FmZQorU0VMRUNUIENBU1QoTlVMTDo6aW50NCBBUyBtb25leSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgaW50ZWdl ciB0byBtb25leSB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAu Li4gT04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVChOVUxMOjppbnQ0IEFT IG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEUuLi4KKyAgICAgICAgICAgICAgICAg ICAgXgorSElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBu b3QgZGVjbGFyZWQgYXMgc2FmZQorU0VMRUNUIENBU1QoTlVMTDo6bnVtZXJpYyBBUyBtb25leSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5 cGUgbnVtZXJpYyB0byBtb25leSB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQg aW4gQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVChOVUxM OjpudW1lcmljIEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU8uLi4KKyAgICAgICAg ICAgICAgICAgICAgXgorSElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5p dGlvbiBpcyBub3QgZGVjbGFyZWQgYXMgc2FmZQorU0VMRUNUIENBU1QoTlVMTDo6bW9uZXkgQVMg bnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5v dCBjYXN0IHR5cGUgbW9uZXkgdG8gbnVtZXJpYyB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBz cGVjaWZpZWQgaW4gQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1Qg Q0FTVChOVUxMOjptb25leSBBUyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU8uLi4K KyAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBi dXQgZGVmaW5pdGlvbiBpcyBub3QgZGVjbGFyZWQgYXMgc2FmZQorLS0tLS1zYWZlIGNhc3QgZnJv bSBieXRlYSB0eXBlIHRvIG90aGVyIGRhdGEgdHlwZXMKK1NFTEVDVCBDQVNUICgnXHgxMTIyMzM0 NDU1NjY3Nzg4OTknOjpieXRlYSBBUyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKKyBpbnQ4IAorLS0tLS0tCisgICAgIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnXHgx MjM0NTY3ODlBJzo6Ynl0ZWEgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP Uik7CisgaW50NCAKKy0tLS0tLQorICAgICAKKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1x4MTIz NDU2Jzo6Ynl0ZWEgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7Cisg aW50MiAKKy0tLS0tLQorICAgICAKKygxIHJvdykKKworLS0tLS1zYWZlIGNhc3QgZnJvbSBiaXQg dHlwZSB0byBvdGhlciBkYXRhIHR5cGVzCitTRUxFQ1QgQ0FTVCgnMTExMTExMTExMTAwMDAxJzo6 Yml0KDEwMCkgQVMgSU5UIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ0 IAorLS0tLS0tCisgICAgIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCAoJzExMTExMTExMTEwMDAw MSc6OmJpdCgxMDApIEFTIElOVDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwor IGludDggCistLS0tLS0KKyAgICAgCisoMSByb3cpCisKKy0tLS0tc2FmZSBjYXN0IGZyb20gdGV4 dCB0eXBlIHRvIG90aGVyIGRhdGEgdHlwZXMKK3NlbGVjdCBDQVNUKCdhLmIuYy5kJzo6dGV4dCBh cyByZWdjbGFzcyBkZWZhdWx0IE5VTEwgb24gY29udmVyc2lvbiBlcnJvcik7CisgcmVnY2xhc3Mg CistLS0tLS0tLS0tCisgCisoMSByb3cpCisKK0NSRUFURSBUQUJMRSB0ZXN0X3NhZmVjYXN0KGNv bDAgdGV4dCk7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0KGNvbDApIFZBTFVFUyAoJzx2YWx1 ZT5vbmU8L3ZhbHVlJyk7CitTRUxFQ1QgY29sMCBhcyB0ZXh0LAorICAgICAgIENBU1QoY29sMCBB UyByZWdjbGFzcyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fcmVnY2xh c3MsCisgICAgICAgQ0FTVChjb2wwIEFTIHJlZ2NsYXNzIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBJUyBOVUxMIGFzIGV4cGVjdF90cnVlLAorICAgICAgIENBU1QoY29sMCBBUyAi Y2hhciIgIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19jaGFyLAorICAg ICAgIENBU1QoY29sMCBBUyBuYW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19uYW1lLAorICAgICAgIENBU1QoY29sMCBBUyB4bWwgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX3htbAorRlJPTSB0ZXN0X3NhZmVjYXN0OworICAgICAgIHRleHQg ICAgICAgIHwgdG9fcmVnY2xhc3MgfCBleHBlY3RfdHJ1ZSB8IHRvX2NoYXIgfCAgICAgIHRvX25h bWUgICAgICB8IHRvX3htbCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tCisgPHZhbHVl Pm9uZTwvdmFsdWUgfCAgICAgICAgICAgICB8IHQgICAgICAgICAgIHwgPCAgICAgICB8IDx2YWx1 ZT5vbmU8L3ZhbHVlIHwgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcxOTIuMTY4LjEueCcgYXMg aW5ldCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW5ldCAKKy0tLS0tLQor IAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnMTkyLjE2OC4xLjIvMzAnIGFzIGNpZHIgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGNpZHIgCistLS0tLS0KKyAKKygxIHJvdykK KworU0VMRUNUIENBU1QoJzIyOjAwOjVjOjA4OjU1OjA4OjAxOjAyJzo6bWFjYWRkcjggYXMgbWFj YWRkciBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgbWFjYWRkciAKKy0tLS0t LS0tLQorIAorKDEgcm93KQorCistLS0tLXNhZmUgY2FzdCBiZXR3ZWVlbiByYW5nZSBkYXRhIHR5 cGVzCitTRUxFQ1QgQ0FTVCgnWzEsMl0nOjppbnQ0cmFuZ2UgQVMgaW50NG11bHRpcmFuZ2UgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDRtdWx0aXJhbmdlIAorLS0tLS0t LS0tLS0tLS0tLQorIHtbMSwzKX0KKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1sxLDJdJzo6aW50 OHJhbmdlIEFTIGludDhtdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKKyBpbnQ4bXVsdGlyYW5nZSAKKy0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMyl9CisoMSByb3cp CisKK1NFTEVDVCBDQVNUKCdbMSwyXSc6Om51bXJhbmdlICBBUyBudW1tdWx0aXJhbmdlIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBudW1tdWx0aXJhbmdlIAorLS0tLS0tLS0t LS0tLS0tCisge1sxLDJdfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnWy1pbmZpbml0eSxpbmZp bml0eV0nOjpkYXRlcmFuZ2UgQVMgZGF0ZW11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworICAgICBkYXRlbXVsdGlyYW5nZSAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyB7Wy1pbmZpbml0eSxpbmZpbml0eV19CisoMSByb3cpCisKK1NFTEVDVCBDQVNU KCdbLWluZmluaXR5LGluZmluaXR5XSc6OnRzcmFuZ2UgQVMgdHNtdWx0aXJhbmdlIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgIHRzbXVsdGlyYW5nZSAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1staW5maW5pdHksaW5maW5pdHldfQorKDEgcm93KQor CitTRUxFQ1QgQ0FTVCgnWy1pbmZpbml0eSxpbmZpbml0eV0nOjp0c3R6cmFuZ2UgQVMgdHN0em11 bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICB0c3R6bXVs dGlyYW5nZSAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7Wy1pbmZpbml0eSxpbmZp bml0eV19CisoMSByb3cpCisKKy0tLS0tc2FmZSBjYXN0IGJldHdlZWVuIG51bWVyaWMgZGF0YSB0 eXBlcworQ1JFQVRFIFRBQkxFIHRlc3Rfc2FmZWNhc3QxKAorICBjb2wxIGZsb2F0NCwgY29sMiBm bG9hdDgsIGNvbDMgbnVtZXJpYywgY29sNCBudW1lcmljW10sCisgIGNvbDUgaW50MiBkZWZhdWx0 IDMyNzY3LAorICBjb2w2IGludDQgZGVmYXVsdCAzMjc2OCwKKyAgY29sNyBpbnQ4IGRlZmF1bHQg NDI5NDk2NzI5Nik7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0MSBWQUxVRVMoJzExLjEyMzQn LCAnMTEuMTIzNCcsICc5MjIzMzcyMDM2ODU0Nzc1ODA4JywgJ3sxMS4xMjM0fSc6Om51bWVyaWNb XSk7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0MSBWQUxVRVMoJ2luZicsICdpbmYnLCAnaW5m JywgJ3sxMS4xMjM0LCAxMiwgaW5mLCBOYU59Jzo6bnVtZXJpY1tdKTsKK0lOU0VSVCBJTlRPIHRl c3Rfc2FmZWNhc3QxIFZBTFVFUygnLWluZicsICctaW5mJywgJy1pbmYnLCAnezExLjEyMzQsIDEy LCAtaW5mLCBOYU59Jzo6bnVtZXJpY1tdKTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QxIFZB TFVFUygnTmFOJywgJ05hTicsICdOYU4nLCAnezExLjEyMzQsIDEyLCAtaW5mLCBOYU59Jzo6bnVt ZXJpY1tdKTsKK1NFTEVDVCBjb2w1IGFzIGludDIsCisgICAgICAgQ0FTVChjb2w1IEFTIGludDIg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FT VChjb2w1IEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2lu dDQsCisgICAgICAgQ0FTVChjb2w1IEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sNSBhcyBpbnQ4IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sNSBhcyBmbG9h dDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAg ICBDQVNUKGNvbDUgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2w1IGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2w1IGFzIG51 bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVy aWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisgaW50MiAgfCB0b19pbnQyIHwgdG9faW50 NCB8IHRvX29pZCB8IHRvX2ludDggfCB0b19mbG9hdDQgfCB0b19mbG9hdDggfCB0b19udW1lcmlj IHwgdG9fbnVtZXJpY19zY2FsZSAKKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLQorIDMyNzY3IHwgICAzMjc2NyB8ICAgMzI3NjcgfCAgMzI3NjcgfCAgIDMyNzY3 IHwgICAgIDMyNzY3IHwgICAgIDMyNzY3IHwgICAgICAzMjc2NyB8ICAgICAgICAgIDMyNzY3LjAK KyAzMjc2NyB8ICAgMzI3NjcgfCAgIDMyNzY3IHwgIDMyNzY3IHwgICAzMjc2NyB8ICAgICAzMjc2 NyB8ICAgICAzMjc2NyB8ICAgICAgMzI3NjcgfCAgICAgICAgICAzMjc2Ny4wCisgMzI3NjcgfCAg IDMyNzY3IHwgICAzMjc2NyB8ICAzMjc2NyB8ICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgMzI3 NjcgfCAgICAgIDMyNzY3IHwgICAgICAgICAgMzI3NjcuMAorIDMyNzY3IHwgICAzMjc2NyB8ICAg MzI3NjcgfCAgMzI3NjcgfCAgIDMyNzY3IHwgICAgIDMyNzY3IHwgICAgIDMyNzY3IHwgICAgICAz Mjc2NyB8ICAgICAgICAgIDMyNzY3LjAKKyg0IHJvd3MpCisKK1NFTEVDVCBjb2w2IGFzIGludDQs CisgICAgICAgQ0FTVChjb2w2IEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2w2IEFTIGludDQgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2w2IEFTIG9pZCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1Qo Y29sNiBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4 LAorICAgICAgIENBU1QoY29sNiBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDYgYXMgZmxvYXQ4IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2w2 IGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVy aWMsCisgICAgICAgQ0FTVChjb2w2IGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7 CisgaW50NCAgfCB0b19pbnQyIHwgdG9faW50NCB8IHRvX29pZCB8IHRvX2ludDggfCB0b19mbG9h dDQgfCB0b19mbG9hdDggfCB0b19udW1lcmljIHwgdG9fbnVtZXJpY19zY2FsZSAKKy0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIDMyNzY4IHwgICAgICAgICB8 ICAgMzI3NjggfCAgMzI3NjggfCAgIDMyNzY4IHwgICAgIDMyNzY4IHwgICAgIDMyNzY4IHwgICAg ICAzMjc2OCB8ICAgICAgICAgIDMyNzY4LjAKKyAzMjc2OCB8ICAgICAgICAgfCAgIDMyNzY4IHwg IDMyNzY4IHwgICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAgMzI3NjggfCAg ICAgICAgICAzMjc2OC4wCisgMzI3NjggfCAgICAgICAgIHwgICAzMjc2OCB8ICAzMjc2OCB8ICAg MzI3NjggfCAgICAgMzI3NjggfCAgICAgMzI3NjggfCAgICAgIDMyNzY4IHwgICAgICAgICAgMzI3 NjguMAorIDMyNzY4IHwgICAgICAgICB8ICAgMzI3NjggfCAgMzI3NjggfCAgIDMyNzY4IHwgICAg IDMyNzY4IHwgICAgIDMyNzY4IHwgICAgICAzMjc2OCB8ICAgICAgICAgIDMyNzY4LjAKKyg0IHJv d3MpCisKK1NFTEVDVCBjb2w3IGFzIGludDgsCisgICAgICAgQ0FTVChjb2w3IEFTIGludDIgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChj b2w3IEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQs CisgICAgICAgQ0FTVChjb2w3IEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sNyBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sNyBhcyBmbG9hdDQg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBD QVNUKGNvbDcgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2w3IGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2w3IGFzIG51bWVy aWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNf c2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisgICAgaW50OCAgICB8IHRvX2ludDIgfCB0b19p bnQ0IHwgdG9fb2lkIHwgIHRvX2ludDggICB8ICB0b19mbG9hdDQgIHwgdG9fZmxvYXQ4ICB8IHRv X251bWVyaWMgfCB0b19udW1lcmljX3NjYWxlIAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyA0Mjk0OTY3Mjk2IHwgICAgICAgICB8ICAg ICAgICAgfCAgICAgICAgfCA0Mjk0OTY3Mjk2IHwgNC4yOTQ5N2UrMDkgfCA0Mjk0OTY3Mjk2IHwg NDI5NDk2NzI5NiB8ICAgICAgICAgICAgICAgICAKKyA0Mjk0OTY3Mjk2IHwgICAgICAgICB8ICAg ICAgICAgfCAgICAgICAgfCA0Mjk0OTY3Mjk2IHwgNC4yOTQ5N2UrMDkgfCA0Mjk0OTY3Mjk2IHwg NDI5NDk2NzI5NiB8ICAgICAgICAgICAgICAgICAKKyA0Mjk0OTY3Mjk2IHwgICAgICAgICB8ICAg ICAgICAgfCAgICAgICAgfCA0Mjk0OTY3Mjk2IHwgNC4yOTQ5N2UrMDkgfCA0Mjk0OTY3Mjk2IHwg NDI5NDk2NzI5NiB8ICAgICAgICAgICAgICAgICAKKyA0Mjk0OTY3Mjk2IHwgICAgICAgICB8ICAg ICAgICAgfCAgICAgICAgfCA0Mjk0OTY3Mjk2IHwgNC4yOTQ5N2UrMDkgfCA0Mjk0OTY3Mjk2IHwg NDI5NDk2NzI5NiB8ICAgICAgICAgICAgICAgICAKKyg0IHJvd3MpCisKK1NFTEVDVCBjb2wzIGFz IG51bWVyaWMsCisgICAgICAgQ0FTVChjb2wzIEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2wzIEFTIGludDQgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2wz IEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAg ICAgIENBU1QoY29sMyBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sMyBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDMgYXMgZmxvYXQ4 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAg Q0FTVChjb2wzIGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2wzIGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9z YWZlY2FzdDE7CisgICAgICAgbnVtZXJpYyAgICAgICB8IHRvX2ludDIgfCB0b19pbnQ0IHwgdG9f b2lkIHwgdG9faW50OCB8ICB0b19mbG9hdDQgIHwgICAgICB0b19mbG9hdDggICAgICAgfCAgICAg dG9fbnVtZXJpYyAgICAgIHwgdG9fbnVtZXJpY19zY2FsZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLQorIDkyMjMzNzIwMzY4NTQ3NzU4MDggfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8 ICAgICAgICAgfCA5LjIyMzM3ZSsxOCB8IDkuMjIzMzcyMDM2ODU0NzhlKzE4IHwgOTIyMzM3MjAz Njg1NDc3NTgwOCB8ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIEluZmluaXR5IHwgICAg ICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwgICAgSW5maW5pdHkgfCAgICAgICAg ICAgICBJbmZpbml0eSB8ICAgICAgICAgICAgSW5maW5pdHkgfCAgICAgICAgICAgICAgICAgCisg ICAgICAgICAgIC1JbmZpbml0eSB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAg ICB8ICAgLUluZmluaXR5IHwgICAgICAgICAgICAtSW5maW5pdHkgfCAgICAgICAgICAgLUluZmlu aXR5IHwgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICBOYU4gfCAgICAgICAgIHwg ICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIE5hTiB8ICAgICAgICAgICAgICAg ICAgTmFOIHwgICAgICAgICAgICAgICAgIE5hTiB8ICAgICAgICAgICAgICBOYU4KKyg0IHJvd3Mp CisKK1NFTEVDVCBjb2w0IGFzIG51bV9hcnIsCisgICAgICAgQ0FTVChjb2w0IEFTIGludDJbXSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgaW50MmFyciwKKyAgICAgICBDQVNU KGNvbDQgQVMgaW50NFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBpbnQ0 YXJyLAorICAgICAgIENBU1QoY29sNCBhcyBpbnQ4W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIGludDhhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGZsb2F0NFtdIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBmNGFyciwKKyAgICAgICBDQVNUKGNvbDQg YXMgZmxvYXQ4W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGY4YXJyLAor ICAgICAgIENBU1QoY29sNCBhcyBudW1lcmljKDEwLDEpW10gREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIG51bWFycgorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKyAgICAgICAgICBu dW1fYXJyICAgICAgICAgICB8IGludDJhcnIgfCBpbnQ0YXJyIHwgaW50OGFyciB8ICAgICAgICAg ICBmNGFyciAgICAgICAgICAgIHwgICAgICAgICAgIGY4YXJyICAgICAgICAgICAgfCBudW1hcnIg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLQorIHsxMS4xMjM0fSAgICAgICAgICAgICAgICAgIHwgezExfSAgICB8IHsx MX0gICAgfCB7MTF9ICAgIHwgezExLjEyMzR9ICAgICAgICAgICAgICAgICAgfCB7MTEuMTIzNH0g ICAgICAgICAgICAgICAgICB8IHsxMS4xfQorIHsxMS4xMjM0LDEyLEluZmluaXR5LE5hTn0gIHwg ICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwgezExLjEyMzQsMTIsSW5maW5pdHksTmFOfSAg fCB7MTEuMTIzNCwxMixJbmZpbml0eSxOYU59ICB8IAorIHsxMS4xMjM0LDEyLC1JbmZpbml0eSxO YU59IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwgezExLjEyMzQsMTIsLUluZmluaXR5 LE5hTn0gfCB7MTEuMTIzNCwxMiwtSW5maW5pdHksTmFOfSB8IAorIHsxMS4xMjM0LDEyLC1JbmZp bml0eSxOYU59IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgIHwgezExLjEyMzQsMTIsLUlu ZmluaXR5LE5hTn0gfCB7MTEuMTIzNCwxMiwtSW5maW5pdHksTmFOfSB8IAorKDQgcm93cykKKwor U0VMRUNUIGNvbDEgYXMgZmxvYXQ0LAorICAgICAgIENBU1QoY29sMSBBUyBpbnQyIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sMSBB UyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAg ICAgIENBU1QoY29sMSBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDEgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDEgYXMgZmxvYXQ0IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChj b2wxIGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxv YXQ4LAorICAgICAgIENBU1QoY29sMSBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sMSBhcyBudW1lcmljKDEw LDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxl CitGUk9NIHRlc3Rfc2FmZWNhc3QxOworICBmbG9hdDQgICB8IHRvX2ludDIgfCB0b19pbnQ0IHwg dG9fb2lkIHwgdG9faW50OCB8IHRvX2Zsb2F0NCB8ICAgIHRvX2Zsb2F0OCAgICAgfCB0b19udW1l cmljIHwgdG9fbnVtZXJpY19zY2FsZSAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgICAxMS4xMjM0IHwgICAgICAxMSB8ICAgICAgMTEg fCAgICAgICAgfCAgICAgIDExIHwgICAxMS4xMjM0IHwgMTEuMTIzMzk5NzM0NDk3MSB8ICAgIDEx LjEyMzQgfCAgICAgICAgICAgICAxMS4xCisgIEluZmluaXR5IHwgICAgICAgICB8ICAgICAgICAg fCAgICAgICAgfCAgICAgICAgIHwgIEluZmluaXR5IHwgICAgICAgICBJbmZpbml0eSB8ICAgSW5m aW5pdHkgfCAgICAgICAgICAgICAgICAgCisgLUluZmluaXR5IHwgICAgICAgICB8ICAgICAgICAg fCAgICAgICAgfCAgICAgICAgIHwgLUluZmluaXR5IHwgICAgICAgIC1JbmZpbml0eSB8ICAtSW5m aW5pdHkgfCAgICAgICAgICAgICAgICAgCisgICAgICAgTmFOIHwgICAgICAgICB8ICAgICAgICAg fCAgICAgICAgfCAgICAgICAgIHwgICAgICAgTmFOIHwgICAgICAgICAgICAgIE5hTiB8ICAgICAg ICBOYU4gfCAgICAgICAgICAgICAgTmFOCisoNCByb3dzKQorCitTRUxFQ1QgY29sMiBhcyBmbG9h dDgsCisgICAgICAgQ0FTVChjb2wyIEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2wyIEFTIGludDQgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2wyIEFTIG9p ZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENB U1QoY29sMiBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19p bnQ4LAorICAgICAgIENBU1QoY29sMiBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDIgYXMgZmxvYXQ4IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChj b2wyIGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251 bWVyaWMsCisgICAgICAgQ0FTVChjb2wyIGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2Fz dDE7CisgIGZsb2F0OCAgIHwgdG9faW50MiB8IHRvX2ludDQgfCB0b19vaWQgfCB0b19pbnQ4IHwg dG9fZmxvYXQ0IHwgdG9fZmxvYXQ4IHwgdG9fbnVtZXJpYyB8IHRvX251bWVyaWNfc2NhbGUgCist LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgICAxMS4x MjM0IHwgICAgICAxMSB8ICAgICAgMTEgfCAgICAgICAgfCAgICAgIDExIHwgICAxMS4xMjM0IHwg ICAxMS4xMjM0IHwgICAgMTEuMTIzNCB8ICAgICAgICAgICAgIDExLjEKKyAgSW5maW5pdHkgfCAg ICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAgSW5maW5pdHkgfCAgSW5maW5p dHkgfCAgIEluZmluaXR5IHwgICAgICAgICAgICAgICAgIAorIC1JbmZpbml0eSB8ICAgICAgICAg fCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8IC1JbmZpbml0eSB8IC1JbmZpbml0eSB8ICAt SW5maW5pdHkgfCAgICAgICAgICAgICAgICAgCisgICAgICAgTmFOIHwgICAgICAgICB8ICAgICAg ICAgfCAgICAgICAgfCAgICAgICAgIHwgICAgICAgTmFOIHwgICAgICAgTmFOIHwgICAgICAgIE5h TiB8ICAgICAgICAgICAgICBOYU4KKyg0IHJvd3MpCisKKy0tIGRhdGUvdGltZXN0YW1wL2ludGVy dmFsIHJlbGF0ZWQgc2FmZSB0eXBlIGNhc3QKK0NSRUFURSBUQUJMRSB0ZXN0X3NhZmVjYXN0MigK KyAgY29sMCBkYXRlLCBjb2wxIHRpbWVzdGFtcCwgY29sMiB0aW1lc3RhbXB0eiwKKyAgY29sMyBp bnRlcnZhbCwgY29sNCB0aW1lLCBjb2w1IHRpbWV0eik7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVj YXN0MiBWQUxVRVMKKygnLWluZmluaXR5JywgJy1pbmZpbml0eScsICctaW5maW5pdHknLCAnLWlu ZmluaXR5JywKKyAgJzIwMDMtMDMtMDcgMTU6MzY6MzkgQW1lcmljYS9OZXdfWW9yaycsICcyMDAz LTA3LTA3IDE1OjM2OjM5IEFtZXJpY2EvTmV3X1lvcmsnKSwKKygnLWluZmluaXR5JywgJ2luZmlu aXR5JywgJ2luZmluaXR5JywgJ2luZmluaXR5JywKKyAgJzExOjU5OjU5Ljk5IFBNJywgJzExOjU5 OjU5Ljk5IFBNIFBEVCcpOworU0VMRUNUIGNvbDAgYXMgZGF0ZSwKKyAgICAgICBDQVNUKGNvbDAg QVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3Rp bWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMCBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAgIENBU1QoY29sMCBBUyB0aW1lIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNv bDAgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1l dHosCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3Qy OworICAgZGF0ZSAgICB8IHRvX3RpbWVzdGFtcHR6IHwgIHRvX2RhdGUgIHwgdG9fdGltZXMgfCB0 b190aW1ldHogfCB0b190aW1lc3RhbXBfc2NhbGUgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAtaW5maW5pdHkgfCAtaW5maW5pdHkgICAgICB8IC1pbmZpbml0eSB8ICAgICAgICAgIHwg ICAgICAgICAgIHwgLWluZmluaXR5CisgLWluZmluaXR5IHwgLWluZmluaXR5ICAgICAgfCAtaW5m aW5pdHkgfCAgICAgICAgICB8ICAgICAgICAgICB8IC1pbmZpbml0eQorKDIgcm93cykKKworU0VM RUNUIGNvbDEgYXMgdGltZXN0YW1wLAorICAgICAgIENBU1QoY29sMSBBUyB0aW1lc3RhbXB0eiBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wdHosCisgICAg ICAgQ0FTVChjb2wxIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2RhdGUsCisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sMSBBUyB0aW1ldHogREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNU KGNvbDEgQVMgdGltZXN0YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b190aW1lc3RhbXBfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisgdGltZXN0YW1wIHwg dG9fdGltZXN0YW1wdHogfCAgdG9fZGF0ZSAgfCB0b190aW1lcyB8IHRvX3RpbWV0eiB8IHRvX3Rp bWVzdGFtcF9zY2FsZSAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIC1pbmZpbml0eSB8 IC1pbmZpbml0eSAgICAgIHwgLWluZmluaXR5IHwgICAgICAgICAgfCAgICAgICAgICAgfCAtaW5m aW5pdHkKKyBpbmZpbml0eSAgfCBpbmZpbml0eSAgICAgICB8IGluZmluaXR5ICB8ICAgICAgICAg IHwgICAgICAgICAgIHwgaW5maW5pdHkKKygyIHJvd3MpCisKK1NFTEVDVCBjb2wyIGFzIHRpbWVz dGFtcHR6LAorICAgICAgIENBU1QoY29sMiBBUyB0aW1lc3RhbXB0eiBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wyIEFT IGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2RhdGUsCisgICAg ICAgQ0FTVChjb2wyIEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sMiBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZXN0 YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXBf c2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisgdGltZXN0YW1wdHogfCB0b190aW1lc3RhbXB0 eiB8ICB0b19kYXRlICB8IHRvX3RpbWVzIHwgdG9fdGltZXR6IHwgdG9fdGltZXN0YW1wX3NjYWxl IAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAtaW5maW5pdHkgICB8IC1pbmZpbml0 eSAgICAgIHwgLWluZmluaXR5IHwgICAgICAgICAgfCAgICAgICAgICAgfCAtaW5maW5pdHkKKyBp bmZpbml0eSAgICB8IGluZmluaXR5ICAgICAgIHwgaW5maW5pdHkgIHwgICAgICAgICAgfCAgICAg ICAgICAgfCBpbmZpbml0eQorKDIgcm93cykKKworU0VMRUNUIGNvbDMgYXMgaW50ZXJ2YWwsCisg ICAgICAgQ0FTVChjb2wzIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDMgQVMgZGF0ZSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAgICAgICBDQVNUKGNv bDMgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMs CisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMyBBUyB0aW1lc3RhbXAoMikgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcF9zY2FsZSwKKyAg ICAgICBDQVNUKGNvbDMgQVMgaW50ZXJ2YWwoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2ludGVydmFsX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworIGludGVy dmFsICB8IHRvX3RpbWVzdGFtcHR6IHwgdG9fZGF0ZSB8IHRvX3RpbWVzIHwgdG9fdGltZXR6IHwg dG9fdGltZXN0YW1wX3NjYWxlIHwgdG9faW50ZXJ2YWxfc2NhbGUgCistLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAtaW5maW5pdHkgfCAgICAgICAgICAgICAg ICB8ICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8 IC1pbmZpbml0eQorIGluZmluaXR5ICB8ICAgICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAg ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgaW5maW5pdHkKKygyIHJvd3Mp CisKK1NFTEVDVCBjb2w0IGFzIHRpbWUsCisgICAgICAgQ0FTVChjb2w0IEFTIHRpbWUoMikgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1Qo Y29sNCBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIElTIE5PVCBO VUxMIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDQgQVMgaW50ZXJ2YWwoMikgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsLAorICAgICAgIENBU1Qo Y29sNCBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisgICAgdGltZSAgICAgfCAg dG9fdGltZXMgICB8IHRvX3RpbWV0eiB8ICAgICAgICAgIHRvX2ludGVydmFsICAgICAgICAgIHwg ICAgICAgdG9faW50ZXJ2YWxfc2NhbGUgICAgICAgCistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMTU6MzY6MzkgICAgfCAxNTozNjozOSAgICB8IHQgICAg ICAgICB8IEAgMTUgaG91cnMgMzYgbWlucyAzOSBzZWNzICAgIHwgQCAxNSBob3VycyAzNiBtaW5z IDM5IHNlY3MKKyAyMzo1OTo1OS45OSB8IDIzOjU5OjU5Ljk5IHwgdCAgICAgICAgIHwgQCAyMyBo b3VycyA1OSBtaW5zIDU5Ljk5IHNlY3MgfCBAIDIzIGhvdXJzIDU5IG1pbnMgNTkuOTkgc2Vjcwor KDIgcm93cykKKworU0VMRUNUIGNvbDUgYXMgdGltZXR6LAorICAgICAgIENBU1QoY29sNSBBUyB0 aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lLAorICAgICAg IENBU1QoY29sNSBBUyB0aW1lKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b190aW1lX3NjYWxlLAorICAgICAgIENBU1QoY29sNSBBUyB0aW1ldHogREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDUgQVMg dGltZXR6KDYpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHpf c2NhbGUsCisgICAgICAgQ0FTVChjb2w1IEFTIGludGVydmFsIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbCwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50ZXJ2 YWwoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsX3Nj YWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworICAgICB0aW1ldHogICAgIHwgICB0b190aW1lICAg fCB0b190aW1lX3NjYWxlIHwgICB0b190aW1ldHogICAgfCB0b190aW1ldHpfc2NhbGUgfCB0b19p bnRlcnZhbCB8IHRvX2ludGVydmFsX3NjYWxlIAorLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLQorIDE1OjM2OjM5LTA0ICAgIHwgMTU6MzY6 MzkgICAgfCAxNTozNjozOSAgICAgIHwgMTU6MzY6MzktMDQgICAgfCAxNTozNjozOS0wNCAgICAg fCAgICAgICAgICAgICB8IAorIDIzOjU5OjU5Ljk5LTA3IHwgMjM6NTk6NTkuOTkgfCAyMzo1OTo1 OS45OSAgIHwgMjM6NTk6NTkuOTktMDcgfCAyMzo1OTo1OS45OS0wNyAgfCAgICAgICAgICAgICB8 IAorKDIgcm93cykKKworQ1JFQVRFIFRBQkxFIHRlc3Rfc2FmZWNhc3QzKGNvbDAganNvbmIpOwor SU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDMoY29sMCkgVkFMVUVTICgnInRlc3QiJyk7CitTRUxF Q1QgY29sMCBhcyBqc29uYiwKKyAgICAgICBDQVNUKGNvbDAgQVMgaW50ZWdlciBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZWdlciwKKyAgICAgICBDQVNUKGNvbDAg QVMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJp YywKKyAgICAgICBDQVNUKGNvbDAgQVMgYmlnaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sMCBBUyBmbG9hdDQgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDAg QVMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgs CisgICAgICAgQ0FTVChjb2wwIEFTIGJvb2xlYW4gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2Jvb2wsCisgICAgICAgQ0FTVChjb2wwIEFTIHNtYWxsaW50IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19zbWFsbGludAorRlJPTSB0ZXN0X3NhZmVj YXN0MzsKKyBqc29uYiAgfCB0b19pbnRlZ2VyIHwgdG9fbnVtZXJpYyB8IHRvX2ludDggfCB0b19m bG9hdDQgfCB0b19mbG9hdDggfCB0b19ib29sIHwgdG9fc21hbGxpbnQgCistLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorICJ0ZXN0IiB8ICAgICAgICAgICAgfCAgICAgICAgICAg IHwgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAg IAorKDEgcm93KQorCistLSB0ZXN0IGRlcGFyc2UKK0NSRUFURSBET01BSU4gZF9pbnRfYXJyIGFz IGludFtdOworQ1JFQVRFIFZJRVcgc2FmZWNhc3R2aWV3IEFTCitTRUxFQ1QgQ0FTVCgnMTIzNCcg YXMgY2hhcigzKSBERUZBVUxUIC0xMTExIE9OIENPTlZFUlNJT04gRVJST1IpLAorICAgICAgIENB U1QoMSBhcyBkYXRlIERFRkFVTFQgKChub3coKTo6ZGF0ZSArIHJhbmRvbShtaW49PjEsIG1heD0+ MTo6aW50KSkpIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRlc3Rfc2FmZWNhc3QxLAorICAgICAg IENBU1QoQVJSQVlbWycxJ10sIFsndGhyZWUnXSxbJ2EnXV0gQVMgaW50W10gREVGQVVMVCAnezEs Mn0nIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QxLAorICAgICAgIENBU1QoQVJSQVlbWycx JywgJzInXSwgWyd0aHJlZScsICdhJ11dIEFTIGRhdGVbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgY2FzdDIsCisgICAgICAgQ0FTVChBUlJBWVsndGhyZWUnXSBBUyBJTlRb XSBERUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDM7Citcc3Ygc2Fm ZWNhc3R2aWV3CitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHB1YmxpYy5zYWZlY2FzdHZpZXcgQVMK KyBTRUxFQ1QgQ0FTVCgnMTIzNCcgQVMgY2hhcmFjdGVyKDMpIERFRkFVTFQgJy0xMTExJzo6aW50 ZWdlcjo6Y2hhcmFjdGVyKDMpIE9OIENPTlZFUlNJT04gRVJST1IpIEFTIGJwY2hhciwKKyAgICBD QVNUKDEgQVMgZGF0ZSBERUZBVUxUIG5vdygpOjpkYXRlICsgcmFuZG9tKG1pbiA9PiAxLCBtYXgg PT4gMSkgT04gQ09OVkVSU0lPTiBFUlJPUikgQVMgdGVzdF9zYWZlY2FzdDEsCisgICAgQ0FTVChB UlJBWVtBUlJBWVsxXSwgQVJSQVlbJ3RocmVlJ10sIEFSUkFZWydhJ11dIEFTIGludGVnZXJbXSBE RUZBVUxUICd7MSwyfSc6OmludGVnZXJbXSBPTiBDT05WRVJTSU9OIEVSUk9SKSBBUyBjYXN0MSwK KyAgICBDQVNUKEFSUkFZW0FSUkFZWycxJywgJzInXSwgQVJSQVlbJ3RocmVlJywgJ2EnXV0gQVMg ZGF0ZVtdIERFRkFVTFQgTlVMTDo6ZGF0ZVtdIE9OIENPTlZFUlNJT04gRVJST1IpIEFTIGNhc3Qy LAorICAgIENBU1QoQVJSQVlbJ3RocmVlJ10gQVMgaW50ZWdlcltdIERFRkFVTFQgJ3sxLDJ9Jzo6 aW50ZWdlcltdIE9OIENPTlZFUlNJT04gRVJST1IpIEFTIGNhc3QzCitDUkVBVEUgVklFVyBzYWZl Y2FzdHZpZXcxIEFTCitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnXSwgWyd0aHJlZSddLFsnYSddXSBB UyBkX2ludF9hcnIgREVGQVVMVCAnezEsMn0nIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3Qx LAorICAgICAgIENBU1QoQVJSQVlbWycxJywgJzInXSwgWyd0aHJlZScsICdhJ11dIEFTIGRfaW50 X2FyciBERUZBVUxUICd7MjEsMjJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MjsKK1xz diBzYWZlY2FzdHZpZXcxCitDUkVBVEUgT1IgUkVQTEFDRSBWSUVXIHB1YmxpYy5zYWZlY2FzdHZp ZXcxIEFTCisgU0VMRUNUIENBU1QoQVJSQVlbQVJSQVlbMV0sIEFSUkFZWyd0aHJlZSddLCBBUlJB WVsnYSddXSBBUyBkX2ludF9hcnIgREVGQVVMVCAnezEsMn0nOjppbnRlZ2VyW106OmRfaW50X2Fy ciBPTiBDT05WRVJTSU9OIEVSUk9SKSBBUyBjYXN0MSwKKyAgICBDQVNUKEFSUkFZW0FSUkFZWzEs IDJdLCBBUlJBWVsndGhyZWUnLCAnYSddXSBBUyBkX2ludF9hcnIgREVGQVVMVCAnezIxLDIyfSc6 OmludGVnZXJbXTo6ZF9pbnRfYXJyIE9OIENPTlZFUlNJT04gRVJST1IpIEFTIGNhc3QyCitTRUxF Q1QgKiBGUk9NIHNhZmVjYXN0dmlldzE7CisgY2FzdDEgfCAgY2FzdDIgIAorLS0tLS0tLSstLS0t LS0tLS0KKyB7MSwyfSB8IHsyMSwyMn0KKygxIHJvdykKKworLS1lcnJvciwgZGVmYXVsdCBleHBy ZXNzaW9uIGlzIG11dGFibGUKK0NSRUFURSBJTkRFWCBjYXN0X2Vycm9yX2lkeCBPTiB0ZXN0X3Nh ZmVjYXN0MygoQ0FTVChjb2wwIGFzIGludCBERUZBVUxUIHJhbmRvbShtaW49PjEsIG1heD0+MSkg T04gQ09OVkVSU0lPTiBFUlJPUikpKTsKK0VSUk9SOiAgZnVuY3Rpb25zIGluIGluZGV4IGV4cHJl c3Npb24gbXVzdCBiZSBtYXJrZWQgSU1NVVRBQkxFCitDUkVBVEUgSU5ERVggY2FzdF9lcnJvcl9p ZHggT04gdGVzdF9zYWZlY2FzdDMoKENBU1QoY29sMCBhcyB4aWQgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpKSk7CitFUlJPUjogIGRhdGEgdHlwZSB4aWQgaGFzIG5vIGRlZmF1bHQg b3BlcmF0b3IgY2xhc3MgZm9yIGFjY2VzcyBtZXRob2QgImJ0cmVlIgorSElOVDogIFlvdSBtdXN0 IHNwZWNpZnkgYW4gb3BlcmF0b3IgY2xhc3MgZm9yIHRoZSBpbmRleCBvciBkZWZpbmUgYSBkZWZh dWx0IG9wZXJhdG9yIGNsYXNzIGZvciB0aGUgZGF0YSB0eXBlLgorQ1JFQVRFIElOREVYIHRlc3Rf c2FmZWNhc3QzX2lkeCBPTiB0ZXN0X3NhZmVjYXN0MygoQ0FTVChjb2wwIGFzIGludCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikpKTsgLS1vaworU0VMRUNUIHBnX2dldF9pbmRleGRl ZigndGVzdF9zYWZlY2FzdDNfaWR4Jzo6cmVnY2xhc3MpOworICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9pbmRleGRlZiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgSU5ERVggdGVzdF9zYWZlY2Fz dDNfaWR4IE9OIHB1YmxpYy50ZXN0X3NhZmVjYXN0MyBVU0lORyBidHJlZSAoKENBU1QoY29sMCBB UyBpbnRlZ2VyIERFRkFVTFQgTlVMTDo6aW50ZWdlciBPTiBDT05WRVJTSU9OIEVSUk9SKSkpCiso MSByb3cpCisKK0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDsKK0RST1AgVEFCTEUgdGVzdF9zYWZl Y2FzdDE7CitEUk9QIFRBQkxFIHRlc3Rfc2FmZWNhc3QyOworRFJPUCBUQUJMRSB0ZXN0X3NhZmVj YXN0MzsKK0RST1AgVEFCTEUgdGNhc3Q7CitEUk9QIEZVTkNUSU9OIHJldF9pbnQ4OworRFJPUCBG VU5DVElPTiByZXRfc2V0aW50OworRFJPUCBUWVBFIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kOwor RFJPUCBUWVBFIGNvbXAyOworRFJPUCBET01BSU4gZF92YXJjaGFyOworRFJPUCBET01BSU4gZF9p bnQ0MjsKK0RST1AgRE9NQUlOIGRfY2hhcjNfbm90X251bGw7CitSRVNFVCBleHRyYV9mbG9hdF9k aWdpdHM7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0 Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2Nhc3Qub3V0CmluZGV4IDBl Njk2NDRiY2EyLi5mNDAzNWMzMzhhYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9jcmVhdGVfY2FzdC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVh dGVfY2FzdC5vdXQKQEAgLTg4LDYgKzg4LDExIEBAIFNFTEVDVCAxMjM0OjppbnQ0OjpjYXN0dGVz dHR5cGU7IC0tIFNob3VsZCB3b3JrIG5vdwogIGJhcjEyMzQKICgxIHJvdykKIAorU0VMRUNUIENB U1QoMTIzNDo6aW50NCBBUyBjYXN0dGVzdHR5cGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOyAtLSBlcnJvcgorRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGludGVnZXIgdG8gY2Fz dHRlc3R0eXBlIHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4u LiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKDEyMzQ6OmludDQgQVMg Y2FzdHRlc3R0eXBlIERFRkFVTFQgTlVMTCBPTiBDT05WRS4uLgorICAgICAgICAgICAgICAgICAg ICBeCitISU5UOiAgRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0aW9uIGlzIG5v dCBkZWNsYXJlZCBhcyBzYWZlCiAtLSBjaGVjayBkZXBlbmRlbmNpZXMgZ2VuZXJhdGVkIGZvciB0 aGF0CiBTRUxFQ1QgcGdfZGVzY3JpYmVfb2JqZWN0KGNsYXNzaWQsIG9iamlkLCBvYmpzdWJpZCkg YXMgb2JqLAogICAgICAgIHBnX2Rlc2NyaWJlX29iamVjdChyZWZjbGFzc2lkLCByZWZvYmppZCwg cmVmb2Jqc3ViaWQpIGFzIG9ianJlZiwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvb3ByX3Nhbml0eS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5p dHkub3V0CmluZGV4IGEzNTdlMWQwYzBlLi44MWVhMjQ0ODU5ZiAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL29wcl9zYW5pdHkub3V0CkBAIC05NDMsOCArOTQzLDggQEAgU0VMRUNUICoKIEZS T00gcGdfY2FzdCBjCiBXSEVSRSBjYXN0c291cmNlID0gMCBPUiBjYXN0dGFyZ2V0ID0gMCBPUiBj YXN0Y29udGV4dCBOT1QgSU4gKCdlJywgJ2EnLCAnaScpCiAgICAgT1IgY2FzdG1ldGhvZCBOT1Qg SU4gKCdmJywgJ2InICwnaScpOwotIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2Fz dGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgCi0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBvaWQgfCBj YXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0 aG9kIHwgY2FzdGVycm9yc2FmZSAKKy0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KICgwIHJv d3MpCiAKIC0tIENoZWNrIHRoYXQgY2FzdGZ1bmMgaXMgbm9uemVybyBvbmx5IGZvciBjYXN0IG1l dGhvZHMgdGhhdCBuZWVkIGEgZnVuY3Rpb24sCkBAIC05NTMsOCArOTUzLDggQEAgU0VMRUNUICoK IEZST00gcGdfY2FzdCBjCiBXSEVSRSAoY2FzdG1ldGhvZCA9ICdmJyBBTkQgY2FzdGZ1bmMgPSAw KQogICAgT1IgKGNhc3RtZXRob2QgSU4gKCdiJywgJ2knKSBBTkQgY2FzdGZ1bmMgPD4gMCk7Ci0g b2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwg Y2FzdG1ldGhvZCAKLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0 IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAor LS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gTG9vayBmb3IgY2Fz dHMgdG8vZnJvbSB0aGUgc2FtZSB0eXBlIHRoYXQgYXJlbid0IGxlbmd0aCBjb2VyY2lvbiBmdW5j dGlvbnMuCkBAIC05NjMsMTUgKzk2MywxNSBAQCBXSEVSRSAoY2FzdG1ldGhvZCA9ICdmJyBBTkQg Y2FzdGZ1bmMgPSAwKQogU0VMRUNUICoKIEZST00gcGdfY2FzdCBjCiBXSEVSRSBjYXN0c291cmNl ID0gY2FzdHRhcmdldCBBTkQgY2FzdGZ1bmMgPSAwOwotIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0 dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgCi0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0KKyBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRl eHQgfCBjYXN0bWV0aG9kIHwgY2FzdGVycm9yc2FmZSAKKy0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0KICgwIHJvd3MpCiAKIFNFTEVDVCBjLioKIEZST00gcGdfY2FzdCBjLCBwZ19wcm9jIHAK IFdIRVJFIGMuY2FzdGZ1bmMgPSBwLm9pZCBBTkQgcC5wcm9uYXJncyA8IDIgQU5EIGNhc3Rzb3Vy Y2UgPSBjYXN0dGFyZ2V0OwotIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1 bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgCi0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBvaWQgfCBjYXN0 c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9k IHwgY2FzdGVycm9yc2FmZSAKKy0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KICgwIHJvd3Mp CiAKIC0tIExvb2sgZm9yIGNhc3QgZnVuY3Rpb25zIHRoYXQgZG9uJ3QgaGF2ZSB0aGUgcmlnaHQg c2lnbmF0dXJlLiAgVGhlCkBAIC05ODksOCArOTg5LDggQEAgV0hFUkUgYy5jYXN0ZnVuYyA9IHAu b2lkIEFORAogICAgICAgICAgICAgIE9SIChjLmNhc3Rzb3VyY2UgPSAnY2hhcmFjdGVyJzo6cmVn dHlwZSBBTkQKICAgICAgICAgICAgICAgICAgcC5wcm9hcmd0eXBlc1swXSA9ICd0ZXh0Jzo6cmVn dHlwZSkpCiAgICAgIE9SIE5PVCBiaW5hcnlfY29lcmNpYmxlKHAucHJvcmV0dHlwZSwgYy5jYXN0 dGFyZ2V0KSk7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNh c3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2Ug fCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0 ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogU0VM RUNUIGMuKgpAQCAtOTk4LDggKzk5OCw4IEBAIEZST00gcGdfY2FzdCBjLCBwZ19wcm9jIHAKIFdI RVJFIGMuY2FzdGZ1bmMgPSBwLm9pZCBBTkQKICAgICAoKHAucHJvbmFyZ3MgPiAxIEFORCBwLnBy b2FyZ3R5cGVzWzFdICE9ICdpbnQ0Jzo6cmVndHlwZSkgT1IKICAgICAgKHAucHJvbmFyZ3MgPiAy IEFORCBwLnByb2FyZ3R5cGVzWzJdICE9ICdib29sJzo6cmVndHlwZSkpOwotIG9pZCB8IGNhc3Rz b3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2Qg Ci0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0KKyBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5j IHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgY2FzdGVycm9yc2FmZSAKKy0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIExvb2sgZm9yIGJpbmFyeSBjb21wYXRp YmxlIGNhc3RzIHRoYXQgZG8gbm90IGhhdmUgdGhlIHJldmVyc2UKZGlmZiAtLWdpdCBhL3NyYy90 ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVs X3NjaGVkdWxlCmluZGV4IGEwZjVmYWIwZjVkLi5jNjkzNmY2NGE4NyAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3Bh cmFsbGVsX3NjaGVkdWxlCkBAIC04MSw3ICs4MSw3IEBAIHRlc3Q6IGNyZWF0ZV90YWJsZV9saWtl IGFsdGVyX2dlbmVyaWMgYWx0ZXJfb3BlcmF0b3IgbWlzYyBhc3luYyBkYnNpemUgbWVyZ2UgbWlz CiAjIGNvbGxhdGUubGludXgudXRmOCBhbmQgY29sbGF0ZS5pY3UudXRmOCB0ZXN0cyBjYW5ub3Qg YmUgcnVuIGluIHBhcmFsbGVsIHdpdGggZWFjaCBvdGhlcgogIyBwc3FsIGRlcGVuZHMgb24gY3Jl YXRlX2FtCiAjIGFtdXRpbHMgZGVwZW5kcyBvbiBnZW9tZXRyeSwgY3JlYXRlX2luZGV4X3NwZ2lz dCwgaGFzaF9pbmRleCwgYnJpbgotdGVzdDogcnVsZXMgcHNxbCBwc3FsX2Nyb3NzdGFiIHBzcWxf cGlwZWxpbmUgYW11dGlscyBzdGF0c19leHQgY29sbGF0ZS5saW51eC51dGY4IGNvbGxhdGUud2lu ZG93cy53aW4xMjUyCit0ZXN0OiBydWxlcyBwc3FsIHBzcWxfY3Jvc3N0YWIgcHNxbF9waXBlbGlu ZSBhbXV0aWxzIHN0YXRzX2V4dCBjb2xsYXRlLmxpbnV4LnV0ZjggY29sbGF0ZS53aW5kb3dzLndp bjEyNTIgY2FzdAogCiAjIC0tLS0tLS0tLS0KICMgUnVuIHRoZXNlIGFsb25lIHNvIHRoZXkgZG9u J3QgcnVuIG91dCBvZiBwYXJhbGxlbCB3b3JrZXJzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9jYXN0LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Nhc3Quc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mOTNkZGFhMWJiMgotLS0gL2Rldi9udWxs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Nhc3Quc3FsCkBAIC0wLDAgKzEsMzM1IEBACitT RVQgZXh0cmFfZmxvYXRfZGlnaXRzID0gMDsKKworLS0gQ0FTVCBERUZBVUxUIE9OIENPTlZFUlNJ T04gRVJST1IKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgRVJST1IgT04gQ09OVkVS U0lPTiBFUlJPUikpOyAtLWVycm9yCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikpOworVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdl ciBERUZBVUxUIDQyIE9OIENPTlZFUlNJT04gRVJST1IpKTsKK1NFTEVDVCBDQVNUKDEgQVMgZGF0 ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgxOjpudW1l cmljIEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBD QVNUKDExMTEgQVMgImNoYXIiIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKy0t dGhlIGRlZmF1bHQgZXhwcmVzc2lvbuKAmXMgY29sbGF0aW9uIHNob3VsZCBtYXRjaCB0aGUgY29s bGF0aW9uIG9mIHRoZSBjYXN0CistLXRhcmdldCB0eXBlCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBB UyB0ZXh0IERFRkFVTFQgJzEnIENPTExBVEUgIkMiIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKwor VkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50MnZlY3RvciBERUZBVUxUICcxIDMnICBPTiBDT05W RVJTSU9OIEVSUk9SKSk7CitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnQydmVjdG9yW10gREVG QVVMVCAnezEgM30nICBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CisKKy0tIHRlc3Qgc291cmNlIGV4 cHJlc3Npb24gY29udGFpbiBzdWJxdWVyeQorU0VMRUNUIENBU1QoKFNFTEVDVCBiIEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDEpLCAoVkFMVUVTKCdIJykpIHMoYikpCisgICAgICAgICAgICBBUyBp bnQydmVjdG9yW10gREVGQVVMVCAnezEgM30nICBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVD VCBDQVNUKChTRUxFQ1QgQVJSQVkoKFNFTEVDVCBiIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDIp IGcsIChWQUxVRVMoJ0gnKSkgcyhiKSkpKQorICAgICAgICAgICAgQVMgSU5UW10KKyAgICAgICAg ICAgIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworQ1JFQVRFIEZVTkNUSU9O IHJldF9pbnQ4KCkgUkVUVVJOUyBCSUdJTlQgQVMKKyQkCitCRUdJTiBSRVRVUk4gMjE0NzQ4MzY0 ODsgRU5EOworJCQKK0xBTkdVQUdFIHBscGdzcWwgSU1NVVRBQkxFOworCitTRUxFQ1QgQ0FTVCgn YScgYXMgaW50IERFRkFVTFQgcmV0X2ludDgoKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJv cgorU0VMRUNUIENBU1QoJ2EnIGFzIGRhdGUgREVGQVVMVCByZXRfaW50OCgpIE9OIENPTlZFUlNJ T04gRVJST1IpOyAtLWVycm9yCisKKy0tIHRlc3QgYXJyYXkgY29lcmNlCitTRUxFQ1QgQ0FTVChh cnJheVsnYSc6OnRleHRdIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsgLS1lcnJvcgorU0VMRUNUIENBU1QoYXJyYXlbJ2EnXSBBUyBpbnRbXSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7IC0tb2sKK1NFTEVDVCBDQVNUKGFycmF5WzExLjEyXSBBUyBk YXRlW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoYXJy YXlbMTExMTExMTExMTExMTExMTFdIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKK1NFTEVDVCBDQVNUKGFycmF5W1snYWJjJ10sWzQ1Nl1dIEFTIGludFtdIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCd7MTIzLGFiYyw0NTZ9 JyBBUyBpbnRbXSBERUZBVUxUICd7LTc4OX0nIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNU IENBU1QoJ3syMzQsZGVmLDU2N30nOjp0ZXh0W10gQVMgaW50ZWdlcltdIERFRkFVTFQgJ3stMTAx MX0nIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoQVJSQVlbWycxJ10sIFsndGhy ZWUnXSxbJ2EnXV0gQVMgaW50W10gREVGQVVMVCAnezEsMn0nIE9OIENPTlZFUlNJT04gRVJST1Ip OworU0VMRUNUIENBU1QoQVJSQVlbWycxJywgJzInXSwgWyd0aHJlZScsICdhJ11dIEFTIGludFtd IERFRkFVTFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLW9rCitTRUxFQ1QgQ0FT VChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJzo6aW50LCAnYSddXSBBUyBpbnRbXSBERUZBVUxU ICd7MjEsMjJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorU0VMRUNUIENBU1QoQVJS QVlbMSwgJ3RocmVlJzo6aW50XSBBUyBpbnRbXSBERUZBVUxUICd7MjEsMjJ9JyBPTiBDT05WRVJT SU9OIEVSUk9SKTsgLS1lcnJvcgorCistLSB0ZXN0IHZhbGlkIERFRkFVTFQgZXhwcmVzc2lvbiBm b3IgQ0FTVCA9IE9OIENPTlZFUlNJT04gRVJST1IKK0NSRUFURSBGVU5DVElPTiByZXRfc2V0aW50 KCkgUkVUVVJOUyBTRVRPRiBpbnRlZ2VyIEFTCiskJAorQkVHSU4gUkVUVVJOIFFVRVJZIEVYRUNV VEUgJ3NlbGVjdCAxIHVuaW9uIGFsbCBzZWxlY3QgMSc7IEVORDsKKyQkCitMQU5HVUFHRSBwbHBn c3FsIElNTVVUQUJMRTsKKworQ1JFQVRFIFRBQkxFIHRjYXN0KGEgdGV4dFtdLCBiIGludCBHRU5F UkFURUQgQlkgREVGQVVMVCBBUyBJREVOVElUWSwgYyB0ZXh0IGRlZmF1bHQgJzEnKTsKK0lOU0VS VCBJTlRPIHRjYXN0IFZBTFVFUyAoJ3sxMn0nKSwgKCd7MSxhLCBifScpLCAoJ3t7MSwyfSwge2Ms ZH19JyksICgnezEzfScpOworU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHJldF9zZXRp bnQoKSBPTiBDT05WRVJTSU9OIEVSUk9SKSBGUk9NIHRjYXN0OyAtLWVycm9yCitTRUxFQ1QgQ0FT VChjOjpkYXRlOjpqc29uIGFzIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IEZST00gdGNhc3Q7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKCdhJzo6aW50IGFzIGludCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKCdhJyBhcyBp bnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLW9rCitTRUxFQ1QgQ0FTVCgn YScgYXMgaW50IERFRkFVTFQgc3VtKDEpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitT RUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgc3VtKDEpIG92ZXIoKSBPTiBDT05WRVJTSU9O IEVSUk9SKTsgLS1lcnJvcgorU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIChTRUxFQ1Qg TlVMTCkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKCdhJyBhcyBp bnQgREVGQVVMVCAnYicgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKKworU0VMRUNUIENB U1QodCBBUyB0ZXh0W10gREVGQVVMVCAnezIxLDIyLCAnIHx8IGIgfHwgJ30nIE9OIENPTlZFUlNJ T04gRVJST1IpIEZST00gdGNhc3QgYXMgdDsKK1NFTEVDVCBDQVNUKHQuYSBBUyBpbnRbXSBERUZB VUxUICd7MjEsMjJ9Jzo6aW50W10gfHwgYiBPTiBDT05WRVJTSU9OIEVSUk9SKSBGUk9NIHRjYXN0 IGFzIHQ7CisKKy0tIHRlc3Qgd2l0aCBkb21haW4KK0NSRUFURSBET01BSU4gZF9pbnQ0MiBhcyBp bnQgY2hlY2sgKHZhbHVlID0gNDIpIE5PVCBOVUxMOworQ1JFQVRFIERPTUFJTiBkX2NoYXIzX25v dF9udWxsIGFzIGNoYXIoMykgTk9UIE5VTEw7CitDUkVBVEUgRE9NQUlOIGRfdmFyY2hhciBhcyB2 YXJjaGFyKDMpIE5PVCBOVUxMOworQ1JFQVRFIFRZUEUgY29tcF9kb21haW5fd2l0aF90eXBtb2Qg QVMgKGEgZF9jaGFyM19ub3RfbnVsbCwgYiBpbnQpOworQ1JFQVRFIFRZUEUgY29tcDIgQVMgKGEg ZF92YXJjaGFyKTsKK1NFTEVDVCBDQVNUKCcoTlVMTCknIEFTIGNvbXAyIERFRkFVTFQgJygxMjMy KScgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKCcoTlVMTCknIEFT IGNvbXAyIERFRkFVTFQgJygxMjMpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1vaworU0VMRUNU IENBU1QoMTEgQVMgZF9pbnQ0MiBERUZBVUxUIDQxIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVy cm9yCitTRUxFQ1QgQ0FTVCgxMSBBUyBkX2ludDQyIERFRkFVTFQgNDIgT04gQ09OVkVSU0lPTiBF UlJPUik7IC0tb2sKK1NFTEVDVCBDQVNUKE5VTEwgQVMgZF9pbnQ0MiBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKE5VTEwgQVMgZF9pbnQ0MiBE RUZBVUxUIDQyIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLW9rCitTRUxFQ1QgQ0FTVCgnKCw0Mikn IEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKK1NFTEVDVCBDQVNUKCcoTlVMTCw0MiknIEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9k IERFRkFVTFQgJygxLDIpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoTlVM TCw0MiknIEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgJygxMjM0LDIpJyBPTiBD T05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorCistLS0tLXNhZmUgY2FzdCB3aXRoIGdlb21ldHJ5 IGRhdGEgdHlwZQorU0VMRUNUIENBU1QoJygxLDIpJzo6cG9pbnQgQVMgYm94IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdbKE5hTiwxKSwoTmFOLGluZmlu aXR5KV0nOjpsc2VnIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK K1NFTEVDVCBDQVNUKCdbKDFlKzMwMCxJbmZpbml0eSksKDFlKzMwMCxJbmZpbml0eSldJzo6bHNl ZyBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FT VCgnWygxLDIpLCgzLDQpXSc6OnBhdGggYXMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKE5hTiwxLjAsTmFOLGluZmluaXR5KSc6OmJveCBB UyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgn KDIuMCwyLjAsMC4wLDAuMCknOjpib3ggQVMgbHNlZyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKDIuMCwyLjAsMC4wLDAuMCknOjpib3ggQVMgcG9seWdv biBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKDIuMCwy LjAsMC4wLDAuMCknOjpib3ggQVMgcGF0aCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP Uik7CitTRUxFQ1QgQ0FTVCgnKDIuMCxpbmZpbml0eSxOYU4saW5maW5pdHkpJzo6Ym94IEFTIGNp cmNsZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKE5h TiwwLjApLCgyLjAsNC4wKSwoMC4wLGluZmluaXR5KSc6OnBvbHlnb24gQVMgcG9pbnQgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJygyLjAsMC4wKSwoMi4w LDQuMCksKDAuMCwwLjApJzo6cG9seWdvbiBBUyBwYXRoIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoMi4wLDAuMCksKDIuMCw0LjApLCgwLjAsMC4wKSc6 OnBvbHlnb24gQVMgYm94IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVD VCBDQVNUKCcoTmFOLGluZmluaXR5KSwoMi4wLDQuMCksKDAuMCxpbmZpbml0eSknOjpwb2x5Z29u IEFTIGNpcmNsZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FT VCgnPCg1LDEpLDM+Jzo6Y2lyY2xlIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKK1NFTEVDVCBDQVNUKCc8KDMsNSksMD4nOjpjaXJjbGUgYXMgYm94IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKy0tIG5vdCBzdXBwb3J0ZWQgYmVjYXVzZSB0aGUg Y2FzdCBmcm9tIGNpcmNsZSB0byBwb2x5Z29uIGlzIGltcGxlbWVudGVkIGFzIGEgU1FMCistLSBm dW5jdGlvbiwgd2hpY2ggY2Fubm90IGJlIGVycm9yLXNhZmUuCitTRUxFQ1QgQ0FTVCgnPCgzLDUp LDA+Jzo6Y2lyY2xlIGFzIHBvbHlnb24gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworCistLS0tLXNhZmUgY2FzdCBmcm9tL3RvIG1vbmV5IHR5cGUgaXMgbm90IHN1cHBvcnRlZCwg YWxsIHRoZSBmb2xsb3dpbmcgd291bGQgcmVzdWx0IGVycm9yCitTRUxFQ1QgQ0FTVChOVUxMOjpp bnQ4IEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBD QVNUKE5VTEw6OmludDQgQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworU0VMRUNUIENBU1QoTlVMTDo6bnVtZXJpYyBBUyBtb25leSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChOVUxMOjptb25leSBBUyBudW1lcmljIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworLS0tLS1zYWZlIGNhc3QgZnJvbSBieXRl YSB0eXBlIHRvIG90aGVyIGRhdGEgdHlwZXMKK1NFTEVDVCBDQVNUICgnXHgxMTIyMzM0NDU1NjY3 Nzg4OTknOjpieXRlYSBBUyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK K1NFTEVDVCBDQVNUKCdceDEyMzQ1Njc4OUEnOjpieXRlYSBBUyBpbnQ0IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdceDEyMzQ1Nic6OmJ5dGVhIEFTIGlu dDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworCistLS0tLXNhZmUgY2FzdCBm cm9tIGJpdCB0eXBlIHRvIG90aGVyIGRhdGEgdHlwZXMKK1NFTEVDVCBDQVNUKCcxMTExMTExMTEx MDAwMDEnOjpiaXQoMTAwKSBBUyBJTlQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworU0VMRUNUIENBU1QgKCcxMTExMTExMTExMDAwMDEnOjpiaXQoMTAwKSBBUyBJTlQ4IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworLS0tLS1zYWZlIGNhc3QgZnJvbSB0ZXh0 IHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBlcworc2VsZWN0IENBU1QoJ2EuYi5jLmQnOjp0ZXh0IGFz IHJlZ2NsYXNzIGRlZmF1bHQgTlVMTCBvbiBjb252ZXJzaW9uIGVycm9yKTsKKworQ1JFQVRFIFRB QkxFIHRlc3Rfc2FmZWNhc3QoY29sMCB0ZXh0KTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3Qo Y29sMCkgVkFMVUVTICgnPHZhbHVlPm9uZTwvdmFsdWUnKTsKKworU0VMRUNUIGNvbDAgYXMgdGV4 dCwKKyAgICAgICBDQVNUKGNvbDAgQVMgcmVnY2xhc3MgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX3JlZ2NsYXNzLAorICAgICAgIENBU1QoY29sMCBBUyByZWdjbGFzcyBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgSVMgTlVMTCBhcyBleHBlY3RfdHJ1ZSwK KyAgICAgICBDQVNUKGNvbDAgQVMgImNoYXIiICBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fY2hhciwKKyAgICAgICBDQVNUKGNvbDAgQVMgbmFtZSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbmFtZSwKKyAgICAgICBDQVNUKGNvbDAgQVMgeG1s IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b194bWwKK0ZST00gdGVzdF9z YWZlY2FzdDsKKworU0VMRUNUIENBU1QoJzE5Mi4xNjguMS54JyBhcyBpbmV0IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcxOTIuMTY4LjEuMi8zMCcgYXMg Y2lkciBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnMjI6 MDA6NWM6MDg6NTU6MDg6MDE6MDInOjptYWNhZGRyOCBhcyBtYWNhZGRyIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsKKworLS0tLS1zYWZlIGNhc3QgYmV0d2VlZW4gcmFuZ2UgZGF0 YSB0eXBlcworU0VMRUNUIENBU1QoJ1sxLDJdJzo6aW50NHJhbmdlIEFTIGludDRtdWx0aXJhbmdl IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdbMSwyXSc6 OmludDhyYW5nZSBBUyBpbnQ4bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CitTRUxFQ1QgQ0FTVCgnWzEsMl0nOjpudW1yYW5nZSAgQVMgbnVtbXVsdGlyYW5nZSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnWy1pbmZpbml0 eSxpbmZpbml0eV0nOjpkYXRlcmFuZ2UgQVMgZGF0ZW11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1staW5maW5pdHksaW5maW5pdHldJzo6 dHNyYW5nZSBBUyB0c211bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworU0VMRUNUIENBU1QoJ1staW5maW5pdHksaW5maW5pdHldJzo6dHN0enJhbmdlIEFTIHRzdHpt dWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworLS0tLS1zYWZl IGNhc3QgYmV0d2VlZW4gbnVtZXJpYyBkYXRhIHR5cGVzCitDUkVBVEUgVEFCTEUgdGVzdF9zYWZl Y2FzdDEoCisgIGNvbDEgZmxvYXQ0LCBjb2wyIGZsb2F0OCwgY29sMyBudW1lcmljLCBjb2w0IG51 bWVyaWNbXSwKKyAgY29sNSBpbnQyIGRlZmF1bHQgMzI3NjcsCisgIGNvbDYgaW50NCBkZWZhdWx0 IDMyNzY4LAorICBjb2w3IGludDggZGVmYXVsdCA0Mjk0OTY3Mjk2KTsKK0lOU0VSVCBJTlRPIHRl c3Rfc2FmZWNhc3QxIFZBTFVFUygnMTEuMTIzNCcsICcxMS4xMjM0JywgJzkyMjMzNzIwMzY4NTQ3 NzU4MDgnLCAnezExLjEyMzR9Jzo6bnVtZXJpY1tdKTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNh c3QxIFZBTFVFUygnaW5mJywgJ2luZicsICdpbmYnLCAnezExLjEyMzQsIDEyLCBpbmYsIE5hTn0n OjpudW1lcmljW10pOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDEgVkFMVUVTKCctaW5mJywg Jy1pbmYnLCAnLWluZicsICd7MTEuMTIzNCwgMTIsIC1pbmYsIE5hTn0nOjpudW1lcmljW10pOwor SU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDEgVkFMVUVTKCdOYU4nLCAnTmFOJywgJ05hTicsICd7 MTEuMTIzNCwgMTIsIC1pbmYsIE5hTn0nOjpudW1lcmljW10pOworCitTRUxFQ1QgY29sNSBhcyBp bnQyLAorICAgICAgIENBU1QoY29sNSBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sNSBBUyBpbnQ0IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sNSBBUyBv aWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBD QVNUKGNvbDUgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f aW50OCwKKyAgICAgICBDQVNUKGNvbDUgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2w1IGFzIGZsb2F0OCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1Qo Y29sNSBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19u dW1lcmljLAorICAgICAgIENBU1QoY29sNSBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNh c3QxOworCitTRUxFQ1QgY29sNiBhcyBpbnQ0LAorICAgICAgIENBU1QoY29sNiBBUyBpbnQyIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1Qo Y29sNiBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0 LAorICAgICAgIENBU1QoY29sNiBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDYgYXMgaW50OCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDYgYXMgZmxvYXQ0 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAg Q0FTVChjb2w2IGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sNiBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sNiBhcyBudW1l cmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmlj X3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QxOworCitTRUxFQ1QgY29sNyBhcyBpbnQ4LAorICAg ICAgIENBU1QoY29sNyBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19pbnQyLAorICAgICAgIENBU1QoY29sNyBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sNyBBUyBvaWQgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDcg YXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAg ICAgICBDQVNUKGNvbDcgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2w3IGFzIGZsb2F0OCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sNyBhcyBu dW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAor ICAgICAgIENBU1QoY29sNyBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QxOworCitT RUxFQ1QgY29sMyBhcyBudW1lcmljLAorICAgICAgIENBU1QoY29sMyBBUyBpbnQyIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sMyBB UyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAg ICAgIENBU1QoY29sMyBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDMgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDMgYXMgZmxvYXQ0IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChj b2wzIGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxv YXQ4LAorICAgICAgIENBU1QoY29sMyBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sMyBhcyBudW1lcmljKDEw LDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxl CitGUk9NIHRlc3Rfc2FmZWNhc3QxOworCitTRUxFQ1QgY29sNCBhcyBudW1fYXJyLAorICAgICAg IENBU1QoY29sNCBBUyBpbnQyW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IGludDJhcnIsCisgICAgICAgQ0FTVChjb2w0IEFTIGludDRbXSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgaW50NGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMgaW50OFtdIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBpbnQ4YXJyLAorICAgICAgIENBU1Qo Y29sNCBhcyBmbG9hdDRbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgZjRh cnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGZsb2F0OFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyBmOGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMgbnVtZXJpYygxMCwxKVtd IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBudW1hcnIKK0ZST00gdGVzdF9z YWZlY2FzdDE7CisKK1NFTEVDVCBjb2wxIGFzIGZsb2F0NCwKKyAgICAgICBDQVNUKGNvbDEgQVMg aW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAg ICBDQVNUKGNvbDEgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9faW50NCwKKyAgICAgICBDQVNUKGNvbDEgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2wxIGFzIGludDggREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2wxIGFz IGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAor ICAgICAgIENBU1QoY29sMSBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDEgYXMgbnVtZXJpYyBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDEg YXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f bnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKworU0VMRUNUIGNvbDIgYXMgZmxv YXQ4LAorICAgICAgIENBU1QoY29sMiBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sMiBBUyBpbnQ0IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sMiBBUyBv aWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBD QVNUKGNvbDIgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f aW50OCwKKyAgICAgICBDQVNUKGNvbDIgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wyIGFzIGZsb2F0OCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1Qo Y29sMiBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19u dW1lcmljLAorICAgICAgIENBU1QoY29sMiBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNh c3QxOworCistLSBkYXRlL3RpbWVzdGFtcC9pbnRlcnZhbCByZWxhdGVkIHNhZmUgdHlwZSBjYXN0 CitDUkVBVEUgVEFCTEUgdGVzdF9zYWZlY2FzdDIoCisgIGNvbDAgZGF0ZSwgY29sMSB0aW1lc3Rh bXAsIGNvbDIgdGltZXN0YW1wdHosCisgIGNvbDMgaW50ZXJ2YWwsIGNvbDQgdGltZSwgY29sNSB0 aW1ldHopOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDIgVkFMVUVTCisoJy1pbmZpbml0eScs ICctaW5maW5pdHknLCAnLWluZmluaXR5JywgJy1pbmZpbml0eScsCisgICcyMDAzLTAzLTA3IDE1 OjM2OjM5IEFtZXJpY2EvTmV3X1lvcmsnLCAnMjAwMy0wNy0wNyAxNTozNjozOSBBbWVyaWNhL05l d19Zb3JrJyksCisoJy1pbmZpbml0eScsICdpbmZpbml0eScsICdpbmZpbml0eScsICdpbmZpbml0 eScsCisgICcxMTo1OTo1OS45OSBQTScsICcxMTo1OTo1OS45OSBQTSBQRFQnKTsKKworU0VMRUNU IGNvbDAgYXMgZGF0ZSwKKyAgICAgICBDQVNUKGNvbDAgQVMgdGltZXN0YW1wdHogREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1Qo Y29sMCBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRl LAorICAgICAgIENBU1QoY29sMCBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDAgQVMgdGltZXR6IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wwIEFT IHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGlt ZXN0YW1wX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworCitTRUxFQ1QgY29sMSBhcyB0aW1l c3RhbXAsCisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDEgQVMg ZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAgICAg ICBDQVNUKGNvbDEgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMSBBUyB0aW1lc3Rh bXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcF9z Y2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKworU0VMRUNUIGNvbDIgYXMgdGltZXN0YW1wdHos CisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDIgQVMgZGF0ZSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAgICAgICBDQVNU KGNvbDIgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGlt ZXMsCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMiBBUyB0aW1lc3RhbXAoMikg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcF9zY2FsZQor RlJPTSB0ZXN0X3NhZmVjYXN0MjsKKworU0VMRUNUIGNvbDMgYXMgaW50ZXJ2YWwsCisgICAgICAg Q0FTVChjb2wzIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDMgQVMgZGF0ZSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAgICAgICBDQVNUKGNvbDMgQVMg dGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAg ICAgQ0FTVChjb2wzIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMyBBUyB0aW1lc3RhbXAoMikgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcF9zY2FsZSwKKyAgICAgICBD QVNUKGNvbDMgQVMgaW50ZXJ2YWwoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX2ludGVydmFsX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworCitTRUxFQ1QgY29s NCBhcyB0aW1lLAorICAgICAgIENBU1QoY29sNCBBUyB0aW1lKDIpIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDQgQVMgdGltZXR6 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBJUyBOT1QgTlVMTCBhcyB0b190aW1l dHosCisgICAgICAgQ0FTVChjb2w0IEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbCwKKyAgICAgICBDQVNUKGNvbDQgQVMgaW50ZXJ2 YWwoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsX3Nj YWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworCitTRUxFQ1QgY29sNSBhcyB0aW1ldHosCisgICAg ICAgQ0FTVChjb2w1IEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX3RpbWUsCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWUoMikgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVfc2NhbGUsCisgICAgICAgQ0FTVChjb2w1IEFTIHRp bWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAg ICAgIENBU1QoY29sNSBBUyB0aW1ldHooNikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX3RpbWV0el9zY2FsZSwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50ZXJ2YWwgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsLAorICAgICAgIENB U1QoY29sNSBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisKK0NSRUFURSBUQUJM RSB0ZXN0X3NhZmVjYXN0Myhjb2wwIGpzb25iKTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3Qz KGNvbDApIFZBTFVFUyAoJyJ0ZXN0IicpOworU0VMRUNUIGNvbDAgYXMganNvbmIsCisgICAgICAg Q0FTVChjb2wwIEFTIGludGVnZXIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2ludGVnZXIsCisgICAgICAgQ0FTVChjb2wwIEFTIG51bWVyaWMgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2wwIEFTIGJp Z2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAg ICBDQVNUKGNvbDAgQVMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wwIEFTIGZsb2F0OCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sMCBBUyBib29s ZWFuIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19ib29sLAorICAgICAg IENBU1QoY29sMCBBUyBzbWFsbGludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fc21hbGxpbnQKK0ZST00gdGVzdF9zYWZlY2FzdDM7CisKKy0tIHRlc3QgZGVwYXJzZQor Q1JFQVRFIERPTUFJTiBkX2ludF9hcnIgYXMgaW50W107CitDUkVBVEUgVklFVyBzYWZlY2FzdHZp ZXcgQVMKK1NFTEVDVCBDQVNUKCcxMjM0JyBhcyBjaGFyKDMpIERFRkFVTFQgLTExMTEgT04gQ09O VkVSU0lPTiBFUlJPUiksCisgICAgICAgQ0FTVCgxIGFzIGRhdGUgREVGQVVMVCAoKG5vdygpOjpk YXRlICsgcmFuZG9tKG1pbj0+MSwgbWF4PT4xOjppbnQpKSkgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdGVzdF9zYWZlY2FzdDEsCisgICAgICAgQ0FTVChBUlJBWVtbJzEnXSwgWyd0aHJlZSddLFsn YSddXSBBUyBpbnRbXSBERUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2Fz dDEsCisgICAgICAgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJywgJ2EnXV0gQVMgZGF0 ZVtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MiwKKyAgICAgICBD QVNUKEFSUkFZWyd0aHJlZSddIEFTIElOVFtdIERFRkFVTFQgJ3sxLDJ9JyBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyBjYXN0MzsKK1xzdiBzYWZlY2FzdHZpZXcKKworQ1JFQVRFIFZJRVcgc2FmZWNh c3R2aWV3MSBBUworU0VMRUNUIENBU1QoQVJSQVlbWycxJ10sIFsndGhyZWUnXSxbJ2EnXV0gQVMg ZF9pbnRfYXJyIERFRkFVTFQgJ3sxLDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MSwK KyAgICAgICBDQVNUKEFSUkFZW1snMScsICcyJ10sIFsndGhyZWUnLCAnYSddXSBBUyBkX2ludF9h cnIgREVGQVVMVCAnezIxLDIyfScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDI7Citcc3Yg c2FmZWNhc3R2aWV3MQorU0VMRUNUICogRlJPTSBzYWZlY2FzdHZpZXcxOworCistLWVycm9yLCBk ZWZhdWx0IGV4cHJlc3Npb24gaXMgbXV0YWJsZQorQ1JFQVRFIElOREVYIGNhc3RfZXJyb3JfaWR4 IE9OIHRlc3Rfc2FmZWNhc3QzKChDQVNUKGNvbDAgYXMgaW50IERFRkFVTFQgcmFuZG9tKG1pbj0+ MSwgbWF4PT4xKSBPTiBDT05WRVJTSU9OIEVSUk9SKSkpOworQ1JFQVRFIElOREVYIGNhc3RfZXJy b3JfaWR4IE9OIHRlc3Rfc2FmZWNhc3QzKChDQVNUKGNvbDAgYXMgeGlkIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSkpOworQ1JFQVRFIElOREVYIHRlc3Rfc2FmZWNhc3QzX2lkeCBP TiB0ZXN0X3NhZmVjYXN0MygoQ0FTVChjb2wwIGFzIGludCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikpKTsgLS1vaworU0VMRUNUIHBnX2dldF9pbmRleGRlZigndGVzdF9zYWZlY2Fz dDNfaWR4Jzo6cmVnY2xhc3MpOworCitEUk9QIFRBQkxFIHRlc3Rfc2FmZWNhc3Q7CitEUk9QIFRB QkxFIHRlc3Rfc2FmZWNhc3QxOworRFJPUCBUQUJMRSB0ZXN0X3NhZmVjYXN0MjsKK0RST1AgVEFC TEUgdGVzdF9zYWZlY2FzdDM7CitEUk9QIFRBQkxFIHRjYXN0OworRFJPUCBGVU5DVElPTiByZXRf aW50ODsKK0RST1AgRlVOQ1RJT04gcmV0X3NldGludDsKK0RST1AgVFlQRSBjb21wX2RvbWFpbl93 aXRoX3R5cG1vZDsKK0RST1AgVFlQRSBjb21wMjsKK0RST1AgRE9NQUlOIGRfdmFyY2hhcjsKK0RS T1AgRE9NQUlOIGRfaW50NDI7CitEUk9QIERPTUFJTiBkX2NoYXIzX25vdF9udWxsOworUkVTRVQg ZXh0cmFfZmxvYXRfZGlnaXRzOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3Jl YXRlX2Nhc3Quc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsCmluZGV4 IDMyMTg3ODUzY2M3Li4wYTE1YTc5NWQ4NyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9z cWwvY3JlYXRlX2Nhc3Quc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9jYXN0 LnNxbApAQCAtNjIsNiArNjIsNyBAQCAkJCBTRUxFQ1QgKCdiYXInOjp0ZXh0IHx8ICQxOjp0ZXh0 KTsgJCQ7CiAKIENSRUFURSBDQVNUIChpbnQ0IEFTIGNhc3R0ZXN0dHlwZSkgV0lUSCBGVU5DVElP TiBiYXJfaW50NF90ZXh0KGludDQpIEFTIElNUExJQ0lUOwogU0VMRUNUIDEyMzQ6OmludDQ6OmNh c3R0ZXN0dHlwZTsgLS0gU2hvdWxkIHdvcmsgbm93CitTRUxFQ1QgQ0FTVCgxMjM0OjppbnQ0IEFT IGNhc3R0ZXN0dHlwZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9y CiAKIC0tIGNoZWNrIGRlcGVuZGVuY2llcyBnZW5lcmF0ZWQgZm9yIHRoYXQKIFNFTEVDVCBwZ19k ZXNjcmliZV9vYmplY3QoY2xhc3NpZCwgb2JqaWQsIG9ianN1YmlkKSBhcyBvYmosCmRpZmYgLS1n aXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVu dC90eXBlZGVmcy5saXN0CmluZGV4IDAxOGI1OTE5Y2Y2Li5jM2U2NDMyZWMzNSAxMDA2NDQKLS0t IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKQEAgLTI2NjIsNiArMjY2Miw5IEBAIFNUUkxFTgogU1YKIFNZTkNI Uk9OSVpBVElPTl9CQVJSSUVSCiBTWVNURU1fSU5GTworU2FmZVR5cGVDYXN0CitTYWZlVHlwZUNh c3RFeHByCitTYWZlVHlwZUNhc3RTdGF0ZQogU2FtcGxlU2NhbgogU2FtcGxlU2NhbkdldFNhbXBs ZVNpemVfZnVuY3Rpb24KIFNhbXBsZVNjYW5TdGF0ZQotLSAKMi4zNC4xCgo= --0000000000005a66d6064348f03b Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v10-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhtzolct5 RnJvbSA0MjY2ZDk5MDJmYmI0ZjdiMTFmYTllODgyYjdlOWE3ZjUwODNlZjZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgNiBPY3QgMjAyNSAxMjozOToyMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEw IDE1LzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIHRpbWVzdGFtcHR6IHRvIG90aGVyIHR5cGVz CiBwZXIgcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJl Z3R5cGUsIGNhc3RmdW5jLCBjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnBy b25hbWUKZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbiBwcC5vaWQgPSBwYy5jYXN0 ZnVuYwphbmQgcGMuY2FzdGZ1bmMgPiAwIGFuZCAoY2FzdHNvdXJjZTo6cmVndHlwZSA9J3RpbWVz dGFtcHR6Jzo6cmVndHlwZSkKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiAgICAgICAg Y2FzdHNvdXJjZSAgICAgICAgfCAgICAgICAgIGNhc3R0YXJnZXQgICAgICAgICAgfCBjYXN0ZnVu YyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgICAgICBwcm9zcmMgICAgICAgICB8ICAg cHJvbmFtZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KIHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSB8IGRh dGUgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAxMTc4IHwgYSAgICAgICAgICAgfCBmICAg ICAgICAgIHwgdGltZXN0YW1wdHpfZGF0ZSAgICAgIHwgZGF0ZQogdGltZXN0YW1wIHdpdGggdGlt ZSB6b25lIHwgdGltZSB3aXRob3V0IHRpbWUgem9uZSAgICAgIHwgICAgIDIwMTkgfCBhICAgICAg ICAgICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXB0el90aW1lICAgICAgfCB0aW1lCiB0aW1lc3Rh bXAgd2l0aCB0aW1lIHpvbmUgfCB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgfCAgICAgMjAy NyB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRpbWVzdGFtcHR6X3RpbWVzdGFtcCB8IHRp bWVzdGFtcAogdGltZXN0YW1wIHdpdGggdGltZSB6b25lIHwgdGltZSB3aXRoIHRpbWUgem9uZSAg ICAgICAgIHwgICAgIDEzODggfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXB0 el90aW1ldHogICAgfCB0aW1ldHoKIHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSB8IHRpbWVzdGFt cCB3aXRoIHRpbWUgem9uZSAgICB8ICAgICAxOTY3IHwgaSAgICAgICAgICAgfCBmICAgICAgICAg IHwgdGltZXN0YW1wdHpfc2NhbGUgICAgIHwgdGltZXN0YW1wdHoKKDUgcm93cykKCmRpc2N1c3Np b246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNr UThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2RhdGUuYyAgICAgIHwgMTYgKysrKysrKysrKysrKy0tLQogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3RpbWVzdGFtcC5jIHwgMTcgKysrKysrKysrKysrKysrLS0KIDIgZmlsZXMgY2hhbmdlZCwg MjggaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvZGF0ZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwppbmRleCA0 ZjBmM2QyNjk4OS4uMTExYmZkOGY1MTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9kYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwpAQCAtMTQ2OCw3ICsx NDY4LDE3IEBAIHRpbWVzdGFtcHR6X2RhdGUoUEdfRlVOQ1RJT05fQVJHUykKIAlUaW1lc3RhbXBU eiB0aW1lc3RhbXAgPSBQR19HRVRBUkdfVElNRVNUQU1QKDApOwogCURhdGVBRFQJCXJlc3VsdDsK IAotCXJlc3VsdCA9IHRpbWVzdGFtcHR6MmRhdGVfb3B0X292ZXJmbG93KHRpbWVzdGFtcCwgTlVM TCk7CisJaWYgKGxpa2VseSghZmNpbmZvLT5jb250ZXh0KSkKKwkJcmVzdWx0ID0gdGltZXN0YW1w dHoyZGF0ZV9vcHRfb3ZlcmZsb3codGltZXN0YW1wLCBOVUxMKTsKKwllbHNlCisJeworCQlpbnQJ CQlvdmVyZmxvdzsKKwkJcmVzdWx0ID0gdGltZXN0YW1wdHoyZGF0ZV9vcHRfb3ZlcmZsb3codGlt ZXN0YW1wLCAmb3ZlcmZsb3cpOworCisJCWlmIChvdmVyZmxvdyAhPSAwKQorCQkJUEdfUkVUVVJO X05VTEwoKTsKKwl9CisKIAlQR19SRVRVUk5fREFURUFEVChyZXN1bHQpOwogfQogCkBAIC0yMTEw LDcgKzIxMjAsNyBAQCB0aW1lc3RhbXB0el90aW1lKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVBHX1JF VFVSTl9OVUxMKCk7CiAKIAlpZiAodGltZXN0YW1wMnRtKHRpbWVzdGFtcCwgJnR6LCB0bSwgJmZz ZWMsIE5VTEwsIE5VTEwpICE9IDApCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZv LT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElNRV9WQUxV RV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coInRpbWVzdGFtcCBvdXQgb2YgcmFuZ2UiKSkp OwogCkBAIC0zMDI5LDcgKzMwMzksNyBAQCB0aW1lc3RhbXB0el90aW1ldHooUEdfRlVOQ1RJT05f QVJHUykKIAkJUEdfUkVUVVJOX05VTEwoKTsKIAogCWlmICh0aW1lc3RhbXAydG0odGltZXN0YW1w LCAmdHosIHRtLCAmZnNlYywgTlVMTCwgTlVMTCkgIT0gMCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJ ZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RF X0RBVEVUSU1FX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygidGltZXN0YW1wIG91 dCBvZiByYW5nZSIpKSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1l c3RhbXAuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYwppbmRleCA3YjU2NWNj NmQ2Ni4uMTE2ZTNlZjI4ZmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1l c3RhbXAuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKQEAgLTg3NSw3 ICs4NzUsOCBAQCB0aW1lc3RhbXB0el9zY2FsZShQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0 ID0gdGltZXN0YW1wOwogCi0JQWRqdXN0VGltZXN0YW1wRm9yVHlwbW9kKCZyZXN1bHQsIHR5cG1v ZCwgTlVMTCk7CisJaWYgKCFBZGp1c3RUaW1lc3RhbXBGb3JUeXBtb2QoJnJlc3VsdCwgdHlwbW9k LCBmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJUEdfUkVUVVJOX1RJ TUVTVEFNUFRaKHJlc3VsdCk7CiB9CkBAIC02NTA3LDcgKzY1MDgsMTkgQEAgdGltZXN0YW1wdHpf dGltZXN0YW1wKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJVGltZXN0YW1wVHogdGltZXN0YW1wID0g UEdfR0VUQVJHX1RJTUVTVEFNUFRaKDApOwogCi0JUEdfUkVUVVJOX1RJTUVTVEFNUCh0aW1lc3Rh bXB0ejJ0aW1lc3RhbXAodGltZXN0YW1wKSk7CisJaWYgKGxpa2VseSghZmNpbmZvLT5jb250ZXh0 KSkKKwkJUEdfUkVUVVJOX1RJTUVTVEFNUCh0aW1lc3RhbXB0ejJ0aW1lc3RhbXAodGltZXN0YW1w KSk7CisJZWxzZQorCXsKKwkJaW50CQkJb3ZlcmZsb3c7CisJCVRpbWVzdGFtcAlyZXN1bHQ7CisK KwkJcmVzdWx0ID0gdGltZXN0YW1wdHoydGltZXN0YW1wX29wdF9vdmVyZmxvdyh0aW1lc3RhbXAs ICZvdmVyZmxvdyk7CisJCWlmIChvdmVyZmxvdyAhPSAwKQorCQkJUEdfUkVUVVJOX05VTEwoKTsK KwkJZWxzZQorCQkJUEdfUkVUVVJOX1RJTUVTVEFNUChyZXN1bHQpOworCX0KIH0KIAogLyoKLS0g CjIuMzQuMQoK --0000000000005a66d6064348f03b Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v10-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhtzolcv6 RnJvbSBlZmU3ZWMwYmM0NGUxNjM5OWY4MGEwZmE0NTdjMTY4ZjNhMTA5MzY4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo0MzoyOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEw IDE0LzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGludGVydmFsIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2ludGVydmFs Jzo6cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAg ICAgICBjYXN0dGFyZ2V0ICAgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRo b2QgfCAgICAgcHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQogaW50ZXJ2YWwgICB8IHRpbWUgd2l0aG91dCB0aW1lIHpvbmUg fCAgICAgMTQxOSB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludGVydmFsX3RpbWUgIHwg dGltZQogaW50ZXJ2YWwgICB8IGludGVydmFsICAgICAgICAgICAgICAgfCAgICAgMTIwMCB8IGkg ICAgICAgICAgIHwgZiAgICAgICAgICB8IGludGVydmFsX3NjYWxlIHwgaW50ZXJ2YWwKKDIgcm93 cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3 d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2RhdGUuYyAgICAgIHwgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3RpbWVzdGFtcC5jIHwgMyArKy0KIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCmluZGV4IGM3YTNjZGUyZDgxLi40ZjBmM2Qy Njk4OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCkBAIC0yMTgwLDcgKzIxODAsNyBAQCBpbnRlcnZhbF90 aW1lKFBHX0ZVTkNUSU9OX0FSR1MpCiAJVGltZUFEVAkJcmVzdWx0OwogCiAJaWYgKElOVEVSVkFM X05PVF9GSU5JVEUoc3BhbikpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5j b250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElNRV9WQUxVRV9P VVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coImNhbm5vdCBjb252ZXJ0IGluZmluaXRlIGludGVy dmFsIHRvIHRpbWUiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGlt ZXN0YW1wLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKaW5kZXggMTU2YTQ4 MzBmZmQuLjdiNTY1Y2M2ZDY2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGlt ZXN0YW1wLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCkBAIC0xMzM0 LDcgKzEzMzQsOCBAQCBpbnRlcnZhbF9zY2FsZShQR19GVU5DVElPTl9BUkdTKQogCXJlc3VsdCA9 IHBhbGxvYyhzaXplb2YoSW50ZXJ2YWwpKTsKIAkqcmVzdWx0ID0gKmludGVydmFsOwogCi0JQWRq dXN0SW50ZXJ2YWxGb3JUeXBtb2QocmVzdWx0LCB0eXBtb2QsIE5VTEwpOworCWlmICghQWRqdXN0 SW50ZXJ2YWxGb3JUeXBtb2QocmVzdWx0LCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBH X1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fSU5URVJWQUxfUChyZXN1bHQpOwogfQotLSAK Mi4zNC4xCgo= --0000000000005a66d6064348f03b Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v10-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhtzolcy8 RnJvbSA2NTkyOWJmZjI5NTE5YWVlMjkzNWExNmEzOTNiYmE0ZGY3Yzc0ZDUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo0MTo1NSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEw IDEyLzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGZsb2F0OCB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l IGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdmbG9hdDgnOjpy ZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogICAgY2FzdHNvdXJjZSAgICB8 IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgICBw cm9zcmMgICAgIHwgcHJvbmFtZQotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0KIGRvdWJsZSBwcmVjaXNpb24gfCBiaWdpbnQgICAgIHwgICAgICA0ODMgfCBhICAgICAgICAg ICB8IGYgICAgICAgICAgfCBkdG9pOCAgICAgICAgICB8IGludDgKIGRvdWJsZSBwcmVjaXNpb24g fCBzbWFsbGludCAgIHwgICAgICAyMzcgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBkdG9p MiAgICAgICAgICB8IGludDIKIGRvdWJsZSBwcmVjaXNpb24gfCBpbnRlZ2VyICAgIHwgICAgICAz MTcgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBkdG9pNCAgICAgICAgICB8IGludDQKIGRv dWJsZSBwcmVjaXNpb24gfCByZWFsICAgICAgIHwgICAgICAzMTIgfCBhICAgICAgICAgICB8IGYg ICAgICAgICAgfCBkdG9mICAgICAgICAgICB8IGZsb2F0NAogZG91YmxlIHByZWNpc2lvbiB8IG51 bWVyaWMgICAgfCAgICAgMTc0MyB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IGZsb2F0OF9u dW1lcmljIHwgbnVtZXJpYwooNSByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMv bS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFp bC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYyAgIHwgMjkgKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMg ICAgfCAgNiArKysrKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMgfCAgMyArKy0K IDMgZmlsZXMgY2hhbmdlZCwgMzIgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9mbG9hdC5jCmluZGV4IGRkOGEyZmYzNzhiLi42NzQ3NTQ0YjY3OSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2Zsb2F0LmMKQEAgLTExOTksOSArMTE5OSwyMiBAQCBkdG9mKFBHX0ZVTkNUSU9OX0FSR1MpCiAK IAlyZXN1bHQgPSAoZmxvYXQ0KSBudW07CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpICYm ICFpc2luZihudW0pKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCXsKKwkJZXJyc2F2ZShm Y2luZm8tPmNvbnRleHQsCisJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09G X1JBTkdFKSwKKwkJCQllcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTogb3ZlcmZsb3ciKSk7CisK KwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CisKIAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMGYp ICYmIG51bSAhPSAwLjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCXsKKwkJZXJyc2F2 ZShmY2luZm8tPmNvbnRleHQsCisJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VU X09GX1JBTkdFKSwKKwkJCQllcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTogdW5kZXJmbG93Iikp OworCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJUEdfUkVUVVJOX0ZMT0FUNChyZXN1bHQp OwogfQpAQCAtMTIyNCwxMCArMTIzNywxNCBAQCBkdG9pNChQR19GVU5DVElPTl9BUkdTKQogCiAJ LyogUmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtlbHkoaXNuYW4obnVtKSB8fCAhRkxPQVQ4X0ZJ VFNfSU5fSU5UMzIobnVtKSkpCi0JCWVyZXBvcnQoRVJST1IsCisJeworCQllcnJzYXZlKGZjaW5m by0+Y29udGV4dCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JB TkdFKSwKIAkJCQkgZXJybXNnKCJpbnRlZ2VyIG91dCBvZiByYW5nZSIpKSk7CiAKKwkJUEdfUkVU VVJOX05VTEwoKTsKKwl9CisKIAlQR19SRVRVUk5fSU5UMzIoKGludDMyKSBudW0pOwogfQogCkBA IC0xMjQ5LDEwICsxMjY2LDE0IEBAIGR0b2kyKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5n ZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDhfRklUU19JTl9J TlQxNihudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVycnNhdmUoZmNpbmZvLT5jb250 ZXh0LAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAog CQkJCSBlcnJtc2coInNtYWxsaW50IG91dCBvZiByYW5nZSIpKSk7CiAKKwkJUEdfUkVUVVJOX05V TEwoKTsKKwl9CisKIAlQR19SRVRVUk5fSU5UMTYoKGludDE2KSBudW0pOwogfQogCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2ludDguYwppbmRleCBiY2RiMDIwYTkxYy4uNDM3ZGJiY2NkNGEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YwpAQCAtMTI2OCwxMCArMTI2OCwxNCBAQCBkdG9pOChQR19GVU5DVElPTl9BUkdTKQogCiAJLyog UmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtlbHkoaXNuYW4obnVtKSB8fCAhRkxPQVQ4X0ZJVFNf SU5fSU5UNjQobnVtKSkpCi0JCWVyZXBvcnQoRVJST1IsCisJeworCQllcnJzYXZlKGZjaW5mby0+ Y29udGV4dCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdF KSwKIAkJCQkgZXJybXNnKCJiaWdpbnQgb3V0IG9mIHJhbmdlIikpKTsKIAorCQlQR19SRVRVUk5f TlVMTCgpOworCX0KKwogCVBHX1JFVFVSTl9JTlQ2NCgoaW50NjQpIG51bSk7CiB9CiAKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvbnVtZXJpYy5jCmluZGV4IDg4MzliMDk1ZjYwLi43NmNkOTgwMGMyYSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYworKysgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvbnVtZXJpYy5jCkBAIC00NTcwLDcgKzQ1NzAsOCBAQCBmbG9hdDhfbnVtZXJpYyhQR19G VU5DVElPTl9BUkdTKQogCWluaXRfdmFyKCZyZXN1bHQpOwogCiAJLyogQXNzdW1lIHdlIG5lZWQg bm90IHdvcnJ5IGFib3V0IGxlYWRpbmcvdHJhaWxpbmcgc3BhY2VzICovCi0JKHZvaWQpIHNldF92 YXJfZnJvbV9zdHIoYnVmLCBidWYsICZyZXN1bHQsICZlbmRwdHIsIE5VTEwpOworCWlmICghc2V0 X3Zhcl9mcm9tX3N0cihidWYsIGJ1ZiwgJnJlc3VsdCwgJmVuZHB0ciwgZmNpbmZvLT5jb250ZXh0 KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCXJlcyA9IG1ha2VfcmVzdWx0KCZyZXN1bHQpOwog Ci0tIAoyLjM0LjEKCg== --0000000000005a66d6064348f03b Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v10-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhtzolcw7 RnJvbSA1MjE0NWY0ZWQyMjAyMWQ1ZWFiOTU4ODZiMjQ2MDc2NDI1YmQwMzgyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo0Mjo1MCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEw IDEzLzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGRhdGUgdG8gb3RoZXIgdHlwZXMgcGVyCiBw Z19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZSwg Y2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFtZSBm cm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5jIGFu ZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZGF0ZSc6OnJlZ3R5 cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCmNhc3Rzb3VyY2UgfCAgICAgICAgIGNh c3R0YXJnZXQgICAgICAgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8 ICAgICAgcHJvc3JjICAgICAgfCAgIHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KIGRhdGUgICAgICAgfCB0aW1lc3RhbXAgd2l0 aG91dCB0aW1lIHpvbmUgfCAgICAgMjAyNCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGRh dGVfdGltZXN0YW1wICAgfCB0aW1lc3RhbXAKIGRhdGUgICAgICAgfCB0aW1lc3RhbXAgd2l0aCB0 aW1lIHpvbmUgICAgfCAgICAgMTE3NCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGRhdGVf dGltZXN0YW1wdHogfCB0aW1lc3RhbXB0egooMiByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9w b3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2 aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jIHwg MjIgKysrKysrKysrKysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDIwIGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Rh dGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKaW5kZXggMzQ0ZjU4YjkyZjcuLmM3 YTNjZGUyZDgxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKQEAgLTEzNTAsNyArMTM1MCwxNiBAQCBkYXRl X3RpbWVzdGFtcChQR19GVU5DVElPTl9BUkdTKQogCURhdGVBRFQJCWRhdGVWYWwgPSBQR19HRVRB UkdfREFURUFEVCgwKTsKIAlUaW1lc3RhbXAJcmVzdWx0OwogCi0JcmVzdWx0ID0gZGF0ZTJ0aW1l c3RhbXAoZGF0ZVZhbCk7CisJaWYgKGxpa2VseSghZmNpbmZvLT5jb250ZXh0KSkKKwkJcmVzdWx0 ID0gZGF0ZTJ0aW1lc3RhbXAoZGF0ZVZhbCk7CisJZWxzZQorCXsKKwkJaW50CQkJb3ZlcmZsb3c7 CisKKwkJcmVzdWx0ID0gZGF0ZTJ0aW1lc3RhbXBfb3B0X292ZXJmbG93KGRhdGVWYWwsICZvdmVy Zmxvdyk7CisJCWlmIChvdmVyZmxvdyAhPSAwKQorCQkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAK IAlQR19SRVRVUk5fVElNRVNUQU1QKHJlc3VsdCk7CiB9CkBAIC0xNDM1LDcgKzE0NDQsMTYgQEAg ZGF0ZV90aW1lc3RhbXB0eihQR19GVU5DVElPTl9BUkdTKQogCURhdGVBRFQJCWRhdGVWYWwgPSBQ R19HRVRBUkdfREFURUFEVCgwKTsKIAlUaW1lc3RhbXBUeiByZXN1bHQ7CiAKLQlyZXN1bHQgPSBk YXRlMnRpbWVzdGFtcHR6KGRhdGVWYWwpOworCWlmIChsaWtlbHkoIWZjaW5mby0+Y29udGV4dCkp CisJCXJlc3VsdCA9IGRhdGUydGltZXN0YW1wdHooZGF0ZVZhbCk7CisJZWxzZQorCXsKKwkJaW50 CQkJb3ZlcmZsb3c7CisJCXJlc3VsdCA9IGRhdGUydGltZXN0YW1wdHpfb3B0X292ZXJmbG93KGRh dGVWYWwsICZvdmVyZmxvdyk7CisKKwkJaWYgKG92ZXJmbG93ICE9IDApCisJCQlQR19SRVRVUk5f TlVMTCgpOworCX0KIAogCVBHX1JFVFVSTl9USU1FU1RBTVAocmVzdWx0KTsKIH0KLS0gCjIuMzQu MQoK --0000000000005a66d6064348f03b Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v10-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhtzolcz9 RnJvbSBkYmI0NGRmMTAzYTgyMWJmOTc2OTU0OTQ0N2VlOTgzMTM4MDNhMWY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODozMzo1NyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEw IDExLzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGZsb2F0NCB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l IGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdmbG9hdDQnOjpy ZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAgIGNh c3R0YXJnZXQgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgICBw cm9zcmMgICAgIHwgcHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0KIHJlYWwgICAgICAgfCBiaWdpbnQgICAgICAgICAgIHwgICAgICA2NTMgfCBhICAgICAgICAg ICB8IGYgICAgICAgICAgfCBmdG9pOCAgICAgICAgICB8IGludDgKIHJlYWwgICAgICAgfCBzbWFs bGludCAgICAgICAgIHwgICAgICAyMzggfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBmdG9p MiAgICAgICAgICB8IGludDIKIHJlYWwgICAgICAgfCBpbnRlZ2VyICAgICAgICAgIHwgICAgICAz MTkgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBmdG9pNCAgICAgICAgICB8IGludDQKIHJl YWwgICAgICAgfCBkb3VibGUgcHJlY2lzaW9uIHwgICAgICAzMTEgfCBpICAgICAgICAgICB8IGYg ICAgICAgICAgfCBmdG9kICAgICAgICAgICB8IGZsb2F0OAogcmVhbCAgICAgICB8IG51bWVyaWMg ICAgICAgICAgfCAgICAgMTc0MiB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IGZsb2F0NF9u dW1lcmljIHwgbnVtZXJpYwooNSByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMv bS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFp bC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYyAgIHwgMTIgKysr KysrKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jICAgIHwgIDYgKysrKystCiBz cmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jIHwgIDMgKystCiAzIGZpbGVzIGNoYW5nZWQs IDE3IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2Zsb2F0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwppbmRl eCA3Yjk3ZDJiZTZjYS4uZGQ4YTJmZjM3OGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9mbG9hdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCkBAIC0xMjk4 LDEwICsxMjk4LDE0IEBAIGZ0b2k0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVj ayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDRfRklUU19JTl9JTlQzMihu dW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVycnNhdmUoZmNpbmZvLT5jb250ZXh0LAog CQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBl cnJtc2coImludGVnZXIgb3V0IG9mIHJhbmdlIikpKTsKIAorCQlQR19SRVRVUk5fTlVMTCgpOwor CX0KKwogCVBHX1JFVFVSTl9JTlQzMigoaW50MzIpIG51bSk7CiB9CiAKQEAgLTEzMjMsMTAgKzEz MjcsMTQgQEAgZnRvaTIoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIFJhbmdlIGNoZWNrICovCiAJ aWYgKHVubGlrZWx5KGlzbmFuKG51bSkgfHwgIUZMT0FUNF9GSVRTX0lOX0lOVDE2KG51bSkpKQot CQllcmVwb3J0KEVSUk9SLAorCXsKKwkJZXJyc2F2ZShmY2luZm8tPmNvbnRleHQsCiAJCQkJKGVy cmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygi c21hbGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIAorCQlQR19SRVRVUk5fTlVMTCgpOworCX0KKwog CVBHX1JFVFVSTl9JTlQxNigoaW50MTYpIG51bSk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9pbnQ4LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCmluZGV4 IDNiMmQxMDBiZTkyLi5iY2RiMDIwYTkxYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2ludDguYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCkBAIC0xMzAzLDEw ICsxMzAzLDE0IEBAIGZ0b2k4KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVjayAq LwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDRfRklUU19JTl9JTlQ2NChudW0p KSkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVycnNhdmUoZmNpbmZvLT5jb250ZXh0LAogCQkJ CShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJt c2coImJpZ2ludCBvdXQgb2YgcmFuZ2UiKSkpOwogCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQor CiAJUEdfUkVUVVJOX0lOVDY0KChpbnQ2NCkgbnVtKTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmlj LmMKaW5kZXggY2U1ZjcxMTA5ZTcuLjg4MzliMDk1ZjYwIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvbnVtZXJpYy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmlj LmMKQEAgLTQ2NjgsNyArNDY2OCw4IEBAIGZsb2F0NF9udW1lcmljKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJaW5pdF92YXIoJnJlc3VsdCk7CiAKIAkvKiBBc3N1bWUgd2UgbmVlZCBub3Qgd29ycnkgYWJv dXQgbGVhZGluZy90cmFpbGluZyBzcGFjZXMgKi8KLQkodm9pZCkgc2V0X3Zhcl9mcm9tX3N0cihi dWYsIGJ1ZiwgJnJlc3VsdCwgJmVuZHB0ciwgTlVMTCk7CisJaWYgKCFzZXRfdmFyX2Zyb21fc3Ry KGJ1ZiwgYnVmLCAmcmVzdWx0LCAmZW5kcHRyLCBmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRV Uk5fTlVMTCgpOwogCiAJcmVzID0gbWFrZV9yZXN1bHQoJnJlc3VsdCk7CiAKLS0gCjIuMzQuMQoK --0000000000005a66d6064348f03b Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v10-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhtzold111 RnJvbSAzMjVhODZjNzJjNDUzNTYxNGFhOTFmNzRkOGNkYTU0MmUwYjZjM2JlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxNjozODozNyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEw IDA5LzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGJpZ2ludCB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l IGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdiaWdpbnQnOjpy ZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAgIGNh c3R0YXJnZXQgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgIHBy b3NyYyAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQog YmlnaW50ICAgICB8IHNtYWxsaW50ICAgICAgICAgfCAgICAgIDcxNCB8IGEgICAgICAgICAgIHwg ZiAgICAgICAgICB8IGludDgyICAgICAgICB8IGludDIKIGJpZ2ludCAgICAgfCBpbnRlZ2VyICAg ICAgICAgIHwgICAgICA0ODAgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnQ4NCAgICAg ICAgfCBpbnQ0CiBiaWdpbnQgICAgIHwgcmVhbCAgICAgICAgICAgICB8ICAgICAgNjUyIHwgaSAg ICAgICAgICAgfCBmICAgICAgICAgIHwgaTh0b2YgICAgICAgIHwgZmxvYXQ0CiBiaWdpbnQgICAg IHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgNDgyIHwgaSAgICAgICAgICAgfCBmICAgICAgICAg IHwgaTh0b2QgICAgICAgIHwgZmxvYXQ4CiBiaWdpbnQgICAgIHwgbnVtZXJpYyAgICAgICAgICB8 ICAgICAxNzgxIHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaW50OF9udW1lcmljIHwgbnVt ZXJpYwogYmlnaW50ICAgICB8IG1vbmV5ICAgICAgICAgICAgfCAgICAgMzgxMiB8IGEgICAgICAg ICAgIHwgZiAgICAgICAgICB8IGludDhfY2FzaCAgICB8IG1vbmV5CiBiaWdpbnQgICAgIHwgb2lk ICAgICAgICAgICAgICB8ICAgICAxMjg3IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaTh0 b29pZCAgICAgIHwgb2lkCiBiaWdpbnQgICAgIHwgcmVncHJvYyAgICAgICAgICB8ICAgICAxMjg3 IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaTh0b29pZCAgICAgIHwgb2lkCiBiaWdpbnQg ICAgIHwgcmVncHJvY2VkdXJlICAgICB8ICAgICAxMjg3IHwgaSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgaTh0b29pZCAgICAgIHwgb2lkCiBiaWdpbnQgICAgIHwgcmVnb3BlciAgICAgICAgICB8 ICAgICAxMjg3IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaTh0b29pZCAgICAgIHwgb2lk CiBiaWdpbnQgICAgIHwgcmVnb3BlcmF0b3IgICAgICB8ICAgICAxMjg3IHwgaSAgICAgICAgICAg fCBmICAgICAgICAgIHwgaTh0b29pZCAgICAgIHwgb2lkCiBiaWdpbnQgICAgIHwgcmVnY2xhc3Mg ICAgICAgICB8ICAgICAxMjg3IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaTh0b29pZCAg ICAgIHwgb2lkCiBiaWdpbnQgICAgIHwgcmVnY29sbGF0aW9uICAgICB8ICAgICAxMjg3IHwgaSAg ICAgICAgICAgfCBmICAgICAgICAgIHwgaTh0b29pZCAgICAgIHwgb2lkCiBiaWdpbnQgICAgIHwg cmVndHlwZSAgICAgICAgICB8ICAgICAxMjg3IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwg aTh0b29pZCAgICAgIHwgb2lkCiBiaWdpbnQgICAgIHwgcmVnY29uZmlnICAgICAgICB8ICAgICAx Mjg3IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaTh0b29pZCAgICAgIHwgb2lkCiBiaWdp bnQgICAgIHwgcmVnZGljdGlvbmFyeSAgICB8ICAgICAxMjg3IHwgaSAgICAgICAgICAgfCBmICAg ICAgICAgIHwgaTh0b29pZCAgICAgIHwgb2lkCiBiaWdpbnQgICAgIHwgcmVncm9sZSAgICAgICAg ICB8ICAgICAxMjg3IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaTh0b29pZCAgICAgIHwg b2lkCiBiaWdpbnQgICAgIHwgcmVnbmFtZXNwYWNlICAgICB8ICAgICAxMjg3IHwgaSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgaTh0b29pZCAgICAgIHwgb2lkCiBiaWdpbnQgICAgIHwgcmVnZGF0 YWJhc2UgICAgICB8ICAgICAxMjg3IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaTh0b29p ZCAgICAgIHwgb2lkCiBiaWdpbnQgICAgIHwgYnl0ZWEgICAgICAgICAgICB8ICAgICA2MzY5IHwg ZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaW50OF9ieXRlYSAgIHwgYnl0ZWEKIGJpZ2ludCAg ICAgfCBiaXQgICAgICAgICAgICAgIHwgICAgIDIwNzUgfCBlICAgICAgICAgICB8IGYgICAgICAg ICAgfCBiaXRmcm9taW50OCAgfCBiaXQKKDIxIHJvd3MpCgphbHJlYWR5IGVycm9yIHNhZmU6IGk4 dG9mLCBpOHRvZCwgaW50OF9udW1lcmljLCBpbnQ4X2J5dGVhLCBiaXRmcm9taW50OApkaXNjdXNz aW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlz a1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxz L2FkdC9pbnQ4LmMgfCAxOCArKysrKysrKysrKysrKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAxNSBp bnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9pbnQ4LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCmluZGV4IGJkZWE0 OTAyMDJhLi4zYjJkMTAwYmU5MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2lu dDguYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCkBAIC0xMjA0LDEwICsxMjA0 LDE0IEBAIGludDg0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW50NjQJCWFyZyA9IFBHX0dFVEFSR19J TlQ2NCgwKTsKIAogCWlmICh1bmxpa2VseShhcmcgPCBQR19JTlQzMl9NSU4pIHx8IHVubGlrZWx5 KGFyZyA+IFBHX0lOVDMyX01BWCkpCi0JCWVyZXBvcnQoRVJST1IsCisJeworCQllcnJzYXZlKGZj aW5mby0+Y29udGV4dCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09G X1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnRlZ2VyIG91dCBvZiByYW5nZSIpKSk7CiAKKwkJUEdf UkVUVVJOX05VTEwoKTsKKwl9CisKIAlQR19SRVRVUk5fSU5UMzIoKGludDMyKSBhcmcpOwogfQog CkBAIC0xMjI1LDEwICsxMjI5LDE0IEBAIGludDgyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW50NjQJ CWFyZyA9IFBHX0dFVEFSR19JTlQ2NCgwKTsKIAogCWlmICh1bmxpa2VseShhcmcgPCBQR19JTlQx Nl9NSU4pIHx8IHVubGlrZWx5KGFyZyA+IFBHX0lOVDE2X01BWCkpCi0JCWVyZXBvcnQoRVJST1Is CisJeworCQllcnJzYXZlKGZjaW5mby0+Y29udGV4dCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05V TUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJzbWFsbGludCBvdXQgb2Yg cmFuZ2UiKSkpOwogCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQorCiAJUEdfUkVUVVJOX0lOVDE2 KChpbnQxNikgYXJnKTsKIH0KIApAQCAtMTMwOCwxMCArMTMxNiwxNCBAQCBpOHRvb2lkKFBHX0ZV TkNUSU9OX0FSR1MpCiAJaW50NjQJCWFyZyA9IFBHX0dFVEFSR19JTlQ2NCgwKTsKIAogCWlmICh1 bmxpa2VseShhcmcgPCAwKSB8fCB1bmxpa2VseShhcmcgPiBQR19VSU5UMzJfTUFYKSkKLQkJZXJl cG9ydChFUlJPUiwKKwl7CisJCWVycnNhdmUoZmNpbmZvLT5jb250ZXh0LAogCQkJCShlcnJjb2Rl KEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coIk9JRCBv dXQgb2YgcmFuZ2UiKSkpOwogCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQorCiAJUEdfUkVUVVJO X09JRCgoT2lkKSBhcmcpOwogfQogCi0tIAoyLjM0LjEKCg== --0000000000005a66d6064348f03b Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v10-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhtzold313 RnJvbSBjZTE5MDg4NzQ4MTkwNDQzNjFmMTZjODk3NmUxZDg4MzIzMmZjMjY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxOToxMjoxMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEw IDA3LzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIG1hY2FkZHI4IHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLCBjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUKZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbiBwcC5vaWQgPSBwYy5jYXN0ZnVu YwphbmQgcGMuY2FzdGZ1bmMgPiAwIGFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0nbWFjYWRkcjgn OjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8IGNh c3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgICAgcHJv c3JjICAgICAgIHwgcHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0K IG1hY2FkZHI4ICAgfCBtYWNhZGRyICAgIHwgICAgIDQxMjQgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCBtYWNhZGRyOHRvbWFjYWRkciB8IG1hY2FkZHIKKDEgcm93KQoKZGlzY3Vzc2lvbjog aHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpa dTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQv bWFjOC5jIHwgNiArKysrKy0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDEgZGVs ZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbWFjOC5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L21hYzguYwppbmRleCAwOGU0MWJhNGVlYS4uZTJhN2E5MGU0MmMg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tYWM4LmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L21hYzguYwpAQCAtNTUwLDcgKzU1MCw4IEBAIG1hY2FkZHI4dG9tYWNhZGRy KFBHX0ZVTkNUSU9OX0FSR1MpCiAJcmVzdWx0ID0gKG1hY2FkZHIgKikgcGFsbG9jMChzaXplb2Yo bWFjYWRkcikpOwogCiAJaWYgKChhZGRyLT5kICE9IDB4RkYpIHx8IChhZGRyLT5lICE9IDB4RkUp KQotCQllcmVwb3J0KEVSUk9SLAorCXsKKwkJZXJyc2F2ZShmY2luZm8tPmNvbnRleHQsCiAJCQkJ KGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1z ZygibWFjYWRkcjggZGF0YSBvdXQgb2YgcmFuZ2UgdG8gY29udmVydCB0byBtYWNhZGRyIiksCiAJ CQkJIGVycmhpbnQoIk9ubHkgYWRkcmVzc2VzIHRoYXQgaGF2ZSBGRiBhbmQgRkUgYXMgdmFsdWVz IGluIHRoZSAiCkBAIC01NTgsNiArNTU5LDkgQEAgbWFjYWRkcjh0b21hY2FkZHIoUEdfRlVOQ1RJ T05fQVJHUykKIAkJCQkJCSAieHg6eHg6eHg6ZmY6ZmU6eHg6eHg6eHgsIGFyZSBlbGlnaWJsZSB0 byBiZSBjb252ZXJ0ZWQgIgogCQkJCQkJICJmcm9tIG1hY2FkZHI4IHRvIG1hY2FkZHIuIikpKTsK IAorCQlQR19SRVRVUk5fTlVMTCgpOworCX0KKwogCXJlc3VsdC0+YSA9IGFkZHItPmE7CiAJcmVz dWx0LT5iID0gYWRkci0+YjsKIAlyZXN1bHQtPmMgPSBhZGRyLT5jOwotLSAKMi4zNC4xCgo= --0000000000005a66d6064348f03b Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v10-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhtzold414 RnJvbSA2N2MwNjYwOWI0ZDU2NWU4ZWJiMzVjODU1ZGIwNDQ2MmQ0NTM2YTUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxNTo1NTo1NSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEw IDA2LzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGluZXQgdG8gb3RoZXIgdHlwZXMgcGVyCiBw Z19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZSwg Y2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFtZSBm cm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5jIGFu ZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnaW5ldCc6OnJlZ3R5 cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgICAgY2FzdHRh cmdldCAgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgIHByb3Ny YyAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0KIGlu ZXQgICAgICAgfCBjaWRyICAgICAgICAgICAgICB8ICAgICAxNzE1IHwgYSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgaW5ldF90b19jaWRyIHwgY2lkcgogaW5ldCAgICAgICB8IHRleHQgICAgICAg ICAgICAgIHwgICAgICA3MzAgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBuZXR3b3JrX3No b3cgfCB0ZXh0CiBpbmV0ICAgICAgIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCAgICAgIDczMCB8IGEg ICAgICAgICAgIHwgZiAgICAgICAgICB8IG5ldHdvcmtfc2hvdyB8IHRleHQKIGluZXQgICAgICAg fCBjaGFyYWN0ZXIgICAgICAgICB8ICAgICAgNzMwIHwgYSAgICAgICAgICAgfCBmICAgICAgICAg IHwgbmV0d29ya19zaG93IHwgdGV4dAooNCByb3dzKQoKaW5ldF90b19jaWRyIGlzIGFscmVhZHkg ZXJyb3Igc2FmZS4KCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpm WTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0t LQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYyB8IDYgKysrKystCiAxIGZpbGUgY2hh bmdlZCwgNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9uZXR3b3Jr LmMKaW5kZXggM2NiMGFiNjgyOWEuLmYzNDIyODc2M2RhIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvbmV0d29yay5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9uZXR3b3Jr LmMKQEAgLTExMzcsMTAgKzExMzcsMTQgQEAgbmV0d29ya19zaG93KFBHX0ZVTkNUSU9OX0FSR1Mp CiAKIAlpZiAocGdfaW5ldF9uZXRfbnRvcChpcF9mYW1pbHkoaXApLCBpcF9hZGRyKGlwKSwgaXBf bWF4Yml0cyhpcCksCiAJCQkJCQkgdG1wLCBzaXplb2YodG1wKSkgPT0gTlVMTCkKLQkJZXJlcG9y dChFUlJPUiwKKwl7CisJCWVycnNhdmUoZmNpbmZvLT5jb250ZXh0LAogCQkJCShlcnJjb2RlKEVS UkNPREVfSU5WQUxJRF9CSU5BUllfUkVQUkVTRU5UQVRJT04pLAogCQkJCSBlcnJtc2coImNvdWxk IG5vdCBmb3JtYXQgaW5ldCB2YWx1ZTogJW0iKSkpOwogCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJ fQorCiAJLyogQWRkIC9uIGlmIG5vdCBwcmVzZW50ICh3aGljaCBpdCB3b24ndCBiZSkgKi8KIAlp ZiAoc3RyY2hyKHRtcCwgJy8nKSA9PSBOVUxMKQogCXsKLS0gCjIuMzQuMQoK --0000000000005a66d6064348f03b Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v10-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhtzold010 RnJvbSA4MjI5YjIyZDY3NGI1MWU0ZTQyYzlkZTBhYmI1OWJhMTIzODU3NTk1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAyMTo1NzozMSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEw IDEwLzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIG51bWVyaWMgdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnbnVtZXJpYyc6 OnJlZ3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCmNhc3Rzb3VyY2UgfCAgICBj YXN0dGFyZ2V0ICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAg cHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiBudW1lcmljICAgIHwgYmlnaW50ICAgICAgICAgICB8ICAgICAxNzc5IHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgbnVtZXJpY19pbnQ4ICAgfCBpbnQ4CiBudW1lcmljICAgIHwgc21h bGxpbnQgICAgICAgICB8ICAgICAxNzgzIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbnVt ZXJpY19pbnQyICAgfCBpbnQyCiBudW1lcmljICAgIHwgaW50ZWdlciAgICAgICAgICB8ICAgICAx NzQ0IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbnVtZXJpY19pbnQ0ICAgfCBpbnQ0CiBu dW1lcmljICAgIHwgcmVhbCAgICAgICAgICAgICB8ICAgICAxNzQ1IHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgbnVtZXJpY19mbG9hdDQgfCBmbG9hdDQKIG51bWVyaWMgICAgfCBkb3VibGUg cHJlY2lzaW9uIHwgICAgIDE3NDYgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBudW1lcmlj X2Zsb2F0OCB8IGZsb2F0OAogbnVtZXJpYyAgICB8IG1vbmV5ICAgICAgICAgICAgfCAgICAgMzgy NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IG51bWVyaWNfY2FzaCAgIHwgbW9uZXkKIG51 bWVyaWMgICAgfCBudW1lcmljICAgICAgICAgIHwgICAgIDE3MDMgfCBpICAgICAgICAgICB8IGYg ICAgICAgICAgfCBudW1lcmljICAgICAgICB8IG51bWVyaWMKKDcgcm93cykKCmRpc2N1c3Npb246 IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FDSnVmeEhDTXpySE9XPXdSZThMMzByTWhCM3Nqd0F2MUxF OTI4RmE3c3hNdTFUeC1nQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L251bWVyaWMuYyB8IDY4ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogMSBmaWxl IGNoYW5nZWQsIDUzIGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQv bnVtZXJpYy5jCmluZGV4IDI1MDEwMDdkOTgxLi5jZTVmNzExMDllNyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQv bnVtZXJpYy5jCkBAIC0xMjQ0LDcgKzEyNDQsOCBAQCBudW1lcmljCQkoUEdfRlVOQ1RJT05fQVJH UykKIAkgKi8KIAlpZiAoTlVNRVJJQ19JU19TUEVDSUFMKG51bSkpCiAJewotCQkodm9pZCkgYXBw bHlfdHlwbW9kX3NwZWNpYWwobnVtLCB0eXBtb2QsIE5VTEwpOworCQlpZiAoIWFwcGx5X3R5cG1v ZF9zcGVjaWFsKG51bSwgdHlwbW9kLCBmY2luZm8tPmNvbnRleHQpKQorCQkJUEdfUkVUVVJOX05V TEwoKTsKIAkJUEdfUkVUVVJOX05VTUVSSUMoZHVwbGljYXRlX251bWVyaWMobnVtKSk7CiAJfQog CkBAIC0xMjk1LDggKzEyOTYsOSBAQCBudW1lcmljCQkoUEdfRlVOQ1RJT05fQVJHUykKIAlpbml0 X3ZhcigmdmFyKTsKIAogCXNldF92YXJfZnJvbV9udW0obnVtLCAmdmFyKTsKLQkodm9pZCkgYXBw bHlfdHlwbW9kKCZ2YXIsIHR5cG1vZCwgTlVMTCk7Ci0JbmV3ID0gbWFrZV9yZXN1bHQoJnZhcik7 CisJaWYgKCFhcHBseV90eXBtb2QoJnZhciwgdHlwbW9kLCBmY2luZm8tPmNvbnRleHQpKQorCQlQ R19SRVRVUk5fTlVMTCgpOworCW5ldyA9IG1ha2VfcmVzdWx0X3NhZmUoJnZhciwgZmNpbmZvLT5j b250ZXh0KTsKIAogCWZyZWVfdmFyKCZ2YXIpOwogCkBAIC0zMDE5LDcgKzMwMjEsMTAgQEAgbnVt ZXJpY19tdWwoUEdfRlVOQ1RJT05fQVJHUykKIAlOdW1lcmljCQludW0yID0gUEdfR0VUQVJHX05V TUVSSUMoMSk7CiAJTnVtZXJpYwkJcmVzOwogCi0JcmVzID0gbnVtZXJpY19tdWxfc2FmZShudW0x LCBudW0yLCBOVUxMKTsKKwlyZXMgPSBudW1lcmljX211bF9zYWZlKG51bTEsIG51bTIsIGZjaW5m by0+Y29udGV4dCk7CisKKwlpZiAodW5saWtlbHkoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8t PmNvbnRleHQpKSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9OVU1FUklDKHJl cyk7CiB9CkBAIC00MzkzLDkgKzQzOTgsMTUgQEAgbnVtZXJpY19pbnQ0X3NhZmUoTnVtZXJpYyBu dW0sIE5vZGUgKmVzY29udGV4dCkKIERhdHVtCiBudW1lcmljX2ludDQoUEdfRlVOQ1RJT05fQVJH UykKIHsKKwlpbnQzMgkJcmVzdWx0OwogCU51bWVyaWMJCW51bSA9IFBHX0dFVEFSR19OVU1FUklD KDApOwogCi0JUEdfUkVUVVJOX0lOVDMyKG51bWVyaWNfaW50NF9zYWZlKG51bSwgTlVMTCkpOwor CXJlc3VsdCA9IG51bWVyaWNfaW50NF9zYWZlKG51bSwgZmNpbmZvLT5jb250ZXh0KTsKKworCWlm ICh1bmxpa2VseShTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpKQorCQlQR19S RVRVUk5fTlVMTCgpOworCisJUEdfUkVUVVJOX0lOVDMyKHJlc3VsdCk7CiB9CiAKIC8qCkBAIC00 NDYzLDkgKzQ0NzQsMTUgQEAgbnVtZXJpY19pbnQ4X3NhZmUoTnVtZXJpYyBudW0sIE5vZGUgKmVz Y29udGV4dCkKIERhdHVtCiBudW1lcmljX2ludDgoUEdfRlVOQ1RJT05fQVJHUykKIHsKKwlpbnQ2 NAkJcmVzdWx0OwogCU51bWVyaWMJCW51bSA9IFBHX0dFVEFSR19OVU1FUklDKDApOwogCi0JUEdf UkVUVVJOX0lOVDY0KG51bWVyaWNfaW50OF9zYWZlKG51bSwgTlVMTCkpOworCXJlc3VsdCA9IG51 bWVyaWNfaW50OF9zYWZlKG51bSwgZmNpbmZvLT5jb250ZXh0KTsKKworCWlmICh1bmxpa2VseShT T0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpKQorCQlQR19SRVRVUk5fTlVMTCgp OworCisJUEdfUkVUVVJOX0lOVDY0KHJlc3VsdCk7CiB9CiAKIApAQCAtNDQ4OSwyOCArNDUwNiwz OCBAQCBudW1lcmljX2ludDIoUEdfRlVOQ1RJT05fQVJHUykKIAlpZiAoTlVNRVJJQ19JU19TUEVD SUFMKG51bSkpCiAJewogCQlpZiAoTlVNRVJJQ19JU19OQU4obnVtKSkKLQkJCWVyZXBvcnQoRVJS T1IsCisJCQllcnJzYXZlKGZjaW5mby0+Y29udGV4dCwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9G RUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3QgY29udmVydCBOYU4g dG8gJXMiLCAic21hbGxpbnQiKSkpOwogCQllbHNlCi0JCQllcmVwb3J0KEVSUk9SLAorCQkJZXJy c2F2ZShmY2luZm8tPmNvbnRleHQsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1Rf U1VQUE9SVEVEKSwKIAkJCQkJIGVycm1zZygiY2Fubm90IGNvbnZlcnQgaW5maW5pdHkgdG8gJXMi LCAic21hbGxpbnQiKSkpOworCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAJfQogCiAJLyogQ29udmVy dCB0byB2YXJpYWJsZSBmb3JtYXQgYW5kIHRoZW5jZSB0byBpbnQ4ICovCiAJaW5pdF92YXJfZnJv bV9udW0obnVtLCAmeCk7CiAKIAlpZiAoIW51bWVyaWN2YXJfdG9faW50NjQoJngsICZ2YWwpKQot CQllcmVwb3J0KEVSUk9SLAorCXsKKwkJZXJyc2F2ZShmY2luZm8tPmNvbnRleHQsCiAJCQkJKGVy cmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygi c21hbGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIAorCQlQR19SRVRVUk5fTlVMTCgpOworCX0KKwog CWlmICh1bmxpa2VseSh2YWwgPCBQR19JTlQxNl9NSU4pIHx8IHVubGlrZWx5KHZhbCA+IFBHX0lO VDE2X01BWCkpCi0JCWVyZXBvcnQoRVJST1IsCisJeworCQllcnJzYXZlKGZjaW5mby0+Y29udGV4 dCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJ CQkgZXJybXNnKCJzbWFsbGludCBvdXQgb2YgcmFuZ2UiKSkpOwogCisJCVBHX1JFVFVSTl9OVUxM KCk7CisJfQorCiAJLyogRG93bi1jb252ZXJ0IHRvIGludDIgKi8KIAlyZXN1bHQgPSAoaW50MTYp IHZhbDsKIApAQCAtNDU3MiwxMCArNDU5OSwxNCBAQCBudW1lcmljX2Zsb2F0OChQR19GVU5DVElP Tl9BUkdTKQogCiAJdG1wID0gRGF0dW1HZXRDU3RyaW5nKERpcmVjdEZ1bmN0aW9uQ2FsbDEobnVt ZXJpY19vdXQsCiAJCQkJCQkJCQkJCSAgTnVtZXJpY0dldERhdHVtKG51bSkpKTsKLQotCXJlc3Vs dCA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEoZmxvYXQ4aW4sIENTdHJpbmdHZXREYXR1bSh0bXApKTsK LQotCXBmcmVlKHRtcCk7CisJaWYgKCFEaXJlY3RJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUoZmxvYXQ4 aW4sIHRtcCwKKwkJCQkJCQkJCSBJbnZhbGlkT2lkLCAtMSwKKwkJCQkJCQkJCSAoTm9kZSAqKSBm Y2luZm8tPmNvbnRleHQsCisJCQkJCQkJCQkgJnJlc3VsdCkpCisJeworCQlwZnJlZSh0bXApOwor CQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCVBHX1JFVFVSTl9EQVRVTShyZXN1bHQpOwogfQpA QCAtNDY2Nyw3ICs0Njk4LDE0IEBAIG51bWVyaWNfZmxvYXQ0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJ dG1wID0gRGF0dW1HZXRDU3RyaW5nKERpcmVjdEZ1bmN0aW9uQ2FsbDEobnVtZXJpY19vdXQsCiAJ CQkJCQkJCQkJCSAgTnVtZXJpY0dldERhdHVtKG51bSkpKTsKIAotCXJlc3VsdCA9IERpcmVjdEZ1 bmN0aW9uQ2FsbDEoZmxvYXQ0aW4sIENTdHJpbmdHZXREYXR1bSh0bXApKTsKKwlpZiAoIURpcmVj dElucHV0RnVuY3Rpb25DYWxsU2FmZShmbG9hdDRpbiwgdG1wLAorCQkJCQkJCQkJIEludmFsaWRP aWQsIC0xLAorCQkJCQkJCQkJIChOb2RlICopIGZjaW5mby0+Y29udGV4dCwKKwkJCQkJCQkJCSAm cmVzdWx0KSkKKwl7CisJCXBmcmVlKHRtcCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJ cGZyZWUodG1wKTsKIAotLSAKMi4zNC4xCgo= --0000000000005a66d6064348f03b Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v10-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhtzold312 RnJvbSA2ZGI3YmE5OTE2YmFmOTc1ZDJhMWM4OTVjYmRiODlhYzkxOGJiYzhlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxNjowNDowNyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEw IDA4LzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGludGVnZXIgdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnaW50ZWdlcic6 OnJlZ3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgICAg Y2FzdHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAg cHJvc3JjICAgIHwgcHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t CiBpbnRlZ2VyICAgIHwgYmlnaW50ICAgICAgICAgICB8ICAgICAgNDgxIHwgaSAgICAgICAgICAg fCBmICAgICAgICAgIHwgaW50NDggICAgICAgIHwgaW50OAogaW50ZWdlciAgICB8IHNtYWxsaW50 ICAgICAgICAgfCAgICAgIDMxNCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk0dG9pMiAg ICAgICB8IGludDIKIGludGVnZXIgICAgfCByZWFsICAgICAgICAgICAgIHwgICAgICAzMTggfCBp ICAgICAgICAgICB8IGYgICAgICAgICAgfCBpNHRvZiAgICAgICAgfCBmbG9hdDQKIGludGVnZXIg ICAgfCBkb3VibGUgcHJlY2lzaW9uIHwgICAgICAzMTYgfCBpICAgICAgICAgICB8IGYgICAgICAg ICAgfCBpNHRvZCAgICAgICAgfCBmbG9hdDgKIGludGVnZXIgICAgfCBudW1lcmljICAgICAgICAg IHwgICAgIDE3NDAgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnQ0X251bWVyaWMgfCBu dW1lcmljCiBpbnRlZ2VyICAgIHwgbW9uZXkgICAgICAgICAgICB8ICAgICAzODExIHwgYSAgICAg ICAgICAgfCBmICAgICAgICAgIHwgaW50NF9jYXNoICAgIHwgbW9uZXkKIGludGVnZXIgICAgfCBi b29sZWFuICAgICAgICAgIHwgICAgIDI1NTcgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBp bnQ0X2Jvb2wgICAgfCBib29sCiBpbnRlZ2VyICAgIHwgYnl0ZWEgICAgICAgICAgICB8ICAgICA2 MzY4IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaW50NF9ieXRlYSAgIHwgYnl0ZWEKIGlu dGVnZXIgICAgfCAiY2hhciIgICAgICAgICAgIHwgICAgICAgNzggfCBlICAgICAgICAgICB8IGYg ICAgICAgICAgfCBpNHRvY2hhciAgICAgfCBjaGFyCiBpbnRlZ2VyICAgIHwgYml0ICAgICAgICAg ICAgICB8ICAgICAxNjgzIHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgYml0ZnJvbWludDQg IHwgYml0CigxMCByb3dzKQoKb25seSBpbnQ0X2Nhc2gsIGk0dG9pMiwgaTR0b2NoYXIgbmVlZCB0 YWtlIGNhcmUgb2YgZXJyb3IgaGFuZGxpbmcuICBidXQgc3VwcG9ydApmb3IgY2FzaCBkYXRhIHR5 cGUgaXMgbm90IGVhc3ksIHNvIG9ubHkgaTR0b2kyLCBpNHRvY2hhciBmdW5jdGlvbiByZWZhY3Rv cmluZy4KCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEt amN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2NoYXIuYyB8IDYgKysrKystCiBzcmMvYmFja2VuZC91dGlscy9h ZHQvaW50LmMgIHwgNSArKysrLQogMiBmaWxlcyBjaGFuZ2VkLCA5IGluc2VydGlvbnMoKyksIDIg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2NoYXIuYyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMKaW5kZXggMjJkYmZjOTUwYjEuLjdjZjA5ZDk1 NGU3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvY2hhci5jCisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMKQEAgLTE5MiwxMCArMTkyLDE0IEBAIGk0dG9jaGFyKFBH X0ZVTkNUSU9OX0FSR1MpCiAJaW50MzIJCWFyZzEgPSBQR19HRVRBUkdfSU5UMzIoMCk7CiAKIAlp ZiAoYXJnMSA8IFNDSEFSX01JTiB8fCBhcmcxID4gU0NIQVJfTUFYKQotCQllcmVwb3J0KEVSUk9S LAorCXsKKwkJZXJyc2F2ZShmY2luZm8tPmNvbnRleHQsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9O VU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiXCJjaGFyXCIgb3V0IG9m IHJhbmdlIikpKTsKIAorCQlQR19SRVRVUk5fTlVMTCgpOworCX0KKwogCVBHX1JFVFVSTl9DSEFS KChpbnQ4KSBhcmcxKTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2lu dC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludC5jCmluZGV4IGI1NzgxOTg5YTY0Li40ZDNj ZTIzYTRhZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQuYwpAQCAtMzUwLDEwICszNTAsMTMgQEAgaTR0b2kyKFBH X0ZVTkNUSU9OX0FSR1MpCiAJaW50MzIJCWFyZzEgPSBQR19HRVRBUkdfSU5UMzIoMCk7CiAKIAlp ZiAodW5saWtlbHkoYXJnMSA8IFNIUlRfTUlOKSB8fCB1bmxpa2VseShhcmcxID4gU0hSVF9NQVgp KQotCQllcmVwb3J0KEVSUk9SLAorCXsKKwkJZXJyc2F2ZShmY2luZm8tPmNvbnRleHQsCiAJCQkJ KGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1z Zygic21hbGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIAorCQlQR19SRVRVUk5fTlVMTCgpOworCX0K IAlQR19SRVRVUk5fSU5UMTYoKGludDE2KSBhcmcxKTsKIH0KIAotLSAKMi4zNC4xCgo= --0000000000005a66d6064348f03b Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v10-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhtzold616 RnJvbSAxNTg4NmM1ZmE2YjllZjU3ZTE1NTc3NGY4MTc5ZjU0MWZlZDk4NDNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxNTo0OTo0NiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEw IDA0LzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIHRleHQgdG8gb3RoZXIgdHlwZXMgcGVyCiBw Z19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZSwg Y2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFtZSBm cm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5jIGFu ZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAndGV4dCc6OnJlZ3R5 cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgY2FzdHRhcmdl dCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgcHJvc3JjICAgICB8 IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCiB0ZXh0ICAgICAgIHwg cmVnY2xhc3MgICB8ICAgICAxMDc5IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dF9y ZWdjbGFzcyB8IHJlZ2NsYXNzCiB0ZXh0ICAgICAgIHwgImNoYXIiICAgICB8ICAgICAgOTQ0IHwg YSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dF9jaGFyICAgICB8IGNoYXIKIHRleHQgICAg ICAgfCBuYW1lICAgICAgIHwgICAgICA0MDcgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCB0 ZXh0X25hbWUgICAgIHwgbmFtZQogdGV4dCAgICAgICB8IHhtbCAgICAgICAgfCAgICAgMjg5NiB8 IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHR0b3htbCAgICAgfCB4bWwKKDQgcm93cykK CmFscmVhZHkgZXJyb3Igc2FmZTogdGV4dF9uYW1lLCB0ZXh0X2NoYXIuCnRleHR0b3htbCBpcyBy ZWZhY3RvcmVkIGluIGNoYXJhY3RlciB0eXBlIGVycm9yIHNhZmUgcGF0Y2guCgpkaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4 alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2NhdGFsb2cv bmFtZXNwYWNlLmMgfCAxNjcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC9yZWdwcm9jLmMgfCAgMzMgKysrKysrLQogc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3ZhcmxlbmEuYyB8ICA0MiArKysrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1l c3BhY2UuaCB8ICAgNiArKwogc3JjL2luY2x1ZGUvdXRpbHMvdmFybGVuYS5oICAgICB8ICAgMSAr CiA1IGZpbGVzIGNoYW5nZWQsIDI0NiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgYi9zcmMvYmFja2VuZC9j YXRhbG9nL25hbWVzcGFjZS5jCmluZGV4IGQyMzQ3NGRhNGZiLi5hMDRkMTc5YzdmYiAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYworKysgYi9zcmMvYmFja2VuZC9j YXRhbG9nL25hbWVzcGFjZS5jCkBAIC02NDAsNiArNjQwLDEzNyBAQCBSYW5nZVZhckdldFJlbGlk RXh0ZW5kZWQoY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLCBMT0NLTU9ERSBsb2NrbW9kZSwKIAly ZXR1cm4gcmVsSWQ7CiB9CiAKKy8qIHNhZmUgdmVyc2lvbiBvZiBSYW5nZVZhckdldFJlbGlkRXh0 ZW5kZWQgKi8KK09pZAorUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkU2FmZShjb25zdCBSYW5nZVZh ciAqcmVsYXRpb24sIExPQ0tNT0RFIGxvY2ttb2RlLAorCQkJCQkJCSB1aW50MzIgZmxhZ3MsIFJh bmdlVmFyR2V0UmVsaWRDYWxsYmFjayBjYWxsYmFjaywgdm9pZCAqY2FsbGJhY2tfYXJnLAorCQkJ CQkJCSBOb2RlICplc2NvbnRleHQpCit7CisJdWludDY0CQlpbnZhbF9jb3VudDsKKwlPaWQJCQly ZWxJZDsKKwlPaWQJCQlvbGRSZWxJZCA9IEludmFsaWRPaWQ7CisJYm9vbAkJcmV0cnkgPSBmYWxz ZTsKKwlib29sCQltaXNzaW5nX29rID0gKGZsYWdzICYgUlZSX01JU1NJTkdfT0spICE9IDA7CisK KwkvKiB2ZXJpZnkgdGhhdCBmbGFncyBkbyBubyBjb25mbGljdCAqLworCUFzc2VydCghKChmbGFn cyAmIFJWUl9OT1dBSVQpICYmIChmbGFncyAmIFJWUl9TS0lQX0xPQ0tFRCkpKTsKKworCS8qCisJ ICogV2UgY2hlY2sgdGhlIGNhdGFsb2cgbmFtZSBhbmQgdGhlbiBpZ25vcmUgaXQuCisJICovCisJ aWYgKHJlbGF0aW9uLT5jYXRhbG9nbmFtZSkKKwl7CisJCWlmIChzdHJjbXAocmVsYXRpb24tPmNh dGFsb2duYW1lLCBnZXRfZGF0YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpKSAhPSAwKQorCQkJZXJl dHVybihlc2NvbnRleHQsIEludmFsaWRPaWQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJF X05PVF9TVVBQT1JURUQpLAorCQkJCQllcnJtc2coImNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMg YXJlIG5vdCBpbXBsZW1lbnRlZDogXCIlcy4lcy4lc1wiIiwKKwkJCQkJCQlyZWxhdGlvbi0+Y2F0 YWxvZ25hbWUsIHJlbGF0aW9uLT5zY2hlbWFuYW1lLAorCQkJCQkJCXJlbGF0aW9uLT5yZWxuYW1l KSk7CisJfQorCisJZm9yICg7OykKKwl7CisJCWludmFsX2NvdW50ID0gU2hhcmVkSW52YWxpZE1l c3NhZ2VDb3VudGVyOworCisJCWlmIChyZWxhdGlvbi0+cmVscGVyc2lzdGVuY2UgPT0gUkVMUEVS U0lTVEVOQ0VfVEVNUCkKKwkJeworCQkJaWYgKCFPaWRJc1ZhbGlkKG15VGVtcE5hbWVzcGFjZSkp CisJCQkJcmVsSWQgPSBJbnZhbGlkT2lkOworCQkJZWxzZQorCQkJeworCQkJCWlmIChyZWxhdGlv bi0+c2NoZW1hbmFtZSkKKwkJCQl7CisJCQkJCU9pZAkJCW5hbWVzcGFjZUlkOworCisJCQkJCW5h bWVzcGFjZUlkID0gTG9va3VwRXhwbGljaXROYW1lc3BhY2UocmVsYXRpb24tPnNjaGVtYW5hbWUs IG1pc3Npbmdfb2spOworCisJCQkJCS8qCisJCQkJCSAqIEZvciBtaXNzaW5nX29rLCBhbGxvdyBh IG5vbi1leGlzdGVudCBzY2hlbWEgbmFtZSB0bworCQkJCQkgKiByZXR1cm4gSW52YWxpZE9pZC4K KwkJCQkJICovCisJCQkJCWlmIChuYW1lc3BhY2VJZCAhPSBteVRlbXBOYW1lc3BhY2UpCisJCQkJ CQllcmV0dXJuKGVzY29udGV4dCwgSW52YWxpZE9pZCwKKwkJCQkJCQkJZXJyY29kZShFUlJDT0RF X0lOVkFMSURfVEFCTEVfREVGSU5JVElPTiksCisJCQkJCQkJCWVycm1zZygidGVtcG9yYXJ5IHRh YmxlcyBjYW5ub3Qgc3BlY2lmeSBhIHNjaGVtYSBuYW1lIikpOworCQkJCX0KKworCQkJCXJlbElk ID0gZ2V0X3JlbG5hbWVfcmVsaWQocmVsYXRpb24tPnJlbG5hbWUsIG15VGVtcE5hbWVzcGFjZSk7 CisJCQl9CisJCX0KKwkJZWxzZSBpZiAocmVsYXRpb24tPnNjaGVtYW5hbWUpCisJCXsKKwkJCU9p ZAkJCW5hbWVzcGFjZUlkOworCisJCQkvKiB1c2UgZXhhY3Qgc2NoZW1hIGdpdmVuICovCisJCQlu YW1lc3BhY2VJZCA9IExvb2t1cEV4cGxpY2l0TmFtZXNwYWNlKHJlbGF0aW9uLT5zY2hlbWFuYW1l LCBtaXNzaW5nX29rKTsKKwkJCWlmIChtaXNzaW5nX29rICYmICFPaWRJc1ZhbGlkKG5hbWVzcGFj ZUlkKSkKKwkJCQlyZWxJZCA9IEludmFsaWRPaWQ7CisJCQllbHNlCisJCQkJcmVsSWQgPSBnZXRf cmVsbmFtZV9yZWxpZChyZWxhdGlvbi0+cmVsbmFtZSwgbmFtZXNwYWNlSWQpOworCQl9CisJCWVs c2UKKwkJeworCQkJLyogc2VhcmNoIHRoZSBuYW1lc3BhY2UgcGF0aCAqLworCQkJcmVsSWQgPSBS ZWxuYW1lR2V0UmVsaWQocmVsYXRpb24tPnJlbG5hbWUpOworCQl9CisKKwkJaWYgKGNhbGxiYWNr KQorCQkJY2FsbGJhY2socmVsYXRpb24sIHJlbElkLCBvbGRSZWxJZCwgY2FsbGJhY2tfYXJnKTsK KworCQlpZiAobG9ja21vZGUgPT0gTm9Mb2NrKQorCQkJYnJlYWs7CisKKwkJaWYgKHJldHJ5KQor CQl7CisJCQlpZiAocmVsSWQgPT0gb2xkUmVsSWQpCisJCQkJYnJlYWs7CisJCQlpZiAoT2lkSXNW YWxpZChvbGRSZWxJZCkpCisJCQkJVW5sb2NrUmVsYXRpb25PaWQob2xkUmVsSWQsIGxvY2ttb2Rl KTsKKwkJfQorCisJCWlmICghT2lkSXNWYWxpZChyZWxJZCkpCisJCQlBY2NlcHRJbnZhbGlkYXRp b25NZXNzYWdlcygpOworCQllbHNlIGlmICghKGZsYWdzICYgKFJWUl9OT1dBSVQgfCBSVlJfU0tJ UF9MT0NLRUQpKSkKKwkJCUxvY2tSZWxhdGlvbk9pZChyZWxJZCwgbG9ja21vZGUpOworCQllbHNl IGlmICghQ29uZGl0aW9uYWxMb2NrUmVsYXRpb25PaWQocmVsSWQsIGxvY2ttb2RlKSkKKwkJewor CQkJaWYgKHJlbGF0aW9uLT5zY2hlbWFuYW1lKQorCQkJCWVyZXBvcnQoREVCVUcxLAorCQkJCQkJ ZXJyY29kZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlMQUJMRSksCisJCQkJCQllcnJtc2coImNvdWxk IG5vdCBvYnRhaW4gbG9jayBvbiByZWxhdGlvbiBcIiVzLiVzXCIiLAorCQkJCQkJCQlyZWxhdGlv bi0+c2NoZW1hbmFtZSwgcmVsYXRpb24tPnJlbG5hbWUpKTsKKwkJCWVsc2UKKwkJCQllcmVwb3J0 KERFQlVHMSwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9MT0NLX05PVF9BVkFJTEFCTEUpLAorCQkJ CQkJZXJybXNnKCJjb3VsZCBub3Qgb2J0YWluIGxvY2sgb24gcmVsYXRpb24gXCIlc1wiIiwKKwkJ CQkJCQkgICByZWxhdGlvbi0+cmVsbmFtZSkpOworCisJCQlyZXR1cm4gSW52YWxpZE9pZDsKKwkJ fQorCisJCWlmIChpbnZhbF9jb3VudCA9PSBTaGFyZWRJbnZhbGlkTWVzc2FnZUNvdW50ZXIpCisJ CQlicmVhazsKKworCQlyZXRyeSA9IHRydWU7CisJCW9sZFJlbElkID0gcmVsSWQ7CisJfQorCisJ aWYgKCFPaWRJc1ZhbGlkKHJlbElkKSkKKwl7CisJCWlmIChyZWxhdGlvbi0+c2NoZW1hbmFtZSkK KwkJCWVyZXR1cm4oZXNjb250ZXh0LCBJbnZhbGlkT2lkLAorCQkJCQllcnJjb2RlKEVSUkNPREVf VU5ERUZJTkVEX1RBQkxFKSwKKwkJCQkJZXJybXNnKCJyZWxhdGlvbiBcIiVzLiVzXCIgZG9lcyBu b3QgZXhpc3QiLAorCQkJCQkJCXJlbGF0aW9uLT5zY2hlbWFuYW1lLCByZWxhdGlvbi0+cmVsbmFt ZSkpOworCQllbHNlCisJCQllcmV0dXJuKGVzY29udGV4dCwgSW52YWxpZE9pZCwKKwkJCQkJZXJy Y29kZShFUlJDT0RFX1VOREVGSU5FRF9UQUJMRSksCisJCQkJCWVycm1zZygicmVsYXRpb24gXCIl c1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCQlyZWxhdGlvbi0+cmVsbmFtZSkpOworCX0KKwly ZXR1cm4gcmVsSWQ7Cit9CisKIC8qCiAgKiBSYW5nZVZhckdldENyZWF0aW9uTmFtZXNwYWNlCiAg KgkJR2l2ZW4gYSBSYW5nZVZhciBkZXNjcmliaW5nIGEgdG8tYmUtY3JlYXRlZCByZWxhdGlvbiwK QEAgLTM2NTAsNiArMzc4MSw0MiBAQCBtYWtlUmFuZ2VWYXJGcm9tTmFtZUxpc3QoY29uc3QgTGlz dCAqbmFtZXMpCiAJcmV0dXJuIHJlbDsKIH0KIAorLyoKKyAqIG1ha2VSYW5nZVZhckZyb21OYW1l TGlzdFNhZmUKKyAqCQlVdGlsaXR5IHJvdXRpbmUgdG8gY29udmVydCBhIHF1YWxpZmllZC1uYW1l IGxpc3QgaW50byBSYW5nZVZhciBmb3JtLgorICogVGhlIHJlc3VsdCBtYXliZSBOVUxMLgorICov CitSYW5nZVZhciAqCittYWtlUmFuZ2VWYXJGcm9tTmFtZUxpc3RTYWZlKGNvbnN0IExpc3QgKm5h bWVzLCBOb2RlICplc2NvbnRleHQpCit7CisJUmFuZ2VWYXIgICAqcmVsID0gbWFrZVJhbmdlVmFy KE5VTEwsIE5VTEwsIC0xKTsKKworCXN3aXRjaCAobGlzdF9sZW5ndGgobmFtZXMpKQorCXsKKwkJ Y2FzZSAxOgorCQkJcmVsLT5yZWxuYW1lID0gc3RyVmFsKGxpbml0aWFsKG5hbWVzKSk7CisJCQli cmVhazsKKwkJY2FzZSAyOgorCQkJcmVsLT5zY2hlbWFuYW1lID0gc3RyVmFsKGxpbml0aWFsKG5h bWVzKSk7CisJCQlyZWwtPnJlbG5hbWUgPSBzdHJWYWwobHNlY29uZChuYW1lcykpOworCQkJYnJl YWs7CisJCWNhc2UgMzoKKwkJCXJlbC0+Y2F0YWxvZ25hbWUgPSBzdHJWYWwobGluaXRpYWwobmFt ZXMpKTsKKwkJCXJlbC0+c2NoZW1hbmFtZSA9IHN0clZhbChsc2Vjb25kKG5hbWVzKSk7CisJCQly ZWwtPnJlbG5hbWUgPSBzdHJWYWwobHRoaXJkKG5hbWVzKSk7CisJCQlicmVhazsKKwkJZGVmYXVs dDoKKwkJCWVycnNhdmUoZXNjb250ZXh0LAorCQkJCQllcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VS Uk9SKSwKKwkJCQkJZXJybXNnKCJpbXByb3BlciByZWxhdGlvbiBuYW1lICh0b28gbWFueSBkb3R0 ZWQgbmFtZXMpOiAlcyIsCisJCQkJCQkgICBOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSkpOworCQkJ cmVsID0gTlVMTDsKKwkJCWJyZWFrOworCX0KKworCXJldHVybiByZWw7Cit9CisKIC8qCiAgKiBO YW1lTGlzdFRvU3RyaW5nCiAgKgkJVXRpbGl0eSByb3V0aW5lIHRvIGNvbnZlcnQgYSBxdWFsaWZp ZWQtbmFtZSBsaXN0IGludG8gYSBzdHJpbmcuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9hZHQvcmVncHJvYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JlZ3Byb2MuYwppbmRleCBl NWMyMjQ2ZjJjOS4uMDU5ZDAxNTQzMzUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9yZWdwcm9jLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JlZ3Byb2MuYwpAQCAtMTkw MiwxMCArMTkwMiwzNyBAQCB0ZXh0X3JlZ2NsYXNzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJT2lkCQkJ cmVzdWx0OwogCVJhbmdlVmFyICAgKnJ2OwogCi0JcnYgPSBtYWtlUmFuZ2VWYXJGcm9tTmFtZUxp c3QodGV4dFRvUXVhbGlmaWVkTmFtZUxpc3QocmVsbmFtZSkpOworCWlmIChsaWtlbHkoIWZjaW5m by0+Y29udGV4dCkpCisJeworCQlydiA9IG1ha2VSYW5nZVZhckZyb21OYW1lTGlzdCh0ZXh0VG9R dWFsaWZpZWROYW1lTGlzdChyZWxuYW1lKSk7CiAKLQkvKiBXZSBtaWdodCBub3QgZXZlbiBoYXZl IHBlcm1pc3Npb25zIG9uIHRoaXMgcmVsYXRpb247IGRvbid0IGxvY2sgaXQuICovCi0JcmVzdWx0 ID0gUmFuZ2VWYXJHZXRSZWxpZChydiwgTm9Mb2NrLCBmYWxzZSk7CisJCS8qCisJCSAqIFdlIG1p Z2h0IG5vdCBldmVuIGhhdmUgcGVybWlzc2lvbnMgb24gdGhpcyByZWxhdGlvbjsgZG9uJ3QgbG9j ayBpdC4KKwkJICovCisJCXJlc3VsdCA9IFJhbmdlVmFyR2V0UmVsaWQocnYsIE5vTG9jaywgZmFs c2UpOworCX0KKwllbHNlCisJeworCQlMaXN0ICAgCQkqcnZuYW1lczsKKworCQlydm5hbWVzID0g dGV4dFRvUXVhbGlmaWVkTmFtZUxpc3RTYWZlKHJlbG5hbWUsIGZjaW5mby0+Y29udGV4dCk7CisJ CWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCQlQR19SRVRVUk5f TlVMTCgpOworCisJCXJ2ID0gbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0U2FmZShydm5hbWVzLCBm Y2luZm8tPmNvbnRleHQpOworCQlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRl eHQpKQorCQkJUEdfUkVUVVJOX05VTEwoKTsKKworCQlyZXN1bHQgPSBSYW5nZVZhckdldFJlbGlk RXh0ZW5kZWRTYWZlKHJ2LAorCQkJCQkJCQkJCQkgIE5vTG9jaywKKwkJCQkJCQkJCQkJICAwLAor CQkJCQkJCQkJCQkgIE5VTEwsCisJCQkJCQkJCQkJCSAgTlVMTCwKKwkJCQkJCQkJCQkJICBmY2lu Zm8tPmNvbnRleHQpOworCisJCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4 dCkpCisJCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCVBHX1JFVFVSTl9PSUQocmVzdWx0KTsK IH0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvdmFybGVuYS5jCmluZGV4IDhkNzM1Nzg2ZTUxLi41ZTI2NzZmNzE4MCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYworKysgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvdmFybGVuYS5jCkBAIC0yNzE3LDYgKzI3MTcsNDggQEAgdGV4dFRvUXVh bGlmaWVkTmFtZUxpc3QodGV4dCAqdGV4dHZhbCkKIAlyZXR1cm4gcmVzdWx0OwogfQogCisvKiBl cnJvciBzYWZlIHZlcnNpb24gb2YgdGV4dFRvUXVhbGlmaWVkTmFtZUxpc3QgKi8KK0xpc3QgKgor dGV4dFRvUXVhbGlmaWVkTmFtZUxpc3RTYWZlKHRleHQgKnRleHR2YWwsIE5vZGUgKmVzY29udGV4 dCkKK3sKKwljaGFyCSAgICpyYXduYW1lOworCUxpc3QJICAgKnJlc3VsdCA9IE5JTDsKKwlMaXN0 CSAgICpuYW1lbGlzdDsKKwlMaXN0Q2VsbCAgICpsOworCisJLyogQ29udmVydCB0byBDIHN0cmlu ZyAoaGFuZGxlcyBwb3NzaWJsZSBkZXRvYXN0aW5nKS4gKi8KKwkvKiBOb3RlIHdlIHJlbHkgb24g YmVpbmcgYWJsZSB0byBtb2RpZnkgcmF3bmFtZSBiZWxvdy4gKi8KKwlyYXduYW1lID0gdGV4dF90 b19jc3RyaW5nKHRleHR2YWwpOworCisJaWYgKCFTcGxpdElkZW50aWZpZXJTdHJpbmcocmF3bmFt ZSwgJy4nLCAmbmFtZWxpc3QpKQorCXsKKwkJZXJyc2F2ZShlc2NvbnRleHQsCisJCQkJZXJyY29k ZShFUlJDT0RFX0lOVkFMSURfTkFNRSksCisJCQkJZXJybXNnKCJpbnZhbGlkIG5hbWUgc3ludGF4 IikpOworCQlyZXR1cm4gTklMOworCX0KKworCWlmIChuYW1lbGlzdCA9PSBOSUwpCisJeworCQll cnJzYXZlKGVzY29udGV4dCwKKwkJCQllcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9OQU1FKSwKKwkJ CQllcnJtc2coImludmFsaWQgbmFtZSBzeW50YXgiKSk7CisJCXJldHVybiBOSUw7CisJfQorCisJ Zm9yZWFjaChsLCBuYW1lbGlzdCkKKwl7CisJCWNoYXIJICAgKmN1cm5hbWUgPSAoY2hhciAqKSBs Zmlyc3QobCk7CisKKwkJcmVzdWx0ID0gbGFwcGVuZChyZXN1bHQsIG1ha2VTdHJpbmcocHN0cmR1 cChjdXJuYW1lKSkpOworCX0KKworCXBmcmVlKHJhd25hbWUpOworCWxpc3RfZnJlZShuYW1lbGlz dCk7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAvKgogICogU3BsaXRJZGVudGlmaWVyU3RyaW5n IC0tLSBwYXJzZSBhIHN0cmluZyBjb250YWluaW5nIGlkZW50aWZpZXJzCiAgKgpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv bmFtZXNwYWNlLmgKaW5kZXggZjE0MjNmMjhjMzIuLmFiNjFhZjU1ZGRjIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv bmFtZXNwYWNlLmgKQEAgLTEwMyw2ICsxMDMsMTEgQEAgZXh0ZXJuIE9pZAlSYW5nZVZhckdldFJl bGlkRXh0ZW5kZWQoY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLAogCQkJCQkJCQkJIExPQ0tNT0RF IGxvY2ttb2RlLCB1aW50MzIgZmxhZ3MsCiAJCQkJCQkJCQkgUmFuZ2VWYXJHZXRSZWxpZENhbGxi YWNrIGNhbGxiYWNrLAogCQkJCQkJCQkJIHZvaWQgKmNhbGxiYWNrX2FyZyk7CitleHRlcm4gT2lk IFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZFNhZmUoY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLAor CQkJCQkJCQkJCUxPQ0tNT0RFIGxvY2ttb2RlLCB1aW50MzIgZmxhZ3MsCisJCQkJCQkJCQkJUmFu Z2VWYXJHZXRSZWxpZENhbGxiYWNrIGNhbGxiYWNrLAorCQkJCQkJCQkJCXZvaWQgKmNhbGxiYWNr X2FyZywKKwkJCQkJCQkJCQlOb2RlICplc2NvbnRleHQpOwogZXh0ZXJuIE9pZAlSYW5nZVZhckdl dENyZWF0aW9uTmFtZXNwYWNlKGNvbnN0IFJhbmdlVmFyICpuZXdSZWxhdGlvbik7CiBleHRlcm4g T2lkCVJhbmdlVmFyR2V0QW5kQ2hlY2tDcmVhdGlvbk5hbWVzcGFjZShSYW5nZVZhciAqcmVsYXRp b24sCiAJCQkJCQkJCQkJCQkgTE9DS01PREUgbG9ja21vZGUsCkBAIC0xNjgsNiArMTczLDcgQEAg ZXh0ZXJuIE9pZAlMb29rdXBDcmVhdGlvbk5hbWVzcGFjZShjb25zdCBjaGFyICpuc3BuYW1lKTsK IGV4dGVybiB2b2lkIENoZWNrU2V0TmFtZXNwYWNlKE9pZCBvbGROc3BPaWQsIE9pZCBuc3BPaWQp OwogZXh0ZXJuIE9pZAlRdWFsaWZpZWROYW1lR2V0Q3JlYXRpb25OYW1lc3BhY2UoY29uc3QgTGlz dCAqbmFtZXMsIGNoYXIgKipvYmpuYW1lX3ApOwogZXh0ZXJuIFJhbmdlVmFyICptYWtlUmFuZ2VW YXJGcm9tTmFtZUxpc3QoY29uc3QgTGlzdCAqbmFtZXMpOworZXh0ZXJuIFJhbmdlVmFyICptYWtl UmFuZ2VWYXJGcm9tTmFtZUxpc3RTYWZlKGNvbnN0IExpc3QgKm5hbWVzLCBOb2RlICplc2NvbnRl eHQpOwogZXh0ZXJuIGNoYXIgKk5hbWVMaXN0VG9TdHJpbmcoY29uc3QgTGlzdCAqbmFtZXMpOwog ZXh0ZXJuIGNoYXIgKk5hbWVMaXN0VG9RdW90ZWRTdHJpbmcoY29uc3QgTGlzdCAqbmFtZXMpOwog CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy92YXJsZW5hLmggYi9zcmMvaW5jbHVkZS91 dGlscy92YXJsZW5hLmgKaW5kZXggZGI5ZmRmNzI5NDEuLjBjZjAxYWU1MjgxIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS91dGlscy92YXJsZW5hLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvdmFy bGVuYS5oCkBAIC0yNyw2ICsyNyw3IEBAIGV4dGVybiBpbnQJdmFyc3RyX2xldmVuc2h0ZWluX2xl c3NfZXF1YWwoY29uc3QgY2hhciAqc291cmNlLCBpbnQgc2xlbiwKIAkJCQkJCQkJCQkgIGludCBp bnNfYywgaW50IGRlbF9jLCBpbnQgc3ViX2MsCiAJCQkJCQkJCQkJICBpbnQgbWF4X2QsIGJvb2wg dHJ1c3RlZCk7CiBleHRlcm4gTGlzdCAqdGV4dFRvUXVhbGlmaWVkTmFtZUxpc3QodGV4dCAqdGV4 dHZhbCk7CitleHRlcm4gTGlzdCAqdGV4dFRvUXVhbGlmaWVkTmFtZUxpc3RTYWZlKHRleHQgKnRl eHR2YWwsIE5vZGUgKmVzY29udGV4dCk7CiBleHRlcm4gYm9vbCBTcGxpdElkZW50aWZpZXJTdHJp bmcoY2hhciAqcmF3c3RyaW5nLCBjaGFyIHNlcGFyYXRvciwKIAkJCQkJCQkJICBMaXN0ICoqbmFt ZWxpc3QpOwogZXh0ZXJuIGJvb2wgU3BsaXREaXJlY3Rvcmllc1N0cmluZyhjaGFyICpyYXdzdHJp bmcsIGNoYXIgc2VwYXJhdG9yLAotLSAKMi4zNC4xCgo= --0000000000005a66d6064348f03b Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_c.patch" Content-Disposition: attachment; filename="v10-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhtzold515 RnJvbSBhYWJmMzkzMmEyYWU0YTdiNjY0NmFiNWRlMTliOTg1MjIzMDNkZDliIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxOToxNzowMCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEw IDA1LzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGNoYXJhY3RlciB2YXJ5aW5nIHRvIG90aGVy CiB0eXBlcyBwZXIgcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJn ZXQ6OnJlZ3R5cGUsIGNhc3RmdW5jLCBjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMs IHBwLnByb25hbWUKZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbiBwcC5vaWQgPSBw Yy5jYXN0ZnVuYyBhbmQgcGMuY2FzdGZ1bmMgPiAwIGFuZAooY2FzdHNvdXJjZTo6cmVndHlwZSA9 ICdjaGFyYWN0ZXIgdmFyeWluZyc6OnJlZ3R5cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5 cGU7CgogICAgY2FzdHNvdXJjZSAgICAgfCAgICBjYXN0dGFyZ2V0ICAgICB8IGNhc3RmdW5jIHwg Y2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgcHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KIGNoYXJhY3RlciB2YXJ5 aW5nIHwgcmVnY2xhc3MgICAgICAgICAgfCAgICAgMTA3OSB8IGkgICAgICAgICAgIHwgZiAgICAg ICAgICB8IHRleHRfcmVnY2xhc3MgfCByZWdjbGFzcwogY2hhcmFjdGVyIHZhcnlpbmcgfCAiY2hh ciIgICAgICAgICAgICB8ICAgICAgOTQ0IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4 dF9jaGFyICAgICB8IGNoYXIKIGNoYXJhY3RlciB2YXJ5aW5nIHwgbmFtZSAgICAgICAgICAgICAg fCAgICAgMTQwMCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRfbmFtZSAgICAgfCBu YW1lCiBjaGFyYWN0ZXIgdmFyeWluZyB8IHhtbCAgICAgICAgICAgICAgIHwgICAgIDI4OTYgfCBl ICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0dG94bWwgICAgIHwgeG1sCiBjaGFyYWN0ZXIg dmFyeWluZyB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgICAgICA2NjkgfCBpICAgICAgICAgICB8IGYg ICAgICAgICAgfCB2YXJjaGFyICAgICAgIHwgdmFyY2hhcgooNSByb3dzKQoKdGV4dHRveG1sLCB0 ZXh0X3JlZ2NsYXNzIHdhcyByZWZhY3RvcmVkIGFzIGVycm9yIHNhZmUgaW4gcHJpb3IgcGF0Y2gu CnRleHRfY2hhciwgdGV4dF9uYW1lIGlzIGFscmVhZHkgZXJyb3Igc2FmZS4Kc28gaGVyZSB3ZSBv bmx5IG5lZWQgaGFuZGxlIGZ1bmN0aW9uICJ2YXJjaGFyIi4KCmRpc2N1c3Npb246IGh0dHBzOi8v cG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1 NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIu YyB8IDYgKysrKystCiAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9u KC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKaW5kZXggYTk1ZTRiZDA5NGUuLmZkYmVmMjcyYzM5 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5jCisrKyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKQEAgLTYzOCwxMCArNjM4LDE0IEBAIHZhcmNoYXIo UEdfRlVOQ1RJT05fQVJHUykKIAl7CiAJCWZvciAoaSA9IG1heG1ibGVuOyBpIDwgbGVuOyBpKysp CiAJCQlpZiAoc19kYXRhW2ldICE9ICcgJykKLQkJCQllcmVwb3J0KEVSUk9SLAorCQkJeworCQkJ CWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJCQkoZXJyY29kZShFUlJD T0RFX1NUUklOR19EQVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJIGVycm1zZygidmFsdWUg dG9vIGxvbmcgZm9yIHR5cGUgY2hhcmFjdGVyIHZhcnlpbmcoJWQpIiwKIAkJCQkJCQkJbWF4bGVu KSkpOworCisJCQkJUEdfUkVUVVJOX05VTEwoKTsKKwkJCX0KIAl9CiAKIAlQR19SRVRVUk5fVkFS Q0hBUl9QKChWYXJDaGFyICopIGNzdHJpbmdfdG9fdGV4dF93aXRoX2xlbihzX2RhdGEsCi0tIAoy LjM0LjEKCg== --0000000000005a66d6064348f03b Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v10-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhtzold918 RnJvbSA1ZjdmYTg4YjllNDRiN2RjNjg0YTQ5ODk0NzFjMjdkMDAxNzE5MGE3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxOTowOTo1MyArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEw IDAyLzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGJpdC92YXJiaXQgdG8gb3RoZXIgdHlwZXMK IHBlciBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVn dHlwZSwgY2FzdGZ1bmMsCiAgICAgICBjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMs IHBwLnByb25hbWUKZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbiBwcC5vaWQgPSBw Yy5jYXN0ZnVuYwp3aGVyZSBwYy5jYXN0ZnVuYyA+IDAgYW5kIChjYXN0c291cmNlOjpyZWd0eXBl ID0nYml0Jzo6cmVndHlwZSBvcgpjYXN0c291cmNlOjpyZWd0eXBlID0ndmFyYml0Jzo6cmVndHlw ZSkKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlICB8IGNhc3R0YXJn ZXQgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgcHJvc3JjICAgfCBw cm9uYW1lCi0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLQogYml0ICAgICAgICAgfCBiaWdp bnQgICAgICB8ICAgICAyMDc2IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgYml0dG9pbnQ4 IHwgaW50OAogYml0ICAgICAgICAgfCBpbnRlZ2VyICAgICB8ICAgICAxNjg0IHwgZSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgYml0dG9pbnQ0IHwgaW50NAogYml0ICAgICAgICAgfCBiaXQgICAg ICAgICB8ICAgICAxNjg1IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgYml0ICAgICAgIHwg Yml0CiBiaXQgdmFyeWluZyB8IGJpdCB2YXJ5aW5nIHwgICAgIDE2ODcgfCBpICAgICAgICAgICB8 IGYgICAgICAgICAgfCB2YXJiaXQgICAgfCB2YXJiaXQKKDQgcm93cykKCmRpc2N1c3Npb246IGh0 dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUz VHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Zh cmJpdC5jIHwgMjQgKysrKysrKysrKysrKysrKysrKystLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjAg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvdmFyYml0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyYml0LmMKaW5kZXgg MjA1YTY3ZGFmYzUuLmJmY2VhMThmNGIyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvdmFyYml0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5jCkBAIC00MDEs MTEgKzQwMSwxNSBAQCBiaXQoUEdfRlVOQ1RJT05fQVJHUykKIAkJUEdfUkVUVVJOX1ZBUkJJVF9Q KGFyZyk7CiAKIAlpZiAoIWlzRXhwbGljaXQpCi0JCWVyZXBvcnQoRVJST1IsCisJeworCQllcnJz YXZlKGZjaW5mby0+Y29udGV4dCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19EQVRBX0xF TkdUSF9NSVNNQVRDSCksCiAJCQkJIGVycm1zZygiYml0IHN0cmluZyBsZW5ndGggJWQgZG9lcyBu b3QgbWF0Y2ggdHlwZSBiaXQoJWQpIiwKIAkJCQkJCVZBUkJJVExFTihhcmcpLCBsZW4pKSk7CiAK KwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CisKIAlybGVuID0gVkFSQklUVE9UQUxMRU4obGVuKTsK IAkvKiBzZXQgdG8gMCBzbyB0aGF0IHN0cmluZyBpcyB6ZXJvLXBhZGRlZCAqLwogCXJlc3VsdCA9 IChWYXJCaXQgKikgcGFsbG9jMChybGVuKTsKQEAgLTc1MiwxMSArNzU2LDE1IEBAIHZhcmJpdChQ R19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fVkFSQklUX1AoYXJnKTsKIAogCWlmICghaXNF eHBsaWNpdCkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVycnNhdmUoZmNpbmZvLT5jb250ZXh0 LAogCQkJCShlcnJjb2RlKEVSUkNPREVfU1RSSU5HX0RBVEFfUklHSFRfVFJVTkNBVElPTiksCiAJ CQkJIGVycm1zZygiYml0IHN0cmluZyB0b28gbG9uZyBmb3IgdHlwZSBiaXQgdmFyeWluZyglZCki LAogCQkJCQkJbGVuKSkpOwogCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQorCiAJcmxlbiA9IFZB UkJJVFRPVEFMTEVOKGxlbik7CiAJcmVzdWx0ID0gKFZhckJpdCAqKSBwYWxsb2Mocmxlbik7CiAJ U0VUX1ZBUlNJWkUocmVzdWx0LCBybGVuKTsKQEAgLTE1OTEsMTAgKzE1OTksMTQgQEAgYml0dG9p bnQ0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBDaGVjayB0aGF0IHRoZSBiaXQgc3RyaW5nIGlz IG5vdCB0b28gbG9uZyAqLwogCWlmIChWQVJCSVRMRU4oYXJnKSA+IHNpemVvZihyZXN1bHQpICog QklUU19QRVJfQllURSkKLQkJZXJlcG9ydChFUlJPUiwKKwl7CisJCWVycnNhdmUoZmNpbmZvLT5j b250ZXh0LAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0Up LAogCQkJCSBlcnJtc2coImludGVnZXIgb3V0IG9mIHJhbmdlIikpKTsKIAorCQlQR19SRVRVUk5f TlVMTCgpOworCX0KKwogCXJlc3VsdCA9IDA7CiAJZm9yIChyID0gVkFSQklUUyhhcmcpOyByIDwg VkFSQklURU5EKGFyZyk7IHIrKykKIAl7CkBAIC0xNjcxLDEwICsxNjgzLDE0IEBAIGJpdHRvaW50 OChQR19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sgdGhhdCB0aGUgYml0IHN0cmluZyBpcyBu b3QgdG9vIGxvbmcgKi8KIAlpZiAoVkFSQklUTEVOKGFyZykgPiBzaXplb2YocmVzdWx0KSAqIEJJ VFNfUEVSX0JZVEUpCi0JCWVyZXBvcnQoRVJST1IsCisJeworCQllcnJzYXZlKGZjaW5mby0+Y29u dGV4dCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwK IAkJCQkgZXJybXNnKCJiaWdpbnQgb3V0IG9mIHJhbmdlIikpKTsKIAorCQlQR19SRVRVUk5fTlVM TCgpOworCX0KKwogCXJlc3VsdCA9IDA7CiAJZm9yIChyID0gVkFSQklUUyhhcmcpOyByIDwgVkFS QklURU5EKGFyZyk7IHIrKykKIAl7Ci0tIAoyLjM0LjEKCg== --0000000000005a66d6064348f03b Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v10-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhtzold717 RnJvbSBhZDU1NmQxNDVjZjMzYTNlN2E5ZTZjYmI1NTcyYjIyMjhiMTkzOGJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMyBOb3YgMjAyNSAxMTo1ODo0NiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEw IDAzLzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGNoYXJhY3RlciB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9u YW1lIGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1 bmMgYW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9J2NoYXJhY3Rl cic6OnJlZ3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwg ICAgY2FzdHRhcmdldCAgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8 ICAgcHJvc3JjICAgIHwgcHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiBjaGFyYWN0ZXIgIHwgdGV4dCAgICAgICAgICAgICAgfCAgICAgIDQwMSB8IGkgICAgICAg ICAgIHwgZiAgICAgICAgICB8IHJ0cmltMSAgICAgIHwgdGV4dAogY2hhcmFjdGVyICB8IGNoYXJh Y3RlciB2YXJ5aW5nIHwgICAgICA0MDEgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBydHJp bTEgICAgICB8IHRleHQKIGNoYXJhY3RlciAgfCAiY2hhciIgICAgICAgICAgICB8ICAgICAgOTQ0 IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dF9jaGFyICAgfCBjaGFyCiBjaGFyYWN0 ZXIgIHwgbmFtZSAgICAgICAgICAgICAgfCAgICAgIDQwOSB8IGkgICAgICAgICAgIHwgZiAgICAg ICAgICB8IGJwY2hhcl9uYW1lIHwgbmFtZQogY2hhcmFjdGVyICB8IHhtbCAgICAgICAgICAgICAg IHwgICAgIDI4OTYgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0dG94bWwgICB8IHht bAogY2hhcmFjdGVyICB8IGNoYXJhY3RlciAgICAgICAgIHwgICAgICA2NjggfCBpICAgICAgICAg ICB8IGYgICAgICAgICAgfCBicGNoYXIgICAgICB8IGJwY2hhcgooNiByb3dzKQoKb25seSB0ZXh0 dG94bWwsIGJwY2hhcihQR19GVU5DVElPTl9BUkdTKSBuZWVkIHRha2UgY2FyZSBvZiBlcnJvciBo YW5kbGluZy4Kb3RoZXIgZnVuY3Rpb25zIGFscmVhZHkgZXJyb3Igc2FmZS4KCmRpc2N1c3Npb246 IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThq WnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0V4cHJJbnRlcnAuYyB8ICAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5j ICAgICAgIHwgIDYgKysrKystCiBzcmMvYmFja2VuZC91dGlscy9hZHQveG1sLmMgICAgICAgICAg IHwgMTcgKysrKysrKysrKysrLS0tLS0KIHNyYy9pbmNsdWRlL3V0aWxzL3htbC5oICAgICAgICAg ICAgICAgfCAgMiArLQogNCBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCA4IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJw LmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCmluZGV4IDBlMWE3NDk3 NmY3Li42N2Y0ZTAwZWFjNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHJJbnRlcnAuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCkBA IC00NTQyLDcgKzQ1NDIsNyBAQCBFeGVjRXZhbFhtbEV4cHIoRXhwclN0YXRlICpzdGF0ZSwgRXhw ckV2YWxTdGVwICpvcCkKIAogCQkJCSpvcC0+cmVzdmFsdWUgPSBQb2ludGVyR2V0RGF0dW0oeG1s cGFyc2UoZGF0YSwKIAkJCQkJCQkJCQkJCQkJIHhleHByLT54bWxvcHRpb24sCi0JCQkJCQkJCQkJ CQkJCSBwcmVzZXJ2ZV93aGl0ZXNwYWNlKSk7CisJCQkJCQkJCQkJCQkJCSBwcmVzZXJ2ZV93aGl0 ZXNwYWNlLCBOVUxMKSk7CiAJCQkJKm9wLT5yZXNudWxsID0gZmFsc2U7CiAJCQl9CiAJCQlicmVh azsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvdmFyY2hhci5jCmluZGV4IDNmNDBjOWRhMWEwLi5hOTVlNGJkMDk0ZSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIuYworKysgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvdmFyY2hhci5jCkBAIC0zMDcsMTAgKzMwNywxNCBAQCBicGNoYXIoUEdf RlVOQ1RJT05fQVJHUykKIAkJewogCQkJZm9yIChpID0gbWF4bWJsZW47IGkgPCBsZW47IGkrKykK IAkJCQlpZiAoc1tpXSAhPSAnICcpCi0JCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJeworCQkJCQll cnJzYXZlKGZjaW5mby0+Y29udGV4dCwKIAkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19E QVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJCSBlcnJtc2coInZhbHVlIHRvbyBsb25nIGZv ciB0eXBlIGNoYXJhY3RlciglZCkiLAogCQkJCQkJCQkJbWF4bGVuKSkpOworCisJCQkJCVBHX1JF VFVSTl9OVUxMKCk7CisJCQkJfQogCQl9CiAKIAkJbGVuID0gbWF4bWJsZW47CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hZHQveG1sLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQveG1s LmMKaW5kZXggMzVjOTE1NTczYTEuLjQ3MjNkMTM5MjhmIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQveG1sLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jCkBAIC02 NTksNyArNjU5LDcgQEAgdGV4dHRveG1sKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJdGV4dAkgICAq ZGF0YSA9IFBHX0dFVEFSR19URVhUX1BQKDApOwogCi0JUEdfUkVUVVJOX1hNTF9QKHhtbHBhcnNl KGRhdGEsIHhtbG9wdGlvbiwgdHJ1ZSkpOworCVBHX1JFVFVSTl9YTUxfUCh4bWxwYXJzZShkYXRh LCB4bWxvcHRpb24sIHRydWUsIGZjaW5mby0+Y29udGV4dCkpOwogfQogCiAKQEAgLTEwMjgsMTgg KzEwMjgsMjUgQEAgeG1sZWxlbWVudChYbWxFeHByICp4ZXhwciwKIAogCiB4bWx0eXBlICoKLXht bHBhcnNlKHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0aW9uX2FyZywgYm9vbCBwcmVz ZXJ2ZV93aGl0ZXNwYWNlKQoreG1scGFyc2UodGV4dCAqZGF0YSwgWG1sT3B0aW9uVHlwZSB4bWxv cHRpb25fYXJnLCBib29sIHByZXNlcnZlX3doaXRlc3BhY2UsIE5vZGUgKmVzY29udGV4dCkKIHsK ICNpZmRlZiBVU0VfTElCWE1MCiAJeG1sRG9jUHRyCWRvYzsKIAogCWRvYyA9IHhtbF9wYXJzZShk YXRhLCB4bWxvcHRpb25fYXJnLCBwcmVzZXJ2ZV93aGl0ZXNwYWNlLAotCQkJCQlHZXREYXRhYmFz ZUVuY29kaW5nKCksIE5VTEwsIE5VTEwsIE5VTEwpOwotCXhtbEZyZWVEb2MoZG9jKTsKKwkJCQkJ R2V0RGF0YWJhc2VFbmNvZGluZygpLCBOVUxMLCBOVUxMLCBlc2NvbnRleHQpOworCWlmIChkb2Mp CisJCXhtbEZyZWVEb2MoZG9jKTsKKworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4 dCkpCisJCXJldHVybiBOVUxMOwogCiAJcmV0dXJuICh4bWx0eXBlICopIGRhdGE7CiAjZWxzZQot CU5PX1hNTF9TVVBQT1JUKCk7CisJZXJyc2F2ZShlc2NvbnRleHQsCisJCQllcnJjb2RlKEVSUkNP REVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCWVycm1zZygidW5zdXBwb3J0ZWQgWE1MIGZl YXR1cmUiKSwKKwkJCWVycmRldGFpbCgiVGhpcyBmdW5jdGlvbmFsaXR5IHJlcXVpcmVzIHRoZSBz ZXJ2ZXIgdG8gYmUgYnVpbHQgd2l0aCBsaWJ4bWwgc3VwcG9ydC4iKSk7CiAJcmV0dXJuIE5VTEw7 CiAjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3htbC5oIGIvc3JjL2lu Y2x1ZGUvdXRpbHMveG1sLmgKaW5kZXggNzMyZGFjNDdiYzQuLmIxNTE2OGM0MzBlIDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS91dGlscy94bWwuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy94bWwu aApAQCAtNzMsNyArNzMsNyBAQCBleHRlcm4geG1sdHlwZSAqeG1sY29uY2F0KExpc3QgKmFyZ3Mp OwogZXh0ZXJuIHhtbHR5cGUgKnhtbGVsZW1lbnQoWG1sRXhwciAqeGV4cHIsCiAJCQkJCQkgICBj b25zdCBEYXR1bSAqbmFtZWRfYXJndmFsdWUsIGNvbnN0IGJvb2wgKm5hbWVkX2FyZ251bGwsCiAJ CQkJCQkgICBjb25zdCBEYXR1bSAqYXJndmFsdWUsIGNvbnN0IGJvb2wgKmFyZ251bGwpOwotZXh0 ZXJuIHhtbHR5cGUgKnhtbHBhcnNlKHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0aW9u X2FyZywgYm9vbCBwcmVzZXJ2ZV93aGl0ZXNwYWNlKTsKK2V4dGVybiB4bWx0eXBlICp4bWxwYXJz ZSh0ZXh0ICpkYXRhLCBYbWxPcHRpb25UeXBlIHhtbG9wdGlvbl9hcmcsIGJvb2wgcHJlc2VydmVf d2hpdGVzcGFjZSwgTm9kZSAqZXNjb250ZXh0KTsKIGV4dGVybiB4bWx0eXBlICp4bWxwaShjb25z dCBjaGFyICp0YXJnZXQsIHRleHQgKmFyZywgYm9vbCBhcmdfaXNfbnVsbCwgYm9vbCAqcmVzdWx0 X2lzX251bGwpOwogZXh0ZXJuIHhtbHR5cGUgKnhtbHJvb3QoeG1sdHlwZSAqZGF0YSwgdGV4dCAq dmVyc2lvbiwgaW50IHN0YW5kYWxvbmUpOwogZXh0ZXJuIGJvb2wgeG1sX2lzX2RvY3VtZW50KHht bHR5cGUgKmFyZyk7Ci0tIAoyLjM0LjEKCg== --0000000000005a66d6064348f03b Content-Type: text/x-patch; charset="US-ASCII"; name="v10-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v10-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mhtzolda19 RnJvbSAzNDY1MjU1NjljNjdlYjhmYjlkMTcwNTdhNDY3NDZlMmE2MTJmYzk0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxNTozNjozNSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEw IDAxLzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGJ5dGVhIHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLCBjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUK ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbiBwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwIGFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0nYnl0ZWEnOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8IGNhc3R0YXJn ZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgcHJvc3JjICAgfCBw cm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tCiBieXRlYSAgICAgIHwgc21hbGxp bnQgICB8ICAgICA2MzcwIHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgYnl0ZWFfaW50MiB8 IGludDIKIGJ5dGVhICAgICAgfCBpbnRlZ2VyICAgIHwgICAgIDYzNzEgfCBlICAgICAgICAgICB8 IGYgICAgICAgICAgfCBieXRlYV9pbnQ0IHwgaW50NAogYnl0ZWEgICAgICB8IGJpZ2ludCAgICAg fCAgICAgNjM3MiB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJ5dGVhX2ludDggfCBpbnQ4 CigzIHJvd3MpCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0 VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0K IHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9ieXRlYS5jIHwgMTggKysrKysrKysrKysrKysrLS0tCiAx IGZpbGUgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYnl0ZWEuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9ieXRlYS5jCmluZGV4IDZlN2I5MTRjNTYzLi40YThhZGNiODIwNCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2J5dGVhLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2J5 dGVhLmMKQEAgLTEwMjcsMTAgKzEwMjcsMTQgQEAgYnl0ZWFfaW50MihQR19GVU5DVElPTl9BUkdT KQogCiAJLyogQ2hlY2sgdGhhdCB0aGUgYnl0ZSBhcnJheSBpcyBub3QgdG9vIGxvbmcgKi8KIAlp ZiAobGVuID4gc2l6ZW9mKHJlc3VsdCkpCi0JCWVyZXBvcnQoRVJST1IsCisJeworCQllcnJzYXZl KGZjaW5mby0+Y29udGV4dCwKIAkJCQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRf T0ZfUkFOR0UpLAogCQkJCWVycm1zZygic21hbGxpbnQgb3V0IG9mIHJhbmdlIikpOwogCisJCVBH X1JFVFVSTl9OVUxMKCk7CisJfQorCiAJLyogQ29udmVydCBpdCB0byBhbiBpbnRlZ2VyOyBtb3N0 IHNpZ25pZmljYW50IGJ5dGVzIGNvbWUgZmlyc3QgKi8KIAlyZXN1bHQgPSAwOwogCWZvciAoaW50 IGkgPSAwOyBpIDwgbGVuOyBpKyspCkBAIC0xMDUyLDEwICsxMDU2LDE0IEBAIGJ5dGVhX2ludDQo UEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIENoZWNrIHRoYXQgdGhlIGJ5dGUgYXJyYXkgaXMgbm90 IHRvbyBsb25nICovCiAJaWYgKGxlbiA+IHNpemVvZihyZXN1bHQpKQotCQllcmVwb3J0KEVSUk9S LAorCXsKKwkJZXJyc2F2ZShmY2luZm8tPmNvbnRleHQsCiAJCQkJZXJyY29kZShFUlJDT0RFX05V TUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQllcnJtc2coImludGVnZXIgb3V0IG9mIHJh bmdlIikpOwogCisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQorCiAJLyogQ29udmVydCBpdCB0byBh biBpbnRlZ2VyOyBtb3N0IHNpZ25pZmljYW50IGJ5dGVzIGNvbWUgZmlyc3QgKi8KIAlyZXN1bHQg PSAwOwogCWZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyBpKyspCkBAIC0xMDc3LDEwICsxMDg1LDE0 IEBAIGJ5dGVhX2ludDgoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIENoZWNrIHRoYXQgdGhlIGJ5 dGUgYXJyYXkgaXMgbm90IHRvbyBsb25nICovCiAJaWYgKGxlbiA+IHNpemVvZihyZXN1bHQpKQot CQllcmVwb3J0KEVSUk9SLAorCXsKKwkJZXJyc2F2ZShmY2luZm8tPmNvbnRleHQsCiAJCQkJZXJy Y29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQllcnJtc2coImJp Z2ludCBvdXQgb2YgcmFuZ2UiKSk7CiAKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CisKIAkvKiBD b252ZXJ0IGl0IHRvIGFuIGludGVnZXI7IG1vc3Qgc2lnbmlmaWNhbnQgYnl0ZXMgY29tZSBmaXJz dCAqLwogCXJlc3VsdCA9IDA7CiAJZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47IGkrKykKLS0gCjIu MzQuMQoK --0000000000005a66d6064348f03b--