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 1w3V1Y-001HaF-1K for pgsql-hackers@arkaria.postgresql.org; Fri, 20 Mar 2026 08:16:05 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w3V1W-00507N-2e for pgsql-hackers@arkaria.postgresql.org; Fri, 20 Mar 2026 08:16:03 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w3V1V-00507E-2U for pgsql-hackers@lists.postgresql.org; Fri, 20 Mar 2026 08:16:02 +0000 Received: from mail-vs1-xe29.google.com ([2607:f8b0:4864:20::e29]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w3V1K-000000008Qs-07YL for pgsql-hackers@lists.postgresql.org; Fri, 20 Mar 2026 08:16:01 +0000 Received: by mail-vs1-xe29.google.com with SMTP id ada2fe7eead31-5ffc879c1aeso841062137.2 for ; Fri, 20 Mar 2026 01:15:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773994549; cv=none; d=google.com; s=arc-20240605; b=K2hKtXVAApjCFXBzGmcvxiuRe4Sn1jjP1oklV/DRWMxrbNBtSNjy8zWiDVR8D9ZoOV ON6Cz+q9CuL7Fpe6HhKGWkB+lIUclW1lNAh70nldtQEngwSTDa48riPhtL/izVtMfBKv +q2Yb313UgcCOIn9Ke3T2PFswC84BfZcl8IcouqeZEcf6UhaZvm15G0BgkgtvJKuvdn+ qyKvIYCNZoFLSWU6DOydfxesEhyl0L+ODHdiMKr1oppgqniAFkSxMqIbUKSOBw+OgphT R/ijO4XF6xV+otJlfGY5R8Ur3mzSjhikhiiFms6uukP2CAw1anEXrHmDkk8Tjy59RiNB kPPg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=yXoqu3VMg62I4qm9rFT/yqsXOV+7R+sequLe5KdZj5Q=; fh=zv7dNMeX9GBH5eHdl2erXt2x+569zdN6x7w/VjO0S1o=; b=I0Z6f/XHV/nEr7PpPQZrqtNgnz3l0WKkeGGVMhQaalzA6k4bexKw75CwRw6z5iw2ii Veyk7ibbYRRrx6M4W1+0wxkkq0PDxrvCQKNTN1X5HFAHqcotsmVABr7/ZiaYbW3VUkpU MczywsQ8C1XidBS4kUZNK8dLKS4ZXslexuAUH4WtzhtUei5YICE+zun/04sSSnvU1Lyi Utqtu74RE7vipkCtQYYmnbhnMkre5TpSruKu1w7xS5IfGk9iH8REUkEGlgbt2HIWMCbt 9K9sdJ6+PEgX6iUHaeN+e+8ar8zqsU6WCz313WQy3N30DMLqmeJkbAZ1pOLj6nB9sQzm vIRg==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773994549; x=1774599349; 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=yXoqu3VMg62I4qm9rFT/yqsXOV+7R+sequLe5KdZj5Q=; b=c2Aw1i+CpjAzdhwK4gXS0vqVUP4N8nbtA+uEN+2TuP/8HkyqDt9c3sCMWw8BW5OKnG CSQitEyvPfTjv02fwC1Zh0MyaDaSbwm+NfVtF8dQriCV9fiV7W5uUzDZnepzIv2+eJlu WFU+Fk9WB307ZRY422RPahGVHDk4Eu+6ZMME2xOvGwExFQIfOu+rLmXpMuM/KXB3Fu2L Y9/fRaLMZf1HS/tKuATrv6dskv1K59rxm/PU43GPToglgqL67ppdu7BXWTKhA7S8AvGj Xez//bP21+EoPOpOpoBsvjixyYjfD2XtJNqozECAnJF40vsCjvZKlMtFF0cRsMD+7KuZ s1Qw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773994549; x=1774599349; 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=yXoqu3VMg62I4qm9rFT/yqsXOV+7R+sequLe5KdZj5Q=; b=WUXAC4P/mT34Kpqvn7pk/uXpALqziVic3DIBCpAwmEY6MyCpbgjMpYSqUoJsvmmHy4 a8aO4NxnHLZQoHrDnQKC305xu2ptqKcRJjtjMTcubwdUNPnufZB9tlGsKDjLVW/ktjmD AD7alG0DkIcszPBfs6KoiwYonPYsoUMaDsb9XV+YpD7wlhV9xOFF/Tg2tb9W7BZp6+0o oYseES1boLLvcLpe/+MISF/kyvQMT8N8gKeU5kqsAz7oOHwtmI5j/SXxa3R0BU0EM2w4 sk51Bp8axxY8colW/HnJ+gJS8emRUg4zxf2S4QiYwFY90fLzkG5O/EdpwGjDZvuk1+Ee EBBw== X-Forwarded-Encrypted: i=1; AJvYcCUz2U3EuAu9L9jgEccdKZh30IFMExXE3exzavN6Bk0RFrj2EYE/Sx7Z1bkDne8tjJVi4gbXH6YVe7kCItFQ@lists.postgresql.org X-Gm-Message-State: AOJu0Yzit20epp2N3PQVUebVkhbvlQ9/zBWx/ert8J5OlMI5PQ2W5Bz6 w5YP0uGWgeL82e3BMzvcWxqXP27Q74pst8vZ0hWOAMpO85XgREAslO4dDk4JqWTUG6h4CYbuTpT t3nFhGp9CQW/QNe8SJ2K5/EdNmIVXBrQ= X-Gm-Gg: ATEYQzyzC6ct53yMbEEFuJKSQ1ARteWei7IA3v9LU7RfAaaMVqkm/TKTzNbiuQMMR79 sKNXBayfIJXrXupAcfV94WoNTOlcgZcew2yl08dVxebOPItBgg5q9fVaNTMCtxpjrQXOqKDOhPX LJSDy/qFh3SEc0FSWF3YSUWtVCtez+rM7hmnPvjyzoVauA4WTuDc1iBBUo0GarAMRYU+GtOS1IR nmHK/fdHBRhWynv41jk+Ow4cYDxobzqmAwpOH2UdBQ6fhrk72VBCFCs4uygl0V7hmT5jVBEHA/o lrTy8O/5VrRrBDY8VO/WJY2wbF3lfpChWI0Ys6T2CDPnTZ/QKHaj8i5Vrb+BrIbgxBNC3YTX4Zr nZGje5qgbetR13RqU9BvSMbgtND+9xa3cl6HMewFLBK0bBNE51TVYv3wa4QqKl4veAphH+wzT7B TrUzBSexILOAuMDg2Xs1nchQ== X-Received: by 2002:a67:e710:0:b0:5ff:b684:f7c5 with SMTP id ada2fe7eead31-602aea8c59emr1421069137.8.1773994548997; Fri, 20 Mar 2026 01:15:48 -0700 (PDT) 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: Fri, 20 Mar 2026 16:15:12 +0800 X-Gm-Features: AaiRm50oZR_6sIzEOrr9lIiRVAVtNPst55bqus64Bm8gFloMhNMO-DVPrJeXvzA Message-ID: Subject: Re: CAST(... ON DEFAULT) - WIP build on top of Error-Safe User Functions To: Corey Huinker Cc: Amul Sul , Kirill Reshke , Vik Fearing , Isaac Morland , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="000000000000ed7e80064d704a27" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000ed7e80064d704a27 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Mar 18, 2026 at 11:11=E2=80=AFAM Corey Huinker wrote: >> >> + if (inputElementBaseType =3D=3D MONEYOID || >> + targetElementBaseType =3D=3D MONEYOID || >> + (inputElementBaseType =3D=3D CIRCLEOID && >> + targetElementBaseType =3D=3D POLYGONOID)) >> + { >> + errorsafe_coercion =3D false; >> + } > > What if we just reject cast functions with a non-null prosqlbody? > src/include/access/transam.h * OIDs 12000-16383 are reserved for unpinned objects created by ini= tdb's * post-bootstrap processing. initdb forces the OID generator up to * 12000 as soon as it's made the pinned objects it's responsible fo= r. Based on the above comments, I think comparing FirstUnpinnedObjectId should be enough. Rebased because of commit: https://git.postgresql.org/cgit/postgresql.git/commit/?id=3Dba21f5bf8aff277= aa1659a51d26109e0914df182 which add casting between bytea and uuid. ExecInitFunc now always sets fcinfo->context from state->escontext ``` InitFunctionCallInfoData(*fcinfo, flinfo, nargs, inputcollid, (Node *) state->escontext, NULL); ``` This change in `ExecInitFunc` means **all** FuncExpr evaluations within a SafeTypeCastExpr context will have their `fcinfo->context` set to the `ErrorSaveContext`. This is by design for cast functions, but could accidentally affect non-cast functions that appear in the cast expression tree and happen to check `fcinfo->context`. FunctionCallInfoBaseData->context is a generic poiner, it canbe other than ErrorSaveContext. For example, in ExecCallTriggerFunc we have: ``` InitFunctionCallInfoData(*fcinfo, finfo, 0, InvalidOid, (Node *) trigdata, NULL); ``` Because of this, we must differentiate our FuncExpr nodes. Soft-error evalu= ation should be only for FuncExpr nodes produced by build_coercion_expression. We can add a boolean (errorsafe) flag directly to the FuncExpr struct. This flag to indicate whether this specific expression should be evaluated = in an error-safe manner. In the future, we can also use this flag for CAST(expr AS type FORMAT 'template' DEFAULT defexpr ON CONVERSION ERROR) In build_coercion_expression, we set FuncExpr->errorsafe if the specific ca= st function needs to be evaluated in an error-safe manner. build_coercion_expression is also used in other callers, such as coerce_type_typmod, coerce_to_domain, that means more refactoring in parse_coerce.c. V21-0022 JIT related change is totally wrong. Matheus Alcantara helped me resolve the JIT issu= e. Previously, I wasn't using SET jit_above_cost =3D 0; to properly exercise the JIT-related tests. You mentioned refactoring RangeVarGetRelidExtended in [1], With a hint from Andrew Dunstan, we can actually reduce the code duplication, see v22-0004. [1] https://postgr.es/m/CADkLM=3DcZ7N+f4Bj-8MiccFcTASjBB2r1_s3BD9OFbbQOwK01= cg@mail.gmail.com As mentioned before, FunctionCallInfoBaseData->context can be other Node other than ErrorSaveContext. Therefore for geometry error safe refactoring, we must pass NULL, not fcinfo->context, for non-cast realted function. For example, function point_add_point within box_add, the third parameter should be NULL, not fcinfo->context. Handling SafeTypeCastExpr->castexpr within eval_const_expressions_mutator i= s tricky. However, if it is a FuncExpr node, we can attempt to fold its argum= ents (FuncExpr->args). (Not doing anything for SafeTypeCastExpr->castexpr is easier). --000000000000ed7e80064d704a27 Content-Type: text/x-patch; charset="US-ASCII"; name="v22-0020-refactor-point_dt.patch" Content-Disposition: attachment; filename="v22-0020-refactor-point_dt.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmymiob90 RnJvbSA1ZTMwYmU2Y2ZiMTVhMTkzZTBjNTBkZmFjNTk5NWJhZmFkMzU4N2I1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MTg6MDEgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MiAyMC8yM10gcmVmYWN0b3IgcG9pbnRfZHQKClJlZmFjdG9yIHBvaW50X2R0IHRvIGJlIGVycm9y LXNhZmUgZm9yIGFuIHVwY29taW5nIHBhdGNoIHVzZS4gIE5vdGUgZm9yIGZ1dHVyZQp3b3JrOiBs c2VnX2NlbnRlciwgcGF0aF9wb2x5LCBib3hfY2VudGVyLCBib3hfY2lyY2xlLCBwb2x5X2NlbnRl ciwgcG9seV9jaXJjbGUsCmFuZCBjaXJjbGVfYm94IHdpbGwgbmVlZCBlcnJvci1zYWZlCgpBdXRo b3I6IGppYW4gaGUgPGppYW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFt dWwgU3VsIDxzdWxhbXVsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBEdW5zdGFuIDxh bmRyZXdAZHVuc2xhbmUubmV0PgpSZXZpZXdlZC1ieTogQ29yZXkgSHVpbmtlciA8Y29yZXkuaHVp bmtlckBnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2 MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29t CkNvbW1pdGZlc3Q6IGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRjaC81OTQx Ci0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19vcHMuYyB8IDc5ICsrKysrKysrKysrKysr KysrKystLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDQ2IGluc2VydGlvbnMoKyksIDMz IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fb3Bz LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCmluZGV4IGJmYjQ4NTliNGNiLi4z NTBlODZmNjM3NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19vcHMuYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCkBAIC04Miw3ICs4Miw3IEBAIHN0 YXRpYyBpbmxpbmUgdm9pZCBwb2ludF9zdWJfcG9pbnQoUG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0 MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfbXVsX3BvaW50KFBvaW50 ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOwogc3RhdGljIGlubGluZSB2b2lkIHBv aW50X2Rpdl9wb2ludChQb2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0 YXRpYyBpbmxpbmUgYm9vbCBwb2ludF9lcV9wb2ludChQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsK LXN0YXRpYyBpbmxpbmUgZmxvYXQ4IHBvaW50X2R0KFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOwor c3RhdGljIGlubGluZSBmbG9hdDggcG9pbnRfZHQoUG9pbnQgKnB0MSwgUG9pbnQgKnB0MiwgTm9k ZSAqZXNjb250ZXh0KTsKIHN0YXRpYyBpbmxpbmUgZmxvYXQ4IHBvaW50X3NsKFBvaW50ICpwdDEs IFBvaW50ICpwdDIpOwogc3RhdGljIGludAlwb2ludF9pbnNpZGUoUG9pbnQgKnAsIGludCBucHRz LCBQb2ludCAqcGxpc3QpOwogCkBAIC04MzksNyArODM5LDcgQEAgYm94X2Rpc3RhbmNlKFBHX0ZV TkNUSU9OX0FSR1MpCiAJYm94X2NuKCZhLCBib3gxKTsKIAlib3hfY24oJmIsIGJveDIpOwogCi0J UEdfUkVUVVJOX0ZMT0FUOChwb2ludF9kdCgmYSwgJmIpKTsKKwlQR19SRVRVUk5fRkxPQVQ4KHBv aW50X2R0KCZhLCAmYiwgTlVMTCkpOwogfQogCiAKQEAgLTE4MDgsNyArMTgwOCw4IEBAIHBhdGhf bGVuZ3RoKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQlpcHJldiA9IHBhdGgtPm5wdHMgLSAxOyAvKiBp bmNsdWRlIHRoZSBjbG9zdXJlIHNlZ21lbnQgKi8KIAkJfQogCi0JCXJlc3VsdCA9IGZsb2F0OF9w bChyZXN1bHQsIHBvaW50X2R0KCZwYXRoLT5wW2lwcmV2XSwgJnBhdGgtPnBbaV0pKTsKKwkJcmVz dWx0ID0gZmxvYXQ4X3BsKHJlc3VsdCwKKwkJCQkJCSAgIHBvaW50X2R0KCZwYXRoLT5wW2lwcmV2 XSwgJnBhdGgtPnBbaV0sIE5VTEwpKTsKIAl9CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7 CkBAIC0xOTk1LDEzICsxOTk2LDI0IEBAIHBvaW50X2Rpc3RhbmNlKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJUG9pbnQJICAgKnB0MSA9IFBHX0dFVEFSR19QT0lOVF9QKDApOwogCVBvaW50CSAgICpwdDIg PSBQR19HRVRBUkdfUE9JTlRfUCgxKTsKIAotCVBHX1JFVFVSTl9GTE9BVDgocG9pbnRfZHQocHQx LCBwdDIpKTsKKwlQR19SRVRVUk5fRkxPQVQ4KHBvaW50X2R0KHB0MSwgcHQyLCBOVUxMKSk7CiB9 CiAKIHN0YXRpYyBpbmxpbmUgZmxvYXQ4Ci1wb2ludF9kdChQb2ludCAqcHQxLCBQb2ludCAqcHQy KQorcG9pbnRfZHQoUG9pbnQgKnB0MSwgUG9pbnQgKnB0MiwgTm9kZSAqZXNjb250ZXh0KQogewot CXJldHVybiBoeXBvdChmbG9hdDhfbWkocHQxLT54LCBwdDItPngpLCBmbG9hdDhfbWkocHQxLT55 LCBwdDItPnkpKTsKKwlmbG9hdDgJCXg7CisJZmxvYXQ4CQl5OworCisJeCA9IGZsb2F0OF9taV9z YWZlKHB0MS0+eCwgcHQyLT54LCBlc2NvbnRleHQpOworCWlmICh1bmxpa2VseShTT0ZUX0VSUk9S X09DQ1VSUkVEKGVzY29udGV4dCkpKQorCQlyZXR1cm4gMC4wOworCisJeSA9IGZsb2F0OF9taV9z YWZlKHB0MS0+eSwgcHQyLT55LCBlc2NvbnRleHQpOworCWlmICh1bmxpa2VseShTT0ZUX0VSUk9S X09DQ1VSUkVEKGVzY29udGV4dCkpKQorCQlyZXR1cm4gMC4wOworCisJcmV0dXJuIGh5cG90KHgs IHkpOwogfQogCiBEYXR1bQpAQCAtMjE3Myw3ICsyMTg1LDcgQEAgbHNlZ19sZW5ndGgoUEdfRlVO Q1RJT05fQVJHUykKIHsKIAlMU0VHCSAgICpsc2VnID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsKIAot CVBHX1JFVFVSTl9GTE9BVDgocG9pbnRfZHQoJmxzZWctPnBbMF0sICZsc2VnLT5wWzFdKSk7CisJ UEdfUkVUVVJOX0ZMT0FUOChwb2ludF9kdCgmbHNlZy0+cFswXSwgJmxzZWctPnBbMV0sIE5VTEwp KTsKIH0KIAogLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCkBAIC0yMjU4LDggKzIyNzAsOCBAQCBsc2VnX2x0KFBHX0ZVTkNUSU9OX0FS R1MpCiAJTFNFRwkgICAqbDEgPSBQR19HRVRBUkdfTFNFR19QKDApOwogCUxTRUcJICAgKmwyID0g UEdfR0VUQVJHX0xTRUdfUCgxKTsKIAotCVBHX1JFVFVSTl9CT09MKEZQbHQocG9pbnRfZHQoJmwx LT5wWzBdLCAmbDEtPnBbMV0pLAotCQkJCQkJcG9pbnRfZHQoJmwyLT5wWzBdLCAmbDItPnBbMV0p KSk7CisJUEdfUkVUVVJOX0JPT0woRlBsdChwb2ludF9kdCgmbDEtPnBbMF0sICZsMS0+cFsxXSwg TlVMTCksCisJCQkJCQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSwgTlVMTCkpKTsKIH0K IAogRGF0dW0KQEAgLTIyNjgsOCArMjI4MCw4IEBAIGxzZWdfbGUoUEdfRlVOQ1RJT05fQVJHUykK IAlMU0VHCSAgICpsMSA9IFBHX0dFVEFSR19MU0VHX1AoMCk7CiAJTFNFRwkgICAqbDIgPSBQR19H RVRBUkdfTFNFR19QKDEpOwogCi0JUEdfUkVUVVJOX0JPT0woRlBsZShwb2ludF9kdCgmbDEtPnBb MF0sICZsMS0+cFsxXSksCi0JCQkJCQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSkpKTsK KwlQR19SRVRVUk5fQk9PTChGUGxlKHBvaW50X2R0KCZsMS0+cFswXSwgJmwxLT5wWzFdLCBOVUxM KSwKKwkJCQkJCXBvaW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdLCBOVUxMKSkpOwogfQogCiBE YXR1bQpAQCAtMjI3OCw4ICsyMjkwLDggQEAgbHNlZ19ndChQR19GVU5DVElPTl9BUkdTKQogCUxT RUcJICAgKmwxID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsKIAlMU0VHCSAgICpsMiA9IFBHX0dFVEFS R19MU0VHX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9PTChGUGd0KHBvaW50X2R0KCZsMS0+cFswXSwg JmwxLT5wWzFdKSwKLQkJCQkJCXBvaW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdKSkpOworCVBH X1JFVFVSTl9CT09MKEZQZ3QocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEtPnBbMV0sIE5VTEwpLAor CQkJCQkJcG9pbnRfZHQoJmwyLT5wWzBdLCAmbDItPnBbMV0sIE5VTEwpKSk7CiB9CiAKIERhdHVt CkBAIC0yMjg4LDggKzIzMDAsOCBAQCBsc2VnX2dlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJTFNFRwkg ICAqbDEgPSBQR19HRVRBUkdfTFNFR19QKDApOwogCUxTRUcJICAgKmwyID0gUEdfR0VUQVJHX0xT RUdfUCgxKTsKIAotCVBHX1JFVFVSTl9CT09MKEZQZ2UocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEt PnBbMV0pLAotCQkJCQkJcG9pbnRfZHQoJmwyLT5wWzBdLCAmbDItPnBbMV0pKSk7CisJUEdfUkVU VVJOX0JPT0woRlBnZShwb2ludF9kdCgmbDEtPnBbMF0sICZsMS0+cFsxXSwgTlVMTCksCisJCQkJ CQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSwgTlVMTCkpKTsKIH0KIAogCkBAIC0yNzQz LDcgKzI3NTUsNyBAQCBsaW5lX2Nsb3NlcHRfcG9pbnQoUG9pbnQgKnJlc3VsdCwgTElORSAqbGlu ZSwgUG9pbnQgKnBvaW50KQogCWlmIChyZXN1bHQgIT0gTlVMTCkKIAkJKnJlc3VsdCA9IGNsb3Nl cHQ7CiAKLQlyZXR1cm4gcG9pbnRfZHQoJmNsb3NlcHQsIHBvaW50KTsKKwlyZXR1cm4gcG9pbnRf ZHQoJmNsb3NlcHQsIHBvaW50LCBOVUxMKTsKIH0KIAogRGF0dW0KQEAgLTI3ODQsNyArMjc5Niw3 IEBAIGxzZWdfY2xvc2VwdF9wb2ludChQb2ludCAqcmVzdWx0LCBMU0VHICpsc2VnLCBQb2ludCAq cHQpCiAJaWYgKHJlc3VsdCAhPSBOVUxMKQogCQkqcmVzdWx0ID0gY2xvc2VwdDsKIAotCXJldHVy biBwb2ludF9kdCgmY2xvc2VwdCwgcHQpOworCXJldHVybiBwb2ludF9kdCgmY2xvc2VwdCwgcHQs IE5VTEwpOwogfQogCiBEYXR1bQpAQCAtMzEwOCw5ICszMTIwLDkgQEAgb25fcGwoUEdfRlVOQ1RJ T05fQVJHUykKIHN0YXRpYyBib29sCiBsc2VnX2NvbnRhaW5fcG9pbnQoTFNFRyAqbHNlZywgUG9p bnQgKnB0KQogewotCXJldHVybiBGUGVxKHBvaW50X2R0KHB0LCAmbHNlZy0+cFswXSkgKwotCQkJ CXBvaW50X2R0KHB0LCAmbHNlZy0+cFsxXSksCi0JCQkJcG9pbnRfZHQoJmxzZWctPnBbMF0sICZs c2VnLT5wWzFdKSk7CisJcmV0dXJuIEZQZXEocG9pbnRfZHQocHQsICZsc2VnLT5wWzBdLCBOVUxM KSArCisJCQkJcG9pbnRfZHQocHQsICZsc2VnLT5wWzFdLCBOVUxMKSwKKwkJCQlwb2ludF9kdCgm bHNlZy0+cFswXSwgJmxzZWctPnBbMV0sIE5VTEwpKTsKIH0KIAogRGF0dW0KQEAgLTMxNzYsMTEg KzMxODgsMTIgQEAgb25fcHBhdGgoUEdfRlVOQ1RJT05fQVJHUykKIAlpZiAoIXBhdGgtPmNsb3Nl ZCkKIAl7CiAJCW4gPSBwYXRoLT5ucHRzIC0gMTsKLQkJYSA9IHBvaW50X2R0KHB0LCAmcGF0aC0+ cFswXSk7CisJCWEgPSBwb2ludF9kdChwdCwgJnBhdGgtPnBbMF0sIE5VTEwpOwogCQlmb3IgKGkg PSAwOyBpIDwgbjsgaSsrKQogCQl7Ci0JCQliID0gcG9pbnRfZHQocHQsICZwYXRoLT5wW2kgKyAx XSk7Ci0JCQlpZiAoRlBlcShmbG9hdDhfcGwoYSwgYiksIHBvaW50X2R0KCZwYXRoLT5wW2ldLCAm cGF0aC0+cFtpICsgMV0pKSkKKwkJCWIgPSBwb2ludF9kdChwdCwgJnBhdGgtPnBbaSArIDFdLCBO VUxMKTsKKwkJCWlmIChGUGVxKGZsb2F0OF9wbChhLCBiKSwKKwkJCQkJIHBvaW50X2R0KCZwYXRo LT5wW2ldLCAmcGF0aC0+cFtpICsgMV0sIE5VTEwpKSkKIAkJCQlQR19SRVRVUk5fQk9PTCh0cnVl KTsKIAkJCWEgPSBiOwogCQl9CkBAIC00NzY2LDcgKzQ3NzksNyBAQCBjaXJjbGVfb3ZlcmxhcChQ R19GVU5DVElPTl9BUkdTKQogCUNJUkNMRQkgICAqY2lyY2xlMSA9IFBHX0dFVEFSR19DSVJDTEVf UCgwKTsKIAlDSVJDTEUJICAgKmNpcmNsZTIgPSBQR19HRVRBUkdfQ0lSQ0xFX1AoMSk7CiAKLQlQ R19SRVRVUk5fQk9PTChGUGxlKHBvaW50X2R0KCZjaXJjbGUxLT5jZW50ZXIsICZjaXJjbGUyLT5j ZW50ZXIpLAorCVBHX1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmNpcmNsZTEtPmNlbnRlciwg JmNpcmNsZTItPmNlbnRlciwgTlVMTCksCiAJCQkJCQlmbG9hdDhfcGwoY2lyY2xlMS0+cmFkaXVz LCBjaXJjbGUyLT5yYWRpdXMpKSk7CiB9CiAKQEAgLTQ4MjgsNyArNDg0MSw3IEBAIGNpcmNsZV9j b250YWluZWQoUEdfRlVOQ1RJT05fQVJHUykKIAlDSVJDTEUJICAgKmNpcmNsZTEgPSBQR19HRVRB UkdfQ0lSQ0xFX1AoMCk7CiAJQ0lSQ0xFCSAgICpjaXJjbGUyID0gUEdfR0VUQVJHX0NJUkNMRV9Q KDEpOwogCi0JUEdfUkVUVVJOX0JPT0woRlBsZShwb2ludF9kdCgmY2lyY2xlMS0+Y2VudGVyLCAm Y2lyY2xlMi0+Y2VudGVyKSwKKwlQR19SRVRVUk5fQk9PTChGUGxlKHBvaW50X2R0KCZjaXJjbGUx LT5jZW50ZXIsICZjaXJjbGUyLT5jZW50ZXIsIE5VTEwpLAogCQkJCQkJZmxvYXQ4X21pKGNpcmNs ZTItPnJhZGl1cywgY2lyY2xlMS0+cmFkaXVzKSkpOwogfQogCkBAIC00ODQwLDcgKzQ4NTMsNyBA QCBjaXJjbGVfY29udGFpbihQR19GVU5DVElPTl9BUkdTKQogCUNJUkNMRQkgICAqY2lyY2xlMSA9 IFBHX0dFVEFSR19DSVJDTEVfUCgwKTsKIAlDSVJDTEUJICAgKmNpcmNsZTIgPSBQR19HRVRBUkdf Q0lSQ0xFX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9PTChGUGxlKHBvaW50X2R0KCZjaXJjbGUxLT5j ZW50ZXIsICZjaXJjbGUyLT5jZW50ZXIpLAorCVBHX1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQo JmNpcmNsZTEtPmNlbnRlciwgJmNpcmNsZTItPmNlbnRlciwgTlVMTCksCiAJCQkJCQlmbG9hdDhf bWkoY2lyY2xlMS0+cmFkaXVzLCBjaXJjbGUyLT5yYWRpdXMpKSk7CiB9CiAKQEAgLTUwNjksNyAr NTA4Miw3IEBAIGNpcmNsZV9kaXN0YW5jZShQR19GVU5DVElPTl9BUkdTKQogCUNJUkNMRQkgICAq Y2lyY2xlMiA9IFBHX0dFVEFSR19DSVJDTEVfUCgxKTsKIAlmbG9hdDgJCXJlc3VsdDsKIAotCXJl c3VsdCA9IGZsb2F0OF9taShwb2ludF9kdCgmY2lyY2xlMS0+Y2VudGVyLCAmY2lyY2xlMi0+Y2Vu dGVyKSwKKwlyZXN1bHQgPSBmbG9hdDhfbWkocG9pbnRfZHQoJmNpcmNsZTEtPmNlbnRlciwgJmNp cmNsZTItPmNlbnRlciwgTlVMTCksCiAJCQkJCSAgIGZsb2F0OF9wbChjaXJjbGUxLT5yYWRpdXMs IGNpcmNsZTItPnJhZGl1cykpOwogCWlmIChyZXN1bHQgPCAwLjApCiAJCXJlc3VsdCA9IDAuMDsK QEAgLTUwODUsNyArNTA5OCw3IEBAIGNpcmNsZV9jb250YWluX3B0KFBHX0ZVTkNUSU9OX0FSR1Mp CiAJUG9pbnQJICAgKnBvaW50ID0gUEdfR0VUQVJHX1BPSU5UX1AoMSk7CiAJZmxvYXQ4CQlkOwog Ci0JZCA9IHBvaW50X2R0KCZjaXJjbGUtPmNlbnRlciwgcG9pbnQpOworCWQgPSBwb2ludF9kdCgm Y2lyY2xlLT5jZW50ZXIsIHBvaW50LCBOVUxMKTsKIAlQR19SRVRVUk5fQk9PTChkIDw9IGNpcmNs ZS0+cmFkaXVzKTsKIH0KIApAQCAtNTA5Nyw3ICs1MTEwLDcgQEAgcHRfY29udGFpbmVkX2NpcmNs ZShQR19GVU5DVElPTl9BUkdTKQogCUNJUkNMRQkgICAqY2lyY2xlID0gUEdfR0VUQVJHX0NJUkNM RV9QKDEpOwogCWZsb2F0OAkJZDsKIAotCWQgPSBwb2ludF9kdCgmY2lyY2xlLT5jZW50ZXIsIHBv aW50KTsKKwlkID0gcG9pbnRfZHQoJmNpcmNsZS0+Y2VudGVyLCBwb2ludCwgTlVMTCk7CiAJUEdf UkVUVVJOX0JPT0woZCA8PSBjaXJjbGUtPnJhZGl1cyk7CiB9CiAKQEAgLTUxMTIsNyArNTEyNSw3 IEBAIGRpc3RfcGMoUEdfRlVOQ1RJT05fQVJHUykKIAlDSVJDTEUJICAgKmNpcmNsZSA9IFBHX0dF VEFSR19DSVJDTEVfUCgxKTsKIAlmbG9hdDgJCXJlc3VsdDsKIAotCXJlc3VsdCA9IGZsb2F0OF9t aShwb2ludF9kdChwb2ludCwgJmNpcmNsZS0+Y2VudGVyKSwKKwlyZXN1bHQgPSBmbG9hdDhfbWko cG9pbnRfZHQocG9pbnQsICZjaXJjbGUtPmNlbnRlciwgTlVMTCksCiAJCQkJCSAgIGNpcmNsZS0+ cmFkaXVzKTsKIAlpZiAocmVzdWx0IDwgMC4wKQogCQlyZXN1bHQgPSAwLjA7CkBAIC01MTMwLDcg KzUxNDMsNyBAQCBkaXN0X2Nwb2ludChQR19GVU5DVElPTl9BUkdTKQogCVBvaW50CSAgICpwb2lu dCA9IFBHX0dFVEFSR19QT0lOVF9QKDEpOwogCWZsb2F0OAkJcmVzdWx0OwogCi0JcmVzdWx0ID0g ZmxvYXQ4X21pKHBvaW50X2R0KHBvaW50LCAmY2lyY2xlLT5jZW50ZXIpLCBjaXJjbGUtPnJhZGl1 cyk7CisJcmVzdWx0ID0gZmxvYXQ4X21pKHBvaW50X2R0KHBvaW50LCAmY2lyY2xlLT5jZW50ZXIs IE5VTEwpLCBjaXJjbGUtPnJhZGl1cyk7CiAJaWYgKHJlc3VsdCA8IDAuMCkKIAkJcmVzdWx0ID0g MC4wOwogCkBAIC01MjE1LDcgKzUyMjgsNyBAQCBib3hfY2lyY2xlKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJY2lyY2xlLT5jZW50ZXIueCA9IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC54LCBi b3gtPmxvdy54KSwgMi4wKTsKIAljaXJjbGUtPmNlbnRlci55ID0gZmxvYXQ4X2RpdihmbG9hdDhf cGwoYm94LT5oaWdoLnksIGJveC0+bG93LnkpLCAyLjApOwogCi0JY2lyY2xlLT5yYWRpdXMgPSBw b2ludF9kdCgmY2lyY2xlLT5jZW50ZXIsICZib3gtPmhpZ2gpOworCWNpcmNsZS0+cmFkaXVzID0g cG9pbnRfZHQoJmNpcmNsZS0+Y2VudGVyLCAmYm94LT5oaWdoLCBOVUxMKTsKIAogCVBHX1JFVFVS Tl9DSVJDTEVfUChjaXJjbGUpOwogfQpAQCAtNTI5OSw3ICs1MzEyLDcgQEAgcG9seV90b19jaXJj bGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHkpCiAKIAlmb3IgKGkgPSAwOyBpIDwgcG9s eS0+bnB0czsgaSsrKQogCQlyZXN1bHQtPnJhZGl1cyA9IGZsb2F0OF9wbChyZXN1bHQtPnJhZGl1 cywKLQkJCQkJCQkJICAgcG9pbnRfZHQoJnBvbHktPnBbaV0sICZyZXN1bHQtPmNlbnRlcikpOwor CQkJCQkJCQkgICBwb2ludF9kdCgmcG9seS0+cFtpXSwgJnJlc3VsdC0+Y2VudGVyLCBOVUxMKSk7 CiAJcmVzdWx0LT5yYWRpdXMgPSBmbG9hdDhfZGl2KHJlc3VsdC0+cmFkaXVzLCBwb2x5LT5ucHRz KTsKIH0KIAotLSAKMi4zNC4xCgo= --000000000000ed7e80064d704a27 Content-Type: text/x-patch; charset="US-ASCII"; name="v22-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v22-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmymiobz3 RnJvbSA0YzNiN2M4NWU3ZjZiM2UwYjMxZjc1OTQ2NDBlNDAwOGExZjkzNzJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTQ6MTI6MDEgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MiAwMS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBieXRlYSB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l CmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9J2J5dGVhJzo6cmVn dHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBjYXN0dGFy Z2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgIHByb3NyYyAgIHwg cHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQogYnl0ZWEgICAgICB8IHNtYWxs aW50ICAgfCAgICAgNjM3MCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJ5dGVhX2ludDIg fCBpbnQyCiBieXRlYSAgICAgIHwgaW50ZWdlciAgICB8ICAgICA2MzcxIHwgZSAgICAgICAgICAg fCBmICAgICAgICAgIHwgYnl0ZWFfaW50NCB8IGludDQKIGJ5dGVhICAgICAgfCBiaWdpbnQgICAg IHwgICAgIDYzNzIgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBieXRlYV9pbnQ4IHwgaW50 OAogYnl0ZWEgICAgICB8IHV1aWQgICAgICAgfCAgICAgOTg4MSB8IGUgICAgICAgICAgIHwgZiAg ICAgICAgICB8IGJ5dGVhX3V1aWQgfCB1dWlkCig0IHJvd3MpCgpBdXRob3I6IGppYW4gaGUgPGpp YW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFtdWwgU3VsIDxzdWxhbXVs QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENvcmV5IEh1aW5rZXIgPGNvcmV5Lmh1aW5rZXJAZ21h aWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZh LWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQpDb21taXRm ZXN0OiBodHRwczovL2NvbW1pdGZlc3QucG9zdGdyZXNxbC5vcmcvcGF0Y2gvNTk0MQotLS0KIHNy Yy9iYWNrZW5kL3V0aWxzL2FkdC9ieXRlYS5jIHwgOCArKysrLS0tLQogMSBmaWxlIGNoYW5nZWQs IDQgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvYnl0ZWEuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ieXRlYS5jCmluZGV4 IDM5ZWQwNGRkYWU4Li5mNmUzMjY2YWMzMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2J5dGVhLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2J5dGVhLmMKQEAgLTEyNTYs NyArMTI1Niw3IEBAIGJ5dGVhX2ludDIoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIENoZWNrIHRo YXQgdGhlIGJ5dGUgYXJyYXkgaXMgbm90IHRvbyBsb25nICovCiAJaWYgKGxlbiA+IHNpemVvZihy ZXN1bHQpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERh dHVtKSAwLAogCQkJCWVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSks CiAJCQkJZXJybXNnKCJzbWFsbGludCBvdXQgb2YgcmFuZ2UiKSk7CiAKQEAgLTEyODEsNyArMTI4 MSw3IEBAIGJ5dGVhX2ludDQoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIENoZWNrIHRoYXQgdGhl IGJ5dGUgYXJyYXkgaXMgbm90IHRvbyBsb25nICovCiAJaWYgKGxlbiA+IHNpemVvZihyZXN1bHQp KQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAw LAogCQkJCWVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJ ZXJybXNnKCJpbnRlZ2VyIG91dCBvZiByYW5nZSIpKTsKIApAQCAtMTMwNiw3ICsxMzA2LDcgQEAg Ynl0ZWFfaW50OChQR19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sgdGhhdCB0aGUgYnl0ZSBh cnJheSBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAobGVuID4gc2l6ZW9mKHJlc3VsdCkpCi0JCWVy ZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJ ZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQllcnJtc2co ImJpZ2ludCBvdXQgb2YgcmFuZ2UiKSk7CiAKQEAgLTEzNTEsNyArMTM1MSw3IEBAIGJ5dGVhX3V1 aWQoUEdfRlVOQ1RJT05fQVJHUykKIAlwZ191dWlkX3QgICp1dWlkOwogCiAJaWYgKGxlbiAhPSBV VUlEX0xFTikKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChE YXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfQklOQVJZX1JFUFJFU0VOVEFU SU9OKSwKIAkJCQkgZXJybXNnKCJpbnZhbGlkIGlucHV0IGxlbmd0aCBmb3IgdHlwZSAlcyIsICJ1 dWlkIiksCiAJCQkJIGVycmRldGFpbCgiRXhwZWN0ZWQgJWQgYnl0ZXMsIGdvdCAlZC4iLCBVVUlE X0xFTiwgbGVuKSkpOwotLSAKMi4zNC4xCgo= --000000000000ed7e80064d704a27 Content-Type: text/x-patch; charset="US-ASCII"; name="v22-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v22-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmymiobu2 RnJvbSBlYzAzNTQxMmFhOTZmZTgxNzg1OWI2MzVhMGEyMjAzNmRjMDQ1OGE0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MDU6NTcgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MiAxMC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBudW1lcmljIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ251bWVyaWMn OjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgpjYXN0c291cmNlIHwgICAg Y2FzdHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAg IHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLQogbnVtZXJpYyAgICB8IGJpZ2ludCAgICAgICAgICAgfCAgICAgMTc3OSB8IGEgICAgICAg ICAgIHwgZiAgICAgICAgICB8IG51bWVyaWNfaW50OCAgIHwgaW50OAogbnVtZXJpYyAgICB8IHNt YWxsaW50ICAgICAgICAgfCAgICAgMTc4MyB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IG51 bWVyaWNfaW50MiAgIHwgaW50MgogbnVtZXJpYyAgICB8IGludGVnZXIgICAgICAgICAgfCAgICAg MTc0NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IG51bWVyaWNfaW50NCAgIHwgaW50NAog bnVtZXJpYyAgICB8IHJlYWwgICAgICAgICAgICAgfCAgICAgMTc0NSB8IGkgICAgICAgICAgIHwg ZiAgICAgICAgICB8IG51bWVyaWNfZmxvYXQ0IHwgZmxvYXQ0CiBudW1lcmljICAgIHwgZG91Ymxl IHByZWNpc2lvbiB8ICAgICAxNzQ2IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbnVtZXJp Y19mbG9hdDggfCBmbG9hdDgKIG51bWVyaWMgICAgfCBtb25leSAgICAgICAgICAgIHwgICAgIDM4 MjQgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBudW1lcmljX2Nhc2ggICB8IG1vbmV5CiBu dW1lcmljICAgIHwgbnVtZXJpYyAgICAgICAgICB8ICAgICAxNzAzIHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgbnVtZXJpYyAgICAgICAgfCBudW1lcmljCig3IHJvd3MpCgpBdXRob3I6IGpp YW4gaGUgPGppYW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFtdWwgU3Vs IDxzdWxhbXVsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENvcmV5IEh1aW5rZXIgPGNvcmV5Lmh1 aW5rZXJAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1m djFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNv bQpDb21taXRmZXN0OiBodHRwczovL2NvbW1pdGZlc3QucG9zdGdyZXNxbC5vcmcvcGF0Y2gvNTk0 MQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMgfCA1OCArKysrKysrKysrKysr KysrKysrKysrKystLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAx NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJp Yy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYwppbmRleCBkMjViOGFkNTA1ZC4u ZDY2ZmI4NjY2MmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYwpAQCAtMTI0NCw3ICsxMjQ0LDgg QEAgbnVtZXJpYwkJKFBHX0ZVTkNUSU9OX0FSR1MpCiAJICovCiAJaWYgKE5VTUVSSUNfSVNfU1BF Q0lBTChudW0pKQogCXsKLQkJKHZvaWQpIGFwcGx5X3R5cG1vZF9zcGVjaWFsKG51bSwgdHlwbW9k LCBOVUxMKTsKKwkJaWYgKCFhcHBseV90eXBtb2Rfc3BlY2lhbChudW0sIHR5cG1vZCwgZmNpbmZv LT5jb250ZXh0KSkKKwkJCVBHX1JFVFVSTl9OVUxMKCk7CiAJCVBHX1JFVFVSTl9OVU1FUklDKGR1 cGxpY2F0ZV9udW1lcmljKG51bSkpOwogCX0KIApAQCAtMTI5NSw4ICsxMjk2LDkgQEAgbnVtZXJp YwkJKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW5pdF92YXIoJnZhcik7CiAKIAlzZXRfdmFyX2Zyb21f bnVtKG51bSwgJnZhcik7Ci0JKHZvaWQpIGFwcGx5X3R5cG1vZCgmdmFyLCB0eXBtb2QsIE5VTEwp OwotCW5ldyA9IG1ha2VfcmVzdWx0KCZ2YXIpOworCWlmICghYXBwbHlfdHlwbW9kKCZ2YXIsIHR5 cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwluZXcgPSBtYWtl X3Jlc3VsdF9zYWZlKCZ2YXIsIGZjaW5mby0+Y29udGV4dCk7CiAKIAlmcmVlX3ZhcigmdmFyKTsK IApAQCAtMzAxOCw3ICszMDIwLDEwIEBAIG51bWVyaWNfbXVsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ TnVtZXJpYwkJbnVtMiA9IFBHX0dFVEFSR19OVU1FUklDKDEpOwogCU51bWVyaWMJCXJlczsKIAot CXJlcyA9IG51bWVyaWNfbXVsX3NhZmUobnVtMSwgbnVtMiwgTlVMTCk7CisJcmVzID0gbnVtZXJp Y19tdWxfc2FmZShudW0xLCBudW0yLCBmY2luZm8tPmNvbnRleHQpOworCisJaWYgKHVubGlrZWx5 KFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkpCisJCVBHX1JFVFVSTl9OVUxM KCk7CiAKIAlQR19SRVRVUk5fTlVNRVJJQyhyZXMpOwogfQpAQCAtNDM5Miw5ICs0Mzk3LDE1IEBA IG51bWVyaWNfaW50NF9zYWZlKE51bWVyaWMgbnVtLCBOb2RlICplc2NvbnRleHQpCiBEYXR1bQog bnVtZXJpY19pbnQ0KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CisJaW50MzIJCXJlc3VsdDsKIAlOdW1l cmljCQludW0gPSBQR19HRVRBUkdfTlVNRVJJQygwKTsKIAotCVBHX1JFVFVSTl9JTlQzMihudW1l cmljX2ludDRfc2FmZShudW0sIE5VTEwpKTsKKwlyZXN1bHQgPSBudW1lcmljX2ludDRfc2FmZShu dW0sIGZjaW5mby0+Y29udGV4dCk7CisKKwlpZiAodW5saWtlbHkoU09GVF9FUlJPUl9PQ0NVUlJF RChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9J TlQzMihyZXN1bHQpOwogfQogCiAvKgpAQCAtNDQ2Miw5ICs0NDczLDE1IEBAIG51bWVyaWNfaW50 OF9zYWZlKE51bWVyaWMgbnVtLCBOb2RlICplc2NvbnRleHQpCiBEYXR1bQogbnVtZXJpY19pbnQ4 KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CisJaW50NjQJCXJlc3VsdDsKIAlOdW1lcmljCQludW0gPSBQ R19HRVRBUkdfTlVNRVJJQygwKTsKIAotCVBHX1JFVFVSTl9JTlQ2NChudW1lcmljX2ludDhfc2Fm ZShudW0sIE5VTEwpKTsKKwlyZXN1bHQgPSBudW1lcmljX2ludDhfc2FmZShudW0sIGZjaW5mby0+ Y29udGV4dCk7CisKKwlpZiAodW5saWtlbHkoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNv bnRleHQpKSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQp OwogfQogCiAKQEAgLTQ0ODgsMTEgKzQ1MDUsMTEgQEAgbnVtZXJpY19pbnQyKFBHX0ZVTkNUSU9O X0FSR1MpCiAJaWYgKE5VTUVSSUNfSVNfU1BFQ0lBTChudW0pKQogCXsKIAkJaWYgKE5VTUVSSUNf SVNfTkFOKG51bSkpCi0JCQllcmVwb3J0KEVSUk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRl eHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JU RUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3QgY29udmVydCBOYU4gdG8gJXMiLCAic21hbGxpbnQi KSkpOwogCQllbHNlCi0JCQllcmVwb3J0KEVSUk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRl eHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JU RUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3QgY29udmVydCBpbmZpbml0eSB0byAlcyIsICJzbWFs bGludCIpKSk7CiAJfQpAQCAtNDUwMSwxMiArNDUxOCwxMiBAQCBudW1lcmljX2ludDIoUEdfRlVO Q1RJT05fQVJHUykKIAlpbml0X3Zhcl9mcm9tX251bShudW0sICZ4KTsKIAogCWlmICghbnVtZXJp Y3Zhcl90b19pbnQ2NCgmeCwgJnZhbCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNp bmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZB TFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygic21hbGxpbnQgb3V0IG9mIHJhbmdlIikp KTsKIAogCWlmICh1bmxpa2VseSh2YWwgPCBQR19JTlQxNl9NSU4pIHx8IHVubGlrZWx5KHZhbCA+ IFBHX0lOVDE2X01BWCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250 ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9P Rl9SQU5HRSksCiAJCQkJIGVycm1zZygic21hbGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIApAQCAt NDU3MSwxMCArNDU4OCwxNCBAQCBudW1lcmljX2Zsb2F0OChQR19GVU5DVElPTl9BUkdTKQogCiAJ dG1wID0gRGF0dW1HZXRDU3RyaW5nKERpcmVjdEZ1bmN0aW9uQ2FsbDEobnVtZXJpY19vdXQsCiAJ CQkJCQkJCQkJCSAgTnVtZXJpY0dldERhdHVtKG51bSkpKTsKLQotCXJlc3VsdCA9IERpcmVjdEZ1 bmN0aW9uQ2FsbDEoZmxvYXQ4aW4sIENTdHJpbmdHZXREYXR1bSh0bXApKTsKLQotCXBmcmVlKHRt cCk7CisJaWYgKCFEaXJlY3RJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUoZmxvYXQ4aW4sIHRtcCwKKwkJ CQkJCQkJCSBJbnZhbGlkT2lkLCAtMSwKKwkJCQkJCQkJCSAoTm9kZSAqKSBmY2luZm8tPmNvbnRl eHQsCisJCQkJCQkJCQkgJnJlc3VsdCkpCisJeworCQlwZnJlZSh0bXApOworCQlQR19SRVRVUk5f TlVMTCgpOworCX0KIAogCVBHX1JFVFVSTl9EQVRVTShyZXN1bHQpOwogfQpAQCAtNDY2Niw3ICs0 Njg3LDE0IEBAIG51bWVyaWNfZmxvYXQ0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJdG1wID0gRGF0dW1H ZXRDU3RyaW5nKERpcmVjdEZ1bmN0aW9uQ2FsbDEobnVtZXJpY19vdXQsCiAJCQkJCQkJCQkJCSAg TnVtZXJpY0dldERhdHVtKG51bSkpKTsKIAotCXJlc3VsdCA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEo ZmxvYXQ0aW4sIENTdHJpbmdHZXREYXR1bSh0bXApKTsKKwlpZiAoIURpcmVjdElucHV0RnVuY3Rp b25DYWxsU2FmZShmbG9hdDRpbiwgdG1wLAorCQkJCQkJCQkJIEludmFsaWRPaWQsIC0xLAorCQkJ CQkJCQkJIChOb2RlICopIGZjaW5mby0+Y29udGV4dCwKKwkJCQkJCQkJCSAmcmVzdWx0KSkKKwl7 CisJCXBmcmVlKHRtcCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJcGZyZWUodG1wKTsK IAotLSAKMi4zNC4xCgo= --000000000000ed7e80064d704a27 Content-Type: text/x-patch; charset="US-ASCII"; name="v22-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v22-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmymiobo1 RnJvbSAwYWE1OTUyOWU0OWMwNDY4YTJlM2IxYTY1NGI3Yzc0OGY0MzM1YTI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MTM6MTcgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MiAxNi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyB0aW1lc3RhbXAgdG8gb3RoZXIgdHlwZXMg cGVyCiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVn dHlwZSwgY2FzdGZ1bmMsCiAgICAgICBjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMs IHBwLnByb25hbWUKZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBw Yy5jYXN0ZnVuYwphbmQgcGMuY2FzdGZ1bmMgPiAwIGFuZCAoY2FzdHNvdXJjZTo6cmVndHlwZSA9 J3RpbWVzdGFtcCc6OnJlZ3R5cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogICAg ICAgICBjYXN0c291cmNlICAgICAgICAgIHwgICAgICAgICBjYXN0dGFyZ2V0ICAgICAgICAgIHwg Y2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAgICAgcHJvc3JjICAgICAg ICAgfCAgIHByb25hbWUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCiB0aW1lc3RhbXAgd2l0aG91dCB0 aW1lIHpvbmUgfCBkYXRlICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMjAyOSB8IGEgICAg ICAgICAgIHwgZiAgICAgICAgICB8IHRpbWVzdGFtcF9kYXRlICAgICAgICB8IGRhdGUKIHRpbWVz dGFtcCB3aXRob3V0IHRpbWUgem9uZSB8IHRpbWUgd2l0aG91dCB0aW1lIHpvbmUgICAgICB8ICAg ICAxMzE2IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wX3RpbWUgICAgICAg IHwgdGltZQogdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgdGltZXN0YW1wIHdpdGggdGlt ZSB6b25lICAgIHwgICAgIDIwMjggfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCB0aW1lc3Rh bXBfdGltZXN0YW1wdHogfCB0aW1lc3RhbXB0egogdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25l IHwgdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgICAgIDE5NjEgfCBpICAgICAgICAgICB8 IGYgICAgICAgICAgfCB0aW1lc3RhbXBfc2NhbGUgICAgICAgfCB0aW1lc3RhbXAKKDQgcm93cykK CkF1dGhvcjogamlhbiBoZSA8amlhbi51bml2ZXJzYWxpdHlAZ21haWwuY29tPgpSZXZpZXdlZC1i eTogQW11bCBTdWwgPHN1bGFtdWxAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQ29yZXkgSHVpbmtl ciA8Y29yZXkuaHVpbmtlckBnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1h aWwuZ21haWwuY29tCkNvbW1pdGZlc3Q6IGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9y Zy9wYXRjaC81OTQxCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYyAgICAgIHwgIDcg KysrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jIHwgMTAgKysrKysrKyst LQogMiBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMgYi9zcmMvYmFja2VuZC91dGls cy9hZHQvZGF0ZS5jCmluZGV4IGUwNTJlNWIyZTg1Li4yZTgyNmEwNmU1MSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQv ZGF0ZS5jCkBAIC0xMzIyLDcgKzEzMjIsMTAgQEAgdGltZXN0YW1wX2RhdGUoUEdfRlVOQ1RJT05f QVJHUykKIAlUaW1lc3RhbXAJdGltZXN0YW1wID0gUEdfR0VUQVJHX1RJTUVTVEFNUCgwKTsKIAlE YXRlQURUCQlyZXN1bHQ7CiAKLQlyZXN1bHQgPSB0aW1lc3RhbXAyZGF0ZV9zYWZlKHRpbWVzdGFt cCwgTlVMTCk7CisJcmVzdWx0ID0gdGltZXN0YW1wMmRhdGVfc2FmZSh0aW1lc3RhbXAsIGZjaW5m by0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkK KwkJUEdfUkVUVVJOX05VTEwoKTsKKwogCVBHX1JFVFVSTl9EQVRFQURUKHJlc3VsdCk7CiB9CiAK QEAgLTIwMDAsNyArMjAwMyw3IEBAIHRpbWVzdGFtcF90aW1lKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ CVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlpZiAodGltZXN0YW1wMnRtKHRpbWVzdGFtcCwgTlVMTCwg dG0sICZmc2VjLCBOVUxMLCBOVUxMKSAhPSAwKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJu KGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfREFURVRJ TUVfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJ0aW1lc3RhbXAgb3V0IG9mIHJh bmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCmluZGV4IGRlYWJmODU5NTVjLi4y ODhkNjk2YmU3NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYwpAQCAtMzQzLDcgKzM0Myw4 IEBAIHRpbWVzdGFtcF9zY2FsZShQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gdGltZXN0 YW1wOwogCi0JQWRqdXN0VGltZXN0YW1wRm9yVHlwbW9kKCZyZXN1bHQsIHR5cG1vZCwgTlVMTCk7 CisJaWYgKCFBZGp1c3RUaW1lc3RhbXBGb3JUeXBtb2QoJnJlc3VsdCwgdHlwbW9kLCBmY2luZm8t PmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJUEdfUkVUVVJOX1RJTUVTVEFNUChy ZXN1bHQpOwogfQpAQCAtNjQyMyw4ICs2NDI0LDEzIEBAIERhdHVtCiB0aW1lc3RhbXBfdGltZXN0 YW1wdHooUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlUaW1lc3RhbXAJdGltZXN0YW1wID0gUEdfR0VU QVJHX1RJTUVTVEFNUCgwKTsKKwlUaW1lc3RhbXBUeiByZXN1bHQ7CiAKLQlQR19SRVRVUk5fVElN RVNUQU1QVFoodGltZXN0YW1wMnRpbWVzdGFtcHR6KHRpbWVzdGFtcCkpOworCXJlc3VsdCA9IHRp bWVzdGFtcDJ0aW1lc3RhbXB0el9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlp ZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVM TCgpOworCisJUEdfUkVUVVJOX1RJTUVTVEFNUFRaKHJlc3VsdCk7CiB9CiAKIC8qCi0tIAoyLjM0 LjEKCg== --000000000000ed7e80064d704a27 Content-Type: text/x-patch; charset="US-ASCII"; name="v22-0023-error-safe-for-user-defined-CREATE-CAST.patch" Content-Disposition: attachment; filename="v22-0023-error-safe-for-user-defined-CREATE-CAST.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmymioc24 RnJvbSBjMDFjYjRkNTA0ZWU2MzdiMTE2NGY5ZTg0Yjk1Y2JhY2M0MGE4MWQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTQ6MTQ6MzEgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MiAyMy8yM10gZXJyb3Igc2FmZSBmb3IgdXNlciBkZWZpbmVkIENSRUFURSBDQVNUCgpwZ19jYXN0 LmNhc3RlcnJvcnNhZmUgY29sdW1uIHRvIGluZGljYXRlIGNhc3RmdW5jIGlzIGVycm9yIHNhZmUg b3Igbm90LgpjaGFuZ2Ugc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdCB0byBpbmRpY2F0 ZSB0aGF0IG1vc3Qgb2YgdGhlIHN5c3RlbSBjYXN0CmZ1bmN0aW9uIHN1cHBvcnQgc29mdCBlcnJv ciBldmFsdWF0aW9uLgoKVGhlIFNBRkUga2V5d29yZCBpcyBpbnRyb2R1Y2VkIGZvciBhbGxvdyB1 c2VyLWRlZmluZWQgQ1JFQVRFIENBU1QgY2FuIGFsc28gYmUKZXZhbHVhdGVkIGluIHNvZnQtZXJy b3IuCgpUaGUgbmV3IHN5bm9wc2lzIG9mIENSRUFURSBDQVNUIGlzOgpDUkVBVEUgQ0FTVCAoc291 cmNlX3R5cGUgQVMgdGFyZ2V0X3R5cGUpCiAgICBXSVRIIFtTQUZFXSBGVU5DVElPTiBmdW5jdGlv bl9uYW1lIFsgKGFyZ3VtZW50X3R5cGUgWywgLi4uXSkgXQogICAgWyBBUyBBU1NJR05NRU5UIHwg QVMgSU1QTElDSVQgXQoKVGhlIGZvbGxvd2luZyBjYXN0IGluIGNpdGV4dCwgaHN0b3JlIGNvbnRy aWIgbW9kdWxlIHJlZmFjdG9yZWQgdG8gZXJyb3Igc2FmZToKQ0FTVCAoYnBjaGFyIEFTIGNpdGV4 dCkKQ0FTVCAoYm9vbGVhbiBBUyBjaXRleHQpCkNBU1QgKGluZXQgQVMgY2l0ZXh0KQpDQVNUICh0 ZXh0W10gQVMgaHN0b3JlKQpDQVNUIChoc3RvcmUgQVMganNvbikKQ0FTVCAoaHN0b3JlIEFTIGpz b25iKQoKQXV0aG9yOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ClJldmll d2VkLWJ5OiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBBbmRyZXcg RHVuc3RhbiA8YW5kcmV3QGR1bnNsYW5lLm5ldD4KUmV2aWV3ZWQtYnk6IENvcmV5IEh1aW5rZXIg PGNvcmV5Lmh1aW5rZXJAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9t L0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWls LmdtYWlsLmNvbQpDb21taXRmZXN0OiBodHRwczovL2NvbW1pdGZlc3QucG9zdGdyZXNxbC5vcmcv cGF0Y2gvNTk0MQotLS0KIGNvbnRyaWIvY2l0ZXh0L2NpdGV4dC0tMS40LnNxbCAgICAgICAgICAg IHwgICA2ICstCiBjb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHQub3V0ICAgICAgICB8ICAy NCArLQogY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0ICAgICAgfCAgMjQgKy0K IGNvbnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQuc3FsICAgICAgICAgICAgIHwgICA1ICstCiBjb250 cmliL2hzdG9yZS9leHBlY3RlZC9oc3RvcmUub3V0ICAgICAgICB8ICAzNyArKysKIGNvbnRyaWIv aHN0b3JlL2hzdG9yZS0tMS4yLS0xLjMuc3FsICAgICAgIHwgICAyICstCiBjb250cmliL2hzdG9y ZS9oc3RvcmUtLTEuNC5zcWwgICAgICAgICAgICB8ICAgNiArLQogY29udHJpYi9oc3RvcmUvaHN0 b3JlX2lvLmMgICAgICAgICAgICAgICAgfCAgIDggKy0KIGNvbnRyaWIvaHN0b3JlL3NxbC9oc3Rv cmUuc3FsICAgICAgICAgICAgIHwgIDExICsKIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAg ICAgICAgICAgICAgIHwgIDE1ICsKIGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Nhc3Quc2dtbCAg ICAgICAgIHwgIDE0ICstCiBkb2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwgICAgICAgICAgICAgICAg ICB8ICAgMyArLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jYXN0LmMgICAgICAgICAgICAgfCAg IDQgKy0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2Z1bmN0aW9uY21kcy5jICAgICAgIHwgIDE2ICst CiBzcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jICAgICAgICAgICB8ICAgMSArCiBzcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICB8ICAxOCArLQogc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2V4cHIuYyAgICAgICAgICAgfCAgMzIgKy0tCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2Nhc3QuZGF0ICAgICAgICAgICB8IDMzMiArKysrKysrKysrKy0tLS0tLS0tLS0t CiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuaCAgICAgICAgICAgICB8ICAgNSArCiBzcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVk ZS9wYXJzZXIva3dsaXN0LmggICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dCB8ICAgOCArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9vcHJfc2FuaXR5Lm91dCAgfCAgMjQgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0 ZV9jYXN0LnNxbCAgICAgIHwgICA1ICsKIDI0IGZpbGVzIGNoYW5nZWQsIDM2OSBpbnNlcnRpb25z KCspLCAyMzMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaXRleHQvY2l0ZXh0 LS0xLjQuc3FsIGIvY29udHJpYi9jaXRleHQvY2l0ZXh0LS0xLjQuc3FsCmluZGV4IDdiMDYxOTg5 MzUyLi41Yzg3ODIwMzg4ZiAxMDA2NDQKLS0tIGEvY29udHJpYi9jaXRleHQvY2l0ZXh0LS0xLjQu c3FsCisrKyBiL2NvbnRyaWIvY2l0ZXh0L2NpdGV4dC0tMS40LnNxbApAQCAtODUsOSArODUsOSBA QCBDUkVBVEUgQ0FTVCAoY2l0ZXh0IEFTIHZhcmNoYXIpIFdJVEhPVVQgRlVOQ1RJT04gQVMgSU1Q TElDSVQ7CiBDUkVBVEUgQ0FTVCAoY2l0ZXh0IEFTIGJwY2hhcikgIFdJVEhPVVQgRlVOQ1RJT04g QVMgQVNTSUdOTUVOVDsKIENSRUFURSBDQVNUICh0ZXh0IEFTIGNpdGV4dCkgICAgV0lUSE9VVCBG VU5DVElPTiBBUyBBU1NJR05NRU5UOwogQ1JFQVRFIENBU1QgKHZhcmNoYXIgQVMgY2l0ZXh0KSBX SVRIT1VUIEZVTkNUSU9OIEFTIEFTU0lHTk1FTlQ7Ci1DUkVBVEUgQ0FTVCAoYnBjaGFyIEFTIGNp dGV4dCkgIFdJVEggRlVOQ1RJT04gY2l0ZXh0KGJwY2hhcikgIEFTIEFTU0lHTk1FTlQ7Ci1DUkVB VEUgQ0FTVCAoYm9vbGVhbiBBUyBjaXRleHQpIFdJVEggRlVOQ1RJT04gY2l0ZXh0KGJvb2xlYW4p IEFTIEFTU0lHTk1FTlQ7Ci1DUkVBVEUgQ0FTVCAoaW5ldCBBUyBjaXRleHQpICAgIFdJVEggRlVO Q1RJT04gY2l0ZXh0KGluZXQpICAgIEFTIEFTU0lHTk1FTlQ7CitDUkVBVEUgQ0FTVCAoYnBjaGFy IEFTIGNpdGV4dCkgIFdJVEggU0FGRSBGVU5DVElPTiBjaXRleHQoYnBjaGFyKSAgQVMgQVNTSUdO TUVOVDsKK0NSRUFURSBDQVNUIChib29sZWFuIEFTIGNpdGV4dCkgV0lUSCBTQUZFIEZVTkNUSU9O IGNpdGV4dChib29sZWFuKSBBUyBBU1NJR05NRU5UOworQ1JFQVRFIENBU1QgKGluZXQgQVMgY2l0 ZXh0KSAgICBXSVRIIFNBRkUgRlVOQ1RJT04gY2l0ZXh0KGluZXQpICAgIEFTIEFTU0lHTk1FTlQ7 CiAKIC0tCiAtLSBPcGVyYXRvciBGdW5jdGlvbnMuCmRpZmYgLS1naXQgYS9jb250cmliL2NpdGV4 dC9leHBlY3RlZC9jaXRleHQub3V0IGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91 dAppbmRleCBlY2ZhZjJhYTg1YS4uYmUzMjg3MTU0OTIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY2l0 ZXh0L2V4cGVjdGVkL2NpdGV4dC5vdXQKKysrIGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0 ZXh0Lm91dApAQCAtMTAsMTEgKzEwLDEyIEBAIFdIRVJFIG9wYy5vaWQgPj0gMTYzODQgQU5EIE5P VCBhbXZhbGlkYXRlKG9wYy5vaWQpOwogLS0tLS0tLS0rLS0tLS0tLS0tCiAoMCByb3dzKQogCi1T RUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7IC0tIGVycm9yCi1FUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgY2hhcmFjdGVy IHRvIGNpdGV4dCB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAu Li4gT04gQ09OVkVSU0lPTiBFUlJPUgotTElORSAxOiBTRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFy IEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0kuLi4KLSAgICAgICAgICAgICAgICAg ICAgXgotSElOVDogIFNhZmUgdHlwZSBjYXN0IGZvciB1c2VyLWRlZmluZWQgdHlwZXMgYXJlIG5v dCB5ZXQgc3VwcG9ydGVkLgorU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGNpdGV4dCAKKy0tLS0tLS0tCisgYWJj CisoMSByb3cpCisKIC0tIFRlc3QgdGhlIG9wZXJhdG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25z CiAtLSBUZXN0ID0gYW5kIDw+LgogU0VMRUNUICdhJzo6Y2l0ZXh0ID0gJ2EnOjpjaXRleHQgQVMg dDsKQEAgLTUyMyw2ICs1MjQsMTIgQEAgU0VMRUNUIHRydWU6OmNpdGV4dCA9ICd0cnVlJyBBUyB0 OwogIHQKICgxIHJvdykKIAorU0VMRUNUIENBU1QodHJ1ZSBBUyBjaXRleHQgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworIGNpdGV4dCAKKy0tLS0tLS0tCisgdHJ1ZQorKDEgcm93 KQorCiBTRUxFQ1QgJ3RydWUnOjpjaXRleHQ6OmJvb2xlYW4gPSB0cnVlIEFTIHQ7CiAgdCAKIC0t LQpAQCAtNzg3LDYgKzc5NCwxMyBAQCBTRUxFQ1QgJzE5Mi4xNjguMTAwLjEyOCc6OmNpdGV4dDo6 aW5ldCA9ICcxOTIuMTY4LjEwMC4xMjgnOjppbmV0IEFTIHQ7CiAgdAogKDEgcm93KQogCitTRUxF Q1QgQ0FTVChpbmV0ICcxOTIuMTY4LjEwMC4xMjgnIEFTIGNpdGV4dAorICAgICAgICAgICBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgPSAnMTkyLjE2OC4xMDAuMTI4LzMyJyBBUyB0 OworIHQgCistLS0KKyB0CisoMSByb3cpCisKIFNFTEVDVCAnMDg6MDA6MmI6MDE6MDI6MDMnOjpt YWNhZGRyOjpjaXRleHQgPSAnMDg6MDA6MmI6MDE6MDI6MDMnIEFTIHQ7CiAgdCAKIC0tLQpkaWZm IC0tZ2l0IGEvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0IGIvY29udHJpYi9j aXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0CmluZGV4IDNlMTJjZDc5M2FkLi5lOWY4NDU0YzY2 MiAxMDA2NDQKLS0tIGEvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0CisrKyBi L2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dF8xLm91dApAQCAtMTAsMTEgKzEwLDEyIEBA IFdIRVJFIG9wYy5vaWQgPj0gMTYzODQgQU5EIE5PVCBhbXZhbGlkYXRlKG9wYy5vaWQpOwogLS0t LS0tLS0rLS0tLS0tLS0tCiAoMCByb3dzKQogCi1TRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFT IGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCi1FUlJP UjogIGNhbm5vdCBjYXN0IHR5cGUgY2hhcmFjdGVyIHRvIGNpdGV4dCB3aGVuIERFRkFVTFQgZXhw cmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgotTElO RSAxOiBTRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0kuLi4KLSAgICAgICAgICAgICAgICAgICAgXgotSElOVDogIFNhZmUgdHlwZSBjYXN0 IGZvciB1c2VyLWRlZmluZWQgdHlwZXMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkLgorU0VMRUNUIENB U1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOworIGNpdGV4dCAKKy0tLS0tLS0tCisgYWJjCisoMSByb3cpCisKIC0tIFRlc3QgdGhlIG9w ZXJhdG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25zCiAtLSBUZXN0ID0gYW5kIDw+LgogU0VMRUNU ICdhJzo6Y2l0ZXh0ID0gJ2EnOjpjaXRleHQgQVMgdDsKQEAgLTUyMyw2ICs1MjQsMTIgQEAgU0VM RUNUIHRydWU6OmNpdGV4dCA9ICd0cnVlJyBBUyB0OwogIHQKICgxIHJvdykKIAorU0VMRUNUIENB U1QodHJ1ZSBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGNp dGV4dCAKKy0tLS0tLS0tCisgdHJ1ZQorKDEgcm93KQorCiBTRUxFQ1QgJ3RydWUnOjpjaXRleHQ6 OmJvb2xlYW4gPSB0cnVlIEFTIHQ7CiAgdCAKIC0tLQpAQCAtNzg3LDYgKzc5NCwxMyBAQCBTRUxF Q1QgJzE5Mi4xNjguMTAwLjEyOCc6OmNpdGV4dDo6aW5ldCA9ICcxOTIuMTY4LjEwMC4xMjgnOjpp bmV0IEFTIHQ7CiAgdAogKDEgcm93KQogCitTRUxFQ1QgQ0FTVChpbmV0ICcxOTIuMTY4LjEwMC4x MjgnIEFTIGNpdGV4dAorICAgICAgICAgICBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgPSAnMTkyLjE2OC4xMDAuMTI4LzMyJyBBUyB0OworIHQgCistLS0KKyB0CisoMSByb3cpCisK IFNFTEVDVCAnMDg6MDA6MmI6MDE6MDI6MDMnOjptYWNhZGRyOjpjaXRleHQgPSAnMDg6MDA6MmI6 MDE6MDI6MDMnIEFTIHQ7CiAgdCAKIC0tLQpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaXRleHQvc3Fs L2NpdGV4dC5zcWwgYi9jb250cmliL2NpdGV4dC9zcWwvY2l0ZXh0LnNxbAppbmRleCBjODIwYjBi ZDRkOS4uNjJmODNkNzQ5ZjkgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQu c3FsCisrKyBiL2NvbnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQuc3FsCkBAIC05LDcgKzksNyBAQCBT RUxFQ1QgYW1uYW1lLCBvcGNuYW1lCiBGUk9NIHBnX29wY2xhc3Mgb3BjIExFRlQgSk9JTiBwZ19h bSBhbSBPTiBhbS5vaWQgPSBvcGNtZXRob2QKIFdIRVJFIG9wYy5vaWQgPj0gMTYzODQgQU5EIE5P VCBhbXZhbGlkYXRlKG9wYy5vaWQpOwogCi1TRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNp dGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitTRUxFQ1Qg Q0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CiAKIC0tIFRlc3QgdGhlIG9wZXJhdG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25zCiAK QEAgLTE2NSw2ICsxNjUsNyBAQCBTRUxFQ1QgbmFtZSBGUk9NIHNydCBXSEVSRSBuYW1lIFNJTUlM QVIgVE8gJyVBLionOwogCiAtLSBFeHBsaWNpdCBjYXN0cy4KIFNFTEVDVCB0cnVlOjpjaXRleHQg PSAndHJ1ZScgQVMgdDsKK1NFTEVDVCBDQVNUKHRydWUgQVMgY2l0ZXh0IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsKIFNFTEVDVCAndHJ1ZSc6OmNpdGV4dDo6Ym9vbGVhbiA9IHRy dWUgQVMgdDsKIAogU0VMRUNUIDQ6OmNpdGV4dCA9ICc0JyBBUyB0OwpAQCAtMjI0LDYgKzIyNSw4 IEBAIFNFTEVDVCAnMTkyLjE2OC4xMDAuMTI4LzI1Jzo6Y2l0ZXh0OjpjaWRyID0gJzE5Mi4xNjgu MTAwLjEyOC8yNSc6OmNpZHIgQVMgdDsKIAogU0VMRUNUICcxOTIuMTY4LjEwMC4xMjgnOjppbmV0 OjpjaXRleHQgPSAnMTkyLjE2OC4xMDAuMTI4LzMyJyBBUyB0OwogU0VMRUNUICcxOTIuMTY4LjEw MC4xMjgnOjpjaXRleHQ6OmluZXQgPSAnMTkyLjE2OC4xMDAuMTI4Jzo6aW5ldCBBUyB0OworU0VM RUNUIENBU1QoaW5ldCAnMTkyLjE2OC4xMDAuMTI4JyBBUyBjaXRleHQKKyAgICAgICAgICAgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpID0gJzE5Mi4xNjguMTAwLjEyOC8zMicgQVMg dDsKIAogU0VMRUNUICcwODowMDoyYjowMTowMjowMyc6Om1hY2FkZHI6OmNpdGV4dCA9ICcwODow MDoyYjowMTowMjowMycgQVMgdDsKIFNFTEVDVCAnMDg6MDA6MmI6MDE6MDI6MDMnOjpjaXRleHQ6 Om1hY2FkZHIgPSAnMDg6MDA6MmI6MDE6MDI6MDMnOjptYWNhZGRyIEFTIHQ7CmRpZmYgLS1naXQg YS9jb250cmliL2hzdG9yZS9leHBlY3RlZC9oc3RvcmUub3V0IGIvY29udHJpYi9oc3RvcmUvZXhw ZWN0ZWQvaHN0b3JlLm91dAppbmRleCBhY2VhODgwNmJhNC4uMTkwODRmMzM3MWQgMTAwNjQ0Ci0t LSBhL2NvbnRyaWIvaHN0b3JlL2V4cGVjdGVkL2hzdG9yZS5vdXQKKysrIGIvY29udHJpYi9oc3Rv cmUvZXhwZWN0ZWQvaHN0b3JlLm91dApAQCAtODQwLDEyICs4NDAsMjggQEAgc2VsZWN0ICd7fSc6 OnRleHRbXTo6aHN0b3JlOwogCiBzZWxlY3QgQVJSQVlbJ2EnLCdnJywnYicsJ2gnLCdhc2QnXTo6 aHN0b3JlOwogRVJST1I6ICBhcnJheSBtdXN0IGhhdmUgZXZlbiBudW1iZXIgb2YgZWxlbWVudHMK K3NlbGVjdCBDQVNUKEFSUkFZWydhJywnZycsJ2InLCdoJywnYXNkJ10gQVMgaHN0b3JlCisgICAg ICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQor IAorKDEgcm93KQorCiBzZWxlY3QgQVJSQVlbJ2EnLCdnJywnYicsJ2gnLCdhc2QnLCdpJ106Omhz dG9yZTsKICAgICAgICAgICAgICBhcnJheSAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQogICJhIj0+ImciLCAiYiI9PiJoIiwgImFzZCI9PiJpIgogKDEgcm93 KQogCitzZWxlY3QgQVJSQVlbJ2EnLCdnJywnYicsJ2gnLG51bGwsJ2knXTo6aHN0b3JlOworRVJS T1I6ICBudWxsIHZhbHVlIG5vdCBhbGxvd2VkIGZvciBoc3RvcmUga2V5CitzZWxlY3QgQ0FTVChB UlJBWVsnYScsJ2cnLCdiJywnaCcsbnVsbCwnaSddIEFTIGhzdG9yZQorICAgICAgIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBhcnJheSAKKy0tLS0tLS0KKyAKKygxIHJvdykK Kwogc2VsZWN0IEFSUkFZW1snYScsJ2cnXSxbJ2InLCdoJ10sWydhc2QnLCdpJ11dOjpoc3RvcmU7 CiAgICAgICAgICAgICAgYXJyYXkgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KQEAgLTg1NCw2ICs4NzAsMTMgQEAgc2VsZWN0IEFSUkFZW1snYScsJ2cnXSxb J2InLCdoJ10sWydhc2QnLCdpJ11dOjpoc3RvcmU7CiAKIHNlbGVjdCBBUlJBWVtbJ2EnLCdnJywn YiddLFsnaCcsJ2FzZCcsJ2knXV06OmhzdG9yZTsKIEVSUk9SOiAgYXJyYXkgbXVzdCBoYXZlIHR3 byBjb2x1bW5zCitzZWxlY3QgQ0FTVChBUlJBWVtbJ2EnLCdnJywnYiddLFsnaCcsJ2FzZCcsJ2kn XV0gQVMgaHN0b3JlCisgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwor IGFycmF5IAorLS0tLS0tLQorIAorKDEgcm93KQorCiBzZWxlY3QgQVJSQVlbW1snYScsJ2cnXSxb J2InLCdoJ10sWydhc2QnLCdpJ11dXTo6aHN0b3JlOwogRVJST1I6ICB3cm9uZyBudW1iZXIgb2Yg YXJyYXkgc3Vic2NyaXB0cwogc2VsZWN0IGhzdG9yZSgne30nOjp0ZXh0W10pOwpAQCAtMTU1Miw2 ICsxNTc1LDEzIEBAIHNlbGVjdCBjYXN0KCBoc3RvcmUgICciYSBrZXkiID0+MSwgYiA9PiB0LCBj ID0+IG51bGwsIGQ9PiAxMjM0NSwgZSA9PiAwMTIzNDUsIGY9CiAgeyJiIjogInQiLCAiYyI6IG51 bGwsICJkIjogIjEyMzQ1IiwgImUiOiAiMDEyMzQ1IiwgImYiOiAiMS4yMzQiLCAiZyI6ICIyLjM0 NWUrNCIsICJhIGtleSI6ICIxIn0KICgxIHJvdykKIAorc2VsZWN0IGNhc3QoIGhzdG9yZSAgJyJh IGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+ IDEuMjM0LCBnPT4gMi4zNDVlKzQnIGFzIGpzb24KKyAgICAgICAgICAgIGRlZmF1bHQgbnVsbCBv biBjb252ZXJzaW9uIGVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBqc29uICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7ImIiOiAi dCIsICJjIjogbnVsbCwgImQiOiAiMTIzNDUiLCAiZSI6ICIwMTIzNDUiLCAiZiI6ICIxLjIzNCIs ICJnIjogIjIuMzQ1ZSs0IiwgImEga2V5IjogIjEifQorKDEgcm93KQorCiBzZWxlY3QgaHN0b3Jl X3RvX2pzb25fbG9vc2UoJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1 LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQsIGg9PiAiMjAxNi0wMS0wMSIn KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHN0b3JlX3Rv X2pzb25fbG9vc2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAg LTE1NzAsNiArMTYwMCwxMyBAQCBzZWxlY3QgY2FzdCggaHN0b3JlICAnImEga2V5IiA9PjEsIGIg PT4gdCwgYyA9PiBudWxsLCBkPT4gMTIzNDUsIGUgPT4gMDEyMzQ1LCBmPQogIHsiYiI6ICJ0Iiwg ImMiOiBudWxsLCAiZCI6ICIxMjM0NSIsICJlIjogIjAxMjM0NSIsICJmIjogIjEuMjM0IiwgImci OiAiMi4zNDVlKzQiLCAiYSBrZXkiOiAiMSJ9CiAoMSByb3cpCiAKK3NlbGVjdCBjYXN0KCBoc3Rv cmUgICciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGwsIGQ9PiAxMjM0NSwgZSA9PiAwMTIz NDUsIGY9PiAxLjIzNCwgZz0+IDIuMzQ1ZSs0JyBhcyBqc29uYgorICAgICAgICAgICAgZGVmYXVs dCBudWxsIG9uIGNvbnZlcnNpb24gZXJyb3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGpzb25iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQor IHsiYiI6ICJ0IiwgImMiOiBudWxsLCAiZCI6ICIxMjM0NSIsICJlIjogIjAxMjM0NSIsICJmIjog IjEuMjM0IiwgImciOiAiMi4zNDVlKzQiLCAiYSBrZXkiOiAiMSJ9CisoMSByb3cpCisKIHNlbGVj dCBoc3RvcmVfdG9fanNvbmJfbG9vc2UoJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwg ZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQsIGg9PiAiMjAx Ni0wMS0wMSInKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhz dG9yZV90b19qc29uYl9sb29zZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K ZGlmZiAtLWdpdCBhL2NvbnRyaWIvaHN0b3JlL2hzdG9yZS0tMS4yLS0xLjMuc3FsIGIvY29udHJp Yi9oc3RvcmUvaHN0b3JlLS0xLjItLTEuMy5zcWwKaW5kZXggMGE3MDU2MDE1YjcuLmNiYjFhMTM5 ZTY5IDEwMDY0NAotLS0gYS9jb250cmliL2hzdG9yZS9oc3RvcmUtLTEuMi0tMS4zLnNxbAorKysg Yi9jb250cmliL2hzdG9yZS9oc3RvcmUtLTEuMi0tMS4zLnNxbApAQCAtOSw3ICs5LDcgQEAgQVMg J01PRFVMRV9QQVRITkFNRScsICdoc3RvcmVfdG9fanNvbmInCiBMQU5HVUFHRSBDIElNTVVUQUJM RSBTVFJJQ1Q7CiAKIENSRUFURSBDQVNUIChoc3RvcmUgQVMganNvbmIpCi0gIFdJVEggRlVOQ1RJ T04gaHN0b3JlX3RvX2pzb25iKGhzdG9yZSk7CisgIFdJVEggU0FGRSBGVU5DVElPTiBoc3RvcmVf dG9fanNvbmIoaHN0b3JlKTsKIAogQ1JFQVRFIEZVTkNUSU9OIGhzdG9yZV90b19qc29uYl9sb29z ZShoc3RvcmUpCiBSRVRVUk5TIGpzb25iCmRpZmYgLS1naXQgYS9jb250cmliL2hzdG9yZS9oc3Rv cmUtLTEuNC5zcWwgYi9jb250cmliL2hzdG9yZS9oc3RvcmUtLTEuNC5zcWwKaW5kZXggNDI5NGQx NGNlYjUuLjQ1MWMyZWQ4MTg3IDEwMDY0NAotLS0gYS9jb250cmliL2hzdG9yZS9oc3RvcmUtLTEu NC5zcWwKKysrIGIvY29udHJpYi9oc3RvcmUvaHN0b3JlLS0xLjQuc3FsCkBAIC0yMzIsNyArMjMy LDcgQEAgQVMgJ01PRFVMRV9QQVRITkFNRScsICdoc3RvcmVfZnJvbV9hcnJheScKIExBTkdVQUdF IEMgSU1NVVRBQkxFIFNUUklDVCBQQVJBTExFTCBTQUZFOwogCiBDUkVBVEUgQ0FTVCAodGV4dFtd IEFTIGhzdG9yZSkKLSAgV0lUSCBGVU5DVElPTiBoc3RvcmUodGV4dFtdKTsKKyAgV0lUSCBTQUZF IEZVTkNUSU9OIGhzdG9yZSh0ZXh0W10pOwogCiBDUkVBVEUgRlVOQ1RJT04gaHN0b3JlX3RvX2pz b24oaHN0b3JlKQogUkVUVVJOUyBqc29uCkBAIC0yNDAsNyArMjQwLDcgQEAgQVMgJ01PRFVMRV9Q QVRITkFNRScsICdoc3RvcmVfdG9fanNvbicKIExBTkdVQUdFIEMgSU1NVVRBQkxFIFNUUklDVCBQ QVJBTExFTCBTQUZFOwogCiBDUkVBVEUgQ0FTVCAoaHN0b3JlIEFTIGpzb24pCi0gIFdJVEggRlVO Q1RJT04gaHN0b3JlX3RvX2pzb24oaHN0b3JlKTsKKyAgV0lUSCBTQUZFIEZVTkNUSU9OIGhzdG9y ZV90b19qc29uKGhzdG9yZSk7CiAKIENSRUFURSBGVU5DVElPTiBoc3RvcmVfdG9fanNvbl9sb29z ZShoc3RvcmUpCiBSRVRVUk5TIGpzb24KQEAgLTI1Myw3ICsyNTMsNyBAQCBBUyAnTU9EVUxFX1BB VEhOQU1FJywgJ2hzdG9yZV90b19qc29uYicKIExBTkdVQUdFIEMgSU1NVVRBQkxFIFNUUklDVCBQ QVJBTExFTCBTQUZFOwogCiBDUkVBVEUgQ0FTVCAoaHN0b3JlIEFTIGpzb25iKQotICBXSVRIIEZV TkNUSU9OIGhzdG9yZV90b19qc29uYihoc3RvcmUpOworICBXSVRIIFNBRkUgRlVOQ1RJT04gaHN0 b3JlX3RvX2pzb25iKGhzdG9yZSk7CiAKIENSRUFURSBGVU5DVElPTiBoc3RvcmVfdG9fanNvbmJf bG9vc2UoaHN0b3JlKQogUkVUVVJOUyBqc29uYgpkaWZmIC0tZ2l0IGEvY29udHJpYi9oc3RvcmUv aHN0b3JlX2lvLmMgYi9jb250cmliL2hzdG9yZS9oc3RvcmVfaW8uYwppbmRleCA5YjcyZWZiODY3 NC4uNTlhNDViNTJhOWUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9pby5jCisr KyBiL2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9pby5jCkBAIC03MzksMjAgKzczOSwyMCBAQCBoc3Rv cmVfZnJvbV9hcnJheShQR19GVU5DVElPTl9BUkdTKQogCiAJCWNhc2UgMToKIAkJCWlmICgoQVJS X0RJTVMoaW5fYXJyYXkpWzBdKSAlIDIpCi0JCQkJZXJlcG9ydChFUlJPUiwKKwkJCQllcmV0dXJu KGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9BUlJB WV9TVUJTQ1JJUFRfRVJST1IpLAogCQkJCQkJIGVycm1zZygiYXJyYXkgbXVzdCBoYXZlIGV2ZW4g bnVtYmVyIG9mIGVsZW1lbnRzIikpKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgMjoKIAkJCWlmICgo QVJSX0RJTVMoaW5fYXJyYXkpWzFdKSAhPSAyKQotCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJl dHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVf QVJSQVlfU1VCU0NSSVBUX0VSUk9SKSwKIAkJCQkJCSBlcnJtc2coImFycmF5IG11c3QgaGF2ZSB0 d28gY29sdW1ucyIpKSk7CiAJCQlicmVhazsKIAogCQlkZWZhdWx0OgotCQkJZXJlcG9ydChFUlJP UiwKKwkJCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCQkoZXJyY29k ZShFUlJDT0RFX0FSUkFZX1NVQlNDUklQVF9FUlJPUiksCiAJCQkJCSBlcnJtc2coIndyb25nIG51 bWJlciBvZiBhcnJheSBzdWJzY3JpcHRzIikpKTsKIAl9CkBAIC03NzMsNyArNzczLDcgQEAgaHN0 b3JlX2Zyb21fYXJyYXkoUEdfRlVOQ1RJT05fQVJHUykKIAlmb3IgKGkgPSAwOyBpIDwgY291bnQ7 ICsraSkKIAl7CiAJCWlmIChpbl9udWxsc1tpICogMl0pCi0JCQllcmVwb3J0KEVSUk9SLAorCQkJ ZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNvZGUoRVJSQ09E RV9OVUxMX1ZBTFVFX05PVF9BTExPV0VEKSwKIAkJCQkJIGVycm1zZygibnVsbCB2YWx1ZSBub3Qg YWxsb3dlZCBmb3IgaHN0b3JlIGtleSIpKSk7CiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvaHN0b3Jl L3NxbC9oc3RvcmUuc3FsIGIvY29udHJpYi9oc3RvcmUvc3FsL2hzdG9yZS5zcWwKaW5kZXggOGFl OTVlOGE1MTAuLmE4MDNlMTFlYzg0IDEwMDY0NAotLS0gYS9jb250cmliL2hzdG9yZS9zcWwvaHN0 b3JlLnNxbAorKysgYi9jb250cmliL2hzdG9yZS9zcWwvaHN0b3JlLnNxbApAQCAtMTkwLDkgKzE5 MCwxNiBAQCBzZWxlY3QgcGdfY29sdW1uX3NpemUoc2xpY2UoaHN0b3JlICdhYT0+MSwgYj0+Miwg Yz0+MycsIEFSUkFZWydjJywnYicsJ2FhJ10pKQogLS0gYXJyYXkgaW5wdXQKIHNlbGVjdCAne30n Ojp0ZXh0W106OmhzdG9yZTsKIHNlbGVjdCBBUlJBWVsnYScsJ2cnLCdiJywnaCcsJ2FzZCddOjpo c3RvcmU7CitzZWxlY3QgQ0FTVChBUlJBWVsnYScsJ2cnLCdiJywnaCcsJ2FzZCddIEFTIGhzdG9y ZQorICAgICAgIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKIHNlbGVjdCBBUlJB WVsnYScsJ2cnLCdiJywnaCcsJ2FzZCcsJ2knXTo6aHN0b3JlOworc2VsZWN0IEFSUkFZWydhJywn ZycsJ2InLCdoJyxudWxsLCdpJ106OmhzdG9yZTsKK3NlbGVjdCBDQVNUKEFSUkFZWydhJywnZycs J2InLCdoJyxudWxsLCdpJ10gQVMgaHN0b3JlCisgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOwogc2VsZWN0IEFSUkFZW1snYScsJ2cnXSxbJ2InLCdoJ10sWydhc2QnLCdp J11dOjpoc3RvcmU7CiBzZWxlY3QgQVJSQVlbWydhJywnZycsJ2InXSxbJ2gnLCdhc2QnLCdpJ11d Ojpoc3RvcmU7CitzZWxlY3QgQ0FTVChBUlJBWVtbJ2EnLCdnJywnYiddLFsnaCcsJ2FzZCcsJ2kn XV0gQVMgaHN0b3JlCisgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwog c2VsZWN0IEFSUkFZW1tbJ2EnLCdnJ10sWydiJywnaCddLFsnYXNkJywnaSddXV06OmhzdG9yZTsK IHNlbGVjdCBoc3RvcmUoJ3t9Jzo6dGV4dFtdKTsKIHNlbGVjdCBoc3RvcmUoQVJSQVlbJ2EnLCdn JywnYicsJ2gnLCdhc2QnXSk7CkBAIC0zNjEsMTAgKzM2OCwxNCBAQCBzZWxlY3QgY291bnQoKikg ZnJvbSB0ZXN0aHN0b3JlIHdoZXJlIGggPSAncG9zPT45OCwgbGluZT0+MzcxLCBub2RlPT5DQkEs IGluZGV4ZQogLS0ganNvbiBhbmQganNvbmIKIHNlbGVjdCBoc3RvcmVfdG9fanNvbignImEga2V5 IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBkPT4gMTIzNDUsIGUgPT4gMDEyMzQ1LCBmPT4gMS4y MzQsIGc9PiAyLjM0NWUrNCcpOwogc2VsZWN0IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4xLCBi ID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4g Mi4zNDVlKzQnIGFzIGpzb24pOworc2VsZWN0IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4xLCBi ID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4g Mi4zNDVlKzQnIGFzIGpzb24KKyAgICAgICAgICAgIGRlZmF1bHQgbnVsbCBvbiBjb252ZXJzaW9u IGVycm9yKTsKIHNlbGVjdCBoc3RvcmVfdG9fanNvbl9sb29zZSgnImEga2V5IiA9PjEsIGIgPT4g dCwgYyA9PiBudWxsLCBkPT4gMTIzNDUsIGUgPT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0 NWUrNCwgaD0+ICIyMDE2LTAxLTAxIicpOwogCiBzZWxlY3QgaHN0b3JlX3RvX2pzb25iKCciYSBr ZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGwsIGQ9PiAxMjM0NSwgZSA9PiAwMTIzNDUsIGY9PiAx LjIzNCwgZz0+IDIuMzQ1ZSs0Jyk7CiBzZWxlY3QgY2FzdCggaHN0b3JlICAnImEga2V5IiA9PjEs IGIgPT4gdCwgYyA9PiBudWxsLCBkPT4gMTIzNDUsIGUgPT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9 PiAyLjM0NWUrNCcgYXMganNvbmIpOworc2VsZWN0IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4x LCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBn PT4gMi4zNDVlKzQnIGFzIGpzb25iCisgICAgICAgICAgICBkZWZhdWx0IG51bGwgb24gY29udmVy c2lvbiBlcnJvcik7CiBzZWxlY3QgaHN0b3JlX3RvX2pzb25iX2xvb3NlKCciYSBrZXkiID0+MSwg YiA9PiB0LCBjID0+IG51bGwsIGQ9PiAxMjM0NSwgZSA9PiAwMTIzNDUsIGY9PiAxLjIzNCwgZz0+ IDIuMzQ1ZSs0LCBoPT4gIjIwMTYtMDEtMDEiJyk7CiAKIGNyZWF0ZSB0YWJsZSB0ZXN0X2pzb25f YWdnIChmMSB0ZXh0LCBmMiBoc3RvcmUpOwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFs b2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCA2MWZmZTgwNGVlOC4u ZmVmMGU3MmZlNWYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC0xODc0LDYgKzE4NzQsMjEgQEAgU0NSQU0t U0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxl Pjo8cmVwbGFjZWFibGU+JmwKICAgICAgICA8bGl0ZXJhbD5iPC9saXRlcmFsPiBtZWFucyB0aGF0 IHRoZSB0eXBlcyBhcmUgYmluYXJ5LWNvZXJjaWJsZSwgdGh1cyBubyBjb252ZXJzaW9uIGlzIHJl cXVpcmVkLgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jYXN0ZXJyb3JzYWZlPC9zdHJ1 Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+ CisgICAgICAgIFRoaXMgZmxhZyBpbmRpY2F0ZXMgd2hldGhlciB0aGUgPHN0cnVjdGZpZWxkPmNh c3RmdW5jPC9zdHJ1Y3RmaWVsZD4gZnVuY3Rpb24KKyAgICAgICAgaXMgZXJyb3Itc2FmZS4gSXQg aXMgbWVhbmluZ2Z1bCBvbmx5IHdoZW4gPHN0cnVjdGZpZWxkPmNhc3RmdW5jPC9zdHJ1Y3RmaWVs ZD4KKyAgICAgICAgaXMgbm90IHplcm8uIFVzZXItZGVmaW5lZCBjYXN0cyBjYW4gc2V0IGl0Cisg ICAgICAgIHRvIDxsaXRlcmFsPnRydWU8L2xpdGVyYWw+IHZpYSA8bGluayBsaW5rZW5kPSJzcWwt Y3JlYXRlY2FzdCI+Q1JFQVRFIENBU1Q8L2xpbms+LgorICAgICAgICBGb3IgZXJyb3Itc2FmZSB0 eXBlIGNhc3QsIHNlZSA8eHJlZiBsaW5rZW5kPSJzcWwtc3ludGF4LXR5cGUtY2FzdHMtc2FmZSIv Pi4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgIDwv dGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX2Nhc3Quc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Nhc3Quc2dt bAppbmRleCBiYWQ3NWJjMWRjZS4uODg4ZDcxNDJlNDIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvY3JlYXRlX2Nhc3Quc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jYXN0 LnNnbWwKQEAgLTIyLDcgKzIyLDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5 bm9wc2lzZGl2PgogPHN5bm9wc2lzPgogQ1JFQVRFIENBU1QgKDxyZXBsYWNlYWJsZT5zb3VyY2Vf dHlwZTwvcmVwbGFjZWFibGU+IEFTIDxyZXBsYWNlYWJsZT50YXJnZXRfdHlwZTwvcmVwbGFjZWFi bGU+KQotICAgIFdJVEggRlVOQ1RJT04gPHJlcGxhY2VhYmxlPmZ1bmN0aW9uX25hbWU8L3JlcGxh Y2VhYmxlPiBbICg8cmVwbGFjZWFibGU+YXJndW1lbnRfdHlwZTwvcmVwbGFjZWFibGU+IFssIC4u Ll0pIF0KKyAgICBXSVRIIFtTQUZFXSBGVU5DVElPTiA8cmVwbGFjZWFibGU+ZnVuY3Rpb25fbmFt ZTwvcmVwbGFjZWFibGU+IFsgKDxyZXBsYWNlYWJsZT5hcmd1bWVudF90eXBlPC9yZXBsYWNlYWJs ZT4gWywgLi4uXSkgXQogICAgIFsgQVMgQVNTSUdOTUVOVCB8IEFTIElNUExJQ0lUIF0KIAogQ1JF QVRFIENBU1QgKDxyZXBsYWNlYWJsZT5zb3VyY2VfdHlwZTwvcmVwbGFjZWFibGU+IEFTIDxyZXBs YWNlYWJsZT50YXJnZXRfdHlwZTwvcmVwbGFjZWFibGU+KQpAQCAtMTk0LDYgKzE5NCwxOCBAQCBT RUxFQ1QgQ0FTVCAoIDIgQVMgbnVtZXJpYyApICsgNC4wOwogICAgICA8L2xpc3RpdGVtPgogICAg IDwvdmFybGlzdGVudHJ5PgogCisgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVy YWw+U0FGRTwvbGl0ZXJhbD48L3Rlcm0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgor ICAgICAgIFRoZSBmdW5jdGlvbiB1c2VkIHRvIHBlcmZvcm0gdGhlIGNhc3Qgc3VwcG9ydCBzb2Z0 LWVycm9yIGV2YWx1YXRpb24sCisgICAgICAgQ3VycmVudGx5LCBvbmx5IGZ1bmN0aW9ucyB3cml0 dGVuIGluIEMgb3IgdGhlIGludGVybmFsIGxhbmd1YWdlIGFyZSBzdXBwb3J0ZWQuCisgICAgICAg QW4gYWx0ZXJuYXRlIGV4cHJlc3Npb24gY2FuIGJlIHNwZWNpZmllZCB0byBiZSBldmFsdWF0ZWQg aWYgdGhlIGNhc3QKKyAgICAgICBlcnJvciBvY2N1cnMuICBTZWUgPGxpbmsgbGlua2VuZD0ic3Fs LXN5bnRheC10eXBlLWNhc3RzLXNhZmUiPnNhZmUgdHlwZSBjYXN0PC9saW5rPi4KKyAgICAgIDwv cGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgIDx2YXJs aXN0ZW50cnk+CiAgICAgIDx0ZXJtPjxsaXRlcmFsPjxyZXBsYWNlYWJsZT5mdW5jdGlvbl9uYW1l PC9yZXBsYWNlYWJsZT5bKDxyZXBsYWNlYWJsZT5hcmd1bWVudF90eXBlPC9yZXBsYWNlYWJsZT4g WywgLi4uXSldPC9saXRlcmFsPjwvdGVybT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3N5 bnRheC5zZ21sIGIvZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sCmluZGV4IGFhMGZjMWVmODFjLi42 ZWRjYjk1NjllOCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9zeW50YXguc2dtbApAQCAtMjE0Miw5ICsyMTQyLDggQEAgQ0FTVCAoIDxyZXBs YWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxlPnR5cGU8L3Jl cGxhY2VhYmxlPgogICAgIElmIHRoZSB0eXBlIGNhc3QgZmFpbHMsIGFuIGVycm9yIGlzIG5vdCBy YWlzZWQuICBJbnN0ZWFkLCBldmFsdWF0aW9uIGZhbGxzCiAgICAgYmFjayB0byB0aGUgZGVmYXVs dCA8cmVwbGFjZWFibGU+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IHNwZWNpZmllZCBpbiB0aGUK ICAgICA8bGl0ZXJhbD5PTiBDT05WRVJTSU9OIEVSUk9SPC9saXRlcmFsPiBjbGF1c2UuCi0gICAg QXQgcHJlc2VudCwgdGhpcyBvbmx5IHN1cHBvcnQgYnVpbHQtaW4gdHlwZSBjYXN0cywgc2VlIDx4 cmVmIGxpbmtlbmQ9ImNhdGFsb2ctcGctY2FzdCIvPi4KICAgICBVc2VyLWRlZmluZWQgdHlwZSBj YXN0cyBjcmVhdGVkIHdpdGggPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZWNhc3QiPkNSRUFURSBD QVNUPC9saW5rPgotICAgIGFyZSBub3Qgc3VwcG9ydGVkLgorICAgIGFyZSBzdXBwb3J0ZWQgdG9v LgogICA8L3BhcmE+CiAKICAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvcGdfY2FzdC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jYXN0LmMKaW5kZXggNTExOWMy YWNkYTIuLjllZmY5NDFlYWJiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nh c3QuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nhc3QuYwpAQCAtNDgsNyArNDgsOCBA QAogT2JqZWN0QWRkcmVzcwogQ2FzdENyZWF0ZShPaWQgc291cmNldHlwZWlkLCBPaWQgdGFyZ2V0 dHlwZWlkLAogCQkgICBPaWQgZnVuY2lkLCBPaWQgaW5jYXN0aWQsIE9pZCBvdXRjYXN0aWQsCi0J CSAgIGNoYXIgY2FzdGNvbnRleHQsIGNoYXIgY2FzdG1ldGhvZCwgRGVwZW5kZW5jeVR5cGUgYmVo YXZpb3IpCisJCSAgIGNoYXIgY2FzdGNvbnRleHQsIGNoYXIgY2FzdG1ldGhvZCwgYm9vbCBjYXN0 ZXJyb3JzYWZlLAorCQkgICBEZXBlbmRlbmN5VHlwZSBiZWhhdmlvcikKIHsKIAlSZWxhdGlvbgly ZWxhdGlvbjsKIAlIZWFwVHVwbGUJdHVwbGU7CkBAIC04NCw2ICs4NSw3IEBAIENhc3RDcmVhdGUo T2lkIHNvdXJjZXR5cGVpZCwgT2lkIHRhcmdldHR5cGVpZCwKIAl2YWx1ZXNbQW51bV9wZ19jYXN0 X2Nhc3RmdW5jIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGZ1bmNpZCk7CiAJdmFsdWVzW0FudW1f cGdfY2FzdF9jYXN0Y29udGV4dCAtIDFdID0gQ2hhckdldERhdHVtKGNhc3Rjb250ZXh0KTsKIAl2 YWx1ZXNbQW51bV9wZ19jYXN0X2Nhc3RtZXRob2QgLSAxXSA9IENoYXJHZXREYXR1bShjYXN0bWV0 aG9kKTsKKwl2YWx1ZXNbQW51bV9wZ19jYXN0X2Nhc3RlcnJvcnNhZmUgLSAxXSA9IEJvb2xHZXRE YXR1bShjYXN0ZXJyb3JzYWZlKTsKIAogCXR1cGxlID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9u R2V0RGVzY3IocmVsYXRpb24pLCB2YWx1ZXMsIG51bGxzKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvZnVuY3Rpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9mdW5j dGlvbmNtZHMuYwppbmRleCAzYWZkNzYyZTlkYy4uMTA2ZTlmYzIxOTUgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2Z1bmN0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2Z1bmN0aW9uY21kcy5jCkBAIC0xNjY4LDYgKzE2NjgsMjAgQEAgQ3JlYXRlQ2FzdChDcmVh dGVDYXN0U3RtdCAqc3RtdCkKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9E RUZJTklUSU9OKSwKIAkJCQkJIGVycm1zZygiY2FzdCBmdW5jdGlvbiBtdXN0IG5vdCByZXR1cm4g YSBzZXQiKSkpOwogCisJCWlmIChzdG10LT5zYWZlKQorCQl7CisJCQlpZiAocHJvY3N0cnVjdC0+ cHJvbGFuZyAhPSBJTlRFUk5BTGxhbmd1YWdlSWQgJiYKKwkJCQlwcm9jc3RydWN0LT5wcm9sYW5n ICE9IENsYW5ndWFnZUlkKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcnJjb2RlKEVSUkNP REVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCWVycm1zZygic2FmZSB0eXBlIGNhc3Qg ZnVuY3Rpb25zIGFyZSBvbmx5IHN1cHBvcnRlZCBmb3IgQyBhbmQgaW50ZXJuYWwgbGFuZ3VhZ2Vz IikpOworCisJCQlpZiAoc291cmNldHlwdHlwZSAhPSBUWVBUWVBFX0JBU0UgfHwgdGFyZ2V0dHlw dHlwZSAhPSBUWVBUWVBFX0JBU0UpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCWVycmNvZGUo RVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJZXJybXNnKCJzYWZlIHR5cGUg Y2FzdCBpcyBhbGxvd2VkIGZvciBiYXNlIHR5cGUgb25seSBhcmUgb25seSIpKTsKKwkJfQorCiAJ CVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CiAJfQogCWVsc2UKQEAgLTE3OTYsNyArMTgxMCw3IEBA IENyZWF0ZUNhc3QoQ3JlYXRlQ2FzdFN0bXQgKnN0bXQpCiAJfQogCiAJbXlzZWxmID0gQ2FzdENy ZWF0ZShzb3VyY2V0eXBlaWQsIHRhcmdldHR5cGVpZCwgZnVuY2lkLCBpbmNhc3RpZCwgb3V0Y2Fz dGlkLAotCQkJCQkJY2FzdGNvbnRleHQsIGNhc3RtZXRob2QsIERFUEVOREVOQ1lfTk9STUFMKTsK KwkJCQkJCWNhc3Rjb250ZXh0LCBjYXN0bWV0aG9kLCBzdG10LT5zYWZlLCBERVBFTkRFTkNZX05P Uk1BTCk7CiAJcmV0dXJuIG15c2VsZjsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvdHlwZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMKaW5kZXgg M2RhYjZiYjVhNzkuLmIzNzEzYjg1MTNjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy90eXBlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMKQEAgLTE3 NjUsNiArMTc2NSw3IEBAIERlZmluZVJhbmdlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlUmFu Z2VTdG10ICpzdG10KQogCS8qIENyZWF0ZSBjYXN0IGZyb20gdGhlIHJhbmdlIHR5cGUgdG8gaXRz IG11bHRpcmFuZ2UgdHlwZSAqLwogCUNhc3RDcmVhdGUodHlwb2lkLCBtdWx0aXJhbmdlT2lkLCBj YXN0RnVuY09pZCwgSW52YWxpZE9pZCwgSW52YWxpZE9pZCwKIAkJCSAgIENPRVJDSU9OX0NPREVf RVhQTElDSVQsIENPRVJDSU9OX01FVEhPRF9GVU5DVElPTiwKKwkJCSAgIGZhbHNlLAogCQkJICAg REVQRU5ERU5DWV9JTlRFUk5BTCk7CiAKIAlwZnJlZShtdWx0aXJhbmdlQXJyYXlOYW1lKTsKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIv Z3JhbS55CmluZGV4IDRkNjkyMjc0ZDU1Li41MzFkYTE4ZWQyMSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0z NTgsNyArMzU4LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIg KnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxkZWZlbHQ+CWRy b3Bfb3B0aW9uCiAldHlwZSA8Ym9vbGVhbj4Jb3B0X29yX3JlcGxhY2Ugb3B0X25vCiAJCQkJb3B0 X2dyYW50X2dyYW50X29wdGlvbgotCQkJCW9wdF9ub3dhaXQgb3B0X2lmX2V4aXN0cyBvcHRfd2l0 aF9kYXRhCisJCQkJb3B0X25vd2FpdCBvcHRfc2FmZSBvcHRfaWZfZXhpc3RzIG9wdF93aXRoX2Rh dGEKIAkJCQlvcHRfdHJhbnNhY3Rpb25fY2hhaW4KICV0eXBlIDxsaXN0PglncmFudF9yb2xlX29w dF9saXN0CiAldHlwZSA8ZGVmZWx0PglncmFudF9yb2xlX29wdApAQCAtODEzLDcgKzgxMyw3IEBA IHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0 ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJUkVTRVQgUkVTUEVDVF9QIFJFU1RBUlQgUkVTVFJJ Q1QgUkVUVVJOIFJFVFVSTklORyBSRVRVUk5TIFJFVk9LRSBSSUdIVCBST0xFIFJPTExCQUNLIFJP TExVUAogCVJPVVRJTkUgUk9VVElORVMgUk9XIFJPV1MgUlVMRQogCi0JU0FWRVBPSU5UIFNDQUxB UiBTQ0hFTUEgU0NIRU1BUyBTQ1JPTEwgU0VBUkNIIFNFQ09ORF9QIFNFQ1VSSVRZIFNFTEVDVAor CVNBRkUgU0FWRVBPSU5UIFNDQUxBUiBTQ0hFTUEgU0NIRU1BUyBTQ1JPTEwgU0VBUkNIIFNFQ09O RF9QIFNFQ1VSSVRZIFNFTEVDVAogCVNFUVVFTkNFIFNFUVVFTkNFUwogCVNFUklBTElaQUJMRSBT RVJWRVIgU0VTU0lPTiBTRVNTSU9OX1VTRVIgU0VUIFNFVFMgU0VUT0YgU0hBUkUgU0hPVwogCVNJ TUlMQVIgU0lNUExFIFNLSVAgU01BTExJTlQgU05BUFNIT1QgU09NRSBTUExJVCBTT1VSQ0UgU1FM X1AgU1RBQkxFIFNUQU5EQUxPTkVfUApAQCAtOTQwMywxNCArOTQwMywxNSBAQCBkb3N0bXRfb3B0 X2l0ZW06CiAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIENyZWF0ZUNhc3RTdG10OiBDUkVBVEUg Q0FTVCAnKCcgVHlwZW5hbWUgQVMgVHlwZW5hbWUgJyknCi0JCQkJCVdJVEggRlVOQ1RJT04gZnVu Y3Rpb25fd2l0aF9hcmd0eXBlcyBjYXN0X2NvbnRleHQKKwkJCQkJV0lUSCBvcHRfc2FmZSBGVU5D VElPTiBmdW5jdGlvbl93aXRoX2FyZ3R5cGVzIGNhc3RfY29udGV4dAogCQkJCXsKIAkJCQkJQ3Jl YXRlQ2FzdFN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVDYXN0U3RtdCk7CiAKIAkJCQkJbi0+c291 cmNldHlwZSA9ICQ0OwogCQkJCQluLT50YXJnZXR0eXBlID0gJDY7Ci0JCQkJCW4tPmZ1bmMgPSAk MTA7Ci0JCQkJCW4tPmNvbnRleHQgPSAoQ29lcmNpb25Db250ZXh0KSAkMTE7CisJCQkJCW4tPnNh ZmUgPSAkOTsKKwkJCQkJbi0+ZnVuYyA9ICQxMTsKKwkJCQkJbi0+Y29udGV4dCA9IChDb2VyY2lv bkNvbnRleHQpICQxMjsKIAkJCQkJbi0+aW5vdXQgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAq KSBuOwogCQkJCX0KQEAgLTk0MjEsNiArOTQyMiw3IEBAIENyZWF0ZUNhc3RTdG10OiBDUkVBVEUg Q0FTVCAnKCcgVHlwZW5hbWUgQVMgVHlwZW5hbWUgJyknCiAKIAkJCQkJbi0+c291cmNldHlwZSA9 ICQ0OwogCQkJCQluLT50YXJnZXR0eXBlID0gJDY7CisJCQkJCW4tPnNhZmUgPSBmYWxzZTsKIAkJ CQkJbi0+ZnVuYyA9IE5VTEw7CiAJCQkJCW4tPmNvbnRleHQgPSAoQ29lcmNpb25Db250ZXh0KSAk MTA7CiAJCQkJCW4tPmlub3V0ID0gZmFsc2U7CkBAIC05NDMzLDYgKzk0MzUsNyBAQCBDcmVhdGVD YXN0U3RtdDogQ1JFQVRFIENBU1QgJygnIFR5cGVuYW1lIEFTIFR5cGVuYW1lICcpJwogCiAJCQkJ CW4tPnNvdXJjZXR5cGUgPSAkNDsKIAkJCQkJbi0+dGFyZ2V0dHlwZSA9ICQ2OworCQkJCQluLT5z YWZlID0gZmFsc2U7CiAJCQkJCW4tPmZ1bmMgPSBOVUxMOwogCQkJCQluLT5jb250ZXh0ID0gKENv ZXJjaW9uQ29udGV4dCkgJDEwOwogCQkJCQluLT5pbm91dCA9IHRydWU7CkBAIC05NDQ1LDYgKzk0 NDgsOSBAQCBjYXN0X2NvbnRleHQ6ICBBUyBJTVBMSUNJVF9QCQkJCQl7ICQkID0gQ09FUkNJT05f SU1QTElDSVQ7IH0KIAkJfCAvKkVNUFRZKi8JCQkJCQkJCXsgJCQgPSBDT0VSQ0lPTl9FWFBMSUNJ VDsgfQogCQk7CiAKK29wdF9zYWZlOiBTQUZFCQkJCQkJeyAkJCA9IHRydWU7IH0KKwkJfCAvKkVN UFRZKi8JCQkJCXsgJCQgPSBmYWxzZTsgfQorCQk7CiAKIERyb3BDYXN0U3RtdDogRFJPUCBDQVNU IG9wdF9pZl9leGlzdHMgJygnIFR5cGVuYW1lIEFTIFR5cGVuYW1lICcpJyBvcHRfZHJvcF9iZWhh dmlvcgogCQkJCXsKQEAgLTE4OTU2LDYgKzE4OTYyLDcgQEAgdW5yZXNlcnZlZF9rZXl3b3JkOgog CQkJfCBST1VUSU5FUwogCQkJfCBST1dTCiAJCQl8IFJVTEUKKwkJCXwgU0FGRQogCQkJfCBTQVZF UE9JTlQKIAkJCXwgU0NBTEFSCiAJCQl8IFNDSEVNQQpAQCAtMTk2MDUsNiArMTk2MTIsNyBAQCBi YXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IFJPVwogCQkJfCBST1dTCiAJCQl8IFJVTEUKKwkJCXwg U0FGRQogCQkJfCBTQVZFUE9JTlQKIAkJCXwgU0NBTEFSCiAJCQl8IFNDSEVNQQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9leHByLmMKaW5kZXggYTFlMmZkYzlhMWYuLmI4MzI4MzhjZTE2IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9leHByLmMKQEAgLTg0LDggKzg0LDcgQEAgc3RhdGljIE5vZGUgKnRyYW5zZm9ybVR5cGVD YXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVHlwZUNhc3QgKnRjKTsKIHN0YXRpYyB2b2lkIENvZXJj aW9uRXJyb3JTYWZlQ2hlY2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpjYXN0ZXhwciwKIAkJ CQkJCQkJICAgTm9kZSAqc291cmNlLCBPaWQgaW5wdXRUeXBlLCBPaWQgdGFyZ2V0VHlwZSk7CiBz dGF0aWMgdm9pZCBDb2VyY2lvbkVycm9yU2FmZV9JbnRlcm5hbChPaWQgaW5wdXRUeXBlLCBPaWQg dGFyZ2V0VHlwZSwKLQkJCQkJCQkJCSAgIGJvb2wgKmVycm9yc2FmZV9jb2VyY2lvbiwKLQkJCQkJ CQkJCSAgIGJvb2wgKnVzZXJkZWZpbmVkKTsKKwkJCQkJCQkJCSAgIGJvb2wgKmVycm9yc2FmZV9j b2VyY2lvbik7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtQ29sbGF0ZUNsYXVzZShQYXJzZVN0YXRl ICpwc3RhdGUsIENvbGxhdGVDbGF1c2UgKmMpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUpzb25P YmplY3RDb25zdHJ1Y3RvcihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCUpzb25PYmpl Y3RDb25zdHJ1Y3RvciAqY3Rvcik7CkBAIC0yOTk5LDcgKzI5OTgsNiBAQCBDb2VyY2lvbkVycm9y U2FmZUNoZWNrKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqY2FzdGV4cHIsIE5vZGUgKnNvdXJj ZSwKIAkJCQkJICAgT2lkIGlucHV0VHlwZSwgT2lkIHRhcmdldFR5cGUpCiB7CiAJYm9vbAkJZXJy b3JzYWZlX2NvZXJjaW9uID0gdHJ1ZTsKLQlib29sCQl1c2VyZGVmaW5lZCA9IGZhbHNlOwogCiAJ LyoKIAkgKiBCaW5hcnkgY29lcmNpb24gY2FzdCBpcyBlcnJvci1zYWZlLCBDb2VyY2VWaWFJTyBj YW4gYWxzbyBiZSBldmFsdWF0ZWQKQEAgLTMwMTEsOCArMzAwOSw3IEBAIENvZXJjaW9uRXJyb3JT YWZlQ2hlY2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpjYXN0ZXhwciwgTm9kZSAqc291cmNl LAogCQlyZXR1cm47CiAKIAlDb2VyY2lvbkVycm9yU2FmZV9JbnRlcm5hbChpbnB1dFR5cGUsIHRh cmdldFR5cGUsCi0JCQkJCQkJICAgJmVycm9yc2FmZV9jb2VyY2lvbiwKLQkJCQkJCQkgICAmdXNl cmRlZmluZWQpOworCQkJCQkJCSAgICZlcnJvcnNhZmVfY29lcmNpb24pOwogCiAJaWYgKCFlcnJv cnNhZmVfY29lcmNpb24pCiAJCWVyZXBvcnQoRVJST1IsCkBAIC0zMDIyLDE1ICszMDE5LDEzIEBA IENvZXJjaW9uRXJyb3JTYWZlQ2hlY2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpjYXN0ZXhw ciwgTm9kZSAqc291cmNlLAogCQkJCQkgICBmb3JtYXRfdHlwZV9iZSh0YXJnZXRUeXBlKSwKIAkJ CQkJICAgIkRFRkFVTFQiLAogCQkJCQkgICAiQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUiIp LAotCQkJCXVzZXJkZWZpbmVkCi0JCQkJPyBlcnJoaW50KCJTYWZlIHR5cGUgY2FzdCBmb3IgdXNl ci1kZWZpbmVkIHR5cGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZC4iKQotCQkJCTogZXJyaGludCgi RXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0aW9uIGlzIG5vdCBlcnJvciBzYWZl LiIpLAorCQkJCWVycmhpbnQoIkV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlv biBpcyBub3QgZXJyb3Igc2FmZS4iKSwKIAkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBl eHByTG9jYXRpb24oc291cmNlKSkpOwogfQogCiBzdGF0aWMgdm9pZAogQ29lcmNpb25FcnJvclNh ZmVfSW50ZXJuYWwoT2lkIGlucHV0VHlwZSwgT2lkIHRhcmdldFR5cGUsCi0JCQkJCQkgICBib29s ICplcnJvcnNhZmVfY29lcmNpb24sIGJvb2wgKnVzZXJkZWZpbmVkKQorCQkJCQkJICAgYm9vbCAq ZXJyb3JzYWZlX2NvZXJjaW9uKQogewogCUhlYXBUdXBsZQl0dXBsZTsKIApAQCAtMzA0MSw3ICsz MDM2LDYgQEAgQ29lcmNpb25FcnJvclNhZmVfSW50ZXJuYWwoT2lkIGlucHV0VHlwZSwgT2lkIHRh cmdldFR5cGUsCiAJY2hlY2tfc3RhY2tfZGVwdGgoKTsKIAogCUFzc2VydChlcnJvcnNhZmVfY29l cmNpb24gIT0gTlVMTCk7Ci0JQXNzZXJ0KHVzZXJkZWZpbmVkICE9IE5VTEwpOwogCiAJaWYgKCEo KmVycm9yc2FmZV9jb2VyY2lvbikpCiAJCXJldHVybjsKQEAgLTMwNTEsMjQgKzMwNDUsMjEgQEAg Q29lcmNpb25FcnJvclNhZmVfSW50ZXJuYWwoT2lkIGlucHV0VHlwZSwgT2lkIHRhcmdldFR5cGUs CiAJewogCQlDb2VyY2lvbkVycm9yU2FmZV9JbnRlcm5hbChnZXRCYXNlVHlwZShpbnB1dFR5cGUp LAogCQkJCQkJCQkgICBnZXRCYXNlVHlwZSh0YXJnZXRUeXBlKSwKLQkJCQkJCQkJICAgZXJyb3Jz YWZlX2NvZXJjaW9uLAotCQkJCQkJCQkgICB1c2VyZGVmaW5lZCk7CisJCQkJCQkJCSAgIGVycm9y c2FmZV9jb2VyY2lvbik7CiAJCXJldHVybjsKIAl9CiAJZWxzZSBpZiAoaW5wdXRfdHlwdHlwZSA9 PSBUWVBUWVBFX0RPTUFJTikKIAl7CiAJCUNvZXJjaW9uRXJyb3JTYWZlX0ludGVybmFsKGdldEJh c2VUeXBlKGlucHV0VHlwZSksCiAJCQkJCQkJCSAgIHRhcmdldFR5cGUsCi0JCQkJCQkJCSAgIGVy cm9yc2FmZV9jb2VyY2lvbiwKLQkJCQkJCQkJICAgdXNlcmRlZmluZWQpOworCQkJCQkJCQkgICBl cnJvcnNhZmVfY29lcmNpb24pOwogCQlyZXR1cm47CiAJfQogCWVsc2UgaWYgKHRhcmdldF90eXB0 eXBlID09IFRZUFRZUEVfRE9NQUlOKQogCXsKIAkJQ29lcmNpb25FcnJvclNhZmVfSW50ZXJuYWwo aW5wdXRUeXBlLAogCQkJCQkJCQkgICBnZXRCYXNlVHlwZSh0YXJnZXRUeXBlKSwKLQkJCQkJCQkJ ICAgZXJyb3JzYWZlX2NvZXJjaW9uLAotCQkJCQkJCQkgICB1c2VyZGVmaW5lZCk7CisJCQkJCQkJ CSAgIGVycm9yc2FmZV9jb2VyY2lvbik7CiAJCXJldHVybjsKIAl9CiAJZWxzZSBpZiAoKGlucHV0 X3R5cHR5cGUgIT0gVFlQVFlQRV9CQVNFICYmIGlucHV0X3R5cHR5cGUgIT0gVFlQVFlQRV9QU0VV RE8gJiYgaW5wdXRUeXBlID4gRmlyc3RVbnBpbm5lZE9iamVjdElkKQpAQCAtMzEwMiw4ICszMDkz LDcgQEAgQ29lcmNpb25FcnJvclNhZmVfSW50ZXJuYWwoT2lkIGlucHV0VHlwZSwgT2lkIHRhcmdl dFR5cGUsCiAJCQkvKiByZWN1cnNlIGludG8gYXJyYXkgZWxlbWVudCB0eXBlICovCiAJCQlDb2Vy Y2lvbkVycm9yU2FmZV9JbnRlcm5hbChpbnB1dF90eXBlbGVtLAogCQkJCQkJCQkJICAgdGFyZ2V0 X3R5cGVsZW0sCi0JCQkJCQkJCQkgICBlcnJvcnNhZmVfY29lcmNpb24sCi0JCQkJCQkJCQkgICB1 c2VyZGVmaW5lZCk7CisJCQkJCQkJCQkgICBlcnJvcnNhZmVfY29lcmNpb24pOwogCQkJcmV0dXJu OwogCQl9CiAJfQpAQCAtMzEzNSwxNSArMzEyNSwxMyBAQCBDb2VyY2lvbkVycm9yU2FmZV9JbnRl cm5hbChPaWQgaW5wdXRUeXBlLCBPaWQgdGFyZ2V0VHlwZSwKIAkJewogCQkJRm9ybV9wZ19jYXN0 IGNhc3RGb3JtID0gKEZvcm1fcGdfY2FzdCkgR0VUU1RSVUNUKHR1cGxlKTsKIAotCQkJaWYgKGNh c3RGb3JtLT5jYXN0ZnVuYyA+IEZpcnN0VW5waW5uZWRPYmplY3RJZCkKKwkJCWlmIChjYXN0Rm9y bS0+Y2FzdG1ldGhvZCAhPSBDT0VSQ0lPTl9NRVRIT0RfQklOQVJZICYmCisJCQkJIWNhc3RGb3Jt LT5jYXN0ZXJyb3JzYWZlKQogCQkJewogCQkJCSplcnJvcnNhZmVfY29lcmNpb24gPSBmYWxzZTsK LQkJCQkqdXNlcmRlZmluZWQgPSB0cnVlOwogCQkJfQogCQkJUmVsZWFzZVN5c0NhY2hlKHR1cGxl KTsKIAkJfQotCQllbHNlIGlmIChpbnB1dFR5cGUgPiBGaXJzdFVucGlubmVkT2JqZWN0SWQgJiYg dGFyZ2V0VHlwZSA+IEZpcnN0VW5waW5uZWRPYmplY3RJZCkKLQkJCSplcnJvcnNhZmVfY29lcmNp b24gPSBmYWxzZTsKIAl9CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdf Y2FzdC5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuZGF0CmluZGV4IGE3YjZkODEy YzVhLi5hYmI2NWRkZDUxNiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0 LmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuZGF0CkBAIC0xOSw2NSArMTks NjUgQEAKICMgaW50Mi0+aW50NC0+aW50OC0+bnVtZXJpYy0+ZmxvYXQ0LT5mbG9hdDgsIHdoaWxl IGNhc3RzIGluIHRoZQogIyByZXZlcnNlIGRpcmVjdGlvbiBhcmUgYXNzaWdubWVudC1vbmx5Lgog eyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnaW50MicsIGNhc3RmdW5jID0+ ICdpbnQyKGludDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnaW50NCcs IGNhc3RmdW5jID0+ICdpbnQ0KGludDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdl dCA9PiAnZmxvYXQ0JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0NChpbnQ4KScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn aW50OCcsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsIGNhc3RmdW5jID0+ICdmbG9hdDgoaW50OCkn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywgY2FzdGZ1bmMg PT4gJ251bWVyaWMoaW50OCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdp bnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0 dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDInLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDQnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ0KGludDIp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnZmxvYXQ4JywgY2FzdGZ1bmMg PT4gJ2Zsb2F0OChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ251 bWVyaWMnLCBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcs IGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChpbnQ0KScsCi0gIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ2ludDInLCBjYXN0ZnVuYyA9PiAnaW50MihpbnQ0 KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0NCcsIGNhc3RmdW5j ID0+ICdmbG9hdDQoaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdm bG9hdDgnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ4KGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0Jywg Y2FzdHRhcmdldCA9PiAnbnVtZXJpYycsIGNhc3RmdW5jID0+ICdudW1lcmljKGludDQpJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICdmbG9hdDQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2lu dDgoZmxvYXQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ0JywgY2FzdHRhcmdldCA9PiAnaW50Mics IGNhc3RmdW5jID0+ICdpbnQyKGZsb2F0NCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZics IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0NCcsIGNhc3R0 YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChmbG9hdDQpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdmbG9hdDQnLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDgnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ4KGZs b2F0NCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0NCcsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMnLAot ICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhmbG9hdDQpJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhmbG9hdDQpJywgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ4JywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5j ID0+ICdpbnQ4KGZsb2F0OCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0OCcsIGNhc3R0YXJnZXQgPT4g J2ludDInLCBjYXN0ZnVuYyA9PiAnaW50MihmbG9hdDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdmbG9hdDgn LCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoZmxvYXQ4KScsCi0gIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnZmxvYXQ4JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ0JywgY2FzdGZ1bmMgPT4gJ2Zs b2F0NChmbG9hdDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdmbG9hdDgnLCBjYXN0dGFyZ2V0ID0+ICdudW1l cmljJywKLSAgY2FzdGZ1bmMgPT4gJ251bWVyaWMoZmxvYXQ4KScsIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ251bWVyaWMoZmxvYXQ4KScs IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4Jywg Y2FzdGZ1bmMgPT4gJ2ludDgobnVtZXJpYyknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZics IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0 dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIobnVtZXJpYyknLAotICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQobnVt ZXJpYyknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDQnLAot ICBjYXN0ZnVuYyA9PiAnZmxvYXQ0KG51bWVyaWMpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnZmxvYXQ0KG51bWVyaWMpJywgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsCi0gIGNh c3RmdW5jID0+ICdmbG9hdDgobnVtZXJpYyknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdmbG9hdDgobnVtZXJpYyknLCBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdtb25leScsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMnLCBjYXN0ZnVuYyA9 PiAnbnVtZXJpYyhtb25leSknLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ICdtb25leScs IGNhc3RmdW5jID0+ICdtb25leShudW1lcmljKScsCkBAIC04OSwxMyArODksMTMgQEAKIAogIyBB bGxvdyBleHBsaWNpdCBjb2VyY2lvbnMgYmV0d2VlbiBpbnQ0IGFuZCBib29sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdib29sJywgY2FzdGZ1bmMgPT4gJ2Jvb2woaW50 NCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMg PT4gJ2ludDQoYm9vbCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiAKICMgQWxsb3cgZXhwbGljaXQgY29lcmNpb25zIGJldHdlZW4geGlkOCBh bmQgeGlkCiB7IGNhc3Rzb3VyY2UgPT4gJ3hpZDgnLCBjYXN0dGFyZ2V0ID0+ICd4aWQnLCBjYXN0 ZnVuYyA9PiAneGlkKHhpZDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogCiAjIE9JRCBjYXRlZ29yeTogYWxsb3cgaW1wbGljaXQgY29udmVy c2lvbiBmcm9tIGFueSBpbnRlZ3JhbCB0eXBlIChpbmNsdWRpbmcKICMgaW50OCwgdG8gc3VwcG9y dCBPSUQgbGl0ZXJhbHMgPiAyRykgdG8gT0lELCBhcyB3ZWxsIGFzIGFzc2lnbm1lbnQgY29lcmNp b24KQEAgLTEwNiwxMyArMTA2LDEzIEBACiAjIGNhc3RzIGZyb20gdGV4dCBhbmQgdmFyY2hhciB0 byByZWdjbGFzcywgd2hpY2ggZXhpc3QgbWFpbmx5IHRvIHN1cHBvcnQKICMgbGVnYWN5IGZvcm1z IG9mIG5leHR2YWwoKSBhbmQgcmVsYXRlZCBmdW5jdGlvbnMuCiB7IGNhc3Rzb3VyY2UgPT4gJ2lu dDgnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAot ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcs CiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCkn LAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAn MCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNv dXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVncHJvYycsIGNhc3RmdW5jID0+ICcwJywK QEAgLTEyMCwxMyArMTIwLDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3Byb2MnLCBjYXN0dGFy Z2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4g J3JlZ3Byb2MnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn LCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRh cmdldCA9PiAncmVncHJvYycsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVncHJvYycsIGNhc3RmdW5jID0+ICcwJywKICAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdy ZWdwcm9jJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAot ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3JlZ3Byb2MnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4g JzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ3JlZ3Byb2MnLCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0ZnVu YyA9PiAnMCcsCkBAIC0xMzgsMTMgKzEzOCwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWdwcm9j ZWR1cmUnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcs IGNhc3R0YXJnZXQgPT4gJ3JlZ3Byb2NlZHVyZScsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0ZnVuYyA9PiAn aW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3Byb2Nl ZHVyZScsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0dGFyZ2V0ID0+ ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVncHJvY2Vk dXJlJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBj YXN0dGFyZ2V0ID0+ICdyZWdvcGVyJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMTUyLDEzICsxNTIs MTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVnb3BlcicsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNh c3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9 LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnb3BlcicsIGNhc3Rm dW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVy JywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZics IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFy Z2V0ID0+ICdyZWdvcGVyJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ29wZXInLCBjYXN0dGFy Z2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVn b3BlcicsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnb3Bl cicsIGNhc3R0YXJnZXQgPT4gJ3JlZ29wZXJhdG9yJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMTcw LDEzICsxNzAsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVnb3BlcmF0b3InLCBjYXN0dGFyZ2V0 ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3Jl Z29wZXJhdG9yJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0 YXJnZXQgPT4gJ3JlZ29wZXJhdG9yJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyYXRvcicsIGNhc3RmdW5jID0+ICcw JywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291 cmNlID0+ICdyZWdvcGVyYXRvcicsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAn aW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVyYXRvcicsIGNhc3R0YXJnZXQgPT4gJ2lu dDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVnY2xhc3Mn LCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0xODQsMTMgKzE4NCwxMyBAQAogeyBjYXN0c291cmNlID0+ ICdyZWdjbGFzcycsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQ4JywgY2FzdHRhcmdldCA9PiAncmVnY2xhc3MnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVnY2xhc3MnLCBjYXN0ZnVuYyA9PiAnaW50 NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NsYXNzJywg Y2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2In IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NsYXNzJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNh c3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NsYXNzJywgY2FzdHRhcmdl dCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdy ZWdjb2xsYXRpb24nLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0xOTgsMTMgKzE5OCwxMyBAQAogeyBj YXN0c291cmNlID0+ICdyZWdjb2xsYXRpb24nLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVu YyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3Rm dW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb2xs YXRpb24nLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNh c3R0YXJnZXQgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdjb2xs YXRpb24nLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0g IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAncmVnY29sbGF0aW9uJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5j ID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBj YXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWd0eXBlJywgY2FzdGZ1bmMgPT4g JzAnLApAQCAtMjEyLDEzICsyMTIsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVndHlwZScsIGNh c3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdl dCA9PiAncmVndHlwZScsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBj YXN0dGFyZ2V0ID0+ICdyZWd0eXBlJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWd0eXBlJywgY2FzdGZ1bmMgPT4gJzAnLAog ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ3JlZ3R5cGUnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lk KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAncmVndHlwZScsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVu YyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVnY29uZmlnJywgY2FzdGZ1bmMg PT4gJzAnLApAQCAtMjI2LDEzICsyMjYsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVnY29uZmln JywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0 dGFyZ2V0ID0+ICdyZWdjb25maWcnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQyJywgY2FzdHRhcmdldCA9PiAncmVnY29uZmlnJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50Mikn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb25maWcnLCBjYXN0ZnVu YyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsg Y2FzdHNvdXJjZSA9PiAncmVnY29uZmlnJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5j ID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NvbmZpZycsIGNhc3R0YXJnZXQgPT4g J2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVnZGlj dGlvbmFyeScsIGNhc3RmdW5jID0+ICcwJywKQEAgLTI0MCwzMSArMjQwLDMxIEBACiB7IGNhc3Rz b3VyY2UgPT4gJ3JlZ2RpY3Rpb25hcnknLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9 PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2RpY3Rpb25hcnknLCBjYXN0ZnVu YyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVnZGljdGlv bmFyeScsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2Fz dHRhcmdldCA9PiAncmVnZGljdGlvbmFyeScsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdkaWN0 aW9uYXJ5JywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAot ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3JlZ2RpY3Rpb25hcnknLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1 bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ3RleHQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjbGFzcycsIGNhc3RmdW5j ID0+ICdyZWdjbGFzcycsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3Jl Z2NsYXNzJywgY2FzdGZ1bmMgPT4gJ3JlZ2NsYXNzJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0 dGFyZ2V0ID0+ICdyZWdyb2xlJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3JvbGUnLCBjYXN0 dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQg PT4gJ3JlZ3JvbGUnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2Fz dHRhcmdldCA9PiAncmVncm9sZScsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVncm9sZScsIGNhc3RmdW5jID0+ICcwJywKICAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ ICdyZWdyb2xlJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCkn LAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ3JlZ3JvbGUnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMg PT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3RmdW5j ID0+ICcwJywKQEAgLTI3MiwxMyArMjcyLDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ25hbWVz cGFjZScsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4Jywg Y2FzdHRhcmdldCA9PiAncmVnbmFtZXNwYWNlJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3RmdW5jID0+ICdp bnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVnbmFtZXNw YWNlJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3R0YXJnZXQgPT4g J2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWduYW1lc3Bh Y2UnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNh c3R0YXJnZXQgPT4gJ3JlZ2RhdGFiYXNlJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMjg2LDEzICsy ODYsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVnZGF0YWJhc2UnLCBjYXN0dGFyZ2V0ID0+ICdv aWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2RhdGFi YXNlJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQg PT4gJ3JlZ2RhdGFiYXNlJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdkYXRhYmFzZScsIGNhc3RmdW5jID0+ICcwJywKICAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ ICdyZWdkYXRhYmFzZScsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChv aWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdyZWdkYXRhYmFzZScsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBj YXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicg fSwKIApAQCAtMzE2LDYzICszMTYsNjMgQEAKIHsgY2FzdHNvdXJjZSA9PiAndGV4dCcsIGNhc3R0 YXJnZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYnBjaGFyJywgY2FzdHRh cmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICd0ZXh0KGJwY2hhciknLAotICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2JwY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChicGNo YXIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3Rm dW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAog eyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywgY2FzdGZ1 bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2NoYXInLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4g J3RleHQoY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2NoYXInLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXIn LCBjYXN0ZnVuYyA9PiAnYnBjaGFyKGNoYXIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn LCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdjaGFyJywgY2FzdHRh cmdldCA9PiAndmFyY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0KGNoYXIpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICduYW1lJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICd0ZXh0KG5hbWUpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICduYW1lJywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywgY2FzdGZ1bmMgPT4g J2JwY2hhcihuYW1lKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbmFtZScsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNo YXInLCBjYXN0ZnVuYyA9PiAndmFyY2hhcihuYW1lKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGV4dCcsIGNh c3R0YXJnZXQgPT4gJ2NoYXInLCBjYXN0ZnVuYyA9PiAnY2hhcih0ZXh0KScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnYnBjaGFyJywgY2FzdHRhcmdldCA9PiAnY2hhcicsIGNhc3RmdW5jID0+ICdjaGFyKHRleHQp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAnY2hhcicsIGNhc3RmdW5j ID0+ICdjaGFyKHRleHQpJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAogeyBjYXN0c291cmNlID0+ICd0ZXh0JywgY2FzdHRhcmdldCA9PiAnbmFtZScsIGNhc3Rm dW5jID0+ICduYW1lKHRleHQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdicGNoYXInLCBjYXN0dGFyZ2V0ID0+ ICduYW1lJywgY2FzdGZ1bmMgPT4gJ25hbWUoYnBjaGFyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyY2hh cicsIGNhc3R0YXJnZXQgPT4gJ25hbWUnLCBjYXN0ZnVuYyA9PiAnbmFtZSh2YXJjaGFyKScsCi0g IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBB bGxvdyBleHBsaWNpdCBjb2VyY2lvbnMgYmV0d2VlbiBieXRlYSBhbmQgaW50ZWdlciB0eXBlcwog eyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnYnl0ZWEnLCBjYXN0ZnVuYyA9 PiAnYnl0ZWEoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdieXRl YScsIGNhc3RmdW5jID0+ICdieXRlYShpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdm JywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0 YXJnZXQgPT4gJ2J5dGVhJywgY2FzdGZ1bmMgPT4gJ2J5dGVhKGludDgpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNh c3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdieXRlYScsIGNhc3R0YXJnZXQgPT4gJ2ludDInLCBjYXN0ZnVuYyA9PiAnaW50MihieXRlYSkn LAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2J5dGVhJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ ICdpbnQ0KGJ5dGVhKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYnl0ZWEnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4 JywgY2FzdGZ1bmMgPT4gJ2ludDgoYnl0ZWEpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2Yn LCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIEFsbG93IGV4cGxpY2l0IGNvZXJjaW9ucyBi ZXR3ZWVuIGJ5dGVhIGFuZCB1dWlkIHR5cGUKIHsgY2FzdHNvdXJjZSA9PiAnYnl0ZWEnLCBjYXN0 dGFyZ2V0ID0+ICd1dWlkJywgY2FzdGZ1bmMgPT4gJ3V1aWQoYnl0ZWEpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNh c3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICd1dWlkJywgY2FzdHRhcmdldCA9PiAnYnl0ZWEnLCBjYXN0ZnVuYyA9PiAnYnl0ZWEodXVpZCkn LAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAK ICMgQWxsb3cgZXhwbGljaXQgY29lcmNpb25zIGJldHdlZW4gaW50NCBhbmQgImNoYXIiCiB7IGNh c3Rzb3VyY2UgPT4gJ2NoYXInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2lu dDQoY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdjaGFyJywgY2Fz dGZ1bmMgPT4gJ2NoYXIoaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgcGdfbm9kZV90cmVlIGNhbiBiZSBjb2VyY2VkIHRvLCBi dXQgbm90IGZyb20sIHRleHQKIHsgY2FzdHNvdXJjZSA9PiAncGdfbm9kZV90cmVlJywgY2FzdHRh cmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICcwJywKQEAgLTM5OCw3MyArMzk4LDczIEBACiAK ICMgRGF0ZXRpbWUgY2F0ZWdvcnkKIHsgY2FzdHNvdXJjZSA9PiAnZGF0ZScsIGNhc3R0YXJnZXQg PT4gJ3RpbWVzdGFtcCcsCi0gIGNhc3RmdW5jID0+ICd0aW1lc3RhbXAoZGF0ZSknLCBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1lc3Rh bXAoZGF0ZSknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdkYXRlJywgY2FzdHRhcmdldCA9PiAn dGltZXN0YW1wdHonLAotICBjYXN0ZnVuYyA9PiAndGltZXN0YW1wdHooZGF0ZSknLCBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1lc3Rh bXB0eihkYXRlKScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWUnLCBjYXN0dGFyZ2V0ID0+ ICdpbnRlcnZhbCcsIGNhc3RmdW5jID0+ICdpbnRlcnZhbCh0aW1lKScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn dGltZScsIGNhc3R0YXJnZXQgPT4gJ3RpbWV0eicsIGNhc3RmdW5jID0+ICd0aW1ldHoodGltZSkn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcCcsIGNhc3R0YXJnZXQgPT4gJ2RhdGUnLAotICBjYXN0 ZnVuYyA9PiAnZGF0ZSh0aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnZGF0ZSh0aW1lc3RhbXApJywgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAndGltZXN0YW1wJywgY2FzdHRhcmdldCA9PiAndGltZScsCi0gIGNhc3RmdW5j ID0+ICd0aW1lKHRpbWVzdGFtcCknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1lKHRpbWVzdGFtcCknLCBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICd0aW1lc3RhbXAnLCBjYXN0dGFyZ2V0ID0+ICd0aW1lc3RhbXB0eicsCi0gIGNhc3Rm dW5jID0+ICd0aW1lc3RhbXB0eih0aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZXN0YW1wdHoodGltZXN0YW1wKScs IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcHR6JywgY2FzdHRhcmdldCA9PiAnZGF0 ZScsCi0gIGNhc3RmdW5jID0+ICdkYXRlKHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ2RhdGUodGltZXN0YW1wdHop JywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXN0YW1wdHonLCBjYXN0dGFyZ2V0ID0+ICd0 aW1lJywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWUodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZSh0aW1lc3RhbXB0 eiknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXB0eicsIGNhc3R0YXJnZXQgPT4g J3RpbWVzdGFtcCcsCi0gIGNhc3RmdW5jID0+ICd0aW1lc3RhbXAodGltZXN0YW1wdHopJywgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGlt ZXN0YW1wKHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcHR6 JywgY2FzdHRhcmdldCA9PiAndGltZXR6JywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWV0eih0aW1lc3Rh bXB0eiknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rm dW5jID0+ICd0aW1ldHoodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50 ZXJ2YWwnLCBjYXN0dGFyZ2V0ID0+ICd0aW1lJywgY2FzdGZ1bmMgPT4gJ3RpbWUoaW50ZXJ2YWwp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICd0aW1ldHonLCBjYXN0dGFyZ2V0ID0+ICd0aW1lJywgY2FzdGZ1bmMg PT4gJ3RpbWUodGltZXR6KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIAogIyBHZW9tZXRyaWMgY2F0ZWdvcnkKIHsgY2FzdHNvdXJjZSA9PiAn cG9pbnQnLCBjYXN0dGFyZ2V0ID0+ICdib3gnLCBjYXN0ZnVuYyA9PiAnYm94KHBvaW50KScsCi0g IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnbHNlZycsIGNhc3R0YXJnZXQgPT4gJ3BvaW50JywgY2FzdGZ1bmMgPT4gJ3Bv aW50KGxzZWcpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdwYXRoJywgY2FzdHRhcmdldCA9PiAncG9seWdvbics IGNhc3RmdW5jID0+ICdwb2x5Z29uKHBhdGgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn LCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdib3gnLCBjYXN0dGFy Z2V0ID0+ICdwb2ludCcsIGNhc3RmdW5jID0+ICdwb2ludChib3gpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdi b3gnLCBjYXN0dGFyZ2V0ID0+ICdsc2VnJywgY2FzdGZ1bmMgPT4gJ2xzZWcoYm94KScsCi0gIGNh c3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnYm94JywgY2FzdHRhcmdldCA9PiAncG9seWdvbicsIGNhc3RmdW5jID0+ICdwb2x5 Z29uKGJveCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JveCcsIGNhc3R0YXJnZXQgPT4gJ2NpcmNsZScsIGNh c3RmdW5jID0+ICdjaXJjbGUoYm94KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncG9seWdvbicsIGNhc3R0YXJn ZXQgPT4gJ3BvaW50JywgY2FzdGZ1bmMgPT4gJ3BvaW50KHBvbHlnb24pJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNh c3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdwb2x5Z29uJywgY2FzdHRhcmdldCA9PiAncGF0aCcsIGNhc3RmdW5jID0+ICdwYXRoJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICdwb2x5Z29uJywgY2FzdHRhcmdldCA9PiAnYm94JywgY2FzdGZ1bmMgPT4gJ2Jv eChwb2x5Z29uKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncG9seWdvbicsIGNhc3R0YXJnZXQgPT4gJ2NpcmNs ZScsCi0gIGNhc3RmdW5jID0+ICdjaXJjbGUocG9seWdvbiknLCBjYXN0Y29udGV4dCA9PiAnZScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdjaXJjbGUocG9seWdvbiknLCBj YXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdjaXJjbGUnLCBjYXN0dGFyZ2V0ID0+ICdwb2ludCcsIGNh c3RmdW5jID0+ICdwb2ludChjaXJjbGUpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdjaXJjbGUnLCBjYXN0dGFy Z2V0ID0+ICdib3gnLCBjYXN0ZnVuYyA9PiAnYm94KGNpcmNsZSknLAotICBjYXN0Y29udGV4dCA9 PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1l dGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Np cmNsZScsIGNhc3R0YXJnZXQgPT4gJ3BvbHlnb24nLAotICBjYXN0ZnVuYyA9PiAncG9seWdvbihj aXJjbGUpJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 ZnVuYyA9PiAncG9seWdvbihjaXJjbGUpJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9k ID0+ICdmJ30sCiAKICMgTUFDIGFkZHJlc3MgY2F0ZWdvcnkKIHsgY2FzdHNvdXJjZSA9PiAnbWFj YWRkcicsIGNhc3R0YXJnZXQgPT4gJ21hY2FkZHI4JywgY2FzdGZ1bmMgPT4gJ21hY2FkZHI4JywK LSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdtYWNhZGRyOCcsIGNhc3R0YXJnZXQgPT4gJ21hY2FkZHInLCBjYXN0ZnVu YyA9PiAnbWFjYWRkcicsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIAogIyBJTkVUIGNhdGVnb3J5CiB7IGNhc3Rzb3VyY2UgPT4gJ2NpZHInLCBj YXN0dGFyZ2V0ID0+ICdpbmV0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2luZXQnLCBjYXN0dGFy Z2V0ID0+ICdjaWRyJywgY2FzdGZ1bmMgPT4gJ2NpZHInLAotICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgQml0U3RyaW5nIGNhdGVnb3J5CiB7 IGNhc3Rzb3VyY2UgPT4gJ2JpdCcsIGNhc3R0YXJnZXQgPT4gJ3ZhcmJpdCcsIGNhc3RmdW5jID0+ ICcwJywKQEAgLTQ3NCwxMyArNDc0LDEzIEBACiAKICMgQ3Jvc3MtY2F0ZWdvcnkgY2FzdHMgYmV0 d2VlbiBiaXQgYW5kIGludDQsIGludDgKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJn ZXQgPT4gJ2JpdCcsIGNhc3RmdW5jID0+ICdiaXQoaW50OCxpbnQ0KScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0 bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn aW50NCcsIGNhc3R0YXJnZXQgPT4gJ2JpdCcsIGNhc3RmdW5jID0+ICdiaXQoaW50NCxpbnQ0KScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnYml0JywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdp bnQ4KGJpdCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JpdCcsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0 ZnVuYyA9PiAnaW50NChiaXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogCiAjIENyb3NzLWNhdGVnb3J5IGNhc3RzIHRvIGFuZCBmcm9tIFRF WFQKICMgV2UgbmVlZCBlbnRyaWVzIGhlcmUgb25seSBmb3IgYSBmZXcgc3BlY2lhbGl6ZWQgY2Fz ZXMgd2hlcmUgdGhlIGJlaGF2aW9yCkBAIC00OTEsNjggKzQ5MSw2OCBAQAogIyBiZWhhdmlvciB3 aWxsIGVuc3VlIHdoZW4gdGhlIGF1dG9tYXRpYyBjYXN0IGlzIGFwcGxpZWQgaW5zdGVhZCBvZiB0 aGUKICMgcGdfY2FzdCBlbnRyeSEKIHsgY2FzdHNvdXJjZSA9PiAnY2lkcicsIGNhc3R0YXJnZXQg PT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4dChpbmV0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW5ldCcs IGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4dChpbmV0KScsCi0gIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnYm9vbCcsIGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4dChib29s KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAneG1sJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0 c291cmNlID0+ICd0ZXh0JywgY2FzdHRhcmdldCA9PiAneG1sJywgY2FzdGZ1bmMgPT4gJ3htbCcs Ci0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAog IyBDcm9zcy1jYXRlZ29yeSBjYXN0cyB0byBhbmQgZnJvbSBWQVJDSEFSCiAjIFdlIHN1cHBvcnQg YWxsIHRoZSBzYW1lIGNhc3RzIGFzIGZvciBURVhULgogeyBjYXN0c291cmNlID0+ICdjaWRyJywg Y2FzdHRhcmdldCA9PiAndmFyY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0KGluZXQpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdpbmV0JywgY2FzdHRhcmdldCA9PiAndmFyY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0 KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdib29sJywgY2FzdHRhcmdldCA9PiAndmFyY2hhcicsIGNh c3RmdW5jID0+ICd0ZXh0KGJvb2wpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd4bWwnLCBjYXN0dGFyZ2V0ID0+ ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ ICd4bWwnLCBjYXN0ZnVuYyA9PiAneG1sJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIENyb3NzLWNhdGVnb3J5IGNhc3RzIHRvIGFuZCBm cm9tIEJQQ0hBUgogIyBXZSBzdXBwb3J0IGFsbCB0aGUgc2FtZSBjYXN0cyBhcyBmb3IgVEVYVC4K IHsgY2FzdHNvdXJjZSA9PiAnY2lkcicsIGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsIGNhc3RmdW5j ID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbmV0JywgY2FzdHRhcmdldCA9PiAnYnBj aGFyJywgY2FzdGZ1bmMgPT4gJ3RleHQoaW5ldCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wnLCBjYXN0 dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChib29sKScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAneG1sJywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jw Y2hhcicsIGNhc3R0YXJnZXQgPT4gJ3htbCcsIGNhc3RmdW5jID0+ICd4bWwnLAotICBjYXN0Y29u dGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywg Y2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgTGVuZ3RoLWNv ZXJjaW9uIGZ1bmN0aW9ucwogeyBjYXN0c291cmNlID0+ICdicGNoYXInLCBjYXN0dGFyZ2V0ID0+ ICdicGNoYXInLAogICBjYXN0ZnVuYyA9PiAnYnBjaGFyKGJwY2hhcixpbnQ0LGJvb2wpJywgY2Fz dGNvbnRleHQgPT4gJ2knLAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyY2hhcics IGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXInLAogICBjYXN0ZnVuYyA9PiAndmFyY2hhcih2YXJjaGFy LGludDQsYm9vbCknLCBjYXN0Y29udGV4dCA9PiAnaScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICd0aW1lJywgY2FzdHRhcmdldCA9PiAndGltZScsIGNhc3RmdW5jID0+ICd0aW1lKHRp bWUsaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcCcsIGNhc3R0YXJnZXQgPT4gJ3RpbWVz dGFtcCcsCiAgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXAodGltZXN0YW1wLGludDQpJywgY2FzdGNv bnRleHQgPT4gJ2knLAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdm JywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXN0YW1wdHon LCBjYXN0dGFyZ2V0ID0+ICd0aW1lc3RhbXB0eicsCiAgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXB0 eih0aW1lc3RhbXB0eixpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdpJywKLSAgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludGVydmFsJywgY2FzdHRhcmdldCA9PiAnaW50ZXJ2YWwnLAogICBj YXN0ZnVuYyA9PiAnaW50ZXJ2YWwoaW50ZXJ2YWwsaW50NCknLCBjYXN0Y29udGV4dCA9PiAnaScs Ci0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1ldHonLCBjYXN0dGFyZ2V0ID0+ICd0 aW1ldHonLAotICBjYXN0ZnVuYyA9PiAndGltZXR6KHRpbWV0eixpbnQ0KScsIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3RpbWV0eih0aW1l dHosaW50NCknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdiaXQnLCBjYXN0dGFyZ2V0ID0+ICdi aXQnLCBjYXN0ZnVuYyA9PiAnYml0KGJpdCxpbnQ0LGJvb2wpJywKLSAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd2YXJi aXQnLCBjYXN0dGFyZ2V0ID0+ICd2YXJiaXQnLCBjYXN0ZnVuYyA9PiAndmFyYml0JywKLSAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdudW1lcmljJywgY2FzdHRhcmdldCA9PiAnbnVtZXJpYycsCi0gIGNhc3RmdW5jID0+ ICdudW1lcmljKG51bWVyaWMsaW50NCknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdudW1lcmljKG51bWVyaWMsaW50NCknLCBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog CiAjIGpzb24gdG8vZnJvbSBqc29uYgogeyBjYXN0c291cmNlID0+ICdqc29uJywgY2FzdHRhcmdl dCA9PiAnanNvbmInLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC01NjIsMzYgKzU2MiwzNiBAQAogCiAj IGpzb25iIHRvIG51bWVyaWMgYW5kIGJvb2wgdHlwZXMKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmIn LCBjYXN0dGFyZ2V0ID0+ICdib29sJywgY2FzdGZ1bmMgPT4gJ2Jvb2woanNvbmIpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn ZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdqc29uYicsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMnLCBjYXN0ZnVuYyA9PiAnbnVt ZXJpYyhqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2pzb25iJywgY2FzdHRhcmdldCA9PiAnaW50Mics IGNhc3RmdW5jID0+ICdpbnQyKGpzb25iKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFy Z2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoanNvbmIpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdq c29uYicsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChqc29uYiknLAot ICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2pzb25iJywgY2FzdHRhcmdldCA9PiAnZmxvYXQ0JywgY2FzdGZ1bmMgPT4g J2Zsb2F0NChqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2pzb25iJywgY2FzdHRhcmdldCA9PiAnZmxv YXQ4JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAnZScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9 PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgcmFuZ2UgdG8gbXVsdGlyYW5nZQog eyBjYXN0c291cmNlID0+ICdpbnQ0cmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0bXVsdGlyYW5n ZScsCiAgIGNhc3RmdW5jID0+ICdpbnQ0bXVsdGlyYW5nZShpbnQ0cmFuZ2UpJywgY2FzdGNvbnRl eHQgPT4gJ2UnLAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OHJhbmdlJywgY2Fz dHRhcmdldCA9PiAnaW50OG11bHRpcmFuZ2UnLAogICBjYXN0ZnVuYyA9PiAnaW50OG11bHRpcmFu Z2UoaW50OHJhbmdlKScsIGNhc3Rjb250ZXh0ID0+ICdlJywKLSAgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ251bXJhbmdlJywgY2FzdHRhcmdldCA9PiAnbnVtbXVsdGlyYW5nZScsCiAgIGNh c3RmdW5jID0+ICdudW1tdWx0aXJhbmdlKG51bXJhbmdlKScsIGNhc3Rjb250ZXh0ID0+ICdlJywK LSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2RhdGVyYW5nZScsIGNhc3R0YXJnZXQgPT4g J2RhdGVtdWx0aXJhbmdlJywKICAgY2FzdGZ1bmMgPT4gJ2RhdGVtdWx0aXJhbmdlKGRhdGVyYW5n ZSknLCBjYXN0Y29udGV4dCA9PiAnZScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rt ZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0 c3JhbmdlJywgY2FzdHRhcmdldCA9PiAndHNtdWx0aXJhbmdlJywKLSAgY2FzdGZ1bmMgPT4gJ3Rz bXVsdGlyYW5nZSh0c3JhbmdlKScsIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3RzbXVsdGlyYW5nZSh0c3JhbmdlKScsIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3RzdHpyYW5nZScsIGNhc3R0YXJnZXQgPT4gJ3RzdHptdWx0aXJhbmdlJywK ICAgY2FzdGZ1bmMgPT4gJ3RzdHptdWx0aXJhbmdlKHRzdHpyYW5nZSknLCBjYXN0Y29udGV4dCA9 PiAnZScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogXQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9w Z19jYXN0LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuaAppbmRleCBkODEzMTQ5NDZl ZS4uNmRlZGVkM2UwNGUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5o CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5oCkBAIC00OSw2ICs0OSwxMCBAQCBD QVRBTE9HKHBnX2Nhc3QsMjYwNSxDYXN0UmVsYXRpb25JZCkKIAogCS8qIGNhc3QgbWV0aG9kICov CiAJY2hhcgkJY2FzdG1ldGhvZDsKKworCS8qIGNhc3QgZnVuY3Rpb24gZXJyb3Igc2FmZSAqLwor CWJvb2wJCWNhc3RlcnJvcnNhZmUgQktJX0RFRkFVTFQoZik7CisKIH0gRm9ybURhdGFfcGdfY2Fz dDsKIAogRU5EX0NBVEFMT0dfU1RSVUNUCkBAIC0xMDUsNiArMTA5LDcgQEAgZXh0ZXJuIE9iamVj dEFkZHJlc3MgQ2FzdENyZWF0ZShPaWQgc291cmNldHlwZWlkLAogCQkJCQkJCQlPaWQgb3V0Y2Fz dGlkLAogCQkJCQkJCQljaGFyIGNhc3Rjb250ZXh0LAogCQkJCQkJCQljaGFyIGNhc3RtZXRob2Qs CisJCQkJCQkJCWJvb2wgY2FzdGVycm9yc2FmZSwKIAkJCQkJCQkJRGVwZW5kZW5jeVR5cGUgYmVo YXZpb3IpOwogCiAjZW5kaWYJCQkJCQkJLyogUEdfQ0FTVF9IICovCmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVz LmgKaW5kZXggYjQ1YzI5ZDUyZjQuLmNlZGIxMTgwYzA0IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o CkBAIC00MjQyLDYgKzQyNDIsNyBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVDYXN0U3RtdAogCU9i amVjdFdpdGhBcmdzICpmdW5jOwogCUNvZXJjaW9uQ29udGV4dCBjb250ZXh0OwogCWJvb2wJCWlu b3V0OworCWJvb2wJCXNhZmU7CiB9IENyZWF0ZUNhc3RTdG10OwogCiAvKiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggYi9zcmMv aW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKaW5kZXggYjdkZWQ2ZTYwODguLjgxNmUyNzdiNjdhIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUv cGFyc2VyL2t3bGlzdC5oCkBAIC00MDYsNiArNDA2LDcgQEAgUEdfS0VZV09SRCgicm91dGluZXMi LCBST1VUSU5FUywgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi cm93IiwgUk9XLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgicm93 cyIsIFJPV1MsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInJ1 bGUiLCBSVUxFLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCitQR19LRVlXT1JEKCJz YWZlIiwgU0FGRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgi c2F2ZXBvaW50IiwgU0FWRVBPSU5ULCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQ R19LRVlXT1JEKCJzY2FsYXIiLCBTQ0FMQVIsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJF TCkKIFBHX0tFWVdPUkQoInNjaGVtYSIsIFNDSEVNQSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfY2Fz dC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dAppbmRleCA2 OGU2OWQxYzU4NC4uYjNjN2Q2MmU1MjYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvY3JlYXRlX2Nhc3Qub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3Jl YXRlX2Nhc3Qub3V0CkBAIC04MSw2ICs4MSwxMiBAQCBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRv IGNhc3QgZnJvbSBpbnRlZ2VyIHRvIGNhc3R0ZXN0dHlwZQogLS0gVHJ5IGl0IHdpdGggYSBmdW5j dGlvbiB0aGF0IHJlcXVpcmVzIGFuIGltcGxpY2l0IGNhc3QKIENSRUFURSBGVU5DVElPTiBiYXJf aW50NF90ZXh0KGludDQpIFJFVFVSTlMgdGV4dCBMQU5HVUFHRSBTUUwgQVMKICQkIFNFTEVDVCAo J2Jhcic6OnRleHQgfHwgJDE6OnRleHQpOyAkJDsKK0NSRUFURSBGVU5DVElPTiBiYXJfaW50NF90 ZXh0X3BscGcoaW50NCkgUkVUVVJOUyB0ZXh0IExBTkdVQUdFIHBscGdzcWwgQVMKKyQkIEJFR0lO IFJFVFVSTiAoJ2Jhcic6OnRleHQgfHwgJDE6OnRleHQpOyBFTkQgJCQ7CitDUkVBVEUgQ0FTVCAo aW50NCBBUyBjYXN0dGVzdHR5cGUpIFdJVEggU0FGRSBGVU5DVElPTiBiYXJfaW50NF90ZXh0KGlu dDQpIEFTIElNUExJQ0lUOyAtLSBlcnJvcgorRVJST1I6ICBzYWZlIHR5cGUgY2FzdCBmdW5jdGlv bnMgYXJlIG9ubHkgc3VwcG9ydGVkIGZvciBDIGFuZCBpbnRlcm5hbCBsYW5ndWFnZXMKK0NSRUFU RSBDQVNUIChpbnQ0IEFTIGNhc3R0ZXN0dHlwZSkgV0lUSCBTQUZFIEZVTkNUSU9OIGJhcl9pbnQ0 X3RleHRfcGxwZyhpbnQ0KSBBUyBJTVBMSUNJVDsgLS0gZXJyb3IKK0VSUk9SOiAgc2FmZSB0eXBl IGNhc3QgZnVuY3Rpb25zIGFyZSBvbmx5IHN1cHBvcnRlZCBmb3IgQyBhbmQgaW50ZXJuYWwgbGFu Z3VhZ2VzCiBDUkVBVEUgQ0FTVCAoaW50NCBBUyBjYXN0dGVzdHR5cGUpIFdJVEggRlVOQ1RJT04g YmFyX2ludDRfdGV4dChpbnQ0KSBBUyBJTVBMSUNJVDsKIFNFTEVDVCAxMjM0OjppbnQ0OjpjYXN0 dGVzdHR5cGU7IC0tIFNob3VsZCB3b3JrIG5vdwogIGNhc3R0ZXN0dHlwZSAKQEAgLTkyLDcgKzk4 LDcgQEAgU0VMRUNUIENBU1QoMTIzNDo6aW50NCBBUyBjYXN0dGVzdHR5cGUgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnIKIEVSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBp bnRlZ2VyIHRvIGNhc3R0ZXN0dHlwZSB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZp ZWQgaW4gQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgogTElORSAxOiBTRUxFQ1QgQ0FTVCgx MjM0OjppbnQ0IEFTIGNhc3R0ZXN0dHlwZSBERUZBVUxUIE5VTEwgT04gQ09OVkUuLi4KICAgICAg ICAgICAgICAgICAgICAgXgotSElOVDogIFNhZmUgdHlwZSBjYXN0IGZvciB1c2VyLWRlZmluZWQg dHlwZXMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkLgorSElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVm aW5lZCBidXQgZGVmaW5pdGlvbiBpcyBub3QgZXJyb3Igc2FmZS4KIC0tIGNoZWNrIGRlcGVuZGVu Y2llcyBnZW5lcmF0ZWQgZm9yIHRoYXQKIFNFTEVDVCBwZ19kZXNjcmliZV9vYmplY3QoY2xhc3Np ZCwgb2JqaWQsIG9ianN1YmlkKSBhcyBvYmosCiAgICAgICAgcGdfZGVzY3JpYmVfb2JqZWN0KHJl ZmNsYXNzaWQsIHJlZm9iamlkLCByZWZvYmpzdWJpZCkgYXMgb2JqcmVmLApkaWZmIC0tZ2l0IGEv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKaW5kZXggNmZmNGQ3ZWU5MDEuLjk5NDNhNDE5Njk1 IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKQEAgLTk1MCw4ICs5 NTAsOCBAQCBTRUxFQ1QgKgogRlJPTSBwZ19jYXN0IGMKIFdIRVJFIGNhc3Rzb3VyY2UgPSAwIE9S IGNhc3R0YXJnZXQgPSAwIE9SIGNhc3Rjb250ZXh0IE5PVCBJTiAoJ2UnLCAnYScsICdpJykKICAg ICBPUiBjYXN0bWV0aG9kIE5PVCBJTiAoJ2YnLCAnYicgLCdpJyk7Ci0gb2lkIHwgY2FzdHNvdXJj ZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBj YXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gQ2hlY2sgdGhhdCBjYXN0ZnVuYyBpcyBub256 ZXJvIG9ubHkgZm9yIGNhc3QgbWV0aG9kcyB0aGF0IG5lZWQgYSBmdW5jdGlvbiwKQEAgLTk2MCw4 ICs5NjAsOCBAQCBTRUxFQ1QgKgogRlJPTSBwZ19jYXN0IGMKIFdIRVJFIChjYXN0bWV0aG9kID0g J2YnIEFORCBjYXN0ZnVuYyA9IDApCiAgICBPUiAoY2FzdG1ldGhvZCBJTiAoJ2InLCAnaScpIEFO RCBjYXN0ZnVuYyA8PiAwKTsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3Rm dW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgb2lkIHwgY2Fz dHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhv ZCB8IGNhc3RlcnJvcnNhZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dz KQogCiAtLSBMb29rIGZvciBjYXN0cyB0by9mcm9tIHRoZSBzYW1lIHR5cGUgdGhhdCBhcmVuJ3Qg bGVuZ3RoIGNvZXJjaW9uIGZ1bmN0aW9ucy4KQEAgLTk3MCwxNSArOTcwLDE1IEBAIFdIRVJFIChj YXN0bWV0aG9kID0gJ2YnIEFORCBjYXN0ZnVuYyA9IDApCiBTRUxFQ1QgKgogRlJPTSBwZ19jYXN0 IGMKIFdIRVJFIGNhc3Rzb3VyY2UgPSBjYXN0dGFyZ2V0IEFORCBjYXN0ZnVuYyA9IDA7Ci0gb2lk IHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2Fz dG1ldGhvZCAKLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwg Y2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogU0VMRUNUIGMuKgogRlJPTSBw Z19jYXN0IGMsIHBnX3Byb2MgcAogV0hFUkUgYy5jYXN0ZnVuYyA9IHAub2lkIEFORCBwLnByb25h cmdzIDwgMiBBTkQgY2FzdHNvdXJjZSA9IGNhc3R0YXJnZXQ7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8 IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0 Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gTG9vayBmb3IgY2FzdCBmdW5jdGlvbnMgdGhhdCBk b24ndCBoYXZlIHRoZSByaWdodCBzaWduYXR1cmUuICBUaGUKQEAgLTk5Niw4ICs5OTYsOCBAQCBX SEVSRSBjLmNhc3RmdW5jID0gcC5vaWQgQU5ECiAgICAgICAgICAgICAgT1IgKGMuY2FzdHNvdXJj ZSA9ICdjaGFyYWN0ZXInOjpyZWd0eXBlIEFORAogICAgICAgICAgICAgICAgICBwLnByb2FyZ3R5 cGVzWzBdID0gJ3RleHQnOjpyZWd0eXBlKSkKICAgICAgT1IgTk9UIGJpbmFyeV9jb2VyY2libGUo cC5wcm9yZXR0eXBlLCBjLmNhc3R0YXJnZXQpKTsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRh cmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Cisgb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0 IHwgY2FzdG1ldGhvZCB8IGNhc3RlcnJvcnNhZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tCiAoMCByb3dzKQogCiBTRUxFQ1QgYy4qCkBAIC0xMDA1LDggKzEwMDUsOCBAQCBGUk9NIHBn X2Nhc3QgYywgcGdfcHJvYyBwCiBXSEVSRSBjLmNhc3RmdW5jID0gcC5vaWQgQU5ECiAgICAgKChw LnByb25hcmdzID4gMSBBTkQgcC5wcm9hcmd0eXBlc1sxXSAhPSAnaW50NCc6OnJlZ3R5cGUpIE9S CiAgICAgIChwLnByb25hcmdzID4gMiBBTkQgcC5wcm9hcmd0eXBlc1syXSAhPSAnYm9vbCc6OnJl Z3R5cGUpKTsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2Fz dGNvbnRleHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgb2lkIHwgY2FzdHNvdXJjZSB8 IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8IGNhc3Rl cnJvcnNhZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBM b29rIGZvciBiaW5hcnkgY29tcGF0aWJsZSBjYXN0cyB0aGF0IGRvIG5vdCBoYXZlIHRoZSByZXZl cnNlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwKaW5kZXggMGExNWE3OTVkODcuLjMw YTBmZjA3N2M5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5z cWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsCkBAIC02MCw2ICs2 MCwxMSBAQCBEUk9QIEZVTkNUSU9OIGludDRfY2FzdHRlc3R0eXBlKGludDQpIENBU0NBREU7CiBD UkVBVEUgRlVOQ1RJT04gYmFyX2ludDRfdGV4dChpbnQ0KSBSRVRVUk5TIHRleHQgTEFOR1VBR0Ug U1FMIEFTCiAkJCBTRUxFQ1QgKCdiYXInOjp0ZXh0IHx8ICQxOjp0ZXh0KTsgJCQ7CiAKK0NSRUFU RSBGVU5DVElPTiBiYXJfaW50NF90ZXh0X3BscGcoaW50NCkgUkVUVVJOUyB0ZXh0IExBTkdVQUdF IHBscGdzcWwgQVMKKyQkIEJFR0lOIFJFVFVSTiAoJ2Jhcic6OnRleHQgfHwgJDE6OnRleHQpOyBF TkQgJCQ7CisKK0NSRUFURSBDQVNUIChpbnQ0IEFTIGNhc3R0ZXN0dHlwZSkgV0lUSCBTQUZFIEZV TkNUSU9OIGJhcl9pbnQ0X3RleHQoaW50NCkgQVMgSU1QTElDSVQ7IC0tIGVycm9yCitDUkVBVEUg Q0FTVCAoaW50NCBBUyBjYXN0dGVzdHR5cGUpIFdJVEggU0FGRSBGVU5DVElPTiBiYXJfaW50NF90 ZXh0X3BscGcoaW50NCkgQVMgSU1QTElDSVQ7IC0tIGVycm9yCiBDUkVBVEUgQ0FTVCAoaW50NCBB UyBjYXN0dGVzdHR5cGUpIFdJVEggRlVOQ1RJT04gYmFyX2ludDRfdGV4dChpbnQ0KSBBUyBJTVBM SUNJVDsKIFNFTEVDVCAxMjM0OjppbnQ0OjpjYXN0dGVzdHR5cGU7IC0tIFNob3VsZCB3b3JrIG5v dwogU0VMRUNUIENBU1QoMTIzNDo6aW50NCBBUyBjYXN0dGVzdHR5cGUgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgotLSAKMi4zNC4xCgo= --000000000000ed7e80064d704a27 Content-Type: text/x-patch; charset="US-ASCII"; name="v22-0021-error-safe-for-casting-geometry-data-type.patch" Content-Disposition: attachment; filename="v22-0021-error-safe-for-casting-geometry-data-type.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmymioc86 RnJvbSBjMGI5YThlOTcyNjFjODY0NWY2OWZjZDM5Y2Y2MWYzNjJjZTRmYTgzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MTk6MTAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MiAyMS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBnZW9tZXRyeSBkYXRhIHR5cGUKCnNlbGVj dCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBlLCBwcC5wcm9zcmMKZnJv bSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbiBwcC5vaWQgPSBwYy5jYXN0ZnVuYwpqb2lu IHBnX3R5cGUgcHQgb24gcHQub2lkID0gY2FzdHNvdXJjZQpqb2luIHBnX3R5cGUgcHQxIG9uIHB0 MS5vaWQgPSBjYXN0dGFyZ2V0CmFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kICBwdC50eXBhcnJheSA8 PiAwCmFuZCBwdC50eXBuYW1lc3BhY2UgPSAncGdfY2F0YWxvZyc6OnJlZ25hbWVzcGFjZQphbmQg cHQxLnR5cG5hbWVzcGFjZSA9ICdwZ19jYXRhbG9nJzo6cmVnbmFtZXNwYWNlCmFuZCAocHQudHlw Y2F0ZWdvcnkgID0gJ0cnIG9yIHB0MS50eXBjYXRlZ29yeSAgPSAnRycpCm9yZGVyIGJ5IGNhc3Rz b3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8IGNhc3R0 YXJnZXQgfCAgICBwcm9zcmMKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0KIHBvaW50ICAgICAgfCBib3ggICAgICAgIHwgcG9pbnRfYm94CiBsc2VnICAgICAgIHwgcG9p bnQgICAgICB8IGxzZWdfY2VudGVyCiBwYXRoICAgICAgIHwgcG9seWdvbiAgICB8IHBhdGhfcG9s eQogYm94ICAgICAgICB8IHBvaW50ICAgICAgfCBib3hfY2VudGVyCiBib3ggICAgICAgIHwgbHNl ZyAgICAgICB8IGJveF9kaWFnb25hbAogYm94ICAgICAgICB8IHBvbHlnb24gICAgfCBib3hfcG9s eQogYm94ICAgICAgICB8IGNpcmNsZSAgICAgfCBib3hfY2lyY2xlCiBwb2x5Z29uICAgIHwgcG9p bnQgICAgICB8IHBvbHlfY2VudGVyCiBwb2x5Z29uICAgIHwgcGF0aCAgICAgICB8IHBvbHlfcGF0 aAogcG9seWdvbiAgICB8IGJveCAgICAgICAgfCBwb2x5X2JveAogcG9seWdvbiAgICB8IGNpcmNs ZSAgICAgfCBwb2x5X2NpcmNsZQogY2lyY2xlICAgICB8IHBvaW50ICAgICAgfCBjaXJjbGVfY2Vu dGVyCiBjaXJjbGUgICAgIHwgYm94ICAgICAgICB8IGNpcmNsZV9ib3gKIGNpcmNsZSAgICAgfCBw b2x5Z29uICAgIHwKKDE0IHJvd3MpCgphbHJlYWR5IGVycm9yIHNhZmU6IHBvaW50X2JveCwgYm94 X2RpYWdvbmFsLCBib3hfcG9seSwgcG9seV9wYXRoLCBwb2x5X2JveCwgY2lyY2xlX2NlbnRlci4K VGhpcyBwYXRjaCBtYWtlIHRoZXNlIGZ1bmN0aW9ucyBlcnJvciBzYWZlOiBsc2VnX2NlbnRlciwg cGF0aF9wb2x5LCBib3hfY2VudGVyLApib3hfY2lyY2xlLCBwb2x5X2NlbnRlciwgcG9seV9jaXJj bGUsIGNpcmNsZV9ib3guCgpGdW5jdGlvbiB0aGF0IGNhc3RpbmcgdHlwZSBjaXJjbGUgdG8gdHlw ZSBwb2x5Z29uIGNhbm5vdCBiZSBlcnJvciBzYWZlLCBiZWNhdXNlCml0J3MgYSBTUUwgbGFuZ3Vh Z2UgZnVuY3Rpb24uCgpBdXRob3I6IGppYW4gaGUgPGppYW4udW5pdmVyc2FsaXR5QGdtYWlsLmNv bT4KUmV2aWV3ZWQtYnk6IEFtdWwgU3VsIDxzdWxhbXVsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6 IEFuZHJldyBEdW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PgpSZXZpZXdlZC1ieTogQ29yZXkg SHVpbmtlciA8Y29yZXkuaHVpbmtlckBnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9z dGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1Nmlf NGhRQG1haWwuZ21haWwuY29tCkNvbW1pdGZlc3Q6IGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jl c3FsLm9yZy9wYXRjaC81OTQxCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19vcHMuYyB8 IDIwMyArKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDE2 MCBpbnNlcnRpb25zKCspLCA0MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvZ2VvX29wcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19vcHMuYwpp bmRleCAzNTBlODZmNjM3Ny4uYTU5ZjFjYWJjNDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9nZW9fb3BzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19vcHMuYwpA QCAtNzcsNyArNzcsOCBAQCBlbnVtIHBhdGhfZGVsaW0KIAogLyogUm91dGluZXMgZm9yIHBvaW50 cyAqLwogc3RhdGljIGlubGluZSB2b2lkIHBvaW50X2NvbnN0cnVjdChQb2ludCAqcmVzdWx0LCBm bG9hdDggeCwgZmxvYXQ4IHkpOwotc3RhdGljIGlubGluZSB2b2lkIHBvaW50X2FkZF9wb2ludChQ b2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKK3N0YXRpYyBpbmxpbmUgdm9p ZCBwb2ludF9hZGRfcG9pbnQoUG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQgKnB0MiwK KwkJCQkJCQkJICAgTm9kZSAqZXNjb250ZXh0KTsKIHN0YXRpYyBpbmxpbmUgdm9pZCBwb2ludF9z dWJfcG9pbnQoUG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMg aW5saW5lIHZvaWQgcG9pbnRfbXVsX3BvaW50KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBv aW50ICpwdDIpOwogc3RhdGljIGlubGluZSB2b2lkIHBvaW50X2Rpdl9wb2ludChQb2ludCAqcmVz dWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKQEAgLTEwOCw3ICsxMDksNyBAQCBzdGF0aWMg ZmxvYXQ4IGxzZWdfY2xvc2VwdF9sc2VnKFBvaW50ICpyZXN1bHQsIExTRUcgKm9uX2xzZWcsIExT RUcgKnRvX2xzZWcpOwogCiAvKiBSb3V0aW5lcyBmb3IgYm94ZXMgKi8KIHN0YXRpYyBpbmxpbmUg dm9pZCBib3hfY29uc3RydWN0KEJPWCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsK LXN0YXRpYyB2b2lkIGJveF9jbihQb2ludCAqY2VudGVyLCBCT1ggKmJveCk7CitzdGF0aWMgYm9v bCBib3hfY24oUG9pbnQgKmNlbnRlciwgQk9YICpib3gsIE5vZGUgKmVzY29udGV4dCk7CiBzdGF0 aWMgYm9vbCBib3hfb3YoQk9YICpib3gxLCBCT1ggKmJveDIpOwogc3RhdGljIGZsb2F0OCBib3hf YXIoQk9YICpib3gpOwogc3RhdGljIGZsb2F0OCBib3hfaHQoQk9YICpib3gpOwpAQCAtMTI1LDcg KzEyNiw3IEBAIHN0YXRpYyBmbG9hdDggY2lyY2xlX2FyKENJUkNMRSAqY2lyY2xlKTsKIAogLyog Um91dGluZXMgZm9yIHBvbHlnb25zICovCiBzdGF0aWMgdm9pZCBtYWtlX2JvdW5kX2JveChQT0xZ R09OICpwb2x5KTsKLXN0YXRpYyB2b2lkIHBvbHlfdG9fY2lyY2xlKENJUkNMRSAqcmVzdWx0LCBQ T0xZR09OICpwb2x5KTsKK3N0YXRpYyBib29sIHBvbHlfdG9fY2lyY2xlKENJUkNMRSAqcmVzdWx0 LCBQT0xZR09OICpwb2x5LCBOb2RlICplc2NvbnRleHQpOwogc3RhdGljIGJvb2wgbHNlZ19pbnNp ZGVfcG9seShQb2ludCAqYSwgUG9pbnQgKmIsIFBPTFlHT04gKnBvbHksIGludCBzdGFydCk7CiBz dGF0aWMgYm9vbCBwb2x5X2NvbnRhaW5fcG9seShQT0xZR09OICpjb250YWluc19wb2x5LCBQT0xZ R09OICpjb250YWluZWRfcG9seSk7CiBzdGF0aWMgYm9vbCBwbGlzdF9zYW1lKGludCBucHRzLCBQ b2ludCAqcDEsIFBvaW50ICpwMik7CkBAIC04MzYsOCArODM3LDggQEAgYm94X2Rpc3RhbmNlKFBH X0ZVTkNUSU9OX0FSR1MpCiAJUG9pbnQJCWEsCiAJCQkJYjsKIAotCWJveF9jbigmYSwgYm94MSk7 Ci0JYm94X2NuKCZiLCBib3gyKTsKKwkodm9pZCkgYm94X2NuKCZhLCBib3gxLCBOVUxMKTsKKwko dm9pZCkgYm94X2NuKCZiLCBib3gyLCBOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocG9pbnRf ZHQoJmEsICZiLCBOVUxMKSk7CiB9CkBAIC04NTEsNyArODUyLDggQEAgYm94X2NlbnRlcihQR19G VU5DVElPTl9BUkdTKQogCUJPWAkJICAgKmJveCA9IFBHX0dFVEFSR19CT1hfUCgwKTsKIAlQb2lu dAkgICAqcmVzdWx0ID0gcGFsbG9jX29iamVjdChQb2ludCk7CiAKLQlib3hfY24ocmVzdWx0LCBi b3gpOworCWlmICghYm94X2NuKHJlc3VsdCwgYm94LCBmY2luZm8tPmNvbnRleHQpKQorCQlQR19S RVRVUk5fTlVMTCgpOwogCiAJUEdfUkVUVVJOX1BPSU5UX1AocmVzdWx0KTsKIH0KQEAgLTg2OCwx NCArODcwLDMxIEBAIGJveF9hcihCT1ggKmJveCkKIAogLyoJCWJveF9jbgktCQlzdG9yZXMgdGhl IGNlbnRlcnBvaW50IG9mIHRoZSBib3ggaW50byAqY2VudGVyLgogICovCi1zdGF0aWMgdm9pZAot Ym94X2NuKFBvaW50ICpjZW50ZXIsIEJPWCAqYm94KQorc3RhdGljIGJvb2wKK2JveF9jbihQb2lu dCAqY2VudGVyLCBCT1ggKmJveCwgTm9kZSAqZXNjb250ZXh0KQogewotCWNlbnRlci0+eCA9IGZs b2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC54LCBib3gtPmxvdy54KSwgMi4wKTsKLQljZW50 ZXItPnkgPSBmbG9hdDhfZGl2KGZsb2F0OF9wbChib3gtPmhpZ2gueSwgYm94LT5sb3cueSksIDIu MCk7CisJZmxvYXQ4CQl4OworCWZsb2F0OAkJeTsKKworCXggPSBmbG9hdDhfcGxfc2FmZShib3gt PmhpZ2gueCwgYm94LT5sb3cueCwgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJF RChlc2NvbnRleHQpKQorCQlyZXR1cm4gZmFsc2U7CisKKwljZW50ZXItPnggPSBmbG9hdDhfZGl2 X3NhZmUoeCwgMi4wLCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29u dGV4dCkpCisJCXJldHVybiBmYWxzZTsKKworCXkgPSBmbG9hdDhfcGxfc2FmZShib3gtPmhpZ2gu eSwgYm94LT5sb3cueSwgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2Nv bnRleHQpKQorCQlyZXR1cm4gZmFsc2U7CisKKwljZW50ZXItPnkgPSBmbG9hdDhfZGl2X3NhZmUo eSwgMi4wLCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkp CisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB0cnVlOwogfQogCi0KIC8qCQlib3hfd2QJLQkJ cmV0dXJucyB0aGUgd2lkdGggKGxlbmd0aCkgb2YgdGhlIGJveAogICoJCQkJCQkJCSAgKGhvcml6 b250YWwgbWFnbml0dWRlKS4KICAqLwpAQCAtMjMyOSwxMyArMjM0OCwzMSBAQCBsc2VnX2NlbnRl cihQR19GVU5DVElPTl9BUkdTKQogewogCUxTRUcJICAgKmxzZWcgPSBQR19HRVRBUkdfTFNFR19Q KDApOwogCVBvaW50CSAgICpyZXN1bHQ7CisJZmxvYXQ4CQl4OworCWZsb2F0OAkJeTsKIAogCXJl c3VsdCA9IHBhbGxvY19vYmplY3QoUG9pbnQpOwogCi0JcmVzdWx0LT54ID0gZmxvYXQ4X2Rpdihm bG9hdDhfcGwobHNlZy0+cFswXS54LCBsc2VnLT5wWzFdLngpLCAyLjApOwotCXJlc3VsdC0+eSA9 IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGxzZWctPnBbMF0ueSwgbHNlZy0+cFsxXS55KSwgMi4wKTsK Kwl4ID0gZmxvYXQ4X3BsX3NhZmUobHNlZy0+cFswXS54LCBsc2VnLT5wWzFdLngsIGZjaW5mby0+ Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJ Z290byBmYWlsOworCisJcmVzdWx0LT54ID0gZmxvYXQ4X2Rpdl9zYWZlKHgsIDIuMCwgZmNpbmZv LT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQor CQlnb3RvIGZhaWw7CisKKwl5ID0gZmxvYXQ4X3BsX3NhZmUobHNlZy0+cFswXS55LCBsc2VnLT5w WzFdLnksIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZv LT5jb250ZXh0KSkKKwkJZ290byBmYWlsOworCisJcmVzdWx0LT55ID0gZmxvYXQ4X2Rpdl9zYWZl KHksIDIuMCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2lu Zm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CiAKIAlQR19SRVRVUk5fUE9JTlRfUChyZXN1bHQp OworCitmYWlsOgorCVBHX1JFVFVSTl9OVUxMKCk7CiB9CiAKIApAQCAtMzI5MCw3ICszMzI3LDcg QEAgYm94X2ludGVycHRfbHNlZyhQb2ludCAqcmVzdWx0LCBCT1ggKmJveCwgTFNFRyAqbHNlZykK IAogCWlmIChyZXN1bHQgIT0gTlVMTCkKIAl7Ci0JCWJveF9jbigmcG9pbnQsIGJveCk7CisJCSh2 b2lkKSBib3hfY24oJnBvaW50LCBib3gsIE5VTEwpOwogCQlsc2VnX2Nsb3NlcHRfcG9pbnQocmVz dWx0LCBsc2VnLCAmcG9pbnQpOwogCX0KIApAQCAtNDEyMSwxMSArNDE1OCwyMCBAQCBjb25zdHJ1 Y3RfcG9pbnQoUEdfRlVOQ1RJT05fQVJHUykKIAogCiBzdGF0aWMgaW5saW5lIHZvaWQKLXBvaW50 X2FkZF9wb2ludChQb2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKQorcG9pbnRf YWRkX3BvaW50KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIsIE5vZGUgKmVz Y29udGV4dCkKIHsKLQlwb2ludF9jb25zdHJ1Y3QocmVzdWx0LAotCQkJCQlmbG9hdDhfcGwocHQx LT54LCBwdDItPngpLAotCQkJCQlmbG9hdDhfcGwocHQxLT55LCBwdDItPnkpKTsKKwlmbG9hdDgJ CXg7CisJZmxvYXQ4CQl5OworCisJeCA9IGZsb2F0OF9wbF9zYWZlKHB0MS0+eCwgcHQyLT54LCBl c2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVy bjsKKworCXkgPSBmbG9hdDhfcGxfc2FmZShwdDEtPnksIHB0Mi0+eSwgZXNjb250ZXh0KTsKKwlp ZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQlyZXR1cm47CisKKwlwb2ludF9j b25zdHJ1Y3QocmVzdWx0LCB4LCB5KTsKIH0KIAogRGF0dW0KQEAgLTQxMzcsNyArNDE4Myw3IEBA IHBvaW50X2FkZChQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gcGFsbG9jX29iamVjdChQ b2ludCk7CiAKLQlwb2ludF9hZGRfcG9pbnQocmVzdWx0LCBwMSwgcDIpOworCXBvaW50X2FkZF9w b2ludChyZXN1bHQsIHAxLCBwMiwgTlVMTCk7CiAKIAlQR19SRVRVUk5fUE9JTlRfUChyZXN1bHQp OwogfQpAQCAtNDI0OSw4ICs0Mjk1LDggQEAgYm94X2FkZChQR19GVU5DVElPTl9BUkdTKQogCiAJ cmVzdWx0ID0gcGFsbG9jX29iamVjdChCT1gpOwogCi0JcG9pbnRfYWRkX3BvaW50KCZyZXN1bHQt PmhpZ2gsICZib3gtPmhpZ2gsIHApOwotCXBvaW50X2FkZF9wb2ludCgmcmVzdWx0LT5sb3csICZi b3gtPmxvdywgcCk7CisJcG9pbnRfYWRkX3BvaW50KCZyZXN1bHQtPmhpZ2gsICZib3gtPmhpZ2gs IHAsIE5VTEwpOworCXBvaW50X2FkZF9wb2ludCgmcmVzdWx0LT5sb3csICZib3gtPmxvdywgcCwg TlVMTCk7CiAKIAlQR19SRVRVUk5fQk9YX1AocmVzdWx0KTsKIH0KQEAgLTQ0MTMsNyArNDQ1OSw3 IEBAIHBhdGhfYWRkX3B0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW50CQkJaTsKIAogCWZvciAoaSA9 IDA7IGkgPCBwYXRoLT5ucHRzOyBpKyspCi0JCXBvaW50X2FkZF9wb2ludCgmcGF0aC0+cFtpXSwg JnBhdGgtPnBbaV0sIHBvaW50KTsKKwkJcG9pbnRfYWRkX3BvaW50KCZwYXRoLT5wW2ldLCAmcGF0 aC0+cFtpXSwgcG9pbnQsIE5VTEwpOwogCiAJUEdfUkVUVVJOX1BBVEhfUChwYXRoKTsKIH0KQEAg LTQ0NzEsNyArNDUxNyw3IEBAIHBhdGhfcG9seShQR19GVU5DVElPTl9BUkdTKQogCiAJLyogVGhp cyBpcyBub3QgdmVyeSBjb25zaXN0ZW50IC0tLSBvdGhlciBzaW1pbGFyIGNhc2VzIHJldHVybiBO VUxMIC4uLiAqLwogCWlmICghcGF0aC0+Y2xvc2VkKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0 dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5W QUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJCSBlcnJtc2coIm9wZW4gcGF0aCBjYW5ub3QgYmUg Y29udmVydGVkIHRvIHBvbHlnb24iKSkpOwogCkBAIC00NTIxLDcgKzQ1NjcsOSBAQCBwb2x5X2Nl bnRlcihQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gcGFsbG9jX29iamVjdChQb2ludCk7 CiAKLQlwb2x5X3RvX2NpcmNsZSgmY2lyY2xlLCBwb2x5KTsKKwlpZiAoIXBvbHlfdG9fY2lyY2xl KCZjaXJjbGUsIHBvbHksIGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisK IAkqcmVzdWx0ID0gY2lyY2xlLmNlbnRlcjsKIAogCVBHX1JFVFVSTl9QT0lOVF9QKHJlc3VsdCk7 CkBAIC00OTgzLDcgKzUwMzEsNyBAQCBjaXJjbGVfYWRkX3B0KFBHX0ZVTkNUSU9OX0FSR1MpCiAK IAlyZXN1bHQgPSBwYWxsb2Nfb2JqZWN0KENJUkNMRSk7CiAKLQlwb2ludF9hZGRfcG9pbnQoJnJl c3VsdC0+Y2VudGVyLCAmY2lyY2xlLT5jZW50ZXIsIHBvaW50KTsKKwlwb2ludF9hZGRfcG9pbnQo JnJlc3VsdC0+Y2VudGVyLCAmY2lyY2xlLT5jZW50ZXIsIHBvaW50LCBOVUxMKTsKIAlyZXN1bHQt PnJhZGl1cyA9IGNpcmNsZS0+cmFkaXVzOwogCiAJUEdfUkVUVVJOX0NJUkNMRV9QKHJlc3VsdCk7 CkBAIC01MjA0LDE0ICs1MjUyLDMwIEBAIGNpcmNsZV9ib3goUEdfRlVOQ1RJT05fQVJHUykKIAog CWJveCA9IHBhbGxvY19vYmplY3QoQk9YKTsKIAotCWRlbHRhID0gZmxvYXQ4X2RpdihjaXJjbGUt PnJhZGl1cywgc3FydCgyLjApKTsKKwlkZWx0YSA9IGZsb2F0OF9kaXZfc2FmZShjaXJjbGUtPnJh ZGl1cywgc3FydCgyLjApLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VS UkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKIAotCWJveC0+aGlnaC54ID0gZmxv YXQ4X3BsKGNpcmNsZS0+Y2VudGVyLngsIGRlbHRhKTsKLQlib3gtPmxvdy54ID0gZmxvYXQ4X21p KGNpcmNsZS0+Y2VudGVyLngsIGRlbHRhKTsKLQlib3gtPmhpZ2gueSA9IGZsb2F0OF9wbChjaXJj bGUtPmNlbnRlci55LCBkZWx0YSk7Ci0JYm94LT5sb3cueSA9IGZsb2F0OF9taShjaXJjbGUtPmNl bnRlci55LCBkZWx0YSk7CisJYm94LT5oaWdoLnggPSBmbG9hdDhfcGxfc2FmZShjaXJjbGUtPmNl bnRlci54LCBkZWx0YSwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJF RChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwlib3gtPmxvdy54ID0gZmxvYXQ4 X21pX3NhZmUoY2lyY2xlLT5jZW50ZXIueCwgZGVsdGEsIGZjaW5mby0+Y29udGV4dCk7CisJaWYg KFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOworCisJ Ym94LT5oaWdoLnkgPSBmbG9hdDhfcGxfc2FmZShjaXJjbGUtPmNlbnRlci55LCBkZWx0YSwgZmNp bmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQp KQorCQlnb3RvIGZhaWw7CisKKwlib3gtPmxvdy55ID0gZmxvYXQ4X21pX3NhZmUoY2lyY2xlLT5j ZW50ZXIueSwgZGVsdGEsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJS RUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOwogCiAJUEdfUkVUVVJOX0JPWF9QKGJv eCk7CisKK2ZhaWw6CisJUEdfUkVUVVJOX05VTEwoKTsKIH0KIAogLyogYm94X2NpcmNsZSgpCkBA IC01MjIyLDE1ICs1Mjg2LDM3IEBAIGJveF9jaXJjbGUoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlC T1gJCSAgICpib3ggPSBQR19HRVRBUkdfQk9YX1AoMCk7CiAJQ0lSQ0xFCSAgICpjaXJjbGU7CisJ ZmxvYXQ4CQl4OworCWZsb2F0OAkJeTsKIAogCWNpcmNsZSA9IHBhbGxvY19vYmplY3QoQ0lSQ0xF KTsKIAotCWNpcmNsZS0+Y2VudGVyLnggPSBmbG9hdDhfZGl2KGZsb2F0OF9wbChib3gtPmhpZ2gu eCwgYm94LT5sb3cueCksIDIuMCk7Ci0JY2lyY2xlLT5jZW50ZXIueSA9IGZsb2F0OF9kaXYoZmxv YXQ4X3BsKGJveC0+aGlnaC55LCBib3gtPmxvdy55KSwgMi4wKTsKKwl4ID0gZmxvYXQ4X3BsX3Nh ZmUoYm94LT5oaWdoLngsIGJveC0+bG93LngsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRf RVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOwogCi0JY2lyY2xl LT5yYWRpdXMgPSBwb2ludF9kdCgmY2lyY2xlLT5jZW50ZXIsICZib3gtPmhpZ2gsIE5VTEwpOwor CWNpcmNsZS0+Y2VudGVyLnggPSBmbG9hdDhfZGl2X3NhZmUoeCwgMi4wLCBmY2luZm8tPmNvbnRl eHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8g ZmFpbDsKKworCXkgPSBmbG9hdDhfcGxfc2FmZShib3gtPmhpZ2gueSwgYm94LT5sb3cueSwgZmNp bmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQp KQorCQlnb3RvIGZhaWw7CisKKwljaXJjbGUtPmNlbnRlci55ID0gZmxvYXQ4X2Rpdl9zYWZlKHks IDIuMCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8t PmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwljaXJjbGUtPnJhZGl1cyA9IHBvaW50X2R0KCZj aXJjbGUtPmNlbnRlciwgJmJveC0+aGlnaCwKKwkJCQkJCQkgIGZjaW5mby0+Y29udGV4dCk7CisK KwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7 CiAKIAlQR19SRVRVUk5fQ0lSQ0xFX1AoY2lyY2xlKTsKKworZmFpbDoKKwlQR19SRVRVUk5fTlVM TCgpOwogfQogCiAKQEAgLTUyODksMTUgKzUzNzUsMTYgQEAgY2lyY2xlX3BvbHkoUEdfRlVOQ1RJ T05fQVJHUykKIC8qCiAgKiBDb252ZXJ0IHBvbHlnb24gdG8gY2lyY2xlCiAgKgotICogVGhlIHJl c3VsdCBtdXN0IGJlIHByZWFsbG9jYXRlZC4KKyAqIFRoZSBwYXJhbWV0ZXIgInJlc3VsdCIgbXVz dCBiZSBwcmVhbGxvY2F0ZWQuCiAgKgogICogWFhYIFRoaXMgYWxnb3JpdGhtIHNob3VsZCB1c2Ug d2VpZ2h0ZWQgbWVhbnMgb2YgbGluZSBzZWdtZW50cwogICoJcmF0aGVyIHRoYW4gc3RyYWlnaHQg YXZlcmFnZSB2YWx1ZXMgb2YgcG9pbnRzIC0gdGdsIDk3LzAxLzIxLgogICovCi1zdGF0aWMgdm9p ZAotcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHkpCitzdGF0aWMg Ym9vbAorcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHksIE5vZGUg KmVzY29udGV4dCkKIHsKIAlpbnQJCQlpOworCWZsb2F0OAkJeDsKIAogCUFzc2VydChwb2x5LT5u cHRzID4gMCk7CiAKQEAgLTUzMDYsMTQgKzUzOTMsNDMgQEAgcG9seV90b19jaXJjbGUoQ0lSQ0xF ICpyZXN1bHQsIFBPTFlHT04gKnBvbHkpCiAJcmVzdWx0LT5yYWRpdXMgPSAwOwogCiAJZm9yIChp ID0gMDsgaSA8IHBvbHktPm5wdHM7IGkrKykKLQkJcG9pbnRfYWRkX3BvaW50KCZyZXN1bHQtPmNl bnRlciwgJnJlc3VsdC0+Y2VudGVyLCAmcG9seS0+cFtpXSk7Ci0JcmVzdWx0LT5jZW50ZXIueCA9 IGZsb2F0OF9kaXYocmVzdWx0LT5jZW50ZXIueCwgcG9seS0+bnB0cyk7Ci0JcmVzdWx0LT5jZW50 ZXIueSA9IGZsb2F0OF9kaXYocmVzdWx0LT5jZW50ZXIueSwgcG9seS0+bnB0cyk7CisJeworCQlw b2ludF9hZGRfcG9pbnQoJnJlc3VsdC0+Y2VudGVyLAorCQkJCQkJJnJlc3VsdC0+Y2VudGVyLAor CQkJCQkJJnBvbHktPnBbaV0sCisJCQkJCQllc2NvbnRleHQpOworCQlpZiAoU09GVF9FUlJPUl9P Q0NVUlJFRChlc2NvbnRleHQpKQorCQkJcmV0dXJuIGZhbHNlOworCX0KKworCXJlc3VsdC0+Y2Vu dGVyLnggPSBmbG9hdDhfZGl2X3NhZmUocmVzdWx0LT5jZW50ZXIueCwKKwkJCQkJCQkJCSAgIHBv bHktPm5wdHMsCisJCQkJCQkJCQkgICBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VS UkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKKworCXJlc3VsdC0+Y2VudGVyLnkgPSBm bG9hdDhfZGl2X3NhZmUocmVzdWx0LT5jZW50ZXIueSwKKwkJCQkJCQkJCSAgIHBvbHktPm5wdHMs CisJCQkJCQkJCQkgICBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29u dGV4dCkpCisJCXJldHVybiBmYWxzZTsKIAogCWZvciAoaSA9IDA7IGkgPCBwb2x5LT5ucHRzOyBp KyspCi0JCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X3BsKHJlc3VsdC0+cmFkaXVzLAotCQkJCQkJ CQkgICBwb2ludF9kdCgmcG9seS0+cFtpXSwgJnJlc3VsdC0+Y2VudGVyLCBOVUxMKSk7Ci0JcmVz dWx0LT5yYWRpdXMgPSBmbG9hdDhfZGl2KHJlc3VsdC0+cmFkaXVzLCBwb2x5LT5ucHRzKTsKKwl7 CisJCXggPSBwb2ludF9kdCgmcG9seS0+cFtpXSwgJnJlc3VsdC0+Y2VudGVyLCBlc2NvbnRleHQp OworCQlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQkJcmV0dXJuIGZhbHNl OworCisJCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X3BsX3NhZmUocmVzdWx0LT5yYWRpdXMsIHgs IGVzY29udGV4dCk7CisJCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCQly ZXR1cm4gZmFsc2U7CisJfQorCisJcmVzdWx0LT5yYWRpdXMgPSBmbG9hdDhfZGl2X3NhZmUocmVz dWx0LT5yYWRpdXMsIHBvbHktPm5wdHMsIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0ND VVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIHRydWU7CiB9CiAK IERhdHVtCkBAIC01MzI0LDcgKzU0NDAsOCBAQCBwb2x5X2NpcmNsZShQR19GVU5DVElPTl9BUkdT KQogCiAJcmVzdWx0ID0gcGFsbG9jX29iamVjdChDSVJDTEUpOwogCi0JcG9seV90b19jaXJjbGUo cmVzdWx0LCBwb2x5KTsKKwlpZiAoIXBvbHlfdG9fY2lyY2xlKHJlc3VsdCwgcG9seSwgZmNpbmZv LT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9DSVJDTEVfUChy ZXN1bHQpOwogfQotLSAKMi4zNC4xCgo= --000000000000ed7e80064d704a27 Content-Type: text/x-patch; charset="US-ASCII"; name="v22-0019-introduce-float8-safe-function.patch" Content-Disposition: attachment; filename="v22-0019-introduce-float8-safe-function.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmymiocb7 RnJvbSAyOGFjODczNDQ5NzIzZGU1NDY2M2RmNGZiMzUyNjMwNjVhZjkxZTcxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MTY6NTQgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MiAxOS8yM10gaW50cm9kdWNlIGZsb2F0OCBzYWZlIGZ1bmN0aW9uCgp0aGlzIHBhdGNoIGludHJv ZHVjZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uOgpmbG9hdDhfcGxfc2FmZQpmbG9hdDhfbWlfc2Fm ZQpmbG9hdDhfbXVsX3NhZmUKZmxvYXQ4X2Rpdl9zYWZlCgpyZWZhY3RvcmluZyBleGlzdGluZyBm dW5jdGlvbiBpcyBiZSB0b28gaW52YXNpdmUuICB0aHVzIGFkZCB0aGVzZSBuZXcgZnVuY3Rpb25z LgpJdCdzIHZlcnkgc2ltaWxhciB0byBleGlzdGluZyBub24tc2FmZSB2ZXJzaW9uIGZ1bmN0aW9u cy4KCkF1dGhvcjogamlhbiBoZSA8amlhbi51bml2ZXJzYWxpdHlAZ21haWwuY29tPgpSZXZpZXdl ZC1ieTogQW11bCBTdWwgPHN1bGFtdWxAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQ29yZXkgSHVp bmtlciA8Y29yZXkuaHVpbmtlckBnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdy LmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhR QG1haWwuZ21haWwuY29tCkNvbW1pdGZlc3Q6IGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3Fs Lm9yZy9wYXRjaC81OTQxCi0tLQogc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaCB8IDc5ICsrKysr KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDU4IGlu c2VydGlvbnMoKyksIDIxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0 aWxzL2Zsb2F0LmggYi9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oCmluZGV4IGQyZTk4OTk2MGE1 Li44NzIzYjRjMDBiMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaAorKysg Yi9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oCkBAIC0xMDksMTYgKzEwOSwyNCBAQCBmbG9hdDRf cGwoY29uc3QgZmxvYXQ0IHZhbDEsIGNvbnN0IGZsb2F0NCB2YWwyKQogCXJldHVybiByZXN1bHQ7 CiB9CiAKK3N0YXRpYyBpbmxpbmUgZmxvYXQ4CitmbG9hdDhfcGxfc2FmZShjb25zdCBmbG9hdDgg dmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIsIHN0cnVjdCBOb2RlICplc2NvbnRleHQpCit7CisJZmxv YXQ4CQlyZXN1bHQ7CisKKwlyZXN1bHQgPSB2YWwxICsgdmFsMjsKKwlpZiAodW5saWtlbHkoaXNp bmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKKwl7CisJCWZsb2F0 X292ZXJmbG93X2Vycm9yKGVzY29udGV4dCk7CisJCXJldHVybiAwLjA7CisJfQorCXJldHVybiBy ZXN1bHQ7Cit9CisKIHN0YXRpYyBpbmxpbmUgZmxvYXQ4CiBmbG9hdDhfcGwoY29uc3QgZmxvYXQ4 IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyKQogewotCWZsb2F0OAkJcmVzdWx0OwotCi0JcmVzdWx0 ID0gdmFsMSArIHZhbDI7Ci0JaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZih2 YWwxKSAmJiAhaXNpbmYodmFsMikpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwotCi0J cmV0dXJuIHJlc3VsdDsKKwlyZXR1cm4gZmxvYXQ4X3BsX3NhZmUodmFsMSwgdmFsMiwgTlVMTCk7 OwogfQogCiBzdGF0aWMgaW5saW5lIGZsb2F0NApAQCAtMTMzLDE2ICsxNDEsMjQgQEAgZmxvYXQ0 X21pKGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9hdDQgdmFsMikKIAlyZXR1cm4gcmVzdWx0 OwogfQogCitzdGF0aWMgaW5saW5lIGZsb2F0OAorZmxvYXQ4X21pX3NhZmUoY29uc3QgZmxvYXQ4 IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyLCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQoreworCWZs b2F0OAkJcmVzdWx0OworCisJcmVzdWx0ID0gdmFsMSAtIHZhbDI7CisJaWYgKHVubGlrZWx5KGlz aW5mKHJlc3VsdCkpICYmICFpc2luZih2YWwxKSAmJiAhaXNpbmYodmFsMikpCisJeworCQlmbG9h dF9vdmVyZmxvd19lcnJvcihlc2NvbnRleHQpOworCQlyZXR1cm4gMC4wOworCX0KKwlyZXR1cm4g cmVzdWx0OworfQorCiBzdGF0aWMgaW5saW5lIGZsb2F0OAogZmxvYXQ4X21pKGNvbnN0IGZsb2F0 OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIHsKLQlmbG9hdDgJCXJlc3VsdDsKLQotCXJlc3Vs dCA9IHZhbDEgLSB2YWwyOwotCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYo dmFsMSkgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKLQot CXJldHVybiByZXN1bHQ7CisJcmV0dXJuIGZsb2F0OF9taV9zYWZlKHZhbDEsIHZhbDIsIE5VTEwp OwogfQogCiBzdGF0aWMgaW5saW5lIGZsb2F0NApAQCAtMTYwLDE5ICsxNzYsMzMgQEAgZmxvYXQ0 X211bChjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIpCiB9CiAKIHN0YXRpYyBp bmxpbmUgZmxvYXQ4Ci1mbG9hdDhfbXVsKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDgg dmFsMikKK2Zsb2F0OF9tdWxfc2FmZShjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZh bDIsIHN0cnVjdCBOb2RlICplc2NvbnRleHQpCiB7CiAJZmxvYXQ4CQlyZXN1bHQ7CiAKIAlyZXN1 bHQgPSB2YWwxICogdmFsMjsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5m KHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CisJ eworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihlc2NvbnRleHQpOworCQlyZXR1cm4gMC4wOworCX0K KwogCWlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wKSAmJiB2YWwxICE9IDAuMCAmJiB2YWwyICE9 IDAuMCkKLQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOworCXsKKwkJZmxvYXRfdW5kZXJm bG93X2Vycm9yKGVzY29udGV4dCk7CisJCXJldHVybiAwLjA7CisJfQogCiAJcmV0dXJuIHJlc3Vs dDsKIH0KIAorc3RhdGljIGlubGluZSBmbG9hdDgKK2Zsb2F0OF9tdWwoY29uc3QgZmxvYXQ4IHZh bDEsIGNvbnN0IGZsb2F0OCB2YWwyKQoreworCXJldHVybiBmbG9hdDhfbXVsX3NhZmUodmFsMSwg dmFsMiwgTlVMTCk7Cit9CisKKwogc3RhdGljIGlubGluZSBmbG9hdDQKIGZsb2F0NF9kaXYoY29u c3QgZmxvYXQ0IHZhbDEsIGNvbnN0IGZsb2F0NCB2YWwyKQogewpAQCAtMTkwLDIxICsyMjAsMjgg QEAgZmxvYXQ0X2Rpdihjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIpCiB9CiAK IHN0YXRpYyBpbmxpbmUgZmxvYXQ4Ci1mbG9hdDhfZGl2KGNvbnN0IGZsb2F0OCB2YWwxLCBjb25z dCBmbG9hdDggdmFsMikKK2Zsb2F0OF9kaXZfc2FmZShjb25zdCBmbG9hdDggdmFsMSwgY29uc3Qg ZmxvYXQ4IHZhbDIsIHN0cnVjdCBOb2RlICplc2NvbnRleHQpCiB7CiAJZmxvYXQ4CQlyZXN1bHQ7 CiAKIAlpZiAodW5saWtlbHkodmFsMiA9PSAwLjApICYmICFpc25hbih2YWwxKSkKLQkJZmxvYXRf emVyb19kaXZpZGVfZXJyb3IoTlVMTCk7CisJCWZsb2F0X3plcm9fZGl2aWRlX2Vycm9yKGVzY29u dGV4dCk7CiAJcmVzdWx0ID0gdmFsMSAvIHZhbDI7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3Vs dCkpICYmICFpc2luZih2YWwxKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CisJCWZs b2F0X292ZXJmbG93X2Vycm9yKGVzY29udGV4dCk7CiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAw LjApICYmIHZhbDEgIT0gMC4wICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfdW5kZXJmbG93X2Vy cm9yKE5VTEwpOworCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoZXNjb250ZXh0KTsKIAogCXJldHVy biByZXN1bHQ7CiB9CiAKK3N0YXRpYyBpbmxpbmUgZmxvYXQ4CitmbG9hdDhfZGl2KGNvbnN0IGZs b2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKK3sKKwlyZXR1cm4gZmxvYXQ4X2Rpdl9zYWZl KHZhbDEsIHZhbDIsIE5VTEwpOworfQorCisKIC8qCiAgKiBSb3V0aW5lcyBmb3IgTmFOLWF3YXJl IGNvbXBhcmlzb25zCiAgKgotLSAKMi4zNC4xCgo= --000000000000ed7e80064d704a27 Content-Type: text/x-patch; charset="US-ASCII"; name="v22-0018-refactor-float_overflow_error-float_underflow_error-float_zero_d.patch" Content-Disposition: attachment; filename="v22-0018-refactor-float_overflow_error-float_underflow_error-float_zero_d.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmymiocf8 RnJvbSBlNmNmMjU4ZTNjMzJiNDhhZjU4ZGVkMWVmZTVmOWUwMDk5MWRhOWZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MTU6NDYgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MiAxOC8yM10gcmVmYWN0b3IKIGZsb2F0X292ZXJmbG93X2Vycm9yLGZsb2F0X3VuZGVyZmxvd19l cnJvcixmbG9hdF96ZXJvX2RpdmlkZV9lcnJvcgoKbWFrZSB0aGVzZSBmdW5jdGlvbiBlcnJvci1z YWZlOiBmbG9hdF9vdmVyZmxvd19lcnJvciwgZmxvYXRfdW5kZXJmbG93X2Vycm9yLApmbG9hdF96 ZXJvX2RpdmlkZV9lcnJvci4KCkF1dGhvcjogamlhbiBoZSA8amlhbi51bml2ZXJzYWxpdHlAZ21h aWwuY29tPgpSZXZpZXdlZC1ieTogQW11bCBTdWwgPHN1bGFtdWxAZ21haWwuY29tPgpSZXZpZXdl ZC1ieTogQ29yZXkgSHVpbmtlciA8Y29yZXkuaHVpbmtlckBnbWFpbC5jb20+CkRpc2N1c3Npb246 IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThq WnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCkNvbW1pdGZlc3Q6IGh0dHBzOi8vY29tbWl0 ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRjaC81OTQxCi0tLQogY29udHJpYi9idHJlZV9naXN0L2J0 cmVlX2Zsb2F0NC5jIHwgICAyICstCiBjb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMg fCAgIDQgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jICAgICB8IDEwNCArKysrKysr KysrKysrKystLS0tLS0tLS0tLS0tLS0KIHNyYy9pbmNsdWRlL3V0aWxzL2Zsb2F0LmggICAgICAg ICB8ICAzNCArKysrKy0tLS0tCiA0IGZpbGVzIGNoYW5nZWQsIDcyIGluc2VydGlvbnMoKyksIDcy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9mbG9h dDQuYyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9mbG9hdDQuYwppbmRleCBjMDc2OTE4ZmQ0 OC4uZmE2YjM4NTJmOTIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9mbG9h dDQuYworKysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ0LmMKQEAgLTEwMSw3ICsx MDEsNyBAQCBmbG9hdDRfZGlzdChQR19GVU5DVElPTl9BUkdTKQogCiAJciA9IGEgLSBiOwogCWlm ICh1bmxpa2VseShpc2luZihyKSkgJiYgIWlzaW5mKGEpICYmICFpc2luZihiKSkKLQkJZmxvYXRf b3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19S RVRVUk5fRkxPQVQ0KGZhYnNmKHIpKTsKIH0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvYnRyZWVfZ2lz dC9idHJlZV9mbG9hdDguYyBiL2NvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9mbG9hdDguYwppbmRl eCBkNzM4NmU4ODVhMi4uNzk3MTlmZGI3MjUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvYnRyZWVfZ2lz dC9idHJlZV9mbG9hdDguYworKysgYi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMK QEAgLTc5LDcgKzc5LDcgQEAgZ2J0X2Zsb2F0OF9kaXN0KGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZv aWQgKmIsIEZtZ3JJbmZvICpmbGluZm8pCiAKIAlyID0gYXJnMSAtIGFyZzI7CiAJaWYgKHVubGlr ZWx5KGlzaW5mKHIpKSAmJiAhaXNpbmYoYXJnMSkgJiYgIWlzaW5mKGFyZzIpKQotCQlmbG9hdF9v dmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAlyZXR1cm4g ZmFicyhyKTsKIH0KIApAQCAtMTA5LDcgKzEwOSw3IEBAIGZsb2F0OF9kaXN0KFBHX0ZVTkNUSU9O X0FSR1MpCiAKIAlyID0gYSAtIGI7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHIpKSAmJiAhaXNpbmYo YSkgJiYgIWlzaW5mKGIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVy Zmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgoZmFicyhyKSk7CiB9CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9mbG9hdC5jCmluZGV4IDQ0MjNiNzI0ZjlmLi4zMGI0MjIwNWQ1YyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2Zsb2F0LmMKQEAgLTEwMCwyNSArMTAwLDI1IEBAIHN0YXRpYyB2b2lkIGluaXRfZGVncmVlX2Nv bnN0YW50cyh2b2lkKTsKICAqIFRoaXMgZG9lcyBtZWFuIHRoYXQgeW91IGRvbid0IGdldCBhIHVz ZWZ1bCBlcnJvciBsb2NhdGlvbiBpbmRpY2F0b3IuCiAgKi8KIHBnX25vaW5saW5lIHZvaWQKLWZs b2F0X292ZXJmbG93X2Vycm9yKHZvaWQpCitmbG9hdF9vdmVyZmxvd19lcnJvcihzdHJ1Y3QgTm9k ZSAqZXNjb250ZXh0KQogewotCWVyZXBvcnQoRVJST1IsCisJZXJyc2F2ZShlc2NvbnRleHQsCiAJ CQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCSBlcnJt c2coInZhbHVlIG91dCBvZiByYW5nZTogb3ZlcmZsb3ciKSkpOwogfQogCiBwZ19ub2lubGluZSB2 b2lkCi1mbG9hdF91bmRlcmZsb3dfZXJyb3Iodm9pZCkKK2Zsb2F0X3VuZGVyZmxvd19lcnJvcihz dHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQogewotCWVyZXBvcnQoRVJST1IsCisJZXJyc2F2ZShlc2Nv bnRleHQsCiAJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwK IAkJCSBlcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTogdW5kZXJmbG93IikpKTsKIH0KIAogcGdf bm9pbmxpbmUgdm9pZAotZmxvYXRfemVyb19kaXZpZGVfZXJyb3Iodm9pZCkKK2Zsb2F0X3plcm9f ZGl2aWRlX2Vycm9yKHN0cnVjdCBOb2RlICplc2NvbnRleHQpCiB7Ci0JZXJlcG9ydChFUlJPUiwK KwllcnJzYXZlKGVzY29udGV4dCwKIAkJCShlcnJjb2RlKEVSUkNPREVfRElWSVNJT05fQllfWkVS TyksCiAJCQkgZXJybXNnKCJkaXZpc2lvbiBieSB6ZXJvIikpKTsKIH0KQEAgLTE0NzcsOSArMTQ3 Nyw5IEBAIGRzcXJ0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQgPSBzcXJ0KGFyZzEpOwog CWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYoYXJnMSkpCi0JCWZsb2F0X292 ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCWlmICh1bmxp a2VseShyZXN1bHQgPT0gMC4wKSAmJiBhcmcxICE9IDAuMCkKLQkJZmxvYXRfdW5kZXJmbG93X2Vy cm9yKCk7CisJCWZsb2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9B VDgocmVzdWx0KTsKIH0KQEAgLTE0OTYsOSArMTQ5Niw5IEBAIGRjYnJ0KFBHX0ZVTkNUSU9OX0FS R1MpCiAKIAlyZXN1bHQgPSBjYnJ0KGFyZzEpOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQp KSAmJiAhaXNpbmYoYXJnMSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOwogCWlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wKSAmJiBhcmcx ICE9IDAuMCkKLQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X3VuZGVyZmxvd19l cnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTE2MzQsMjQg KzE2MzQsMjQgQEAgZHBvdyhQR19GVU5DVElPTl9BUkdTKQogCQkJCWlmIChhYnN4ID09IDEuMCkK IAkJCQkJcmVzdWx0ID0gMS4wOwogCQkJCWVsc2UgaWYgKGFyZzIgPj0gMC4wID8gKGFic3ggPiAx LjApIDogKGFic3ggPCAxLjApKQotCQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCQlm bG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAkJCQllbHNlCi0JCQkJCWZsb2F0X3VuZGVyZmxv d19lcnJvcigpOworCQkJCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7CiAJCQl9CiAJCX0K IAkJZWxzZSBpZiAoZXJybm8gPT0gRVJBTkdFKQogCQl7CiAJCQlpZiAocmVzdWx0ICE9IDAuMCkK LQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5V TEwpOwogCQkJZWxzZQotCQkJCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X3Vu ZGVyZmxvd19lcnJvcihOVUxMKTsKIAkJfQogCQllbHNlCiAJCXsKIAkJCWlmICh1bmxpa2VseShp c2luZihyZXN1bHQpKSkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOwogCQkJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjApICYmIGFy ZzEgIT0gMC4wKQotCQkJCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X3VuZGVy Zmxvd19lcnJvcihOVUxMKTsKIAkJfQogCX0KIApAQCAtMTY5MSwxNCArMTY5MSwxNCBAQCBkZXhw KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCWlmICh1bmxpa2VseShlcnJubyA9PSBFUkFOR0UpKQogCQl7 CiAJCQlpZiAocmVzdWx0ICE9IDAuMCkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJ CWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQkJZWxzZQotCQkJCWZsb2F0X3VuZGVyZmxv d19lcnJvcigpOworCQkJCWZsb2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKIAkJfQogCQllbHNl IGlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSkKLQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7 CisJCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAkJZWxzZSBpZiAodW5saWtlbHkocmVz dWx0ID09IDAuMCkpCi0JCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X3VuZGVy Zmxvd19lcnJvcihOVUxMKTsKIAl9CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CkBAIC0x NzI5LDkgKzE3MjksOSBAQCBkbG9nMShQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gbG9n KGFyZzEpOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYoYXJnMSkpCi0J CWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwog CWlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wKSAmJiBhcmcxICE9IDEuMCkKLQkJZmxvYXRfdW5k ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JF VFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTE3NjIsOSArMTc2Miw5IEBAIGRsb2cxMChQR19G VU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gbG9nMTAoYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlz aW5mKHJlc3VsdCkpICYmICFpc2luZihhcmcxKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsK KwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAw LjApICYmIGFyZzEgIT0gMS4wKQotCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRf dW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpA QCAtMTc5NSw3ICsxNzk1LDcgQEAgZGFjb3MoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9 IGFjb3MoYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9vdmVy Zmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVS Tl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTE4MjYsNyArMTgyNiw3IEBAIGRhc2luKFBHX0ZVTkNU SU9OX0FSR1MpCiAKIAlyZXN1bHQgPSBhc2luKGFyZzEpOwogCWlmICh1bmxpa2VseShpc2luZihy ZXN1bHQpKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJy b3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0xODUyLDcgKzE4 NTIsNyBAQCBkYXRhbihQR19GVU5DVElPTl9BUkdTKQogCSAqLwogCXJlc3VsdCA9IGF0YW4oYXJn MSk7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJv cigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgo cmVzdWx0KTsKIH0KQEAgLTE4NzgsNyArMTg3OCw3IEBAIGRhdGFuMihQR19GVU5DVElPTl9BUkdT KQogCSAqLwogCXJlc3VsdCA9IGF0YW4yKGFyZzEsIGFyZzIpOwogCWlmICh1bmxpa2VseShpc2lu ZihyZXN1bHQpKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3df ZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0xOTE5LDcg KzE5MTksNyBAQCBkY29zKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9O VU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiaW5wdXQgaXMgb3V0IG9m IHJhbmdlIikpKTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJm bG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJO X0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMTk3NCw3ICsxOTc0LDcgQEAgZHNpbihQR19GVU5DVElP Tl9BUkdTKQogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0Up LAogCQkJCSBlcnJtc2coImlucHV0IGlzIG91dCBvZiByYW5nZSIpKSk7CiAJaWYgKHVubGlrZWx5 KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVy Zmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTIx NTQsNyArMjE1NCw3IEBAIGRhY29zZChQR19GVU5DVElPTl9BUkdTKQogCQlyZXN1bHQgPSA5MC4w ICsgYXNpbmRfcTEoLWFyZzEpOwogCiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlm bG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAog CVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTIxOTEsNyArMjE5MSw3IEBAIGRhc2lu ZChQR19GVU5DVElPTl9BUkdTKQogCQlyZXN1bHQgPSAtYXNpbmRfcTEoLWFyZzEpOwogCiAJaWYg KHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlm bG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsK IH0KQEAgLTIyMjMsNyArMjIyMyw3IEBAIGRhdGFuZChQR19GVU5DVElPTl9BUkdTKQogCXJlc3Vs dCA9IChhdGFuX2FyZzEgLyBhdGFuXzFfMCkgKiA0NS4wOwogCiAJaWYgKHVubGlrZWx5KGlzaW5m KHJlc3VsdCkpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19l cnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTIyNTksNyAr MjI1OSw3IEBAIGRhdGFuMmQoUEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSAoYXRhbjJfYXJn MV9hcmcyIC8gYXRhbl8xXzApICogNDUuMDsKIAogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQp KSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVM TCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0yMzgyLDcgKzIzODIsNyBA QCBkY29zZChQR19GVU5DVElPTl9BUkdTKQogCXJlc3VsdCA9IHNpZ24gKiBjb3NkX3ExKGFyZzEp OwogCiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJv cigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgo cmVzdWx0KTsKIH0KQEAgLTI1MDQsNyArMjUwNCw3IEBAIGRzaW5kKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJcmVzdWx0ID0gc2lnbiAqIHNpbmRfcTEoYXJnMSk7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYo cmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vy cm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjY2Miw3ICsy NjYyLDcgQEAgZGNvc2goUEdfRlVOQ1RJT05fQVJHUykKIAkJcmVzdWx0ID0gZ2V0X2Zsb2F0OF9p bmZpbml0eSgpOwogCiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjApKQotCQlmbG9hdF91bmRl cmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVU VVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjY4Miw3ICsyNjgyLDcgQEAgZHRhbmgoUEdfRlVO Q1RJT05fQVJHUykKIAlyZXN1bHQgPSB0YW5oKGFyZzEpOwogCiAJaWYgKHVubGlrZWx5KGlzaW5m KHJlc3VsdCkpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19l cnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTI3ODIsNyAr Mjc4Miw3IEBAIGRlcmYoUEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSBlcmYoYXJnMSk7CiAK IAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7 CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1 bHQpOwogfQpAQCAtMjgwMiw3ICsyODAyLDcgQEAgZGVyZmMoUEdfRlVOQ1RJT05fQVJHUykKIAly ZXN1bHQgPSBlcmZjKGFyZzEpOwogCiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlm bG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAog CVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTI4MzEsNyArMjgzMSw3IEBAIGRnYW1t YShQR19GVU5DVElPTl9BUkdTKQogCQkvKiBQZXIgUE9TSVgsIGFuIGlucHV0IG9mIC1JbmYgY2F1 c2VzIGEgZG9tYWluIGVycm9yICovCiAJCWlmIChhcmcxIDwgMCkKIAkJewotCQkJZmxvYXRfb3Zl cmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQkJcmVzdWx0 ID0gZ2V0X2Zsb2F0OF9uYW4oKTsJLyoga2VlcCBjb21waWxlciBxdWlldCAqLwogCQl9CiAJCWVs c2UKQEAgLTI4NTMsMTIgKzI4NTMsMTIgQEAgZGdhbW1hKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCWlm IChlcnJubyAhPSAwIHx8IGlzaW5mKHJlc3VsdCkgfHwgaXNuYW4ocmVzdWx0KSkKIAkJewogCQkJ aWYgKHJlc3VsdCAhPSAwLjApCi0JCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCQlmbG9h dF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAkJCWVsc2UKLQkJCQlmbG9hdF91bmRlcmZsb3dfZXJy b3IoKTsKKwkJCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7CiAJCX0KIAkJZWxzZSBpZiAo cmVzdWx0ID09IDAuMCkKLQkJCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQkJZmxvYXRfdW5k ZXJmbG93X2Vycm9yKE5VTEwpOwogCX0KIAogCVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKQEAg LTI4OTYsNyArMjg5Niw3IEBAIGRsZ2FtbWEoUEdfRlVOQ1RJT05fQVJHUykKIAkgKiB0byByZXBv cnQgb3ZlcmZsb3csIGJ1dCBpdCBzaG91bGQgbmV2ZXIgdW5kZXJmbG93LgogCSAqLwogCWlmIChl cnJubyA9PSBFUkFOR0UgfHwgKGlzaW5mKHJlc3VsdCkgJiYgIWlzaW5mKGFyZzEpKSkKLQkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQ R19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0zMDM2LDcgKzMwMzYsNyBAQCBmbG9hdDhf Y29tYmluZShQR19GVU5DVElPTl9BUkdTKQogCQl0bXAgPSBTeDEgLyBOMSAtIFN4MiAvIE4yOwog CQlTeHggPSBTeHgxICsgU3h4MiArIE4xICogTjIgKiB0bXAgKiB0bXAgLyBOOwogCQlpZiAodW5s aWtlbHkoaXNpbmYoU3h4KSkgJiYgIWlzaW5mKFN4eDEpICYmICFpc2luZihTeHgyKSkKLQkJCWZs b2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAl9 CiAKIAkvKgpAQCAtMzEwMyw3ICszMTAzLDcgQEAgZmxvYXQ4X2FjY3VtKFBHX0ZVTkNUSU9OX0FS R1MpCiAJCWlmIChpc2luZihTeCkgfHwgaXNpbmYoU3h4KSkKIAkJewogCQkJaWYgKCFpc2luZih0 cmFuc3ZhbHVlc1sxXSkgJiYgIWlzaW5mKG5ld3ZhbCkpCi0JCQkJZmxvYXRfb3ZlcmZsb3dfZXJy b3IoKTsKKwkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCQkJU3h4ID0gZ2V0X2Zs b2F0OF9uYW4oKTsKIAkJfQpAQCAtMzE4Niw3ICszMTg2LDcgQEAgZmxvYXQ0X2FjY3VtKFBHX0ZV TkNUSU9OX0FSR1MpCiAJCWlmIChpc2luZihTeCkgfHwgaXNpbmYoU3h4KSkKIAkJewogCQkJaWYg KCFpc2luZih0cmFuc3ZhbHVlc1sxXSkgJiYgIWlzaW5mKG5ld3ZhbCkpCi0JCQkJZmxvYXRfb3Zl cmZsb3dfZXJyb3IoKTsKKwkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCQkJU3h4 ID0gZ2V0X2Zsb2F0OF9uYW4oKTsKIAkJfQpAQCAtMzQ1Myw3ICszNDUzLDcgQEAgZmxvYXQ4X3Jl Z3JfYWNjdW0oUEdfRlVOQ1RJT05fQVJHUykKIAkJCQkoaXNpbmYoU3h5KSAmJgogCQkJCSAhaXNp bmYodHJhbnN2YWx1ZXNbMV0pICYmICFpc2luZihuZXd2YWxYKSAmJgogCQkJCSAhaXNpbmYodHJh bnN2YWx1ZXNbM10pICYmICFpc2luZihuZXd2YWxZKSkpCi0JCQkJZmxvYXRfb3ZlcmZsb3dfZXJy b3IoKTsKKwkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCQkJaWYgKGlzaW5mKFN4 eCkpCiAJCQkJU3h4ID0gZ2V0X2Zsb2F0OF9uYW4oKTsKQEAgLTM2MjYsMTUgKzM2MjYsMTUgQEAg ZmxvYXQ4X3JlZ3JfY29tYmluZShQR19GVU5DVElPTl9BUkdTKQogCQl0bXAxID0gU3gxIC8gTjEg LSBTeDIgLyBOMjsKIAkJU3h4ID0gU3h4MSArIFN4eDIgKyBOMSAqIE4yICogdG1wMSAqIHRtcDEg LyBOOwogCQlpZiAodW5saWtlbHkoaXNpbmYoU3h4KSkgJiYgIWlzaW5mKFN4eDEpICYmICFpc2lu ZihTeHgyKSkKLQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQlmbG9hdF9vdmVyZmxvd19l cnJvcihOVUxMKTsKIAkJU3kgPSBmbG9hdDhfcGwoU3kxLCBTeTIpOwogCQl0bXAyID0gU3kxIC8g TjEgLSBTeTIgLyBOMjsKIAkJU3l5ID0gU3l5MSArIFN5eTIgKyBOMSAqIE4yICogdG1wMiAqIHRt cDIgLyBOOwogCQlpZiAodW5saWtlbHkoaXNpbmYoU3l5KSkgJiYgIWlzaW5mKFN5eTEpICYmICFp c2luZihTeXkyKSkKLQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQlmbG9hdF9vdmVyZmxv d19lcnJvcihOVUxMKTsKIAkJU3h5ID0gU3h5MSArIFN4eTIgKyBOMSAqIE4yICogdG1wMSAqIHRt cDIgLyBOOwogCQlpZiAodW5saWtlbHkoaXNpbmYoU3h5KSkgJiYgIWlzaW5mKFN4eTEpICYmICFp c2luZihTeHkyKSkKLQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQlmbG9hdF9vdmVyZmxv d19lcnJvcihOVUxMKTsKIAkJaWYgKGZsb2F0OF9lcShDeDEsIEN4MikpCiAJCQlDeCA9IEN4MTsK IAkJZWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaCBiL3NyYy9pbmNs dWRlL3V0aWxzL2Zsb2F0LmgKaW5kZXggYjM0MDY3OGNhOTIuLmQyZTk4OTk2MGE1IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2Zs b2F0LmgKQEAgLTMwLDkgKzMwLDkgQEAgZXh0ZXJuIFBHRExMSU1QT1JUIGludCBleHRyYV9mbG9h dF9kaWdpdHM7CiAvKgogICogVXRpbGl0eSBmdW5jdGlvbnMgaW4gZmxvYXQuYwogICovCi1wZ19u b3JldHVybiBleHRlcm4gdm9pZCBmbG9hdF9vdmVyZmxvd19lcnJvcih2b2lkKTsKLXBnX25vcmV0 dXJuIGV4dGVybiB2b2lkIGZsb2F0X3VuZGVyZmxvd19lcnJvcih2b2lkKTsKLXBnX25vcmV0dXJu IGV4dGVybiB2b2lkIGZsb2F0X3plcm9fZGl2aWRlX2Vycm9yKHZvaWQpOworZXh0ZXJuIHZvaWQg ZmxvYXRfb3ZlcmZsb3dfZXJyb3Ioc3RydWN0IE5vZGUgKmVzY29udGV4dCk7CitleHRlcm4gdm9p ZCBmbG9hdF91bmRlcmZsb3dfZXJyb3Ioc3RydWN0IE5vZGUgKmVzY29udGV4dCk7CitleHRlcm4g dm9pZCBmbG9hdF96ZXJvX2RpdmlkZV9lcnJvcihzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KTsKIGV4 dGVybiBpbnQJaXNfaW5maW5pdGUoZmxvYXQ4IHZhbCk7CiBleHRlcm4gZmxvYXQ4IGZsb2F0OGlu X2ludGVybmFsKGNoYXIgKm51bSwgY2hhciAqKmVuZHB0cl9wLAogCQkJCQkJCQljb25zdCBjaGFy ICp0eXBlX25hbWUsIGNvbnN0IGNoYXIgKm9yaWdfc3RyaW5nLApAQCAtMTA0LDcgKzEwNCw3IEBA IGZsb2F0NF9wbChjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIpCiAKIAlyZXN1 bHQgPSB2YWwxICsgdmFsMjsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5m KHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlyZXR1cm4gcmVzdWx0OwogfQpAQCAtMTE2LDcg KzExNiw3IEBAIGZsb2F0OF9wbChjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIp CiAKIAlyZXN1bHQgPSB2YWwxICsgdmFsMjsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkg JiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3Io KTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlyZXR1cm4gcmVzdWx0OwogfQpA QCAtMTI4LDcgKzEyOCw3IEBAIGZsb2F0NF9taShjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxv YXQ0IHZhbDIpCiAKIAlyZXN1bHQgPSB2YWwxIC0gdmFsMjsKIAlpZiAodW5saWtlbHkoaXNpbmYo cmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3ZlcmZs b3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlyZXR1cm4gcmVz dWx0OwogfQpAQCAtMTQwLDcgKzE0MCw3IEBAIGZsb2F0OF9taShjb25zdCBmbG9hdDggdmFsMSwg Y29uc3QgZmxvYXQ4IHZhbDIpCiAKIAlyZXN1bHQgPSB2YWwxIC0gdmFsMjsKIAlpZiAodW5saWtl bHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAly ZXR1cm4gcmVzdWx0OwogfQpAQCAtMTUyLDkgKzE1Miw5IEBAIGZsb2F0NF9tdWwoY29uc3QgZmxv YXQ0IHZhbDEsIGNvbnN0IGZsb2F0NCB2YWwyKQogCiAJcmVzdWx0ID0gdmFsMSAqIHZhbDI7CiAJ aWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZih2YWwxKSAmJiAhaXNpbmYodmFs MikpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5V TEwpOwogCWlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wZikgJiYgdmFsMSAhPSAwLjBmICYmIHZh bDIgIT0gMC4wZikKLQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X3VuZGVyZmxv d19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0xNjYsOSArMTY2LDkgQEAg ZmxvYXQ4X211bChjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCiAKIAlyZXN1 bHQgPSB2YWwxICogdmFsMjsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5m KHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjApICYm IHZhbDEgIT0gMC4wICYmIHZhbDIgIT0gMC4wKQotCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoKTsK KwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJcmV0dXJuIHJlc3VsdDsKIH0KQEAg LTE3OSwxMiArMTc5LDEyIEBAIGZsb2F0NF9kaXYoY29uc3QgZmxvYXQ0IHZhbDEsIGNvbnN0IGZs b2F0NCB2YWwyKQogCWZsb2F0NAkJcmVzdWx0OwogCiAJaWYgKHVubGlrZWx5KHZhbDIgPT0gMC4w ZikgJiYgIWlzbmFuKHZhbDEpKQotCQlmbG9hdF96ZXJvX2RpdmlkZV9lcnJvcigpOworCQlmbG9h dF96ZXJvX2RpdmlkZV9lcnJvcihOVUxMKTsKIAlyZXN1bHQgPSB2YWwxIC8gdmFsMjsKIAlpZiAo dW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpKQotCQlmbG9hdF9vdmVyZmxv d19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAlpZiAodW5saWtlbHko cmVzdWx0ID09IDAuMGYpICYmIHZhbDEgIT0gMC4wZiAmJiAhaXNpbmYodmFsMikpCi0JCWZsb2F0 X3VuZGVyZmxvd19lcnJvcigpOworCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAly ZXR1cm4gcmVzdWx0OwogfQpAQCAtMTk1LDEyICsxOTUsMTIgQEAgZmxvYXQ4X2Rpdihjb25zdCBm bG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCiAJZmxvYXQ4CQlyZXN1bHQ7CiAKIAlpZiAo dW5saWtlbHkodmFsMiA9PSAwLjApICYmICFpc25hbih2YWwxKSkKLQkJZmxvYXRfemVyb19kaXZp ZGVfZXJyb3IoKTsKKwkJZmxvYXRfemVyb19kaXZpZGVfZXJyb3IoTlVMTCk7CiAJcmVzdWx0ID0g dmFsMSAvIHZhbDI7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZih2YWwx KSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVM TCk7CiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjApICYmIHZhbDEgIT0gMC4wICYmICFpc2lu Zih2YWwyKSkKLQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X3VuZGVyZmxvd19l cnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9Ci0tIAoyLjM0LjEKCg== --000000000000ed7e80064d704a27 Content-Type: text/x-patch; charset="US-ASCII"; name="v22-0022-CAST-expr-AS-newtype-DEFAULT-expr-ON-CONVERSION-ERROR.patch" Content-Disposition: attachment; filename="v22-0022-CAST-expr-AS-newtype-DEFAULT-expr-ON-CONVERSION-ERROR.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmymioc55 RnJvbSBhNjRiNjE1ZmViMzgwOTBlNzc5YTg2OWE4YzQ1OTU4Y2MxMThiMjFiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTY6MTA6MzMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MiAyMi8yM10gQ0FTVChleHByIEFTIG5ld3R5cGUgREVGQVVMVCBleHByIE9OIENPTlZFUlNJT04K IEVSUk9SKQoKSW50cm9kdWNlIFNRTC1zdGFuZGFyZCBzYWZlIHR5cGUgY2FzdCBzeW50YXg6CiAg ICBDQVNUKGV4cHIgQVMgbmV3dHlwZSBERUZBVUxUIGV4cHIgT04gQ09OVkVSU0lPTiBFUlJPUikK VGhpcyBhbGxvdyB1c2VycyB0byBzcGVjaWZ5IGEgZGVmYXVsdCBmYWxsYmFjayBleHByZXNzaW9u IGlmIGEgdHlwZSBjb252ZXJzaW9uCmZhaWxzLCByYXRoZXIgdGhhbiByYWlzaW5nIGFuIGVycm9y LgoKV2l0aCB0aGlzIHBhdGNoc2V0LCBhbG1vc3QgYWxsIG9mIHRoZSBjYXN0IGZ1bmN0aW9ucyBp biBwZ19jYXN0LmNhc3RmdW5jIGFyZSBub3cKZXJyb3Itc2FmZS4gIENvZXJjZVZpYUlPIGFuZCBD b2VyY2VUb0RvbWFpbiB3ZXJlIGFscmVhZHkgZXJyb3Itc2FmZSBpbiB0aGUgSEVBRCwKc2VlIFsw XSwgdGhpcyBwYXRjaCBleHRlbmRzIGVycm9yLXNhZmUgYmVoYXZpb3IgdG8gQXJyYXlDb2VyY2VF eHByLgoKRXhhbXBsZToKICAgIC0tIFJldHVybnMgJzIwMTEtMDEtMDEnIGluc3RlYWQgb2YgdGhy b3dpbmcgYW4gaW52YWxpZCBpbnB1dCBzeW50YXggZXJyb3IuCiAgICBTRUxFQ1QgQ0FTVCgnMScg QVMgZGF0ZSBERUZBVUxUICcyMDExLTAxLTAxJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKCiMgQnVt cHMgY2F0dmVyc2lvbiByZXF1aXJlZAoKWzBdOiBodHRwczovL2dpdC5wb3N0Z3Jlc3FsLm9yZy9j Z2l0L3Bvc3RncmVzcWwuZ2l0L2NvbW1pdC8/aWQ9YWFhZjk0NDllYzZiZTYyY2IwZDMwZWQzNTg4 ZGMzODRmNTYyNzRiCgpBdXRob3I6IGppYW4gaGUgPGppYW4udW5pdmVyc2FsaXR5QGdtYWlsLmNv bT4KUmV2aWV3ZWQtYnk6IEFtdWwgU3VsIDxzdWxhbXVsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6 IEFuZHJldyBEdW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PgpSZXZpZXdlZC1ieTogQ29yZXkg SHVpbmtlciA8Y29yZXkuaHVpbmtlckBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBLaXJpbGwgUmVz aGtlIDxyZXNoa2VraXJpbGxAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogTWF0aGV1cyBBbGNhbnRh cmEgPG1hdGhldXNzc2lsdjk3QGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3Iu ZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFA bWFpbC5nbWFpbC5jb20KQ29tbWl0ZmVzdDogaHR0cHM6Ly9jb21taXRmZXN0LnBvc3RncmVzcWwu b3JnL3BhdGNoLzU5NDEKLS0tCiBjb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHQub3V0ICAg ICAgICAgICAgfCAgIDUgKwogY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0ICAg ICAgICAgIHwgICA1ICsKIGNvbnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQuc3FsICAgICAgICAgICAg ICAgICB8ICAgMiArCiAuLi4vcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3NlbGVjdC5vdXQg ICAgfCAgMjQgKy0KIGNvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3NxbC9zZWxlY3Quc3FsICAg ICB8ICAgNSArCiBkb2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwgICAgICAgICAgICAgICAgICAgICAg fCAgMzIgKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYyAgICAgICAgICAgICAgIHwg IDcyICstCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jICAgICAgICAgfCAg MjkgKwogc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMgICAgICAgICAgIHwgIDU2 ICsrCiBzcmMvYmFja2VuZC9ub2Rlcy9tYWtlZnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgIDEg Kwogc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgICAgICAgICAgICAgICAgIHwgIDUzICsK IHNyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyAgICAgICAgICB8ICA4OSArLQog c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDIzICsKIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfY29lcmNlLmMgICAgICAgICAgICAgfCAxNDUgKystCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCA0MTggKysrKysrKy0K IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgICAgICAgICAgICAgICB8ICAgNCArCiBz cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgICAgICAgICAgICAgfCAgIDMgKy0KIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV90eXBlLmMgICAgICAgICAgICAgICB8ICAxOCArCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgICAgICAgICAgICAgfCAgMjUgKwogc3JjL2JhY2tl bmQvdXRpbHMvZm1nci9mbWdyLmMgICAgICAgICAgICAgICAgIHwgIDEzICsKIHNyYy9pbmNsdWRl L2V4ZWN1dG9yL2V4ZWNFeHByLmggICAgICAgICAgICAgICB8ICAgNyArCiBzcmMvaW5jbHVkZS9m bWdyLmggICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvbm9k ZXMvZXhlY25vZGVzLmggICAgICAgICAgICAgICAgIHwgIDIxICsKIHNyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9w cmltbm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgMjcgKwogc3JjL2luY2x1ZGUvb3B0aW1pemVy L29wdGltaXplci5oICAgICAgICAgICAgIHwgICAyICstCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2VfY29lcmNlLmggICAgICAgICAgICAgfCAgMTYgKy0KIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9ub2RlLmggICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vf dHlwZS5oICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9j YXN0Lm91dCAgICAgICAgICAgIHwgOTQyICsrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9jcmVhdGVfY2FzdC5vdXQgICAgIHwgICA1ICsKIHNyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvZXF1aXZjbGFzcy5vdXQgICAgICB8ICAgNyArCiBzcmMvdGVzdC9yZWdyZXNz L3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2Nhc3Quc3FsICAgICAgICAgICAgICAgICB8IDM5MiArKysrKysrKwogc3JjL3Rlc3QvcmVn cmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2VxdWl2Y2xhc3Muc3FsICAgICAgICAgICB8ICAgMyArCiBzcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgIDIgKwogNDAgZmlsZXMgY2hhbmdlZCwg MjM5NiBpbnNlcnRpb25zKCspLCA4MSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Nhc3Qub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj L3Rlc3QvcmVncmVzcy9zcWwvY2FzdC5zcWwKCmRpZmYgLS1naXQgYS9jb250cmliL2NpdGV4dC9l eHBlY3RlZC9jaXRleHQub3V0IGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91dApp bmRleCA4YzBiZjU0ZjBmMy4uZWNmYWYyYWE4NWEgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY2l0ZXh0 L2V4cGVjdGVkL2NpdGV4dC5vdXQKKysrIGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0 Lm91dApAQCAtMTAsNiArMTAsMTEgQEAgV0hFUkUgb3BjLm9pZCA+PSAxNjM4NCBBTkQgTk9UIGFt dmFsaWRhdGUob3BjLm9pZCk7CiAtLS0tLS0tLSstLS0tLS0tLS0KICgwIHJvd3MpCiAKK1NFTEVD VCBDQVNUKCdhYmMnOjpicGNoYXIgQVMgY2l0ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsgLS0gZXJyb3IKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBjaGFyYWN0ZXIgdG8g Y2l0ZXh0IHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4uLiBP TiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKCdhYmMnOjpicGNoYXIgQVMg Y2l0ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSS4uLgorICAgICAgICAgICAgICAgICAgICBe CitISU5UOiAgU2FmZSB0eXBlIGNhc3QgZm9yIHVzZXItZGVmaW5lZCB0eXBlcyBhcmUgbm90IHll dCBzdXBwb3J0ZWQuCiAtLSBUZXN0IHRoZSBvcGVyYXRvcnMgYW5kIGluZGV4aW5nIGZ1bmN0aW9u cwogLS0gVGVzdCA9IGFuZCA8Pi4KIFNFTEVDVCAnYSc6OmNpdGV4dCA9ICdhJzo6Y2l0ZXh0IEFT IHQ7CmRpZmYgLS1naXQgYS9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHRfMS5vdXQgYi9j b250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHRfMS5vdXQKaW5kZXggYzVlNWYxODBmMmIuLjNl MTJjZDc5M2FkIDEwMDY0NAotLS0gYS9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHRfMS5v dXQKKysrIGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0CkBAIC0xMCw2ICsx MCwxMSBAQCBXSEVSRSBvcGMub2lkID49IDE2Mzg0IEFORCBOT1QgYW12YWxpZGF0ZShvcGMub2lk KTsKIC0tLS0tLS0tKy0tLS0tLS0tLQogKDAgcm93cykKIAorU0VMRUNUIENBU1QoJ2FiYyc6OmJw Y2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJv cgorRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGNoYXJhY3RlciB0byBjaXRleHQgd2hlbiBERUZB VUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJS T1IKK0xJTkUgMTogU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBTYWZlIHR5 cGUgY2FzdCBmb3IgdXNlci1kZWZpbmVkIHR5cGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZC4KIC0t IFRlc3QgdGhlIG9wZXJhdG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25zCiAtLSBUZXN0ID0gYW5k IDw+LgogU0VMRUNUICdhJzo6Y2l0ZXh0ID0gJ2EnOjpjaXRleHQgQVMgdDsKZGlmZiAtLWdpdCBh L2NvbnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQuc3FsIGIvY29udHJpYi9jaXRleHQvc3FsL2NpdGV4 dC5zcWwKaW5kZXggYWExY2Y5YWJkNWMuLmM4MjBiMGJkNGQ5IDEwMDY0NAotLS0gYS9jb250cmli L2NpdGV4dC9zcWwvY2l0ZXh0LnNxbAorKysgYi9jb250cmliL2NpdGV4dC9zcWwvY2l0ZXh0LnNx bApAQCAtOSw2ICs5LDggQEAgU0VMRUNUIGFtbmFtZSwgb3BjbmFtZQogRlJPTSBwZ19vcGNsYXNz IG9wYyBMRUZUIEpPSU4gcGdfYW0gYW0gT04gYW0ub2lkID0gb3BjbWV0aG9kCiBXSEVSRSBvcGMu b2lkID49IDE2Mzg0IEFORCBOT1QgYW12YWxpZGF0ZShvcGMub2lkKTsKIAorU0VMRUNUIENBU1Qo J2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OyAtLSBlcnJvcgorCiAtLSBUZXN0IHRoZSBvcGVyYXRvcnMgYW5kIGluZGV4aW5nIGZ1bmN0aW9u cwogCiAtLSBUZXN0ID0gYW5kIDw+LgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ19zdGF0X3N0YXRl bWVudHMvZXhwZWN0ZWQvc2VsZWN0Lm91dCBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4 cGVjdGVkL3NlbGVjdC5vdXQKaW5kZXggYTA2OTExOWM3OTAuLjg0ZjEwODEwZjcyIDEwMDY0NAot LS0gYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9zZWxlY3Qub3V0CisrKyBi L2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3NlbGVjdC5vdXQKQEAgLTczLDYg KzczLDI1IEBAIFNFTEVDVCAxIEFTICJpbnQiIE9GRlNFVCAyIEZFVENIIEZJUlNUIDMgUk9XIE9O TFk7CiAtLS0tLQogKDAgcm93cykKIAorLS0gZXJyb3Igc2FmZSB0eXBlIGNhc3QKK1NFTEVDVCBD QVNUKCdhJyBBUyBpbnQgREVGQVVMVCAyIE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDQgCist LS0tLS0KKyAgICAyCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcxMicgQVMgbnVtZXJpYyBERUZB VUxUIDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgbnVtZXJpYyAKKy0tLS0tLS0tLQorICAgICAg MTIKKygxIHJvdykKKworU0VMRUNUIENBU1QoJzEyJyBBUyBudW1lcmljKDEwKSBERUZBVUxUIDIg T04gQ09OVkVSU0lPTiBFUlJPUik7CisgbnVtZXJpYyAKKy0tLS0tLS0tLQorICAgICAgMTIKKygx IHJvdykKKwogLS0gRElTVElOQ1QgYW5kIE9SREVSIEJZIHBhdHRlcm5zCiAtLSBUcnkgc29tZSBx dWVyeSBwZXJtdXRhdGlvbnMgd2hpY2ggb25jZSBwcm9kdWNlZCBpZGVudGljYWwgcXVlcnkgSURz CiBTRUxFQ1QgRElTVElOQ1QgMSBBUyAiaW50IjsKQEAgLTIyMiw2ICsyNDEsOSBAQCBTRUxFQ1Qg Y2FsbHMsIHJvd3MsIHF1ZXJ5IEZST00gcGdfc3RhdF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5 IENPTExBVEUgIkMiOwogICAgICAyIHwgICAgMiB8IFNFTEVDVCAkMSBBUyAiaW50IiBPUkRFUiBC WSAxCiAgICAgIDEgfCAgICAyIHwgU0VMRUNUICQxIEFTIGkgVU5JT04gU0VMRUNUICQyIE9SREVS IEJZIGkKICAgICAgMSB8ICAgIDEgfCBTRUxFQ1QgJDEgfHwgJDIKKyAgICAgMSB8ICAgIDEgfCBT RUxFQ1QgQ0FTVCgkMSBBUyBpbnQgREVGQVVMVCAkMiBPTiBDT05WRVJTSU9OIEVSUk9SKQorICAg ICAxIHwgICAgMSB8IFNFTEVDVCBDQVNUKCQxIEFTIG51bWVyaWMgREVGQVVMVCAkMiBPTiBDT05W RVJTSU9OIEVSUk9SKQorICAgICAxIHwgICAgMSB8IFNFTEVDVCBDQVNUKCQxIEFTIG51bWVyaWMo MTApIERFRkFVTFQgJDIgT04gQ09OVkVSU0lPTiBFUlJPUikKICAgICAgMiB8ICAgIDIgfCBTRUxF Q1QgRElTVElOQ1QgJDEgQVMgImludCIKICAgICAgMCB8ICAgIDAgfCBTRUxFQ1QgY2FsbHMsIHJv d3MsIHF1ZXJ5IEZST00gcGdfc3RhdF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENPTExBVEUg IkMiCiAgICAgIDEgfCAgICAxIHwgU0VMRUNUIHBnX3N0YXRfc3RhdGVtZW50c19yZXNldCgpIElT IE5PVCBOVUxMIEFTIHQKQEAgLTIzMCw3ICsyNTIsNyBAQCBTRUxFQ1QgY2FsbHMsIHJvd3MsIHF1 ZXJ5IEZST00gcGdfc3RhdF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENPTExBVEUgIkMiOwog ICAgICAgIHwgICAgICB8ICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgfCAgICAgIHwgICBT RUxFQ1QgZiBGUk9NIHQgT1JERVIgQlkgZgogICAgICAxIHwgICAgMSB8IHNlbGVjdCAkMTo6anNv bmIgPyAkMgotKDE3IHJvd3MpCisoMjAgcm93cykKIAogU0VMRUNUIHBnX3N0YXRfc3RhdGVtZW50 c19yZXNldCgpIElTIE5PVCBOVUxMIEFTIHQ7CiAgdCAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdf c3RhdF9zdGF0ZW1lbnRzL3NxbC9zZWxlY3Quc3FsIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVu dHMvc3FsL3NlbGVjdC5zcWwKaW5kZXggYTEwZDYxOGMwMzQuLjRiZTk3OTc3YmE2IDEwMDY0NAot LS0gYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvc2VsZWN0LnNxbAorKysgYi9jb250 cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvc2VsZWN0LnNxbApAQCAtMjUsNiArMjUsMTEgQEAg U0VMRUNUIDEgQVMgImludCIgTElNSVQgMyBPRkZTRVQgMzsKIFNFTEVDVCAxIEFTICJpbnQiIE9G RlNFVCAxIEZFVENIIEZJUlNUIDIgUk9XIE9OTFk7CiBTRUxFQ1QgMSBBUyAiaW50IiBPRkZTRVQg MiBGRVRDSCBGSVJTVCAzIFJPVyBPTkxZOwogCistLSBlcnJvciBzYWZlIHR5cGUgY2FzdAorU0VM RUNUIENBU1QoJ2EnIEFTIGludCBERUZBVUxUIDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxF Q1QgQ0FTVCgnMTInIEFTIG51bWVyaWMgREVGQVVMVCAyIE9OIENPTlZFUlNJT04gRVJST1IpOwor U0VMRUNUIENBU1QoJzEyJyBBUyBudW1lcmljKDEwKSBERUZBVUxUIDIgT04gQ09OVkVSU0lPTiBF UlJPUik7CisKIC0tIERJU1RJTkNUIGFuZCBPUkRFUiBCWSBwYXR0ZXJucwogLS0gVHJ5IHNvbWUg cXVlcnkgcGVybXV0YXRpb25zIHdoaWNoIG9uY2UgcHJvZHVjZWQgaWRlbnRpY2FsIHF1ZXJ5IElE cwogU0VMRUNUIERJU1RJTkNUIDEgQVMgImludCI7CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv c3ludGF4LnNnbWwgYi9kb2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwKaW5kZXggNjc0ODI5OTY4NjEu LmFhMGZjMWVmODFjIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwKKysrIGIv ZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sCkBAIC0yMDcxLDYgKzIwNzEsMTAgQEAgQ0FTVCAoIDxy ZXBsYWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxlPnR5cGU8 L3JlcGxhY2VhYmxlPgogICAgIFRoZSA8bGl0ZXJhbD5DQVNUPC9saXRlcmFsPiBzeW50YXggY29u Zm9ybXMgdG8gU1FMOyB0aGUgc3ludGF4IHdpdGgKICAgICA8bGl0ZXJhbD46OjwvbGl0ZXJhbD4g aXMgaGlzdG9yaWNhbCA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+CiAgICAg dXNhZ2UuCisgICAgVGhlIGRlZmF1bHQgYmVoYXZpb3Igd2hlbiBubyA8bGl0ZXJhbD5PTiBDT05W RVJTSU9OIEVSUk9SPC9saXRlcmFsPiBjbGF1c2UgaXMgc3BlY2lmaWVkIGlzIGVxdWl2YWxlbnQg dG86Cis8c3lub3BzaXM+CitDQVNUICggPHJlcGxhY2VhYmxlPmV4cHJlc3Npb248L3JlcGxhY2Vh YmxlPiBBUyA8cmVwbGFjZWFibGU+dHlwZTwvcmVwbGFjZWFibGU+IEVSUk9SIE9OIENPTlZFUlNJ T04gRVJST1IgKQorPC9zeW5vcHNpcz4KICAgIDwvcGFyYT4KIAogICAgPHBhcmE+CkBAIC0yMTI1 LDYgKzIxMjksMzQgQEAgQ0FTVCAoIDxyZXBsYWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNlYWJs ZT4gQVMgPHJlcGxhY2VhYmxlPnR5cGU8L3JlcGxhY2VhYmxlPgogICAgICA8eHJlZiBsaW5rZW5k PSJzcWwtY3JlYXRlY2FzdCIvPi4KICAgICA8L3BhcmE+CiAgICA8L25vdGU+CisKKyA8c2VjdDMg aWQ9InNxbC1zeW50YXgtdHlwZS1jYXN0cy1zYWZlIj4KKyAgPHRpdGxlPlNhZmUgVHlwZSBDYXN0 PC90aXRsZT4KKyAgIDxwYXJhPgorICAgIEEgdHlwZSBjYXN0IG1heSBvY2Nhc2lvbmFsbHkgZmFp bC4gVG8gZ3VhcmQgYWdhaW5zdCBzdWNoIGZhaWx1cmVzLCB5b3UgY2FuCisgICAgcHJvdmlkZSBh biA8bGl0ZXJhbD5PTiBDT05WRVJTSU9OIEVSUk9SPC9saXRlcmFsPiBjbGF1c2UgdG8gaGFuZGxl IHBvdGVudGlhbCBlcnJvcnMuCisgICAgVGhlIHN5bnRheCBmb3Igc2FmZSB0eXBlIGNhc3QgaXM6 Cis8c3lub3BzaXM+CitDQVNUICggPHJlcGxhY2VhYmxlPmV4cHJlc3Npb248L3JlcGxhY2VhYmxl PiBBUyA8cmVwbGFjZWFibGU+dHlwZTwvcmVwbGFjZWFibGU+IERFRkFVTFQgPHJlcGxhY2VhYmxl PmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiBPTiBDT05WRVJTSU9OIEVSUk9SICkKKzwvc3lub3Bz aXM+CisgICAgSWYgdGhlIHR5cGUgY2FzdCBmYWlscywgYW4gZXJyb3IgaXMgbm90IHJhaXNlZC4g IEluc3RlYWQsIGV2YWx1YXRpb24gZmFsbHMKKyAgICBiYWNrIHRvIHRoZSBkZWZhdWx0IDxyZXBs YWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gc3BlY2lmaWVkIGluIHRoZQorICAgIDxs aXRlcmFsPk9OIENPTlZFUlNJT04gRVJST1I8L2xpdGVyYWw+IGNsYXVzZS4KKyAgICBBdCBwcmVz ZW50LCB0aGlzIG9ubHkgc3VwcG9ydCBidWlsdC1pbiB0eXBlIGNhc3RzLCBzZWUgPHhyZWYgbGlu a2VuZD0iY2F0YWxvZy1wZy1jYXN0Ii8+LgorICAgIFVzZXItZGVmaW5lZCB0eXBlIGNhc3RzIGNy ZWF0ZWQgd2l0aCA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlY2FzdCI+Q1JFQVRFIENBU1Q8L2xp bms+CisgICAgYXJlIG5vdCBzdXBwb3J0ZWQuCisgIDwvcGFyYT4KKworICAgIDxwYXJhPgorICAg IFNvbWUgZXhhbXBsZXM6Cis8c2NyZWVuPgorU0VMRUNUIENBU1QoVEVYVCAnZXJyb3InIEFTIGlu dGVnZXIgREVGQVVMVCAzIE9OIENPTlZFUlNJT04gRVJST1IpOworPGxpbmVhbm5vdGF0aW9uPlJl c3VsdDogPC9saW5lYW5ub3RhdGlvbj48Y29tcHV0ZXJvdXRwdXQ+MzwvY29tcHV0ZXJvdXRwdXQ+ CitTRUxFQ1QgQ0FTVChURVhUICdlcnJvcicgQVMgbnVtZXJpYyBERUZBVUxUIDEuMSBPTiBDT05W RVJTSU9OIEVSUk9SKTsKKzxsaW5lYW5ub3RhdGlvbj5SZXN1bHQ6IDwvbGluZWFubm90YXRpb24+ PGNvbXB1dGVyb3V0cHV0PjEuMTwvY29tcHV0ZXJvdXRwdXQ+Cis8L3NjcmVlbj4KKyAgICA8L3Bh cmE+CisgIDwvc2VjdDM+CiAgIDwvc2VjdDI+CiAKICAgPHNlY3QyIGlkPSJzcWwtc3ludGF4LWNv bGxhdGUtZXhwcnMiPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIu YyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKaW5kZXggNzcyMjkxNDFiMzguLjY1 MjFjN2ZlMmUzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCisr KyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKQEAgLTk5LDYgKzk5LDkgQEAgc3Rh dGljIHZvaWQgRXhlY0J1aWxkQWdnVHJhbnNDYWxsKEV4cHJTdGF0ZSAqc3RhdGUsIEFnZ1N0YXRl ICphZ2dzdGF0ZSwKIHN0YXRpYyB2b2lkIEV4ZWNJbml0SnNvbkV4cHIoSnNvbkV4cHIgKmpzZXhw ciwgRXhwclN0YXRlICpzdGF0ZSwKIAkJCQkJCQkgRGF0dW0gKnJlc3YsIGJvb2wgKnJlc251bGws CiAJCQkJCQkJIEV4cHJFdmFsU3RlcCAqc2NyYXRjaCk7CitzdGF0aWMgdm9pZCBFeGVjSW5pdFNh ZmVUeXBlQ2FzdEV4cHIoU2FmZVR5cGVDYXN0RXhwciAqc3RjZXhwciwgRXhwclN0YXRlICpzdGF0 ZSwKKwkJCQkJCQkJCSBEYXR1bSAqcmVzdiwgYm9vbCAqcmVzbnVsbCwKKwkJCQkJCQkJCSBFeHBy RXZhbFN0ZXAgKnNjcmF0Y2gpOwogc3RhdGljIHZvaWQgRXhlY0luaXRKc29uQ29lcmNpb24oRXhw clN0YXRlICpzdGF0ZSwgSnNvblJldHVybmluZyAqcmV0dXJuaW5nLAogCQkJCQkJCQkgRXJyb3JT YXZlQ29udGV4dCAqZXNjb250ZXh0LCBib29sIG9taXRfcXVvdGVzLAogCQkJCQkJCQkgYm9vbCBl eGlzdHNfY29lcmNlLApAQCAtMTczNCw2ICsxNzM3LDcgQEAgRXhlY0luaXRFeHByUmVjKEV4cHIg Km5vZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAKIAkJCQllbGVtc3RhdGUtPmlubmVybW9zdF9jYXNl dmFsID0gcGFsbG9jX29iamVjdChEYXR1bSk7CiAJCQkJZWxlbXN0YXRlLT5pbm5lcm1vc3RfY2Fz ZW51bGwgPSBwYWxsb2Nfb2JqZWN0KGJvb2wpOworCQkJCWVsZW1zdGF0ZS0+ZXNjb250ZXh0ID0g c3RhdGUtPmVzY29udGV4dDsKIAogCQkJCUV4ZWNJbml0RXhwclJlYyhhY29lcmNlLT5lbGVtZXhw ciwgZWxlbXN0YXRlLAogCQkJCQkJCQkmZWxlbXN0YXRlLT5yZXN2YWx1ZSwgJmVsZW1zdGF0ZS0+ cmVzbnVsbCk7CkBAIC0yMjA5LDYgKzIyMTMsMTUgQEAgRXhlY0luaXRFeHByUmVjKEV4cHIgKm5v ZGUsIEV4cHJTdGF0ZSAqc3RhdGUsCiAJCQkJYnJlYWs7CiAJCQl9CiAKKwkJY2FzZSBUX1NhZmVU eXBlQ2FzdEV4cHI6CisJCQl7CisJCQkJU2FmZVR5cGVDYXN0RXhwciAqc3RjZXhwciA9IGNhc3RO b2RlKFNhZmVUeXBlQ2FzdEV4cHIsIG5vZGUpOworCisJCQkJRXhlY0luaXRTYWZlVHlwZUNhc3RF eHByKHN0Y2V4cHIsIHN0YXRlLCByZXN2LCByZXNudWxsLCAmc2NyYXRjaCk7CisKKwkJCQlicmVh azsKKwkJCX0KKwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgogCQkJewogCQkJCUNvYWxlc2NlRXhw ciAqY29hbGVzY2UgPSAoQ29hbGVzY2VFeHByICopIG5vZGU7CkBAIC0yNzM2LDYgKzI3NDksNyBA QCBFeGVjSW5pdEZ1bmMoRXhwckV2YWxTdGVwICpzY3JhdGNoLCBFeHByICpub2RlLCBMaXN0ICph cmdzLCBPaWQgZnVuY2lkLAogCUZ1bmN0aW9uQ2FsbEluZm8gZmNpbmZvOwogCWludAkJCWFyZ25v OwogCUxpc3RDZWxsICAgKmxjOworCU5vZGUJICAgKmNvbnRleHQgPSBOVUxMOwogCiAJLyogQ2hl Y2sgcGVybWlzc2lvbiB0byBjYWxsIGZ1bmN0aW9uICovCiAJYWNscmVzdWx0ID0gb2JqZWN0X2Fj bGNoZWNrKFByb2NlZHVyZVJlbGF0aW9uSWQsIGZ1bmNpZCwgR2V0VXNlcklkKCksIEFDTF9FWEVD VVRFKTsKQEAgLTI3NDMsNiArMjc1Nyw5IEBAIEV4ZWNJbml0RnVuYyhFeHByRXZhbFN0ZXAgKnNj cmF0Y2gsIEV4cHIgKm5vZGUsIExpc3QgKmFyZ3MsIE9pZCBmdW5jaWQsCiAJCWFjbGNoZWNrX2Vy cm9yKGFjbHJlc3VsdCwgT0JKRUNUX0ZVTkNUSU9OLCBnZXRfZnVuY19uYW1lKGZ1bmNpZCkpOwog CUludm9rZUZ1bmN0aW9uRXhlY3V0ZUhvb2soZnVuY2lkKTsKIAorCWlmIChJc0Eobm9kZSwgRnVu Y0V4cHIpICYmICgoRnVuY0V4cHIgKikgbm9kZSktPmVycm9yc2FmZSkKKwkJY29udGV4dCA9IChO b2RlICopIHN0YXRlLT5lc2NvbnRleHQ7CisKIAkvKgogCSAqIFNhZmV0eSBjaGVjayBvbiBuYXJn cy4gIFVuZGVyIG5vcm1hbCBjaXJjdW1zdGFuY2VzIHRoaXMgc2hvdWxkIG5ldmVyCiAJICogZmFp bCwgYXMgcGFyc2VyIHNob3VsZCBjaGVjayBzb29uZXIuICBCdXQgcG9zc2libHkgaXQgbWlnaHQg ZmFpbCBpZgpAQCAtMjc2OSw3ICsyNzg2LDggQEAgRXhlY0luaXRGdW5jKEV4cHJFdmFsU3RlcCAq c2NyYXRjaCwgRXhwciAqbm9kZSwgTGlzdCAqYXJncywgT2lkIGZ1bmNpZCwKIAogCS8qIEluaXRp YWxpemUgZnVuY3Rpb24gY2FsbCBwYXJhbWV0ZXIgc3RydWN0dXJlIHRvbyAqLwogCUluaXRGdW5j dGlvbkNhbGxJbmZvRGF0YSgqZmNpbmZvLCBmbGluZm8sCi0JCQkJCQkJIG5hcmdzLCBpbnB1dGNv bGxpZCwgTlVMTCwgTlVMTCk7CisJCQkJCQkJIG5hcmdzLCBpbnB1dGNvbGxpZCwKKwkJCQkJCQkg Y29udGV4dCwgTlVMTCk7CiAKIAkvKiBLZWVwIGV4dHJhIGNvcGllcyBvZiB0aGlzIGluZm8gdG8g c2F2ZSBhbiBpbmRpcmVjdGlvbiBhdCBydW50aW1lICovCiAJc2NyYXRjaC0+ZC5mdW5jLmZuX2Fk ZHIgPSBmbGluZm8tPmZuX2FkZHI7CkBAIC00NzcwLDYgKzQ3ODgsNTggQEAgRXhlY0J1aWxkUGFy YW1TZXRFcXVhbChUdXBsZURlc2MgZGVzYywKIAlyZXR1cm4gc3RhdGU7CiB9CiAKKy8qCisgKiBQ dXNoIHN0ZXBzIHRvIGV2YWx1YXRlIGEgU2FmZVR5cGVDYXN0RXhwciBhbmQgaXRzIHZhcmlvdXMg c3Vic2lkaWFyeQorICogZXhwcmVzc2lvbnMuCisgKi8KK3N0YXRpYyB2b2lkCitFeGVjSW5pdFNh ZmVUeXBlQ2FzdEV4cHIoU2FmZVR5cGVDYXN0RXhwciAqc3RjZXhwciwgRXhwclN0YXRlICpzdGF0 ZSwKKwkJCQkJCSBEYXR1bSAqcmVzdiwgYm9vbCAqcmVzbnVsbCwKKwkJCQkJCSBFeHByRXZhbFN0 ZXAgKnNjcmF0Y2gpCit7CisJLyoKKwkgKiBDb2VyY2lvbiB0byB0aGUgdGFyZ2V0IHR5cGUgZmFp bGVkLiBGYWxsaW5nIGJhY2sgdG8gdGhlIERFRkFVTFQKKwkgKiBleHByZXNzaW9uIGZyb20gdGhl IE9OIENPTlZFUlNJT04gRVJST1IgY2xhdXNlIHRvIGZpbmlzaC4KKwkgKi8KKwlpZiAoc3RjZXhw ci0+Y2FzdGV4cHIgPT0gTlVMTCkKKwl7CisJCUV4ZWNJbml0RXhwclJlYyhzdGNleHByLT5kZWZl eHByLCBzdGF0ZSwgcmVzdiwgcmVzbnVsbCk7CisKKwkJcmV0dXJuOworCX0KKwllbHNlCisJewor CQlTYWZlVHlwZUNhc3RTdGF0ZSAqc3Rjc3RhdGUgPSBwYWxsb2MwX29iamVjdChTYWZlVHlwZUNh c3RTdGF0ZSk7CisJCUVycm9yU2F2ZUNvbnRleHQgKnNhdmVkX2VzY29udGV4dCA9IHN0YXRlLT5l c2NvbnRleHQ7CisKKwkJc3Rjc3RhdGUtPnN0Y2V4cHIgPSBzdGNleHByOworCQlzdGNzdGF0ZS0+ ZXNjb250ZXh0LnR5cGUgPSBUX0Vycm9yU2F2ZUNvbnRleHQ7CisJCXN0YXRlLT5lc2NvbnRleHQg PSAmc3Rjc3RhdGUtPmVzY29udGV4dDsKKworCQkvKiBldmFsdWF0ZSBhcmd1bWVudCBleHByZXNz aW9uIGludG8gc3RlcCdzIHJlc3VsdCBhcmVhICovCisJCUV4ZWNJbml0RXhwclJlYyhzdGNleHBy LT5jYXN0ZXhwciwgc3RhdGUsIHJlc3YsIHJlc251bGwpOworCQlzY3JhdGNoLT5vcGNvZGUgPSBF RU9QX1NBRkVUWVBFX0NBU1Q7CisJCXNjcmF0Y2gtPmQuc3RjZXhwci5zdGNzdGF0ZSA9IHN0Y3N0 YXRlOworCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCBzY3JhdGNoKTsKKworCQkvKgorCQkgKiBF dmFsdWF0ZSB0aGUgREVGQVVMVCBleHByZXNzaW9uLCBza2lwcGluZyBpZiBpdCdzIGEgYmluYXJ5 IGNvZXJjaW9uCisJCSAqIGNhc3QuIHN0YXRlLT5lc2NvbnRleHQgbXVzdCBiZSBOVUxMLCBhcyB0 aGlzIGV2YWx1YXRpb24gc2hvdWxkIG5vdAorCQkgKiBiZSBlcnJvci1zYWZlLgorCQkgKi8KKwkJ aWYgKCFJc0Eoc3RjZXhwci0+Y2FzdGV4cHIsIFJlbGFiZWxUeXBlKSkKKwkJeworCQkJc3RhdGUt PmVzY29udGV4dCA9IE5VTEw7CisKKwkJCUV4ZWNJbml0RXhwclJlYyhzdGNzdGF0ZS0+c3RjZXhw ci0+ZGVmZXhwciwgc3RhdGUsIHJlc3YsIHJlc251bGwpOworCQl9CisKKwkJc3RhdGUtPmVzY29u dGV4dCA9IHNhdmVkX2VzY29udGV4dDsKKworCQlzdGNzdGF0ZS0+anVtcF9lbmQgPSBzdGF0ZS0+ c3RlcHNfbGVuOworCX0KK30KKwogLyoKICAqIFB1c2ggc3RlcHMgdG8gZXZhbHVhdGUgYSBKc29u RXhwciBhbmQgaXRzIHZhcmlvdXMgc3Vic2lkaWFyeSBleHByZXNzaW9ucy4KICAqLwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyBiL3NyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKaW5kZXggNDMxMTY0MzFlZGYuLjc5ZWJlMDI1NGZk IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCisrKyBi L3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKQEAgLTU3MCw2ICs1NzAsNyBA QCBFeGVjSW50ZXJwRXhwcihFeHByU3RhdGUgKnN0YXRlLCBFeHByQ29udGV4dCAqZWNvbnRleHQs IGJvb2wgKmlzbnVsbCkKIAkJJiZDQVNFX0VFT1BfWE1MRVhQUiwKIAkJJiZDQVNFX0VFT1BfSlNP Tl9DT05TVFJVQ1RPUiwKIAkJJiZDQVNFX0VFT1BfSVNfSlNPTiwKKwkJJiZDQVNFX0VFT1BfU0FG RVRZUEVfQ0FTVCwKIAkJJiZDQVNFX0VFT1BfSlNPTkVYUFJfUEFUSCwKIAkJJiZDQVNFX0VFT1Bf SlNPTkVYUFJfQ09FUkNJT04sCiAJCSYmQ0FTRV9FRU9QX0pTT05FWFBSX0NPRVJDSU9OX0ZJTklT SCwKQEAgLTE5MjgsNiArMTkyOSwyOCBAQCBFeGVjSW50ZXJwRXhwcihFeHByU3RhdGUgKnN0YXRl LCBFeHByQ29udGV4dCAqZWNvbnRleHQsIGJvb2wgKmlzbnVsbCkKIAkJCUVFT19ORVhUKCk7CiAJ CX0KIAorCQlFRU9fQ0FTRShFRU9QX1NBRkVUWVBFX0NBU1QpCisJCXsKKwkJCVNhZmVUeXBlQ2Fz dFN0YXRlICpzdGNzdGF0ZSA9IG9wLT5kLnN0Y2V4cHIuc3Rjc3RhdGU7CisKKwkJCWlmICghU09G VF9FUlJPUl9PQ0NVUlJFRCgmc3Rjc3RhdGUtPmVzY29udGV4dCkpCisJCQkJRUVPX0pVTVAoc3Rj c3RhdGUtPmp1bXBfZW5kKTsKKwkJCWVsc2UKKwkJCXsKKwkJCQkqb3AtPnJlc3ZhbHVlID0gKERh dHVtKSAwOworCQkJCSpvcC0+cmVzbnVsbCA9IHRydWU7CisKKwkJCQkvKgorCQkJCSAqIFJlc2V0 IGZvciBuZXh0IHVzZSBzdWNoIGFzIGZvciBjYXRjaGluZyBlcnJvcnMgd2hlbgorCQkJCSAqIGNv ZXJjaW5nIGEgZXhwcmVzc2lvbi4KKwkJCQkgKi8KKwkJCQlzdGNzdGF0ZS0+ZXNjb250ZXh0LmVy cm9yX29jY3VycmVkID0gZmFsc2U7CisJCQkJc3Rjc3RhdGUtPmVzY29udGV4dC5kZXRhaWxzX3dh bnRlZCA9IGZhbHNlOworCisJCQkJRUVPX05FWFQoKTsKKwkJCX0KKwkJfQorCiAJCUVFT19DQVNF KEVFT1BfSlNPTkVYUFJfUEFUSCkKIAkJewogCQkJLyogdG9vIGNvbXBsZXggZm9yIGFuIGlubGlu ZSBpbXBsZW1lbnRhdGlvbiAqLwpAQCAtMzY0Niw2ICszNjY5LDEyIEBAIEV4ZWNFdmFsQXJyYXlD b2VyY2UoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwgRXhwckNvbnRleHQgKmVj b250ZXh0KQogCQkJCQkJCSAgZWNvbnRleHQsCiAJCQkJCQkJICBvcC0+ZC5hcnJheWNvZXJjZS5y ZXN1bHRlbGVtdHlwZSwKIAkJCQkJCQkgIG9wLT5kLmFycmF5Y29lcmNlLmFtc3RhdGUpOworCisJ aWYgKFNPRlRfRVJST1JfT0NDVVJSRUQob3AtPmQuYXJyYXljb2VyY2UuZWxlbWV4cHJzdGF0ZS0+ ZXNjb250ZXh0KSkKKwl7CisJCSpvcC0+cmVzdmFsdWUgPSAoRGF0dW0pIDA7CisJCSpvcC0+cmVz bnVsbCA9IHRydWU7CisJfQogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvaml0L2xs dm0vbGx2bWppdF9leHByLmMgYi9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYwpp bmRleCA2NTBmMWQ0MmE5My4uMjMzYmQyYWUyN2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2pp dC9sbHZtL2xsdm1qaXRfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRf ZXhwci5jCkBAIC0yMjU2LDYgKzIyNTYsNjIgQEAgbGx2bV9jb21waWxlX2V4cHIoRXhwclN0YXRl ICpzdGF0ZSkKIAkJCQlMTFZNQnVpbGRCcihiLCBvcGJsb2Nrc1tvcG5vICsgMV0pOwogCQkJCWJy ZWFrOwogCisJCQljYXNlIEVFT1BfU0FGRVRZUEVfQ0FTVDoKKwkJCQl7CisJCQkJCVNhZmVUeXBl Q2FzdFN0YXRlICpzdGNzdGF0ZSA9IG9wLT5kLnN0Y2V4cHIuc3Rjc3RhdGU7CisJCQkJCUxMVk1C YXNpY0Jsb2NrUmVmIGJfbm9lcnJvcjsKKwkJCQkJTExWTUJhc2ljQmxvY2tSZWYgYl9lcnJvcjsK KwkJCQkJTExWTVZhbHVlUmVmIHZfZXJyb3Jfb2NjdXJyZWRfcDsKKwkJCQkJTExWTVZhbHVlUmVm IHZfZGV0YWlsc193YW50ZWRfcDsKKwkJCQkJTExWTVZhbHVlUmVmIHZfZXJyb3Jfb2NjdXJyZWQ7 CisKKwkJCQkJYl9ub2Vycm9yID0gbF9iYl9iZWZvcmVfdihvcGJsb2Nrc1tvcG5vICsgMV0sCisJ CQkJCQkJCQkJCSAgIm9wLiVkLm5vZXJyb3IiLCBvcG5vKTsKKwkJCQkJYl9lcnJvciA9IGxfYmJf YmVmb3JlX3Yob3BibG9ja3Nbb3BubyArIDFdLAorCQkJCQkJCQkJCQkib3AuJWQuZXJyb3IiLCBv cG5vKTsKKworCQkJCQkvKiBHZXQgcG9pbnRlciB0byBlcnJvcl9vY2N1cnJlZCBmaWVsZCAqLwor CQkJCQl2X2Vycm9yX29jY3VycmVkX3AgPSBsX3B0cl9jb25zdCgmc3Rjc3RhdGUtPmVzY29udGV4 dC5lcnJvcl9vY2N1cnJlZCwKKwkJCQkJCQkJCQkJCQkgbF9wdHIoVHlwZVN0b3JhZ2VCb29sKSk7 CisKKwkJCQkJLyogTG9hZCBlcnJvcl9vY2N1cnJlZCBhdCBydW50aW1lICovCisJCQkJCXZfZXJy b3Jfb2NjdXJyZWQgPSBsX2xvYWQoYiwgVHlwZVN0b3JhZ2VCb29sLCB2X2Vycm9yX29jY3VycmVk X3AsICIiKTsKKworCQkJCQkvKiBCcmFuY2ggYmFzZWQgb24gZXJyb3Jfb2NjdXJyZWQ6IG5vIGVy cm9yIC0+IGp1bXBfZW5kICovCisJCQkJCUxMVk1CdWlsZENvbmRCcihiLAorCQkJCQkJCQkJTExW TUJ1aWxkSUNtcChiLCBMTFZNSW50RVEsIHZfZXJyb3Jfb2NjdXJyZWQsCisJCQkJCQkJCQkJCQkg IGxfc2Jvb2xfY29uc3QoMCksICIiKSwKKwkJCQkJCQkJCWJfbm9lcnJvciwKKwkJCQkJCQkJCWJf ZXJyb3IpOworCisJCQkJCS8qIE5vIGVycm9yOiBqdW1wIHRvIGVuZCAqLworCQkJCQlMTFZNUG9z aXRpb25CdWlsZGVyQXRFbmQoYiwgYl9ub2Vycm9yKTsKKwkJCQkJTExWTUJ1aWxkQnIoYiwgb3Bi bG9ja3Nbc3Rjc3RhdGUtPmp1bXBfZW5kXSk7CisKKwkJCQkJLyogRXJyb3Igb2NjdXJyZWQ6IHNl dCBudWxsLCByZXNldCBmbGFncywgZXZhbHVhdGUgZGVmYXVsdCAqLworCQkJCQlMTFZNUG9zaXRp b25CdWlsZGVyQXRFbmQoYiwgYl9lcnJvcik7CisKKwkJCQkJLyogc2V0IHJlc251bGwgdG8gdHJ1 ZSAqLworCQkJCQlMTFZNQnVpbGRTdG9yZShiLCBsX3Nib29sX2NvbnN0KDEpLCB2X3Jlc251bGxw KTsKKworCQkJCQkvKiByZXNldCByZXN2YWx1ZSAqLworCQkJCQlMTFZNQnVpbGRTdG9yZShiLCBs X2RhdHVtX2NvbnN0KDApLCB2X3Jlc3ZhbHVlcCk7CisKKwkJCQkJLyoKKwkJCQkJICogUmVzZXQg Zm9yIG5leHQgdXNlIHN1Y2ggYXMgZm9yIGNhdGNoaW5nIGVycm9ycyB3aGVuCisJCQkJCSAqIGNv ZXJjaW5nIGEgZXhwcmVzc2lvbi4KKwkJCQkJICovCisJCQkJCUxMVk1CdWlsZFN0b3JlKGIsIGxf c2Jvb2xfY29uc3QoMCksIHZfZXJyb3Jfb2NjdXJyZWRfcCk7CisKKwkJCQkJdl9kZXRhaWxzX3dh bnRlZF9wID0gbF9wdHJfY29uc3QoJnN0Y3N0YXRlLT5lc2NvbnRleHQuZGV0YWlsc193YW50ZWQs CisJCQkJCQkJCQkJCQkJIGxfcHRyKFR5cGVTdG9yYWdlQm9vbCkpOworCQkJCQlMTFZNQnVpbGRT dG9yZShiLCBsX3Nib29sX2NvbnN0KDApLCB2X2RldGFpbHNfd2FudGVkX3ApOworCisJCQkJCUxM Vk1CdWlsZEJyKGIsIG9wYmxvY2tzW29wbm8gKyAxXSk7CisKKwkJCQkJYnJlYWs7CisJCQkJfQor CiAJCQljYXNlIEVFT1BfSlNPTkVYUFJfUEFUSDoKIAkJCQl7CiAJCQkJCUpzb25FeHByU3RhdGUg KmpzZXN0YXRlID0gb3AtPmQuanNvbmV4cHIuanNlc3RhdGU7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9ub2Rlcy9tYWtlZnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL21ha2VmdW5jcy5jCmlu ZGV4IDNjZDM1YzVjNDU3Li41YTEwOTFkMGQ0OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9k ZXMvbWFrZWZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbWFrZWZ1bmNzLmMKQEAgLTYw NSw2ICs2MDUsNyBAQCBtYWtlRnVuY0V4cHIoT2lkIGZ1bmNpZCwgT2lkIHJldHR5cGUsIExpc3Qg KmFyZ3MsCiAJZnVuY2V4cHItPmZ1bmNjb2xsaWQgPSBmdW5jY29sbGlkOwogCWZ1bmNleHByLT5p bnB1dGNvbGxpZCA9IGlucHV0Y29sbGlkOwogCWZ1bmNleHByLT5hcmdzID0gYXJnczsKKwlmdW5j ZXhwci0+ZXJyb3JzYWZlID0gZmFsc2U7CiAJZnVuY2V4cHItPmxvY2F0aW9uID0gLTE7CiAKIAly ZXR1cm4gZnVuY2V4cHI7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3Mu YyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IDZhODUwMzQ5Y2Y3Li5iNWU4 OWI3ZjYwYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIv c3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTIwNiw2ICsyMDYsOSBAQCBleHByVHlw ZShjb25zdCBOb2RlICpleHByKQogCQljYXNlIFRfUm93Q29tcGFyZUV4cHI6CiAJCQl0eXBlID0g Qk9PTE9JRDsKIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCXR5cGUg PSAoKGNvbnN0IFNhZmVUeXBlQ2FzdEV4cHIgKikgZXhwciktPnJlc3VsdHR5cGU7CisJCQlicmVh azsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCXR5cGUgPSAoKGNvbnN0IENvYWxlc2NlRXhw ciAqKSBleHByKS0+Y29hbGVzY2V0eXBlOwogCQkJYnJlYWs7CkBAIC00NTMsNiArNDU2LDggQEAg ZXhwclR5cG1vZChjb25zdCBOb2RlICpleHByKQogCQkJCXJldHVybiB0eXBtb2Q7CiAJCQl9CiAJ CQlicmVhazsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQlyZXR1cm4gKChjb25zdCBT YWZlVHlwZUNhc3RFeHByICopIGV4cHIpLT5yZXN1bHR0eXBtb2Q7CiAJCWNhc2UgVF9Db2FsZXNj ZUV4cHI6CiAJCQl7CiAJCQkJLyoKQEAgLTk3MCw2ICs5NzUsOSBAQCBleHByQ29sbGF0aW9uKGNv bnN0IE5vZGUgKmV4cHIpCiAJCQkvKiBSb3dDb21wYXJlRXhwcidzIHJlc3VsdCBpcyBib29sZWFu IC4uLiAqLwogCQkJY29sbCA9IEludmFsaWRPaWQ7CS8qIC4uLiBzbyBpdCBoYXMgbm8gY29sbGF0 aW9uICovCiAJCQlicmVhazsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQljb2xsID0g KChjb25zdCBTYWZlVHlwZUNhc3RFeHByICopIGV4cHIpLT5yZXN1bHRjb2xsaWQ7CisJCQlicmVh azsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCWNvbGwgPSAoKGNvbnN0IENvYWxlc2NlRXhw ciAqKSBleHByKS0+Y29hbGVzY2Vjb2xsaWQ7CiAJCQlicmVhazsKQEAgLTEyNDAsNiArMTI0OCw5 IEBAIGV4cHJTZXRDb2xsYXRpb24oTm9kZSAqZXhwciwgT2lkIGNvbGxhdGlvbikKIAkJCS8qIFJv d0NvbXBhcmVFeHByJ3MgcmVzdWx0IGlzIGJvb2xlYW4gLi4uICovCiAJCQlBc3NlcnQoIU9pZElz VmFsaWQoY29sbGF0aW9uKSk7IC8qIC4uLiBzbyBuZXZlciBzZXQgYSBjb2xsYXRpb24gKi8KIAkJ CWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCSgoU2FmZVR5cGVDYXN0RXhw ciAqKSBleHByKS0+cmVzdWx0Y29sbGlkID0gY29sbGF0aW9uOworCQkJYnJlYWs7CiAJCWNhc2Ug VF9Db2FsZXNjZUV4cHI6CiAJCQkoKENvYWxlc2NlRXhwciAqKSBleHByKS0+Y29hbGVzY2Vjb2xs aWQgPSBjb2xsYXRpb247CiAJCQlicmVhazsKQEAgLTE1NTgsNiArMTU2OSw5IEBAIGV4cHJMb2Nh dGlvbihjb25zdCBOb2RlICpleHByKQogCQkJLyoganVzdCB1c2UgbGVmdG1vc3QgYXJndW1lbnQn cyBsb2NhdGlvbiAqLwogCQkJbG9jID0gZXhwckxvY2F0aW9uKChOb2RlICopICgoY29uc3QgUm93 Q29tcGFyZUV4cHIgKikgZXhwciktPmxhcmdzKTsKIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5 cGVDYXN0RXhwcjoKKwkJCWxvYyA9ICgoY29uc3QgU2FmZVR5cGVDYXN0RXhwciAqKSBleHByKS0+ bG9jYXRpb247CisJCQlicmVhazsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCS8qIENPQUxF U0NFIGtleXdvcmQgc2hvdWxkIGFsd2F5cyBiZSB0aGUgZmlyc3QgdGhpbmcgKi8KIAkJCWxvYyA9 ICgoY29uc3QgQ29hbGVzY2VFeHByICopIGV4cHIpLT5sb2NhdGlvbjsKQEAgLTIzMzMsNiArMjM0 NywxOCBAQCBleHByZXNzaW9uX3RyZWVfd2Fsa2VyX2ltcGwoTm9kZSAqbm9kZSwKIAkJCQkJcmV0 dXJuIHRydWU7CiAJCQl9CiAJCQlicmVhazsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJ CQl7CisJCQkJU2FmZVR5cGVDYXN0RXhwciAqc3RjZXhwciA9IGNhc3ROb2RlKFNhZmVUeXBlQ2Fz dEV4cHIsIG5vZGUpOworCisJCQkJaWYgKFdBTEsoc3RjZXhwci0+c291cmNlKSkKKwkJCQkJcmV0 dXJuIHRydWU7CisJCQkJaWYgKFdBTEsoc3RjZXhwci0+Y2FzdGV4cHIpKQorCQkJCQlyZXR1cm4g dHJ1ZTsKKwkJCQlpZiAoV0FMSyhzdGNleHByLT5kZWZleHByKSkKKwkJCQkJcmV0dXJuIHRydWU7 CisJCQl9CisJCQlicmVhazsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCXJldHVybiBXQUxL KCgoQ29hbGVzY2VFeHByICopIG5vZGUpLT5hcmdzKTsKIAkJY2FzZSBUX01pbk1heEV4cHI6CkBA IC0zMzY4LDYgKzMzOTQsMTkgQEAgZXhwcmVzc2lvbl90cmVlX211dGF0b3JfaW1wbChOb2RlICpu b2RlLAogCQkJCXJldHVybiAoTm9kZSAqKSBuZXdub2RlOwogCQkJfQogCQkJYnJlYWs7CisJCWNh c2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJeworCQkJCVNhZmVUeXBlQ2FzdEV4cHIgKnN0Y2V4 cHIgPSBjYXN0Tm9kZShTYWZlVHlwZUNhc3RFeHByLCBub2RlKTsKKwkJCQlTYWZlVHlwZUNhc3RF eHByICpuZXdub2RlOworCisJCQkJRkxBVENPUFkobmV3bm9kZSwgc3RjZXhwciwgU2FmZVR5cGVD YXN0RXhwcik7CisJCQkJTVVUQVRFKG5ld25vZGUtPnNvdXJjZSwgc3RjZXhwci0+c291cmNlLCBF eHByICopOworCQkJCU1VVEFURShuZXdub2RlLT5jYXN0ZXhwciwgc3RjZXhwci0+Y2FzdGV4cHIs IEV4cHIgKik7CisJCQkJTVVUQVRFKG5ld25vZGUtPmRlZmV4cHIsIHN0Y2V4cHItPmRlZmV4cHIs IEV4cHIgKik7CisKKwkJCQlyZXR1cm4gKE5vZGUgKikgbmV3bm9kZTsKKwkJCX0KKwkJCWJyZWFr OwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgogCQkJewogCQkJCUNvYWxlc2NlRXhwciAqY29hbGVz Y2VleHByID0gKENvYWxlc2NlRXhwciAqKSBub2RlOwpAQCAtNDUwNCw2ICs0NTQzLDIwIEBAIHJh d19leHByZXNzaW9uX3RyZWVfd2Fsa2VyX2ltcGwoTm9kZSAqbm9kZSwKIAkJCQkJcmV0dXJuIHRy dWU7CiAJCQkJaWYgKFdBTEsodGMtPnR5cGVOYW1lKSkKIAkJCQkJcmV0dXJuIHRydWU7CisJCQkJ aWYgKFdBTEsodGMtPmRlZmV4cHIpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFr OworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RFeHBy ICpzdGNleHByID0gY2FzdE5vZGUoU2FmZVR5cGVDYXN0RXhwciwgbm9kZSk7CisKKwkJCQlpZiAo V0FMSyhzdGNleHByLT5zb3VyY2UpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhz dGNleHByLT5jYXN0ZXhwcikpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChXQUxLKHN0Y2V4 cHItPmRlZmV4cHIpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOwogCQljYXNl IFRfQ29sbGF0ZUNsYXVzZToKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGls L2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwppbmRleCA5 ZmIyNjZkMDg5ZC4uNTRjZjNlN2VmODcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2Vz LmMKQEAgLTI2NzUsNyArMjY3NSw4IEBAIGVzdGltYXRlX2V4cHJlc3Npb25fdmFsdWUoUGxhbm5l ckluZm8gKnJvb3QsIE5vZGUgKm5vZGUpCiAJKChOb2RlICopIGV2YWx1YXRlX2V4cHIoKEV4cHIg KikgKG5vZGUpLCBcCiAJCQkJCQkJZXhwclR5cGUoKE5vZGUgKikgKG5vZGUpKSwgXAogCQkJCQkJ CWV4cHJUeXBtb2QoKE5vZGUgKikgKG5vZGUpKSwgXAotCQkJCQkJCWV4cHJDb2xsYXRpb24oKE5v ZGUgKikgKG5vZGUpKSkpCisJCQkJCQkJZXhwckNvbGxhdGlvbigoTm9kZSAqKSAobm9kZSkpLCBc CisJCQkJCQkJTlVMTCkpCiAKIC8qCiAgKiBSZWN1cnNpdmUgZ3V0cyBvZiBldmFsX2NvbnN0X2V4 cHJlc3Npb25zL2VzdGltYXRlX2V4cHJlc3Npb25fdmFsdWUKQEAgLTI4NjEsNiArMjg2Miw3IEBA IGV2YWxfY29uc3RfZXhwcmVzc2lvbnNfbXV0YXRvcihOb2RlICpub2RlLAogCQkJCW5ld2V4cHIt PmZ1bmNjb2xsaWQgPSBleHByLT5mdW5jY29sbGlkOwogCQkJCW5ld2V4cHItPmlucHV0Y29sbGlk ID0gZXhwci0+aW5wdXRjb2xsaWQ7CiAJCQkJbmV3ZXhwci0+YXJncyA9IGFyZ3M7CisJCQkJbmV3 ZXhwci0+ZXJyb3JzYWZlID0gZXhwci0+ZXJyb3JzYWZlOwogCQkJCW5ld2V4cHItPmxvY2F0aW9u ID0gZXhwci0+bG9jYXRpb247CiAJCQkJcmV0dXJuIChOb2RlICopIG5ld2V4cHI7CiAJCQl9CkBA IC0zMjY3LDYgKzMyNjksNjkgQEAgZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRhdG9yKE5vZGUg Km5vZGUsCiAJCQkJCQkJCQkJCQkgIGNvcHlPYmplY3QoanZlLT5mb3JtYXQpKTsKIAkJCX0KIAor CQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICpu ZXdleHByID0gbWFrZU5vZGUoU2FmZVR5cGVDYXN0RXhwcik7CisKKwkJCQlTYWZlVHlwZUNhc3RF eHByICpzdGMgPSBjYXN0Tm9kZShTYWZlVHlwZUNhc3RFeHByLCBub2RlKTsKKworCQkJCU5vZGUJ ICAgKnNvdXJjZSA9IChOb2RlICopIHN0Yy0+c291cmNlOworCQkJCU5vZGUJICAgKmRlZmV4cHIg PSAoTm9kZSAqKSBzdGMtPmRlZmV4cHI7CisJCQkJTm9kZQkgICAqY2FzdGV4cHIgPSAoTm9kZSAq KSBzdGMtPmNhc3RleHByOworCisJCQkJc291cmNlID0gZXZhbF9jb25zdF9leHByZXNzaW9uc19t dXRhdG9yKHNvdXJjZSwKKwkJCQkJCQkJCQkJCQkJY29udGV4dCk7CisKKwkJCQlkZWZleHByID0g ZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRhdG9yKGRlZmV4cHIsCisJCQkJCQkJCQkJCQkJCSBj b250ZXh0KTsKKworCQkJCS8qCisJCQkJICogRGVmZXIgY29uc3RhbnQgZm9sZGluZyBmb3IgY2Fz dGV4cHIgaW4gbW9zdCBjYXNlcyB0byBhdm9pZAorCQkJCSAqIHBvdGVudGlhbCBwcmVtYXR1cmUg ZXZhbHVhdGlvbiBmYWlsdXJlLiBGb3IgZXhhbXBsZSwKKwkJCQkgKiBDQVNUKCdkZWYnOjp0ZXh0 IEFTIGludGVnZXIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04KKwkJCQkgKiBFUlJPUiksIHRo ZSBjYXN0ZXhwciBpcyBhIENvZXJjZVZpYUlPIG5vZGUgdGhhdCB3b3VsZCBlcnJvcgorCQkJCSAq IG91dCwgYnV0IHdlIGRvIG5vdCB3YW50IGl0IHRvIGZhaWwgaGVyZS4KKwkJCQkgKgorCQkJCSAq IEZvbGRpbmcgdGhlIHdob2xlIEZ1bmNFeHByIG5vZGUgbWF5YmUgaGF2ZSBwcmVtYXR1cmUKKwkJ CQkgKiBldmFsdWF0aW9uIGZhaWx1cmUsIGhvd2V2ZXIgaXQgaXMgc2FmZSB0byBjb25zdGFudC1m b2xkIGl0cworCQkJCSAqIGFyZ3VtZW50cyAoRnVuY0V4cHItPmFyZ3MpLgorCQkJCSAqLworCQkJ CWlmIChjYXN0ZXhwciAmJiBJc0EoY2FzdGV4cHIsIEZ1bmNFeHByKSkKKwkJCQl7CisJCQkJCUZ1 bmNFeHByICAgKmZleHByID0gKEZ1bmNFeHByICopIGNhc3RleHByOworCisJCQkJCUZ1bmNFeHBy ICAgKmZ1bmNleHByID0gbWFrZUZ1bmNFeHByKGZleHByLT5mdW5jaWQsCisJCQkJCQkJCQkJCQkJ CWZleHByLT5mdW5jcmVzdWx0dHlwZSwKKwkJCQkJCQkJCQkJCQkJTklMLAorCQkJCQkJCQkJCQkJ CQlmZXhwci0+ZnVuY2NvbGxpZCwKKwkJCQkJCQkJCQkJCQkJZmV4cHItPmlucHV0Y29sbGlkLAor CQkJCQkJCQkJCQkJCQlmZXhwci0+ZnVuY2Zvcm1hdCk7CisKKwkJCQkJaWYgKCFmZXhwci0+ZXJy b3JzYWZlKQorCQkJCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgZXJyb3JzYWZlIHZhbHVlIGZv ciBlcnJvciBzYWZlIHR5cGUgY2FzdCBmdW5jdGlvbiIpOworCisJCQkJCWlmIChmZXhwci0+ZnVu Y3ZhcmlhZGljKQorCQkJCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgZnVuY3ZhcmlhZGljIHZh bHVlIGZvciBlcnJvciBzYWZlIHR5cGUgY2FzdCBmdW5jdGlvbiIpOworCisJCQkJCWlmIChmZXhw ci0+ZnVuY3JldHNldCkKKwkJCQkJCWVsb2coRVJST1IsICJlcnJvciBzYWZlIHR5cGUgY2FzdCBm dW5jdGlvbiBzaG91bGQgbXVzdCByZXR1cm4gYSBzZXQiKTsKKworCQkJCQlmdW5jZXhwci0+YXJn cyA9IChMaXN0ICopIGV2YWxfY29uc3RfZXhwcmVzc2lvbnNfbXV0YXRvcigoTm9kZSAqKSBmZXhw ci0+YXJncywKKwkJCQkJCQkJCQkJCQkJCQkJCQkgY29udGV4dCk7CisKKwkJCQkJY2FzdGV4cHIg PSAoTm9kZSAqKSBmdW5jZXhwcjsKKwkJCQl9CisKKwkJCQluZXdleHByLT5zb3VyY2UgPSAoRXhw ciAqKSBzb3VyY2U7CisJCQkJbmV3ZXhwci0+Y2FzdGV4cHIgPSAoRXhwciAqKSBzdGMtPmNhc3Rl eHByOworCQkJCW5ld2V4cHItPmRlZmV4cHIgPSAoRXhwciAqKSBkZWZleHByOworCQkJCW5ld2V4 cHItPnJlc3VsdHR5cGUgPSBzdGMtPnJlc3VsdHR5cGU7CisJCQkJbmV3ZXhwci0+cmVzdWx0dHlw bW9kID0gc3RjLT5yZXN1bHR0eXBtb2Q7CisJCQkJbmV3ZXhwci0+cmVzdWx0Y29sbGlkID0gc3Rj LT5yZXN1bHRjb2xsaWQ7CisKKwkJCQlyZXR1cm4gKE5vZGUgKikgbmV3ZXhwcjsKKwkJCX0KKwog CQljYXNlIFRfU3ViUGxhbjoKIAkJY2FzZSBUX0FsdGVybmF0aXZlU3ViUGxhbjoKIApAQCAtMzY5 OCw3ICszNzYzLDggQEAgZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRhdG9yKE5vZGUgKm5vZGUs CiAJCQkJCXJldHVybiAoTm9kZSAqKSBldmFsdWF0ZV9leHByKChFeHByICopIHN2ZiwKIAkJCQkJ CQkJCQkJCSAgc3ZmLT50eXBlLAogCQkJCQkJCQkJCQkJICBzdmYtPnR5cG1vZCwKLQkJCQkJCQkJ CQkJCSAgSW52YWxpZE9pZCk7CisJCQkJCQkJCQkJCQkgIEludmFsaWRPaWQsCisJCQkJCQkJCQkJ CQkgIE5VTEwpOwogCQkJCWVsc2UKIAkJCQkJcmV0dXJuIGNvcHlPYmplY3QoKE5vZGUgKikgc3Zm KTsKIAkJCX0KQEAgLTQ1NDYsNiArNDYxMiw3IEBAIHNpbXBsaWZ5X2Z1bmN0aW9uKE9pZCBmdW5j aWQsIE9pZCByZXN1bHRfdHlwZSwgaW50MzIgcmVzdWx0X3R5cG1vZCwKIAkJZmV4cHIuZnVuY2Nv bGxpZCA9IHJlc3VsdF9jb2xsaWQ7CiAJCWZleHByLmlucHV0Y29sbGlkID0gaW5wdXRfY29sbGlk OwogCQlmZXhwci5hcmdzID0gYXJnczsKKwkJZmV4cHIuZXJyb3JzYWZlID0gZmFsc2U7CiAJCWZl eHByLmxvY2F0aW9uID0gLTE7CiAKIAkJcmVxLnR5cGUgPSBUX1N1cHBvcnRSZXF1ZXN0U2ltcGxp Znk7CkBAIC01MjI2LDEwICs1MjkzLDExIEBAIGV2YWx1YXRlX2Z1bmN0aW9uKE9pZCBmdW5jaWQs IE9pZCByZXN1bHRfdHlwZSwgaW50MzIgcmVzdWx0X3R5cG1vZCwKIAluZXdleHByLT5mdW5jY29s bGlkID0gcmVzdWx0X2NvbGxpZDsJLyogZG9lc24ndCBtYXR0ZXIgKi8KIAluZXdleHByLT5pbnB1 dGNvbGxpZCA9IGlucHV0X2NvbGxpZDsKIAluZXdleHByLT5hcmdzID0gYXJnczsKKwluZXdleHBy LT5lcnJvcnNhZmUgPSBmYWxzZTsKIAluZXdleHByLT5sb2NhdGlvbiA9IC0xOwogCiAJcmV0dXJu IGV2YWx1YXRlX2V4cHIoKEV4cHIgKikgbmV3ZXhwciwgcmVzdWx0X3R5cGUsIHJlc3VsdF90eXBt b2QsCi0JCQkJCQkgcmVzdWx0X2NvbGxpZCk7CisJCQkJCQkgcmVzdWx0X2NvbGxpZCwgTlVMTCk7 CiB9CiAKIC8qCkBAIC01MzM4LDYgKzU0MDYsNyBAQCBpbmxpbmVfZnVuY3Rpb24oT2lkIGZ1bmNp ZCwgT2lkIHJlc3VsdF90eXBlLCBPaWQgcmVzdWx0X2NvbGxpZCwKIAlmZXhwci0+ZnVuY2NvbGxp ZCA9IHJlc3VsdF9jb2xsaWQ7CS8qIGRvZXNuJ3QgbWF0dGVyICovCiAJZmV4cHItPmlucHV0Y29s bGlkID0gaW5wdXRfY29sbGlkOwogCWZleHByLT5hcmdzID0gYXJnczsKKwlmZXhwci0+ZXJyb3Jz YWZlID0gZmFsc2U7CiAJZmV4cHItPmxvY2F0aW9uID0gLTE7CiAKIAkvKiBGZXRjaCB0aGUgZnVu Y3Rpb24gYm9keSAqLwpAQCAtNTY4MywxMCArNTc1MiwxMyBAQCBzcWxfaW5saW5lX2Vycm9yX2Nh bGxiYWNrKHZvaWQgKmFyZykKICAqCiAgKiBXZSB1c2UgdGhlIGV4ZWN1dG9yJ3Mgcm91dGluZSBF eGVjRXZhbEV4cHIoKSB0byBhdm9pZCBkdXBsaWNhdGlvbiBvZgogICogY29kZSBhbmQgZW5zdXJl IHdlIGdldCB0aGUgc2FtZSByZXN1bHQgYXMgdGhlIGV4ZWN1dG9yIHdvdWxkIGdldC4KKyAqCisg KiBXaGVuIGVzY29udGV4dCBpcyBub24tTlVMTCwgc2FmZWx5IGV2YWx1YXRlcyB0aGUgY29uc3Rh bnQgZXhwcmVzc2lvbi4KKyAqIFJldHVybnMgTlVMTCBvbiBmYWlsdXJlIHJhdGhlciB0aGFuIHRo cm93aW5nIGFuIGVycm9yLgogICovCiBFeHByICoKIGV2YWx1YXRlX2V4cHIoRXhwciAqZXhwciwg T2lkIHJlc3VsdF90eXBlLCBpbnQzMiByZXN1bHRfdHlwbW9kLAotCQkJICBPaWQgcmVzdWx0X2Nv bGxhdGlvbikKKwkJCSAgT2lkIHJlc3VsdF9jb2xsYXRpb24sIE5vZGUgKmVzY29udGV4dCkKIHsK IAlFU3RhdGUJICAgKmVzdGF0ZTsKIAlFeHByU3RhdGUgICpleHByc3RhdGU7CkBAIC01NzExLDcg KzU3ODMsNyBAQCBldmFsdWF0ZV9leHByKEV4cHIgKmV4cHIsIE9pZCByZXN1bHRfdHlwZSwgaW50 MzIgcmVzdWx0X3R5cG1vZCwKIAkgKiBQcmVwYXJlIGV4cHIgZm9yIGV4ZWN1dGlvbi4gIChOb3Rl OiB3ZSBjYW4ndCB1c2UgRXhlY1ByZXBhcmVFeHByCiAJICogYmVjYXVzZSBpdCdkIHJlc3VsdCBp biByZWN1cnNpdmVseSBpbnZva2luZyBldmFsX2NvbnN0X2V4cHJlc3Npb25zLikKIAkgKi8KLQll eHByc3RhdGUgPSBFeGVjSW5pdEV4cHIoZXhwciwgTlVMTCk7CisJZXhwcnN0YXRlID0gRXhlY0lu aXRFeHByV2l0aENvbnRleHQoZXhwciwgTlVMTCwgZXNjb250ZXh0KTsKIAogCS8qCiAJICogQW5k IGV2YWx1YXRlIGl0LgpAQCAtNTczMSw2ICs1ODAzLDEzIEBAIGV2YWx1YXRlX2V4cHIoRXhwciAq ZXhwciwgT2lkIHJlc3VsdF90eXBlLCBpbnQzMiByZXN1bHRfdHlwbW9kLAogCS8qIEdldCBiYWNr IHRvIG91dGVyIG1lbW9yeSBjb250ZXh0ICovCiAJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGNv bnRleHQpOwogCisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXhwcnN0YXRlLT5lc2NvbnRleHQp KQorCXsKKwkJRnJlZUV4ZWN1dG9yU3RhdGUoZXN0YXRlKTsKKworCQlyZXR1cm4gTlVMTDsKKwl9 CisKIAkvKgogCSAqIE11c3QgY29weSByZXN1bHQgb3V0IG9mIHN1Yi1jb250ZXh0IHVzZWQgYnkg ZXhwcmVzc2lvbiBldmFsLgogCSAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCAwYjRhNDkxMTM3MC4uNGQ2OTIy NzRkNTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMTU4LDYgKzE1OCw4IEBAIHN0YXRpYyB2b2lkIHVwZGF0 ZVJhd1N0bXRFbmQoUmF3U3RtdCAqcnMsIGludCBlbmRfbG9jYXRpb24pOwogc3RhdGljIE5vZGUg Km1ha2VDb2x1bW5SZWYoY2hhciAqY29sbmFtZSwgTGlzdCAqaW5kaXJlY3Rpb24sCiAJCQkJCQkg ICBpbnQgbG9jYXRpb24sIGNvcmVfeXlzY2FuX3QgeXlzY2FubmVyKTsKIHN0YXRpYyBOb2RlICpt YWtlVHlwZUNhc3QoTm9kZSAqYXJnLCBUeXBlTmFtZSAqdHlwZW5hbWUsIGludCBsb2NhdGlvbik7 CitzdGF0aWMgTm9kZSAqbWFrZVR5cGVDYXN0V2l0aERlZmF1bHQoTm9kZSAqYXJnLCBUeXBlTmFt ZSAqdHlwZW5hbWUsCisJCQkJCQkJCQkgTm9kZSAqcmF3X2RlZmF1bHQsIGludCBsb2NhdGlvbik7 CiBzdGF0aWMgTm9kZSAqbWFrZVN0cmluZ0NvbnN0Q2FzdChjaGFyICpzdHIsIGludCBsb2NhdGlv biwgVHlwZU5hbWUgKnR5cGVuYW1lKTsKIHN0YXRpYyBOb2RlICptYWtlSW50Q29uc3QoaW50IHZh bCwgaW50IGxvY2F0aW9uKTsKIHN0YXRpYyBOb2RlICptYWtlRmxvYXRDb25zdChjaGFyICpzdHIs IGludCBsb2NhdGlvbik7CkBAIC0xNjY1Niw2ICsxNjY1OCwxMiBAQCBmdW5jX2V4cHJfY29tbW9u X3N1YmV4cHI6CiAJCQkJfQogCQkJfCBDQVNUICcoJyBhX2V4cHIgQVMgVHlwZW5hbWUgJyknCiAJ CQkJeyAkJCA9IG1ha2VUeXBlQ2FzdCgkMywgJDUsIEAxKTsgfQorCQkJfCBDQVNUICcoJyBhX2V4 cHIgQVMgVHlwZW5hbWUgRVJST1JfUCBPTiBDT05WRVJTSU9OX1AgRVJST1JfUCAnKScKKwkJCQl7 ICQkID0gbWFrZVR5cGVDYXN0KCQzLCAkNSwgQDEpOyB9CisJCQl8IENBU1QgJygnIGFfZXhwciBB UyBUeXBlbmFtZSBOVUxMX1AgT04gQ09OVkVSU0lPTl9QIEVSUk9SX1AgJyknCisJCQkJeyAkJCA9 IG1ha2VUeXBlQ2FzdFdpdGhEZWZhdWx0KCQzLCAkNSwgbWFrZU51bGxBQ29uc3QoLTEpLCBAMSk7 IH0KKwkJCXwgQ0FTVCAnKCcgYV9leHByIEFTIFR5cGVuYW1lIERFRkFVTFQgYV9leHByIE9OIENP TlZFUlNJT05fUCBFUlJPUl9QICcpJworCQkJCXsgJCQgPSBtYWtlVHlwZUNhc3RXaXRoRGVmYXVs dCgkMywgJDUsICQ3LCBAMSk7IH0KIAkJCXwgRVhUUkFDVCAnKCcgZXh0cmFjdF9saXN0ICcpJwog CQkJCXsKIAkJCQkJJCQgPSAoTm9kZSAqKSBtYWtlRnVuY0NhbGwoU3lzdGVtRnVuY05hbWUoImV4 dHJhY3QiKSwKQEAgLTE5ODE3LDEwICsxOTgyNSwyNSBAQCBtYWtlVHlwZUNhc3QoTm9kZSAqYXJn LCBUeXBlTmFtZSAqdHlwZW5hbWUsIGludCBsb2NhdGlvbikKIAogCW4tPmFyZyA9IGFyZzsKIAlu LT50eXBlTmFtZSA9IHR5cGVuYW1lOworCW4tPmRlZmV4cHIgPSBOVUxMOwogCW4tPmxvY2F0aW9u ID0gbG9jYXRpb247CiAJcmV0dXJuIChOb2RlICopIG47CiB9CiAKK3N0YXRpYyBOb2RlICoKK21h a2VUeXBlQ2FzdFdpdGhEZWZhdWx0KE5vZGUgKmFyZywgVHlwZU5hbWUgKnR5cGVuYW1lLCBOb2Rl ICpkZWZleHByLAorCQkJCQkJaW50IGxvY2F0aW9uKQoreworCVR5cGVDYXN0ICAgKm4gPSBtYWtl Tm9kZShUeXBlQ2FzdCk7CisKKwluLT5hcmcgPSBhcmc7CisJbi0+dHlwZU5hbWUgPSB0eXBlbmFt ZTsKKwluLT5kZWZleHByID0gZGVmZXhwcjsKKwluLT5sb2NhdGlvbiA9IGxvY2F0aW9uOworCisJ cmV0dXJuIChOb2RlICopIG47Cit9CisKIHN0YXRpYyBOb2RlICoKIG1ha2VTdHJpbmdDb25zdENh c3QoY2hhciAqc3RyLCBpbnQgbG9jYXRpb24sIFR5cGVOYW1lICp0eXBlbmFtZSkKIHsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9hZ2cuYwppbmRleCA2MDc2ZTkzNzNjMS4uMDdjNzM1MjFkZjIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfYWdnLmMKQEAgLTQ5MSw2ICs0OTEsMTIgQEAgY2hlY2tfYWdnbGV2ZWxzX2FuZF9jb25z dHJhaW50cyhQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIpCiAJCQkJZXJyID0gXygiZ3Jv dXBpbmcgb3BlcmF0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gY2hlY2sgY29uc3RyYWludHMiKTsK IAogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX0NBU1RfREVGQVVMVDoKKwkJCWlmIChpc0Fn ZykKKwkJCQllcnIgPSBfKCJhZ2dyZWdhdGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBD QVNUIERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKKwkJCWVsc2UKKwkJCQllcnIgPSBfKCJncm91cGlu ZyBvcGVyYXRpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbnMi KTsKKwkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoKIAkJY2FzZSBF WFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKIApAQCAtOTkyLDYgKzk5OCw5IEBAIHRyYW5zZm9y bVdpbmRvd0Z1bmNDYWxsKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93RnVuYyAqd2Z1bmMsCiAJ CWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKIAkJCWVyciA9IF8oIndpbmRvdyBmdW5jdGlv bnMgYXJlIG5vdCBhbGxvd2VkIGluIGNoZWNrIGNvbnN0cmFpbnRzIik7CiAJCQlicmVhazsKKwkJ Y2FzZSBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxUOgorCQkJZXJyID0gXygid2luZG93IGZ1bmN0aW9u cyBhcmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBERUZBVUxUIGV4cHJlc3Npb25zIik7CisJCQlicmVh azsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZV TkNUSU9OX0RFRkFVTFQ6CiAJCQllcnIgPSBfKCJ3aW5kb3cgZnVuY3Rpb25zIGFyZSBub3QgYWxs b3dlZCBpbiBERUZBVUxUIGV4cHJlc3Npb25zIik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfY29lcmNlLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY29lcmNlLmMK aW5kZXggOTEzY2E1MzY2NmYuLmNkZDYyMDQ0YTYwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfY29lcmNlLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvZXJj ZS5jCkBAIC0zNywxNCArMzcsMTYgQEAgc3RhdGljIE5vZGUgKmNvZXJjZV90eXBlX3R5cG1vZChO b2RlICpub2RlLAogCQkJCQkJCQlPaWQgdGFyZ2V0VHlwZUlkLCBpbnQzMiB0YXJnZXRUeXBNb2Qs CiAJCQkJCQkJCUNvZXJjaW9uQ29udGV4dCBjY29udGV4dCwgQ29lcmNpb25Gb3JtIGNmb3JtYXQs CiAJCQkJCQkJCWludCBsb2NhdGlvbiwKLQkJCQkJCQkJYm9vbCBoaWRlSW5wdXRDb2VyY2lvbik7 CisJCQkJCQkJCWJvb2wgaGlkZUlucHV0Q29lcmNpb24sCisJCQkJCQkJCU5vZGUgKmVzY29udGV4 dCk7CiBzdGF0aWMgdm9pZCBoaWRlX2NvZXJjaW9uX25vZGUoTm9kZSAqbm9kZSk7CiBzdGF0aWMg Tm9kZSAqYnVpbGRfY29lcmNpb25fZXhwcmVzc2lvbihOb2RlICpub2RlLAogCQkJCQkJCQkJICAg Q29lcmNpb25QYXRoVHlwZSBwYXRodHlwZSwKIAkJCQkJCQkJCSAgIE9pZCBmdW5jSWQsCiAJCQkJ CQkJCQkgICBPaWQgdGFyZ2V0VHlwZUlkLCBpbnQzMiB0YXJnZXRUeXBNb2QsCiAJCQkJCQkJCQkg ICBDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQsIENvZXJjaW9uRm9ybSBjZm9ybWF0LAotCQkJCQkJ CQkJICAgaW50IGxvY2F0aW9uKTsKKwkJCQkJCQkJCSAgIGludCBsb2NhdGlvbiwKKwkJCQkJCQkJ CSAgIE5vZGUgKmVzY29udGV4dCk7CiBzdGF0aWMgTm9kZSAqY29lcmNlX3JlY29yZF90b19jb21w bGV4KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwKIAkJCQkJCQkJCSAgT2lkIHRhcmdl dFR5cGVJZCwKIAkJCQkJCQkJCSAgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LApAQCAtODEsNiAr ODMsMjggQEAgY29lcmNlX3RvX3RhcmdldF90eXBlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAq ZXhwciwgT2lkIGV4cHJ0eXBlLAogCQkJCQkgIENvZXJjaW9uQ29udGV4dCBjY29udGV4dCwKIAkJ CQkJICBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwKIAkJCQkJICBpbnQgbG9jYXRpb24pCit7CisJcmV0 dXJuIGNvZXJjZV90b190YXJnZXRfdHlwZV9leHRlbmRlZChwc3RhdGUsIGV4cHIsIGV4cHJ0eXBl LAorCQkJCQkJCQkJCSAgdGFyZ2V0dHlwZSwgdGFyZ2V0dHlwbW9kLAorCQkJCQkJCQkJCSAgY2Nv bnRleHQsCisJCQkJCQkJCQkJICBjZm9ybWF0LAorCQkJCQkJCQkJCSAgbG9jYXRpb24sCisJCQkJ CQkJCQkJICBOVUxMKTsKK30KKworLyoKKyAqIGVzY29udGV4dDogSWYgbm9uLU5VTEwsIHNhZmVs eSBjb2VyY2VzICdleHByJyB0byB0aGUgdGFyZ2V0IHR5cGUKKyAqIHdpdGhvdXQgcmFpc2luZyBh biBlcnJvci4gUmV0dXJucyBOVUxMIGlmIHRoZSBjb2VyY2lvbiBmYWlscy4KKyAqCisgKiBTZWUg J2NvZXJjZV90b190YXJnZXRfdHlwZScgYWJvdmUgZm9yIGRldGFpbHMgb24gb3RoZXIgcGFyYW1l dGVycy4KKyAqLworTm9kZSAqCitjb2VyY2VfdG9fdGFyZ2V0X3R5cGVfZXh0ZW5kZWQoUGFyc2VT dGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBPaWQgZXhwcnR5cGUsCisJCQkJCQkJICAgT2lkIHRh cmdldHR5cGUsIGludDMyIHRhcmdldHR5cG1vZCwKKwkJCQkJCQkgICBDb2VyY2lvbkNvbnRleHQg Y2NvbnRleHQsCisJCQkJCQkJICAgQ29lcmNpb25Gb3JtIGNmb3JtYXQsCisJCQkJCQkJICAgaW50 IGxvY2F0aW9uLAorCQkJCQkJCSAgIE5vZGUgKmVzY29udGV4dCkKIHsKIAlOb2RlCSAgICpyZXN1 bHQ7CiAJTm9kZQkgICAqb3JpZ2V4cHI7CkBAIC0xMDIsOSArMTI2LDE1IEBAIGNvZXJjZV90b190 YXJnZXRfdHlwZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIsIE9pZCBleHBydHlwZSwK IAl3aGlsZSAoZXhwciAmJiBJc0EoZXhwciwgQ29sbGF0ZUV4cHIpKQogCQlleHByID0gKE5vZGUg KikgKChDb2xsYXRlRXhwciAqKSBleHByKS0+YXJnOwogCi0JcmVzdWx0ID0gY29lcmNlX3R5cGUo cHN0YXRlLCBleHByLCBleHBydHlwZSwKLQkJCQkJCSB0YXJnZXR0eXBlLCB0YXJnZXR0eXBtb2Qs Ci0JCQkJCQkgY2NvbnRleHQsIGNmb3JtYXQsIGxvY2F0aW9uKTsKKwlyZXN1bHQgPSBjb2VyY2Vf dHlwZV9leHRlbmRlZChwc3RhdGUsIGV4cHIsIGV4cHJ0eXBlLAorCQkJCQkJCQkgIHRhcmdldHR5 cGUsIHRhcmdldHR5cG1vZCwKKwkJCQkJCQkJICBjY29udGV4dCwKKwkJCQkJCQkJICBjZm9ybWF0 LAorCQkJCQkJCQkgIGxvY2F0aW9uLAorCQkJCQkJCQkgIGVzY29udGV4dCk7CisKKwlpZiAoU09G VF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQlyZXR1cm4gTlVMTDsKIAogCS8qCiAJICog SWYgdGhlIHRhcmdldCBpcyBhIGZpeGVkLWxlbmd0aCB0eXBlLCBpdCBtYXkgbmVlZCBhIGxlbmd0 aCBjb2VyY2lvbiBhcwpAQCAtMTE0LDcgKzE0NCwxMSBAQCBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUo UGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBPaWQgZXhwcnR5cGUsCiAJcmVzdWx0ID0g Y29lcmNlX3R5cGVfdHlwbW9kKHJlc3VsdCwKIAkJCQkJCQkJdGFyZ2V0dHlwZSwgdGFyZ2V0dHlw bW9kLAogCQkJCQkJCQljY29udGV4dCwgY2Zvcm1hdCwgbG9jYXRpb24sCi0JCQkJCQkJCShyZXN1 bHQgIT0gZXhwciAmJiAhSXNBKHJlc3VsdCwgQ29uc3QpKSk7CisJCQkJCQkJCShyZXN1bHQgIT0g ZXhwciAmJiAhSXNBKHJlc3VsdCwgQ29uc3QpKSwKKwkJCQkJCQkJZXNjb250ZXh0KTsKKworCWlm IChyZXN1bHQgPT0gTlVMTCkJCQkvKiBzaG91bGRuJ3QgaGFwcGVuICovCisJCWVsb2coRVJST1Is ICJmYWlsZWQgdG8gY29lcmNlIHR5cGUgbW9kaWZpZXIgYXMgZXhwZWN0ZWQiKTsKIAogCWlmIChl eHByICE9IG9yaWdleHByICYmIHR5cGVfaXNfY29sbGF0YWJsZSh0YXJnZXR0eXBlKSkKIAl7CkBA IC0xNTgsNiArMTkyLDE4IEBAIE5vZGUgKgogY29lcmNlX3R5cGUoUGFyc2VTdGF0ZSAqcHN0YXRl LCBOb2RlICpub2RlLAogCQkJT2lkIGlucHV0VHlwZUlkLCBPaWQgdGFyZ2V0VHlwZUlkLCBpbnQz MiB0YXJnZXRUeXBlTW9kLAogCQkJQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LCBDb2VyY2lvbkZv cm0gY2Zvcm1hdCwgaW50IGxvY2F0aW9uKQoreworCXJldHVybiBjb2VyY2VfdHlwZV9leHRlbmRl ZChwc3RhdGUsIG5vZGUsCisJCQkJCQkJCWlucHV0VHlwZUlkLCB0YXJnZXRUeXBlSWQsIHRhcmdl dFR5cGVNb2QsCisJCQkJCQkJCWNjb250ZXh0LCBjZm9ybWF0LCBsb2NhdGlvbiwKKwkJCQkJCQkJ TlVMTCk7Cit9CisKK05vZGUgKgorY29lcmNlX3R5cGVfZXh0ZW5kZWQoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBOb2RlICpub2RlLAorCQkJCQkgT2lkIGlucHV0VHlwZUlkLCBPaWQgdGFyZ2V0VHlwZUlk LCBpbnQzMiB0YXJnZXRUeXBlTW9kLAorCQkJCQkgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LCBD b2VyY2lvbkZvcm0gY2Zvcm1hdCwgaW50IGxvY2F0aW9uLAorCQkJCQkgTm9kZSAqZXNjb250ZXh0 KQogewogCU5vZGUJICAgKnJlc3VsdDsKIAlDb2VyY2lvblBhdGhUeXBlIHBhdGh0eXBlOwpAQCAt MjU2LDYgKzMwMiw3IEBAIGNvZXJjZV90eXBlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9k ZSwKIAkJaW50MzIJCWlucHV0VHlwZU1vZDsKIAkJVHlwZQkJYmFzZVR5cGU7CiAJCVBhcnNlQ2Fs bGJhY2tTdGF0ZSBwY2JzdGF0ZTsKKwkJY2hhcgkgICAqc3RyaW5nID0gTlVMTDsKIAogCQkvKgog CQkgKiBJZiB0aGUgdGFyZ2V0IHR5cGUgaXMgYSBkb21haW4sIHdlIHdhbnQgdG8gY2FsbCBpdHMg YmFzZSB0eXBlJ3MKQEAgLTMwOSwxMyArMzU2LDIxIEBAIGNvZXJjZV90eXBlKFBhcnNlU3RhdGUg KnBzdGF0ZSwgTm9kZSAqbm9kZSwKIAkJICogYXMgQ1NUUklORy4KIAkJICovCiAJCWlmICghY29u LT5jb25zdGlzbnVsbCkKLQkJCW5ld2Nvbi0+Y29uc3R2YWx1ZSA9IHN0cmluZ1R5cGVEYXR1bShi YXNlVHlwZSwKLQkJCQkJCQkJCQkJCSBEYXR1bUdldENTdHJpbmcoY29uLT5jb25zdHZhbHVlKSwK LQkJCQkJCQkJCQkJCSBpbnB1dFR5cGVNb2QpOwotCQllbHNlCi0JCQluZXdjb24tPmNvbnN0dmFs dWUgPSBzdHJpbmdUeXBlRGF0dW0oYmFzZVR5cGUsCi0JCQkJCQkJCQkJCQkgTlVMTCwKLQkJCQkJ CQkJCQkJCSBpbnB1dFR5cGVNb2QpOworCQkJc3RyaW5nID0gRGF0dW1HZXRDU3RyaW5nKGNvbi0+ Y29uc3R2YWx1ZSk7CisKKwkJaWYgKCFzdHJpbmdUeXBlRGF0dW1TYWZlKGJhc2VUeXBlLAorCQkJ CQkJCQkgc3RyaW5nLAorCQkJCQkJCQkgaW5wdXRUeXBlTW9kLAorCQkJCQkJCQkgZXNjb250ZXh0 LAorCQkJCQkJCQkgJm5ld2Nvbi0+Y29uc3R2YWx1ZSkpCisJCXsKKwkJCS8qIFVOS05PV04gQ29u c3QgY2Fubm90IGNvZXJjZSB0byB0YXJnZXRUeXBlLCBleGl0IG5vdyAqLworCQkJY2FuY2VsX3Bh cnNlcl9lcnJwb3NpdGlvbl9jYWxsYmFjaygmcGNic3RhdGUpOworCisJCQlSZWxlYXNlU3lzQ2Fj aGUoYmFzZVR5cGUpOworCisJCQlyZXR1cm4gTlVMTDsKKwkJfQogCiAJCS8qCiAJCSAqIElmIGl0 J3MgYSB2YXJsZW5hIHZhbHVlLCBmb3JjZSBpdCB0byBiZSBpbiBub24tZXhwYW5kZWQKQEAgLTM2 NCw3ICs0MTksOCBAQCBjb2VyY2VfdHlwZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKm5vZGUs CiAJCQkJCQkJCQkgIGJhc2VUeXBlSWQsIGJhc2VUeXBlTW9kLAogCQkJCQkJCQkJICB0YXJnZXRU eXBlSWQsCiAJCQkJCQkJCQkgIGNjb250ZXh0LCBjZm9ybWF0LCBsb2NhdGlvbiwKLQkJCQkJCQkJ CSAgZmFsc2UpOworCQkJCQkJCQkJICBmYWxzZSwKKwkJCQkJCQkJCSAgZXNjb250ZXh0KTsKIAog CQlSZWxlYXNlU3lzQ2FjaGUoYmFzZVR5cGUpOwogCkBAIC0zOTcsOSArNDUzLDExIEBAIGNvZXJj ZV90eXBlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwKIAkJICovCiAJCUNvbGxhdGVF eHByICpjb2xsID0gKENvbGxhdGVFeHByICopIG5vZGU7CiAKLQkJcmVzdWx0ID0gY29lcmNlX3R5 cGUocHN0YXRlLCAoTm9kZSAqKSBjb2xsLT5hcmcsCi0JCQkJCQkJIGlucHV0VHlwZUlkLCB0YXJn ZXRUeXBlSWQsIHRhcmdldFR5cGVNb2QsCi0JCQkJCQkJIGNjb250ZXh0LCBjZm9ybWF0LCBsb2Nh dGlvbik7CisJCXJlc3VsdCA9IGNvZXJjZV90eXBlX2V4dGVuZGVkKHBzdGF0ZSwgKE5vZGUgKikg Y29sbC0+YXJnLAorCQkJCQkJCQkJICBpbnB1dFR5cGVJZCwgdGFyZ2V0VHlwZUlkLCB0YXJnZXRU eXBlTW9kLAorCQkJCQkJCQkJICBjY29udGV4dCwgY2Zvcm1hdCwgbG9jYXRpb24sCisJCQkJCQkJ CQkgIGVzY29udGV4dCk7CisKIAkJaWYgKHR5cGVfaXNfY29sbGF0YWJsZSh0YXJnZXRUeXBlSWQp KQogCQl7CiAJCQlDb2xsYXRlRXhwciAqbmV3Y29sbCA9IG1ha2VOb2RlKENvbGxhdGVFeHByKTsK QEAgLTQzMiw3ICs0OTAsOCBAQCBjb2VyY2VfdHlwZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUg Km5vZGUsCiAJCQkgKi8KIAkJCXJlc3VsdCA9IGJ1aWxkX2NvZXJjaW9uX2V4cHJlc3Npb24obm9k ZSwgcGF0aHR5cGUsIGZ1bmNJZCwKIAkJCQkJCQkJCQkJICAgYmFzZVR5cGVJZCwgYmFzZVR5cGVN b2QsCi0JCQkJCQkJCQkJCSAgIGNjb250ZXh0LCBjZm9ybWF0LCBsb2NhdGlvbik7CisJCQkJCQkJ CQkJCSAgIGNjb250ZXh0LCBjZm9ybWF0LCBsb2NhdGlvbiwKKwkJCQkJCQkJCQkJICAgZXNjb250 ZXh0KTsKIAogCQkJLyoKIAkJCSAqIElmIGRvbWFpbiwgY29lcmNlIHRvIHRoZSBkb21haW4gdHlw ZSBhbmQgcmVsYWJlbCB3aXRoIGRvbWFpbgpAQCAtNDQyLDcgKzUwMSw4IEBAIGNvZXJjZV90eXBl KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwKIAkJCQlyZXN1bHQgPSBjb2VyY2VfdG9f ZG9tYWluKHJlc3VsdCwgYmFzZVR5cGVJZCwgYmFzZVR5cGVNb2QsCiAJCQkJCQkJCQkJICB0YXJn ZXRUeXBlSWQsCiAJCQkJCQkJCQkJICBjY29udGV4dCwgY2Zvcm1hdCwgbG9jYXRpb24sCi0JCQkJ CQkJCQkJICB0cnVlKTsKKwkJCQkJCQkJCQkgIHRydWUsCisJCQkJCQkJCQkJICBlc2NvbnRleHQp OwogCQl9CiAJCWVsc2UKIAkJewpAQCAtNDU4LDcgKzUxOCw5IEBAIGNvZXJjZV90eXBlKFBhcnNl U3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwKIAkJCXJlc3VsdCA9IGNvZXJjZV90b19kb21haW4o bm9kZSwgYmFzZVR5cGVJZCwgYmFzZVR5cGVNb2QsCiAJCQkJCQkJCQkgIHRhcmdldFR5cGVJZCwK IAkJCQkJCQkJCSAgY2NvbnRleHQsIGNmb3JtYXQsIGxvY2F0aW9uLAotCQkJCQkJCQkJICBmYWxz ZSk7CisJCQkJCQkJCQkgIGZhbHNlLAorCQkJCQkJCQkJICBlc2NvbnRleHQpOworCiAJCQlpZiAo cmVzdWx0ID09IG5vZGUpCiAJCQl7CiAJCQkJLyoKQEAgLTY3NSw3ICs3MzcsOCBAQCBjYW5fY29l cmNlX3R5cGUoaW50IG5hcmdzLCBjb25zdCBPaWQgKmlucHV0X3R5cGVpZHMsIGNvbnN0IE9pZCAq dGFyZ2V0X3R5cGVpZHMsCiBOb2RlICoKIGNvZXJjZV90b19kb21haW4oTm9kZSAqYXJnLCBPaWQg YmFzZVR5cGVJZCwgaW50MzIgYmFzZVR5cGVNb2QsIE9pZCB0eXBlSWQsCiAJCQkJIENvZXJjaW9u Q29udGV4dCBjY29udGV4dCwgQ29lcmNpb25Gb3JtIGNmb3JtYXQsIGludCBsb2NhdGlvbiwKLQkJ CQkgYm9vbCBoaWRlSW5wdXRDb2VyY2lvbikKKwkJCQkgYm9vbCBoaWRlSW5wdXRDb2VyY2lvbiwK KwkJCQkgTm9kZSAqZXNjb250ZXh0KQogewogCUNvZXJjZVRvRG9tYWluICpyZXN1bHQ7CiAKQEAg LTcwNSw3ICs3NjgsMTAgQEAgY29lcmNlX3RvX2RvbWFpbihOb2RlICphcmcsIE9pZCBiYXNlVHlw ZUlkLCBpbnQzMiBiYXNlVHlwZU1vZCwgT2lkIHR5cGVJZCwKIAkgKi8KIAlhcmcgPSBjb2VyY2Vf dHlwZV90eXBtb2QoYXJnLCBiYXNlVHlwZUlkLCBiYXNlVHlwZU1vZCwKIAkJCQkJCQkgY2NvbnRl eHQsIENPRVJDRV9JTVBMSUNJVF9DQVNULCBsb2NhdGlvbiwKLQkJCQkJCQkgZmFsc2UpOworCQkJ CQkJCSBmYWxzZSwKKwkJCQkJCQkgZXNjb250ZXh0KTsKKwlpZiAoYXJnID09IE5VTEwpCQkJLyog c2hvdWxkbid0IGhhcHBlbiAqLworCQllbG9nKEVSUk9SLCAiZmFpbGVkIHRvIGNvZXJjZSB0eXBl IG1vZGlmaWVyIGFzIGV4cGVjdGVkIik7CiAKIAkvKgogCSAqIE5vdyBidWlsZCB0aGUgZG9tYWlu IGNvZXJjaW9uIG5vZGUuICBUaGlzIHJlcHJlc2VudHMgcnVuLXRpbWUgY2hlY2tpbmcKQEAgLTc1 Miw3ICs4MTgsOCBAQCBzdGF0aWMgTm9kZSAqCiBjb2VyY2VfdHlwZV90eXBtb2QoTm9kZSAqbm9k ZSwgT2lkIHRhcmdldFR5cGVJZCwgaW50MzIgdGFyZ2V0VHlwTW9kLAogCQkJCSAgIENvZXJjaW9u Q29udGV4dCBjY29udGV4dCwgQ29lcmNpb25Gb3JtIGNmb3JtYXQsCiAJCQkJICAgaW50IGxvY2F0 aW9uLAotCQkJCSAgIGJvb2wgaGlkZUlucHV0Q29lcmNpb24pCisJCQkJICAgYm9vbCBoaWRlSW5w dXRDb2VyY2lvbiwKKwkJCQkgICBOb2RlICplc2NvbnRleHQpCiB7CiAJQ29lcmNpb25QYXRoVHlw ZSBwYXRodHlwZTsKIAlPaWQJCQlmdW5jSWQ7CkBAIC03NzksNyArODQ2LDggQEAgY29lcmNlX3R5 cGVfdHlwbW9kKE5vZGUgKm5vZGUsIE9pZCB0YXJnZXRUeXBlSWQsIGludDMyIHRhcmdldFR5cE1v ZCwKIAl7CiAJCW5vZGUgPSBidWlsZF9jb2VyY2lvbl9leHByZXNzaW9uKG5vZGUsIHBhdGh0eXBl LCBmdW5jSWQsCiAJCQkJCQkJCQkJIHRhcmdldFR5cGVJZCwgdGFyZ2V0VHlwTW9kLAotCQkJCQkJ CQkJCSBjY29udGV4dCwgY2Zvcm1hdCwgbG9jYXRpb24pOworCQkJCQkJCQkJCSBjY29udGV4dCwg Y2Zvcm1hdCwgbG9jYXRpb24sCisJCQkJCQkJCQkJIGVzY29udGV4dCk7CiAJfQogCWVsc2UKIAl7 CkBAIC04NDAsNyArOTA4LDggQEAgYnVpbGRfY29lcmNpb25fZXhwcmVzc2lvbihOb2RlICpub2Rl LAogCQkJCQkJICBPaWQgZnVuY0lkLAogCQkJCQkJICBPaWQgdGFyZ2V0VHlwZUlkLCBpbnQzMiB0 YXJnZXRUeXBNb2QsCiAJCQkJCQkgIENvZXJjaW9uQ29udGV4dCBjY29udGV4dCwgQ29lcmNpb25G b3JtIGNmb3JtYXQsCi0JCQkJCQkgIGludCBsb2NhdGlvbikKKwkJCQkJCSAgaW50IGxvY2F0aW9u LAorCQkJCQkJICBOb2RlICplc2NvbnRleHQpCiB7CiAJaW50CQkJbmFyZ3MgPSAwOwogCkBAIC05 MTMsNiArOTgyLDkgQEAgYnVpbGRfY29lcmNpb25fZXhwcmVzc2lvbihOb2RlICpub2RlLAogCiAJ CWZleHByID0gbWFrZUZ1bmNFeHByKGZ1bmNJZCwgdGFyZ2V0VHlwZUlkLCBhcmdzLAogCQkJCQkJ CSBJbnZhbGlkT2lkLCBJbnZhbGlkT2lkLCBjZm9ybWF0KTsKKwkJaWYgKGVzY29udGV4dCkKKwkJ CWZleHByLT5lcnJvcnNhZmUgPSB0cnVlOworCiAJCWZleHByLT5sb2NhdGlvbiA9IGxvY2F0aW9u OwogCQlyZXR1cm4gKE5vZGUgKikgZmV4cHI7CiAJfQpAQCAtOTUwLDE0ICsxMDIyLDE1IEBAIGJ1 aWxkX2NvZXJjaW9uX2V4cHJlc3Npb24oTm9kZSAqbm9kZSwKIAkJdGFyZ2V0RWxlbWVudFR5cGUg PSBnZXRfZWxlbWVudF90eXBlKHRhcmdldFR5cGVJZCk7CiAJCUFzc2VydChPaWRJc1ZhbGlkKHRh cmdldEVsZW1lbnRUeXBlKSk7CiAKLQkJZWxlbWV4cHIgPSBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUo TlVMTCwKLQkJCQkJCQkJCQkgKE5vZGUgKikgY3Rlc3QsCi0JCQkJCQkJCQkJIGN0ZXN0LT50eXBl SWQsCi0JCQkJCQkJCQkJIHRhcmdldEVsZW1lbnRUeXBlLAotCQkJCQkJCQkJCSB0YXJnZXRUeXBN b2QsCi0JCQkJCQkJCQkJIGNjb250ZXh0LAotCQkJCQkJCQkJCSBjZm9ybWF0LAotCQkJCQkJCQkJ CSBsb2NhdGlvbik7CisJCWVsZW1leHByID0gY29lcmNlX3RvX3RhcmdldF90eXBlX2V4dGVuZGVk KE5VTEwsCisJCQkJCQkJCQkJCQkgIChOb2RlICopIGN0ZXN0LAorCQkJCQkJCQkJCQkJICBjdGVz dC0+dHlwZUlkLAorCQkJCQkJCQkJCQkJICB0YXJnZXRFbGVtZW50VHlwZSwKKwkJCQkJCQkJCQkJ CSAgdGFyZ2V0VHlwTW9kLAorCQkJCQkJCQkJCQkJICBjY29udGV4dCwKKwkJCQkJCQkJCQkJCSAg Y2Zvcm1hdCwKKwkJCQkJCQkJCQkJCSAgbG9jYXRpb24sCisJCQkJCQkJCQkJCQkgIGVzY29udGV4 dCk7CiAJCWlmIChlbGVtZXhwciA9PSBOVUxMKQkvKiBzaG91bGRuJ3QgaGFwcGVuICovCiAJCQll bG9nKEVSUk9SLCAiZmFpbGVkIHRvIGNvZXJjZSBhcnJheSBlbGVtZW50IHR5cGUgYXMgZXhwZWN0 ZWQiKTsKIApAQCAtMTE0MCw3ICsxMjEzLDggQEAgY29lcmNlX3JlY29yZF90b19jb21wbGV4KFBh cnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwKIAkJCQkJCQkJYmFzZVR5cGVJZCwgYmFzZVR5 cGVNb2QsCiAJCQkJCQkJCXRhcmdldFR5cGVJZCwKIAkJCQkJCQkJY2NvbnRleHQsIGNmb3JtYXQs IGxvY2F0aW9uLAotCQkJCQkJCQlmYWxzZSk7CisJCQkJCQkJCWZhbHNlLAorCQkJCQkJCQlOVUxM KTsKIAl9CiAKIAlyZXR1cm4gKE5vZGUgKikgcm93ZXhwcjsKQEAgLTEyOTUsNyArMTM2OSw4IEBA IGNvZXJjZV9udWxsX3RvX2RvbWFpbihPaWQgdHlwaWQsIGludDMyIHR5cG1vZCwgT2lkIGNvbGxh dGlvbiwKIAkJCQkJCQkJICBDT0VSQ0lPTl9JTVBMSUNJVCwKIAkJCQkJCQkJICBDT0VSQ0VfSU1Q TElDSVRfQ0FTVCwKIAkJCQkJCQkJICAtMSwKLQkJCQkJCQkJICBmYWxzZSk7CisJCQkJCQkJCSAg ZmFsc2UsCisJCQkJCQkJCSAgTlVMTCk7CiAJcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9leHByLmMKaW5kZXggMzEyZGZkYzE4MmEuLmExZTJmZGM5YTFmIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9leHByLmMKQEAgLTE3LDYgKzE3LDcgQEAKIAogI2luY2x1ZGUgImFjY2Vzcy9odHVwX2Rl dGFpbHMuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2FnZ3JlZ2F0ZS5oIgorI2luY2x1ZGUgImNh dGFsb2cvcGdfY2FzdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUg Im1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgpAQCAtMzgsNiArMzks NyBAQAogI2luY2x1ZGUgInV0aWxzL2RhdGUuaCIKICNpbmNsdWRlICJ1dGlscy9mbWdyb2lkcy5o IgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hl LmgiCiAjaW5jbHVkZSAidXRpbHMvdGltZXN0YW1wLmgiCiAjaW5jbHVkZSAidXRpbHMvdHlwY2Fj aGUuaCIKICNpbmNsdWRlICJ1dGlscy94bWwuaCIKQEAgLTYyLDcgKzY0LDggQEAgc3RhdGljIE5v ZGUgKnRyYW5zZm9ybU11bHRpQXNzaWduUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTXVsdGlBc3Np Z25SZWYgKm1hcmVmKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1DYXNlRXhwcihQYXJzZVN0YXRl ICpwc3RhdGUsIENhc2VFeHByICpjKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1TdWJMaW5rKFBh cnNlU3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluayk7CiBzdGF0aWMgTm9kZSAqdHJhbnNm b3JtQXJyYXlFeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9BcnJheUV4cHIgKmEsCi0JCQkJCQkJ CU9pZCBhcnJheV90eXBlLCBPaWQgZWxlbWVudF90eXBlLCBpbnQzMiB0eXBtb2QpOworCQkJCQkJ CQlPaWQgYXJyYXlfdHlwZSwgT2lkIGVsZW1lbnRfdHlwZSwgaW50MzIgdHlwbW9kLAorCQkJCQkJ CQlib29sICppc19jb2VyY2libGUpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybVJvd0V4cHIoUGFy c2VTdGF0ZSAqcHN0YXRlLCBSb3dFeHByICpyLCBib29sIGFsbG93RGVmYXVsdCk7CiBzdGF0aWMg Tm9kZSAqdHJhbnNmb3JtQ29hbGVzY2VFeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29hbGVzY2VF eHByICpjKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1NaW5NYXhFeHByKFBhcnNlU3RhdGUgKnBz dGF0ZSwgTWluTWF4RXhwciAqbSk7CkBAIC03OCw2ICs4MSwxMSBAQCBzdGF0aWMgTm9kZSAqdHJh bnNmb3JtV2hvbGVSb3dSZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkgIGludCBzdWJs ZXZlbHNfdXAsIGludCBsb2NhdGlvbik7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSW5kaXJlY3Rp b24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpOwogc3RhdGljIE5vZGUg KnRyYW5zZm9ybVR5cGVDYXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVHlwZUNhc3QgKnRjKTsKK3N0 YXRpYyB2b2lkIENvZXJjaW9uRXJyb3JTYWZlQ2hlY2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2Rl ICpjYXN0ZXhwciwKKwkJCQkJCQkJICAgTm9kZSAqc291cmNlLCBPaWQgaW5wdXRUeXBlLCBPaWQg dGFyZ2V0VHlwZSk7CitzdGF0aWMgdm9pZCBDb2VyY2lvbkVycm9yU2FmZV9JbnRlcm5hbChPaWQg aW5wdXRUeXBlLCBPaWQgdGFyZ2V0VHlwZSwKKwkJCQkJCQkJCSAgIGJvb2wgKmVycm9yc2FmZV9j b2VyY2lvbiwKKwkJCQkJCQkJCSAgIGJvb2wgKnVzZXJkZWZpbmVkKTsKIHN0YXRpYyBOb2RlICp0 cmFuc2Zvcm1Db2xsYXRlQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sbGF0ZUNsYXVzZSAq Yyk7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSnNvbk9iamVjdENvbnN0cnVjdG9yKFBhcnNlU3Rh dGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJSnNvbk9iamVjdENvbnN0cnVjdG9yICpjdG9yKTsKQEAg LTE2Niw3ICsxNzQsNyBAQCB0cmFuc2Zvcm1FeHByUmVjdXJzZShQYXJzZVN0YXRlICpwc3RhdGUs IE5vZGUgKmV4cHIpCiAKIAkJY2FzZSBUX0FfQXJyYXlFeHByOgogCQkJcmVzdWx0ID0gdHJhbnNm b3JtQXJyYXlFeHByKHBzdGF0ZSwgKEFfQXJyYXlFeHByICopIGV4cHIsCi0JCQkJCQkJCQkJSW52 YWxpZE9pZCwgSW52YWxpZE9pZCwgLTEpOworCQkJCQkJCQkJCUludmFsaWRPaWQsIEludmFsaWRP aWQsIC0xLCBOVUxMKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgVF9UeXBlQ2FzdDoKQEAgLTU2Niw2 ICs1NzQsNyBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5S ZWYgKmNyZWYpCiAJCWNhc2UgRVhQUl9LSU5EX1ZBTFVFU19TSU5HTEU6CiAJCWNhc2UgRVhQUl9L SU5EX0NIRUNLX0NPTlNUUkFJTlQ6CiAJCWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKKwkJ Y2FzZSBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9E RUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9JTkRFWF9FWFBSRVNTSU9OOgogCQljYXNlIEVYUFJf S0lORF9JTkRFWF9QUkVESUNBVEU6CkBAIC0xODQwLDYgKzE4NDksOSBAQCB0cmFuc2Zvcm1TdWJM aW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKIAkJY2FzZSBFWFBSX0tJ TkRfRE9NQUlOX0NIRUNLOgogCQkJZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBjaGVj ayBjb25zdHJhaW50Iik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxU OgorCQkJZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBDQVNUIERFRkFVTFQgZXhwcmVz c2lvbiIpOworCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQlj YXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgogCQkJZXJyID0gXygiY2Fubm90IHVzZSBz dWJxdWVyeSBpbiBERUZBVUxUIGV4cHJlc3Npb24iKTsKQEAgLTIwMzAsMTcgKzIwNDIsMjMgQEAg dHJhbnNmb3JtU3ViTGluayhQYXJzZVN0YXRlICpwc3RhdGUsIFN1YkxpbmsgKnN1YmxpbmspCiAg KiBJZiB0aGUgY2FsbGVyIHNwZWNpZmllcyB0aGUgdGFyZ2V0IHR5cGUsIHRoZSByZXN1bHRpbmcg YXJyYXkgd2lsbAogICogYmUgb2YgZXhhY3RseSB0aGF0IHR5cGUuICBPdGhlcndpc2Ugd2UgdHJ5 IHRvIGluZmVyIGEgY29tbW9uIHR5cGUKICAqIGZvciB0aGUgZWxlbWVudHMgdXNpbmcgc2VsZWN0 X2NvbW1vbl90eXBlKCkuCisgKgorICogaXNfY29lcmNpYmxlIGlzIHR5cGljYWxseSBOVUxMLCBl eGNlcHQgZHVyaW5nIHBhcnNlIGFuYWx5c2lzIGZvcgorICogQ0FTVCguLi4gREVGQVVMVCAuLi4g T04gQ09OVkVSU0lPTiBFUlJPUikuIFdoZW4gcHJvdmlkZWQsIGl0IGRlZmF1bHRzCisgKiB0byB0 cnVlIGJ1dCB3aWxsIGJlIHNldCB0byBmYWxzZSBpZiBjb2VyY2luZyBhcnJheSBlbGVtZW50cyBm YWlscy4KICAqLwogc3RhdGljIE5vZGUgKgogdHJhbnNmb3JtQXJyYXlFeHByKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQV9BcnJheUV4cHIgKmEsCi0JCQkJICAgT2lkIGFycmF5X3R5cGUsIE9pZCBlbGVt ZW50X3R5cGUsIGludDMyIHR5cG1vZCkKKwkJCQkgICBPaWQgYXJyYXlfdHlwZSwgT2lkIGVsZW1l bnRfdHlwZSwgaW50MzIgdHlwbW9kLCBib29sICppc19jb2VyY2libGUpCiB7CiAJQXJyYXlFeHBy ICAqbmV3YSA9IG1ha2VOb2RlKEFycmF5RXhwcik7CiAJTGlzdAkgICAqbmV3ZWxlbXMgPSBOSUw7 CiAJTGlzdAkgICAqbmV3Y29lcmNlZGVsZW1zID0gTklMOwogCUxpc3RDZWxsICAgKmVsZW1lbnQ7 CiAJT2lkCQkJY29lcmNlX3R5cGU7CisJT2lkCQkJY29lcmNlX3R5cGVfY29sbDsKIAlib29sCQlj b2VyY2VfaGFyZDsKKwlFcnJvclNhdmVDb250ZXh0IGVzY29udGV4dCA9IHtUX0Vycm9yU2F2ZUNv bnRleHR9OwogCiAJLyoKIAkgKiBUcmFuc2Zvcm0gdGhlIGVsZW1lbnQgZXhwcmVzc2lvbnMKQEAg LTIwNjQsOSArMjA4MiwxMCBAQCB0cmFuc2Zvcm1BcnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRl LCBBX0FycmF5RXhwciAqYSwKIAkJCQkJCQkJCSAgKEFfQXJyYXlFeHByICopIGUsCiAJCQkJCQkJ CQkgIGFycmF5X3R5cGUsCiAJCQkJCQkJCQkgIGVsZW1lbnRfdHlwZSwKLQkJCQkJCQkJCSAgdHlw bW9kKTsKKwkJCQkJCQkJCSAgdHlwbW9kLAorCQkJCQkJCQkJICBpc19jb2VyY2libGUpOwogCQkJ Lyogd2UgY2VydGFpbmx5IGhhdmUgYW4gYXJyYXkgaGVyZSAqLwotCQkJQXNzZXJ0KGFycmF5X3R5 cGUgPT0gSW52YWxpZE9pZCB8fCBhcnJheV90eXBlID09IGV4cHJUeXBlKG5ld2UpKTsKKwkJCUFz c2VydChpc19jb2VyY2libGUgfHwgYXJyYXlfdHlwZSA9PSBJbnZhbGlkT2lkIHx8IGFycmF5X3R5 cGUgPT0gZXhwclR5cGUobmV3ZSkpOwogCQkJbmV3YS0+bXVsdGlkaW1zID0gdHJ1ZTsKIAkJfQog CQllbHNlCkBAIC0yMTA3LDYgKzIxMjYsOCBAQCB0cmFuc2Zvcm1BcnJheUV4cHIoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBBX0FycmF5RXhwciAqYSwKIAl9CiAJZWxzZQogCXsKKwkJQXNzZXJ0KGlzX2Nv ZXJjaWJsZSA9PSBOVUxMKTsKKwogCQkvKiBDYW4ndCBoYW5kbGUgYW4gZW1wdHkgYXJyYXkgd2l0 aG91dCBhIHRhcmdldCB0eXBlICovCiAJCWlmIChuZXdlbGVtcyA9PSBOSUwpCiAJCQllcmVwb3J0 KEVSUk9SLApAQCAtMjE0NCw2ICsyMTY1LDggQEAgdHJhbnNmb3JtQXJyYXlFeHByKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgQV9BcnJheUV4cHIgKmEsCiAJCWNvZXJjZV9oYXJkID0gZmFsc2U7CiAJfQog CisJY29lcmNlX3R5cGVfY29sbCA9IGdldF90eXBjb2xsYXRpb24oY29lcmNlX3R5cGUpOworCiAJ LyoKIAkgKiBDb2VyY2UgZWxlbWVudHMgdG8gdGFyZ2V0IHR5cGUKIAkgKgpAQCAtMjE1MywyOCAr MjE3Niw3OSBAQCB0cmFuc2Zvcm1BcnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0FycmF5 RXhwciAqYSwKIAkgKiBJZiB0aGUgYXJyYXkncyB0eXBlIHdhcyBtZXJlbHkgZGVyaXZlZCBmcm9t IHRoZSBjb21tb24gdHlwZSBvZiBpdHMKIAkgKiBlbGVtZW50cywgdGhlbiB0aGUgZWxlbWVudHMg YXJlIGltcGxpY2l0bHkgY29lcmNlZCB0byB0aGUgY29tbW9uIHR5cGUuCiAJICogVGhpcyBpcyBj b25zaXN0ZW50IHdpdGggb3RoZXIgdXNlcyBvZiBzZWxlY3RfY29tbW9uX3R5cGUoKS4KKwkgKgor CSAqIElmIGlzX2NvZXJjaWJsZSBpcyBub3QgTlVMTCwgY2hlY2sgd2hldGhlciBlYWNoIGVsZW1l bnQgY2FuIGJlIGNvZXJjZWQKKwkgKiB0byB0aGUgdGFyZ2V0IHR5cGUsIHNpbWlsYXIgdG8gd2hh dCBpcyBkb25lIGluIHRyYW5zZm9ybVR5cGVDYXN0LgogCSAqLwogCWZvcmVhY2goZWxlbWVudCwg bmV3ZWxlbXMpCiAJewogCQlOb2RlCSAgICplID0gKE5vZGUgKikgbGZpcnN0KGVsZW1lbnQpOwot CQlOb2RlCSAgICpuZXdlOworCQlOb2RlCSAgICpuZXdlID0gTlVMTDsKIAogCQlpZiAoY29lcmNl X2hhcmQpCiAJCXsKLQkJCW5ld2UgPSBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUocHN0YXRlLCBlLAot CQkJCQkJCQkJCSBleHByVHlwZShlKSwKLQkJCQkJCQkJCQkgY29lcmNlX3R5cGUsCi0JCQkJCQkJ CQkJIHR5cG1vZCwKLQkJCQkJCQkJCQkgQ09FUkNJT05fRVhQTElDSVQsCi0JCQkJCQkJCQkJIENP RVJDRV9FWFBMSUNJVF9DQVNULAotCQkJCQkJCQkJCSAtMSk7Ci0JCQlpZiAobmV3ZSA9PSBOVUxM KQotCQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCQkoZXJyY29kZShFUlJDT0RFX0NBTk5PVF9DT0VS Q0UpLAotCQkJCQkJIGVycm1zZygiY2Fubm90IGNhc3QgdHlwZSAlcyB0byAlcyIsCi0JCQkJCQkJ CWZvcm1hdF90eXBlX2JlKGV4cHJUeXBlKGUpKSwKLQkJCQkJCQkJZm9ybWF0X3R5cGVfYmUoY29l cmNlX3R5cGUpKSwKLQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRp b24oZSkpKSk7CisJCQkvKgorCQkJICogQ2Fubm90IGNvZXJjZSwganVzdCBhcHBlbmQgdGhlIHRy YW5zZm9ybWVkIGVsZW1lbnQgZXhwcmVzc2lvbgorCQkJICogdG8gdGhlIGxpc3QuCisJCQkgKi8K KwkJCWlmIChpc19jb2VyY2libGUgJiYgKCEqaXNfY29lcmNpYmxlKSkKKwkJCQluZXdlID0gZTsK KwkJCWVsc2UKKwkJCXsKKwkJCQlOb2RlCSAgICplY29weSA9IE5VTEw7CisKKwkJCQlpZiAoaXNf Y29lcmNpYmxlKQorCQkJCQllY29weSA9IGNvcHlPYmplY3QoZSk7CisKKwkJCQluZXdlID0gY29l cmNlX3RvX3RhcmdldF90eXBlX2V4dGVuZGVkKHBzdGF0ZSwgZSwKKwkJCQkJCQkJCQkJCQkgIGV4 cHJUeXBlKGUpLAorCQkJCQkJCQkJCQkJCSAgY29lcmNlX3R5cGUsCisJCQkJCQkJCQkJCQkJICB0 eXBtb2QsCisJCQkJCQkJCQkJCQkJICBDT0VSQ0lPTl9FWFBMSUNJVCwKKwkJCQkJCQkJCQkJCQkg IENPRVJDRV9FWFBMSUNJVF9DQVNULAorCQkJCQkJCQkJCQkJCSAgLTEsCisJCQkJCQkJCQkJCQkJ ICAoTm9kZSAqKSAmZXNjb250ZXh0KTsKKwkJCQlpZiAobmV3ZSA9PSBOVUxMKQorCQkJCXsKKwkJ CQkJLyoKKwkJCQkJICogQ2Fubm90IGNvZXJjZS4gUmFpc2UgYW4gZXJyb3Igb3IgYXBwZW5kIHRo ZSB0cmFuc2Zvcm1lZAorCQkJCQkgKiBlbGVtZW50IHRvIHRoZSBsaXN0LgorCQkJCQkgKi8KKwkJ CQkJaWYgKCFpc19jb2VyY2libGUpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJy Y29kZShFUlJDT0RFX0NBTk5PVF9DT0VSQ0UpLAorCQkJCQkJCQkgZXJybXNnKCJjYW5ub3QgY2Fz dCB0eXBlICVzIHRvICVzIiwKKwkJCQkJCQkJCQlmb3JtYXRfdHlwZV9iZShleHByVHlwZShlKSks CisJCQkJCQkJCQkJZm9ybWF0X3R5cGVfYmUoY29lcmNlX3R5cGUpKSwKKwkJCQkJCQkJIHBhcnNl cl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihlKSkpKTsKKwkJCQkJZWxzZQorCQkJ CQl7CisJCQkJCQluZXdlID0gZWNvcHk7CisJCQkJCQkqaXNfY29lcmNpYmxlID0gZmFsc2U7CisJ CQkJCX0KKwkJCQl9CisJCQkJZWxzZSBpZiAoaXNfY29lcmNpYmxlICYmIElzQShlY29weSwgQ29u c3QpICYmIElzQShuZXdlLCBGdW5jRXhwcikpCisJCQkJeworCQkJCQlOb2RlCSAgICpuZXdleHBy ID0gY29weU9iamVjdChuZXdlKTsKKworCQkJCQkvKgorCQkJCQkgKiBQcmUtZXZhbHVhdGUgc2lt cGxlIGNvbnN0YW50IGNhc3QgZXhwcmVzc2lvbnMgaW4gYSB3YXkKKwkJCQkJICogdGhhdCB0b2xl cmF0ZSBlcnJvcnMuCisJCQkJCSAqLworCQkJCQlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0 ZSwgbmV3ZXhwcik7CisKKwkJCQkJbmV3ZXhwciA9IChOb2RlICopIGV2YWx1YXRlX2V4cHIoKEV4 cHIgKikgbmV3ZXhwciwKKwkJCQkJCQkJCQkJCQkgY29lcmNlX3R5cGUsCisJCQkJCQkJCQkJCQkJ IHR5cG1vZCwKKwkJCQkJCQkJCQkJCQkgY29lcmNlX3R5cGVfY29sbCwKKwkJCQkJCQkJCQkJCQkg KE5vZGUgKikgJmVzY29udGV4dCk7CisJCQkJCWlmIChuZXdleHByID09IE5VTEwpCisJCQkJCXsK KwkJCQkJCW5ld2UgPSBlY29weTsKKwkJCQkJCSppc19jb2VyY2libGUgPSBmYWxzZTsKKwkJCQkJ fQorCQkJCX0KKwkJCX0KIAkJfQogCQllbHNlCiAJCQluZXdlID0gY29lcmNlX3RvX2NvbW1vbl90 eXBlKHBzdGF0ZSwgZSwKQEAgLTI3MjMsMTcgKzI3OTcsNjMgQEAgdHJhbnNmb3JtV2hvbGVSb3dS ZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJzZU5hbWVzcGFjZUl0ZW0gKm5zaXRlbSwKIHN0YXRp YyBOb2RlICoKIHRyYW5zZm9ybVR5cGVDYXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVHlwZUNhc3Qg KnRjKQogewotCU5vZGUJICAgKnJlc3VsdDsKKwlTYWZlVHlwZUNhc3RFeHByICpzdGM7CisJTm9k ZQkgICAqY2FzdGV4cHIgPSBOVUxMOworCU5vZGUJICAgKmRlZmV4cHIgPSBOVUxMOwogCU5vZGUJ ICAgKmFyZyA9IHRjLT5hcmc7CisJTm9kZQkgICAqc291cmNlOwogCU5vZGUJICAgKmV4cHI7CiAJ T2lkCQkJaW5wdXRUeXBlOwogCU9pZAkJCXRhcmdldFR5cGU7CisJT2lkCQkJdGFyZ2V0VHlwZWNv bGw7CiAJaW50MzIJCXRhcmdldFR5cG1vZDsKIAlpbnQJCQlsb2NhdGlvbjsKKwlib29sCQlpc19j b2VyY2libGUgPSB0cnVlOworCUVycm9yU2F2ZUNvbnRleHQgZXNjb250ZXh0ID0ge1RfRXJyb3JT YXZlQ29udGV4dH07CiAKIAkvKiBMb29rIHVwIHRoZSB0eXBlIG5hbWUgZmlyc3QgKi8KIAl0eXBl bmFtZVR5cGVJZEFuZE1vZChwc3RhdGUsIHRjLT50eXBlTmFtZSwgJnRhcmdldFR5cGUsICZ0YXJn ZXRUeXBtb2QpOwogCisJdGFyZ2V0VHlwZWNvbGwgPSBnZXRfdHlwY29sbGF0aW9uKHRhcmdldFR5 cGUpOworCisJLyogbG9va2luZyBhdCBERUZBVUxUIGV4cHJlc3Npb24gKi8KKwlpZiAodGMtPmRl ZmV4cHIpCisJeworCQlPaWQJCQlkZWZDb2xsOworCisJCWRlZmV4cHIgPSB0cmFuc2Zvcm1FeHBy KHBzdGF0ZSwgdGMtPmRlZmV4cHIsIEVYUFJfS0lORF9DQVNUX0RFRkFVTFQpOworCisJCWRlZmV4 cHIgPSBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUocHN0YXRlLCBkZWZleHByLCBleHByVHlwZShkZWZl eHByKSwKKwkJCQkJCQkJCQl0YXJnZXRUeXBlLCB0YXJnZXRUeXBtb2QsCisJCQkJCQkJCQkJQ09F UkNJT05fRVhQTElDSVQsCisJCQkJCQkJCQkJQ09FUkNFX0VYUExJQ0lUX0NBU1QsCisJCQkJCQkJ CQkJZXhwckxvY2F0aW9uKGRlZmV4cHIpKTsKKwkJaWYgKGRlZmV4cHIgPT0gTlVMTCkKKwkJCWVy ZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9DQU5OT1RfQ09FUkNFKSwKKwkJCQkJ ZXJybXNnKCJjYW5ub3QgY29lcmNlICVzIGV4cHJlc3Npb24gdG8gdHlwZSAlcyIsCisJCQkJCQkg ICAiQ0FTVCBERUZBVUxUIiwKKwkJCQkJCSAgIGZvcm1hdF90eXBlX2JlKHRhcmdldFR5cGUpKSwK KwkJCQkJcGFyc2VyX2NvZXJjaW9uX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKHRj LT5kZWZleHByKSwgZGVmZXhwcikpOworCisJCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRl LCBkZWZleHByKTsKKworCQkvKgorCQkgKiBUaGUgY29sbGF0aW9uIG9mIERFRkFVTFQgZXhwcmVz c2lvbiBtdXN0IG1hdGNoIHRoZSBjb2xsYXRpb24gb2YgdGhlCisJCSAqIHRhcmdldCB0eXBlLgor CQkgKi8KKwkJZGVmQ29sbCA9IGV4cHJDb2xsYXRpb24oZGVmZXhwcik7CisKKwkJaWYgKHRhcmdl dFR5cGVjb2xsICE9IGRlZkNvbGwpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVS UkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCQllcnJtc2coImNvbGxhdGlvbiBvZiBDQVNU IERFRkFVTFQgZXhwcmVzc2lvbiBjb25mbGljdHMgd2l0aCB0YXJnZXQgdHlwZSBjb2xsYXRpb24i KSwKKwkJCQkJZXJyZGV0YWlsKCJcIiVzXCIgdmVyc3VzIFwiJXNcIiIsCisJCQkJCQkJICBnZXRf Y29sbGF0aW9uX25hbWUoZGVmQ29sbCksCisJCQkJCQkJICBnZXRfY29sbGF0aW9uX25hbWUodGFy Z2V0VHlwZWNvbGwpKSwKKwkJCQkJcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0 aW9uKGRlZmV4cHIpKSk7CisJfQorCiAJLyoKIAkgKiBJZiB0aGUgc3ViamVjdCBvZiB0aGUgdHlw ZWNhc3QgaXMgYW4gQVJSQVlbXSBjb25zdHJ1Y3QgYW5kIHRoZSB0YXJnZXQKIAkgKiB0eXBlIGlz IGFuIGFycmF5IHR5cGUsIHdlIGludm9rZSB0cmFuc2Zvcm1BcnJheUV4cHIoKSBkaXJlY3RseSBz byB0aGF0CkBAIC0yNzYyLDcgKzI4ODIsOCBAQCB0cmFuc2Zvcm1UeXBlQ2FzdChQYXJzZVN0YXRl ICpwc3RhdGUsIFR5cGVDYXN0ICp0YykKIAkJCQkJCQkJCSAgKEFfQXJyYXlFeHByICopIGFyZywK IAkJCQkJCQkJCSAgdGFyZ2V0QmFzZVR5cGUsCiAJCQkJCQkJCQkgIGVsZW1lbnRUeXBlLAotCQkJ CQkJCQkJICB0YXJnZXRCYXNlVHlwbW9kKTsKKwkJCQkJCQkJCSAgdGFyZ2V0QmFzZVR5cG1vZCwK KwkJCQkJCQkJCSAgZGVmZXhwciA/ICZpc19jb2VyY2libGUgOiBOVUxMKTsKIAkJfQogCQllbHNl CiAJCQlleHByID0gdHJhbnNmb3JtRXhwclJlY3Vyc2UocHN0YXRlLCBhcmcpOwpAQCAtMjc4Mywy MCArMjkwNCwyNDcgQEAgdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBl Q2FzdCAqdGMpCiAJaWYgKGxvY2F0aW9uIDwgMCkKIAkJbG9jYXRpb24gPSB0Yy0+dHlwZU5hbWUt PmxvY2F0aW9uOwogCi0JcmVzdWx0ID0gY29lcmNlX3RvX3RhcmdldF90eXBlKHBzdGF0ZSwgZXhw ciwgaW5wdXRUeXBlLAotCQkJCQkJCQkgICB0YXJnZXRUeXBlLCB0YXJnZXRUeXBtb2QsCi0JCQkJ CQkJCSAgIENPRVJDSU9OX0VYUExJQ0lULAotCQkJCQkJCQkgICBDT0VSQ0VfRVhQTElDSVRfQ0FT VCwKLQkJCQkJCQkJICAgbG9jYXRpb24pOwotCWlmIChyZXN1bHQgPT0gTlVMTCkKKwkvKgorCSAq IGNvZXJjZV90b190YXJnZXRfdHlwZV9leHRlbmRlZCBpcyB1bmxpa2VseSB0byBtb2RpZnkgdGhl IHNvdXJjZQorCSAqIGV4cHJlc3Npb24sIGJ1dCB3ZSBzdGlsbCBjcmVhdGUgYSBjb3B5IGJlZm9y ZWhhbmQuIFRoaXMgYWxsb3dzCisJICogU2FmZVR5cGVDYXN0RXhwciB0byByZWNlaXZlIHRoZSB0 cmFuc2Zvcm1lZCBzb3VyY2UgZXhwcmVzc2lvbgorCSAqIHVuY2hhbmdlZC4KKwkgKi8KKwlzb3Vy Y2UgPSBjb3B5T2JqZWN0KGV4cHIpOworCisJaWYgKGlzX2NvZXJjaWJsZSkKKwl7CisJCWNhc3Rl eHByID0gY29lcmNlX3RvX3RhcmdldF90eXBlX2V4dGVuZGVkKHBzdGF0ZSwgZXhwciwgaW5wdXRU eXBlLAorCQkJCQkJCQkJCQkJICB0YXJnZXRUeXBlLCB0YXJnZXRUeXBtb2QsCisJCQkJCQkJCQkJ CQkgIENPRVJDSU9OX0VYUExJQ0lULAorCQkJCQkJCQkJCQkJICBDT0VSQ0VfRVhQTElDSVRfQ0FT VCwKKwkJCQkJCQkJCQkJCSAgbG9jYXRpb24sCisJCQkJCQkJCQkJCQkgIGRlZmV4cHIgPyAoTm9k ZSAqKSAmZXNjb250ZXh0IDogTlVMTCk7CisKKwkJLyogQ2Fubm90IGNvZXJjZS4gU2V0IGlzX2Nv ZXJjaWJsZSB0byBmYWxzZSBvciByYWlzZSBhbiBlcnJvciAqLworCQlpZiAoIWNhc3RleHByKQor CQl7CisJCQlpc19jb2VyY2libGUgPSBmYWxzZTsKKworCQkJaWYgKCFkZWZleHByKQorCQkJCWVy ZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX0NBTk5PVF9DT0VSQ0UpLAorCQkJ CQkJIGVycm1zZygiY2Fubm90IGNhc3QgdHlwZSAlcyB0byAlcyIsCisJCQkJCQkJCWZvcm1hdF90 eXBlX2JlKGlucHV0VHlwZSksCisJCQkJCQkJCWZvcm1hdF90eXBlX2JlKHRhcmdldFR5cGUpKSwK KwkJCQkJCSBwYXJzZXJfY29lcmNpb25fZXJycG9zaXRpb24ocHN0YXRlLCBsb2NhdGlvbiwgZXhw cikpKTsKKwkJfQorCisJCS8qIE5vIERFRkFVTFQgLi4uIE9OIENPTlZFUlNJT04gRVJST1IsIGV4 aXQgbm93ICovCisJCWlmICghZGVmZXhwcikKKwkJCXJldHVybiBjYXN0ZXhwcjsKKwl9CisKKwkv KiBGdXJ0aGVyIGNoZWNrIGZvciBDQVNUKC4uLiBERUZBVUxUIC4uLiBPTiBDT05WRVJTSU9OIEVS Uk9SKSAqLworCUNvZXJjaW9uRXJyb3JTYWZlQ2hlY2socHN0YXRlLCBjYXN0ZXhwciwgc291cmNl LCBpbnB1dFR5cGUsCisJCQkJCQkgICB0YXJnZXRUeXBlKTsKKworCWlmIChJc0Eoc291cmNlLCBD b25zdCkgJiYgY2FzdGV4cHIgJiYgSXNBKGNhc3RleHByLCBGdW5jRXhwcikpCisJeworCQlOb2Rl CSAgICpuZXdleHByID0gY29weU9iamVjdChjYXN0ZXhwcik7CisKKwkJYXNzaWduX2V4cHJfY29s bGF0aW9ucyhwc3RhdGUsIG5ld2V4cHIpOworCisJCS8qCisJCSAqIFByZS1ldmFsdWF0ZSBzaW1w bGUgY29uc3RhbnQgY2FzdCBleHByZXNzaW9ucyBpbiBhbiBlcnJvci1zYWZlCisJCSAqIG1hbm5l ciB2aWEgZXZhbHVhdGVfZXhwci4KKwkJICoKKwkJICogUmF0aW9uYWxlOiAxLiBMYXRlciBvcGVy YXRpb25zLCBzdWNoIGFzIGRlcGFyc2luZyBzYWZlLWNhc3QKKwkJICogZXhwcmVzc2lvbnMsIG1h eSBpbnZva2UgZXZhbF9jb25zdF9leHByZXNzaW9ucygpLiBCZWNhdXNlIHRoYXQKKwkJICogZnVu Y3Rpb24gY2Fubm90IGhhbmRsZSBlcnJvcnMgZ3JhY2VmdWxseSwgd2UgcHJlZW1wdGl2ZWx5IHBl cmZvcm0KKwkJICogdGhlIGV2YWx1YXRpb24gaGVyZSB1c2luZyB0aGUgZXJyb3Itc2FmZSBldmFs dWF0ZV9leHByKCkgaW5zdGVhZC4KKwkJICoKKwkJICogMi4gRXZlbiBpZiB0aGUgRnVuY0V4cHIg KGZvciBjYXN0ZnVuYykgaGFzIHRocmVlIGFyZ3VtZW50cywgdGhlCisJCSAqIHNlY29uZCBhbmQg dGhpcmQgYXJndW1lbnRzIGFyZSBndWFyYW50ZWVkIHRvIGJlIGNvbnN0YW50cyAoc2VlCisJCSAq IGNvZXJjZV90b190YXJnZXRfdHlwZSkuIEV2YWx1YXRpbmcgYSBGdW5jRXhwciB3aGVyZSBhbGwg YXJndW1lbnRzCisJCSAqIGFyZSBDb25zdCBub2RlcyBpcyBzYWZlIGluIGV2YWx1YXRlX2V4cHIu CisJCSAqLworCQluZXdleHByID0gKE5vZGUgKikgZXZhbHVhdGVfZXhwcigoRXhwciAqKSBuZXdl eHByLAorCQkJCQkJCQkJCSB0YXJnZXRUeXBlLAorCQkJCQkJCQkJCSB0YXJnZXRUeXBtb2QsCisJ CQkJCQkJCQkJIHRhcmdldFR5cGVjb2xsLAorCQkJCQkJCQkJCSAoTm9kZSAqKSAmZXNjb250ZXh0 KTsKKwkJLyogQ2Fubm90IGNvZXJjZSAqLworCQlpZiAobmV3ZXhwciA9PSBOVUxMKQorCQl7CisJ CQlpc19jb2VyY2libGUgPSBmYWxzZTsKKwkJCWNhc3RleHByID0gTlVMTDsKKwkJfQorCX0KKwor CUFzc2VydChpc19jb2VyY2libGUgfHwgY2FzdGV4cHIgPT0gTlVMTCk7CisKKwlzdGMgPSBtYWtl Tm9kZShTYWZlVHlwZUNhc3RFeHByKTsKKwlzdGMtPnNvdXJjZSA9IChFeHByICopIHNvdXJjZTsK KwlzdGMtPmNhc3RleHByID0gKEV4cHIgKikgY2FzdGV4cHI7CisJc3RjLT5kZWZleHByID0gKEV4 cHIgKikgZGVmZXhwcjsKKwlzdGMtPnJlc3VsdHR5cGUgPSB0YXJnZXRUeXBlOworCXN0Yy0+cmVz dWx0dHlwbW9kID0gdGFyZ2V0VHlwbW9kOworCXN0Yy0+cmVzdWx0Y29sbGlkID0gdGFyZ2V0VHlw ZWNvbGw7CisJc3RjLT5sb2NhdGlvbiA9IGxvY2F0aW9uOworCisJcmV0dXJuIChOb2RlICopIHN0 YzsKK30KKworLyoKKyAqIENoZWNrIHR5cGUgY29lcmNpb24gaXMgZXJyb3Igc2FmZSBvciBub3Qu ICBJZiBub3QgdGhlbiByZXBvcnQgZXJyb3IKKyAqLworc3RhdGljIHZvaWQKK0NvZXJjaW9uRXJy b3JTYWZlQ2hlY2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpjYXN0ZXhwciwgTm9kZSAqc291 cmNlLAorCQkJCQkgICBPaWQgaW5wdXRUeXBlLCBPaWQgdGFyZ2V0VHlwZSkKK3sKKwlib29sCQll cnJvcnNhZmVfY29lcmNpb24gPSB0cnVlOworCWJvb2wJCXVzZXJkZWZpbmVkID0gZmFsc2U7CisK KwkvKgorCSAqIEJpbmFyeSBjb2VyY2lvbiBjYXN0IGlzIGVycm9yLXNhZmUsIENvZXJjZVZpYUlP IGNhbiBhbHNvIGJlIGV2YWx1YXRlZAorCSAqIGluIGFuIGVycm9yLXNhZmUgbWFubmVyLiBTa2lw IHRoZXNlIGNhc2VzLgorCSAqLworCWlmIChjYXN0ZXhwciA9PSBOVUxMIHx8CisJCUlzQmluYXJ5 Q29lcmNpYmxlKGlucHV0VHlwZSwgdGFyZ2V0VHlwZSkgfHwKKwkJSXNBKGNhc3RleHByLCBDb2Vy Y2VWaWFJTykpCisJCXJldHVybjsKKworCUNvZXJjaW9uRXJyb3JTYWZlX0ludGVybmFsKGlucHV0 VHlwZSwgdGFyZ2V0VHlwZSwKKwkJCQkJCQkgICAmZXJyb3JzYWZlX2NvZXJjaW9uLAorCQkJCQkJ CSAgICZ1c2VyZGVmaW5lZCk7CisKKwlpZiAoIWVycm9yc2FmZV9jb2VyY2lvbikKIAkJZXJlcG9y dChFUlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX0NBTk5PVF9DT0VSQ0UpLAotCQkJCSBlcnJt c2coImNhbm5vdCBjYXN0IHR5cGUgJXMgdG8gJXMiLAotCQkJCQkJZm9ybWF0X3R5cGVfYmUoaW5w dXRUeXBlKSwKLQkJCQkJCWZvcm1hdF90eXBlX2JlKHRhcmdldFR5cGUpKSwKLQkJCQkgcGFyc2Vy X2NvZXJjaW9uX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24sIGV4cHIpKSk7CisJCQkJZXJy Y29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJZXJybXNnKCJjYW5ub3Qg Y2FzdCB0eXBlICVzIHRvICVzIHdoZW4gJXMgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gJXMi LAorCQkJCQkgICBmb3JtYXRfdHlwZV9iZShpbnB1dFR5cGUpLAorCQkJCQkgICBmb3JtYXRfdHlw ZV9iZSh0YXJnZXRUeXBlKSwKKwkJCQkJICAgIkRFRkFVTFQiLAorCQkJCQkgICAiQ0FTVCAuLi4g T04gQ09OVkVSU0lPTiBFUlJPUiIpLAorCQkJCXVzZXJkZWZpbmVkCisJCQkJPyBlcnJoaW50KCJT YWZlIHR5cGUgY2FzdCBmb3IgdXNlci1kZWZpbmVkIHR5cGVzIGFyZSBub3QgeWV0IHN1cHBvcnRl ZC4iKQorCQkJCTogZXJyaGludCgiRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0 aW9uIGlzIG5vdCBlcnJvciBzYWZlLiIpLAorCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUs IGV4cHJMb2NhdGlvbihzb3VyY2UpKSk7Cit9CiAKLQlyZXR1cm4gcmVzdWx0Oworc3RhdGljIHZv aWQKK0NvZXJjaW9uRXJyb3JTYWZlX0ludGVybmFsKE9pZCBpbnB1dFR5cGUsIE9pZCB0YXJnZXRU eXBlLAorCQkJCQkJICAgYm9vbCAqZXJyb3JzYWZlX2NvZXJjaW9uLCBib29sICp1c2VyZGVmaW5l ZCkKK3sKKwlIZWFwVHVwbGUJdHVwbGU7CisKKwljaGFyCQlpbnB1dF90eXB0eXBlID0gZ2V0X3R5 cHR5cGUoaW5wdXRUeXBlKTsKKwljaGFyCQl0YXJnZXRfdHlwdHlwZSA9IGdldF90eXB0eXBlKHRh cmdldFR5cGUpOworCisJLyogc2luY2UgdGhpcyBmdW5jdGlvbiByZWN1cnNlcywgaXQgY291bGQg YmUgZHJpdmVuIHRvIHN0YWNrIG92ZXJmbG93ICovCisJY2hlY2tfc3RhY2tfZGVwdGgoKTsKKwor CUFzc2VydChlcnJvcnNhZmVfY29lcmNpb24gIT0gTlVMTCk7CisJQXNzZXJ0KHVzZXJkZWZpbmVk ICE9IE5VTEwpOworCisJaWYgKCEoKmVycm9yc2FmZV9jb2VyY2lvbikpCisJCXJldHVybjsKKwor CWlmIChpbnB1dF90eXB0eXBlID09IFRZUFRZUEVfRE9NQUlOICYmCisJCXRhcmdldF90eXB0eXBl ID09IFRZUFRZUEVfRE9NQUlOKQorCXsKKwkJQ29lcmNpb25FcnJvclNhZmVfSW50ZXJuYWwoZ2V0 QmFzZVR5cGUoaW5wdXRUeXBlKSwKKwkJCQkJCQkJICAgZ2V0QmFzZVR5cGUodGFyZ2V0VHlwZSks CisJCQkJCQkJCSAgIGVycm9yc2FmZV9jb2VyY2lvbiwKKwkJCQkJCQkJICAgdXNlcmRlZmluZWQp OworCQlyZXR1cm47CisJfQorCWVsc2UgaWYgKGlucHV0X3R5cHR5cGUgPT0gVFlQVFlQRV9ET01B SU4pCisJeworCQlDb2VyY2lvbkVycm9yU2FmZV9JbnRlcm5hbChnZXRCYXNlVHlwZShpbnB1dFR5 cGUpLAorCQkJCQkJCQkgICB0YXJnZXRUeXBlLAorCQkJCQkJCQkgICBlcnJvcnNhZmVfY29lcmNp b24sCisJCQkJCQkJCSAgIHVzZXJkZWZpbmVkKTsKKwkJcmV0dXJuOworCX0KKwllbHNlIGlmICh0 YXJnZXRfdHlwdHlwZSA9PSBUWVBUWVBFX0RPTUFJTikKKwl7CisJCUNvZXJjaW9uRXJyb3JTYWZl X0ludGVybmFsKGlucHV0VHlwZSwKKwkJCQkJCQkJICAgZ2V0QmFzZVR5cGUodGFyZ2V0VHlwZSks CisJCQkJCQkJCSAgIGVycm9yc2FmZV9jb2VyY2lvbiwKKwkJCQkJCQkJICAgdXNlcmRlZmluZWQp OworCQlyZXR1cm47CisJfQorCWVsc2UgaWYgKChpbnB1dF90eXB0eXBlICE9IFRZUFRZUEVfQkFT RSAmJiBpbnB1dF90eXB0eXBlICE9IFRZUFRZUEVfUFNFVURPICYmIGlucHV0VHlwZSA+IEZpcnN0 VW5waW5uZWRPYmplY3RJZCkKKwkJCSB8fCAodGFyZ2V0X3R5cHR5cGUgIT0gVFlQVFlQRV9CQVNF ICYmIHRhcmdldFR5cGUgPiBGaXJzdFVucGlubmVkT2JqZWN0SWQpKQorCXsKKwkJLyoKKwkJICog SW5wdXQgZXhwcmVzc2lvbiBjYW4gYmUgVU5LTk9XTiBDb25zdCwgYW5kIFVOS05PV04gaXMgdHlw dHlwZSBpcworCQkgKiBUWVBUWVBFX1BTRVVETworCQkgKi8KKworCQkvKgorCQkgKiBDb21wb3Np dGUtdG8tY29tcG9zaXRlIGNhc3RpbmcgaXMgbm90IGltcGxlbWVudGVkLCBzbyBlcnJvci1zYWZl CisJCSAqIGNhc3QgYmV0d2VlbiB0aGVtIHNob3VsZCBub3QgYmUgcG9zc2libGU7IHdlIGZvcmJp ZCBpdCBoZXJlLgorCQkgKgorCQkgKiBPdXIgdHlwZSBzeXN0ZW0gZG9lcyBub3QgYXV0b21hdGlj YWxseSBjYXN0IGEgdXNlci1kZWZpbmVkIHJhbmdlCisJCSAqIHR5cGUgdG8gYW4gYnVpbHQtaW4g cmFuZ2UgdHlwZSwgZXZlbiBpZiB0aGVpciBiYXNlIGVsZW1lbnQgdHlwZXMKKwkJICogYXJlIHRo ZSBzYW1lLiBUaGVyZSBtYXkgYmUgY29tcGxleCBlZGdlIGNhc2VzIHRvIGNvbnNpZGVyLCBzYWZl ciB0bworCQkgKiBzaW1wbHkgZGlzYWxsb3cgZXJyb3Itc2FmZSBjYXN0aW5nIGZvciB0aGVtIG5v dy4KKwkJICovCisJCSplcnJvcnNhZmVfY29lcmNpb24gPSBmYWxzZTsKKworCQlyZXR1cm47CisJ fQorCWVsc2UKKwl7CisJCU9pZAkJCWlucHV0X3R5cGVsZW0gPSBnZXRfZWxlbWVudF90eXBlKGlu cHV0VHlwZSk7CisJCU9pZAkJCXRhcmdldF90eXBlbGVtID0gZ2V0X2VsZW1lbnRfdHlwZSh0YXJn ZXRUeXBlKTsKKworCQlpZiAoT2lkSXNWYWxpZChpbnB1dF90eXBlbGVtKSAmJiBPaWRJc1ZhbGlk KHRhcmdldF90eXBlbGVtKSkKKwkJeworCQkJLyogcmVjdXJzZSBpbnRvIGFycmF5IGVsZW1lbnQg dHlwZSAqLworCQkJQ29lcmNpb25FcnJvclNhZmVfSW50ZXJuYWwoaW5wdXRfdHlwZWxlbSwKKwkJ CQkJCQkJCSAgIHRhcmdldF90eXBlbGVtLAorCQkJCQkJCQkJICAgZXJyb3JzYWZlX2NvZXJjaW9u LAorCQkJCQkJCQkJICAgdXNlcmRlZmluZWQpOworCQkJcmV0dXJuOworCQl9CisJfQorCisJLyoK KwkgKiBDYXN0cyBpbnZvbHZpbmcgdHlwZSBNT05FWSBhcmUgbm90IGVycm9yIHNhZmUuICBUeXBl IENJUkNMRSB0byB0eXBlCisJICogUE9MWUdPTiBjYXN0IGlzIHVuc2FmZSBiZWNhdXNlIGl0IHJl bGllcyBvbiBhIFNRTC1sYW5ndWFnZSBmdW5jdGlvbjsKKwkgKiBvbmx5IEMtbGFuZ3VhZ2UgZnVu Y3Rpb25zIGFyZSBjdXJyZW50bHkgc3VwcG9ydGVkIGZvciBlcnJvciBzYWZlIGNhc3RzLgorCSAq LworCWlmIChpbnB1dFR5cGUgPT0gTU9ORVlPSUQgfHwKKwkJdGFyZ2V0VHlwZSA9PSBNT05FWU9J RCB8fAorCQkoaW5wdXRUeXBlID09IENJUkNMRU9JRCAmJiB0YXJnZXRUeXBlID09IFBPTFlHT05P SUQpKQorCXsKKwkJKmVycm9yc2FmZV9jb2VyY2lvbiA9IGZhbHNlOworCQlyZXR1cm47CisJfQor CisJaWYgKGlucHV0VHlwZSAhPSB0YXJnZXRUeXBlKQorCXsKKwkJdHVwbGUgPSBTZWFyY2hTeXND YWNoZTIoQ0FTVFNPVVJDRVRBUkdFVCwKKwkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShpbnB1dFR5 cGUpLAorCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKHRhcmdldFR5cGUpKTsKKworCQkvKgorCQkg KiBBIHBnX2Nhc3QgZW50cnkgbWlnaHQgbm90IGV4aXN0IGZvciB0aGlzIHNwZWNpZmljIGNhc3Q7 IGZvcgorCQkgKiBleGFtcGxlLCB3aGVuIHVzaW5nIENvZXJjZVZpYUlPLgorCQkgKi8KKwkJaWYg KEhlYXBUdXBsZUlzVmFsaWQodHVwbGUpKQorCQl7CisJCQlGb3JtX3BnX2Nhc3QgY2FzdEZvcm0g PSAoRm9ybV9wZ19jYXN0KSBHRVRTVFJVQ1QodHVwbGUpOworCisJCQlpZiAoY2FzdEZvcm0tPmNh c3RmdW5jID4gRmlyc3RVbnBpbm5lZE9iamVjdElkKQorCQkJeworCQkJCSplcnJvcnNhZmVfY29l cmNpb24gPSBmYWxzZTsKKwkJCQkqdXNlcmRlZmluZWQgPSB0cnVlOworCQkJfQorCQkJUmVsZWFz ZVN5c0NhY2hlKHR1cGxlKTsKKwkJfQorCQllbHNlIGlmIChpbnB1dFR5cGUgPiBGaXJzdFVucGlu bmVkT2JqZWN0SWQgJiYgdGFyZ2V0VHlwZSA+IEZpcnN0VW5waW5uZWRPYmplY3RJZCkKKwkJCSpl cnJvcnNhZmVfY29lcmNpb24gPSBmYWxzZTsKKwl9CiB9CiAKIC8qCkBAIC0zMjEyLDYgKzM1NjAs OCBAQCBQYXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKQogCQljYXNlIEVY UFJfS0lORF9DSEVDS19DT05TVFJBSU5UOgogCQljYXNlIEVYUFJfS0lORF9ET01BSU5fQ0hFQ0s6 CiAJCQlyZXR1cm4gIkNIRUNLIjsKKwkJY2FzZSBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxUOgorCQkJ cmV0dXJuICJDQVNUIERFRkFVTFQiOwogCQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoK IAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKIAkJCXJldHVybiAiREVGQVVMVCI7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwppbmRleCA4ZGJkNDFhMzU0OC4uODFhNGQ1YzU4ZWYgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKKysrIGIvc3JjL2JhY2tl bmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwpAQCAtNzY4LDYgKzc2OCw3IEBAIFBhcnNlRnVuY09yQ29s dW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqZnVuY25hbWUsIExpc3QgKmZhcmdzLAogCQlm dW5jZXhwci0+ZnVuY2Zvcm1hdCA9IGZ1bmNmb3JtYXQ7CiAJCS8qIGZ1bmNjb2xsaWQgYW5kIGlu cHV0Y29sbGlkIHdpbGwgYmUgc2V0IGJ5IHBhcnNlX2NvbGxhdGUuYyAqLwogCQlmdW5jZXhwci0+ YXJncyA9IGZhcmdzOworCQlmdW5jZXhwci0+ZXJyb3JzYWZlID0gZmFsc2U7CiAJCWZ1bmNleHBy LT5sb2NhdGlvbiA9IGxvY2F0aW9uOwogCiAJCXJldHZhbCA9IChOb2RlICopIGZ1bmNleHByOwpA QCAtMjc0Myw2ICsyNzQ0LDkgQEAgY2hlY2tfc3JmX2NhbGxfcGxhY2VtZW50KFBhcnNlU3RhdGUg KnBzdGF0ZSwgTm9kZSAqbGFzdF9zcmYsIGludCBsb2NhdGlvbikKIAkJY2FzZSBFWFBSX0tJTkRf RE9NQUlOX0NIRUNLOgogCQkJZXJyID0gXygic2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5v dCBhbGxvd2VkIGluIGNoZWNrIGNvbnN0cmFpbnRzIik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBS X0tJTkRfQ0FTVF9ERUZBVUxUOgorCQkJZXJyID0gXygic2V0LXJldHVybmluZyBmdW5jdGlvbnMg YXJlIG5vdCBhbGxvd2VkIGluIENBU1QgREVGQVVMVCBleHByZXNzaW9ucyIpOworCQkJYnJlYWs7 CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5D VElPTl9ERUZBVUxUOgogCQkJZXJyID0gXygic2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5v dCBhbGxvd2VkIGluIERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYwppbmRleCA1NDFmZWY1ZjE4My4uN2NkMTk3MGJjOTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf dGFyZ2V0LmMKQEAgLTg0NSw3ICs4NDUsOCBAQCB0cmFuc2Zvcm1Bc3NpZ25tZW50SW5kaXJlY3Rp b24oUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCUNPRVJDSU9OX0lNUExJQ0lULAogCQkJ CQkJCQkJCUNPRVJDRV9JTVBMSUNJVF9DQVNULAogCQkJCQkJCQkJCWxvY2F0aW9uLAotCQkJCQkJ CQkJCWZhbHNlKTsKKwkJCQkJCQkJCQlmYWxzZSwKKwkJCQkJCQkJCQlOVUxMKTsKIAogCQkJcmV0 dXJuIChOb2RlICopIGZzdG9yZTsKIAkJfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3R5cGUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90eXBlLmMKaW5kZXggYmI3 ZWNjZGU5ZmQuLjI4M2RmYzJlZTk5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfdHlwZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90eXBlLmMKQEAgLTY2MCw2 ICs2NjAsMjQgQEAgc3RyaW5nVHlwZURhdHVtKFR5cGUgdHAsIGNoYXIgKnN0cmluZywgaW50MzIg YXR0dHlwbW9kKQogCXJldHVybiBPaWRJbnB1dEZ1bmN0aW9uQ2FsbCh0eXBpbnB1dCwgc3RyaW5n LCB0eXBpb3BhcmFtLCBhdHR0eXBtb2QpOwogfQogCisvKgorICogRXJyb3Itc2FmZSB2ZXJzaW9u IG9mIHN0cmluZ1R5cGVEYXR1bS4KKyAqCisgKiBSZXR1cm5zIHRydWUgaWYgInN0cmluZyIgaXMg YSB2YWxpZCByZXByZXNlbnRhdGlvbiBvZiB0eXBlICJ0cCIuCisgKiBPbiBzdWNjZXNzLCB0aGUg aW50ZXJuYWwgRGF0dW0gcmVwcmVzZW50YXRpb24gaXMgd3JpdHRlbiB0byAicmVzdWx0Ii4KKyAq LworYm9vbAorc3RyaW5nVHlwZURhdHVtU2FmZShUeXBlIHRwLCBjaGFyICpzdHJpbmcsIGludDMy IGF0dHR5cG1vZCwKKwkJCQkJTm9kZSAqZXNjb250ZXh0LCBEYXR1bSAqcmVzdWx0KQoreworCUZv cm1fcGdfdHlwZSB0eXBmb3JtID0gKEZvcm1fcGdfdHlwZSkgR0VUU1RSVUNUKHRwKTsKKwlPaWQJ CQl0eXBpbnB1dCA9IHR5cGZvcm0tPnR5cGlucHV0OworCU9pZAkJCXR5cGlvcGFyYW0gPSBnZXRU eXBlSU9QYXJhbSh0cCk7CisKKwlyZXR1cm4gT2lkSW5wdXRGdW5jdGlvbkNhbGxTYWZlKHR5cGlu cHV0LCBzdHJpbmcsIHR5cGlvcGFyYW0sIGF0dHR5cG1vZCwKKwkJCQkJCQkJCWVzY29udGV4dCwg cmVzdWx0KTsKK30KKwogLyoKICAqIEdpdmVuIGEgdHlwZWlkLCByZXR1cm4gdGhlIHR5cGUncyB0 eXByZWxpZCAoYXNzb2NpYXRlZCByZWxhdGlvbiksIGlmIGFueS4KICAqIFJldHVybnMgSW52YWxp ZE9pZCBpZiB0eXBlIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlLgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91 dGlsY21kLmMKaW5kZXggOWE5MThlMTRhYTcuLjEwMzE4ZmM0OTkwIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV91dGlsY21kLmMKQEAgLTQ5NTEsNyArNDk1MSw3IEBAIHRyYW5zZm9ybVBhcnRpdGlvbkJv dW5kVmFsdWUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICp2YWwsCiAJCWFzc2lnbl9leHByX2Nv bGxhdGlvbnMocHN0YXRlLCB2YWx1ZSk7CiAJCXZhbHVlID0gKE5vZGUgKikgZXhwcmVzc2lvbl9w bGFubmVyKChFeHByICopIHZhbHVlKTsKIAkJdmFsdWUgPSAoTm9kZSAqKSBldmFsdWF0ZV9leHBy KChFeHByICopIHZhbHVlLCBjb2xUeXBlLCBjb2xUeXBtb2QsCi0JCQkJCQkJCQkgICBwYXJ0Q29s bGF0aW9uKTsKKwkJCQkJCQkJCSAgIHBhcnRDb2xsYXRpb24sIE5VTEwpOwogCQlpZiAoIUlzQSh2 YWx1ZSwgQ29uc3QpKQogCQkJZWxvZyhFUlJPUiwgImNvdWxkIG5vdCBldmFsdWF0ZSBwYXJ0aXRp b24gYm91bmQgZXhwcmVzc2lvbiIpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9hcnJheWZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jCmlu ZGV4IDczNGU1ZmVhNDVlLi5kYmZlNWY0YTc5ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2FycmF5ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5j cy5jCkBAIC0zMjk0LDYgKzMyOTQsMTUgQEAgYXJyYXlfbWFwKERhdHVtIGFycmF5ZCwKIAkJLyog QXBwbHkgdGhlIGdpdmVuIGV4cHJlc3Npb24gdG8gc291cmNlIGVsZW1lbnQgKi8KIAkJdmFsdWVz W2ldID0gRXhlY0V2YWxFeHByKGV4cHJzdGF0ZSwgZWNvbnRleHQsICZudWxsc1tpXSk7CiAKKwkJ LyogRXhpdCBlYXJseSBpZiBldmFsdWF0aW9uIGZhaWxlZCAqLworCQlpZiAoU09GVF9FUlJPUl9P Q0NVUlJFRChleHByc3RhdGUtPmVzY29udGV4dCkpCisJCXsKKwkJCXBmcmVlKHZhbHVlcyk7CisJ CQlwZnJlZShudWxscyk7CisKKwkJCXJldHVybiAoRGF0dW0pIDA7CisJCX0KKwogCQlpZiAobnVs bHNbaV0pCiAJCQloYXNudWxscyA9IHRydWU7CiAJCWVsc2UKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRp bHMuYwppbmRleCA3YmMxMjU4OWU0MC4uZDNmY2I0MTQxMGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVs ZXV0aWxzLmMKQEAgLTExMTA2LDYgKzExMTA2LDMxIEBAIGdldF9ydWxlX2V4cHIoTm9kZSAqbm9k ZSwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0LAogCQkJfQogCQkJYnJlYWs7CiAKKwkJY2FzZSBU X1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl7CisJCQkJU2FmZVR5cGVDYXN0RXhwciAqc3RjZXhwciA9 IGNhc3ROb2RlKFNhZmVUeXBlQ2FzdEV4cHIsIG5vZGUpOworCisJCQkJLyoKKwkJCQkgKiBXZSBj YW5ub3QganVzdCBkZXBhcnNpbmcgY2FzdGV4cHIgZGlyZWN0bHkgaGVyZSwgc2luY2UKKwkJCQkg KiB0cmFuc2Zvcm1UeXBlQ2FzdCBtYXkgaGF2ZSBhbHJlYWR5IGNvbnN0YW50LWZvbGRpbmcgaXQg aW50bworCQkJCSAqIGEgTlVMTC4gSW5zdGVhZCwgd2UgdXNlIHNvdXJjZSBhbmQgZGVmZXhwciB0 byByZWNvbnN0cnVjdAorCQkJCSAqIHRoZSBDQVNUIERFRkFVTFQgY2xhdXNlLgorCQkJCSAqLwor CQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiQ0FTVCgiKTsKKwkJCQlnZXRfcnVsZV9l eHByKChOb2RlICopIHN0Y2V4cHItPnNvdXJjZSwgY29udGV4dCwgc2hvd2ltcGxpY2l0KTsKKwor CQkJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiIEFTICVzICIsCisJCQkJCQkJCSBmb3JtYXRfdHlw ZV93aXRoX3R5cGVtb2Qoc3RjZXhwci0+cmVzdWx0dHlwZSwKKwkJCQkJCQkJCQkJCQkJICBzdGNl eHByLT5yZXN1bHR0eXBtb2QpKTsKKworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAi REVGQVVMVCAiKTsKKworCQkJCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgc3RjZXhwci0+ZGVmZXhw ciwgY29udGV4dCwgc2hvd2ltcGxpY2l0KTsKKworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmco YnVmLCAiIE9OIENPTlZFUlNJT04gRVJST1IpIik7CisJCQl9CisJCQlicmVhazsKKwogCQljYXNl IFRfSnNvbkV4cHI6CiAJCQl7CiAJCQkJSnNvbkV4cHIgICAqamV4cHIgPSAoSnNvbkV4cHIgKikg bm9kZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKaW5kZXggYmZlY2ViN2E5MmYuLjkwNjg2YWUyMGY5IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9mbWdyL2ZtZ3IuYwpAQCAtMTc2MCw2ICsxNzYwLDE5IEBAIE9pZElucHV0RnVuY3Rp b25DYWxsKE9pZCBmdW5jdGlvbklkLCBjaGFyICpzdHIsIE9pZCB0eXBpb3BhcmFtLCBpbnQzMiB0 eXBtb2QpCiAJcmV0dXJuIElucHV0RnVuY3Rpb25DYWxsKCZmbGluZm8sIHN0ciwgdHlwaW9wYXJh bSwgdHlwbW9kKTsKIH0KIAorLyogZXJyb3Itc2FmZSB2ZXJzaW9uIG9mIE9pZElucHV0RnVuY3Rp b25DYWxsICovCitib29sCitPaWRJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUoT2lkIGZ1bmN0aW9uSWQs IGNoYXIgKnN0ciwgT2lkIHR5cGlvcGFyYW0sCisJCQkJCQkgaW50MzIgdHlwbW9kLCBOb2RlICpl c2NvbnRleHQsCisJCQkJCQkgRGF0dW0gKnJlc3VsdCkKK3sKKwlGbWdySW5mbwlmbGluZm87CisK KwlmbWdyX2luZm8oZnVuY3Rpb25JZCwgJmZsaW5mbyk7CisJcmV0dXJuIElucHV0RnVuY3Rpb25D YWxsU2FmZSgmZmxpbmZvLCBzdHIsIHR5cGlvcGFyYW0sIHR5cG1vZCwKKwkJCQkJCQkJIGVzY29u dGV4dCwgcmVzdWx0KTsKK30KKwogY2hhciAqCiBPaWRPdXRwdXRGdW5jdGlvbkNhbGwoT2lkIGZ1 bmN0aW9uSWQsIERhdHVtIHZhbCkKIHsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9y L2V4ZWNFeHByLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oCmluZGV4IGFhOWIz NjFmYTMxLi5mYTlkYjhmZDY4NyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhl Y0V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oCkBAIC0yNjUsNiAr MjY1LDcgQEAgdHlwZWRlZiBlbnVtIEV4cHJFdmFsT3AKIAlFRU9QX1hNTEVYUFIsCiAJRUVPUF9K U09OX0NPTlNUUlVDVE9SLAogCUVFT1BfSVNfSlNPTiwKKwlFRU9QX1NBRkVUWVBFX0NBU1QsCiAJ RUVPUF9KU09ORVhQUl9QQVRILAogCUVFT1BfSlNPTkVYUFJfQ09FUkNJT04sCiAJRUVPUF9KU09O RVhQUl9DT0VSQ0lPTl9GSU5JU0gsCkBAIC03NTAsNiArNzUxLDEyIEBAIHR5cGVkZWYgc3RydWN0 IEV4cHJFdmFsU3RlcAogCQkJSnNvbklzUHJlZGljYXRlICpwcmVkOwkvKiBvcmlnaW5hbCBleHBy ZXNzaW9uIG5vZGUgKi8KIAkJfQkJCWlzX2pzb247CiAKKwkJLyogZm9yIEVFT1BfU0FGRVRZUEVf Q0FTVCAqLworCQlzdHJ1Y3QKKwkJeworCQkJc3RydWN0IFNhZmVUeXBlQ2FzdFN0YXRlICpzdGNz dGF0ZTsKKwkJfQkJCXN0Y2V4cHI7CisKIAkJLyogZm9yIEVFT1BfSlNPTkVYUFJfUEFUSCAqLwog CQlzdHJ1Y3QKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZm1nci5oIGIvc3JjL2luY2x1 ZGUvZm1nci5oCmluZGV4IDEwZDAyYmRiNzlmLi44ZTNlNTFkYzIyOCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvZm1nci5oCisrKyBiL3NyYy9pbmNsdWRlL2ZtZ3IuaApAQCAtNzUyLDYgKzc1Miw5 IEBAIGV4dGVybiBib29sIERpcmVjdElucHV0RnVuY3Rpb25DYWxsU2FmZShQR0Z1bmN0aW9uIGZ1 bmMsIGNoYXIgKnN0ciwKIAkJCQkJCQkJCQlEYXR1bSAqcmVzdWx0KTsKIGV4dGVybiBEYXR1bSBP aWRJbnB1dEZ1bmN0aW9uQ2FsbChPaWQgZnVuY3Rpb25JZCwgY2hhciAqc3RyLAogCQkJCQkJCQkg IE9pZCB0eXBpb3BhcmFtLCBpbnQzMiB0eXBtb2QpOworZXh0ZXJuIGJvb2wgT2lkSW5wdXRGdW5j dGlvbkNhbGxTYWZlKE9pZCBmdW5jdGlvbklkLCBjaGFyICpzdHIsIE9pZCB0eXBpb3BhcmFtLAor CQkJCQkJCQkJIGludDMyIHR5cG1vZCwgTm9kZSAqZXNjb250ZXh0LAorCQkJCQkJCQkJIERhdHVt ICpyZXN1bHQpOwogZXh0ZXJuIGNoYXIgKk91dHB1dEZ1bmN0aW9uQ2FsbChGbWdySW5mbyAqZmxp bmZvLCBEYXR1bSB2YWwpOwogZXh0ZXJuIGNoYXIgKk9pZE91dHB1dEZ1bmN0aW9uQ2FsbChPaWQg ZnVuY3Rpb25JZCwgRGF0dW0gdmFsKTsKIGV4dGVybiBEYXR1bSBSZWNlaXZlRnVuY3Rpb25DYWxs KEZtZ3JJbmZvICpmbGluZm8sIFN0cmluZ0luZm8gYnVmLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRl eCAyMTYyZmY1NmMzOC4uZDJjNzliOWYyOWUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVz L2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC0xMDcx LDYgKzEwNzEsMjcgQEAgdHlwZWRlZiBzdHJ1Y3QgRG9tYWluQ29uc3RyYWludFN0YXRlCiAJRXhw clN0YXRlICAqY2hlY2tfZXhwcnN0YXRlOwkvKiBjaGVja19leHByJ3MgZXZhbCBzdGF0ZSwgb3Ig TlVMTCAqLwogfSBEb21haW5Db25zdHJhaW50U3RhdGU7CiAKK3R5cGVkZWYgc3RydWN0IFNhZmVU eXBlQ2FzdFN0YXRlCit7CisJU2FmZVR5cGVDYXN0RXhwciAqc3RjZXhwcjsKKworCS8qCisJICog QWRkcmVzcyB0byBqdW1wIHRvIHdoZW4gc2tpcHBpbmcgYWxsIHRoZSBzdGVwcyB0byBldmFsdWF0 ZSB0aGUgZGVmYXVsdAorCSAqIGV4cHJlc3Npb24uCisJICovCisJaW50CQkJanVtcF9lbmQ7CisK KwkvKgorCSAqIEZvciBlcnJvci1zYWZlIGV2YWx1YXRpb24gb2YgY29lcmNpb25zLiBBIHBvaW50 ZXIgdG8gdGhpcyBpcyBwYXNzZWQgdG8KKwkgKiBFeGVjSW5pdEV4cHJSZWMoKSB3aGVuIGluaXRp YWxpemluZyB0aGUgY29lcmNpb24gZXhwcmVzc2lvbnMsIHNlZQorCSAqIEV4ZWNJbml0U2FmZVR5 cGVDYXN0RXhwci4KKwkgKgorCSAqIFJlc2V0IGZvciBlYWNoIGV2YWx1YXRpb24gb2YgRUVPUF9T QUZFVFlQRV9DQVNULgorCSAqLworCUVycm9yU2F2ZUNvbnRleHQgZXNjb250ZXh0OworCit9IFNh ZmVUeXBlQ2FzdFN0YXRlOworCiAvKgogICogU3RhdGUgZm9yIEpzb25FeHByIGV2YWx1YXRpb24s IHRvbyBiaWcgdG8gaW5saW5lLgogICoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCA0ZTFlYTlk MWU4ZS4uYjQ1YzI5ZDUyZjQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTM5Nyw2ICszOTcs NyBAQCB0eXBlZGVmIHN0cnVjdCBUeXBlQ2FzdAogCU5vZGVUYWcJCXR5cGU7CiAJTm9kZQkgICAq YXJnOwkJCS8qIHRoZSBleHByZXNzaW9uIGJlaW5nIGNhc3RlZCAqLwogCVR5cGVOYW1lICAgKnR5 cGVOYW1lOwkJLyogdGhlIHRhcmdldCB0eXBlICovCisJTm9kZQkgICAqZGVmZXhwcjsJCS8qIERF RkFVTFQgZXhwcmVzc2lvbiAqLwogCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRp b24sIG9yIC0xIGlmIHVua25vd24gKi8KIH0gVHlwZUNhc3Q7CiAKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgK aW5kZXggYjY3ZTU2ZTZjNWEuLjMzOTdjM2Q0YzVjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9u b2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAt NzcwLDYgKzc3MCwzMSBAQCB0eXBlZGVmIGVudW0gQ29lcmNpb25Gb3JtCiAJQ09FUkNFX1NRTF9T WU5UQVgsCQkJLyogZGlzcGxheSB3aXRoIFNRTC1tYW5kYXRlZCBzcGVjaWFsIHN5bnRheCAqLwog fSBDb2VyY2lvbkZvcm07CiAKKy8qCisgKiBTYWZlVHlwZUNhc3RFeHByIC0KKyAqCQlUcmFuc2Zv cm1lZCByZXByZXNlbnRhdGlvbiBvZgorICogCQlDQVNUKGV4cHIgQVMgdHlwZW5hbWUgREVGQVVM VCBleHByIE9OIENPTlZFUlNJT04gRVJST1IpCisgKiAJCUNBU1QoZXhwciBBUyB0eXBlbmFtZSBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpCisgKi8KK3R5cGVkZWYgc3RydWN0IFNhZmVUeXBlQ2Fz dEV4cHIKK3sKKwlFeHByCQl4cHI7CisJLyogdHJhbnNmb3JtZWQgc291cmNlIGV4cHJlc3Npb24g ZnJvbSBwYXJzZXIgKi8KKwlFeHByCSAgICpzb3VyY2U7CisJLyogdHJhbnNmb3JtZWQgY2FzdCBl eHByZXNzaW9uLCBOVUxMIG1lYW5zIGNhbm5vdCBjb2VyY2UgdG8gdGFyZ2V0IHR5cGUgKi8KKwlF eHByCSAgICpjYXN0ZXhwciBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CisJLyog RmFsbC1iYWNrIHRvIHRoZSBkZWZhdWx0IGV4cHJlc3Npb24gaWYgY2FzdCBldmFsdWF0aW9uIGZh aWxzICovCisJRXhwcgkgICAqZGVmZXhwcjsKKwkvKiB0YXJnZXQgdHlwZSBPaWQgKi8KKwlPaWQJ CQlyZXN1bHR0eXBlOworCS8qIHRhcmdldCB0eXBlIG1vZGlmaWVyICovCisJaW50MzIJCXJlc3Vs dHR5cG1vZDsKKwkvKiBPSUQgb2YgY29sbGF0aW9uLCBvciBJbnZhbGlkT2lkIGlmIG5vbmUgKi8K KwlPaWQJCQlyZXN1bHRjb2xsaWQ7CisJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25v d24gKi8KKwlQYXJzZUxvYwlsb2NhdGlvbjsKK30gU2FmZVR5cGVDYXN0RXhwcjsKKwogLyoKICAq IEZ1bmNFeHByIC0gZXhwcmVzc2lvbiBub2RlIGZvciBhIGZ1bmN0aW9uIGNhbGwKICAqCkBAIC03 OTksNiArODI0LDggQEAgdHlwZWRlZiBzdHJ1Y3QgRnVuY0V4cHIKIAlPaWQJCQlpbnB1dGNvbGxp ZCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CiAJLyogYXJndW1lbnRzIHRvIHRo ZSBmdW5jdGlvbiAqLwogCUxpc3QJICAgKmFyZ3M7CisJLyogVHJ1ZSBpZiB0aGUgZnVuY3Rpb24g c3VwcG9ydHMgc29mdC1lcnJvciBldmFsdWF0aW9uICovCisJYm9vbAkJZXJyb3JzYWZlOwogCS8q IHRva2VuIGxvY2F0aW9uLCBvciAtMSBpZiB1bmtub3duICovCiAJUGFyc2VMb2MJbG9jYXRpb247 CiB9IEZ1bmNFeHByOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL29wdGltaXpl ci5oIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL29wdGltaXplci5oCmluZGV4IGU4YjQwOWFmYjdm Li5iNjg2YmUwNDliOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvb3B0aW1pemVyL29wdGltaXpl ci5oCisrKyBiL3NyYy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIuaApAQCAtMTUxLDcgKzE1 MSw3IEBAIGV4dGVybiB2b2lkIGNvbnZlcnRfc2FvcF90b19oYXNoZWRfc2FvcChOb2RlICpub2Rl KTsKIGV4dGVybiBOb2RlICplc3RpbWF0ZV9leHByZXNzaW9uX3ZhbHVlKFBsYW5uZXJJbmZvICpy b290LCBOb2RlICpub2RlKTsKIAogZXh0ZXJuIEV4cHIgKmV2YWx1YXRlX2V4cHIoRXhwciAqZXhw ciwgT2lkIHJlc3VsdF90eXBlLCBpbnQzMiByZXN1bHRfdHlwbW9kLAotCQkJCQkJICAgT2lkIHJl c3VsdF9jb2xsYXRpb24pOworCQkJCQkJICAgT2lkIHJlc3VsdF9jb2xsYXRpb24sIE5vZGUgKmVz Y29udGV4dCk7CiAKIGV4dGVybiBib29sIHZhcl9pc19ub25udWxsYWJsZShQbGFubmVySW5mbyAq cm9vdCwgVmFyICp2YXIsCiAJCQkJCQkJICAgTm90TnVsbFNvdXJjZSBzb3VyY2UpOwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2NvZXJjZS5oIGIvc3JjL2luY2x1ZGUvcGFy c2VyL3BhcnNlX2NvZXJjZS5oCmluZGV4IGFhYmFjZDQ5YjY1Li4xMjY0NGYxNDZiZiAxMDA2NDQK LS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2NvZXJjZS5oCisrKyBiL3NyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV9jb2VyY2UuaApAQCAtNDMsMTUgKzQzLDI5IEBAIGV4dGVybiBOb2RlICpj b2VyY2VfdG9fdGFyZ2V0X3R5cGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkgICBDb2Vy Y2lvbkNvbnRleHQgY2NvbnRleHQsCiAJCQkJCQkJCSAgIENvZXJjaW9uRm9ybSBjZm9ybWF0LAog CQkJCQkJCQkgICBpbnQgbG9jYXRpb24pOworZXh0ZXJuIE5vZGUgKmNvZXJjZV90b190YXJnZXRf dHlwZV9leHRlbmRlZChQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkJCQkJCU5vZGUgKmV4cHIs CisJCQkJCQkJCQkJCU9pZCBleHBydHlwZSwKKwkJCQkJCQkJCQkJT2lkIHRhcmdldHR5cGUsCisJ CQkJCQkJCQkJCWludDMyIHRhcmdldHR5cG1vZCwKKwkJCQkJCQkJCQkJQ29lcmNpb25Db250ZXh0 IGNjb250ZXh0LAorCQkJCQkJCQkJCQlDb2VyY2lvbkZvcm0gY2Zvcm1hdCwKKwkJCQkJCQkJCQkJ aW50IGxvY2F0aW9uLAorCQkJCQkJCQkJCQlOb2RlICplc2NvbnRleHQpOwogZXh0ZXJuIGJvb2wg Y2FuX2NvZXJjZV90eXBlKGludCBuYXJncywgY29uc3QgT2lkICppbnB1dF90eXBlaWRzLCBjb25z dCBPaWQgKnRhcmdldF90eXBlaWRzLAogCQkJCQkJCUNvZXJjaW9uQ29udGV4dCBjY29udGV4dCk7 CiBleHRlcm4gTm9kZSAqY29lcmNlX3R5cGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpub2Rl LAogCQkJCQkJIE9pZCBpbnB1dFR5cGVJZCwgT2lkIHRhcmdldFR5cGVJZCwgaW50MzIgdGFyZ2V0 VHlwZU1vZCwKIAkJCQkJCSBDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQsIENvZXJjaW9uRm9ybSBj Zm9ybWF0LCBpbnQgbG9jYXRpb24pOworZXh0ZXJuIE5vZGUgKmNvZXJjZV90eXBlX2V4dGVuZGVk KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwKKwkJCQkJCQkJICBPaWQgaW5wdXRUeXBl SWQsIE9pZCB0YXJnZXRUeXBlSWQsIGludDMyIHRhcmdldFR5cGVNb2QsCisJCQkJCQkJCSAgQ29l cmNpb25Db250ZXh0IGNjb250ZXh0LCBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwgaW50IGxvY2F0aW9u LAorCQkJCQkJCQkgIE5vZGUgKmVzY29udGV4dCk7CiBleHRlcm4gTm9kZSAqY29lcmNlX3RvX2Rv bWFpbihOb2RlICphcmcsIE9pZCBiYXNlVHlwZUlkLCBpbnQzMiBiYXNlVHlwZU1vZCwKIAkJCQkJ CQkgIE9pZCB0eXBlSWQsCiAJCQkJCQkJICBDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQsIENvZXJj aW9uRm9ybSBjZm9ybWF0LCBpbnQgbG9jYXRpb24sCi0JCQkJCQkJICBib29sIGhpZGVJbnB1dENv ZXJjaW9uKTsKKwkJCQkJCQkgIGJvb2wgaGlkZUlucHV0Q29lcmNpb24sCisJCQkJCQkJICBOb2Rl ICplc2NvbnRleHQpOwogCiBleHRlcm4gTm9kZSAqY29lcmNlX3RvX2Jvb2xlYW4oUGFyc2VTdGF0 ZSAqcHN0YXRlLCBOb2RlICpub2RlLAogCQkJCQkJCSAgIGNvbnN0IGNoYXIgKmNvbnN0cnVjdE5h bWUpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBiL3NyYy9p bmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5kZXggZmMyY2JlYjIwODMuLjcyNmMxZmNkMGUy IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCisrKyBiL3NyYy9p bmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAgLTY3LDYgKzY3LDggQEAgdHlwZWRlZiBlbnVt IFBhcnNlRXhwcktpbmQKIAlFWFBSX0tJTkRfVkFMVUVTX1NJTkdMRSwJLyogc2luZ2xlLXJvdyBW QUxVRVMgKGluIElOU0VSVCBvbmx5KSAqLwogCUVYUFJfS0lORF9DSEVDS19DT05TVFJBSU5ULCAv KiBDSEVDSyBjb25zdHJhaW50IGZvciBhIHRhYmxlICovCiAJRVhQUl9LSU5EX0RPTUFJTl9DSEVD SywJCS8qIENIRUNLIGNvbnN0cmFpbnQgZm9yIGEgZG9tYWluICovCisJRVhQUl9LSU5EX0NBU1Rf REVGQVVMVCwJCS8qIGRlZmF1bHQgZXhwcmVzc2lvbiBpbiBDQVNUIERFRkFVTFQgT04KKwkJCQkJ CQkJICogQ09OVkVSU0lPTiBFUlJPUiAqLwogCUVYUFJfS0lORF9DT0xVTU5fREVGQVVMVCwJLyog ZGVmYXVsdCB2YWx1ZSBmb3IgYSB0YWJsZSBjb2x1bW4gKi8KIAlFWFBSX0tJTkRfRlVOQ1RJT05f REVGQVVMVCwgLyogZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWUgZm9yIGZ1bmN0aW9uICovCiAJRVhQ Ul9LSU5EX0lOREVYX0VYUFJFU1NJT04sIC8qIGluZGV4IGV4cHJlc3Npb24gKi8KZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV90eXBlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2VfdHlwZS5oCmluZGV4IGEzMzU4MDdiMGIwLi5lMzAzYTEwNzNjMSAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3R5cGUuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2VfdHlwZS5oCkBAIC00Nyw2ICs0Nyw4IEBAIGV4dGVybiBjaGFyICp0eXBlVHlwZU5hbWUo VHlwZSB0KTsKIGV4dGVybiBPaWQJdHlwZVR5cGVSZWxpZChUeXBlIHR5cCk7CiBleHRlcm4gT2lk CXR5cGVUeXBlQ29sbGF0aW9uKFR5cGUgdHlwKTsKIGV4dGVybiBEYXR1bSBzdHJpbmdUeXBlRGF0 dW0oVHlwZSB0cCwgY2hhciAqc3RyaW5nLCBpbnQzMiBhdHR0eXBtb2QpOworZXh0ZXJuIGJvb2wg c3RyaW5nVHlwZURhdHVtU2FmZShUeXBlIHRwLCBjaGFyICpzdHJpbmcsIGludDMyIGF0dHR5cG1v ZCwKKwkJCQkJCQkJTm9kZSAqZXNjb250ZXh0LCBEYXR1bSAqcmVzdWx0KTsKIAogZXh0ZXJuIE9p ZAl0eXBlaWRUeXBlUmVsaWQoT2lkIHR5cGVfaWQpOwogZXh0ZXJuIE9pZAl0eXBlT3JEb21haW5U eXBlUmVsaWQoT2lkIHR5cGVfaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9jYXN0Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY2FzdC5vdXQKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU3ZWQyNmNmMWRmCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jYXN0Lm91dApAQCAtMCwwICsxLDk0 MiBAQAorU0VUIGV4dHJhX2Zsb2F0X2RpZ2l0cyA9IDA7CistLSBDQVNUIERFRkFVTFQgT04gQ09O VkVSU0lPTiBFUlJPUgorU0VMRUNUIENBU1QoQicwMScgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7CisgZGF0ZSAKKy0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1Qg Q0FTVChCSVQnMDEnIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwor IGRhdGUgCistLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoVFJVRSBBUyBkYXRlIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBkYXRlIAorLS0tLS0tCisgCisoMSBy b3cpCisKK1NFTEVDVCBDQVNUKDEuMSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKyBkYXRlIAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKDEgQVMg ZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgZGF0ZSAKKy0tLS0tLQor IAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgxMTExIEFTICJjaGFyIiBERUZBVUxUICdBJyBPTiBD T05WRVJTSU9OIEVSUk9SKTsKKyBjaGFyIAorLS0tLS0tCisgQQorKDEgcm93KQorCitTRUxFQ1Qg Q0FTVCgnZGVmJzo6dGV4dCBBUyBpbnRlZ2VyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKKyBpbnQ0IAorLS0tLS0tCisgICAgIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCg2NTUz NiBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQyIAorLS0t LS0tCisgICAgIAorKDEgcm93KQorCistLSBzb3VyY2UgZXhwcmVzc2lvbiBpcyBhIHVua25vd24g Y29uc3QKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgRVJST1IgT04gQ09OVkVSU0lP TiBFUlJPUikpOyAtLSBlcnJvcgorRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlw ZSBpbnRlZ2VyOiAiZXJyb3IiCitMSU5FIDE6IFZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVn ZXIgRVJST1IgT04gQ09OVkVSU0lPTiBFUlJPUikpOworICAgICAgICAgICAgICAgICAgICAgXgor VkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip KTsKKyBjb2x1bW4xIAorLS0tLS0tLS0tCisgICAgICAgIAorKDEgcm93KQorCitWQUxVRVMgKENB U1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIERFRkFVTFQgNDIgT04gQ09OVkVSU0lPTiBFUlJPUikpOwor IGNvbHVtbjEgCistLS0tLS0tLS0KKyAgICAgIDQyCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdh JyBhcyBpbnQgREVGQVVMVCAxOCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ0IAorLS0tLS0t CisgICAxOAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgc3VtKDEp IE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgorRVJST1I6ICBhZ2dyZWdhdGUgZnVuY3Rp b25zIGFyZSBub3QgYWxsb3dlZCBpbiBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbnMKK0xJTkUgMTog U0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHN1bSgxKSBPTiBDT05WRVJTSU9OIEVSUk9S KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNU KCdhJyBhcyBpbnQgREVGQVVMVCBzdW0oMSkgb3ZlcigpIE9OIENPTlZFUlNJT04gRVJST1IpOyAt LSBlcnJvcgorRVJST1I6ICB3aW5kb3cgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBDQVNU IERFRkFVTFQgZXhwcmVzc2lvbnMKK0xJTkUgMTogU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZB VUxUIHN1bSgxKSBvdmVyKCkgT04gQ09OVkVSU0lPTiBFLi4uCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgKFNF TEVDVCBOVUxMKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKK0VSUk9SOiAgY2Fubm90 IHVzZSBzdWJxdWVyeSBpbiBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbgorTElORSAxOiBTRUxFQ1Qg Q0FTVCgnYScgYXMgaW50IERFRkFVTFQgKFNFTEVDVCBOVUxMKSBPTiBDT05WRVJTSU9OIEUuLi4K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKCdh JyBhcyBpbnQgREVGQVVMVCAnYicgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitFUlJP UjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZvciB0eXBlIGludGVnZXI6ICJiIgorTElORSAxOiBT RUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgJ2InIE9OIENPTlZFUlNJT04gRVJST1IpOwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNUIENBU1QoJ2En OjppbnQgYXMgaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IK K0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50ZWdlcjogImEiCitMSU5F IDE6IFNFTEVDVCBDQVNUKCdhJzo6aW50IGFzIGludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUi4uLgorICAgICAgICAgICAgICAgICAgICBeCistLSB0aGUgZGVmYXVsdCBleHByZXNz aW9u4oCZcyBjb2xsYXRpb24gc2hvdWxkIG1hdGNoIHRhcmdldCB0eXBlIGNvbGxhdGlvbgorVkFM VUVTIChDQVNUKCdlcnJvcicgQVMgdGV4dCBERUZBVUxUICcxJyBDT0xMQVRFICJDIiBPTiBDT05W RVJTSU9OIEVSUk9SKSk7CitFUlJPUjogIGNvbGxhdGlvbiBvZiBDQVNUIERFRkFVTFQgZXhwcmVz c2lvbiBjb25mbGljdHMgd2l0aCB0YXJnZXQgdHlwZSBjb2xsYXRpb24KK0xJTkUgMTogVkFMVUVT IChDQVNUKCdlcnJvcicgQVMgdGV4dCBERUZBVUxUICcxJyBDT0xMQVRFICJDIiBPTiBDT05WLi4u CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitERVRBSUw6 ICAiQyIgdmVyc3VzICJkZWZhdWx0IgorVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50MnZlY3Rv ciBERUZBVUxUICcxIDMnICBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CisgY29sdW1uMSAKKy0tLS0t LS0tLQorIDEgMworKDEgcm93KQorCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnQydmVjdG9y W10gREVGQVVMVCAnezEgM30nICBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CisgY29sdW1uMSAKKy0t LS0tLS0tLQorIHsiMSAzIn0KKygxIHJvdykKKworLS0gc291cmNlIGV4cHJlc3Npb24gY29udGFp biBzdWJxdWVyeQorU0VMRUNUIENBU1QoKFNFTEVDVCBiIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEs IDEpLCAoVkFMVUVTKCdIJykpIHMoYikpCisgICAgICAgICAgICBBUyBpbnQydmVjdG9yW10gREVG QVVMVCAnezEgM30nICBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICBiICAgIAorLS0tLS0tLS0t CisgeyIxIDMifQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgoU0VMRUNUIEFSUkFZKChTRUxFQ1Qg YiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyKSBnLCAoVkFMVUVTKCdIJykpIHMoYikpKSkKKyAg ICAgICAgICAgIEFTIElOVFtdCisgICAgICAgICAgICBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgCisoMSByb3cpCisKK0NSRUFURSBGVU5DVElP TiByZXRfaW50OCgpIFJFVFVSTlMgQklHSU5UIEFTCiskJAorQkVHSU4gUkVUVVJOIDIxNDc0ODM2 NDg7IEVORDsKKyQkCitMQU5HVUFHRSBwbHBnc3FsIElNTVVUQUJMRTsKK1NFTEVDVCBDQVNUKCdh JyBhcyBpbnQgREVGQVVMVCByZXRfaW50OCgpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJv cgorRVJST1I6ICBpbnRlZ2VyIG91dCBvZiByYW5nZQorU0VMRUNUIENBU1QoJ2EnIGFzIGRhdGUg REVGQVVMVCByZXRfaW50OCgpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgorRVJST1I6 ICBjYW5ub3QgY29lcmNlIENBU1QgREVGQVVMVCBleHByZXNzaW9uIHRvIHR5cGUgZGF0ZQorTElO RSAxOiBTRUxFQ1QgQ0FTVCgnYScgYXMgZGF0ZSBERUZBVUxUIHJldF9pbnQ4KCkgT04gQ09OVkVS U0lPTiBFUlIuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCist LSBERUZBVUxUIGV4cHJlc3Npb24gY2Fubm90IGJlIHNldC1yZXR1cm5pbmcKK0NSRUFURSBGVU5D VElPTiByZXRfc2V0aW50KCkgUkVUVVJOUyBTRVRPRiBpbnRlZ2VyIEFTCiskJAorQkVHSU4gUkVU VVJOIFFVRVJZIEVYRUNVVEUgJ3NlbGVjdCAxIHVuaW9uIGFsbCBzZWxlY3QgMSc7IEVORDsKKyQk CitMQU5HVUFHRSBwbHBnc3FsIElNTVVUQUJMRTsKK0NSRUFURSBUQUJMRSB0Y2FzdDAoYSBJTlQs IGIgaW50KTsKK0lOU0VSVCBJTlRPIHRjYXN0MCBWQUxVRVMoMSwyKSwgKDY1NTM2LDMpOworU0VU IGppdF9hYm92ZV9jb3N0ID0gMDsKK1NFTEVDVCBDQVNUKGEgQVMgaW50MiBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgRlJPTSB0Y2FzdDA7CisgYSAKKy0tLQorIDEKKyAgCisoMiBy b3dzKQorCitTRVQgaml0X2Fib3ZlX2Nvc3QgVE8gREVGQVVMVDsKK1NFTEVDVCBDQVNUKGEgQVMg aW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgRlJPTSB0Y2FzdDA7CisgYSAK Ky0tLQorIDEKKyAgCisoMiByb3dzKQorCitTRUxFQ1QgQ0FTVChST1coMSwyKSBBUyB0Y2FzdDAg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIEZST00gdGNhc3QwIGFzIHQ7CitFUlJP UjogIGNhbm5vdCBjYXN0IHR5cGUgcmVjb3JkIHRvIHRjYXN0MCB3aGVuIERFRkFVTFQgZXhwcmVz c2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAx OiBTRUxFQ1QgQ0FTVChST1coMSwyKSBBUyB0Y2FzdDAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVIuLi4KKyAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIEV4cGxpY2l0IGNhc3QgaXMg ZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBub3QgZXJyb3Igc2FmZS4KK0RST1AgVEFCTEUgdGNh c3QwOworU0VMRUNUIENBU1QoMTIuMTExIGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGU7CisgdG9fbnVtZXJpY19zY2Fs ZSAKKy0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgIDEyLjEKKygxIHJvdykKKworQ1JF QVRFIFRBQkxFIHRjYXN0KGEgdGV4dFtdLCBiIGludCBHRU5FUkFURUQgQlkgREVGQVVMVCBBUyBJ REVOVElUWSk7CitJTlNFUlQgSU5UTyB0Y2FzdCBWQUxVRVMgKCd7MTJ9JyksICgnezEsYSwgYn0n KSwgKCd7ezEsMn0sIHtjLGR9fScpLCAoJ3sxM30nKTsKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQg REVGQVVMVCByZXRfc2V0aW50KCkgT04gQ09OVkVSU0lPTiBFUlJPUikgRlJPTSB0Y2FzdDsgLS0g ZXJyb3IKK0VSUk9SOiAgc2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGlu IENBU1QgREVGQVVMVCBleHByZXNzaW9ucworTElORSAxOiBTRUxFQ1QgQ0FTVCgnYScgYXMgaW50 IERFRkFVTFQgcmV0X3NldGludCgpIE9OIENPTlZFUlNJT04gRVIuLi4KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKHQgQVMgdGV4dFtdIERFRkFV TFQgJ3syMSwyMiwgJyB8fCBiIHx8ICd9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBGUk9NIHRjYXN0 IGFzIHQ7CisgICAgIHQgICAgIAorLS0tLS0tLS0tLS0KKyB7MjEsMjIsMX0KKyB7MjEsMjIsMn0K KyB7MjEsMjIsM30KKyB7MjEsMjIsNH0KKyg0IHJvd3MpCisKK1NFTEVDVCBDQVNUKHQuYSBBUyBp bnRbXSBERUZBVUxUICd7MjEsMjJ9Jzo6aW50W10gfHwgYiBPTiBDT05WRVJTSU9OIEVSUk9SKSBG Uk9NIHRjYXN0IGFzIHQ7CisgICAgIGEgICAgIAorLS0tLS0tLS0tLS0KKyB7MTJ9CisgezIxLDIy LDJ9CisgezIxLDIyLDN9CisgezEzfQorKDQgcm93cykKKworLS0gdGVzdCB3aXRoIHVzZXItZGVm aW5lZCB0eXBlLCBkb21haW4sIGFycmF5IG92ZXIgZG9tYWluLCBkb21haW4gb3ZlciBhcnJheQor Q1JFQVRFIERPTUFJTiBkX2ludDQyIGFzIGludCBjaGVjayAodmFsdWUgPSA0MikgTk9UIE5VTEw7 CitDUkVBVEUgRE9NQUlOIGRfaW50NDJhcnIgYXMgZF9pbnQ0MltdOworQ1JFQVRFIERPTUFJTiBk X2ludDQyYXJyMSBhcyBkX2ludDQyYXJyOworQ1JFQVRFIERPTUFJTiBkX2ludDggYXMgaW50OCBj aGVjayAodmFsdWUgPiAwKTsKK0NSRUFURSBET01BSU4gZF9pbnQ4YXJyIGFzIGRfaW50OFtdOwor Q1JFQVRFIERPTUFJTiBkX2NoYXIzX25vdF9udWxsIGFzIGNoYXIoMykgTk9UIE5VTEw7CitDUkVB VEUgRE9NQUlOIGRfdmFyY2hhciBhcyB2YXJjaGFyKDMpIE5PVCBOVUxMOworQ1JFQVRFIERPTUFJ TiBkX2ludF9hcnIgYXMgaW50W10gY2hlY2sgKHZhbHVlID0gJ3s0MSwgNDN9JykgTk9UIE5VTEw7 CitDUkVBVEUgVFlQRSBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBBUyAoYSBkX2NoYXIzX25vdF9u dWxsLCBiIGludCk7CitDUkVBVEUgVFlQRSBjb21wMiBBUyAoYSBkX3ZhcmNoYXIpOworQ1JFQVRF IERPTUFJTiBkX251bWVyaWMgYXMgbnVtZXJpYyg0LDQpOworU0VMRUNUIENBU1QoMS4wOjpmbG9h dDQgQVMgZF9udW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBkX251 bWVyaWMgCistLS0tLS0tLS0tLQorICAgICAgICAgIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgn ezEuMH0nIEFTIG51bWVyaWMoNCwxKVtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKKyBudW1lcmljIAorLS0tLS0tLS0tCisgezEuMH0KKygxIHJvdykKKworU0VMRUNUIENBU1Qo J3swLjEsIDEuMH0nIEFTIGRfbnVtZXJpY1tdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKKyBkX251bWVyaWMgCistLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FT VCgxMSBBUyBkX2ludDQyIERFRkFVTFQgNDEgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9y CitFUlJPUjogIHZhbHVlIGZvciBkb21haW4gZF9pbnQ0MiB2aW9sYXRlcyBjaGVjayBjb25zdHJh aW50ICJkX2ludDQyX2NoZWNrIgorU0VMRUNUIENBU1QoTlVMTCBBUyBkX2ludDQyIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKK0VSUk9SOiAgZG9tYWluIGRfaW50 NDIgZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1ZXMKK1NFTEVDVCBDQVNUKDExIEFTIGRfaW50NDIg REVGQVVMVCA0MiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBkX2ludDQyIAorLS0tLS0tLS0tCisg ICAgICA0MgorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChOVUxMIEFTIGRfaW50NDIgREVGQVVMVCA0 MiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBkX2ludDQyIAorLS0tLS0tLS0tCisgICAgICA0Mgor KDEgcm93KQorCitTRUxFQ1QgQ0FTVChBUlJBWVs0Ml06OmRfaW50NDJhcnIxIEFTIGRfaW50OCBE RUZBVUxUICcxJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBhcnJheSAKKy0tLS0tLS0KKyAgICAg MQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChBUlJBWVs0Ml06OmRfaW50NDJhcnIxIEFTIGRfaW50 OFtdIERFRkFVTFQgJ3sxfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0t CisgezQyfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChBUlJBWVs0Ml06OmRfaW50NDJhcnIxIEFT IGRfaW50OGFyciBERUZBVUxUICd7MX0nIE9OIENPTlZFUlNJT04gRVJST1IpOworIGFycmF5IAor LS0tLS0tLQorIHs0Mn0KKygxIHJvdykKKworU0VMRUNUIENBU1QoQVJSQVlbNDJdOjpkX2ludDQy YXJyMSBBUyBkX2ludDhhcnJbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7Cisg YXJyYXkgCistLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKEFSUkFZWzQyLDQxXSBB UyBkX2ludDQyW10gREVGQVVMVCAnezQyLCA0Mn0nIE9OIENPTlZFUlNJT04gRVJST1IpOworICBh cnJheSAgCistLS0tLS0tLS0KKyB7NDIsNDJ9CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKEFSUkFZ WzQyLDQxXSBBUyBkX2ludF9hcnIgREVGQVVMVCAnezQxLCA0M30nIE9OIENPTlZFUlNJT04gRVJS T1IpOworICBhcnJheSAgCistLS0tLS0tLS0KKyB7NDEsNDN9CisoMSByb3cpCisKK1NFTEVDVCBD QVNUKEFSUkFZWzQyLCA0MV06OmRfaW50NDJhcnIxIEFTIGRfaW50OGFyciBERUZBVUxUICd7MSwy LDN9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgYXJyYXkgIAorLS0tLS0tLS0tCisgezEsMiwz fQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChBUlJBWVs0MiwgNDFdIEFTIGRfaW50NDJhcnIxIERF RkFVTFQgJ3s0MiwgNDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgYXJyYXkgIAorLS0tLS0t LS0tCisgezQyLDQyfQorKDEgcm93KQorCitTRUxFQ1QKKyAgICBDQVNUKENBU1QoQVJSQVlbQ0FT VChBUlJBWVs0MiwgNDJdIEFTIGRfaW50NDJhcnIpXSBBUyBkX2ludDQyYXJyMVtdKSBBUyBkX2lu dDhhcnJbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgYXJyYXkgICAg CistLS0tLS0tLS0tLS0tCisgeyJ7NDIsNDJ9In0KKygxIHJvdykKKworU0VMRUNUIENBU1QoJyhO VUxMKScgQVMgY29tcDIgREVGQVVMVCAnKDEyMzIpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0g ZXJyb3IKK0VSUk9SOiAgdmFsdWUgdG9vIGxvbmcgZm9yIHR5cGUgY2hhcmFjdGVyIHZhcnlpbmco MykKK0xJTkUgMTogU0VMRUNUIENBU1QoJyhOVUxMKScgQVMgY29tcDIgREVGQVVMVCAnKDEyMzIp JyBPTiBDT05WRVJTSU9OLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgorU0VMRUNUIENBU1QoJyhOVUxMKScgQVMgY29tcDIgREVGQVVMVCAnKDEyMykn IE9OIENPTlZFUlNJT04gRVJST1IpOworIGNvbXAyIAorLS0tLS0tLQorICgxMjMpCisoMSByb3cp CisKK1NFTEVDVCBDQVNUKCcoLDQyKScgQVMgY29tcF9kb21haW5fd2l0aF90eXBtb2QgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKE5V TEwsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxUICcoMSwyKScgT04gQ09O VkVSU0lPTiBFUlJPUik7CisgY29tcF9kb21haW5fd2l0aF90eXBtb2QgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgKCIxICAiLDIpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoTlVMTCw0 MiknIEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgJygxMjM0LDIpJyBPTiBDT05W RVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKK0VSUk9SOiAgdmFsdWUgdG9vIGxvbmcgZm9yIHR5cGUg Y2hhcmFjdGVyKDMpCitMSU5FIDE6IC4uLlNUKCcoTlVMTCw0MiknIEFTIGNvbXBfZG9tYWluX3dp dGhfdHlwbW9kIERFRkFVTFQgJygxMjM0LDIpJy4uLgorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKFJPVyhO VUxMLDQyKSBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7IC0tIGVycm9yCitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgcmVjb3JkIHRv IGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNp ZmllZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNU KFJPVyhOVUxMLDQyKSBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxUIC4uLgorICAg ICAgICAgICAgICAgICAgICBeCitISU5UOiAgRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBk ZWZpbml0aW9uIGlzIG5vdCBlcnJvciBzYWZlLgorLS0gdGVzdCBhcnJheSBjb2VyY2UKK1NFTEVD VCBDQVNUKGFycmF5WydhJzo6dGV4dF0gQVMgaW50W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOyAtLSBlcnJvcgorRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlw ZSBpbnRlZ2VyOiAiYSIKK1NFTEVDVCBDQVNUKGFycmF5WydhJ10gQVMgaW50W10gREVGQVVMVCBB UlJBWVsxXSBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBhcnJheSAKKy0tLS0tLS0KKyB7MX0KKygx IHJvdykKKworU0VMRUNUIENBU1QoYXJyYXlbMTEuMTJdIEFTIGRhdGVbXSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgCisoMSByb3cpCisKK1NF TEVDVCBDQVNUKGFycmF5WzExMTExMTExMTExMTExMTExXSBBUyBpbnRbXSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgCisoMSByb3cpCisKK1NF TEVDVCBDQVNUKGFycmF5W1snYWJjJ10sWzQ1Nl1dIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsKKyBhcnJheSAKKy0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNU IENBU1QoJ3sxMjMsYWJjLDQ1Nn0nIEFTIGludFtdIERFRkFVTFQgJ3stNzg5fScgT04gQ09OVkVS U0lPTiBFUlJPUik7CisgIGludDQgIAorLS0tLS0tLS0KKyB7LTc4OX0KKygxIHJvdykKKworU0VM RUNUIENBU1QoJ3syMzQsZGVmLDU2N30nOjp0ZXh0W10gQVMgaW50ZWdlcltdIERFRkFVTFQgJ3st MTAxMX0nIE9OIENPTlZFUlNJT04gRVJST1IpOworICBpbnQ0ICAgCistLS0tLS0tLS0KKyB7LTEw MTF9CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKEFSUkFZW1snMSddLCBbJ3RocmVlJ10sWydhJ11d IEFTIGludFtdIERFRkFVTFQgJ3sxLDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBhcnJheSAK Ky0tLS0tLS0KKyB7MSwyfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnLCAnMidd LCBbJ3RocmVlJywgJ2EnXV0gQVMgaW50W10gREVGQVVMVCAnezIxLDIyfScgT04gQ09OVkVSU0lP TiBFUlJPUik7IC0tb2sKKyAgYXJyYXkgIAorLS0tLS0tLS0tCisgezIxLDIyfQorKDEgcm93KQor CitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJzo6aW50LCAnYSddXSBBUyBp bnRbXSBERUZBVUxUICd7MjEsMjJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKK0VS Uk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50ZWdlcjogInRocmVlIgorTElO RSAxOiBTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJzo6aW50LCAnYSddXSBB UyBpbnRbXSAuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NF TEVDVCBDQVNUKEFSUkFZWzEsICd0aHJlZSc6OmludF0gQVMgaW50W10gREVGQVVMVCAnezIxLDIy fScgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitFUlJPUjogIGludmFsaWQgaW5wdXQg c3ludGF4IGZvciB0eXBlIGludGVnZXI6ICJ0aHJlZSIKK0xJTkUgMTogU0VMRUNUIENBU1QoQVJS QVlbMSwgJ3RocmVlJzo6aW50XSBBUyBpbnRbXSBERUZBVUxUICd7MjEsMjJ9Li4uCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIHNhZmUgY2FzdCB3aXRoIGdlb21ldHJ5IGRhdGEg dHlwZQorU0VMRUNUIENBU1QoJygxLDIpJzo6cG9pbnQgQVMgYm94IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsKKyAgICAgYm94ICAgICAKKy0tLS0tLS0tLS0tLS0KKyAoMSwyKSwo MSwyKQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnWyhOYU4sMSksKE5hTixpbmZpbml0eSldJzo6 bHNlZyBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIHBv aW50ICAgICAgCistLS0tLS0tLS0tLS0tLS0tCisgKE5hTixJbmZpbml0eSkKKygxIHJvdykKKwor U0VMRUNUIENBU1QoJ1soMWUrMzAwLEluZmluaXR5KSwoMWUrMzAwLEluZmluaXR5KV0nOjpsc2Vn IEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICBwb2lu dCAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoMWUrMzAwLEluZmluaXR5KQorKDEgcm93 KQorCitTRUxFQ1QgQ0FTVCgnWygxLDIpLCgzLDQpXSc6OnBhdGggYXMgcG9seWdvbiBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgcG9seWdvbiAKKy0tLS0tLS0tLQorIAorKDEg cm93KQorCitTRUxFQ1QgQ0FTVCgnKE5hTiwxLjAsTmFOLGluZmluaXR5KSc6OmJveCBBUyBwb2lu dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIHBvaW50ICAgICAgCist LS0tLS0tLS0tLS0tLS0tCisgKE5hTixJbmZpbml0eSkKKygxIHJvdykKKworU0VMRUNUIENBU1Qo JygyLjAsMi4wLDAuMCwwLjApJzo6Ym94IEFTIGxzZWcgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworICAgICBsc2VnICAgICAgCistLS0tLS0tLS0tLS0tLS0KKyBbKDIsMiksKDAs MCldCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6OmJveCBBUyBw b2x5Z29uIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICAgICBwb2x5 Z29uICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKCgwLDApLCgwLDIp LCgyLDIpLCgyLDApKQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKDIuMCwyLjAsMC4wLDAuMCkn Ojpib3ggQVMgcGF0aCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgcGF0aCAK Ky0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKDIuMCxpbmZpbml0eSxOYU4saW5m aW5pdHkpJzo6Ym94IEFTIGNpcmNsZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7 CisgICAgICAgIGNpcmNsZSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgPChOYU4s SW5maW5pdHkpLE5hTj4KKygxIHJvdykKKworU0VMRUNUIENBU1QoJyhOYU4sMC4wKSwoMi4wLDQu MCksKDAuMCxpbmZpbml0eSknOjpwb2x5Z29uIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKTsKKyAgICAgcG9pbnQgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0KKyAoTmFO LEluZmluaXR5KQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKDIuMCwwLjApLCgyLjAsNC4wKSwo MC4wLDAuMCknOjpwb2x5Z29uIEFTIHBhdGggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOworICAgICAgICBwYXRoICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoKDIs MCksKDIsNCksKDAsMCkpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoMi4wLDAuMCksKDIuMCw0 LjApLCgwLjAsMC4wKSc6OnBvbHlnb24gQVMgYm94IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKyAgICAgYm94ICAgICAKKy0tLS0tLS0tLS0tLS0KKyAoMiw0KSwoMCwwKQorKDEg cm93KQorCitTRUxFQ1QgQ0FTVCgnKE5hTixpbmZpbml0eSksKDIuMCw0LjApLCgwLjAsaW5maW5p dHkpJzo6cG9seWdvbiBBUyBjaXJjbGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworICAgICAgICBjaXJjbGUgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDwoTmFO LEluZmluaXR5KSxOYU4+CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCc8KDUsMSksMz4nOjpjaXJj bGUgQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIHBvaW50IAor LS0tLS0tLQorICg1LDEpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCc8KDMsNSksMD4nOjpjaXJj bGUgYXMgYm94IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgYm94ICAg ICAKKy0tLS0tLS0tLS0tLS0KKyAoMyw1KSwoMyw1KQorKDEgcm93KQorCistLSBjYXN0IGZyb20g dHlwZSBjaXJjbGUgdG8gdHlwZSBwb2x5Z29uIGlzIGltcGxlbWVudGVkIGFzIGFuIFNRTCBmdW5j dGlvbiwgd2hpY2ggY2Fubm90IGJlIGVycm9yLXNhZmUKK1NFTEVDVCBDQVNUKCc8KDMsNSksMD4n OjpjaXJjbGUgYXMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitF UlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgY2lyY2xlIHRvIHBvbHlnb24gd2hlbiBERUZBVUxUIGV4 cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKK0xJ TkUgMTogU0VMRUNUIENBU1QoJzwoMyw1KSwwPic6OmNpcmNsZSBhcyBwb2x5Z29uIERFRkFVTFQg TlVMTCBPTiBDLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBFeHBsaWNpdCBjYXN0 IGlzIGRlZmluZWQgYnV0IGRlZmluaXRpb24gaXMgbm90IGVycm9yIHNhZmUuCistLSBzYWZlIGNh c3QgZnJvbS90byBtb25leSB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQsIGFsbCB0aGUgZm9sbG93aW5n IHdvdWxkIHJlc3VsdCBlcnJvcgorU0VMRUNUIENBU1QoTlVMTDo6aW50OCBBUyBtb25leSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUg YmlnaW50IHRvIG1vbmV5IHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBD QVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKE5VTEw6Omlu dDggQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRS4uLgorICAgICAgICAgICAg ICAgICAgICBeCitISU5UOiAgRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0aW9u IGlzIG5vdCBlcnJvciBzYWZlLgorU0VMRUNUIENBU1QoTlVMTDo6aW50NCBBUyBtb25leSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUg aW50ZWdlciB0byBtb25leSB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4g Q0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVChOVUxMOjpp bnQ0IEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEUuLi4KKyAgICAgICAgICAg ICAgICAgICAgXgorSElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlv biBpcyBub3QgZXJyb3Igc2FmZS4KK1NFTEVDVCBDQVNUKE5VTEw6Om51bWVyaWMgQVMgbW9uZXkg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0 eXBlIG51bWVyaWMgdG8gbW9uZXkgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVk IGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1QoTlVM TDo6bnVtZXJpYyBBUyBtb25leSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPLi4uCisgICAgICAg ICAgICAgICAgICAgIF4KK0hJTlQ6ICBFeHBsaWNpdCBjYXN0IGlzIGRlZmluZWQgYnV0IGRlZmlu aXRpb24gaXMgbm90IGVycm9yIHNhZmUuCitTRUxFQ1QgQ0FTVChOVUxMOjptb25leSBBUyBudW1l cmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK0VSUk9SOiAgY2Fubm90IGNh c3QgdHlwZSBtb25leSB0byBudW1lcmljIHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNp ZmllZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNU KE5VTEw6Om1vbmV5IEFTIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJTy4uLgorICAg ICAgICAgICAgICAgICAgICBeCitISU5UOiAgRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBk ZWZpbml0aW9uIGlzIG5vdCBlcnJvciBzYWZlLgorU0VMRUNUIENBU1QoTlVMTDo6bW9uZXlbXSBB UyBudW1lcmljW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworRVJST1I6ICBj YW5ub3QgY2FzdCB0eXBlIG1vbmV5W10gdG8gbnVtZXJpY1tdIHdoZW4gREVGQVVMVCBleHByZXNz aW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6 IFNFTEVDVCBDQVNUKE5VTEw6Om1vbmV5W10gQVMgbnVtZXJpY1tdIERFRkFVTFQgTlVMTCBPTiBD T05WRS4uLgorICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAgRXhwbGljaXQgY2FzdCBpcyBk ZWZpbmVkIGJ1dCBkZWZpbml0aW9uIGlzIG5vdCBlcnJvciBzYWZlLgorLS0gc2FmZSBjYXN0IGZy b20gYnl0ZWEgdHlwZSB0byBvdGhlciBkYXRhIHR5cGVzCitTRUxFQ1QgQ0FTVCAoJ1x4MTEyMjMz NDQ1NTY2Nzc4ODk5Jzo6Ynl0ZWEgQVMgaW50OCBERUZBVUxUIDE5IE9OIENPTlZFUlNJT04gRVJS T1IpOworIGludDggCistLS0tLS0KKyAgIDE5CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdceDEy MzQ1Njc4OUEnOjpieXRlYSBBUyBpbnQ0IERFRkFVTFQgMjAgT04gQ09OVkVSU0lPTiBFUlJPUik7 CisgaW50NCAKKy0tLS0tLQorICAgMjAKKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1x4MTIzNDU2 Jzo6Ynl0ZWEgQVMgaW50MiBERUZBVUxUIDIxIE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDIg CistLS0tLS0KKyAgIDIxCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdceDEyMzQ1Njc4OTBhYmNk ZWYnOjpieXRlYSBBUyB1dWlkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyB1 dWlkIAorLS0tLS0tCisgCisoMSByb3cpCisKKy0tIHNhZmUgY2FzdCBmcm9tIHV1aWQgdHlwZSB0 byBvdGhlciBkYXRhIHR5cGVzCitTRUxFQ1QgQ0FTVCgnNWIzNTM4MGEtNzE0My00OTEyLTliNTUt ZjMyMjY5OWM2NzcwJzo6dXVpZCBBUyBieXRlYSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CisgICAgICAgICAgICAgICBieXRlYSAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFx4NWIzNTM4MGE3MTQzNDkxMjliNTVmMzIyNjk5 YzY3NzAKKygxIHJvdykKKworLS0gc2FmZSBjYXN0IGZyb20gYml0IHR5cGUgdG8gb3RoZXIgZGF0 YSB0eXBlcworU0VMRUNUIENBU1QoJzExMTExMTExMTEwMDAwMSc6OmJpdCgxMDApIEFTIElOVCBE RUZBVUxUIDIyIE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDQgCistLS0tLS0KKyAgIDIyCiso MSByb3cpCisKK1NFTEVDVCBDQVNUICgnMTExMTExMTExMTAwMDAxJzo6Yml0KDEwMCkgQVMgSU5U OCBERUZBVUxUIDIzIE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDggCistLS0tLS0KKyAgIDIz CisoMSByb3cpCisKKy0tIHNhZmUgY2FzdCBmcm9tIHRleHQgdHlwZSB0byBvdGhlciBkYXRhIHR5 cGVzCitzZWxlY3QgQ0FTVCgnYS5iLmMuZCc6OnRleHQgYXMgcmVnY2xhc3MgZGVmYXVsdCBOVUxM IG9uIGNvbnZlcnNpb24gZXJyb3IpOworIHJlZ2NsYXNzIAorLS0tLS0tLS0tLQorIAorKDEgcm93 KQorCitDUkVBVEUgVEFCTEUgdGVzdF9zYWZlY2FzdChjb2wwIHRleHQpOworSU5TRVJUIElOVE8g dGVzdF9zYWZlY2FzdChjb2wwKSBWQUxVRVMgKCc8dmFsdWU+b25lPC92YWx1ZScpOworU0VMRUNU IGNvbDAgYXMgdGV4dCwKKyAgICAgICBDQVNUKGNvbDAgQVMgcmVnY2xhc3MgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3JlZ2NsYXNzLAorICAgICAgIENBU1QoY29sMCBB UyByZWdjbGFzcyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgSVMgTlVMTCBhcyBl eHBlY3RfdHJ1ZSwKKyAgICAgICBDQVNUKGNvbDAgQVMgImNoYXIiICBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fY2hhciwKKyAgICAgICBDQVNUKGNvbDAgQVMgbmFtZSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbmFtZSwKKyAgICAgICBDQVNU KGNvbDAgQVMgeG1sIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b194bWwK K0ZST00gdGVzdF9zYWZlY2FzdDsKKyAgICAgICB0ZXh0ICAgICAgICB8IHRvX3JlZ2NsYXNzIHwg ZXhwZWN0X3RydWUgfCB0b19jaGFyIHwgICAgICB0b19uYW1lICAgICAgfCB0b194bWwgCistLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLQorIDx2YWx1ZT5vbmU8L3ZhbHVlIHwgICAgICAgICAg ICAgfCB0ICAgICAgICAgICB8IDwgICAgICAgfCA8dmFsdWU+b25lPC92YWx1ZSB8IAorKDEgcm93 KQorCitTRUxFQ1QgQ0FTVCgnMTkyLjE2OC4xLngnIGFzIGluZXQgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworIGluZXQgCistLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENB U1QoJzE5Mi4xNjguMS4yLzMwJyBhcyBjaWRyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKKyBjaWRyIAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcyMjowMDo1 YzowODo1NTowODowMTowMic6Om1hY2FkZHI4IGFzIG1hY2FkZHIgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworIG1hY2FkZHIgCistLS0tLS0tLS0KKyAKKygxIHJvdykKKworLS0g c2FmZSBjYXN0IGJldHdlZWVuIHJhbmdlIGRhdGEgdHlwZXMKK1NFTEVDVCBDQVNUKCdbMSwyXSc6 OmludDRyYW5nZSBBUyBpbnQ0bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CisgaW50NG11bHRpcmFuZ2UgCistLS0tLS0tLS0tLS0tLS0tCisge1sxLDMpfQorKDEg cm93KQorCitTRUxFQ1QgQ0FTVCgnWzEsMl0nOjppbnQ4cmFuZ2UgQVMgaW50OG11bHRpcmFuZ2Ug REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDhtdWx0aXJhbmdlIAorLS0t LS0tLS0tLS0tLS0tLQorIHtbMSwzKX0KKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1sxLDJdJzo6 bnVtcmFuZ2UgIEFTIG51bW11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOworIG51bW11bHRpcmFuZ2UgCistLS0tLS0tLS0tLS0tLS0KKyB7WzEsMl19CisoMSByb3cp CisKK1NFTEVDVCBDQVNUKCdbLWluZmluaXR5LGluZmluaXR5XSc6OmRhdGVyYW5nZSBBUyBkYXRl bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIGRhdGVt dWx0aXJhbmdlICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtbLWluZmluaXR5LGlu ZmluaXR5XX0KKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1staW5maW5pdHksaW5maW5pdHldJzo6 dHNyYW5nZSBBUyB0c211bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworICAgICAgdHNtdWx0aXJhbmdlICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7 Wy1pbmZpbml0eSxpbmZpbml0eV19CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbLWluZmluaXR5 LGluZmluaXR5XSc6OnRzdHpyYW5nZSBBUyB0c3R6bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7CisgICAgIHRzdHptdWx0aXJhbmdlICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIHtbLWluZmluaXR5LGluZmluaXR5XX0KKygxIHJvdykKKworLS0gc2Fm ZSBjYXN0IGJldHdlZWVuIG51bWVyaWMgZGF0YSB0eXBlcworQ1JFQVRFIFRBQkxFIHRlc3Rfc2Fm ZWNhc3QxKAorICBjb2wxIGZsb2F0NCwgY29sMiBmbG9hdDgsIGNvbDMgbnVtZXJpYywgY29sNCBu dW1lcmljW10sCisgIGNvbDUgaW50MiBkZWZhdWx0IDMyNzY3LAorICBjb2w2IGludDQgZGVmYXVs dCAzMjc2OCwKKyAgY29sNyBpbnQ4IGRlZmF1bHQgNDI5NDk2NzI5Nik7CitJTlNFUlQgSU5UTyB0 ZXN0X3NhZmVjYXN0MSBWQUxVRVMoJzExLjEyMzQnLCAnMTEuMTIzNCcsICc5MjIzMzcyMDM2ODU0 Nzc1ODA4JywgJ3sxMS4xMjM0fSc6Om51bWVyaWNbXSk7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVj YXN0MSBWQUxVRVMoJ2luZicsICdpbmYnLCAnaW5mJywgJ3sxMS4xMjM0LCAxMiwgaW5mLCBOYU59 Jzo6bnVtZXJpY1tdKTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QxIFZBTFVFUygnLWluZics ICctaW5mJywgJy1pbmYnLCAnezExLjEyMzQsIDEyLCAtaW5mLCBOYU59Jzo6bnVtZXJpY1tdKTsK K0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QxIFZBTFVFUygnTmFOJywgJ05hTicsICdOYU4nLCAn ezExLjEyMzQsIDEyLCAtaW5mLCBOYU59Jzo6bnVtZXJpY1tdKTsKK1NFTEVDVCBjb2w1IGFzIGlu dDIsCisgICAgICAgQ0FTVChjb2w1IEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2w1IEFTIGludDQgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2w1IEFTIG9p ZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENB U1QoY29sNSBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19p bnQ4LAorICAgICAgIENBU1QoY29sNSBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDUgYXMgZmxvYXQ4IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChj b2w1IGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251 bWVyaWMsCisgICAgICAgQ0FTVChjb2w1IGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2Fz dDE7CisgaW50MiAgfCB0b19pbnQyIHwgdG9faW50NCB8IHRvX29pZCB8IHRvX2ludDggfCB0b19m bG9hdDQgfCB0b19mbG9hdDggfCB0b19udW1lcmljIHwgdG9fbnVtZXJpY19zY2FsZSAKKy0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIDMyNzY3IHwgICAzMjc2 NyB8ICAgMzI3NjcgfCAgMzI3NjcgfCAgIDMyNzY3IHwgICAgIDMyNzY3IHwgICAgIDMyNzY3IHwg ICAgICAzMjc2NyB8ICAgICAgICAgIDMyNzY3LjAKKyAzMjc2NyB8ICAgMzI3NjcgfCAgIDMyNzY3 IHwgIDMyNzY3IHwgICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAgMzI3Njcg fCAgICAgICAgICAzMjc2Ny4wCisgMzI3NjcgfCAgIDMyNzY3IHwgICAzMjc2NyB8ICAzMjc2NyB8 ICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgIDMyNzY3IHwgICAgICAgICAg MzI3NjcuMAorIDMyNzY3IHwgICAzMjc2NyB8ICAgMzI3NjcgfCAgMzI3NjcgfCAgIDMyNzY3IHwg ICAgIDMyNzY3IHwgICAgIDMyNzY3IHwgICAgICAzMjc2NyB8ICAgICAgICAgIDMyNzY3LjAKKyg0 IHJvd3MpCisKK1NFTEVDVCBjb2w2IGFzIGludDQsCisgICAgICAgQ0FTVChjb2w2IEFTIGludDIg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FT VChjb2w2IEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2lu dDQsCisgICAgICAgQ0FTVChjb2w2IEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sNiBhcyBpbnQ4IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sNiBhcyBmbG9h dDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAg ICBDQVNUKGNvbDYgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2w2IGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2w2IGFzIG51 bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVy aWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisgaW50NCAgfCB0b19pbnQyIHwgdG9faW50 NCB8IHRvX29pZCB8IHRvX2ludDggfCB0b19mbG9hdDQgfCB0b19mbG9hdDggfCB0b19udW1lcmlj IHwgdG9fbnVtZXJpY19zY2FsZSAKKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLQorIDMyNzY4IHwgICAgICAgICB8ICAgMzI3NjggfCAgMzI3NjggfCAgIDMyNzY4 IHwgICAgIDMyNzY4IHwgICAgIDMyNzY4IHwgICAgICAzMjc2OCB8ICAgICAgICAgIDMyNzY4LjAK KyAzMjc2OCB8ICAgICAgICAgfCAgIDMyNzY4IHwgIDMyNzY4IHwgICAzMjc2OCB8ICAgICAzMjc2 OCB8ICAgICAzMjc2OCB8ICAgICAgMzI3NjggfCAgICAgICAgICAzMjc2OC4wCisgMzI3NjggfCAg ICAgICAgIHwgICAzMjc2OCB8ICAzMjc2OCB8ICAgMzI3NjggfCAgICAgMzI3NjggfCAgICAgMzI3 NjggfCAgICAgIDMyNzY4IHwgICAgICAgICAgMzI3NjguMAorIDMyNzY4IHwgICAgICAgICB8ICAg MzI3NjggfCAgMzI3NjggfCAgIDMyNzY4IHwgICAgIDMyNzY4IHwgICAgIDMyNzY4IHwgICAgICAz Mjc2OCB8ICAgICAgICAgIDMyNzY4LjAKKyg0IHJvd3MpCisKK1NFTEVDVCBjb2w3IGFzIGludDgs CisgICAgICAgQ0FTVChjb2w3IEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2w3IEFTIGludDQgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2w3IEFTIG9pZCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1Qo Y29sNyBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4 LAorICAgICAgIENBU1QoY29sNyBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDcgYXMgZmxvYXQ4IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2w3 IGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVy aWMsCisgICAgICAgQ0FTVChjb2w3IGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7 CisgICAgaW50OCAgICB8IHRvX2ludDIgfCB0b19pbnQ0IHwgdG9fb2lkIHwgIHRvX2ludDggICB8 ICB0b19mbG9hdDQgIHwgdG9fZmxvYXQ4ICB8IHRvX251bWVyaWMgfCB0b19udW1lcmljX3NjYWxl IAorLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0KKyA0Mjk0OTY3Mjk2IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCA0Mjk0OTY3Mjk2 IHwgNC4yOTQ5N2UrMDkgfCA0Mjk0OTY3Mjk2IHwgNDI5NDk2NzI5NiB8ICAgICAgICAgICAgICAg ICAKKyA0Mjk0OTY3Mjk2IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCA0Mjk0OTY3Mjk2 IHwgNC4yOTQ5N2UrMDkgfCA0Mjk0OTY3Mjk2IHwgNDI5NDk2NzI5NiB8ICAgICAgICAgICAgICAg ICAKKyA0Mjk0OTY3Mjk2IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCA0Mjk0OTY3Mjk2 IHwgNC4yOTQ5N2UrMDkgfCA0Mjk0OTY3Mjk2IHwgNDI5NDk2NzI5NiB8ICAgICAgICAgICAgICAg ICAKKyA0Mjk0OTY3Mjk2IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCA0Mjk0OTY3Mjk2 IHwgNC4yOTQ5N2UrMDkgfCA0Mjk0OTY3Mjk2IHwgNDI5NDk2NzI5NiB8ICAgICAgICAgICAgICAg ICAKKyg0IHJvd3MpCisKK1NFTEVDVCBjb2wzIGFzIG51bWVyaWMsCisgICAgICAgQ0FTVChjb2wz IEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisg ICAgICAgQ0FTVChjb2wzIEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2wzIEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sMyBhcyBpbnQ4IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29s MyBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0 NCwKKyAgICAgICBDQVNUKGNvbDMgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wzIGFzIG51bWVyaWMgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChj b2wzIGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisgICAgICAgbnVtZXJpYyAg ICAgICB8IHRvX2ludDIgfCB0b19pbnQ0IHwgdG9fb2lkIHwgdG9faW50OCB8ICB0b19mbG9hdDQg IHwgICAgICB0b19mbG9hdDggICAgICAgfCAgICAgdG9fbnVtZXJpYyAgICAgIHwgdG9fbnVtZXJp Y19zY2FsZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIDkyMjMzNzIwMzY4NTQ3NzU4MDgg fCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCA5LjIyMzM3ZSsxOCB8IDku MjIzMzcyMDM2ODU0NzhlKzE4IHwgOTIyMzM3MjAzNjg1NDc3NTgwOCB8ICAgICAgICAgICAgICAg ICAKKyAgICAgICAgICAgIEluZmluaXR5IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAg ICAgICAgIHwgICAgSW5maW5pdHkgfCAgICAgICAgICAgICBJbmZpbml0eSB8ICAgICAgICAgICAg SW5maW5pdHkgfCAgICAgICAgICAgICAgICAgCisgICAgICAgICAgIC1JbmZpbml0eSB8ICAgICAg ICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgLUluZmluaXR5IHwgICAgICAgICAg ICAtSW5maW5pdHkgfCAgICAgICAgICAgLUluZmluaXR5IHwgICAgICAgICAgICAgICAgIAorICAg ICAgICAgICAgICAgICBOYU4gfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAg fCAgICAgICAgIE5hTiB8ICAgICAgICAgICAgICAgICAgTmFOIHwgICAgICAgICAgICAgICAgIE5h TiB8ICAgICAgICAgICAgICBOYU4KKyg0IHJvd3MpCisKK1NFTEVDVCBjb2w0IGFzIG51bV9hcnIs CisgICAgICAgQ0FTVChjb2w0IEFTIGludDJbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgaW50MmFyciwKKyAgICAgICBDQVNUKGNvbDQgQVMgaW50NFtdIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBpbnQ0YXJyLAorICAgICAgIENBU1QoY29sNCBhcyBp bnQ4W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGludDhhcnIsCisgICAg ICAgQ0FTVChjb2w0IGFzIGZsb2F0NFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyBmNGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMgZmxvYXQ4W10gREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIGY4YXJyLAorICAgICAgIENBU1QoY29sNCBhcyBudW1lcmlj KDEwLDEpW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIG51bWFycgorRlJP TSB0ZXN0X3NhZmVjYXN0MTsKKyAgICAgICAgICBudW1fYXJyICAgICAgICAgICB8IGludDJhcnIg fCBpbnQ0YXJyIHwgaW50OGFyciB8ICAgICAgICAgICBmNGFyciAgICAgICAgICAgIHwgICAgICAg ICAgIGY4YXJyICAgICAgICAgICAgfCBudW1hcnIgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLQorIHsxMS4xMjM0fSAg ICAgICAgICAgICAgICAgIHwgezExfSAgICB8IHsxMX0gICAgfCB7MTF9ICAgIHwgezExLjEyMzR9 ICAgICAgICAgICAgICAgICAgfCB7MTEuMTIzNH0gICAgICAgICAgICAgICAgICB8IHsxMS4xfQor IHsxMS4xMjM0LDEyLEluZmluaXR5LE5hTn0gIHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAg IHwgezExLjEyMzQsMTIsSW5maW5pdHksTmFOfSAgfCB7MTEuMTIzNCwxMixJbmZpbml0eSxOYU59 ICB8IAorIHsxMS4xMjM0LDEyLC1JbmZpbml0eSxOYU59IHwgICAgICAgICB8ICAgICAgICAgfCAg ICAgICAgIHwgezExLjEyMzQsMTIsLUluZmluaXR5LE5hTn0gfCB7MTEuMTIzNCwxMiwtSW5maW5p dHksTmFOfSB8IAorIHsxMS4xMjM0LDEyLC1JbmZpbml0eSxOYU59IHwgICAgICAgICB8ICAgICAg ICAgfCAgICAgICAgIHwgezExLjEyMzQsMTIsLUluZmluaXR5LE5hTn0gfCB7MTEuMTIzNCwxMiwt SW5maW5pdHksTmFOfSB8IAorKDQgcm93cykKKworU0VMRUNUIGNvbDEgYXMgZmxvYXQ0LAorICAg ICAgIENBU1QoY29sMSBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19pbnQyLAorICAgICAgIENBU1QoY29sMSBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sMSBBUyBvaWQgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDEg YXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAg ICAgICBDQVNUKGNvbDEgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wxIGFzIGZsb2F0OCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sMSBhcyBu dW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAor ICAgICAgIENBU1QoY29sMSBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QxOworICBm bG9hdDQgICB8IHRvX2ludDIgfCB0b19pbnQ0IHwgdG9fb2lkIHwgdG9faW50OCB8IHRvX2Zsb2F0 NCB8ICAgIHRvX2Zsb2F0OCAgICAgfCB0b19udW1lcmljIHwgdG9fbnVtZXJpY19zY2FsZSAKKy0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisg ICAxMS4xMjM0IHwgICAgICAxMSB8ICAgICAgMTEgfCAgICAgICAgfCAgICAgIDExIHwgICAxMS4x MjM0IHwgMTEuMTIzMzk5NzM0NDk3MSB8ICAgIDExLjEyMzQgfCAgICAgICAgICAgICAxMS4xCisg IEluZmluaXR5IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwgIEluZmlu aXR5IHwgICAgICAgICBJbmZpbml0eSB8ICAgSW5maW5pdHkgfCAgICAgICAgICAgICAgICAgCisg LUluZmluaXR5IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwgLUluZmlu aXR5IHwgICAgICAgIC1JbmZpbml0eSB8ICAtSW5maW5pdHkgfCAgICAgICAgICAgICAgICAgCisg ICAgICAgTmFOIHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwgICAgICAg TmFOIHwgICAgICAgICAgICAgIE5hTiB8ICAgICAgICBOYU4gfCAgICAgICAgICAgICAgTmFOCiso NCByb3dzKQorCitTRUxFQ1QgY29sMiBhcyBmbG9hdDgsCisgICAgICAgQ0FTVChjb2wyIEFTIGlu dDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAg Q0FTVChjb2wyIEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2ludDQsCisgICAgICAgQ0FTVChjb2wyIEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sMiBhcyBpbnQ4IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sMiBhcyBm bG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAg ICAgICBDQVNUKGNvbDIgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wyIGFzIG51bWVyaWMgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2wyIGFz IG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251 bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisgIGZsb2F0OCAgIHwgdG9faW50MiB8 IHRvX2ludDQgfCB0b19vaWQgfCB0b19pbnQ4IHwgdG9fZmxvYXQ0IHwgdG9fZmxvYXQ4IHwgdG9f bnVtZXJpYyB8IHRvX251bWVyaWNfc2NhbGUgCistLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgICAxMS4xMjM0IHwgICAgICAxMSB8ICAgICAgMTEgfCAg ICAgICAgfCAgICAgIDExIHwgICAxMS4xMjM0IHwgICAxMS4xMjM0IHwgICAgMTEuMTIzNCB8ICAg ICAgICAgICAgIDExLjEKKyAgSW5maW5pdHkgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8 ICAgICAgICAgfCAgSW5maW5pdHkgfCAgSW5maW5pdHkgfCAgIEluZmluaXR5IHwgICAgICAgICAg ICAgICAgIAorIC1JbmZpbml0eSB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAg ICB8IC1JbmZpbml0eSB8IC1JbmZpbml0eSB8ICAtSW5maW5pdHkgfCAgICAgICAgICAgICAgICAg CisgICAgICAgTmFOIHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwgICAg ICAgTmFOIHwgICAgICAgTmFOIHwgICAgICAgIE5hTiB8ICAgICAgICAgICAgICBOYU4KKyg0IHJv d3MpCisKKy0tIHNhZmUgdHlwZSBjYXN0IGZvciB0eXBlIGRhdGUvdGltZXN0YW1wL3RpbWVzdGFt cHR6L2ludGVydmFsCitDUkVBVEUgVEFCTEUgdGVzdF9zYWZlY2FzdDIoCisgIGNvbDAgZGF0ZSwg Y29sMSB0aW1lc3RhbXAsIGNvbDIgdGltZXN0YW1wdHosCisgIGNvbDMgaW50ZXJ2YWwsIGNvbDQg dGltZSwgY29sNSB0aW1ldHopOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDIgVkFMVUVTCiso Jy1pbmZpbml0eScsICctaW5maW5pdHknLCAnLWluZmluaXR5JywgJy1pbmZpbml0eScsCisgICcy MDAzLTAzLTA3IDE1OjM2OjM5IEFtZXJpY2EvTmV3X1lvcmsnLCAnMjAwMy0wNy0wNyAxNTozNjoz OSBBbWVyaWNhL05ld19Zb3JrJyksCisoJy1pbmZpbml0eScsICdpbmZpbml0eScsICdpbmZpbml0 eScsICdpbmZpbml0eScsICcxMTo1OTo1OS45OSBQTScsICcxMTo1OTo1OS45OSBQTSBQRFQnKTsK K1NFTEVDVCBjb2wwIGFzIGRhdGUsCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWVzdGFtcHR6IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAg ICBDQVNUKGNvbDAgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fZGF0ZSwKKyAgICAgICBDQVNUKGNvbDAgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWV0eiBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1Qo Y29sMCBBUyB0aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX3RpbWVzdGFtcF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKyAgIGRhdGUgICAgfCB0 b190aW1lc3RhbXB0eiB8ICB0b19kYXRlICB8IHRvX3RpbWVzIHwgdG9fdGltZXR6IHwgdG9fdGlt ZXN0YW1wX3NjYWxlIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgLWluZmluaXR5IHwg LWluZmluaXR5ICAgICAgfCAtaW5maW5pdHkgfCAgICAgICAgICB8ICAgICAgICAgICB8IC1pbmZp bml0eQorIC1pbmZpbml0eSB8IC1pbmZpbml0eSAgICAgIHwgLWluZmluaXR5IHwgICAgICAgICAg fCAgICAgICAgICAgfCAtaW5maW5pdHkKKygyIHJvd3MpCisKK1NFTEVDVCBjb2wxIGFzIHRpbWVz dGFtcCwKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMSBBUyBk YXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAg IENBU1QoY29sMSBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b190aW1lcywKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWVzdGFt cCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3Nj YWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworIHRpbWVzdGFtcCB8IHRvX3RpbWVzdGFtcHR6IHwg IHRvX2RhdGUgIHwgdG9fdGltZXMgfCB0b190aW1ldHogfCB0b190aW1lc3RhbXBfc2NhbGUgCist LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAtaW5maW5pdHkgfCAtaW5maW5pdHkgICAgICB8 IC1pbmZpbml0eSB8ICAgICAgICAgIHwgICAgICAgICAgIHwgLWluZmluaXR5CisgaW5maW5pdHkg IHwgaW5maW5pdHkgICAgICAgfCBpbmZpbml0eSAgfCAgICAgICAgICB8ICAgICAgICAgICB8IGlu ZmluaXR5CisoMiByb3dzKQorCitTRUxFQ1QgY29sMiBhcyB0aW1lc3RhbXB0eiwKKyAgICAgICBD QVNUKGNvbDIgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMiBBUyBkYXRlIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAgIENBU1QoY29sMiBBUyB0 aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAg ICBDQVNUKGNvbDIgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWVzdGFtcCgyKSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxlCitGUk9NIHRlc3Rf c2FmZWNhc3QyOworIHRpbWVzdGFtcHR6IHwgdG9fdGltZXN0YW1wdHogfCAgdG9fZGF0ZSAgfCB0 b190aW1lcyB8IHRvX3RpbWV0eiB8IHRvX3RpbWVzdGFtcF9zY2FsZSAKKy0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tCisgLWluZmluaXR5ICAgfCAtaW5maW5pdHkgICAgICB8IC1pbmZpbml0 eSB8ICAgICAgICAgIHwgICAgICAgICAgIHwgLWluZmluaXR5CisgaW5maW5pdHkgICAgfCBpbmZp bml0eSAgICAgICB8IGluZmluaXR5ICB8ICAgICAgICAgIHwgICAgICAgICAgIHwgaW5maW5pdHkK KygyIHJvd3MpCisKK1NFTEVDVCBjb2wzIGFzIGludGVydmFsLAorICAgICAgIENBU1QoY29sMyBB UyB0aW1lc3RhbXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGlt ZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wzIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWUgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29s MyBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0 eiwKKyAgICAgICBDQVNUKGNvbDMgQVMgdGltZXN0YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUsCisgICAgICAgQ0FTVChjb2wzIEFT IGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRl cnZhbF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKyBpbnRlcnZhbCAgfCB0b190aW1lc3Rh bXB0eiB8IHRvX2RhdGUgfCB0b190aW1lcyB8IHRvX3RpbWV0eiB8IHRvX3RpbWVzdGFtcF9zY2Fs ZSB8IHRvX2ludGVydmFsX3NjYWxlIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tCisgLWluZmluaXR5IHwgICAgICAgICAgICAgICAgfCAgICAgICAgIHwgICAg ICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAtaW5maW5pdHkKKyBpbmZp bml0eSAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAgICB8 ICAgICAgICAgICAgICAgICAgICB8IGluZmluaXR5CisoMiByb3dzKQorCitTRUxFQ1QgY29sNCBh cyB0aW1lLAorICAgICAgIENBU1QoY29sNCBBUyB0aW1lKDIpIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDQgQVMgdGltZXR6IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBJUyBOT1QgTlVMTCBhcyB0b190aW1ldHos CisgICAgICAgQ0FTVChjb2w0IEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbCwKKyAgICAgICBDQVNUKGNvbDQgQVMgaW50ZXJ2YWwo MikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsX3NjYWxl CitGUk9NIHRlc3Rfc2FmZWNhc3QyOworICAgIHRpbWUgICAgIHwgIHRvX3RpbWVzICAgfCB0b190 aW1ldHogfCAgICAgICAgICB0b19pbnRlcnZhbCAgICAgICAgICB8ICAgICAgIHRvX2ludGVydmFs X3NjYWxlICAgICAgIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIDE1OjM2OjM5ICAgIHwgMTU6MzY6MzkgICAgfCB0ICAgICAgICAgfCBAIDE1IGhvdXJz IDM2IG1pbnMgMzkgc2VjcyAgICB8IEAgMTUgaG91cnMgMzYgbWlucyAzOSBzZWNzCisgMjM6NTk6 NTkuOTkgfCAyMzo1OTo1OS45OSB8IHQgICAgICAgICB8IEAgMjMgaG91cnMgNTkgbWlucyA1OS45 OSBzZWNzIHwgQCAyMyBob3VycyA1OSBtaW5zIDU5Ljk5IHNlY3MKKygyIHJvd3MpCisKK1NFTEVD VCBjb2w1IGFzIHRpbWV0eiwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGltZSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZSwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGlt ZSgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZV9zY2FsZSwK KyAgICAgICBDQVNUKGNvbDUgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWV0eig2KSBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6X3NjYWxlLAorICAgICAgIENB U1QoY29sNSBBUyBpbnRlcnZhbCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9faW50ZXJ2YWwsCisgICAgICAgQ0FTVChjb2w1IEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbF9zY2FsZQorRlJPTSB0ZXN0X3Nh ZmVjYXN0MjsKKyAgICAgdGltZXR6ICAgICB8ICAgdG9fdGltZSAgIHwgdG9fdGltZV9zY2FsZSB8 ICAgdG9fdGltZXR6ICAgIHwgdG9fdGltZXR6X3NjYWxlIHwgdG9faW50ZXJ2YWwgfCB0b19pbnRl cnZhbF9zY2FsZSAKKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0KKyAxNTozNjozOS0wNCAgICB8IDE1OjM2OjM5ICAgIHwgMTU6MzY6Mzkg ICAgICB8IDE1OjM2OjM5LTA0ICAgIHwgMTU6MzY6MzktMDQgICAgIHwgICAgICAgICAgICAgfCAK KyAyMzo1OTo1OS45OS0wNyB8IDIzOjU5OjU5Ljk5IHwgMjM6NTk6NTkuOTkgICB8IDIzOjU5OjU5 Ljk5LTA3IHwgMjM6NTk6NTkuOTktMDcgIHwgICAgICAgICAgICAgfCAKKygyIHJvd3MpCisKK0NS RUFURSBUQUJMRSB0ZXN0X3NhZmVjYXN0Myhjb2wwIGpzb25iKTsKK0lOU0VSVCBJTlRPIHRlc3Rf c2FmZWNhc3QzKGNvbDApIFZBTFVFUyAoJyJ0ZXN0IicpOworU0VMRUNUIGNvbDAgYXMganNvbmIs CisgICAgICAgQ0FTVChjb2wwIEFTIGludGVnZXIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2ludGVnZXIsCisgICAgICAgQ0FTVChjb2wwIEFTIG51bWVyaWMgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChj b2wwIEFTIGJpZ2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50 OCwKKyAgICAgICBDQVNUKGNvbDAgQVMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wwIEFTIGZsb2F0OCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29s MCBBUyBib29sZWFuIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19ib29s LAorICAgICAgIENBU1QoY29sMCBBUyBzbWFsbGludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fc21hbGxpbnQKK0ZST00gdGVzdF9zYWZlY2FzdDM7CisganNvbmIgIHwg dG9faW50ZWdlciB8IHRvX251bWVyaWMgfCB0b19pbnQ4IHwgdG9fZmxvYXQ0IHwgdG9fZmxvYXQ4 IHwgdG9fYm9vbCB8IHRvX3NtYWxsaW50IAorLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0KKyAidGVzdCIgfCAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAgICAgICAgfCAgICAg ICAgICAgfCAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAKKygxIHJvdykKKworLS0g dGVzdCBkZXBhcnNlCitTRVQgZGF0ZXN0eWxlIFRPIElTTywgWU1EOworQ1JFQVRFIFZJRVcgc2Fm ZWNhc3R2aWV3IEFTCitTRUxFQ1QgQ0FTVCgnMTIzNCcgYXMgY2hhcigzKSBERUZBVUxUIC0xMTEx IE9OIENPTlZFUlNJT04gRVJST1IpLAorICAgICAgIENBU1QoMSBhcyBkYXRlIERFRkFVTFQgKCgn MjAyNS1EZWMtMDYnOjpkYXRlICsgcmFuZG9tKG1pbj0+MSwgbWF4PT4xOjppbnQpKSkgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgY2FzdDAsCisgICAgICAgQ0FTVChBUlJBWVtbJzEnXSwgWyd0aHJl ZSddLFsnYSddXSBBUyBpbnRbXSBERUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgY2FzdDEsCisgICAgICAgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJywgJ2EnXV0g QVMgZGF0ZVtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MiwKKyAg ICAgICBDQVNUKEFSUkFZWyd0aHJlZSddIEFTIElOVFtdIERFRkFVTFQgJ3sxLDJ9JyBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyBjYXN0MzsKK1xzdiBzYWZlY2FzdHZpZXcKK0NSRUFURSBPUiBSRVBM QUNFIFZJRVcgcHVibGljLnNhZmVjYXN0dmlldyBBUworIFNFTEVDVCBDQVNUKCcxMjM0JyBBUyBj aGFyYWN0ZXIoMykgREVGQVVMVCAnLTExMTEnOjppbnRlZ2VyOjpjaGFyYWN0ZXIoMykgT04gQ09O VkVSU0lPTiBFUlJPUikgQVMgYnBjaGFyLAorICAgIENBU1QoMSBBUyBkYXRlIERFRkFVTFQgJzIw MjUtMTItMDYnOjpkYXRlICsgcmFuZG9tKG1pbiA9PiAxLCBtYXggPT4gMSkgT04gQ09OVkVSU0lP TiBFUlJPUikgQVMgY2FzdDAsCisgICAgQ0FTVChBUlJBWVtBUlJBWVsxXSwgQVJSQVlbJ3RocmVl J10sIEFSUkFZWydhJ11dIEFTIGludGVnZXJbXSBERUZBVUxUICd7MSwyfSc6OmludGVnZXJbXSBP TiBDT05WRVJTSU9OIEVSUk9SKSBBUyBjYXN0MSwKKyAgICBDQVNUKEFSUkFZW0FSUkFZWycxJywg JzInXSwgQVJSQVlbJ3RocmVlJywgJ2EnXV0gQVMgZGF0ZVtdIERFRkFVTFQgTlVMTDo6ZGF0ZVtd IE9OIENPTlZFUlNJT04gRVJST1IpIEFTIGNhc3QyLAorICAgIENBU1QoQVJSQVlbJ3RocmVlJ10g QVMgaW50ZWdlcltdIERFRkFVTFQgJ3sxLDJ9Jzo6aW50ZWdlcltdIE9OIENPTlZFUlNJT04gRVJS T1IpIEFTIGNhc3QzCitTRUxFQ1QgKiBGUk9NIHNhZmVjYXN0dmlldzsKKyBicGNoYXIgfCAgIGNh c3QwICAgIHwgY2FzdDEgfCBjYXN0MiB8IGNhc3QzIAorLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0rLS0tLS0tLSstLS0tLS0tCisgMTIzICAgIHwgMjAyNS0xMi0wNyB8IHsxLDJ9IHwgICAg ICAgfCB7MSwyfQorKDEgcm93KQorCitDUkVBVEUgVklFVyBzYWZlY2FzdHZpZXcxIEFTCitTRUxF Q1QgQ0FTVChBUlJBWVtbJzEnXSwgWyd0aHJlZSddLFsnYSddXSBBUyBkX2ludF9hcnIKKyAgICAg ICAgICAgIERFRkFVTFQgJ3s0MSw0M30nIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QxLAor ICAgICAgIENBU1QoQVJSQVlbWycxJywgJzInLCAxLjFdLCBbJ3RocmVlJywgdHJ1ZSwgQicwMSdd XSBBUyBkX2ludF9hcnIKKyAgICAgICAgICAgIERFRkFVTFQgJ3s0MSw0M30nIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIGNhc3QyOworXHN2IHNhZmVjYXN0dmlldzEKK0NSRUFURSBPUiBSRVBMQUNF IFZJRVcgcHVibGljLnNhZmVjYXN0dmlldzEgQVMKKyBTRUxFQ1QgQ0FTVChBUlJBWVtBUlJBWVsx XSwgQVJSQVlbJ3RocmVlJ10sIEFSUkFZWydhJ11dIEFTIGRfaW50X2FyciBERUZBVUxUICd7NDEs NDN9Jzo6aW50ZWdlcltdOjpkX2ludF9hcnIgT04gQ09OVkVSU0lPTiBFUlJPUikgQVMgY2FzdDEs CisgICAgQ0FTVChBUlJBWVtBUlJBWVsxLCAyLCAxLjE6OmludGVnZXJdLCBBUlJBWVsndGhyZWUn LCB0cnVlLCAnMDEnOjoiYml0Il1dIEFTIGRfaW50X2FyciBERUZBVUxUICd7NDEsNDN9Jzo6aW50 ZWdlcltdOjpkX2ludF9hcnIgT04gQ09OVkVSU0lPTiBFUlJPUikgQVMgY2FzdDIKK1NFTEVDVCAq IEZST00gc2FmZWNhc3R2aWV3MTsKKyAgY2FzdDEgIHwgIGNhc3QyICAKKy0tLS0tLS0tLSstLS0t LS0tLS0KKyB7NDEsNDN9IHwgezQxLDQzfQorKDEgcm93KQorCitSRVNFVCBkYXRlc3R5bGU7Cist LSB0ZXN0IENBU1QgREVGQVVMVCBleHByZXNzaW9uIG11dGFiaWxpdHkKK0NSRUFURSBJTkRFWCBj YXN0X2Vycm9yX2lkeCBPTiB0ZXN0X3NhZmVjYXN0MygoQ0FTVChjb2wwIGFzIGludCBERUZBVUxU IHJhbmRvbShtaW49PjEsIG1heD0+MSkgT04gQ09OVkVSU0lPTiBFUlJPUikpKTsgLS0gZXJyb3IK K0VSUk9SOiAgZnVuY3Rpb25zIGluIGluZGV4IGV4cHJlc3Npb24gbXVzdCBiZSBtYXJrZWQgSU1N VVRBQkxFCitMSU5FIDE6IENSRUFURSBJTkRFWCBjYXN0X2Vycm9yX2lkeCBPTiB0ZXN0X3NhZmVj YXN0MygoQ0FTVChjb2wwIGFzIC4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXgorQ1JFQVRFIElOREVYIGNhc3RfZXJyb3JfaWR4IE9OIHRl c3Rfc2FmZWNhc3QzKChDQVNUKGNvbDAgYXMgeGlkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSkpOyAtLSBlcnJvcgorRVJST1I6ICBkYXRhIHR5cGUgeGlkIGhhcyBubyBkZWZhdWx0 IG9wZXJhdG9yIGNsYXNzIGZvciBhY2Nlc3MgbWV0aG9kICJidHJlZSIKK0hJTlQ6ICBZb3UgbXVz dCBzcGVjaWZ5IGFuIG9wZXJhdG9yIGNsYXNzIGZvciB0aGUgaW5kZXggb3IgZGVmaW5lIGEgZGVm YXVsdCBvcGVyYXRvciBjbGFzcyBmb3IgdGhlIGRhdGEgdHlwZS4KK0NSRUFURSBJTkRFWCBjYXN0 X2Vycm9yX2lkeCBPTiB0ZXN0X3NhZmVjYXN0MygoQ0FTVChjb2wwIGFzIGludCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikpKTsgLS1vaworU0VMRUNUIHBnX2dldF9pbmRleGRlZign Y2FzdF9lcnJvcl9pZHgnOjpyZWdjbGFzcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9pbmRleGRlZiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgSU5ERVggY2FzdF9lcnJvcl9pZHggT04gcHVibGljLnRl c3Rfc2FmZWNhc3QzIFVTSU5HIGJ0cmVlICgoQ0FTVChjb2wwIEFTIGludGVnZXIgREVGQVVMVCBO VUxMOjppbnRlZ2VyIE9OIENPTlZFUlNJT04gRVJST1IpKSkKKygxIHJvdykKKworRFJPUCBWSUVX IHNhZmVjYXN0dmlldzsKK0RST1AgVklFVyBzYWZlY2FzdHZpZXcxOworRFJPUCBUQUJMRSB0ZXN0 X3NhZmVjYXN0OworRFJPUCBUQUJMRSB0ZXN0X3NhZmVjYXN0MTsKK0RST1AgVEFCTEUgdGVzdF9z YWZlY2FzdDI7CitEUk9QIFRBQkxFIHRlc3Rfc2FmZWNhc3QzOworRFJPUCBUQUJMRSB0Y2FzdDsK K0RST1AgRlVOQ1RJT04gcmV0X2ludDg7CitEUk9QIEZVTkNUSU9OIHJldF9zZXRpbnQ7CitEUk9Q IFRZUEUgY29tcF9kb21haW5fd2l0aF90eXBtb2Q7CitEUk9QIFRZUEUgY29tcDI7CitEUk9QIERP TUFJTiBkX3ZhcmNoYXI7CitEUk9QIERPTUFJTiBkX2ludDhhcnI7CitEUk9QIERPTUFJTiBkX2lu dDg7CitEUk9QIERPTUFJTiBkX2ludDQyYXJyMTsKK0RST1AgRE9NQUlOIGRfaW50NDJhcnI7CitE Uk9QIERPTUFJTiBkX2ludDQyOworRFJPUCBET01BSU4gZF9jaGFyM19ub3RfbnVsbDsKK0RST1Ag RE9NQUlOIGRfbnVtZXJpYzsKK1JFU0VUIGV4dHJhX2Zsb2F0X2RpZ2l0czsKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2Nhc3Qub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9jcmVhdGVfY2FzdC5vdXQKaW5kZXggMGU2OTY0NGJjYTIuLjY4ZTY5ZDFj NTg0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0Lm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dApAQCAtODgs NiArODgsMTEgQEAgU0VMRUNUIDEyMzQ6OmludDQ6OmNhc3R0ZXN0dHlwZTsgLS0gU2hvdWxkIHdv cmsgbm93CiAgYmFyMTIzNAogKDEgcm93KQogCitTRUxFQ1QgQ0FTVCgxMjM0OjppbnQ0IEFTIGNh c3R0ZXN0dHlwZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitF UlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgaW50ZWdlciB0byBjYXN0dGVzdHR5cGUgd2hlbiBERUZB VUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJS T1IKK0xJTkUgMTogU0VMRUNUIENBU1QoMTIzNDo6aW50NCBBUyBjYXN0dGVzdHR5cGUgREVGQVVM VCBOVUxMIE9OIENPTlZFLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBTYWZlIHR5 cGUgY2FzdCBmb3IgdXNlci1kZWZpbmVkIHR5cGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZC4KIC0t IGNoZWNrIGRlcGVuZGVuY2llcyBnZW5lcmF0ZWQgZm9yIHRoYXQKIFNFTEVDVCBwZ19kZXNjcmli ZV9vYmplY3QoY2xhc3NpZCwgb2JqaWQsIG9ianN1YmlkKSBhcyBvYmosCiAgICAgICAgcGdfZGVz Y3JpYmVfb2JqZWN0KHJlZmNsYXNzaWQsIHJlZm9iamlkLCByZWZvYmpzdWJpZCkgYXMgb2JqcmVm LApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcXVpdmNsYXNzLm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXF1aXZjbGFzcy5vdXQKaW5kZXggYWQ4YWIyOTRm ZjYuLmUzZjhhMjgwN2Y5IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Vx dWl2Y2xhc3Mub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXF1aXZjbGFzcy5v dXQKQEAgLTk1LDYgKzk1LDEzIEBAIGNyZWF0ZSBmdW5jdGlvbiBpbnQ4YWxpYXMxY21wKGludDgs IGludDhhbGlhczEpIHJldHVybnMgaW50CiAgIHN0cmljdCBpbW11dGFibGUgbGFuZ3VhZ2UgaW50 ZXJuYWwgYXMgJ2J0aW50OGNtcCc7CiBhbHRlciBvcGVyYXRvciBmYW1pbHkgaW50ZWdlcl9vcHMg dXNpbmcgYnRyZWUgYWRkCiAgIGZ1bmN0aW9uIDEgaW50OGFsaWFzMWNtcCAoaW50OCwgaW50OGFs aWFzMSk7CistLSBpbnQ4YWxpYXMyIGJpbmFyeS1jb2VyY2libGUgdG8gaW50OCwgdGhpcyBzaG91 bGQgbm90IGZhaWwKK3NlbGVjdCBjYXN0KCcxJzo6aW50OCBhcyBpbnQ4YWxpYXMyIGRlZmF1bHQg bnVsbCBvbiBjb252ZXJzaW9uIGVycm9yKTsKKyBpbnQ4YWxpYXMyIAorLS0tLS0tLS0tLS0tCisg MQorKDEgcm93KQorCiBjcmVhdGUgdGFibGUgZWMwIChmZiBpbnQ4IHByaW1hcnkga2V5LCBmMSBp bnQ4LCBmMiBpbnQ4KTsKIGNyZWF0ZSB0YWJsZSBlYzEgKGZmIGludDggcHJpbWFyeSBrZXksIGYx IGludDhhbGlhczEsIGYyIGludDhhbGlhczIpOwogY3JlYXRlIHRhYmxlIGVjMiAoeGYgaW50OCBw cmltYXJ5IGtleSwgeDEgaW50OGFsaWFzMSwgeDIgaW50OGFsaWFzMik7CmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVzcy9wYXJh bGxlbF9zY2hlZHVsZQppbmRleCA3MzRkYTA1N2MzNC4uYzgyYjRiMzE0MjMgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9wYXJhbGxlbF9zY2hlZHVsZQpAQCAtODEsNyArODEsNyBAQCB0ZXN0OiBjcmVhdGVfdGFibGVf bGlrZSBhbHRlcl9nZW5lcmljIGFsdGVyX29wZXJhdG9yIG1pc2MgYXN5bmMgZGJzaXplIG1lcmdl IG1pcwogIyBjb2xsYXRlLmxpbnV4LnV0ZjggYW5kIGNvbGxhdGUuaWN1LnV0ZjggdGVzdHMgY2Fu bm90IGJlIHJ1biBpbiBwYXJhbGxlbCB3aXRoIGVhY2ggb3RoZXIKICMgcHNxbCBkZXBlbmRzIG9u IGNyZWF0ZV9hbQogIyBhbXV0aWxzIGRlcGVuZHMgb24gZ2VvbWV0cnksIGNyZWF0ZV9pbmRleF9z cGdpc3QsIGhhc2hfaW5kZXgsIGJyaW4KLXRlc3Q6IHJ1bGVzIHBzcWwgcHNxbF9jcm9zc3RhYiBw c3FsX3BpcGVsaW5lIGFtdXRpbHMgc3RhdHNfZXh0IGNvbGxhdGUubGludXgudXRmOCBjb2xsYXRl LndpbmRvd3Mud2luMTI1MgordGVzdDogcnVsZXMgcHNxbCBwc3FsX2Nyb3NzdGFiIHBzcWxfcGlw ZWxpbmUgYW11dGlscyBzdGF0c19leHQgY29sbGF0ZS5saW51eC51dGY4IGNvbGxhdGUud2luZG93 cy53aW4xMjUyIGNhc3QKIAogIyAtLS0tLS0tLS0tCiAjIFJ1biB0aGVzZSBhbG9uZSBzbyB0aGV5 IGRvbid0IHJ1biBvdXQgb2YgcGFyYWxsZWwgd29ya2VycwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvY2FzdC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jYXN0LnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDM1MzNiNDNjYjkKLS0tIC9kZXYv bnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jYXN0LnNxbApAQCAtMCwwICsxLDM5MiBA QAorU0VUIGV4dHJhX2Zsb2F0X2RpZ2l0cyA9IDA7CisKKy0tIENBU1QgREVGQVVMVCBPTiBDT05W RVJTSU9OIEVSUk9SCitTRUxFQ1QgQ0FTVChCJzAxJyBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKEJJVCcwMScgQVMgZGF0ZSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChUUlVFIEFTIGRhdGUgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoMS4xIEFTIGRhdGUgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoMSBBUyBkYXRlIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKDExMTEgQVMgImNo YXIiIERFRkFVTFQgJ0EnIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ2RlZic6 OnRleHQgQVMgaW50ZWdlciBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxF Q1QgQ0FTVCg2NTUzNiBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK KworLS0gc291cmNlIGV4cHJlc3Npb24gaXMgYSB1bmtub3duIGNvbnN0CitWQUxVRVMgKENBU1Qo J2Vycm9yJyBBUyBpbnRlZ2VyIEVSUk9SIE9OIENPTlZFUlNJT04gRVJST1IpKTsgLS0gZXJyb3IK K1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSk7CitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIERFRkFVTFQgNDIgT04gQ09OVkVS U0lPTiBFUlJPUikpOworU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIDE4IE9OIENPTlZF UlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHN1bSgxKSBPTiBD T05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVM VCBzdW0oMSkgb3ZlcigpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgorU0VMRUNUIENB U1QoJ2EnIGFzIGludCBERUZBVUxUIChTRUxFQ1QgTlVMTCkgT04gQ09OVkVSU0lPTiBFUlJPUik7 IC0tIGVycm9yCitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgJ2InIE9OIENPTlZFUlNJ T04gRVJST1IpOyAtLSBlcnJvcgorU0VMRUNUIENBU1QoJ2EnOjppbnQgYXMgaW50IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKKworLS0gdGhlIGRlZmF1bHQgZXhw cmVzc2lvbuKAmXMgY29sbGF0aW9uIHNob3VsZCBtYXRjaCB0YXJnZXQgdHlwZSBjb2xsYXRpb24K K1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIHRleHQgREVGQVVMVCAnMScgQ09MTEFURSAiQyIgT04g Q09OVkVSU0lPTiBFUlJPUikpOworCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnQydmVjdG9y IERFRkFVTFQgJzEgMycgIE9OIENPTlZFUlNJT04gRVJST1IpKTsKK1ZBTFVFUyAoQ0FTVCgnZXJy b3InIEFTIGludDJ2ZWN0b3JbXSBERUZBVUxUICd7MSAzfScgIE9OIENPTlZFUlNJT04gRVJST1Ip KTsKKworLS0gc291cmNlIGV4cHJlc3Npb24gY29udGFpbiBzdWJxdWVyeQorU0VMRUNUIENBU1Qo KFNFTEVDVCBiIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEpLCAoVkFMVUVTKCdIJykpIHMoYikp CisgICAgICAgICAgICBBUyBpbnQydmVjdG9yW10gREVGQVVMVCAnezEgM30nICBPTiBDT05WRVJT SU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKChTRUxFQ1QgQVJSQVkoKFNFTEVDVCBiIEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsIDIpIGcsIChWQUxVRVMoJ0gnKSkgcyhiKSkpKQorICAgICAgICAgICAg QVMgSU5UW10KKyAgICAgICAgICAgIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK KworQ1JFQVRFIEZVTkNUSU9OIHJldF9pbnQ4KCkgUkVUVVJOUyBCSUdJTlQgQVMKKyQkCitCRUdJ TiBSRVRVUk4gMjE0NzQ4MzY0ODsgRU5EOworJCQKK0xBTkdVQUdFIHBscGdzcWwgSU1NVVRBQkxF OworCitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgcmV0X2ludDgoKSBPTiBDT05WRVJT SU9OIEVSUk9SKTsgLS0gZXJyb3IKK1NFTEVDVCBDQVNUKCdhJyBhcyBkYXRlIERFRkFVTFQgcmV0 X2ludDgoKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKKworLS0gREVGQVVMVCBleHBy ZXNzaW9uIGNhbm5vdCBiZSBzZXQtcmV0dXJuaW5nCitDUkVBVEUgRlVOQ1RJT04gcmV0X3NldGlu dCgpIFJFVFVSTlMgU0VUT0YgaW50ZWdlciBBUworJCQKK0JFR0lOIFJFVFVSTiBRVUVSWSBFWEVD VVRFICdzZWxlY3QgMSB1bmlvbiBhbGwgc2VsZWN0IDEnOyBFTkQ7CiskJAorTEFOR1VBR0UgcGxw Z3NxbCBJTU1VVEFCTEU7CisKK0NSRUFURSBUQUJMRSB0Y2FzdDAoYSBJTlQsIGIgaW50KTsKK0lO U0VSVCBJTlRPIHRjYXN0MCBWQUxVRVMoMSwyKSwgKDY1NTM2LDMpOworU0VUIGppdF9hYm92ZV9j b3N0ID0gMDsKK1NFTEVDVCBDQVNUKGEgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgRlJPTSB0Y2FzdDA7CitTRVQgaml0X2Fib3ZlX2Nvc3QgVE8gREVGQVVMVDsKK1NF TEVDVCBDQVNUKGEgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgRlJP TSB0Y2FzdDA7CitTRUxFQ1QgQ0FTVChST1coMSwyKSBBUyB0Y2FzdDAgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIEZST00gdGNhc3QwIGFzIHQ7CitEUk9QIFRBQkxFIHRjYXN0MDsK KworU0VMRUNUIENBU1QoMTIuMTExIGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGU7CisKK0NSRUFURSBUQUJMRSB0Y2Fz dChhIHRleHRbXSwgYiBpbnQgR0VORVJBVEVEIEJZIERFRkFVTFQgQVMgSURFTlRJVFkpOworSU5T RVJUIElOVE8gdGNhc3QgVkFMVUVTICgnezEyfScpLCAoJ3sxLGEsIGJ9JyksICgne3sxLDJ9LCB7 YyxkfX0nKSwgKCd7MTN9Jyk7CitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgcmV0X3Nl dGludCgpIE9OIENPTlZFUlNJT04gRVJST1IpIEZST00gdGNhc3Q7IC0tIGVycm9yCitTRUxFQ1Qg Q0FTVCh0IEFTIHRleHRbXSBERUZBVUxUICd7MjEsMjIsICcgfHwgYiB8fCAnfScgT04gQ09OVkVS U0lPTiBFUlJPUikgRlJPTSB0Y2FzdCBhcyB0OworU0VMRUNUIENBU1QodC5hIEFTIGludFtdIERF RkFVTFQgJ3syMSwyMn0nOjppbnRbXSB8fCBiIE9OIENPTlZFUlNJT04gRVJST1IpIEZST00gdGNh c3QgYXMgdDsKKworLS0gdGVzdCB3aXRoIHVzZXItZGVmaW5lZCB0eXBlLCBkb21haW4sIGFycmF5 IG92ZXIgZG9tYWluLCBkb21haW4gb3ZlciBhcnJheQorQ1JFQVRFIERPTUFJTiBkX2ludDQyIGFz IGludCBjaGVjayAodmFsdWUgPSA0MikgTk9UIE5VTEw7CitDUkVBVEUgRE9NQUlOIGRfaW50NDJh cnIgYXMgZF9pbnQ0MltdOworQ1JFQVRFIERPTUFJTiBkX2ludDQyYXJyMSBhcyBkX2ludDQyYXJy OworQ1JFQVRFIERPTUFJTiBkX2ludDggYXMgaW50OCBjaGVjayAodmFsdWUgPiAwKTsKK0NSRUFU RSBET01BSU4gZF9pbnQ4YXJyIGFzIGRfaW50OFtdOworQ1JFQVRFIERPTUFJTiBkX2NoYXIzX25v dF9udWxsIGFzIGNoYXIoMykgTk9UIE5VTEw7CitDUkVBVEUgRE9NQUlOIGRfdmFyY2hhciBhcyB2 YXJjaGFyKDMpIE5PVCBOVUxMOworQ1JFQVRFIERPTUFJTiBkX2ludF9hcnIgYXMgaW50W10gY2hl Y2sgKHZhbHVlID0gJ3s0MSwgNDN9JykgTk9UIE5VTEw7CitDUkVBVEUgVFlQRSBjb21wX2RvbWFp bl93aXRoX3R5cG1vZCBBUyAoYSBkX2NoYXIzX25vdF9udWxsLCBiIGludCk7CitDUkVBVEUgVFlQ RSBjb21wMiBBUyAoYSBkX3ZhcmNoYXIpOworQ1JFQVRFIERPTUFJTiBkX251bWVyaWMgYXMgbnVt ZXJpYyg0LDQpOworCitTRUxFQ1QgQ0FTVCgxLjA6OmZsb2F0NCBBUyBkX251bWVyaWMgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ3sxLjB9JyBBUyBudW1l cmljKDQsMSlbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FT VCgnezAuMSwgMS4wfScgQVMgZF9udW1lcmljW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworCitTRUxFQ1QgQ0FTVCgxMSBBUyBkX2ludDQyIERFRkFVTFQgNDEgT04gQ09OVkVS U0lPTiBFUlJPUik7IC0tIGVycm9yCitTRUxFQ1QgQ0FTVChOVUxMIEFTIGRfaW50NDIgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgorU0VMRUNUIENBU1QoMTEgQVMg ZF9pbnQ0MiBERUZBVUxUIDQyIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoTlVM TCBBUyBkX2ludDQyIERFRkFVTFQgNDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKK1NFTEVDVCBD QVNUKEFSUkFZWzQyXTo6ZF9pbnQ0MmFycjEgQVMgZF9pbnQ4IERFRkFVTFQgJzEnIE9OIENPTlZF UlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoQVJSQVlbNDJdOjpkX2ludDQyYXJyMSBBUyBkX2lu dDhbXSBERUZBVUxUICd7MX0nIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoQVJS QVlbNDJdOjpkX2ludDQyYXJyMSBBUyBkX2ludDhhcnIgREVGQVVMVCAnezF9JyBPTiBDT05WRVJT SU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKEFSUkFZWzQyXTo6ZF9pbnQ0MmFycjEgQVMgZF9pbnQ4 YXJyW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworCitTRUxFQ1QgQ0FTVChB UlJBWVs0Miw0MV0gQVMgZF9pbnQ0MltdIERFRkFVTFQgJ3s0MiwgNDJ9JyBPTiBDT05WRVJTSU9O IEVSUk9SKTsKK1NFTEVDVCBDQVNUKEFSUkFZWzQyLDQxXSBBUyBkX2ludF9hcnIgREVGQVVMVCAn ezQxLCA0M30nIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoQVJSQVlbNDIsIDQx XTo6ZF9pbnQ0MmFycjEgQVMgZF9pbnQ4YXJyIERFRkFVTFQgJ3sxLDIsM30nIE9OIENPTlZFUlNJ T04gRVJST1IpOworU0VMRUNUIENBU1QoQVJSQVlbNDIsIDQxXSBBUyBkX2ludDQyYXJyMSBERUZB VUxUICd7NDIsIDQyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QKKyAgICBDQVNUKENB U1QoQVJSQVlbQ0FTVChBUlJBWVs0MiwgNDJdIEFTIGRfaW50NDJhcnIpXSBBUyBkX2ludDQyYXJy MVtdKSBBUyBkX2ludDhhcnJbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisK K1NFTEVDVCBDQVNUKCcoTlVMTCknIEFTIGNvbXAyIERFRkFVTFQgJygxMjMyKScgT04gQ09OVkVS U0lPTiBFUlJPUik7IC0tIGVycm9yCitTRUxFQ1QgQ0FTVCgnKE5VTEwpJyBBUyBjb21wMiBERUZB VUxUICcoMTIzKScgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKCw0MiknIEFT IGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKK1NFTEVDVCBDQVNUKCcoTlVMTCw0MiknIEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERF RkFVTFQgJygxLDIpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoTlVMTCw0 MiknIEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgJygxMjM0LDIpJyBPTiBDT05W RVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKK1NFTEVDVCBDQVNUKFJPVyhOVUxMLDQyKSBBUyBjb21w X2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0t IGVycm9yCisKKy0tIHRlc3QgYXJyYXkgY29lcmNlCitTRUxFQ1QgQ0FTVChhcnJheVsnYSc6OnRl eHRdIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IK K1NFTEVDVCBDQVNUKGFycmF5WydhJ10gQVMgaW50W10gREVGQVVMVCBBUlJBWVsxXSBPTiBDT05W RVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKGFycmF5WzExLjEyXSBBUyBkYXRlW10gREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoYXJyYXlbMTExMTExMTEx MTExMTExMTFdIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NF TEVDVCBDQVNUKGFycmF5W1snYWJjJ10sWzQ1Nl1dIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCd7MTIzLGFiYyw0NTZ9JyBBUyBpbnRbXSBE RUZBVUxUICd7LTc4OX0nIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ3syMzQs ZGVmLDU2N30nOjp0ZXh0W10gQVMgaW50ZWdlcltdIERFRkFVTFQgJ3stMTAxMX0nIE9OIENPTlZF UlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoQVJSQVlbWycxJ10sIFsndGhyZWUnXSxbJ2EnXV0g QVMgaW50W10gREVGQVVMVCAnezEsMn0nIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENB U1QoQVJSQVlbWycxJywgJzInXSwgWyd0aHJlZScsICdhJ11dIEFTIGludFtdIERFRkFVTFQgJ3sy MSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLW9rCitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEn LCAnMiddLCBbJ3RocmVlJzo6aW50LCAnYSddXSBBUyBpbnRbXSBERUZBVUxUICd7MjEsMjJ9JyBP TiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKK1NFTEVDVCBDQVNUKEFSUkFZWzEsICd0aHJl ZSc6OmludF0gQVMgaW50W10gREVGQVVMVCAnezIxLDIyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7 IC0tIGVycm9yCisKKy0tIHNhZmUgY2FzdCB3aXRoIGdlb21ldHJ5IGRhdGEgdHlwZQorU0VMRUNU IENBU1QoJygxLDIpJzo6cG9pbnQgQVMgYm94IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKK1NFTEVDVCBDQVNUKCdbKE5hTiwxKSwoTmFOLGluZmluaXR5KV0nOjpsc2VnIEFTIHBv aW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdbKDFl KzMwMCxJbmZpbml0eSksKDFlKzMwMCxJbmZpbml0eSldJzo6bHNlZyBBUyBwb2ludCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnWygxLDIpLCgzLDQpXSc6 OnBhdGggYXMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxF Q1QgQ0FTVCgnKE5hTiwxLjAsTmFOLGluZmluaXR5KSc6OmJveCBBUyBwb2ludCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKDIuMCwyLjAsMC4wLDAuMCkn Ojpib3ggQVMgbHNlZyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1Qg Q0FTVCgnKDIuMCwyLjAsMC4wLDAuMCknOjpib3ggQVMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKDIuMCwyLjAsMC4wLDAuMCknOjpib3gg QVMgcGF0aCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgn KDIuMCxpbmZpbml0eSxOYU4saW5maW5pdHkpJzo6Ym94IEFTIGNpcmNsZSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKE5hTiwwLjApLCgyLjAsNC4wKSwo MC4wLGluZmluaXR5KSc6OnBvbHlnb24gQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworU0VMRUNUIENBU1QoJygyLjAsMC4wKSwoMi4wLDQuMCksKDAuMCwwLjApJzo6 cG9seWdvbiBBUyBwYXRoIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVD VCBDQVNUKCcoMi4wLDAuMCksKDIuMCw0LjApLCgwLjAsMC4wKSc6OnBvbHlnb24gQVMgYm94IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoTmFOLGluZmlu aXR5KSwoMi4wLDQuMCksKDAuMCxpbmZpbml0eSknOjpwb2x5Z29uIEFTIGNpcmNsZSBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnPCg1LDEpLDM+Jzo6Y2ly Y2xlIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBD QVNUKCc8KDMsNSksMD4nOjpjaXJjbGUgYXMgYm94IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKworLS0gY2FzdCBmcm9tIHR5cGUgY2lyY2xlIHRvIHR5cGUgcG9seWdvbiBpcyBp bXBsZW1lbnRlZCBhcyBhbiBTUUwgZnVuY3Rpb24sIHdoaWNoIGNhbm5vdCBiZSBlcnJvci1zYWZl CitTRUxFQ1QgQ0FTVCgnPCgzLDUpLDA+Jzo6Y2lyY2xlIGFzIHBvbHlnb24gREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworCistLSBzYWZlIGNhc3QgZnJvbS90byBtb25leSB0eXBl IGlzIG5vdCBzdXBwb3J0ZWQsIGFsbCB0aGUgZm9sbG93aW5nIHdvdWxkIHJlc3VsdCBlcnJvcgor U0VMRUNUIENBU1QoTlVMTDo6aW50OCBBUyBtb25leSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CitTRUxFQ1QgQ0FTVChOVUxMOjppbnQ0IEFTIG1vbmV5IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKE5VTEw6Om51bWVyaWMgQVMgbW9uZXkg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoTlVMTDo6bW9u ZXkgQVMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1Qg Q0FTVChOVUxMOjptb25leVtdIEFTIG51bWVyaWNbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CisKKy0tIHNhZmUgY2FzdCBmcm9tIGJ5dGVhIHR5cGUgdG8gb3RoZXIgZGF0YSB0 eXBlcworU0VMRUNUIENBU1QgKCdceDExMjIzMzQ0NTU2Njc3ODg5OSc6OmJ5dGVhIEFTIGludDgg REVGQVVMVCAxOSBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdceDEyMzQ1Njc4 OUEnOjpieXRlYSBBUyBpbnQ0IERFRkFVTFQgMjAgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxF Q1QgQ0FTVCgnXHgxMjM0NTYnOjpieXRlYSBBUyBpbnQyIERFRkFVTFQgMjEgT04gQ09OVkVSU0lP TiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnXHgxMjM0NTY3ODkwYWJjZGVmJzo6Ynl0ZWEgQVMgdXVp ZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tIHNhZmUgY2FzdCBmcm9t IHV1aWQgdHlwZSB0byBvdGhlciBkYXRhIHR5cGVzCitTRUxFQ1QgQ0FTVCgnNWIzNTM4MGEtNzE0 My00OTEyLTliNTUtZjMyMjY5OWM2NzcwJzo6dXVpZCBBUyBieXRlYSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7CisKKy0tIHNhZmUgY2FzdCBmcm9tIGJpdCB0eXBlIHRvIG90aGVy IGRhdGEgdHlwZXMKK1NFTEVDVCBDQVNUKCcxMTExMTExMTExMDAwMDEnOjpiaXQoMTAwKSBBUyBJ TlQgREVGQVVMVCAyMiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUICgnMTExMTEx MTExMTAwMDAxJzo6Yml0KDEwMCkgQVMgSU5UOCBERUZBVUxUIDIzIE9OIENPTlZFUlNJT04gRVJS T1IpOworCistLSBzYWZlIGNhc3QgZnJvbSB0ZXh0IHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBlcwor c2VsZWN0IENBU1QoJ2EuYi5jLmQnOjp0ZXh0IGFzIHJlZ2NsYXNzIGRlZmF1bHQgTlVMTCBvbiBj b252ZXJzaW9uIGVycm9yKTsKKworQ1JFQVRFIFRBQkxFIHRlc3Rfc2FmZWNhc3QoY29sMCB0ZXh0 KTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QoY29sMCkgVkFMVUVTICgnPHZhbHVlPm9uZTwv dmFsdWUnKTsKKworU0VMRUNUIGNvbDAgYXMgdGV4dCwKKyAgICAgICBDQVNUKGNvbDAgQVMgcmVn Y2xhc3MgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3JlZ2NsYXNzLAor ICAgICAgIENBU1QoY29sMCBBUyByZWdjbGFzcyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgSVMgTlVMTCBhcyBleHBlY3RfdHJ1ZSwKKyAgICAgICBDQVNUKGNvbDAgQVMgImNoYXIi ICBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fY2hhciwKKyAgICAgICBD QVNUKGNvbDAgQVMgbmFtZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f bmFtZSwKKyAgICAgICBDQVNUKGNvbDAgQVMgeG1sIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b194bWwKK0ZST00gdGVzdF9zYWZlY2FzdDsKKworU0VMRUNUIENBU1QoJzE5 Mi4xNjguMS54JyBhcyBpbmV0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NF TEVDVCBDQVNUKCcxOTIuMTY4LjEuMi8zMCcgYXMgY2lkciBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnMjI6MDA6NWM6MDg6NTU6MDg6MDE6MDInOjptYWNh ZGRyOCBhcyBtYWNhZGRyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworLS0g c2FmZSBjYXN0IGJldHdlZWVuIHJhbmdlIGRhdGEgdHlwZXMKK1NFTEVDVCBDQVNUKCdbMSwyXSc6 OmludDRyYW5nZSBBUyBpbnQ0bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CitTRUxFQ1QgQ0FTVCgnWzEsMl0nOjppbnQ4cmFuZ2UgQVMgaW50OG11bHRpcmFuZ2Ug REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1sxLDJdJzo6 bnVtcmFuZ2UgIEFTIG51bW11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOworU0VMRUNUIENBU1QoJ1staW5maW5pdHksaW5maW5pdHldJzo6ZGF0ZXJhbmdlIEFTIGRh dGVtdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBD QVNUKCdbLWluZmluaXR5LGluZmluaXR5XSc6OnRzcmFuZ2UgQVMgdHNtdWx0aXJhbmdlIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdbLWluZmluaXR5LGlu ZmluaXR5XSc6OnRzdHpyYW5nZSBBUyB0c3R6bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7CisKKy0tIHNhZmUgY2FzdCBiZXR3ZWVlbiBudW1lcmljIGRhdGEgdHlw ZXMKK0NSRUFURSBUQUJMRSB0ZXN0X3NhZmVjYXN0MSgKKyAgY29sMSBmbG9hdDQsIGNvbDIgZmxv YXQ4LCBjb2wzIG51bWVyaWMsIGNvbDQgbnVtZXJpY1tdLAorICBjb2w1IGludDIgZGVmYXVsdCAz Mjc2NywKKyAgY29sNiBpbnQ0IGRlZmF1bHQgMzI3NjgsCisgIGNvbDcgaW50OCBkZWZhdWx0IDQy OTQ5NjcyOTYpOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDEgVkFMVUVTKCcxMS4xMjM0Jywg JzExLjEyMzQnLCAnOTIyMzM3MjAzNjg1NDc3NTgwOCcsICd7MTEuMTIzNH0nOjpudW1lcmljW10p OworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDEgVkFMVUVTKCdpbmYnLCAnaW5mJywgJ2luZics ICd7MTEuMTIzNCwgMTIsIGluZiwgTmFOfSc6Om51bWVyaWNbXSk7CitJTlNFUlQgSU5UTyB0ZXN0 X3NhZmVjYXN0MSBWQUxVRVMoJy1pbmYnLCAnLWluZicsICctaW5mJywgJ3sxMS4xMjM0LCAxMiwg LWluZiwgTmFOfSc6Om51bWVyaWNbXSk7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0MSBWQUxV RVMoJ05hTicsICdOYU4nLCAnTmFOJywgJ3sxMS4xMjM0LCAxMiwgLWluZiwgTmFOfSc6Om51bWVy aWNbXSk7CisKK1NFTEVDVCBjb2w1IGFzIGludDIsCisgICAgICAgQ0FTVChjb2w1IEFTIGludDIg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FT VChjb2w1IEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2lu dDQsCisgICAgICAgQ0FTVChjb2w1IEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sNSBhcyBpbnQ4IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sNSBhcyBmbG9h dDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAg ICBDQVNUKGNvbDUgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2w1IGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2w1IGFzIG51 bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVy aWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisKK1NFTEVDVCBjb2w2IGFzIGludDQsCisg ICAgICAgQ0FTVChjb2w2IEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2w2IEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2w2IEFTIG9pZCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29s NiBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAor ICAgICAgIENBU1QoY29sNiBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDYgYXMgZmxvYXQ4IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2w2IGFz IG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMs CisgICAgICAgQ0FTVChjb2w2IGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisK K1NFTEVDVCBjb2w3IGFzIGludDgsCisgICAgICAgQ0FTVChjb2w3IEFTIGludDIgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2w3IEFT IGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAg ICAgQ0FTVChjb2w3IEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fb2lkLAorICAgICAgIENBU1QoY29sNyBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sNyBhcyBmbG9hdDQgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNv bDcgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9h dDgsCisgICAgICAgQ0FTVChjb2w3IGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2w3IGFzIG51bWVyaWMoMTAs MSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUK K0ZST00gdGVzdF9zYWZlY2FzdDE7CisKK1NFTEVDVCBjb2wzIGFzIG51bWVyaWMsCisgICAgICAg Q0FTVChjb2wzIEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2ludDIsCisgICAgICAgQ0FTVChjb2wzIEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2wzIEFTIG9pZCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sMyBhcyBp bnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAg IENBU1QoY29sMyBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDMgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wzIGFzIG51bWVy aWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAg ICAgQ0FTVChjb2wzIGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisKK1NFTEVD VCBjb2w0IGFzIG51bV9hcnIsCisgICAgICAgQ0FTVChjb2w0IEFTIGludDJbXSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgaW50MmFyciwKKyAgICAgICBDQVNUKGNvbDQgQVMg aW50NFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBpbnQ0YXJyLAorICAg ICAgIENBU1QoY29sNCBhcyBpbnQ4W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIGludDhhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGZsb2F0NFtdIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyBmNGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMgZmxvYXQ4 W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGY4YXJyLAorICAgICAgIENB U1QoY29sNCBhcyBudW1lcmljKDEwLDEpW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIG51bWFycgorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKworU0VMRUNUIGNvbDEgYXMgZmxv YXQ0LAorICAgICAgIENBU1QoY29sMSBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sMSBBUyBpbnQ0IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sMSBBUyBv aWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBD QVNUKGNvbDEgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f aW50OCwKKyAgICAgICBDQVNUKGNvbDEgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wxIGFzIGZsb2F0OCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1Qo Y29sMSBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19u dW1lcmljLAorICAgICAgIENBU1QoY29sMSBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNh c3QxOworCitTRUxFQ1QgY29sMiBhcyBmbG9hdDgsCisgICAgICAgQ0FTVChjb2wyIEFTIGludDIg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FT VChjb2wyIEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2lu dDQsCisgICAgICAgQ0FTVChjb2wyIEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sMiBhcyBpbnQ4IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sMiBhcyBmbG9h dDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAg ICBDQVNUKGNvbDIgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wyIGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2wyIGFzIG51 bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVy aWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisKKy0tIHNhZmUgdHlwZSBjYXN0IGZvciB0 eXBlIGRhdGUvdGltZXN0YW1wL3RpbWVzdGFtcHR6L2ludGVydmFsCitDUkVBVEUgVEFCTEUgdGVz dF9zYWZlY2FzdDIoCisgIGNvbDAgZGF0ZSwgY29sMSB0aW1lc3RhbXAsIGNvbDIgdGltZXN0YW1w dHosCisgIGNvbDMgaW50ZXJ2YWwsIGNvbDQgdGltZSwgY29sNSB0aW1ldHopOworSU5TRVJUIElO VE8gdGVzdF9zYWZlY2FzdDIgVkFMVUVTCisoJy1pbmZpbml0eScsICctaW5maW5pdHknLCAnLWlu ZmluaXR5JywgJy1pbmZpbml0eScsCisgICcyMDAzLTAzLTA3IDE1OjM2OjM5IEFtZXJpY2EvTmV3 X1lvcmsnLCAnMjAwMy0wNy0wNyAxNTozNjozOSBBbWVyaWNhL05ld19Zb3JrJyksCisoJy1pbmZp bml0eScsICdpbmZpbml0eScsICdpbmZpbml0eScsICdpbmZpbml0eScsICcxMTo1OTo1OS45OSBQ TScsICcxMTo1OTo1OS45OSBQTSBQRFQnKTsKKworU0VMRUNUIGNvbDAgYXMgZGF0ZSwKKyAgICAg ICBDQVNUKGNvbDAgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMCBBUyBkYXRlIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAgIENBU1QoY29sMCBB UyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAg ICAgICBDQVNUKGNvbDAgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWVzdGFtcCgyKSBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxlCitGUk9NIHRl c3Rfc2FmZWNhc3QyOworCitTRUxFQ1QgY29sMSBhcyB0aW1lc3RhbXAsCisgICAgICAgQ0FTVChj b2wxIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDEgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FT VChjb2wxIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f dGltZXR6LAorICAgICAgIENBU1QoY29sMSBBUyB0aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVj YXN0MjsKKworU0VMRUNUIGNvbDIgYXMgdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wyIEFT IHRpbWVzdGFtcHR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1l c3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDIgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZSBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wy IEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6 LAorICAgICAgIENBU1QoY29sMiBBUyB0aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsK KworU0VMRUNUIGNvbDMgYXMgaW50ZXJ2YWwsCisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWVzdGFt cHR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwK KyAgICAgICBDQVNUKGNvbDMgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fZGF0ZSwKKyAgICAgICBDQVNUKGNvbDMgQVMgdGltZSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWV0 eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAg IENBU1QoY29sMyBBUyB0aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX3RpbWVzdGFtcF9zY2FsZSwKKyAgICAgICBDQVNUKGNvbDMgQVMgaW50ZXJ2YWwo MikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsX3NjYWxl CitGUk9NIHRlc3Rfc2FmZWNhc3QyOworCitTRUxFQ1QgY29sNCBhcyB0aW1lLAorICAgICAgIENB U1QoY29sNCBBUyB0aW1lKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b190aW1lcywKKyAgICAgICBDQVNUKGNvbDQgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBJUyBOT1QgTlVMTCBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2w0 IEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19p bnRlcnZhbCwKKyAgICAgICBDQVNUKGNvbDQgQVMgaW50ZXJ2YWwoMikgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNh c3QyOworCitTRUxFQ1QgY29sNSBhcyB0aW1ldHosCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWUg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWUsCisgICAgICAgQ0FT VChjb2w1IEFTIHRpbWUoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X3RpbWVfc2NhbGUsCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sNSBBUyB0aW1l dHooNikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0el9zY2Fs ZSwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50ZXJ2YWwgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2ludGVydmFsLAorICAgICAgIENBU1QoY29sNSBBUyBpbnRlcnZhbCgy KSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWxfc2NhbGUK K0ZST00gdGVzdF9zYWZlY2FzdDI7CisKK0NSRUFURSBUQUJMRSB0ZXN0X3NhZmVjYXN0Myhjb2ww IGpzb25iKTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QzKGNvbDApIFZBTFVFUyAoJyJ0ZXN0 IicpOworU0VMRUNUIGNvbDAgYXMganNvbmIsCisgICAgICAgQ0FTVChjb2wwIEFTIGludGVnZXIg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVnZXIsCisgICAgICAg Q0FTVChjb2wwIEFTIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2wwIEFTIGJpZ2ludCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDAgQVMgZmxvYXQ0 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAg Q0FTVChjb2wwIEFTIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sMCBBUyBib29sZWFuIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19ib29sLAorICAgICAgIENBU1QoY29sMCBBUyBzbWFsbGlu dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fc21hbGxpbnQKK0ZST00g dGVzdF9zYWZlY2FzdDM7CisKKy0tIHRlc3QgZGVwYXJzZQorU0VUIGRhdGVzdHlsZSBUTyBJU08s IFlNRDsKK0NSRUFURSBWSUVXIHNhZmVjYXN0dmlldyBBUworU0VMRUNUIENBU1QoJzEyMzQnIGFz IGNoYXIoMykgREVGQVVMVCAtMTExMSBPTiBDT05WRVJTSU9OIEVSUk9SKSwKKyAgICAgICBDQVNU KDEgYXMgZGF0ZSBERUZBVUxUICgoJzIwMjUtRGVjLTA2Jzo6ZGF0ZSArIHJhbmRvbShtaW49PjEs IG1heD0+MTo6aW50KSkpIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QwLAorICAgICAgIENB U1QoQVJSQVlbWycxJ10sIFsndGhyZWUnXSxbJ2EnXV0gQVMgaW50W10gREVGQVVMVCAnezEsMn0n IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QxLAorICAgICAgIENBU1QoQVJSQVlbWycxJywg JzInXSwgWyd0aHJlZScsICdhJ11dIEFTIGRhdGVbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgY2FzdDIsCisgICAgICAgQ0FTVChBUlJBWVsndGhyZWUnXSBBUyBJTlRbXSBE RUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDM7Citcc3Ygc2FmZWNh c3R2aWV3CitTRUxFQ1QgKiBGUk9NIHNhZmVjYXN0dmlldzsKKworQ1JFQVRFIFZJRVcgc2FmZWNh c3R2aWV3MSBBUworU0VMRUNUIENBU1QoQVJSQVlbWycxJ10sIFsndGhyZWUnXSxbJ2EnXV0gQVMg ZF9pbnRfYXJyCisgICAgICAgICAgICBERUZBVUxUICd7NDEsNDN9JyBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyBjYXN0MSwKKyAgICAgICBDQVNUKEFSUkFZW1snMScsICcyJywgMS4xXSwgWyd0aHJl ZScsIHRydWUsIEInMDEnXV0gQVMgZF9pbnRfYXJyCisgICAgICAgICAgICBERUZBVUxUICd7NDEs NDN9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MjsKK1xzdiBzYWZlY2FzdHZpZXcxCitT RUxFQ1QgKiBGUk9NIHNhZmVjYXN0dmlldzE7CisKK1JFU0VUIGRhdGVzdHlsZTsKKworLS0gdGVz dCBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbiBtdXRhYmlsaXR5CitDUkVBVEUgSU5ERVggY2FzdF9l cnJvcl9pZHggT04gdGVzdF9zYWZlY2FzdDMoKENBU1QoY29sMCBhcyBpbnQgREVGQVVMVCByYW5k b20obWluPT4xLCBtYXg9PjEpIE9OIENPTlZFUlNJT04gRVJST1IpKSk7IC0tIGVycm9yCitDUkVB VEUgSU5ERVggY2FzdF9lcnJvcl9pZHggT04gdGVzdF9zYWZlY2FzdDMoKENBU1QoY29sMCBhcyB4 aWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpKSk7IC0tIGVycm9yCitDUkVBVEUg SU5ERVggY2FzdF9lcnJvcl9pZHggT04gdGVzdF9zYWZlY2FzdDMoKENBU1QoY29sMCBhcyBpbnQg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpKSk7IC0tb2sKK1NFTEVDVCBwZ19nZXRf aW5kZXhkZWYoJ2Nhc3RfZXJyb3JfaWR4Jzo6cmVnY2xhc3MpOworCitEUk9QIFZJRVcgc2FmZWNh c3R2aWV3OworRFJPUCBWSUVXIHNhZmVjYXN0dmlldzE7CitEUk9QIFRBQkxFIHRlc3Rfc2FmZWNh c3Q7CitEUk9QIFRBQkxFIHRlc3Rfc2FmZWNhc3QxOworRFJPUCBUQUJMRSB0ZXN0X3NhZmVjYXN0 MjsKK0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDM7CitEUk9QIFRBQkxFIHRjYXN0OworRFJPUCBG VU5DVElPTiByZXRfaW50ODsKK0RST1AgRlVOQ1RJT04gcmV0X3NldGludDsKK0RST1AgVFlQRSBj b21wX2RvbWFpbl93aXRoX3R5cG1vZDsKK0RST1AgVFlQRSBjb21wMjsKK0RST1AgRE9NQUlOIGRf dmFyY2hhcjsKK0RST1AgRE9NQUlOIGRfaW50OGFycjsKK0RST1AgRE9NQUlOIGRfaW50ODsKK0RS T1AgRE9NQUlOIGRfaW50NDJhcnIxOworRFJPUCBET01BSU4gZF9pbnQ0MmFycjsKK0RST1AgRE9N QUlOIGRfaW50NDI7CitEUk9QIERPTUFJTiBkX2NoYXIzX25vdF9udWxsOworRFJPUCBET01BSU4g ZF9udW1lcmljOworUkVTRVQgZXh0cmFfZmxvYXRfZGlnaXRzOwpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3Jl YXRlX2Nhc3Quc3FsCmluZGV4IDMyMTg3ODUzY2M3Li4wYTE1YTc5NWQ4NyAxMDA2NDQKLS0tIGEv c3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL2NyZWF0ZV9jYXN0LnNxbApAQCAtNjIsNiArNjIsNyBAQCAkJCBTRUxFQ1QgKCdiYXIn Ojp0ZXh0IHx8ICQxOjp0ZXh0KTsgJCQ7CiAKIENSRUFURSBDQVNUIChpbnQ0IEFTIGNhc3R0ZXN0 dHlwZSkgV0lUSCBGVU5DVElPTiBiYXJfaW50NF90ZXh0KGludDQpIEFTIElNUExJQ0lUOwogU0VM RUNUIDEyMzQ6OmludDQ6OmNhc3R0ZXN0dHlwZTsgLS0gU2hvdWxkIHdvcmsgbm93CitTRUxFQ1Qg Q0FTVCgxMjM0OjppbnQ0IEFTIGNhc3R0ZXN0dHlwZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7IC0tIGVycm9yCiAKIC0tIGNoZWNrIGRlcGVuZGVuY2llcyBnZW5lcmF0ZWQgZm9y IHRoYXQKIFNFTEVDVCBwZ19kZXNjcmliZV9vYmplY3QoY2xhc3NpZCwgb2JqaWQsIG9ianN1Ymlk KSBhcyBvYmosCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9lcXVpdmNsYXNzLnNx bCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2VxdWl2Y2xhc3Muc3FsCmluZGV4IDdmYzIxNTkzNDli Li43YWRhNGJiNTUwNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZXF1aXZjbGFz cy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZXF1aXZjbGFzcy5zcWwKQEAgLTk4LDYg Kzk4LDkgQEAgY3JlYXRlIGZ1bmN0aW9uIGludDhhbGlhczFjbXAoaW50OCwgaW50OGFsaWFzMSkg cmV0dXJucyBpbnQKIGFsdGVyIG9wZXJhdG9yIGZhbWlseSBpbnRlZ2VyX29wcyB1c2luZyBidHJl ZSBhZGQKICAgZnVuY3Rpb24gMSBpbnQ4YWxpYXMxY21wIChpbnQ4LCBpbnQ4YWxpYXMxKTsKIAor LS0gaW50OGFsaWFzMiBiaW5hcnktY29lcmNpYmxlIHRvIGludDgsIHRoaXMgc2hvdWxkIG5vdCBm YWlsCitzZWxlY3QgY2FzdCgnMSc6OmludDggYXMgaW50OGFsaWFzMiBkZWZhdWx0IG51bGwgb24g Y29udmVyc2lvbiBlcnJvcik7CisKIGNyZWF0ZSB0YWJsZSBlYzAgKGZmIGludDggcHJpbWFyeSBr ZXksIGYxIGludDgsIGYyIGludDgpOwogY3JlYXRlIHRhYmxlIGVjMSAoZmYgaW50OCBwcmltYXJ5 IGtleSwgZjEgaW50OGFsaWFzMSwgZjIgaW50OGFsaWFzMik7CiBjcmVhdGUgdGFibGUgZWMyICh4 ZiBpbnQ4IHByaW1hcnkga2V5LCB4MSBpbnQ4YWxpYXMxLCB4MiBpbnQ4YWxpYXMyKTsKZGlmZiAt LWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggYTRhMmVkMDc4MTYuLmJmMTIxNTYxODQ3IDEwMDY0NAot LS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdp bmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMjczMCw2ICsyNzMwLDggQEAgU1RSTEVOCiBTVgogU1lO Q0hST05JWkFUSU9OX0JBUlJJRVIKIFNZU1RFTV9JTkZPCitTYWZlVHlwZUNhc3RFeHByCitTYWZl VHlwZUNhc3RTdGF0ZQogU2FtcGxlU2NhbgogU2FtcGxlU2NhbkdldFNhbXBsZVNpemVfZnVuY3Rp b24KIFNhbXBsZVNjYW5TdGF0ZQotLSAKMi4zNC4xCgo= --000000000000ed7e80064d704a27 Content-Type: text/x-patch; charset="US-ASCII"; name="v22-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v22-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmymioci9 RnJvbSBhMDViMzNjZGI0OWQ3YjAzOTgwNTk0NzI5NDkxNTI3ZTQ1MmM3NDdiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MTQ6MDcgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MiAxNy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBqc29uYiB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l IGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdqc29uYic6OnJl Z3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgICAgY2Fz dHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgcHJv c3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0K IGpzb25iICAgICAgfCBib29sZWFuICAgICAgICAgIHwgICAgIDM1NTYgfCBlICAgICAgICAgICB8 IGYgICAgICAgICAgfCBqc29uYl9ib29sICAgIHwgYm9vbAoganNvbmIgICAgICB8IG51bWVyaWMg ICAgICAgICAgfCAgICAgMzQ0OSB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGpzb25iX251 bWVyaWMgfCBudW1lcmljCiBqc29uYiAgICAgIHwgc21hbGxpbnQgICAgICAgICB8ICAgICAzNDUw IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwganNvbmJfaW50MiAgICB8IGludDIKIGpzb25i ICAgICAgfCBpbnRlZ2VyICAgICAgICAgIHwgICAgIDM0NTEgfCBlICAgICAgICAgICB8IGYgICAg ICAgICAgfCBqc29uYl9pbnQ0ICAgIHwgaW50NAoganNvbmIgICAgICB8IGJpZ2ludCAgICAgICAg ICAgfCAgICAgMzQ1MiB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGpzb25iX2ludDggICAg fCBpbnQ4CiBqc29uYiAgICAgIHwgcmVhbCAgICAgICAgICAgICB8ICAgICAzNDUzIHwgZSAgICAg ICAgICAgfCBmICAgICAgICAgIHwganNvbmJfZmxvYXQ0ICB8IGZsb2F0NAoganNvbmIgICAgICB8 IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgMjU4MCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8 IGpzb25iX2Zsb2F0OCAgfCBmbG9hdDgKKDcgcm93cykKCkF1dGhvcjogamlhbiBoZSA8amlhbi51 bml2ZXJzYWxpdHlAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW11bCBTdWwgPHN1bGFtdWxAZ21h aWwuY29tPgpSZXZpZXdlZC1ieTogQ29yZXkgSHVpbmtlciA8Y29yZXkuaHVpbmtlckBnbWFpbC5j b20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3 d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCkNvbW1pdGZlc3Q6 IGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRjaC81OTQxCi0tLQogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2pzb25iLmMgfCA3NCArKysrKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDU4IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29uYi5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2pzb25iLmMKaW5kZXggMWIxYThmMzAxZjIuLjM5YWU1OWU5NzcyIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmIuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvanNvbmIuYwpAQCAtMTc4Niw3ICsxNzg2LDcgQEAgSnNvbmJFeHRyYWN0U2NhbGFy KEpzb25iQ29udGFpbmVyICpqYmMsIEpzb25iVmFsdWUgKnJlcykKICAqIEVtaXQgY29ycmVjdCwg dHJhbnNsYXRhYmxlIGNhc3QgZXJyb3IgbWVzc2FnZQogICovCiBzdGF0aWMgdm9pZAotY2Fubm90 Q2FzdEpzb25iVmFsdWUoZW51bSBqYnZUeXBlIHR5cGUsIGNvbnN0IGNoYXIgKnNxbHR5cGUpCitj YW5ub3RDYXN0SnNvbmJWYWx1ZShlbnVtIGpidlR5cGUgdHlwZSwgY29uc3QgY2hhciAqc3FsdHlw ZSwgTm9kZSAqZXNjb250ZXh0KQogewogCXN0YXRpYyBjb25zdCBzdHJ1Y3QKIAl7CkBAIC0xODA3 LDcgKzE4MDcsNyBAQCBjYW5ub3RDYXN0SnNvbmJWYWx1ZShlbnVtIGpidlR5cGUgdHlwZSwgY29u c3QgY2hhciAqc3FsdHlwZSkKIAogCWZvciAoaSA9IDA7IGkgPCBsZW5ndGhvZihtZXNzYWdlcyk7 IGkrKykKIAkJaWYgKG1lc3NhZ2VzW2ldLnR5cGUgPT0gdHlwZSkKLQkJCWVyZXBvcnQoRVJST1Is CisJCQllcmV0dXJuKGVzY29udGV4dCwsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9Q QVJBTUVURVJfVkFMVUUpLAogCQkJCQkgZXJybXNnKG1lc3NhZ2VzW2ldLm1zZywgc3FsdHlwZSkp KTsKIApAQCAtMTgyMiw3ICsxODIyLDEwIEBAIGpzb25iX2Jvb2woUEdfRlVOQ1RJT05fQVJHUykK IAlKc29uYlZhbHVlCXY7CiAKIAlpZiAoIUpzb25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2 KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAiYm9vbGVhbiIpOworCXsKKwkJY2Fu bm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAiYm9vbGVhbiIsIGZjaW5mby0+Y29udGV4dCk7CisJ CVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAg LTE4MzEsNyArMTgzNCwxMCBAQCBqc29uYl9ib29sKFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJ aWYgKHYudHlwZSAhPSBqYnZCb29sKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJi b29sZWFuIik7CisJeworCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJib29sZWFuIiwg ZmNpbmZvLT5jb250ZXh0KTsKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAKIAlQR19GUkVFX0lG X0NPUFkoaW4sIDApOwogCkBAIC0xODQ2LDcgKzE4NTIsMTAgQEAganNvbmJfbnVtZXJpYyhQR19G VU5DVElPTl9BUkdTKQogCU51bWVyaWMJCXJldFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RT Y2FsYXIoJmluLT5yb290LCAmdikpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgIm51 bWVyaWMiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMiLCBm Y2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCWlmICh2LnR5cGUg PT0gamJ2TnVsbCkKIAl7CkBAIC0xODU1LDcgKzE4NjQsMTAgQEAganNvbmJfbnVtZXJpYyhQR19G VU5DVElPTl9BUkdTKQogCX0KIAogCWlmICh2LnR5cGUgIT0gamJ2TnVtZXJpYykKLQkJY2Fubm90 Q2FzdEpzb25iVmFsdWUodi50eXBlLCAibnVtZXJpYyIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25i VmFsdWUodi50eXBlLCAibnVtZXJpYyIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9O VUxMKCk7CisJfQogCiAJLyoKIAkgKiB2LnZhbC5udW1lcmljIHBvaW50cyBpbnRvIGpzb25iIGJv ZHksIHNvIHdlIG5lZWQgdG8gbWFrZSBhIGNvcHkgdG8KQEAgLTE4NzYsNyArMTg4OCwxMCBAQCBq c29uYl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJRGF0dW0JCXJldFZhbHVlOwogCiAJaWYgKCFK c29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290LCAmdikpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVl KHYudHlwZSwgInNtYWxsaW50Iik7CisJeworCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUs ICJzbWFsbGludCIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQog CiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTE4ODUsNyArMTkwMCwxMCBAQCBqc29u Yl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYgKHYudHlwZSAhPSBqYnZOdW1lcmlj KQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJzbWFsbGludCIpOworCXsKKwkJY2Fu bm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAic21hbGxpbnQiLCBmY2luZm8tPmNvbnRleHQpOwor CQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxs MShudW1lcmljX2ludDIsCiAJCQkJCQkJCSAgIE51bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmlj KSk7CkBAIC0xOTAzLDcgKzE5MjEsMTAgQEAganNvbmJfaW50NChQR19GVU5DVElPTl9BUkdTKQog CURhdHVtCQlyZXRWYWx1ZTsKIAogCWlmICghSnNvbmJFeHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwg JnYpKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJpbnRlZ2VyIik7CisJeworCQlj YW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJpbnRlZ2VyIiwgZmNpbmZvLT5jb250ZXh0KTsK KwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAKIAlpZiAodi50eXBlID09IGpidk51bGwpCiAJewpA QCAtMTkxMiw3ICsxOTMzLDEwIEBAIGpzb25iX2ludDQoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAK IAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlw ZSwgImludGVnZXIiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImludGVn ZXIiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCXJldFZh bHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2ludDQsCiAJCQkJCQkJCSAgIE51bWVy aWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7CkBAIC0xOTMwLDcgKzE5NTQsMTAgQEAganNvbmJf aW50OChQR19GVU5DVElPTl9BUkdTKQogCURhdHVtCQlyZXRWYWx1ZTsKIAogCWlmICghSnNvbmJF eHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwgJnYpKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5 cGUsICJiaWdpbnQiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJpZ2lu dCIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYu dHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTE5MzksNyArMTk2NiwxMCBAQCBqc29uYl9pbnQ4KFBH X0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYgKHYudHlwZSAhPSBqYnZOdW1lcmljKQotCQljYW5u b3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJiaWdpbnQiKTsKKwl7CisJCWNhbm5vdENhc3RKc29u YlZhbHVlKHYudHlwZSwgImJpZ2ludCIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9O VUxMKCk7CisJfQogCiAJcmV0VmFsdWUgPSBEaXJlY3RGdW5jdGlvbkNhbGwxKG51bWVyaWNfaW50 OCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51bWVyaWMpKTsKQEAgLTE5NTcs NyArMTk4NywxMCBAQCBqc29uYl9mbG9hdDQoUEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0 VmFsdWU7CiAKIAlpZiAoIUpzb25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fu bm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAicmVhbCIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25i VmFsdWUodi50eXBlLCAicmVhbCIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxM KCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTE5NjYsNyArMTk5OSwx MCBAQCBqc29uYl9mbG9hdDQoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9 IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgInJlYWwiKTsKKwl7 CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgInJlYWwiLCBmY2luZm8tPmNvbnRleHQp OworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25D YWxsMShudW1lcmljX2Zsb2F0NCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51 bWVyaWMpKTsKQEAgLTE5ODQsNyArMjAyMCwxMCBAQCBqc29uYl9mbG9hdDgoUEdfRlVOQ1RJT05f QVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAKIAlpZiAoIUpzb25iRXh0cmFjdFNjYWxhcigmaW4t PnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAiZG91YmxlIHByZWNp c2lvbiIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAiZG91YmxlIHByZWNp c2lvbiIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYg KHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTE5OTMsNyArMjAzMiwxMCBAQCBqc29uYl9mbG9h dDgoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0J CWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImRvdWJsZSBwcmVjaXNpb24iKTsKKwl7CisJ CWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImRvdWJsZSBwcmVjaXNpb24iLCBmY2luZm8t PmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0 RnVuY3Rpb25DYWxsMShudW1lcmljX2Zsb2F0OCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERhdHVt KHYudmFsLm51bWVyaWMpKTsKLS0gCjIuMzQuMQoK --000000000000ed7e80064d704a27 Content-Type: text/x-patch; charset="US-ASCII"; name="v22-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v22-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmymiocl10 RnJvbSBjZWNmYjM3MDU1ZDk0ZmQxZGU1M2VjZmY1ZmI0ZDZmYmY4OWU4MjFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MTI6MjkgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MiAxNS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyB0aW1lc3RhbXB0eiB0byBvdGhlciB0eXBl cwogcGVyIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0Ojpy ZWd0eXBlLCBjYXN0ZnVuYywKICAgICAgIGNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3Ny YywgcHAucHJvbmFtZQpmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uIHBwLm9pZCA9 IHBjLmNhc3RmdW5jCmFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kIChjYXN0c291cmNlOjpyZWd0eXBl ID0ndGltZXN0YW1wdHonOjpyZWd0eXBlKQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoK ICAgICAgICBjYXN0c291cmNlICAgICAgICB8ICAgICAgICAgY2FzdHRhcmdldCAgICAgICAgICB8 IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgICAgIHByb3NyYyAgICAg ICAgIHwgICBwcm9uYW1lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQogdGltZXN0YW1wIHdpdGggdGltZSB6 b25lIHwgZGF0ZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIDExNzggfCBhICAgICAgICAg ICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXB0el9kYXRlICAgICAgfCBkYXRlCiB0aW1lc3RhbXAg d2l0aCB0aW1lIHpvbmUgfCB0aW1lIHdpdGhvdXQgdGltZSB6b25lICAgICAgfCAgICAgMjAxOSB8 IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRpbWVzdGFtcHR6X3RpbWUgICAgICB8IHRpbWUK IHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSB8IHRpbWVzdGFtcCB3aXRob3V0IHRpbWUgem9uZSB8 ICAgICAyMDI3IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wdHpfdGltZXN0 YW1wIHwgdGltZXN0YW1wCiB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUgfCB0aW1lIHdpdGggdGlt ZSB6b25lICAgICAgICAgfCAgICAgMTM4OCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRp bWVzdGFtcHR6X3RpbWV0eiAgICB8IHRpbWV0egogdGltZXN0YW1wIHdpdGggdGltZSB6b25lIHwg dGltZXN0YW1wIHdpdGggdGltZSB6b25lICAgIHwgICAgIDE5NjcgfCBpICAgICAgICAgICB8IGYg ICAgICAgICAgfCB0aW1lc3RhbXB0el9zY2FsZSAgICAgfCB0aW1lc3RhbXB0egooNSByb3dzKQoK QXV0aG9yOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ClJldmlld2VkLWJ5 OiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBDb3JleSBIdWlua2Vy IDxjb3JleS5odWlua2VyQGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMv bS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFp bC5nbWFpbC5jb20KQ29tbWl0ZmVzdDogaHR0cHM6Ly9jb21taXRmZXN0LnBvc3RncmVzcWwub3Jn L3BhdGNoLzU5NDEKLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jICAgICAgfCAgOSAr KysrKystLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYyB8IDEwICsrKysrKysr LS0KIDIgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2RhdGUuYwppbmRleCA0ODcyMTRiODVmNi4uZTA1MmU1YjJlODUgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2RhdGUuYwpAQCAtMTM5OCw3ICsxMzk4LDEwIEBAIHRpbWVzdGFtcHR6X2RhdGUoUEdfRlVOQ1RJ T05fQVJHUykKIAlUaW1lc3RhbXBUeiB0aW1lc3RhbXAgPSBQR19HRVRBUkdfVElNRVNUQU1QKDAp OwogCURhdGVBRFQJCXJlc3VsdDsKIAotCXJlc3VsdCA9IHRpbWVzdGFtcHR6MmRhdGVfc2FmZSh0 aW1lc3RhbXAsIE5VTEwpOworCXJlc3VsdCA9IHRpbWVzdGFtcHR6MmRhdGVfc2FmZSh0aW1lc3Rh bXAsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5h cmdzKSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwogCVBHX1JFVFVSTl9EQVRFQURUKHJlc3VsdCk7 CiB9CiAKQEAgLTIwMjgsNyArMjAzMSw3IEBAIHRpbWVzdGFtcHR6X3RpbWUoUEdfRlVOQ1RJT05f QVJHUykKIAkJUEdfUkVUVVJOX05VTEwoKTsKIAogCWlmICh0aW1lc3RhbXAydG0odGltZXN0YW1w LCAmdHosIHRtLCAmZnNlYywgTlVMTCwgTlVMTCkgIT0gMCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJ ZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RF X0RBVEVUSU1FX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygidGltZXN0YW1wIG91 dCBvZiByYW5nZSIpKSk7CiAKQEAgLTI5NDcsNyArMjk1MCw3IEBAIHRpbWVzdGFtcHR6X3RpbWV0 eihQR19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJaWYgKHRpbWVzdGFt cDJ0bSh0aW1lc3RhbXAsICZ0eiwgdG0sICZmc2VjLCBOVUxMLCBOVUxMKSAhPSAwKQotCQllcmVw b3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShl cnJjb2RlKEVSUkNPREVfREFURVRJTUVfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNn KCJ0aW1lc3RhbXAgb3V0IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3RpbWVzdGFtcC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5j CmluZGV4IDNiMDljMmY5ODQ5Li5kZWFiZjg1OTU1YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3RpbWVzdGFtcC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3Rh bXAuYwpAQCAtODY2LDcgKzg2Niw4IEBAIHRpbWVzdGFtcHR6X3NjYWxlKFBHX0ZVTkNUSU9OX0FS R1MpCiAKIAlyZXN1bHQgPSB0aW1lc3RhbXA7CiAKLQlBZGp1c3RUaW1lc3RhbXBGb3JUeXBtb2Qo JnJlc3VsdCwgdHlwbW9kLCBOVUxMKTsKKwlpZiAoIUFkanVzdFRpbWVzdGFtcEZvclR5cG1vZCgm cmVzdWx0LCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAK IAlQR19SRVRVUk5fVElNRVNUQU1QVFoocmVzdWx0KTsKIH0KQEAgLTY0ODUsOCArNjQ4NiwxMyBA QCBEYXR1bQogdGltZXN0YW1wdHpfdGltZXN0YW1wKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJVGlt ZXN0YW1wVHogdGltZXN0YW1wID0gUEdfR0VUQVJHX1RJTUVTVEFNUFRaKDApOworCVRpbWVzdGFt cAlyZXN1bHQ7CiAKLQlQR19SRVRVUk5fVElNRVNUQU1QKHRpbWVzdGFtcHR6MnRpbWVzdGFtcCh0 aW1lc3RhbXApKTsKKwlyZXN1bHQgPSB0aW1lc3RhbXB0ejJ0aW1lc3RhbXBfc2FmZSh0aW1lc3Rh bXAsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKHVubGlrZWx5KFNPRlRfRVJST1JfT0NDVVJSRUQo ZmNpbmZvLT5jb250ZXh0KSkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fVElN RVNUQU1QKHJlc3VsdCk7CiB9CiAKIC8qCi0tIAoyLjM0LjEKCg== --000000000000ed7e80064d704a27 Content-Type: text/x-patch; charset="US-ASCII"; name="v22-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v22-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmymiocs12 RnJvbSAxZmY4ZjEzMWJmNmRjZmNjZjRkMWI3Y2I1ZmNiZWY0YzA2OGViY2Y2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MTA6MTIgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MiAxMy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBkYXRlIHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2RhdGUnOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgpjYXN0c291cmNlIHwgICAgICAgICBj YXN0dGFyZ2V0ICAgICAgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2Qg fCAgICAgIHByb3NyYyAgICAgIHwgICBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCiBkYXRlICAgICAgIHwgdGltZXN0YW1wIHdp dGhvdXQgdGltZSB6b25lIHwgICAgIDIwMjQgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBk YXRlX3RpbWVzdGFtcCAgIHwgdGltZXN0YW1wCiBkYXRlICAgICAgIHwgdGltZXN0YW1wIHdpdGgg dGltZSB6b25lICAgIHwgICAgIDExNzQgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCBkYXRl X3RpbWVzdGFtcHR6IHwgdGltZXN0YW1wdHoKKDIgcm93cykKCkF1dGhvcjogamlhbiBoZSA8amlh bi51bml2ZXJzYWxpdHlAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW11bCBTdWwgPHN1bGFtdWxA Z21haWwuY29tPgpSZXZpZXdlZC1ieTogQ29yZXkgSHVpbmtlciA8Y29yZXkuaHVpbmtlckBnbWFp bC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEt amN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCkNvbW1pdGZl c3Q6IGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRjaC81OTQxCi0tLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYyB8IDE3ICsrKysrKy0tLS0tLS0tLS0tCiAxIGZpbGUg Y2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAxMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUu YwppbmRleCA4N2MwNjNmYTBjZC4uM2MwNWFiZDJjMTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9kYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwpAQCAt NzIyLDE1ICs3MjIsNiBAQCBkYXRlMnRpbWVzdGFtcHR6X3NhZmUoRGF0ZUFEVCBkYXRlVmFsLCBO b2RlICplc2NvbnRleHQpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAotLyoKLSAqIFByb21vdGUgZGF0 ZSB0byB0aW1lc3RhbXB0eiwgdGhyb3dpbmcgZXJyb3IgZm9yIG92ZXJmbG93LgotICovCi1zdGF0 aWMgVGltZXN0YW1wVHoKLWRhdGUydGltZXN0YW1wdHooRGF0ZUFEVCBkYXRlVmFsKQotewotCXJl dHVybiBkYXRlMnRpbWVzdGFtcHR6X3NhZmUoZGF0ZVZhbCwgTlVMTCk7Ci19Ci0KIC8qCiAgKiBk YXRlMnRpbWVzdGFtcF9ub19vdmVyZmxvdwogICoKQEAgLTEzMTUsNyArMTMwNiw5IEBAIGRhdGVf dGltZXN0YW1wKFBHX0ZVTkNUSU9OX0FSR1MpCiAJRGF0ZUFEVAkJZGF0ZVZhbCA9IFBHX0dFVEFS R19EQVRFQURUKDApOwogCVRpbWVzdGFtcAlyZXN1bHQ7CiAKLQlyZXN1bHQgPSBkYXRlMnRpbWVz dGFtcChkYXRlVmFsKTsKKwlyZXN1bHQgPSBkYXRlMnRpbWVzdGFtcF9zYWZlKGRhdGVWYWwsIGZj aW5mby0+Y29udGV4dCk7CisJaWYoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQp KQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJUEdfUkVUVVJOX1RJTUVTVEFNUChyZXN1bHQpOwog fQpAQCAtMTM4OCw3ICsxMzgxLDkgQEAgZGF0ZV90aW1lc3RhbXB0eihQR19GVU5DVElPTl9BUkdT KQogCURhdGVBRFQJCWRhdGVWYWwgPSBQR19HRVRBUkdfREFURUFEVCgwKTsKIAlUaW1lc3RhbXBU eiByZXN1bHQ7CiAKLQlyZXN1bHQgPSBkYXRlMnRpbWVzdGFtcHR6KGRhdGVWYWwpOworCXJlc3Vs dCA9IGRhdGUydGltZXN0YW1wdHpfc2FmZShkYXRlVmFsLCBmY2luZm8tPmNvbnRleHQpOworCWlm IChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxM KCk7CiAKIAlQR19SRVRVUk5fVElNRVNUQU1QKHJlc3VsdCk7CiB9Ci0tIAoyLjM0LjEKCg== --000000000000ed7e80064d704a27 Content-Type: text/x-patch; charset="US-ASCII"; name="v22-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v22-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmymiocv13 RnJvbSBmMTAzZDVlZmM0NjdjMmEyYjJkYjMxNTMwNWE1ODdjMDk2NzM1MDljIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MDk6MTcgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MiAxMi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBmbG9hdDggdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZmxvYXQ4Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKICAgIGNhc3Rzb3VyY2UgICAg fCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAg cHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiBkb3VibGUgcHJlY2lzaW9uIHwgYmlnaW50ICAgICB8ICAgICAgNDgzIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgZHRvaTggICAgICAgICAgfCBpbnQ4CiBkb3VibGUgcHJlY2lzaW9u IHwgc21hbGxpbnQgICB8ICAgICAgMjM3IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZHRv aTIgICAgICAgICAgfCBpbnQyCiBkb3VibGUgcHJlY2lzaW9uIHwgaW50ZWdlciAgICB8ICAgICAg MzE3IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZHRvaTQgICAgICAgICAgfCBpbnQ0CiBk b3VibGUgcHJlY2lzaW9uIHwgcmVhbCAgICAgICB8ICAgICAgMzEyIHwgYSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgZHRvZiAgICAgICAgICAgfCBmbG9hdDQKIGRvdWJsZSBwcmVjaXNpb24gfCBu dW1lcmljICAgIHwgICAgIDE3NDMgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBmbG9hdDhf bnVtZXJpYyB8IG51bWVyaWMKKDUgcm93cykKCkF1dGhvcjogamlhbiBoZSA8amlhbi51bml2ZXJz YWxpdHlAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW11bCBTdWwgPHN1bGFtdWxAZ21haWwuY29t PgpSZXZpZXdlZC1ieTogQ29yZXkgSHVpbmtlciA8Y29yZXkuaHVpbmtlckBnbWFpbC5jb20+CkRp c2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFp eE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCkNvbW1pdGZlc3Q6IGh0dHBz Oi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRjaC81OTQxCi0tLQogc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2Zsb2F0LmMgICB8IDEzICsrKysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL3V0aWxz L2FkdC9pbnQ4LmMgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYyB8 ICAzICsrLQogMyBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2Zsb2F0LmMKaW5kZXggMWI0MDA2ZmQ1MGEuLjQ0MjNiNzI0ZjlmIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvZmxvYXQuYwpAQCAtMTIxNiw5ICsxMjE2LDE0IEBAIGR0b2YoUEdfRlVOQ1RJT05f QVJHUykKIAogCXJlc3VsdCA9IChmbG9hdDQpIG51bTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVz dWx0KSkgJiYgIWlzaW5mKG51bSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWVyZXR1 cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCisJCQkJZXJyY29kZShFUlJDT0RFX05VTUVS SUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKKwkJCQllcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTog b3ZlcmZsb3ciKSk7CisKIAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMGYpICYmIG51bSAhPSAw LjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQllcmV0dXJuKGZjaW5mby0+Y29udGV4 dCwgKERhdHVtKSAwLAorCQkJCWVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9S QU5HRSksCisJCQkJZXJybXNnKCJ2YWx1ZSBvdXQgb2YgcmFuZ2U6IHVuZGVyZmxvdyIpKTsKIAog CVBHX1JFVFVSTl9GTE9BVDQocmVzdWx0KTsKIH0KQEAgLTEyNDEsNyArMTI0Niw3IEBAIGR0b2k0 KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShp c25hbihudW0pIHx8ICFGTE9BVDhfRklUU19JTl9JTlQzMihudW0pKSkKLQkJZXJlcG9ydChFUlJP UiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShF UlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnRlZ2Vy IG91dCBvZiByYW5nZSIpKSk7CiAKQEAgLTEyNjYsNyArMTI3MSw3IEBAIGR0b2kyKFBHX0ZVTkNU SU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0p IHx8ICFGTE9BVDhfRklUU19JTl9JTlQxNihudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJl dHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05V TUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJzbWFsbGludCBvdXQgb2Yg cmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYwppbmRleCA4ZmQ1NTFiZDUyYi4uMTliYjMwZjJk MGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2ludDguYwpAQCAtMTMwNyw3ICsxMzA3LDcgQEAgZHRvaTgoUEdfRlVO Q1RJT05fQVJHUykKIAogCS8qIFJhbmdlIGNoZWNrICovCiAJaWYgKHVubGlrZWx5KGlzbmFuKG51 bSkgfHwgIUZMT0FUOF9GSVRTX0lOX0lOVDY0KG51bSkpKQotCQllcmVwb3J0KEVSUk9SLAorCQll cmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVf TlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coImJpZ2ludCBvdXQgb2Yg cmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYwppbmRleCA5MTYwNTMwMDdlYS4uNWMy ZTEyZmU3OGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKKysr IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYwpAQCAtNDU1OSw3ICs0NTU5LDggQEAg ZmxvYXQ4X251bWVyaWMoUEdfRlVOQ1RJT05fQVJHUykKIAlpbml0X3ZhcigmcmVzdWx0KTsKIAog CS8qIEFzc3VtZSB3ZSBuZWVkIG5vdCB3b3JyeSBhYm91dCBsZWFkaW5nL3RyYWlsaW5nIHNwYWNl cyAqLwotCSh2b2lkKSBzZXRfdmFyX2Zyb21fc3RyKGJ1ZiwgYnVmLCAmcmVzdWx0LCAmZW5kcHRy LCBOVUxMKTsKKwlpZiAoIXNldF92YXJfZnJvbV9zdHIoYnVmLCBidWYsICZyZXN1bHQsICZlbmRw dHIsIGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlyZXMgPSBtYWtl X3Jlc3VsdCgmcmVzdWx0KTsKIAotLSAKMi4zNC4xCgo= --000000000000ed7e80064d704a27 Content-Type: text/x-patch; charset="US-ASCII"; name="v22-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v22-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmymiocq11 RnJvbSAxMWJkZTkzZGUyNGM2NjJjY2EzYWY2YTBiNzQ1YzVmOTU3ZTE2Yjk1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MTE6MTMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MiAxNC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbnRlcnZhbCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9u YW1lIGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1 bmMgYW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdpbnRlcnZh bCc6OnJlZ3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwg ICAgICAgY2FzdHRhcmdldCAgICAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0 aG9kIHwgICAgIHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KIGludGVydmFsICAgfCB0aW1lIHdpdGhvdXQgdGltZSB6b25l IHwgICAgIDE0MTkgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnRlcnZhbF90aW1lICB8 IHRpbWUKIGludGVydmFsICAgfCBpbnRlcnZhbCAgICAgICAgICAgICAgIHwgICAgIDEyMDAgfCBp ICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnRlcnZhbF9zY2FsZSB8IGludGVydmFsCigyIHJv d3MpCgpBdXRob3I6IGppYW4gaGUgPGppYW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2aWV3 ZWQtYnk6IEFtdWwgU3VsIDxzdWxhbXVsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENvcmV5IEh1 aW5rZXIgPGNvcmV5Lmh1aW5rZXJAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rn ci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRo UUBtYWlsLmdtYWlsLmNvbQpDb21taXRmZXN0OiBodHRwczovL2NvbW1pdGZlc3QucG9zdGdyZXNx bC5vcmcvcGF0Y2gvNTk0MQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMgICAgICB8 IDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYyB8IDMgKystCiAyIGZpbGVz IGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUu YwppbmRleCAzYzA1YWJkMmMxNC4uNDg3MjE0Yjg1ZjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9kYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwpAQCAt MjA5OCw3ICsyMDk4LDcgQEAgaW50ZXJ2YWxfdGltZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVB RFQJCXJlc3VsdDsKIAogCWlmIChJTlRFUlZBTF9OT1RfRklOSVRFKHNwYW4pKQotCQllcmVwb3J0 KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJj b2RlKEVSUkNPREVfREFURVRJTUVfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJj YW5ub3QgY29udmVydCBpbmZpbml0ZSBpbnRlcnZhbCB0byB0aW1lIikpKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3RpbWVzdGFtcC5jCmluZGV4IDUwYTczZmQyNGVjLi4zYjA5YzJmOTg0OSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC90aW1lc3RhbXAuYwpAQCAtMTMyNSw3ICsxMzI1LDggQEAgaW50ZXJ2YWxfc2NhbGUo UEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSBwYWxsb2Nfb2JqZWN0KEludGVydmFsKTsKIAkq cmVzdWx0ID0gKmludGVydmFsOwogCi0JQWRqdXN0SW50ZXJ2YWxGb3JUeXBtb2QocmVzdWx0LCB0 eXBtb2QsIE5VTEwpOworCWlmICghQWRqdXN0SW50ZXJ2YWxGb3JUeXBtb2QocmVzdWx0LCB0eXBt b2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5f SU5URVJWQUxfUChyZXN1bHQpOwogfQotLSAKMi4zNC4xCgo= --000000000000ed7e80064d704a27 Content-Type: text/x-patch; charset="US-ASCII"; name="v22-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v22-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmymiocz14 RnJvbSBiNGM0MDliMzI5ZTA2MzMxYmYzYjg3N2QxNjNhOWExZWZlOTA2OWY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MDY6NDUgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MiAxMS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBmbG9hdDQgdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZmxvYXQ0Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBj YXN0dGFyZ2V0ICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAg cHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiByZWFsICAgICAgIHwgYmlnaW50ICAgICAgICAgICB8ICAgICAgNjUzIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgZnRvaTggICAgICAgICAgfCBpbnQ4CiByZWFsICAgICAgIHwgc21h bGxpbnQgICAgICAgICB8ICAgICAgMjM4IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZnRv aTIgICAgICAgICAgfCBpbnQyCiByZWFsICAgICAgIHwgaW50ZWdlciAgICAgICAgICB8ICAgICAg MzE5IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZnRvaTQgICAgICAgICAgfCBpbnQ0CiBy ZWFsICAgICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgMzExIHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgZnRvZCAgICAgICAgICAgfCBmbG9hdDgKIHJlYWwgICAgICAgfCBudW1lcmlj ICAgICAgICAgIHwgICAgIDE3NDIgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBmbG9hdDRf bnVtZXJpYyB8IG51bWVyaWMKKDUgcm93cykKCkF1dGhvcjogamlhbiBoZSA8amlhbi51bml2ZXJz YWxpdHlAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW11bCBTdWwgPHN1bGFtdWxAZ21haWwuY29t PgpSZXZpZXdlZC1ieTogQ29yZXkgSHVpbmtlciA8Y29yZXkuaHVpbmtlckBnbWFpbC5jb20+CkRp c2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFp eE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCkNvbW1pdGZlc3Q6IGh0dHBz Oi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRjaC81OTQxCi0tLQogc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2Zsb2F0LmMgICB8IDQgKystLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YyAgICB8IDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMgfCAzICsrLQogMyBm aWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQv ZmxvYXQuYwppbmRleCBmNzdmNzM4MjBkNy4uMWI0MDA2ZmQ1MGEgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9h dC5jCkBAIC0xMzE1LDcgKzEzMTUsNyBAQCBmdG9pNChQR19GVU5DVElPTl9BUkdTKQogCiAJLyog UmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtlbHkoaXNuYW4obnVtKSB8fCAhRkxPQVQ0X0ZJVFNf SU5fSU5UMzIobnVtKSkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250 ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9P Rl9SQU5HRSksCiAJCQkJIGVycm1zZygiaW50ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOwogCkBAIC0x MzQwLDcgKzEzNDAsNyBAQCBmdG9pMihQR19GVU5DVElPTl9BUkdTKQogCiAJLyogUmFuZ2UgY2hl Y2sgKi8KIAlpZiAodW5saWtlbHkoaXNuYW4obnVtKSB8fCAhRkxPQVQ0X0ZJVFNfSU5fSU5UMTYo bnVtKSkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0 dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSks CiAJCQkJIGVycm1zZygic21hbGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4 LmMKaW5kZXggZGEzOTIxODk3NDMuLjhmZDU1MWJkNTJiIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvaW50OC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAg LTEzNDIsNyArMTM0Miw3IEBAIGZ0b2k4KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBj aGVjayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDRfRklUU19JTl9JTlQ2 NChudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChE YXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdF KSwKIAkJCQkgZXJybXNnKCJiaWdpbnQgb3V0IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9u dW1lcmljLmMKaW5kZXggZDY2ZmI4NjY2MmYuLjkxNjA1MzAwN2VhIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9u dW1lcmljLmMKQEAgLTQ2NTcsNyArNDY1Nyw4IEBAIGZsb2F0NF9udW1lcmljKFBHX0ZVTkNUSU9O X0FSR1MpCiAJaW5pdF92YXIoJnJlc3VsdCk7CiAKIAkvKiBBc3N1bWUgd2UgbmVlZCBub3Qgd29y cnkgYWJvdXQgbGVhZGluZy90cmFpbGluZyBzcGFjZXMgKi8KLQkodm9pZCkgc2V0X3Zhcl9mcm9t X3N0cihidWYsIGJ1ZiwgJnJlc3VsdCwgJmVuZHB0ciwgTlVMTCk7CisJaWYgKCFzZXRfdmFyX2Zy b21fc3RyKGJ1ZiwgYnVmLCAmcmVzdWx0LCAmZW5kcHRyLCBmY2luZm8tPmNvbnRleHQpKQorCQlQ R19SRVRVUk5fTlVMTCgpOwogCiAJcmVzID0gbWFrZV9yZXN1bHQoJnJlc3VsdCk7CiAKLS0gCjIu MzQuMQoK --000000000000ed7e80064d704a27 Content-Type: text/x-patch; charset="US-ASCII"; name="v22-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v22-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmymiod215 RnJvbSAxNDI3MTZhN2IyMTNhYTBjNWIzZjNlOWQwOGFmMzQxODFmYjFjMDg4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MDM6NTggKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MiAwOS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBiaWdpbnQgdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnYmlnaW50Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBj YXN0dGFyZ2V0ICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBw cm9zcmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0K IGJpZ2ludCAgICAgfCBzbWFsbGludCAgICAgICAgIHwgICAgICA3MTQgfCBhICAgICAgICAgICB8 IGYgICAgICAgICAgfCBpbnQ4MiAgICAgICAgfCBpbnQyCiBiaWdpbnQgICAgIHwgaW50ZWdlciAg ICAgICAgICB8ICAgICAgNDgwIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaW50ODQgICAg ICAgIHwgaW50NAogYmlnaW50ICAgICB8IHJlYWwgICAgICAgICAgICAgfCAgICAgIDY1MiB8IGkg ICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9mICAgICAgICB8IGZsb2F0NAogYmlnaW50ICAg ICB8IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgIDQ4MiB8IGkgICAgICAgICAgIHwgZiAgICAgICAg ICB8IGk4dG9kICAgICAgICB8IGZsb2F0OAogYmlnaW50ICAgICB8IG51bWVyaWMgICAgICAgICAg fCAgICAgMTc4MSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDhfbnVtZXJpYyB8IG51 bWVyaWMKIGJpZ2ludCAgICAgfCBtb25leSAgICAgICAgICAgIHwgICAgIDM4MTIgfCBhICAgICAg ICAgICB8IGYgICAgICAgICAgfCBpbnQ4X2Nhc2ggICAgfCBtb25leQogYmlnaW50ICAgICB8IG9p ZCAgICAgICAgICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4 dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ3Byb2MgICAgICAgICAgfCAgICAgMTI4 NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50 ICAgICB8IHJlZ3Byb2NlZHVyZSAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAg ICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ29wZXIgICAgICAgICAg fCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9p ZAogYmlnaW50ICAgICB8IHJlZ29wZXJhdG9yICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAg IHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2NsYXNz ICAgICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQg ICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2NvbGxhdGlvbiAgICAgfCAgICAgMTI4NyB8IGkg ICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8 IHJlZ3R5cGUgICAgICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8 IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2NvbmZpZyAgICAgICAgfCAgICAg MTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmln aW50ICAgICB8IHJlZ2RpY3Rpb25hcnkgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAg ICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ3JvbGUgICAgICAg ICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8 IG9pZAogYmlnaW50ICAgICB8IHJlZ25hbWVzcGFjZSAgICAgfCAgICAgMTI4NyB8IGkgICAgICAg ICAgIHwgZiAgICAgICAgICB8IGk4dG9vaWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IHJlZ2Rh dGFiYXNlICAgICAgfCAgICAgMTI4NyB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGk4dG9v aWQgICAgICB8IG9pZAogYmlnaW50ICAgICB8IGJ5dGVhICAgICAgICAgICAgfCAgICAgNjM2OSB8 IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDhfYnl0ZWEgICB8IGJ5dGVhCiBiaWdpbnQg ICAgIHwgYml0ICAgICAgICAgICAgICB8ICAgICAyMDc1IHwgZSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgYml0ZnJvbWludDggIHwgYml0CigyMSByb3dzKQoKYWxyZWFkeSBlcnJvciBzYWZlOiBp OHRvZiwgaTh0b2QsIGludDhfbnVtZXJpYywgaW50OF9ieXRlYSwgYml0ZnJvbWludDgKCkF1dGhv cjogamlhbiBoZSA8amlhbi51bml2ZXJzYWxpdHlAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW11 bCBTdWwgPHN1bGFtdWxAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQ29yZXkgSHVpbmtlciA8Y29y ZXkuaHVpbmtlckBnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FE a0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21h aWwuY29tCkNvbW1pdGZlc3Q6IGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRj aC81OTQxCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYyB8IDYgKysrLS0tCiAxIGZp bGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50 OC5jCmluZGV4IDZjOGZiN2I3Mjc1Li5kYTM5MjE4OTc0MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2ludDguYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCkBA IC0xMjUxLDcgKzEyNTEsNyBAQCBpbnQ4NChQR19GVU5DVElPTl9BUkdTKQogCWludDY0CQlhcmcg PSBQR19HRVRBUkdfSU5UNjQoMCk7CiAKIAlpZiAodW5saWtlbHkoYXJnIDwgUEdfSU5UMzJfTUlO KSB8fCB1bmxpa2VseShhcmcgPiBQR19JTlQzMl9NQVgpKQotCQllcmVwb3J0KEVSUk9SLAorCQll cmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVf TlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coImludGVnZXIgb3V0IG9m IHJhbmdlIikpKTsKIApAQCAtMTI3Miw3ICsxMjcyLDcgQEAgaW50ODIoUEdfRlVOQ1RJT05fQVJH UykKIAlpbnQ2NAkJYXJnID0gUEdfR0VUQVJHX0lOVDY0KDApOwogCiAJaWYgKHVubGlrZWx5KGFy ZyA8IFBHX0lOVDE2X01JTikgfHwgdW5saWtlbHkoYXJnID4gUEdfSU5UMTZfTUFYKSkKLQkJZXJl cG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQko ZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNn KCJzbWFsbGludCBvdXQgb2YgcmFuZ2UiKSkpOwogCkBAIC0xMzU1LDcgKzEzNTUsNyBAQCBpOHRv b2lkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW50NjQJCWFyZyA9IFBHX0dFVEFSR19JTlQ2NCgwKTsK IAogCWlmICh1bmxpa2VseShhcmcgPCAwKSB8fCB1bmxpa2VseShhcmcgPiBQR19VSU5UMzJfTUFY KSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkg MCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJ CQkgZXJybXNnKCJPSUQgb3V0IG9mIHJhbmdlIikpKTsKIAotLSAKMi4zNC4xCgo= --000000000000ed7e80064d704a27 Content-Type: text/x-patch; charset="US-ASCII"; name="v22-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v22-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmymiodb18 RnJvbSBjMGI5YzhhMWY0ZjJmNTMzMTlkMDkwODU5ZDBlODg0MWRiNzEwMDg5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMDk6NTc6MDEgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MiAwNi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbmV0IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2luZXQnOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAgIGNhc3R0 YXJnZXQgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBwcm9z cmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCiBp bmV0ICAgICAgIHwgY2lkciAgICAgICAgICAgICAgfCAgICAgMTcxNSB8IGEgICAgICAgICAgIHwg ZiAgICAgICAgICB8IGluZXRfdG9fY2lkciB8IGNpZHIKIGluZXQgICAgICAgfCB0ZXh0ICAgICAg ICAgICAgICB8ICAgICAgNzMwIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbmV0d29ya19z aG93IHwgdGV4dAogaW5ldCAgICAgICB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgICAgICA3MzAgfCBh ICAgICAgICAgICB8IGYgICAgICAgICAgfCBuZXR3b3JrX3Nob3cgfCB0ZXh0CiBpbmV0ICAgICAg IHwgY2hhcmFjdGVyICAgICAgICAgfCAgICAgIDczMCB8IGEgICAgICAgICAgIHwgZiAgICAgICAg ICB8IG5ldHdvcmtfc2hvdyB8IHRleHQKKDQgcm93cykKCmluZXRfdG9fY2lkciBpcyBhbHJlYWR5 IGVycm9yIHNhZmUuCgpBdXRob3I6IGppYW4gaGUgPGppYW4udW5pdmVyc2FsaXR5QGdtYWlsLmNv bT4KUmV2aWV3ZWQtYnk6IEFtdWwgU3VsIDxzdWxhbXVsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6 IENvcmV5IEh1aW5rZXIgPGNvcmV5Lmh1aW5rZXJAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRw czovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6 X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQpDb21taXRmZXN0OiBodHRwczovL2NvbW1pdGZlc3Qu cG9zdGdyZXNxbC5vcmcvcGF0Y2gvNTk0MQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9uZXR3 b3JrLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24o LSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbmV0d29yay5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYwppbmRleCAzYTIwMDIwOTdkZC4uYzdlMDgyODc2NGUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9uZXR3b3JrLmMKKysrIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYwpAQCAtMTEzNyw3ICsxMTM3LDcgQEAgbmV0d29ya19z aG93KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlpZiAocGdfaW5ldF9uZXRfbnRvcChpcF9mYW1pbHko aXApLCBpcF9hZGRyKGlwKSwgaXBfbWF4Yml0cyhpcCksCiAJCQkJCQkgdG1wLCBzaXplb2YodG1w KSkgPT0gTlVMTCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQs IChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfQklOQVJZX1JFUFJFU0VO VEFUSU9OKSwKIAkJCQkgZXJybXNnKCJjb3VsZCBub3QgZm9ybWF0IGluZXQgdmFsdWU6ICVtIikp KTsKIAotLSAKMi4zNC4xCgo= --000000000000ed7e80064d704a27 Content-Type: text/x-patch; charset="US-ASCII"; name="v22-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v22-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmymiod917 RnJvbSAwZjY3ZmI1OWZhZDE1NzBmNDQ3YjZhZWU5MjM2Yzg4ZTlkNzcxZTAxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMDk6NTc6NDkgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MiAwNy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBtYWNhZGRyOCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9u YW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1 bmMKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9J21hY2FkZHI4 Jzo6cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBj YXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAgIHBy b3NyYyAgICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t CiBtYWNhZGRyOCAgIHwgbWFjYWRkciAgICB8ICAgICA0MTI0IHwgaSAgICAgICAgICAgfCBmICAg ICAgICAgIHwgbWFjYWRkcjh0b21hY2FkZHIgfCBtYWNhZGRyCigxIHJvdykKCkF1dGhvcjogamlh biBoZSA8amlhbi51bml2ZXJzYWxpdHlAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW11bCBTdWwg PHN1bGFtdWxAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQ29yZXkgSHVpbmtlciA8Y29yZXkuaHVp bmtlckBnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2 MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29t CkNvbW1pdGZlc3Q6IGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRjaC81OTQx Ci0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L21hYzguYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2Vk LCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9tYWM4LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvbWFjOC5jCmluZGV4IGMx YmY5ZmQ1NzgzLi4wNDI1ZWE0NzNhNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L21hYzguYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvbWFjOC5jCkBAIC01NTAsNyArNTUw LDcgQEAgbWFjYWRkcjh0b21hY2FkZHIoUEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSBwYWxs b2MwX29iamVjdChtYWNhZGRyKTsKIAogCWlmICgoYWRkci0+ZCAhPSAweEZGKSB8fCAoYWRkci0+ ZSAhPSAweEZFKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQs IChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JB TkdFKSwKIAkJCQkgZXJybXNnKCJtYWNhZGRyOCBkYXRhIG91dCBvZiByYW5nZSB0byBjb252ZXJ0 IHRvIG1hY2FkZHIiKSwKIAkJCQkgZXJyaGludCgiT25seSBhZGRyZXNzZXMgdGhhdCBoYXZlIEZG IGFuZCBGRSBhcyB2YWx1ZXMgaW4gdGhlICIKLS0gCjIuMzQuMQoK --000000000000ed7e80064d704a27 Content-Type: text/x-patch; charset="US-ASCII"; name="v22-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v22-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmymiod616 RnJvbSAxYjRjNWRiYzg3NTgyNmE0Njg3NDVmNmU5MWZhZGU1ZDY3M2ZlNGZiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMDk6NTk6MjQgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MiAwOC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbnRlZ2VyIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2ludGVnZXIn OjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAg IGNhc3R0YXJnZXQgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAg IHByb3NyYyAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LQogaW50ZWdlciAgICB8IGJpZ2ludCAgICAgICAgICAgfCAgICAgIDQ4MSB8IGkgICAgICAgICAg IHwgZiAgICAgICAgICB8IGludDQ4ICAgICAgICB8IGludDgKIGludGVnZXIgICAgfCBzbWFsbGlu dCAgICAgICAgIHwgICAgICAzMTQgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBpNHRvaTIg ICAgICAgfCBpbnQyCiBpbnRlZ2VyICAgIHwgcmVhbCAgICAgICAgICAgICB8ICAgICAgMzE4IHwg aSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaTR0b2YgICAgICAgIHwgZmxvYXQ0CiBpbnRlZ2Vy ICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgMzE2IHwgaSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgaTR0b2QgICAgICAgIHwgZmxvYXQ4CiBpbnRlZ2VyICAgIHwgbnVtZXJpYyAgICAgICAg ICB8ICAgICAxNzQwIHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaW50NF9udW1lcmljIHwg bnVtZXJpYwogaW50ZWdlciAgICB8IG1vbmV5ICAgICAgICAgICAgfCAgICAgMzgxMSB8IGEgICAg ICAgICAgIHwgZiAgICAgICAgICB8IGludDRfY2FzaCAgICB8IG1vbmV5CiBpbnRlZ2VyICAgIHwg Ym9vbGVhbiAgICAgICAgICB8ICAgICAyNTU3IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwg aW50NF9ib29sICAgIHwgYm9vbAogaW50ZWdlciAgICB8IGJ5dGVhICAgICAgICAgICAgfCAgICAg NjM2OCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDRfYnl0ZWEgICB8IGJ5dGVhCiBp bnRlZ2VyICAgIHwgImNoYXIiICAgICAgICAgICB8ICAgICAgIDc4IHwgZSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgaTR0b2NoYXIgICAgIHwgY2hhcgogaW50ZWdlciAgICB8IGJpdCAgICAgICAg ICAgICAgfCAgICAgMTY4MyB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdGZyb21pbnQ0 ICB8IGJpdAooMTAgcm93cykKCm9ubHkgaW50NF9jYXNoLCBpNHRvaTIsIGk0dG9jaGFyIG5lZWQg dGFrZSBjYXJlIG9mIGVycm9yIGhhbmRsaW5nLiAgYnV0IHN1cHBvcnQKZm9yIGNhc2ggZGF0YSB0 eXBlIGlzIG5vdCBlYXN5LCBzbyBvbmx5IGk0dG9pMiwgaTR0b2NoYXIgZnVuY3Rpb24gcmVmYWN0 b3JpbmcuCgpBdXRob3I6IGppYW4gaGUgPGppYW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2 aWV3ZWQtYnk6IEFtdWwgU3VsIDxzdWxhbXVsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENvcmV5 IEh1aW5rZXIgPGNvcmV5Lmh1aW5rZXJAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bv c3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZp XzRoUUBtYWlsLmdtYWlsLmNvbQpDb21taXRmZXN0OiBodHRwczovL2NvbW1pdGZlc3QucG9zdGdy ZXNxbC5vcmcvcGF0Y2gvNTk0MQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMgfCAy ICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMgIHwgMiArLQogMiBmaWxlcyBjaGFuZ2Vk LCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2NoYXIuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMKaW5kZXgg M2U0ZGVmNjhmZTQuLjY5ODg2MzkyNGVlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvY2hhci5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMKQEAgLTE5Miw3ICsx OTIsNyBAQCBpNHRvY2hhcihQR19GVU5DVElPTl9BUkdTKQogCWludDMyCQlhcmcxID0gUEdfR0VU QVJHX0lOVDMyKDApOwogCiAJaWYgKGFyZzEgPCBTQ0hBUl9NSU4gfHwgYXJnMSA+IFNDSEFSX01B WCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkg MCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJ CQkgZXJybXNnKCJcImNoYXJcIiBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvaW50LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKaW5k ZXggZmY1NGQ1MGVhOWQuLjRjODk0YTQ5ZDVkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQvaW50LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludC5jCkBAIC0zNzksNyAr Mzc5LDcgQEAgaTR0b2kyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW50MzIJCWFyZzEgPSBQR19HRVRB UkdfSU5UMzIoMCk7CiAKIAlpZiAodW5saWtlbHkoYXJnMSA8IFNIUlRfTUlOKSB8fCB1bmxpa2Vs eShhcmcxID4gU0hSVF9NQVgpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+ Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9P VVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coInNtYWxsaW50IG91dCBvZiByYW5nZSIpKSk7CiAK LS0gCjIuMzQuMQoK --000000000000ed7e80064d704a27 Content-Type: text/x-patch; charset="US-ASCII"; name="v22-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_c.patch" Content-Disposition: attachment; filename="v22-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmymiode19 RnJvbSBiYmMwODM3MGYyYzM3YmNhYTZhYjdkZThlOGQxZDI3MTdmN2EwZGQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6MzQ6NTEgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MiAwNS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBjaGFyYWN0ZXIgdmFyeWluZyB0byBvdGhl cgogdHlwZXMgcGVyIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFy Z2V0OjpyZWd0eXBlLCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMgYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQKKGNhc3Rzb3VyY2U6OnJlZ3R5cGUg PSAnY2hhcmFjdGVyIHZhcnlpbmcnOjpyZWd0eXBlKQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0 eXBlOwoKICAgIGNhc3Rzb3VyY2UgICAgIHwgICAgY2FzdHRhcmdldCAgICAgfCBjYXN0ZnVuYyB8 IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgIHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCiBjaGFyYWN0ZXIgdmFy eWluZyB8IHJlZ2NsYXNzICAgICAgICAgIHwgICAgIDEwNzkgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCB0ZXh0X3JlZ2NsYXNzIHwgcmVnY2xhc3MKIGNoYXJhY3RlciB2YXJ5aW5nIHwgImNo YXIiICAgICAgICAgICAgfCAgICAgIDk0NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRl eHRfY2hhciAgICAgfCBjaGFyCiBjaGFyYWN0ZXIgdmFyeWluZyB8IG5hbWUgICAgICAgICAgICAg IHwgICAgIDE0MDAgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0X25hbWUgICAgIHwg bmFtZQogY2hhcmFjdGVyIHZhcnlpbmcgfCB4bWwgICAgICAgICAgICAgICB8ICAgICAyODk2IHwg ZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dHRveG1sICAgICB8IHhtbAogY2hhcmFjdGVy IHZhcnlpbmcgfCBjaGFyYWN0ZXIgdmFyeWluZyB8ICAgICAgNjY5IHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgdmFyY2hhciAgICAgICB8IHZhcmNoYXIKKDUgcm93cykKCnRleHR0b3htbCwg dGV4dF9yZWdjbGFzcyB3YXMgcmVmYWN0b3JlZCBhcyBlcnJvciBzYWZlIGluIHByaW9yIHBhdGNo Lgp0ZXh0X2NoYXIsIHRleHRfbmFtZSBpcyBhbHJlYWR5IGVycm9yIHNhZmUuCnNvIGhlcmUgd2Ug b25seSBuZWVkIGhhbmRsZSBmdW5jdGlvbiAidmFyY2hhciIuCgpBdXRob3I6IGppYW4gaGUgPGpp YW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFtdWwgU3VsIDxzdWxhbXVs QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENvcmV5IEh1aW5rZXIgPGNvcmV5Lmh1aW5rZXJAZ21h aWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZh LWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQpDb21taXRm ZXN0OiBodHRwczovL2NvbW1pdGZlc3QucG9zdGdyZXNxbC5vcmcvcGF0Y2gvNTk0MQotLS0KIHNy Yy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBp bnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9hZHQvdmFyY2hhci5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwppbmRleCA2 ZjA4Mzk3M2ZlNy4uYTYyZTU1ZWVjMTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC92YXJjaGFyLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtNjM0 LDcgKzYzNCw3IEBAIHZhcmNoYXIoUEdfRlVOQ1RJT05fQVJHUykKIAl7CiAJCWZvciAoaSA9IG1h eG1ibGVuOyBpIDwgbGVuOyBpKyspCiAJCQlpZiAoc19kYXRhW2ldICE9ICcgJykKLQkJCQllcmVw b3J0KEVSUk9SLAorCQkJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJ CQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19EQVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJ IGVycm1zZygidmFsdWUgdG9vIGxvbmcgZm9yIHR5cGUgY2hhcmFjdGVyIHZhcnlpbmcoJWQpIiwK IAkJCQkJCQkJbWF4bGVuKSkpOwotLSAKMi4zNC4xCgo= --000000000000ed7e80064d704a27 Content-Type: text/x-patch; charset="US-ASCII"; name="v22-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v22-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmymiodg20 RnJvbSBkN2Y4ODBkYzk0ZDViMmQyZTA4MGIyYmU2MzAzM2EyNTY1Y2FjNjBhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMDk6NTU6NTggKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MiAwNC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyB0ZXh0IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcApvbiBwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ3RleHQnOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8IGNhc3R0YXJn ZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgIHByb3NyYyAgICAg fCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQogdGV4dCAgICAgICB8 IHJlZ2NsYXNzICAgfCAgICAgMTA3OSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRf cmVnY2xhc3MgfCByZWdjbGFzcwogdGV4dCAgICAgICB8ICJjaGFyIiAgICAgfCAgICAgIDk0NCB8 IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRfY2hhciAgICAgfCBjaGFyCiB0ZXh0ICAg ICAgIHwgbmFtZSAgICAgICB8ICAgICAgNDA3IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwg dGV4dF9uYW1lICAgICB8IG5hbWUKIHRleHQgICAgICAgfCB4bWwgICAgICAgIHwgICAgIDI4OTYg fCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0dG94bWwgICAgIHwgeG1sCig0IHJvd3Mp CgpBbHJlYWR5IGVycm9yIHNhZmU6IHRleHRfbmFtZSwgdGV4dF9jaGFyLCB0ZXh0dG94bWwuCgpB dXRob3I6IGppYW4gaGUgPGppYW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6 IEFuZHJldyBEdW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PgpSZXZpZXdlZC1ieTogQW11bCBT dWwgPHN1bGFtdWxAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQ29yZXkgSHVpbmtlciA8Y29yZXku aHVpbmtlckBnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xN PWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwu Y29tCkNvbW1pdGZlc3Q6IGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRjaC81 OTQxCi0tLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyB8IDY2ICsrKysrKysrKysr KysrKysrKysrKysrLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JlZ3Byb2MuYyB8 IDEzICsrKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMgfCAxMCArKysrLQog c3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCB8ICA2ICsrKwogc3JjL2luY2x1ZGUvdXRp bHMvdmFybGVuYS5oICAgICB8ICAxICsKIDUgZmlsZXMgY2hhbmdlZCwgNzIgaW5zZXJ0aW9ucygr KSwgMjQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1l c3BhY2UuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKaW5kZXggNTZiODdkODc4 ZTguLjA2MTA4OWYwNGM3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFj ZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKQEAgLTQ0Miw2ICs0NDIs MTYgQEAgT2lkCiBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQoY29uc3QgUmFuZ2VWYXIgKnJlbGF0 aW9uLCBMT0NLTU9ERSBsb2NrbW9kZSwKIAkJCQkJCSB1aW50MzIgZmxhZ3MsCiAJCQkJCQkgUmFu Z2VWYXJHZXRSZWxpZENhbGxiYWNrIGNhbGxiYWNrLCB2b2lkICpjYWxsYmFja19hcmcpCit7CisJ cmV0dXJuIFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZFNhZmUocmVsYXRpb24sIGxvY2ttb2RlLCBm bGFncywKKwkJCQkJCQkJCQljYWxsYmFjaywgY2FsbGJhY2tfYXJnLAorCQkJCQkJCQkJCU5VTEwp OworfQorCitPaWQKK1JhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZFNhZmUoY29uc3QgUmFuZ2VWYXIg KnJlbGF0aW9uLCBMT0NLTU9ERSBsb2NrbW9kZSwgdWludDMyIGZsYWdzLAorCQkJCQkJCSBSYW5n ZVZhckdldFJlbGlkQ2FsbGJhY2sgY2FsbGJhY2ssIHZvaWQgKmNhbGxiYWNrX2FyZywKKwkJCQkJ CQkgTm9kZSAqZXNjb250ZXh0KQogewogCXVpbnQ2NAkJaW52YWxfY291bnQ7CiAJT2lkCQkJcmVs SWQ7CkBAIC00NTgsNyArNDY4LDcgQEAgUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKGNvbnN0IFJh bmdlVmFyICpyZWxhdGlvbiwgTE9DS01PREUgbG9ja21vZGUsCiAJaWYgKHJlbGF0aW9uLT5jYXRh bG9nbmFtZSkKIAl7CiAJCWlmIChzdHJjbXAocmVsYXRpb24tPmNhdGFsb2duYW1lLCBnZXRfZGF0 YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpKSAhPSAwKQotCQkJZXJlcG9ydChFUlJPUiwKKwkJCWVy ZXR1cm4oZXNjb250ZXh0LCBJbnZhbGlkT2lkLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCiAJCQkJCSBlcnJtc2coImNyb3NzLWRhdGFiYXNlIHJlZmVyZW5j ZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogXCIlcy4lcy4lc1wiIiwKIAkJCQkJCQlyZWxhdGlvbi0+ Y2F0YWxvZ25hbWUsIHJlbGF0aW9uLT5zY2hlbWFuYW1lLApAQCAtNTE1LDcgKzUyNSw3IEBAIFJh bmdlVmFyR2V0UmVsaWRFeHRlbmRlZChjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sIExPQ0tNT0RF IGxvY2ttb2RlLAogCQkJCQkgKiByZXR1cm4gSW52YWxpZE9pZC4KIAkJCQkJICovCiAJCQkJCWlm IChuYW1lc3BhY2VJZCAhPSBteVRlbXBOYW1lc3BhY2UpCi0JCQkJCQllcmVwb3J0KEVSUk9SLAor CQkJCQkJZXJldHVybihlc2NvbnRleHQsIEludmFsaWRPaWQsCiAJCQkJCQkJCShlcnJjb2RlKEVS UkNPREVfSU5WQUxJRF9UQUJMRV9ERUZJTklUSU9OKSwKIAkJCQkJCQkJIGVycm1zZygidGVtcG9y YXJ5IHRhYmxlcyBjYW5ub3Qgc3BlY2lmeSBhIHNjaGVtYSBuYW1lIikpKTsKIAkJCQl9CkBAIC01 OTUsMTYgKzYwNSwyMiBAQCBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQoY29uc3QgUmFuZ2VWYXIg KnJlbGF0aW9uLCBMT0NLTU9ERSBsb2NrbW9kZSwKIAkJewogCQkJaW50CQkJZWxldmVsID0gKGZs YWdzICYgUlZSX1NLSVBfTE9DS0VEKSA/IERFQlVHMSA6IEVSUk9SOwogCi0JCQlpZiAocmVsYXRp b24tPnNjaGVtYW5hbWUpCisJCQlpZiAoZXNjb250ZXh0ID09IE5VTEwpCiAJCQkJZXJlcG9ydChl bGV2ZWwsCi0JCQkJCQkoZXJyY29kZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlMQUJMRSksCi0JCQkJ CQkgZXJybXNnKCJjb3VsZCBub3Qgb2J0YWluIGxvY2sgb24gcmVsYXRpb24gXCIlcy4lc1wiIiwK LQkJCQkJCQkJcmVsYXRpb24tPnNjaGVtYW5hbWUsIHJlbGF0aW9uLT5yZWxuYW1lKSkpOworCQkJ CQkJZXJyY29kZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlMQUJMRSksCisJCQkJCQlyZWxhdGlvbi0+ c2NoZW1hbmFtZSA/CisJCQkJCQllcnJtc2coImNvdWxkIG5vdCBvYnRhaW4gbG9jayBvbiByZWxh dGlvbiBcIiVzLiVzXCIiLAorCQkJCQkJCSAgIHJlbGF0aW9uLT5zY2hlbWFuYW1lLCByZWxhdGlv bi0+cmVsbmFtZSkgOgorCQkJCQkJZXJybXNnKCJjb3VsZCBub3Qgb2J0YWluIGxvY2sgb24gcmVs YXRpb24gXCIlc1wiIiwKKwkJCQkJCQkgICByZWxhdGlvbi0+cmVsbmFtZSkpOwogCQkJZWxzZQot CQkJCWVyZXBvcnQoZWxldmVsLAotCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9MT0NLX05PVF9BVkFJ TEFCTEUpLAotCQkJCQkJIGVycm1zZygiY291bGQgbm90IG9idGFpbiBsb2NrIG9uIHJlbGF0aW9u IFwiJXNcIiIsCi0JCQkJCQkJCXJlbGF0aW9uLT5yZWxuYW1lKSkpOworCQkJCWVyZXR1cm4oZXNj b250ZXh0LCBJbnZhbGlkT2lkLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlM QUJMRSksCisJCQkJCQlyZWxhdGlvbi0+c2NoZW1hbmFtZSA/CisJCQkJCQllcnJtc2coImNvdWxk IG5vdCBvYnRhaW4gbG9jayBvbiByZWxhdGlvbiBcIiVzLiVzXCIiLAorCQkJCQkJCSAgIHJlbGF0 aW9uLT5zY2hlbWFuYW1lLCByZWxhdGlvbi0+cmVsbmFtZSkgOgorCQkJCQkJZXJybXNnKCJjb3Vs ZCBub3Qgb2J0YWluIGxvY2sgb24gcmVsYXRpb24gXCIlc1wiIiwKKwkJCQkJCQkgICByZWxhdGlv bi0+cmVsbmFtZSkpOwogCiAJCQlyZXR1cm4gSW52YWxpZE9pZDsKIAkJfQpAQCAtNjI4LDE2ICs2 NDQsMjIgQEAgUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKGNvbnN0IFJhbmdlVmFyICpyZWxhdGlv biwgTE9DS01PREUgbG9ja21vZGUsCiAJewogCQlpbnQJCQllbGV2ZWwgPSBtaXNzaW5nX29rID8g REVCVUcxIDogRVJST1I7CiAKLQkJaWYgKHJlbGF0aW9uLT5zY2hlbWFuYW1lKQorCQlpZiAoZXNj b250ZXh0ID09IE5VTEwpCiAJCQllcmVwb3J0KGVsZXZlbCwKLQkJCQkJKGVycmNvZGUoRVJSQ09E RV9VTkRFRklORURfVEFCTEUpLAotCQkJCQkgZXJybXNnKCJyZWxhdGlvbiBcIiVzLiVzXCIgZG9l cyBub3QgZXhpc3QiLAotCQkJCQkJCXJlbGF0aW9uLT5zY2hlbWFuYW1lLCByZWxhdGlvbi0+cmVs bmFtZSkpKTsKKwkJCQkJZXJyY29kZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlMQUJMRSksCisJCQkJ CXJlbGF0aW9uLT5zY2hlbWFuYW1lID8KKwkJCQkJZXJybXNnKCJyZWxhdGlvbiBcIiVzLiVzXCIg ZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJICAgcmVsYXRpb24tPnNjaGVtYW5hbWUsIHJlbGF0aW9u LT5yZWxuYW1lKSA6CisJCQkJCWVycm1zZygicmVsYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0 IiwKKwkJCQkJCSAgIHJlbGF0aW9uLT5yZWxuYW1lKSk7CiAJCWVsc2UKLQkJCWVyZXBvcnQoZWxl dmVsLAotCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9UQUJMRSksCi0JCQkJCSBlcnJt c2coInJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCi0JCQkJCQkJcmVsYXRpb24tPnJl bG5hbWUpKSk7CisJCQllcmV0dXJuKGVzY29udGV4dCwgSW52YWxpZE9pZCwKKwkJCQkJZXJyY29k ZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlMQUJMRSksCisJCQkJCXJlbGF0aW9uLT5zY2hlbWFuYW1l ID8KKwkJCQkJZXJybXNnKCJyZWxhdGlvbiBcIiVzLiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJ CQkJICAgcmVsYXRpb24tPnNjaGVtYW5hbWUsIHJlbGF0aW9uLT5yZWxuYW1lKSA6CisJCQkJCWVy cm1zZygicmVsYXRpb24gXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCSAgIHJlbGF0aW9u LT5yZWxuYW1lKSk7CiAJfQogCXJldHVybiByZWxJZDsKIH0KQEAgLTM2MjQsNiArMzY0NiwxMiBA QCBnZXRfbmFtZXNwYWNlX29pZChjb25zdCBjaGFyICpuc3BuYW1lLCBib29sIG1pc3Npbmdfb2sp CiAgKi8KIFJhbmdlVmFyICoKIG1ha2VSYW5nZVZhckZyb21OYW1lTGlzdChjb25zdCBMaXN0ICpu YW1lcykKK3sKKwlyZXR1cm4gbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0U2FmZShuYW1lcywgTlVM TCk7Cit9CisKK1JhbmdlVmFyICoKK21ha2VSYW5nZVZhckZyb21OYW1lTGlzdFNhZmUoY29uc3Qg TGlzdCAqbmFtZXMsIE5vZGUgKmVzY29udGV4dCkKIHsKIAlSYW5nZVZhciAgICpyZWwgPSBtYWtl UmFuZ2VWYXIoTlVMTCwgTlVMTCwgLTEpOwogCkBAIC0zNjQyLDcgKzM2NzAsNyBAQCBtYWtlUmFu Z2VWYXJGcm9tTmFtZUxpc3QoY29uc3QgTGlzdCAqbmFtZXMpCiAJCQlyZWwtPnJlbG5hbWUgPSBz dHJWYWwobHRoaXJkKG5hbWVzKSk7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKLQkJCWVyZXBvcnQo RVJST1IsCisJCQllcmV0dXJuKGVzY29udGV4dCwgTlVMTCwKIAkJCQkJKGVycmNvZGUoRVJSQ09E RV9TWU5UQVhfRVJST1IpLAogCQkJCQkgZXJybXNnKCJpbXByb3BlciByZWxhdGlvbiBuYW1lICh0 b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAlcyIsCiAJCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1l cykpKSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmVncHJvYy5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3JlZ3Byb2MuYwppbmRleCBlZTM0ZDFkODVmOC4uNjA0ZTE5YTFj YjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yZWdwcm9jLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3JlZ3Byb2MuYwpAQCAtMTkwMSwxMiArMTkwMSwxOSBAQCB0ZXh0 X3JlZ2NsYXNzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJdGV4dAkgICAqcmVsbmFtZSA9IFBHX0dFVEFS R19URVhUX1BQKDApOwogCU9pZAkJCXJlc3VsdDsKIAlSYW5nZVZhciAgICpydjsKKwlMaXN0CSAg ICpuYW1lbGlzdDsKIAotCXJ2ID0gbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0KHRleHRUb1F1YWxp ZmllZE5hbWVMaXN0KHJlbG5hbWUpKTsKKwluYW1lbGlzdCA9IHRleHRUb1F1YWxpZmllZE5hbWVM aXN0U2FmZShyZWxuYW1lLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VS UkVEKGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlydiA9IG1ha2VS YW5nZVZhckZyb21OYW1lTGlzdFNhZmUobmFtZWxpc3QsIGZjaW5mby0+Y29udGV4dCk7CisJaWYg KFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwo KTsKIAogCS8qIFdlIG1pZ2h0IG5vdCBldmVuIGhhdmUgcGVybWlzc2lvbnMgb24gdGhpcyByZWxh dGlvbjsgZG9uJ3QgbG9jayBpdC4gKi8KLQlyZXN1bHQgPSBSYW5nZVZhckdldFJlbGlkKHJ2LCBO b0xvY2ssIGZhbHNlKTsKLQorCXJlc3VsdCA9IFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZFNhZmUo cnYsIE5vTG9jaywgMCwgTlVMTCwgTlVMTCwKKwkJCQkJCQkJCQkgIGZjaW5mby0+Y29udGV4dCk7 CiAJUEdfUkVUVVJOX09JRChyZXN1bHQpOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91 dGlscy9hZHQvdmFybGVuYS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYwppbmRl eCA3YjFlZTYxYmRlNi4uNTZkYTNkN2I0NDAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC92YXJsZW5hLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmxlbmEuYwpAQCAt MjcxNyw2ICsyNzE3LDEyIEBAIG5hbWVfdGV4dChQR19GVU5DVElPTl9BUkdTKQogICovCiBMaXN0 ICoKIHRleHRUb1F1YWxpZmllZE5hbWVMaXN0KHRleHQgKnRleHR2YWwpCit7CisJcmV0dXJuIHRl eHRUb1F1YWxpZmllZE5hbWVMaXN0U2FmZSh0ZXh0dmFsLCBOVUxMKTsKK30KKworTGlzdCAqCit0 ZXh0VG9RdWFsaWZpZWROYW1lTGlzdFNhZmUodGV4dCAqdGV4dHZhbCwgTm9kZSAqZXNjb250ZXh0 KQogewogCWNoYXIJICAgKnJhd25hbWU7CiAJTGlzdAkgICAqcmVzdWx0ID0gTklMOwpAQCAtMjcy OCwxMiArMjczNCwxMiBAQCB0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdCh0ZXh0ICp0ZXh0dmFsKQog CXJhd25hbWUgPSB0ZXh0X3RvX2NzdHJpbmcodGV4dHZhbCk7CiAKIAlpZiAoIVNwbGl0SWRlbnRp ZmllclN0cmluZyhyYXduYW1lLCAnLicsICZuYW1lbGlzdCkpCi0JCWVyZXBvcnQoRVJST1IsCisJ CWVyZXR1cm4oZXNjb250ZXh0LCBOSUwsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX05B TUUpLAogCQkJCSBlcnJtc2coImludmFsaWQgbmFtZSBzeW50YXgiKSkpOwogCiAJaWYgKG5hbWVs aXN0ID09IE5JTCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihlc2NvbnRleHQsIE5JTCwK IAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfTkFNRSksCiAJCQkJIGVycm1zZygiaW52YWxp ZCBuYW1lIHN5bnRheCIpKSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFt ZXNwYWNlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCmluZGV4IDFhMjU5NzM2 ODVjLi4xNTNhNDM5ZTM3NCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3Bh Y2UuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCkBAIC0xMDMsNiArMTAz LDExIEBAIGV4dGVybiBPaWQJUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKGNvbnN0IFJhbmdlVmFy ICpyZWxhdGlvbiwKIAkJCQkJCQkJCSBMT0NLTU9ERSBsb2NrbW9kZSwgdWludDMyIGZsYWdzLAog CQkJCQkJCQkJIFJhbmdlVmFyR2V0UmVsaWRDYWxsYmFjayBjYWxsYmFjaywKIAkJCQkJCQkJCSB2 b2lkICpjYWxsYmFja19hcmcpOworZXh0ZXJuIE9pZCBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWRT YWZlKGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwKKwkJCQkJCQkJCQlMT0NLTU9ERSBsb2NrbW9k ZSwgdWludDMyIGZsYWdzLAorCQkJCQkJCQkJCVJhbmdlVmFyR2V0UmVsaWRDYWxsYmFjayBjYWxs YmFjaywKKwkJCQkJCQkJCQl2b2lkICpjYWxsYmFja19hcmcsCisJCQkJCQkJCQkJTm9kZSAqZXNj b250ZXh0KTsKIGV4dGVybiBPaWQJUmFuZ2VWYXJHZXRDcmVhdGlvbk5hbWVzcGFjZShjb25zdCBS YW5nZVZhciAqbmV3UmVsYXRpb24pOwogZXh0ZXJuIE9pZAlSYW5nZVZhckdldEFuZENoZWNrQ3Jl YXRpb25OYW1lc3BhY2UoUmFuZ2VWYXIgKnJlbGF0aW9uLAogCQkJCQkJCQkJCQkJIExPQ0tNT0RF IGxvY2ttb2RlLApAQCAtMTY4LDYgKzE3Myw3IEBAIGV4dGVybiBPaWQJTG9va3VwQ3JlYXRpb25O YW1lc3BhY2UoY29uc3QgY2hhciAqbnNwbmFtZSk7CiBleHRlcm4gdm9pZCBDaGVja1NldE5hbWVz cGFjZShPaWQgb2xkTnNwT2lkLCBPaWQgbnNwT2lkKTsKIGV4dGVybiBPaWQJUXVhbGlmaWVkTmFt ZUdldENyZWF0aW9uTmFtZXNwYWNlKGNvbnN0IExpc3QgKm5hbWVzLCBjaGFyICoqb2JqbmFtZV9w KTsKIGV4dGVybiBSYW5nZVZhciAqbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0KGNvbnN0IExpc3Qg Km5hbWVzKTsKK2V4dGVybiBSYW5nZVZhciAqbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0U2FmZShj b25zdCBMaXN0ICpuYW1lcywgTm9kZSAqZXNjb250ZXh0KTsKIGV4dGVybiBjaGFyICpOYW1lTGlz dFRvU3RyaW5nKGNvbnN0IExpc3QgKm5hbWVzKTsKIGV4dGVybiBjaGFyICpOYW1lTGlzdFRvUXVv dGVkU3RyaW5nKGNvbnN0IExpc3QgKm5hbWVzKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv dXRpbHMvdmFybGVuYS5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvdmFybGVuYS5oCmluZGV4IDRiMzI1 NzRhMDc1Li41YmM3OGFhMDJjMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvdmFybGVu YS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3ZhcmxlbmEuaApAQCAtMjcsNiArMjcsNyBAQCBl eHRlcm4gaW50CXZhcnN0cl9sZXZlbnNodGVpbl9sZXNzX2VxdWFsKGNvbnN0IGNoYXIgKnNvdXJj ZSwgaW50IHNsZW4sCiAJCQkJCQkJCQkJICBpbnQgaW5zX2MsIGludCBkZWxfYywgaW50IHN1Yl9j LAogCQkJCQkJCQkJCSAgaW50IG1heF9kLCBib29sIHRydXN0ZWQpOwogZXh0ZXJuIExpc3QgKnRl eHRUb1F1YWxpZmllZE5hbWVMaXN0KHRleHQgKnRleHR2YWwpOworZXh0ZXJuIExpc3QgKnRleHRU b1F1YWxpZmllZE5hbWVMaXN0U2FmZSh0ZXh0ICp0ZXh0dmFsLCBOb2RlICplc2NvbnRleHQpOwog ZXh0ZXJuIGJvb2wgU3BsaXRJZGVudGlmaWVyU3RyaW5nKGNoYXIgKnJhd3N0cmluZywgY2hhciBz ZXBhcmF0b3IsCiAJCQkJCQkJCSAgTGlzdCAqKm5hbWVsaXN0KTsKIGV4dGVybiBib29sIFNwbGl0 RGlyZWN0b3JpZXNTdHJpbmcoY2hhciAqcmF3c3RyaW5nLCBjaGFyIHNlcGFyYXRvciwKLS0gCjIu MzQuMQoK --000000000000ed7e80064d704a27 Content-Type: text/x-patch; charset="US-ASCII"; name="v22-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v22-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmymiodj21 RnJvbSBlNjg0YmMyMzgwNmM5OWZmNTgzOGUxZmE0MDM3NWRkZjIwYmI4MjJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMDk6NTM6MjkgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MiAwMy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBjaGFyYWN0ZXIgdG8gb3RoZXIgdHlwZXMg cGVyCiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVn dHlwZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJv bmFtZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3Rm dW5jIGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSdjaGFyYWN0 ZXInOjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8 ICAgIGNhc3R0YXJnZXQgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2Qg fCAgIHByb3NyYyAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLQogY2hhcmFjdGVyICB8IHRleHQgICAgICAgICAgICAgIHwgICAgICA0MDEgfCBpICAgICAg ICAgICB8IGYgICAgICAgICAgfCBydHJpbTEgICAgICB8IHRleHQKIGNoYXJhY3RlciAgfCBjaGFy YWN0ZXIgdmFyeWluZyB8ICAgICAgNDAxIHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgcnRy aW0xICAgICAgfCB0ZXh0CiBjaGFyYWN0ZXIgIHwgImNoYXIiICAgICAgICAgICAgfCAgICAgIDk0 NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRfY2hhciAgIHwgY2hhcgogY2hhcmFj dGVyICB8IG5hbWUgICAgICAgICAgICAgIHwgICAgICA0MDkgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCBicGNoYXJfbmFtZSB8IG5hbWUKIGNoYXJhY3RlciAgfCB4bWwgICAgICAgICAgICAg ICB8ICAgICAyODk2IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dHRveG1sICAgfCB4 bWwKIGNoYXJhY3RlciAgfCBjaGFyYWN0ZXIgICAgICAgICB8ICAgICAgNjY4IHwgaSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgYnBjaGFyICAgICAgfCBicGNoYXIKKDYgcm93cykKCm9ubHkgdGV4 dHRveG1sLCBicGNoYXIoUEdfRlVOQ1RJT05fQVJHUykgbmVlZCB0YWtlIGNhcmUgb2YgZXJyb3Ig aGFuZGxpbmcuCm90aGVyIGZ1bmN0aW9ucyBhbHJlYWR5IGVycm9yIHNhZmUuCgpBdXRob3I6IGpp YW4gaGUgPGppYW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFtdWwgU3Vs IDxzdWxhbXVsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENvcmV5IEh1aW5rZXIgPGNvcmV5Lmh1 aW5rZXJAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1m djFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNv bQpDb21taXRmZXN0OiBodHRwczovL2NvbW1pdGZlc3QucG9zdGdyZXNxbC5vcmcvcGF0Y2gvNTk0 MQotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMgfCAgMiArLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIuYyAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC91 dGlscy9hZHQveG1sLmMgICAgICAgICAgIHwgMTggKysrKysrKysrKysrLS0tLS0tCiBzcmMvaW5j bHVkZS91dGlscy94bWwuaCAgICAgICAgICAgICAgIHwgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwg MTUgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjRXhwckludGVycC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHJJbnRlcnAuYwppbmRleCA1M2FlMDIwNTcwMi4uNDMxMTY0MzFlZGYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAtNDU0OCw3ICs0NTQ4LDcgQEAgRXhlY0V2YWxYbWxF eHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJFdmFsU3RlcCAqb3ApCiAKIAkJCQkqb3AtPnJlc3Zh bHVlID0gUG9pbnRlckdldERhdHVtKHhtbHBhcnNlKGRhdGEsCiAJCQkJCQkJCQkJCQkJCSB4ZXhw ci0+eG1sb3B0aW9uLAotCQkJCQkJCQkJCQkJCQkgcHJlc2VydmVfd2hpdGVzcGFjZSkpOworCQkJ CQkJCQkJCQkJCQkgcHJlc2VydmVfd2hpdGVzcGFjZSwgTlVMTCkpOwogCQkJCSpvcC0+cmVzbnVs bCA9IGZhbHNlOwogCQkJfQogCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGls cy9hZHQvdmFyY2hhci5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwppbmRleCBk ZjMwNTA5ODEzMC4uNmYwODM5NzNmZTcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC92YXJjaGFyLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtMzA3 LDcgKzMwNyw3IEBAIGJwY2hhcihQR19GVU5DVElPTl9BUkdTKQogCQl7CiAJCQlmb3IgKGkgPSBt YXhtYmxlbjsgaSA8IGxlbjsgaSsrKQogCQkJCWlmIChzW2ldICE9ICcgJykKLQkJCQkJZXJlcG9y dChFUlJPUiwKKwkJCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJ CQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19EQVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJ CSBlcnJtc2coInZhbHVlIHRvbyBsb25nIGZvciB0eXBlIGNoYXJhY3RlciglZCkiLAogCQkJCQkJ CQkJbWF4bGVuKSkpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jCmluZGV4IDc5ZjZjZjdiNGZhLi41MmY0ZjhmYzQ5 MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC94bWwuYwpAQCAtNjYwLDcgKzY2MCw3IEBAIHRleHR0b3htbChQR19GVU5D VElPTl9BUkdTKQogewogCXRleHQJICAgKmRhdGEgPSBQR19HRVRBUkdfVEVYVF9QUCgwKTsKIAot CVBHX1JFVFVSTl9YTUxfUCh4bWxwYXJzZShkYXRhLCB4bWxvcHRpb24sIHRydWUpKTsKKwlQR19S RVRVUk5fWE1MX1AoeG1scGFyc2UoZGF0YSwgeG1sb3B0aW9uLCB0cnVlLCBmY2luZm8tPmNvbnRl eHQpKTsKIH0KIAogCkBAIC0xMDI5LDE5ICsxMDI5LDI1IEBAIHhtbGVsZW1lbnQoWG1sRXhwciAq eGV4cHIsCiAKIAogeG1sdHlwZSAqCi14bWxwYXJzZSh0ZXh0ICpkYXRhLCBYbWxPcHRpb25UeXBl IHhtbG9wdGlvbl9hcmcsIGJvb2wgcHJlc2VydmVfd2hpdGVzcGFjZSkKK3htbHBhcnNlKHRleHQg KmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0aW9uX2FyZywgYm9vbCBwcmVzZXJ2ZV93aGl0ZXNw YWNlLCBOb2RlICplc2NvbnRleHQpCiB7CiAjaWZkZWYgVVNFX0xJQlhNTAogCXhtbERvY1B0cglk b2M7CiAKIAlkb2MgPSB4bWxfcGFyc2UoZGF0YSwgeG1sb3B0aW9uX2FyZywgcHJlc2VydmVfd2hp dGVzcGFjZSwKLQkJCQkJR2V0RGF0YWJhc2VFbmNvZGluZygpLCBOVUxMLCBOVUxMLCBOVUxMKTsK LQl4bWxGcmVlRG9jKGRvYyk7CisJCQkJCUdldERhdGFiYXNlRW5jb2RpbmcoKSwgTlVMTCwgTlVM TCwgZXNjb250ZXh0KTsKKwlpZiAoZG9jKQorCQl4bWxGcmVlRG9jKGRvYyk7CisKKwlpZiAoU09G VF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQlyZXR1cm4gTlVMTDsKIAogCXJldHVybiAo eG1sdHlwZSAqKSBkYXRhOwogI2Vsc2UKLQlOT19YTUxfU1VQUE9SVCgpOwotCXJldHVybiBOVUxM OworCWVyZXR1cm4oZXNjb250ZXh0LCBOVUxMLAorCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVf Tk9UX1NVUFBPUlRFRCksCisJCQllcnJtc2coInVuc3VwcG9ydGVkIFhNTCBmZWF0dXJlIiksCisJ CQllcnJkZXRhaWwoIlRoaXMgZnVuY3Rpb25hbGl0eSByZXF1aXJlcyB0aGUgc2VydmVyIHRvIGJl IGJ1aWx0IHdpdGggbGlieG1sIHN1cHBvcnQuIikpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3V0aWxzL3htbC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMveG1sLmgKaW5kZXgg MDIzZmRlYjQ1MzEuLmNhMjY2ZjQ0OGQ2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy94 bWwuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy94bWwuaApAQCAtNzMsNyArNzMsNyBAQCBleHRl cm4geG1sdHlwZSAqeG1sY29uY2F0KExpc3QgKmFyZ3MpOwogZXh0ZXJuIHhtbHR5cGUgKnhtbGVs ZW1lbnQoWG1sRXhwciAqeGV4cHIsCiAJCQkJCQkgICBjb25zdCBEYXR1bSAqbmFtZWRfYXJndmFs dWUsIGNvbnN0IGJvb2wgKm5hbWVkX2FyZ251bGwsCiAJCQkJCQkgICBjb25zdCBEYXR1bSAqYXJn dmFsdWUsIGNvbnN0IGJvb2wgKmFyZ251bGwpOwotZXh0ZXJuIHhtbHR5cGUgKnhtbHBhcnNlKHRl eHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0aW9uX2FyZywgYm9vbCBwcmVzZXJ2ZV93aGl0 ZXNwYWNlKTsKK2V4dGVybiB4bWx0eXBlICp4bWxwYXJzZSh0ZXh0ICpkYXRhLCBYbWxPcHRpb25U eXBlIHhtbG9wdGlvbl9hcmcsIGJvb2wgcHJlc2VydmVfd2hpdGVzcGFjZSwgTm9kZSAqZXNjb250 ZXh0KTsKIGV4dGVybiB4bWx0eXBlICp4bWxwaShjb25zdCBjaGFyICp0YXJnZXQsIHRleHQgKmFy ZywgYm9vbCBhcmdfaXNfbnVsbCwgYm9vbCAqcmVzdWx0X2lzX251bGwpOwogZXh0ZXJuIHhtbHR5 cGUgKnhtbHJvb3QoeG1sdHlwZSAqZGF0YSwgdGV4dCAqdmVyc2lvbiwgaW50IHN0YW5kYWxvbmUp OwogZXh0ZXJuIGJvb2wgeG1sX2lzX2RvY3VtZW50KHhtbHR5cGUgKmFyZyk7Ci0tIAoyLjM0LjEK Cg== --000000000000ed7e80064d704a27 Content-Type: text/x-patch; charset="US-ASCII"; name="v22-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v22-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmymiodm22 RnJvbSBhNWViMGUyNGVhMjM0ZGFlZmE0MDA0YWVjMGFlZjVkMDEwNjA2YmQ4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMjAgTWFyIDIwMjYgMTA6NDA6MjUgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MiAwMi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBiaXQvdmFyYml0IHRvIG90aGVyIHR5cGVz CiBwZXIgcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJl Z3R5cGUsIGNhc3RmdW5jLAogICAgICAgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMKd2hlcmUgcGMuY2FzdGZ1bmMgPiAwIGFuZCAoY2FzdHNvdXJjZTo6cmVndHlw ZSA9J2JpdCc6OnJlZ3R5cGUKb3IgY2FzdHNvdXJjZTo6cmVndHlwZSA9J3ZhcmJpdCc6OnJlZ3R5 cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSAgfCBjYXN0dGFy Z2V0ICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgIHByb3NyYyAgIHwg cHJvbmFtZQotLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0KIGJpdCAgICAgICAgIHwgYmln aW50ICAgICAgfCAgICAgMjA3NiB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdHRvaW50 OCB8IGludDgKIGJpdCAgICAgICAgIHwgaW50ZWdlciAgICAgfCAgICAgMTY4NCB8IGUgICAgICAg ICAgIHwgZiAgICAgICAgICB8IGJpdHRvaW50NCB8IGludDQKIGJpdCAgICAgICAgIHwgYml0ICAg ICAgICAgfCAgICAgMTY4NSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdCAgICAgICB8 IGJpdAogYml0IHZhcnlpbmcgfCBiaXQgdmFyeWluZyB8ICAgICAxNjg3IHwgaSAgICAgICAgICAg fCBmICAgICAgICAgIHwgdmFyYml0ICAgIHwgdmFyYml0Cig0IHJvd3MpCgpBdXRob3I6IGppYW4g aGUgPGppYW4udW5pdmVyc2FsaXR5QGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFtdWwgU3VsIDxz dWxhbXVsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENvcmV5IEh1aW5rZXIgPGNvcmV5Lmh1aW5r ZXJAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFK Zlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQpD b21taXRmZXN0OiBodHRwczovL2NvbW1pdGZlc3QucG9zdGdyZXNxbC5vcmcvcGF0Y2gvNTk0MQot LS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJiaXQuYyB8IDggKysrKy0tLS0KIDEgZmlsZSBj aGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJp dC5jCmluZGV4IDY1YWQxYmZlMThmLi5jNDZiNWJhZTcwZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmJpdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJiaXQu YwpAQCAtNDAxLDcgKzQwMSw3IEBAIGJpdChQR19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5f VkFSQklUX1AoYXJnKTsKIAogCWlmICghaXNFeHBsaWNpdCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJ ZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RF X1NUUklOR19EQVRBX0xFTkdUSF9NSVNNQVRDSCksCiAJCQkJIGVycm1zZygiYml0IHN0cmluZyBs ZW5ndGggJWQgZG9lcyBub3QgbWF0Y2ggdHlwZSBiaXQoJWQpIiwKIAkJCQkJCVZBUkJJVExFTihh cmcpLCBsZW4pKSk7CkBAIC03NTIsNyArNzUyLDcgQEAgdmFyYml0KFBHX0ZVTkNUSU9OX0FSR1Mp CiAJCVBHX1JFVFVSTl9WQVJCSVRfUChhcmcpOwogCiAJaWYgKCFpc0V4cGxpY2l0KQotCQllcmVw b3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShl cnJjb2RlKEVSUkNPREVfU1RSSU5HX0RBVEFfUklHSFRfVFJVTkNBVElPTiksCiAJCQkJIGVycm1z ZygiYml0IHN0cmluZyB0b28gbG9uZyBmb3IgdHlwZSBiaXQgdmFyeWluZyglZCkiLAogCQkJCQkJ bGVuKSkpOwpAQCAtMTU5MSw3ICsxNTkxLDcgQEAgYml0dG9pbnQ0KFBHX0ZVTkNUSU9OX0FSR1Mp CiAKIAkvKiBDaGVjayB0aGF0IHRoZSBiaXQgc3RyaW5nIGlzIG5vdCB0b28gbG9uZyAqLwogCWlm IChWQVJCSVRMRU4oYXJnKSA+IHNpemVvZihyZXN1bHQpICogQklUU19QRVJfQllURSkKLQkJZXJl cG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQko ZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNn KCJpbnRlZ2VyIG91dCBvZiByYW5nZSIpKSk7CiAKQEAgLTE2NzEsNyArMTY3MSw3IEBAIGJpdHRv aW50OChQR19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sgdGhhdCB0aGUgYml0IHN0cmluZyBp cyBub3QgdG9vIGxvbmcgKi8KIAlpZiAoVkFSQklUTEVOKGFyZykgPiBzaXplb2YocmVzdWx0KSAq IEJJVFNfUEVSX0JZVEUpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250 ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9P Rl9SQU5HRSksCiAJCQkJIGVycm1zZygiYmlnaW50IG91dCBvZiByYW5nZSIpKSk7CiAKLS0gCjIu MzQuMQoK --000000000000ed7e80064d704a27--